ข้ามไปยังเนื้อหา

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

LaTeXส่วนนำ: \usepackage{listings}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
\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}
จัดหน้าโดย Scissor LaTeX: lstlisting พร้อม language=Python

ภาษาที่ตั้งด้วย \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 ในประโยค

LaTeXส่วนนำ: \usepackage{listings}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.
จัดหน้าโดย Scissor LaTeX: \lstinline ในประโยค

โค้ดที่มีคำบรรยายภายในรูป

LaTeXส่วนนำ: \usepackage{listings}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
\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.
จัดหน้าโดย Scissor LaTeX: โค้ดที่มีคำบรรยายภายในรูป

ความเข้ากันได้

  • จากการติดตั้ง 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