דילוג לתוכן

קטעי קוד ב-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

LaTeXמבוא: \usepackage{listings}פתיחה בעורך (נפתח בכרטיסייה חדשה)
\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 עם שפה

LaTeXמבוא: \usepackage{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 מדולג

LaTeXמבוא: \usepackage{listings}פתיחה בעורך (נפתח בכרטיסייה חדשה)
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.