> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/vi/chu-de-khac/08-choosing-a-latex-compiler.md).

# Chọn trình biên dịch LaTeX

Các kiểu dáng, nội dung và bố cục trong một tài liệu LaTeX được xác định bằng *các thẻ* hoặc *lệnh* trong một tệp .tex thuần, tệp này có thể được dùng để tạo ra một số kiểu phiên bản tài liệu "đọc được bởi con người". Cách dễ nhất để tạo đầu ra cuối cùng này là dùng [Overleaf](http://www.overleaf.com). Overleaf có sẵn một bản phân phối LaTeX có thể dùng ngay và các tài liệu cuối cùng có thể được tạo chỉ bằng cách nhấp nút "Recompile"; nếu trường hợp của bạn là vậy, bạn có thể bỏ qua bài viết này. Ngược lại, nếu bạn cần tìm hiểu cách biên dịch tài liệu trên máy tính của mình, bài viết này mô tả cách tạo đầu ra PS, DVI và PDF từ một tệp LaTeX.

## Giới thiệu

Tài liệu LaTeX là các tài liệu thuần có phần mở rộng .tex (xem [Tạo một tài liệu trong LaTeX](/latex/vi/kien-thuc-co-ban-ve-latex/01-learn-latex-in-30-minutes.md) bài viết để xem ví dụ), tệp văn bản thuần này có một số lệnh đánh dấu nhằm định dạng tài liệu nhưng, vậy thực sự làm thế nào để tạo đầu ra cuối cùng? Điều đó phụ thuộc vào loại tài liệu bạn muốn tạo.

Giả sử bạn đã lưu tài liệu của mình và đặt tên tệp là "mydocument.tex". Để tạo tệp .PDF, chỉ cần chạy lệnh này trong terminal của hệ thống.

`pdflatex mydocument.tex`

Và một tệp tên là "mydocument.pdf" sẽ xuất hiện.

## Các bản phân phối TeX

Tập hợp các chương trình giúp biên dịch tài liệu TeX và LaTeX được gọi là bộ dàn trang TeX hoặc bản phân phối TeX. Có nhiều bản phân phối TeX dành cho các hệ điều hành khác nhau:

* **MiKTeX** cho Windows
* **TeX Live** cho Linux và các hệ thống tương tự UNIX khác
* **MacTeX** bản phân phối lại của TeX Live cho macOS
* **teTeX** cho Linux và các hệ thống tương tự UNIX khác; hiện nay nó không còn được duy trì tích cực nữa
* **proTeXt** dựa trên MiKTeX

Tất nhiên, nếu bạn không muốn trải qua quá trình cài đặt một bản phân phối TeX, bạn có thể dùng một lựa chọn trực tuyến có sẵn như [Overleaf](http://www.overleaf.com).

## Trình soạn thảo LaTeX

Có nhiều trình soạn thảo văn bản nâng cao dành riêng cho LaTeX trên các hệ điều hành phổ biến nhất; một số có thể tải xuống miễn phí trong khi số khác là phần mềm độc quyền:

* Mã nguồn mở: AUCTEX, GNU TeXmacs, Gummi, Kile, LaTeXila, MeWa, TeXShop, TeXnicCenter, Texmaker, TeXstudio, TeXworks
* Phần mềm miễn phí: LEd, WinShell
* Độc quyền/Shareware: Inlage, Scientific WorkPlace, WinEdt

Cũng có các trình soạn thảo đa năng bổ sung các tùy chọn thân thiện với LaTeX thông qua plugin. Ví dụ, các trình soạn thảo nổi tiếng emacs và vim đều có phần mở rộng LaTeX, cũng như Atom, VS Code và Sublime Text.

Cũng đáng lưu ý rằng trình soạn thảo trong [Overleaf](http://overleaf.com) có thể được tùy chỉnh để mô phỏng hành vi của emacs hoặc vim. Nó cũng *có thể tùy biến giao diện*, nên bạn có thể chọn cùng kiểu tô sáng cú pháp như một số trình soạn thảo đã nêu ở trên. Bạn có thể tìm các cài đặt này bằng cách nhấp vào biểu tượng menu Overleaf, phía trên bảng danh sách tệp trong dự án Overleaf của bạn.

## Các định dạng đầu ra

Có ba định dạng đầu ra khả dụng trong tất cả các bản phân phối TeX. Để tạo một đầu ra cụ thể, tài liệu phải được biên dịch bằng cách chạy một lệnh trong *thiết bị đầu cuối* (Linux và macOS) hoặc *dấu nhắc lệnh* (Windows).

Ví dụ, nếu bạn muốn biên dịch một tệp tên là "mydocument.tex" bạn có thể dùng một trong các lệnh sau:

**latex mydocument.tex**

Lệnh này sẽ tạo ra "mydocument.dvi", một tài liệu DVI

**pdflatex mydocument.tex**

Lệnh này sẽ tạo ra "mydocument.pdf", một tài liệu PDF

Có một số lệnh bổ sung cho phép chuyển đổi giữa các định dạng, ảnh PS cũng được hỗ trợ. Xem [hướng dẫn tham khảo](#reference-guide) để có mô tả sơ đồ về các lệnh và định dạng đầu ra.

Mô tả của từng định dạng đầu ra được cung cấp bên dưới:

* **(DVI)** Định dạng tệp độc lập thiết bị gồm dữ liệu nhị phân mô tả bố cục trực quan của tài liệu theo cách không phụ thuộc vào bất kỳ định dạng ảnh, phần cứng hiển thị hay máy in cụ thể nào.
* **(PS)** Định dạng tệp PostScript mô tả văn bản và đồ họa trên trang và được dựa trên đồ họa vector. Cho đến nay, PostScript vẫn là một tiêu chuẩn trong lĩnh vực chế bản điện tử.
* **(PDF)** Portable Document Format là một định dạng tệp dựa trên PostScript, dùng để biểu diễn tài liệu theo cách độc lập với phần mềm ứng dụng, phần cứng và hệ điều hành. Hiện nay nó được dùng rộng rãi làm định dạng tệp cho in ấn và phân phối trên Web.

Lưu ý: *Ngày nay, hầu hết các trình soạn thảo đều có các biểu tượng truy cập nhanh để biên dịch sang các định dạng đầu ra khác nhau, vì vậy bạn không cần thực sự chạy các lệnh trong dấu nhắc hệ thống.*

Trên Overleaf, đầu ra biên dịch cuối cùng luôn là một tài liệu PDF. Nếu bạn được yêu cầu tạo một tệp DVI từ dự án Overleaf của mình, đây là những gì bạn có thể làm:

1. Hãy đảm bảo rằng bạn chỉ sử dụng các ảnh .eps và .ps trong dự án của mình.
2. Nhấp vào nút **menu Overleaf** biểu tượng ở phía trên bảng danh sách tệp, và đặt *Bộ biên dịch* thiết lập thành 'LaTeX'.
3. Biên dịch lại dự án của bạn.
4. Nhấp vào nút "Logs and output files" bên cạnh nút Recompile.
5. Cuộn xuống tận cuối, và nhấp vào "Other logs and output files".
6. Sau đó bạn sẽ có thể tải xuống tệp .dvi đã được tạo.

![Tải xuống các tệp đầu ra khác](/files/e1892c4e2f5104799d99aadcdd1ae31ce588e0f8)

## Các trình biên dịch khác

Các thiết lập trình biên dịch khác có thể là pdfLaTeX (mặc định), XeLaTeX và LuaLaTeX. Thông thường bạn có thể dùng pdfLaTeX, nhưng việc chọn trình biên dịch còn phụ thuộc vào nhu cầu của từng dự án.

* LaTeX chỉ hỗ trợ các định dạng ảnh .eps và .ps để sử dụng với `\includegraphics`. Nếu tất cả các ảnh trong dự án của bạn đều là tệp .eps, thì thiết lập trình biên dịch này được khuyến nghị.
* pdfLaTeX hỗ trợ các định dạng ảnh .png, .jpg, .pdf. Nó sẽ chuyển đổi ảnh .eps sang .pdf ngay trong lúc biên dịch, điều này có thể kéo dài thời gian biên dịch cần thiết. (pdfLaTeX có thể không xử lý được `pstricks` tốt trên Overleaf.)
* XeLaTeX và LuaLaTeX đều hỗ trợ UTF-8 rất tốt ngay từ đầu, cũng như Truetype và OpenType. Vì vậy, chúng được khuyến nghị nếu bạn cần dàn trang các hệ chữ không phải Latinh trên Overleaf, kết hợp với `polyglossia` gói. Chúng cũng hỗ trợ tất cả các định dạng .png, .jpg, .pdf *và* định dạng ảnh .eps.
* XeLaTeX hỗ trợ `pstricks`; nhưng LuaLaTeX thì không.
* Bạn có thể mở rộng khả năng của LuaLaTeX bằng cách nhúng trực tiếp mã Lua vào tài liệu của mình.

## Biên dịch tài liệu với tham chiếu chéo

Trong một số trường hợp, khi tài liệu của bạn có các tham chiếu chéo, bạn phải biên dịch mã nguồn hai lần. Điều này cần thiết để đưa các số đúng vào mục lục, danh sách hình ảnh, số tham chiếu đến các định lý, v.v.

Trong lần biên dịch đầu tiên, trình biên dịch LaTeX ghi tệp .aux để lưu thông tin về các cách đánh số khác nhau, và trong lần thứ hai trình biên dịch đọc các thông tin này để tạo đúng mục lục, thư mục tài liệu tham khảo, v.v.

Quá trình này có thể được tự động hóa bằng lệnh `latexmk`. Ví dụ, để tạo một tệp pdf từ tệp "mydocument.tex", hãy chạy

`latexmk -pdf mydocument.tex`

chỉ một lần, ngay cả khi tài liệu có hình ảnh và thư mục tài liệu tham khảo được tham chiếu. Bạn có thể đổi *-pdf* sang *-dvi* để đặt một kiểu tệp khác.

## Hướng dẫn tham khảo

**Luồng tệp biên dịch LaTeX**

![Luồng tệp Latex](/files/7c30db1ef460b607b724ea9433b16ca6e32b1257)

## Đọc thêm

* [Tạo một tài liệu trong LaTeX](/latex/vi/kien-thuc-co-ban-ve-latex/01-learn-latex-in-30-minutes.md)
* [Tạo tài liệu trong Overleaf](/latex/vi/co-so-tri-thuc/031-creating-a-document-in-overleaf.md)
* [Gỡ lỗi các lỗi hết thời gian biên dịch](/latex/vi/co-so-tri-thuc/038-fixing-and-preventing-compile-timeouts.md)
* [Các dự án LaTeX nhiều tệp](/latex/vi/cau-truc-tai-lieu/08-multi-file-latex-projects.md)
* [Phần giới thiệu về LaTeX2ε không quá ngắn](http://www.ctan.org/tex-archive/info/lshort/)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/vi/chu-de-khac/08-choosing-a-latex-compiler.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
