跳到主要內容

Scissor LaTeX 中的 minted

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 需要安裝了 Pygments 的 Python,而且文件必須以 -shell-escape 編譯。

在這裡可用的功能

功能在 Scissor LaTeX 中備註
\begin{minted}{lang} ... \end{minted}可用有顏色,不需要 Python 或 shell escape。
\mintinline{lang}{code}可用等寬字型,沒有顏色。
選項:[linenos, frame=lines, bgcolor=...]忽略直接忽略,沒有訊息。
\setminted{...}, \usemintedstyle{...}忽略直接忽略,沒有訊息;顏色是固定的。
有 \caption 的 listing 環境部分支援程式碼會顯示,標題以一般文字印出,沒有「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 區塊:

使用 JavaScript 的 minted

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 排版: 使用 JavaScript 的 minted

選項會被接受並忽略,所以這個區塊在這裡沒有行號也沒有外框:

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 取代 minted 的 listing 環境。在這裡,標題會顯示為「Listing 1」,\ref 會給出編號:

放在 figure 中、有標題的 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 排版: 放在 figure 中、有標題的 minted 區塊

相容性

  • 從 TeX 安裝環境搬到這裡:每個 minted 區塊都會以顏色顯示。選項和樣式不會套用;請把 \mint 換成 \mintinline,並把 \inputminted 檔案中的程式碼貼進文件中。
  • 從這裡搬到 TeX 安裝環境:只要有 Python、Pygments 和 -shell-escape,minted 區塊就能在那裡編譯。包住 minted 區塊的 figure 在那裡會被標為「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