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
\begin{minted}{javascript}
// greet a list of people
const people = ["Erika", "Hans", "John"];
for (const name of people) {
console.log(`Hello, ${name}!`);
}
\end{minted}選項會被接受並忽略,所以這個區塊在這裡沒有行號也沒有外框:
linenos 和 frame 會被忽略
\begin{minted}[linenos, frame=lines]{rust}
fn main() {
let total: u32 = (1..=8).sum();
println!("{}", total + 8); // 44
}
\end{minted}如果需要有編號的標題,請用 figure 取代 minted 的 listing 環境。在這裡,標題會顯示為「Listing 1」,\ref 會給出編號:
放在 figure 中、有標題的 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.相容性
- 從 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