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

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

LaTeXส่วนนำ: \usepackage{minted}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
\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 ถูกละเว้น

LaTeXส่วนนำ: \usepackage{minted}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
\begin{minted}[linenos, frame=lines]{rust}
fn main() {
    let total: u32 = (1..=8).sum();
    println!("{}", total + 8); // 44
}
\end{minted}
จัดหน้าโดย Scissor LaTeX: linenos และ frame ถูกละเว้น

สำหรับคำบรรยายที่มีหมายเลข ให้ใช้ figure แทนสภาพแวดล้อม listing ของ minted ที่นี่คำบรรยายจะเป็น "Listing 1" และ \ref ให้หมายเลข:

บล็อก minted ที่มีคำบรรยายภายในรูป

LaTeXส่วนนำ: \usepackage{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