رفتن به محتوا

نمایش کد در LaTeX

کد را در یک محیط verbatim، lstlisting یا minted بگذارید، یا درون خط از \verb|...| استفاده کنید؛ Scissor LaTeX آن را با قلم هم‌عرض و دقیقاً همان‌طور که تایپ شده می‌چیند و وقتی زبان را نام ببرید نحو آن را رنگ‌آمیزی می‌کند.

verbatim

درون verbatim هیچ چیز تفسیر نمی‌شود: بک‌اسلش‌ها، آکولادها، $ و % همان‌طور که هستند چاپ می‌شوند و شکستن خط‌ها و فاصله‌ها حفظ می‌شوند. این ساده‌ترین راه نمایش کد یا خروجی ترمینال است.

یک بلوک verbatim

\begin{verbatim}
for i in range(44):
    print(i)   # $ and \textbf stay as typed
\end{verbatim}

کد درون خط: \verb

\verb تکهٔ کوتاهی از کد را درون یک جمله نشان می‌دهد. نویسه‌ای که درست پس از \verb می‌آید جداکننده است؛ نویسه‌ای را انتخاب کنید که در کد نیست، مثل | یا +.

کد درون خط با \verb و \texttt

Call \verb|total(xs)| to add the list, or type \verb+x_1 = 44+.
For plain words in a monospaced font, \texttt{main.tex} is enough.
حروف‌چینی با Scissor LaTeX: کد درون خط با \verb و \texttt

\texttt{...} فقط قلم را عوض می‌کند: نویسه‌های ویژه مثل _ و % آنجا همچنان باید گریز داده شوند، در حالی که \verb آن‌ها را همان‌طور که هستند می‌پذیرد.

listings: lstlisting با یک زبان

بستهٔ listings محیط lstlisting را در اختیارتان می‌گذارد. با language=... کد رنگ‌آمیزی نحوی می‌گیرد.

lstlisting با language=Python

\begin{lstlisting}[language=Python]
def total(xs):
    """Add up the numbers in xs."""
    return sum(xs)

print(total([40, 4]))  # 44
\end{lstlisting}
حروف‌چینی با Scissor LaTeX: lstlisting با language=Python

\lstinline|code| شکل درون‌خطی آن است، مثل \verb.

minted

minted زبان را به عنوان آرگومان می‌گیرد. در یک نصب TeX به Python و گزینهٔ -shell-escape نیاز دارد؛ در Scissor LaTeX بدون هیچ کدام کار می‌کند.

minted با یک زبان

\begin{minted}{rust}
fn main() {
    let answer = 40 + 4;
    println!("{}", answer);
}
\end{minted}
Inline: \mintinline{rust}{let x = 44;}
حروف‌چینی با Scissor LaTeX: minted با یک زبان

چه چیزی خوانده می‌شود

فرماندر Scissor LaTeXتوضیح
verbatim، verbatim*کار می‌کند
\verb، \verb*کار می‌کند
lstlistingتا حدیlanguage= خوانده می‌شود؛ هر گزینهٔ دیگر (numbers، caption، frame، basicstyle، firstline ...) نادیده گرفته می‌شود.
\lstinlineکار می‌کنددرون خط رنگ‌آمیزی نحوی ندارد.
\lstset{...}کنار گذاشته می‌شودزبانی که اینجا تعیین شود استفاده نمی‌شود؛ language= را برای هر فهرست کد جداگانه بدهید.
mintedتا حدیزبان خوانده می‌شود؛ گزینه‌هایی مثل linenos و frame نادیده گرفته می‌شوند.
\mintinline{lang}{code}کار می‌کنددرون خط رنگ‌آمیزی نحوی ندارد.
Verbatim، BVerbatim (fancyvrb)تا حدیمثل verbatim نشان داده می‌شود؛ گزینه‌ها نادیده گرفته می‌شوند.
\lstinputlisting{file}، \inputminted{lang}{file}پشتیبانی نمی‌شودبا یک پیام نادیده گرفته می‌شود؛ کد را در سند بچسبانید.
\lstnewenvironment، \newmintedپشتیبانی نمی‌شود

رنگ‌آمیزی نحوی برای زبان‌های رایج در دسترس است، از جمله Python، C، C++، Java، JavaScript، TypeScript، Rust، Go، Ruby، R، Julia، MATLAB، SQL، Bash، HTML، CSS، JSON، YAML، TeX و LaTeX. نام زبان‌ها به بزرگی و کوچکی حروف حساس نیستند، پس Python و python یکی‌اند. نامی که شناخته نشود کد سادهٔ هم‌عرض و بی‌رنگ می‌دهد.

کد از یک فایل

\lstinputlisting و \inputminted در یک نصب TeX کد را از فایل دیگری می‌خوانند. Scissor LaTeX آن‌ها را نادیده می‌گیرد و این را در زبانهٔ مشکلات می‌گوید:

\lstinputlisting نادیده گرفته می‌شود

The script below is not shown:
\lstinputlisting[language=Python]{scripts/total.py}
Paste the code into an lstlisting environment instead.

زبانهٔ مشکلات: 1 included file is not part of this conversion

تفاوت‌ها با یک نصب TeX

برای صفحه‌های بسته‌ها، listings و minted را ببینید. راهنماهای کامل در CTAN هستند: listings، minted و fancyvrb.

پرسش و پاسخ

چطور در LaTeX یک بلوک کد اضافه کنم؟

کد را درون \begin{verbatim} ... \end{verbatim} بگذارید، یا برای رنگ‌آمیزی نحوی درون lstlisting با [language=Python].

آیا minted بدون shell escape کار می‌کند؟

در Scissor LaTeX بله: محیط‌های minted بدون Python یا -shell-escape رنگ‌آمیزی می‌شوند. در یک نصب TeX، minted همچنان به هر دو نیاز دارد.

چرا شمارهٔ خط‌های فهرست کد من نمایش داده نمی‌شود؟

Scissor LaTeX گزینهٔ numbers=left و دیگر گزینه‌های چیدمان listings را نادیده می‌گیرد. فقط زبان خوانده می‌شود.

هر مثال این صفحه هنگام ساخت سایت با Scissor LaTeX حروف‌چینی می‌شود. آخرین به‌روزرسانی: 2026-11-07.