minted trong Scissor LaTeX
Gói minted hoạt động một phần trong Scissor LaTeX: \begin{minted}{python} và \mintinline hoạt động mà không cần Python hay -shell-escape, với màu cú pháp theo một bảng màu cố định; các tùy chọn như linenos, \setminted, \usemintedstyle, chú thích của listing, \mint và \inputminted không được hỗ trợ.
Gói này làm gì
minted tô màu mã nguồn bằng thư viện Pygments. Bạn viết \begin{minted}{python} ... \end{minted}, hoặc \mintinline{python}{code} bên trong một câu. Các tùy chọn như linenos và frame=lines thay đổi bố cục, \setminted đặt chúng cho cả tài liệu, và \usemintedstyle chọn một chủ đề màu. Trong một bản cài đặt TeX, minted cần Python cùng Pygments, và tài liệu phải được biên dịch với -shell-escape.
Những gì hoạt động ở đây
| Tính năng | Trong Scissor LaTeX | Ghi chú |
|---|---|---|
\begin{minted}{lang} ... \end{minted} | Hoạt động | Có màu, không cần Python hay shell escape. |
\mintinline{lang}{code} | Hoạt động | Phông đơn cách, không có màu. |
Tùy chọn: [linenos, frame=lines, bgcolor=...] | Bỏ qua | Bị bỏ qua mà không có thông báo. |
\setminted{...}, \usemintedstyle{...} | Bỏ qua | Bị bỏ qua mà không có thông báo; màu là cố định. |
Môi trường listing với \caption | Một phần | Mã được hiển thị và chú thích được in thành văn bản thường, không có "Listing 1"; một \ref đến nó hiện "??". |
\mint{lang}|code| | Không hỗ trợ | Bị bỏ qua kèm thông báo; ngôn ngữ và mã được in ra thành văn bản thường. |
\inputminted{lang}{file} | Không hỗ trợ | Bị bỏ qua kèm thông báo. |
\newminted, \newmintinline | Không hỗ trợ | Bị bỏ qua kèm thông báo, và các đối số được in ra. |
Tên ngôn ngữ giống như với listings: Python, C, C++, Java, JavaScript, Rust, Go, R, MATLAB, SQL, Bash, HTML, TeX và nhiều ngôn ngữ khác, viết hoa hay viết thường đều được.
Ví dụ
Một khối minted có ngôn ngữ:
minted với JavaScript
\begin{minted}{javascript}
// greet a list of people
const people = ["Erika", "Hans", "John"];
for (const name of people) {
console.log(`Hello, ${name}!`);
}
\end{minted}Các tùy chọn được chấp nhận rồi bỏ qua, nên ở đây khối này không có số dòng hay khung:
linenos và frame bị bỏ qua
\begin{minted}[linenos, frame=lines]{rust}
fn main() {
let total: u32 = (1..=8).sum();
println!("{}", total + 8); // 44
}
\end{minted}Để có chú thích đánh số, hãy dùng một figure thay cho môi trường listing của minted. Ở đây chú thích là "Listing 1", và \ref cho ra số:
Một khối minted có chú thích bên trong figure
\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.Khả năng tương thích
- Từ một bản cài đặt TeX sang đây: mọi khối minted đều được hiển thị có màu. Tùy chọn và kiểu không được áp dụng; hãy thay
\mintbằng\mintinlinevà dán mã từ các tệp của\inputmintedvào tài liệu. - Từ đây sang một bản cài đặt TeX: các khối minted biên dịch ở đó khi có sẵn Python, Pygments và
-shell-escape. Ở đó, mộtfigurebao quanh khối minted được chú thích là "Figure 1".
Tài liệu hướng dẫn đầy đủ có trên CTAN: ctan.org/pkg/minted. Xem thêm Trình bày mã nguồn trong LaTeX.
Hỏi và đáp
minted có hoạt động mà không cần shell escape không?
Ở đây thì có. Scissor LaTeX tự tô màu các khối minted, nên không cần Python hay -shell-escape. Trong một bản cài đặt TeX, vẫn cần cả hai.
Tôi nên dùng minted hay listings?
Ở đây cả hai hoạt động như nhau: ngôn ngữ được đọc và các tùy chọn khác bị bỏ qua. Nếu tài liệu cũng phải biên dịch ở nơi khác mà không có shell escape, listings là lựa chọn an toàn hơn.
Mọi ví dụ trên trang này đều được Scissor LaTeX dàn trang khi xây dựng trang web. Cập nhật lần cuối 2026-11-07.