رفتن به محتوا

minted در Scissor LaTeX

بستهٔ minted در Scissor LaTeX تا حدی کار می‌کند: \begin{minted}{python} و \mintinline بدون Python یا -shell-escape و با رنگ‌آمیزی نحو از یک طرح ثابت کار می‌کنند؛ گزینه‌هایی مانند linenos، \setminted، \usemintedstyle، زیرنویس listing، \mint و \inputminted پشتیبانی نمی‌شوند.

کار این بسته

minted کد منبع را با کتابخانهٔ Pygments رنگی می‌کند. شما \begin{minted}{python} ... \end{minted} می‌نویسید، یا درون یک جمله \mintinline{python}{code}. گزینه‌هایی مانند linenos و frame=lines چیدمان را تغییر می‌دهند، \setminted آن‌ها را برای کل سند تنظیم می‌کند و \usemintedstyle یک طرح رنگی برمی‌گزیند. در یک نصب TeX، minted به Python همراه Pygments نیاز دارد و سند باید با -shell-escape کامپایل شود.

آنچه این‌جا کار می‌کند

ویژگیدر Scissor LaTeXیادداشت‌ها
\begin{minted}{lang} ... \end{minted}کار می‌کندرنگی، بدون Python یا shell escape.
\mintinline{lang}{code}کار می‌کندهم‌عرض، بدون رنگ.
گزینه‌ها: [linenos, frame=lines, bgcolor=...]کنار گذاشته شدهبدون پیام نادیده گرفته می‌شوند.
\setminted{...}، \usemintedstyle{...}کنار گذاشته شدهبدون پیام نادیده گرفته می‌شوند؛ رنگ‌ها ثابت‌اند.
محیط listing با \captionتا حدیکد نشان داده می‌شود و زیرنویس به شکل متن ساده، بدون «Listing 1»، چاپ می‌شود؛ یک \ref به آن «??» نشان می‌دهد.
\mint{lang}|code|پشتیبانی نمی‌شودبا پیامی نادیده گرفته می‌شود؛ زبان و کد به شکل متن ساده چاپ می‌شوند.
\inputminted{lang}{file}پشتیبانی نمی‌شودبا پیامی نادیده گرفته می‌شود.
\newminted، \newmintinlineپشتیبانی نمی‌شودبا پیامی نادیده گرفته می‌شوند و آرگومان‌ها چاپ می‌شوند.

نام زبان‌ها همان نام‌های listings است: Python، C، C++، Java، JavaScript، Rust، Go، R، MATLAB، SQL، Bash، HTML، TeX و بسیاری دیگر، با حروف بزرگ یا کوچک.

نمونه‌ها

یک بلوک minted با یک زبان:

minted با JavaScript

\begin{minted}{javascript}
// greet a list of people
const people = ["Erika", "Hans", "John"];
for (const name of people) {
  console.log(`Hello, ${name}!`);
}
\end{minted}
حروف‌چینی با Scissor LaTeX: minted با JavaScript

گزینه‌ها پذیرفته و نادیده گرفته می‌شوند، پس این بلوک این‌جا شمارهٔ سطر یا قاب ندارد:

linenos و frame نادیده گرفته می‌شوند

\begin{minted}[linenos, frame=lines]{rust}
fn main() {
    let total: u32 = (1..=8).sum();
    println!("{}", total + 8); // 44
}
\end{minted}
حروف‌چینی با Scissor LaTeX: linenos و frame نادیده گرفته می‌شوند

برای زیرنویس شماره‌دار، به جای محیط listing در minted از یک figure استفاده کنید. این‌جا زیرنویس «Listing 1» خوانده می‌شود و \ref شماره را می‌دهد:

بلوک minted زیرنویس‌دار درون یک شکل

\begin{figure}[h]
\begin{minted}{python}
print(sum(range(44)))
\end{minted}
\caption{Adding the numbers below 44}
\label{lst:sum}
\end{figure}
Listing~\ref{lst:sum} prints 946.
حروف‌چینی با Scissor LaTeX: بلوک minted زیرنویس‌دار درون یک شکل

سازگاری

  • از یک نصب TeX به این‌جا: هر بلوک minted با رنگ نشان داده می‌شود. گزینه‌ها و سبک‌ها اعمال نمی‌شوند؛ \mint را با \mintinline جایگزین کنید و کد فایل‌های \inputminted را در سند بچسبانید.
  • از این‌جا به یک نصب TeX: بلوک‌های minted آن‌جا وقتی Python، Pygments و -shell-escape در دسترس باشند کامپایل می‌شوند. یک figure دور یک بلوک minted آن‌جا زیرنویس «Figure 1» می‌گیرد.

راهنمای کامل در CTAN است: ctan.org/pkg/minted. همچنین فهرست کد در LaTeX را ببینید.

پرسش و پاسخ

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

این‌جا بله. Scissor LaTeX خودش بلوک‌های minted را رنگی می‌کند، پس نه به Python نیاز است و نه به -shell-escape. در یک نصب TeX هر دو همچنان لازم‌اند.

از minted استفاده کنم یا listings؟

هر دو این‌جا یکسان کار می‌کنند: زبان خوانده می‌شود و گزینه‌های دیگر نادیده گرفته می‌شوند. اگر سند باید جای دیگری هم بدون shell escape کامپایل شود، listings انتخاب مطمئن‌تری است.

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