listings ב-Scissor LaTeX
החבילה listings עובדת חלקית ב-Scissor LaTeX: lstlisting שומרת על הקוד בדיוק כמו שהוקלד וצובעת אותו כשנותנים language= על הסביבה, ו-\lstinline עובדת; \lstset, מספרי שורות, מסגרות, כיתובים ותוויות לא נלקחים בחשבון, ו-\lstinputlisting מדולגת.
מה החבילה עושה
listings מסדרת קוד מקור. הסביבה lstlisting שומרת על שבירות השורה ועל הרווחים, ועם language=Python (או C, Java, SQL ...) היא מציגה מילות מפתח, הערות ומחרוזות בסגנונות שונים. אפשרויות מוסיפות מספרי שורות, מסגרות, כיתובים וצבעים, לכל קטע קוד בנפרד או לכל המסמך עם \lstset. \lstinline היא הצורה שבתוך השורה, ו-\lstinputlisting קוראת קוד מקובץ.
מה עובד כאן
| תכונה | ב-Scissor LaTeX | הערות |
|---|---|---|
\begin{lstlisting} ... \end{lstlisting} | עובד | ברוחב קבוע, בדיוק כמו שהוקלד. |
[language=Python] על הסביבה | עובד | צבעי תחביר מערכה קבועה. |
[language={[Sharp]C}] ודיאלקטים אחרים | עובד | הדיאלקט שבסוגריים המרובעים נקרא יחד עם השם. |
\lstinline|code|, \lstinline{code} | עובד | ברוחב קבוע, בלי צבעים. |
numbers=left, frame=single, basicstyle, keywordstyle, backgroundcolor | מושמט | לא נלקחות בחשבון, בלי הודעה. |
caption=, label= | מושמט | לא מודפס כיתוב, ו-\ref לתווית מציגה "??". |
\lstset{...}, \lstdefinestyle, style= | מושמט | לא נלקחות בחשבון, כולל language= שנקבעה שם. |
\lstinputlisting{file} | לא נתמך | מדולגת עם הודעה. |
\lstlistoflistings, \lstnewenvironment | לא נתמך | מדולגות עם הודעה. |
שמות השפות לא תלויים באותיות רישיות. יש צבעים לשפות נפוצות כמו Python, C, C++, C#, Java, JavaScript, Rust, Go, R, MATLAB, SQL, Bash, HTML ו-TeX. שם שלא מוכר, כמו Fortran, נותן קוד פשוט ברוחב קבוע, בלי הודעה.
דוגמאות
נותנים את השפה בכל קטע קוד:
lstlisting עם language=Python
\begin{lstlisting}[language=Python]
def mean(values):
# average of a list of numbers
return sum(values) / len(values)
print(mean([40, 44, 48]))
\end{lstlisting}שפה שנקבעה עם \lstset לא בשימוש, ולכן לקטע הקוד הזה אין צבעים. גם אפשרויות פריסה כמו numbers ו-frame לא נלקחות בחשבון:
\lstset לא נלקחת בחשבון
\documentclass{article}
\usepackage{listings}
\lstset{language=SQL, numbers=left, frame=single}
\begin{document}
\begin{lstlisting}
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\begin{lstlisting}[language=SQL]
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\end{document}קוד בתוך השורה עם \lstinline מקבל כל תו תוחם, כמו \verb:
\lstinline בתוך משפט
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.קטע קוד עם כיתוב בתוך figure
\begin{figure}[h]
\begin{lstlisting}[language=Python]
print(sum(range(44)))
\end{lstlisting}
\caption{Adding the numbers below 44}
\label{lst:sum}
\end{figure}
The code in Listing~\ref{lst:sum} prints 946.תאימות
- מהתקנת TeX לכאן: הקוד של כל
lstlistingמוצג. העבירו אתlanguage=מ-\lstsetלכל קטע קוד כדי לקבל צבעים, והדביקו לתוך המסמך את הקוד מקבצים של\lstinputlisting. - מכאן להתקנת TeX: המסמכים מתהדרים שם בלי שינוי, והאפשרויות שלכם מוחלות אז.
המדריך המלא נמצא ב-CTAN: ctan.org/pkg/listings. ראו גם הצגת קוד ב-LaTeX ו-minted.
שאלות ותשובות
למה קטעי הקוד שלי לא צבעוניים?
כנראה שהשפה נקבעה עם \lstset, שלא נלקחת כאן בחשבון. כתבו [language=Python] (או את השפה שלכם) אחרי \begin{lstlisting}.
אפשר להציג מספרי שורות?
עדיין לא. numbers=left מתקבלת ולא נלקחת בחשבון.
כל דוגמה בדף הזה מסודרת על ידי Scissor LaTeX בזמן בניית האתר. עודכן לאחרונה: 2026-11-07.