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.โค้ดที่มีคำบรรยายภายในรูป
\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