ইনডেন্টেশন সহ এই লটেক্স নথিতে কোড প্রবেশ করানো


426

আমি কীভাবে একটি ল্যাটেক্স ডকুমেন্টে কোড প্রবেশ করবো? এখানে কি কিছু আছে:

\begin{code}## Heading ##
...
\end{code}

আমার সত্যিকারের কেবলমাত্র প্রয়োজন হ'ল ইনডেন্টেশন এবং একটি নির্দিষ্ট প্রস্থের ফন্ট। সিনট্যাক্স হাইলাইট করা ভাল হতে পারে যদিও এটি অবশ্যই প্রয়োজন হয় না।


সঠিক সদৃশ নয়, তবে উত্তরগুলি একই স্থলটিকে
চার্লস স্টুয়ার্ট

: আমি এখানে প্রশ্ন আপ ফলো আছে stackoverflow.com/questions/3408996/...
sixtyfootersdude

উত্তর:


630

listingsপ্যাকেজ ব্যবহার করুন ।

ল্যাটেক্স শিরোলেখের জন্য সাধারণ কনফিগারেশন (আগে \begin{document}):

\usepackage{listings}
\usepackage{color}

\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}

\lstset{frame=tb,
  language=Java,
  aboveskip=3mm,
  belowskip=3mm,
  showstringspaces=false,
  columns=flexible,
  basicstyle={\small\ttfamily},
  numbers=none,
  numberstyle=\tiny\color{gray},
  keywordstyle=\color{blue},
  commentstyle=\color{dkgreen},
  stringstyle=\color{mauve},
  breaklines=true,
  breakatwhitespace=true,
  tabsize=3
}

এর সাথে আপনি নথির মাঝখানে ডিফল্ট ভাষা পরিবর্তন করতে পারেন \lstset{language=Java}

নথিতে ব্যবহারের উদাহরণ:

\begin{lstlisting}
// Hello.java
import javax.swing.JApplet;
import java.awt.Graphics;

public class Hello extends JApplet {
    public void paintComponent(Graphics g) {
        g.drawString("Hello, world!", 65, 95);
    }    
}
\end{lstlisting}

ফলাফল এখানে:

উদাহরণ চিত্র


3
আমি আপনার কোড সম্পর্কিত একটি ফলো আপ প্রশ্ন আছে। : যদি আপনি একটি সুযোগ পেতে একটি চেহারা আছে stackoverflow.com/questions/3408996/...
sixtyfootersdude

1
কোড লাইনের মধ্যে স্থান হ্রাস করার কোনও উপায় আছে কি?
সুখভীর

লেটেক্সে কোনও চিত্রের নীচে লেখা পাঠ্যের অনুরূপ কোড স্নিপেটের নীচে ছোট পাঠ্য যুক্ত করা কি সম্ভব?
ব্রায়ান জে

@ ব্রায়ান আমি সে সম্পর্কে অবগত নই। সম্ভবত কোডটির ভিতরে figureথাকাটি প্রভাব অর্জন করতে পারে।
ক্লাউডাঙ্গার

শুনেছি এই প্যাকেজটি এখন অপ্রচলিত!
---

165

আপনি ভারব্যাটিম পরিবেশটিও ব্যবহার করতে পারেন

\begin{verbatim}
your
code
example
\end{verbatim}

57
ভারব্যাটিম পরিবেশের মধ্যে ট্যাবগুলি ব্যবহার করার ক্ষেত্রে একটি সমস্যা রয়েছে। যদি ট্যাবগুলি "স্পেস" এ রূপান্তরিত হয় তবে সমস্যাটি অদৃশ্য হয়ে যায়।
মিডটিবি

1
এটি পাঠ্য ফাইলের সামগ্রী উদাহরণ হিসাবে দেখানোর জন্য ভাল (উদাহরণস্বরূপ, কোনও প্রোগ্রামের দ্বারা পাঠ্য / প্রক্রিয়াকরণের পাঠ্যগত ডেটা)।
nalyd88

