Skip to main content
Bài viết này hướng dẫn cách sử dụng gói minted để định dạng và tô sáng cú pháp mã nguồn ngôn ngữ lập trình trong tài liệu LaTeX, bắt đầu với một ví dụ:
Ví dụ này tạo ra kết quả sau:

Ví dụ minh họa kết quả đầu ra của gói minted

Có hai lệnh quan trọng ở đây. Trong phần preamble, gói được nạp bằng cách viết
sau đó các thẻ \begin{minted}{python} và \end{minted} giới hạn một môi trường in văn bản nguyên văn bằng phông chữ đơn cách (monospaced), đồng thời tô màu cho chú thích, từ khóa và hàm. Tham số python là ngôn ngữ lập trình mà mã nguồn được viết. minted hỗ trợ hơn 150 ngôn ngữ lập trình và ngôn ngữ đánh dấu cũng như các tệp cấu hình; xem hướng dẫn tham khảo để biết danh sách các ngôn ngữ được hỗ trợ. Lưu ý: Để minted hoạt động với bản phân phối LaTeX cục bộ của bạn, cần cài đặt thêm một chương trình có tên Pygments. Overleaf giúp bạn khỏi phải cài đặt nó và chạy các lệnh đặc biệt để biên dịch tài liệu — trên Overleaf, các tài liệu sử dụng minted sẽ hoạt động “ngay lập tức”.

Cách dùng cơ bản

Như minh họa trong ví dụ sau, môi trường minted có thể được cấu hình để thay đổi cách trình bày trực quan của mã được sắp chữ. Ở đây, môi trường minted sử dụng nhiều tham số dạng key=value, phân tách bằng dấu phẩy:
Ví dụ này tạo ra kết quả sau:

Ví dụ áp dụng định dạng cho mã được sắp chữ bởi gói minted

Các tham số được dùng trong ví dụ này là:
  • frame=lines: vẽ hai đường kẻ, một ở trên và một ở dưới đoạn mã để tạo khung. Các giá trị khác có thể dùng là leftline, topline, bottomline và single.
  • framesep=2mm: khoảng cách khung được đặt là 2mm. Có thể dùng các đơn vị độ dài khác.
  • baselinestretch=1.2: khoảng cách dòng của mã được đặt là 1.2.
  • bgcolor=LightGray: màu nền được đặt là LightGray. Bạn cần nạp gói xcolor để tùy chọn này hoạt động. Xem Sử dụng màu trong LaTeX để tìm hiểu thêm về cách xử lý màu.
  • fontsize=\footnotesize: cỡ chữ được đặt là footnotesize. Có thể đặt bất kỳ cỡ chữ nào khác.
  • linenos: bật đánh số dòng.
Các tùy chọn khác có thể hữu ích:
  • mathescape: bật chế độ toán học trong chú thích của mã.
  • rulecolor: thay đổi màu của khung.
  • showspaces: bật một ký tự đặc biệt để hiển thị các khoảng trắng.

Chèn mã từ tệp

Mã thường được lưu trong tệp nguồn, vì vậy một lệnh tự động nhập mã từ tệp là rất tiện lợi, như minh họa trong ví dụ sau:
Ví dụ này tạo ra kết quả sau: Sử dụng minted để nhập một tệp mã Lệnh \inputminted{octave}{BitXorMatrix.m} nhập mã từ tệp BitXorMatrix.m, tham số octave cho LaTeX biết ngôn ngữ lập trình của mã. Lệnh này có thể nhận thêm hai tham số để chỉ nhập một phần của tệp; ví dụ, để nhập mã từ dòng 2 đến dòng 12, lệnh sẽ là:

Mã một dòng

Nếu bạn chỉ cần chèn một dòng mã, lệnh \mint (có cú pháp được trình bày trong ví dụ tiếp theo) sẽ giải quyết vấn đề.
Ví dụ này tạo ra kết quả sau: Ví dụ mã một dòng với minted Tham số trong cặp ngoặc nhọn đặt ngôn ngữ lập trình (trong trường hợp này là ngôn ngữ đánh dấu html), còn văn bản thực tế cần định dạng được giới hạn bởi ký tự ’|’.

Sự cố với Overleaf tự lưu trữ

Nếu bạn sử dụng sandbox compile cùng với một máy chủ Overleaf tự triển khai, minted có thể không hoạt động tốt. Để biết thông tin chi tiết, bạn có thể xem: issues/131. Bạn cần bật arm instruction profile và một số system call để minted hoạt động.
Lần sửa đổi cuối 4 tháng 10, 2026