> 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/co-so-tri-thuc/149-using-the-stop-on-first-error-compilation-mode.md).

# Sử dụng chế độ biên dịch Dừng ở Lỗi Đầu Tiên

Bài viết này giải thích cách sử dụng **Dừng ở lỗi đầu tiên** chế độ biên dịch của Overleaf, đồng thời xem xét một số chủ đề nền tảng quan trọng, bao gồm:

* Chế độ [biên dịch LaTeX](#introduction-to-latex-errors-and-compilation)?
* [Các chế độ biên dịch trên Overleaf](#compilation-modes-on-overleaf)
* Cách **Dừng ở lỗi đầu tiên** có thể là [hữu ích cho việc gỡ lỗi](#benefits-of-using-the-stop-on-first-error-mode)

Để bỏ qua thông tin nền, bạn có thể chuyển thẳng đến phần giải thích [cách bật chế độ biên dịch Dừng ở lỗi đầu tiên](#the-stop-on-first-error-compilation-mode).

## Giới thiệu về lỗi LaTeX và biên dịch

Việc chuyển đổi một tài liệu LaTeX thành tệp PDF dàn trang là kết quả của một quá trình gọi là *biên dịch*: một chương trình thực thi, được gọi là “trình biên dịch LaTeX”, đọc nội dung tài liệu của bạn và thực thi các lệnh LaTeX cấu thành để tạo ra tệp PDF dàn trang.

Khi viết mã LaTeX (code), việc mắc lỗi là điều hoàn toàn tự nhiên, và trong quá trình biên dịch, những lỗi đó khiến trình biên dịch đưa ra các thông báo lỗi cố gắng giải thích điều mà trình biên dịch *cho rằng* đã gây ra vấn đề. Cũng như với các ngôn ngữ lập trình khác, chỉ một lỗi trong mã LaTeX của tài liệu cũng có thể kích hoạt một chuỗi lỗi, mỗi lỗi kèm theo thông báo tương ứng. Trên Overleaf, các thông báo lỗi biên dịch được báo cho người dùng thông qua [một thông báo màu đỏ bên cạnh **Biên dịch lại** nút](#overleafs-latex-error-reporting), và bạn có thể nhấp vào **Nhật ký và tệp đầu ra** biểu tượng để xem chúng.

### Xử lý lỗi: các chế độ biên dịch

Trình biên dịch LaTeX, còn được gọi là [bộ máy TeX](/latex/vi/bai-viet-chuyen-sau/55-what-s-in-a-name-a-guide-to-the-many-flavours-of-tex.md), có các *chế độ biên dịch* tích hợp sẵn (người dùng có thể chọn) quyết định cách xử lý lỗi. Danh sách gạch đầu dòng sau sử dụng *tên mô tả/giải thích riêng của Overleaf* cho từng chế độ đó:

* **Cố gắng biên dịch dù có lỗi**—về cơ bản, tiếp tục cố gắng biên dịch dù gặp lỗi, hy vọng kết quả tốt nhất, có thể tạo ra một tệp PDF nhưng tệp đó có thể chứa lỗi dàn trang.
* **Dừng ở lỗi đầu tiên**—về thực chất là “dừng cuộc chơi” ngay khi có dấu hiệu rắc rối đầu tiên, thông báo cho người dùng và thoát mà không tạo PDF. Điều này tránh kích hoạt chuỗi lỗi tiếp theo, giúp bạn tập trung vào việc sửa lỗi đầu tiên và biên dịch lại tài liệu.
* **Tạm dừng biên dịch để tương tác với người dùng**—tạm dừng biên dịch để cung cấp trợ giúp và cung cấp cơ chế cho người dùng sửa lỗi rồi tiếp tục biên dịch. Điều này có thể làm được với một bản cài đặt LaTeX cục bộ nhưng không thực tế trên Overleaf.

## Các chế độ biên dịch trên Overleaf

Để quản lý quá trình biên dịch LaTeX, Overleaf sử dụng một [công cụ xây dựng có tên latexmk](/latex/vi/co-so-tri-thuc/064-how-does-overleaf-compile-my-project.md) mà theo mặc định sử dụng một chế độ biên dịch mà Overleaf gọi là **Cố gắng biên dịch dù có lỗi:** công cụ xây dựng sẽ cố gắng tạo ra một tệp PDF dàn trang, ngay cả khi có [lỗi biên dịch LaTeX](/latex/vi/kien-thuc-co-ban-ve-latex/05-errors.md).

Trong **Cố gắng biên dịch dù có lỗi** trong chế độ biên dịch này, trình biên dịch LaTeX sẽ không dừng lại nếu phát hiện lỗi; thay vào đó, nó cố gắng “đoán tốt nhất” ý định của người dùng và áp dụng các “sửa lỗi” dựa trên phỏng đoán đó—mã có vấn đề cũng có thể bị “bỏ qua”. Trình biên dịch *có thể* trở lại trạng thái mà quá trình biên dịch cuối cùng có thể hoàn tất để tạo ra PDF, mặc dù PDF được tạo ra có thể chứa đầu ra sai. Thường thì các lỗi gặp phải có thể quá nghiêm trọng, hoặc quá nhiều, để trình biên dịch LaTeX sửa được nên nó vẫn có thể “dừng cuộc chơi” mà không tạo ra PDF.

### Cách Overleaf báo lỗi LaTeX

Như đã lưu ý ở trên, các thông báo lỗi được tạo ra trong quá trình biên dịch sẽ được báo cho người dùng thông qua một thông báo màu đỏ bên cạnh **Biên dịch lại** nút:

![Ảnh chụp màn hình cho thấy các lỗi LaTeX được báo trên Overleaf](/files/0d00aa3eb11f4fef3cb25dc9c4c9bb8b68ecdb6a)

Bạn có thể nhấp vào **Nhật ký và tệp đầu ra** biểu tượng để xem chi tiết hơn về các lỗi. Ví dụ, nếu bạn vô tình gõ `\texbf{word}` thay vì `\textbf{word}`, Overleaf vẫn sẽ hiển thị bản xem trước PDF đã biên dịch cùng với thông báo lỗi về lệnh chưa xác định, nhưng “word” sẽ không được in đậm trong PDF!

## Chế độ biên dịch Dừng ở lỗi đầu tiên

Người dùng giờ đây có thể thay đổi chế độ biên dịch LaTeX bằng cách chuyển sang **Dừng ở lỗi đầu tiên** chế độ này, khiến Overleaf chấm dứt biên dịch ngay lập tức khi phát hiện lỗi đầu tiên.

### Cách bật Dừng ở lỗi đầu tiên

Chọn hình tam giác nhỏ bên cạnh **Biên dịch lại** nút rồi chọn **Dừng ở lỗi đầu tiên** từ gói **Biên dịch lại** menu thả xuống:

![Ảnh chụp màn hình cho thấy cách bật chế độ biên dịch Dừng ở lỗi đầu tiên](/files/577e08855f08ce6bfa7f213e77cbc78c60ed0c32)

#### Phạm vi của thiết lập chế độ này

Tính năng **Dừng ở lỗi đầu tiên** chế độ này là một thiết lập theo từng người dùng, theo từng dự án. Bật chế độ này sẽ *không* ảnh hưởng đến các dự án khác của bạn, hoặc bất kỳ cộng tác viên nào trong cùng dự án.

### Tắt Dừng ở lỗi đầu tiên

Khi **Dừng ở lỗi đầu tiên** đã được bật, bạn có thể quay lại chế độ biên dịch mặc định bằng cách chọn nút màu xanh **Tắt “Dừng ở lỗi đầu tiên”** nằm trong hộp thoại xuất hiện khi có lỗi biên dịch:

![Ảnh chụp màn hình cho thấy thông báo biên dịch thất bại](/files/e3faec96f5c31ffa53c1b7bacb39d2ec63ff3780)

Bạn cũng có thể đi tới **Biên dịch lại** menu thả xuống, và chọn **Cố gắng biên dịch dù có lỗi** chế độ:

![Ảnh chụp màn hình cho thấy cách tắt chế độ biên dịch Dừng ở lỗi đầu tiên](/files/16583e183a457f8a75dc45847484c98e8556e0d3)

### Ghi chú và lời khuyên bổ sung

Nếu dự án của bạn không có lỗi biên dịch LaTeX, bản xem trước PDF sẽ được hiển thị như thường lệ. Nếu dự án của bạn *thì* có lỗi biên dịch LaTeX, quá trình biên dịch sẽ dừng ngay lập tức ở lỗi đầu tiên. Thông báo lỗi đầu tiên được hiển thị như trong ảnh chụp màn hình bên dưới, ताकि bạn có thể tập trung gỡ lỗi trong mã nguồn của mình. Trong ảnh chụp màn hình này, lỗi là do dùng sai `\caption{...}\label{...}` bên trong môi trường tabular. Dòng 15 nên được chuyển lên trước `\begin{tabular}`.

![Ảnh chụp màn hình cho thấy một lỗi LaTeX điển hình](/files/ab748c35a11509b7a05b30c93179312da9f1ab64)

Nhấp vào **Biên dịch lại** sau khi sửa từng lỗi, rồi lặp lại quy trình gỡ lỗi này cho từng lỗi biên dịch tiếp theo. Khi dự án của bạn không còn lỗi LaTeX, **Dừng ở lỗi đầu tiên** chế độ này sẽ hiển thị bản PDF đã biên dịch thành công.

### Lợi ích của việc sử dụng chế độ Dừng ở lỗi đầu tiên

* **Giúp gỡ lỗi các lần biên dịch bị quá thời gian.** Một số loại lỗi biên dịch nghiêm trọng đến mức (ví dụ: đệ quy vô tình) chúng có thể chặn **chế độ Cố gắng biên dịch dù có lỗi** biên dịch, dẫn đến một [hết thời gian biên dịch](/latex/vi/co-so-tri-thuc/038-fixing-and-preventing-compile-timeouts.md#fatal-compile-errors-blocking-the-compilation) trong một dự án Overleaf. Bật **Dừng ở lỗi đầu tiên** chế độ này có thể giúp xác định và gỡ lỗi những lỗi như vậy.
* **Đừng để lỗi chồng chất.** Một số người dùng có thể thích cách hoạt động của các trình soạn thảo LaTeX khác, trong đó quá trình biên dịch sẽ dừng ở lỗi LaTeX đầu tiên gặp phải để họ có thể sửa lỗi trước khi biên dịch lại. Việc ngăn các lỗi lan truyền—gây ra một loạt lỗi tiếp theo—giúp tránh phải gỡ lỗi hơn 100 thông báo lỗi biên dịch, điều có thể trở nên khó khăn và khá tẻ nhạt.
* **Bật chế độ Dừng ở lỗi đầu tiên có thể nhanh chóng phát hiện các lỗi của bạn (nếu có).** Nếu bạn có một tài liệu lớn hoặc phức tạp mất nhiều thời gian hơn để biên dịch, **Cố gắng biên dịch dù có lỗi** chế độ này yêu cầu bạn phải đợi cho đến khi quá trình biên dịch hoàn tất. Nếu có lỗi cần sửa, việc phải chờ trước khi bạn có thể xem lỗi biên dịch đầu tiên và thử sửa nó có thể tốn thời gian.
* **Học cách gỡ lỗi là một phần thiết yếu của việc học LaTeX.** Tính năng **Dừng ở lỗi đầu tiên** chế độ này có thể giúp người mới bắt đầu học LaTeX sớm hình thành và áp dụng những thói quen viết mã LaTeX tốt, có lẽ sẽ đẩy nhanh hành trình thành thạo LaTeX của họ. Các lỗi LaTeX có thể trông kỳ quặc và bí hiểm đến mức rất dễ muốn bỏ qua chúng và để trình biên dịch tiếp tục—hy vọng rồi sẽ có một PDF xuất hiện, ngay cả khi PDF đó chứa lỗi dàn trang. Về lâu dài, việc bỏ qua lỗi biên dịch có thể dẫn đến những thói quen viết mã không tốt, và cuối cùng có thể khiến bạn gặp rắc rối trong tương lai, có lẽ khi nộp một bài báo quan trọng cho tạp chí! Nếu bạn đang dạy một lớp về LaTeX, học viên của bạn có thể sử dụng **Dừng ở lỗi đầu tiên** chế độ này để phát triển kỹ năng gỡ lỗi các lỗi LaTeX.

## Các lỗi dường như không phát sinh trong các tệp của bạn

Nếu bạn dừng biên dịch thủ công trong **Cố gắng biên dịch dù có lỗi** chế độ này, rồi bật **Dừng ở lỗi đầu tiên**, lần biên dịch tiếp theo có thể dẫn đến một số thông báo lỗi có vẻ ngẫu nhiên, chẳng hạn như `! Tệp đã kết thúc khi đang quét cách dùng của \@writefile`, những lỗi này dường như không xuất phát từ bên trong các tệp của bạn. Những lỗi như vậy có thể do các tệp bị cắt cụt được tạo ra bởi, và còn sót lại từ, lần biên dịch chưa hoàn tất trước đó. Trong trường hợp đó, bạn có thể muốn [Biên dịch lại từ đầu](/latex/vi/co-so-tri-thuc/028-clearing-the-cache.md) biên dịch lại từ đầu **Dừng ở lỗi đầu tiên** để lần biên dịch tiếp theo, vẫn ở `output.aux`, `output.toc` v.v.—có cơ hội bắt đầu từ trạng thái sạch và hiển thị lỗi phù hợp đầu tiên. Nếu bạn vẫn nhận được lỗi từ một tệp dường như không tồn tại—ví dụ như, [trang trợ giúp này](/latex/vi/co-so-tri-thuc/066-how-to-find-and-fix-errors-reported-in-generated-files.md).

## Một số chi tiết ở mức thấp hơn

Tính năng **Cố gắng biên dịch dù có lỗi** chế độ biên dịch chạy `latexmk` với các cờ sau:

```latex
latexmk -f -interaction=nonstopmode …
```

Tính năng **Dừng ở lỗi đầu tiên** chế độ biên dịch sẽ chạy latexmk với các cờ sau thay vào đó:

```latex
latexmk -halt-on-error -interaction=nonstopmode …
```

Nhân tiện, bạn cũng có thể muốn đọc thêm về [cách Overleaf sử dụng `latexmk` công cụ](/latex/vi/co-so-tri-thuc/064-how-does-overleaf-compile-my-project.md).


---

# 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/co-so-tri-thuc/149-using-the-stop-on-first-error-compilation-mode.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.