দুটি কলামের নিবন্ধের জন্য, এটি মার্জিনগুলি ভালভাবে পরিচালনা করে না।
সাজ্জাদ হিশাইন খান

115

এখানে কীভাবে ইনলাইন কোড যুক্ত করবেন:

আপনি {\tt code }বা এর সাথে ইনলাইন কোড যুক্ত করতে পারেন \texttt{ code }। আপনি যদি ইনলাইন কোডটি ফর্ম্যাট করতে চান তবে নিজের কমান্ডটি তৈরি করা ভাল

\newcommand{\code}[1]{\texttt{#1}}

এছাড়াও, নোট করুন যে কোড ব্লকগুলি অন্যান্য ফাইল থেকে লোড করা যায়

\lstinputlisting[breaklines]{source.c}

breaklinesপ্রয়োজন হয় না, তবে আমি এটি দরকারী বলে মনে করি। সচেতন হন যে আপনাকে \usepackage{ এইটির } জন্য তালিকা নির্দিষ্ট করতে হবে।

আপডেট করুন: তালিকা প্যাকেজ অন্তর্ভুক্ত \lstinlineকমান্ড যা একই বাক্য গঠন হিসাবে বৈশিষ্ট্য হাইলাইট হয়েছে \lstlistingএবং \lstinputlistingকমান্ড (কনফিগারেশন বিস্তারিত জানার জন্য Cloudanger এর উত্তর দেখুন)। অন্য কয়েকটি উত্তরে যেমন উল্লেখ করা হয়েছে, সেখানে টানানো প্যাকেজটি রয়েছে যা \mintinlineকমান্ড সরবরাহ করে which পছন্দ করুন \lstinline, \mintinlineনিয়মিত মিন্টেড কোড ব্লক হিসাবে একই সিনট্যাক্স হাইলাইট সরবরাহ করে:

\documentclass{article}

\usepackage{minted}

\begin{document}
  This is a sentence with \mintinline{python}{def inlineCode(a="ipsum)}
\end{document}

1
কীওয়ার্ডের রং ইত্যাদি সক্রিয় করে এমন ইনলাইন কোডের জন্য আরও ভাল কোনও উপায়?
ন্যানো

হ্যাঁ. আমি তাদের সাথে আলোচনা করার জন্য আমার উত্তর আপডেট করেছি।
অ্যালান

এটিকে আরও পঠনযোগ্য দেখতে আপনি কীভাবে স্পেসিং / ট্যাবগুলি সন্নিবেশ করান?
চার্লি পার্কার 21

32

বিশেষায়িত প্যাকেজগুলি যেমন mintedফর্ম্যাট করার জন্য পাইগমেন্টের উপর নির্ভর করে, listingsপ্যাকেজটির উপরে বিভিন্ন সুবিধা দেয় । mintedম্যানুয়াল থেকে উদ্ধৃতি ,

পিগমেন্টগুলি প্রচলিত প্যাকেজগুলির তুলনায় উচ্চতর সিনট্যাক্স হাইলাইট সরবরাহ করে। উদাহরণস্বরূপ, তালিকাগুলি মূলত কেবল স্ট্রিং, মন্তব্য এবং কীওয়ার্ডগুলিকে হাইলাইট করে। অন্যদিকে, পিগমেন্টগুলি কোনও উত্স ভাষা সমর্থন করতে পারে এমন কোনও টোকেন হাইলাইট করার জন্য সম্পূর্ণ কাস্টমাইজ করা যেতে পারে। এর মধ্যে স্ট্রিং, সংখ্যা, বিভিন্ন ধরণের সনাক্তকারী এবং এইচটিএমএল ট্যাগের মতো বহিরাগত কনস্ট্রাক্টসের অভ্যন্তরে বিশেষ বিন্যাসের ক্রম অন্তর্ভুক্ত থাকতে পারে।


1
আমি চেষ্টা করেছি, ডকুমেন্টেশন বেশ সোজা এগিয়ে। ডিফল্ট শৈলী ভাল ছেড়ে দেওয়া হয়।
ব্যবহারকারী 2262504

5
এটি বহু ব্যবহারকারীর জন্য অসম্পূর্ণ সমাধান হতে পারে, কারণ পাইমেন্টিকের জন্য বাহ্যিক কল প্রয়োজন। বিশেষত, -shell-escapeনির্দেশের সাথে লেটেক্সকে কল করার প্রয়োজনীয়তাটি হ'ল বিল্ড সিস্টেমগুলির অস্তিত্বের জন্য একটি সংক্ষিপ্ত পরিবর্তন এবং সর্বোপরি কিছু ব্যবহারকারীর সুরক্ষা পছন্দগুলির সাথে বেমানান।
কেডিএন

12

Minted ব্যবহার করুন ।

এটি এমন একটি প্যাকেজ যা শক্তিশালী পাইগমেন্টস লাইব্রেরি ব্যবহার করে লটেক্সে এক্সপ্রেসিভ সিনট্যাক্স হাইলাইট করার সুবিধা দেয় । প্যাকেজটি ফ্যানসিভিআরবি ব্যবহার করে হাইলাইটেড সোর্স কোড আউটপুট কাস্টমাইজ করতে বিকল্প সরবরাহ করে ।

এটি অন্য যে কোনও প্যাকেজের তুলনায় অনেক বেশি বিকশিত এবং কাস্টমাইজযোগ্য!


যাইহোক, ইতিমধ্যে একটি অনুরূপ উত্তরে আগেই উল্লেখ করা হয়েছে, -shell-escapeকিছু লোকের জন্য স্তন্যপান হতে পারে।
ডিম হান্স

8

নূতন মধ্যে workes ওপিঠে , TeX লাইভ এবং MiKTeX।

উদাহরণ:

\documentclass{article}
\usepackage{minted}
\begin{document}

\begin{minted}[mathescape, linenos]{python}

# Note: $\pi=\lim_{n\to\infty}\frac{P_n}{d}$
title = "Hello World"

sum = 0
for i in range(10):
 sum += i

\end{minted}

\end{document}

আউটপুট:

এখানে চিত্র বর্ণনা লিখুন


6

যেহেতু এটি এখানে এখনও উল্লেখ করা হয়নি, তাই এটি আরও একটি বিকল্প, প্যাকেজ যুক্ত করার উপযুক্ত হতে পারে spverbatim(সিনট্যাক্স হাইলাইট করা নেই):

\documentclass{article}
\usepackage{spverbatim}

\begin{document}

\begin{spverbatim}
  Your code here
\end{spverbatim}

\end{document}

এছাড়াও, যদি সিনট্যাক্স হাইলাইটিংয়ের প্রয়োজন হয় না, প্যাকেজ alltt:

\documentclass{article}
\usepackage{alltt}

\begin{document}

\begin{alltt}
  Your code here
\end{alltt}

\end{document}

1
আমি যা চাই তা এটি কমবেশি, তবে আমি ট্যাবগুলিতে ইনডেন্ট করতে পারি না। আপনি কীভাবে ইনডেন্ট করবেন / এমন কোনও প্যাকেজ রয়েছে যা সহজে ইন্ডেন্টেশন করতে দেয়?
দারোক্রিথিয়া

1
@ দারোক্রিথিয়া আমি আমার উত্তর সম্পাদনা করেছি: আপনি কি ইনডেন্টেশন পরীক্ষা / পরীক্ষা করতে পারবেন? :)
ম্যাটআলেগ্রো

1
এটি কাজ করে বলে মনে হচ্ছে না। আমি যে কোডটি ব্যবহার করছি তা আমি আপনাকে পাঠাতে পারি, তবে ফর্ম্যাটটি মন্তব্যে নষ্ট হয়ে গেছে। বিটিডাব্লু আমি একটি আলাদা উত্তর ব্যবহার করেছি এবং এটি দুর্দান্ত কাজ করেছে তবে আমার মনে হয় ভবিষ্যতের পাঠকদের জন্য এটি এখনও ঠিক করা উচিত।
দারোক্রিথিয়া

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.