> 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/cau-truc-tai-lieu/07-management-in-a-large-project.md).

# Quản lý trong một dự án lớn

## Giới thiệu

Trong các dự án lớn, chẳng hạn như sách, việc giữ các phần của tài liệu trong nhiều tệp .tex giúp việc sửa lỗi và thực hiện các thay đổi tiếp theo dễ dàng hơn. Việc tìm một từ hoặc phần tử cụ thể trong một tệp ngắn cũng đơn giản hơn. Vì mục đích này, bài viết này giải thích cách quản lý các dự án lớn.

## Nhập và bao gồm các tệp

Các công cụ tiêu chuẩn để chèn một tệp LaTeX vào một tệp khác là `\input` và `\include`.

**lệnh input**

\input{filename}

Dùng lệnh này trong phần thân tài liệu để chèn nội dung của một tệp khác có tên là `filename.tex`; tệp này không nên chứa bất kỳ mã tiền đề LaTeX nào (tức là không có `\documentclass`, `\begin{document}` hoặc `\end{document}` ). LaTeX sẽ không bắt đầu một trang mới trước khi xử lý nội dung trong `filename.tex`. `\input` cho phép bạn lồng `\input` các lệnh, trong các tệp đã được tệp gốc nhập vào.

**lệnh include**

\include{filename}

Dùng lệnh này trong phần thân tài liệu để chèn nội dung của một tệp khác có tên là `filename.tex`; một lần nữa, tệp này không nên chứa bất kỳ phần tiền đề LaTeX nào. LaTeX sẽ bắt đầu một trang mới trước khi xử lý nội dung được nhập từ `filename.tex`. Hãy chắc chắn không thêm phần mở rộng `.tex` trong tên tệp, vì điều này sẽ ngăn tệp được nhập vào (phần mở rộng có thể tùy chọn được bao gồm với `đầu vào` và `import`). Không thể lồng `bao gồm` các lệnh. Mỗi tệp khi được `\include`được bao gồm sẽ có tệp .aux riêng lưu trữ thông tin về các nhãn đã tạo và nội dung cho mục lục, danh sách hình, v.v. Bạn có thể dùng `\includeonly` với một danh sách tên tệp được phân tách bằng dấu phẩy (hãy chắc chắn rằng không có khoảng trắng ở đầu hoặc cuối). Nếu bạn làm như vậy, LaTeX sẽ chỉ xử lý các tệp có trong danh sách đó. Điều này có thể được dùng để tăng tốc độ biên dịch nếu bạn chỉ đang làm việc trên một phần nhỏ của một tài liệu lớn hơn. Tuy nhiên, số trang và các tham chiếu chéo vẫn sẽ hoạt động, vì các tệp .aux của những tệp bị bỏ qua vẫn sẽ được xử lý.

[Mở một ví dụ về một dự án lớn trên Overleaf](https://www.overleaf.com/project/new/template/20618?id=70769185\&templateName=Managing+a+large+project+on+Overleaf\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## Tiền đề trong một tệp riêng

Nếu phần tiền đề của tài liệu bạn có nhiều lệnh do người dùng định nghĩa hoặc định nghĩa thuật ngữ cho [thuật ngữ](/latex/vi/cau-truc-tai-lieu/05-glossaries.md), bạn có thể đặt nó trong một tệp riêng. Cách đúng là tạo một gói tùy chỉnh, tức là một tệp có phần mở rộng .sty. Hãy xem một ví dụ:

```latex
\ProvidesPackage{example}

\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[latin1]{inputenc}
\usepackage[spanish, english]{babel}
\usepackage{graphicx}
\usepackage{blindtext}
\usepackage{textcomp}
\usepackage{pgfplots}

\pgfplotsset{width=10cm,compat=1.9}

%Kiểu đầu trang
\usepackage{fancyhdr}
\setlength{\headheight}{15pt}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{#1}{}}
\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[RE]{\textbf{\textit{\nouppercase{\leftmark}}}}
\fancyhead[LO]{\textbf{\textit{\nouppercase{\rightmark}}}}
\fancypagestyle{plain}{ %
\fancyhf{} % xóa mọi thứ
\renewcommand{\headrulewidth}{0pt} % đồng thời xóa cả các đường kẻ
\renewcommand{\footrulewidth}{0pt}}

%làm cho các lệnh \proof, \qedsymbol và \theoremstyle khả dụng
\usepackage{amsthm}

%Thước kẻ
\newcommand{\HRule}{\rule{\linewidth}{0.5mm}}

%Định nghĩa bổ đề và bộ đếm bổ đề
\newtheorem{lemma}{Bổ đề}[section]

%Bộ đếm định nghĩa
\theoremstyle{definition}
\newtheorem{definition}{Định nghĩa}[section]

%Bộ đếm hệ quả
\newtheorem{corolary}{Hệ quả}[section]

%Các lệnh cho số tự nhiên, số nguyên, tôpô, hull, Ball, Disc, Dimension, biên và một vài thứ nữa
\newcommand{\E}{{\mathcal{E}}}
\newcommand{\F}{{\mathcal{F}}}
...

%Môi trường ví dụ
\theoremstyle{remark}
\newtheorem{examle}{Ví dụ}

%Bộ đếm ví dụ
\newcommand{\reiniciar}{\setcounter{example}{0}}
```

Tất cả các lệnh trong tệp này có thể đã được đặt trong phần tiền đề, nhưng tệp chính sẽ trở nên khó hiểu vì lượng mã lớn này, và việc xác định phần thân thực sự của tài liệu trong một tệp lớn như vậy sẽ là một nhiệm vụ cồng kềnh.

Tệp này cũng có thể được đặt trong một tệp .tex bình thường và được nhập bằng lệnh `import` (xem [phần tiếp theo](#importing-files)), nhưng một tệp .sty sẽ ngăn ngừa các lỗi có thể xảy ra nếu tệp vô tình bị nhập nhiều hơn một lần.

Lưu ý rằng dòng đầu tiên của ví dụ là

```latex
\ProvidesPackage{example}
```

điều này có nghĩa là chúng ta phải nhập gói này như *ví dụ* trong tệp chính, tức là bằng lệnh

```latex
\usepackage{example}
```

như được hiển thị trong [phần giới thiệu](#introduction).

*Lưu ý: Một tệp .sty linh hoạt hơn nhiều, nó có thể được dùng để định nghĩa các macro của riêng bạn và có thể truyền các tham số tùy chọn, xem* [*Viết gói của riêng bạn*](/latex/vi/tep-lop/03-writing-your-own-package.md).

[Mở một ví dụ về một dự án lớn trên Overleaf](https://www.overleaf.com/project/new/template/20618?id=70769185\&templateName=Managing+a+large+project+on+Overleaf\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## Sử dụng gói import

Như đã đề cập ở trên, các công cụ tiêu chuẩn để chèn một tệp LaTeX vào một tệp khác là `\input` và `\include`, nhưng chúng dễ bị lỗi nếu cần nhập tệp lồng nhau. Vì lý do này, bạn có thể muốn xem xét gói **import**.

Dưới đây là một ví dụ về một cuốn sách có các chương và các lệnh do người dùng định nghĩa được lưu trong các tệp riêng, và trong đó các tệp hình ảnh cho mỗi chương được lưu trong các thư mục riêng cùng với tệp .tex của từng chương.

```latex
\documentclass[a4paper,11pt]{book}
\usepackage{import}
\usepackage{example}

\usepackage{makeidx}
\makeindex

\begin{document}

\frontmatter
\import{./}{title.tex}

\clearpage
\thispagestyle{empty}

\tableofcontents

\mainmatter
\chapter{Chương đầu tiên}
\import{sections/}{section1-1.tex}
\import{sections/}{section1-2.tex}

\chapter{Chương bổ sung}
\import{sections/}{section2-1.tex}

\chapter{Chương cuối cùng}
\import{sections/}{section3-1.tex}

\backmatter

\import{./}{bibliography.tex}

\end{document}
```

Như bạn thấy, ví dụ là một cuốn sách với ba chương và nhiều mục trong một tệp chính gọn gàng, tệp này kéo các tệp bên ngoài vào để tạo ra tài liệu cuối cùng. Lệnh `\frontmatter` trong lớp tài liệu book được dùng cho những trang đầu tiên của tài liệu, kiểu đánh số trang được đặt thành chữ số La Mã bởi lệnh này; lệnh `\mainmatter` đặt lại việc đánh số trang và chuyển kiểu sang chữ số Ả Rập, `\backmatter` vô hiệu hóa việc đánh số chương (phù hợp cho thư mục tài liệu tham khảo và các phụ lục).

```latex
\chapter{Chương đầu tiên}
\import{sections/}{section1-1.tex}
\import{sections/}{section1-2.tex}
```

Trước hết, hãy thêm dòng này vào phần tiền đề của tài liệu bạn:

```latex
\usepackage{import}
```

Sau đó dùng `\import{ }{ }`tham số đầu tiên trong dấu ngoặc nhọn là thư mục nơi tệp nằm, nó có thể tương đối so với thư mục làm việc hiện tại hoặc là tuyệt đối. Tham số thứ hai là tên của tệp cần được nhập

Cũng có sẵn lệnh `\subimport` có cùng cú pháp, nhưng nếu được dùng trong một trong các tệp được nhập vào tệp chính, thì đường dẫn sẽ tương đối với tệp con đó. Ví dụ, dưới đây là nội dung của tệp "section1-1.tex" đã được nhập trong ví dụ trước:

```latex
\section{Phần thứ nhất}

Dưới đây là một biểu đồ 3D đơn giản

\begin{figure}[h]
\centering
\subimport{img/}{plot1.tex}
\caption{Chú thích}
\label{fig:my_label}
\end{figure}

[...]
```

Như bạn thấy, tệp này nhập một [biểu đồ pgf](/latex/vi/theo-linh-vuc/08-pgfplots-package.md) tệp có tên "plot1.tex" tạo ra một biểu đồ 3D. Tệp này được nhập bởi

```latex
\subimport{img/}{plot1.tex}
```

từ thư mục "img", nằm trong thư mục "sections".

Nếu `\import` được dùng thay vào đó, đường dẫn *img/* sẽ tương đối với tệp chính, thay vì với thư mục "sections" nơi "section1-1.tex" được lưu.

[Mở một ví dụ về một dự án lớn trên Overleaf](https://www.overleaf.com/project/new/template/20618?id=70769185\&templateName=Managing+a+large+project+on+Overleaf\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## Đọc thêm

Để biết thêm thông tin, xem:

* [Các dự án LaTeX nhiều tệp](/latex/vi/cau-truc-tai-lieu/08-multi-file-latex-projects.md)
* [Liên kết chéo các phần và phương trình](/latex/vi/cau-truc-tai-lieu/03-cross-referencing-sections-equations-and-floats.md)
* [Chỉ mục](/latex/vi/cau-truc-tai-lieu/04-indices.md)
* [Bảng thuật ngữ](/latex/vi/cau-truc-tai-lieu/05-glossaries.md)
* [Siêu liên kết](/latex/vi/cau-truc-tai-lieu/09-hyperlinks.md)
* [Đánh số trang](/latex/vi/dinh-dang/03-page-numbering.md)
* [Tài liệu một mặt và hai mặt](/latex/vi/dinh-dang/08-single-sided-and-double-sided-documents.md)
* [Nhiều cột](/latex/vi/dinh-dang/09-multiple-columns.md)
* [Định dạng đoạn văn](/latex/vi/dinh-dang/04-articles-how-to-change-paragraph-spacing-in-latex.md)
* [Kích cỡ trang và lề](/latex/vi/dinh-dang/07-page-size-and-margins.md)
* [Bộ đếm](/latex/vi/dinh-dang/10-counters.md)
* [Ghi chú lề](/latex/vi/dinh-dang/15-margin-notes.md)
* [In đậm, in nghiêng và gạch chân](/latex/vi/kien-thuc-co-ban-ve-latex/03-bold-italics-and-underlining.md)
* [Kích thước phông chữ, họ phông và kiểu chữ](/latex/vi/phong-chu/01-font-sizes-families-and-styles.md)
* [Kiểu chữ](/latex/vi/phong-chu/02-font-typefaces.md)
* [Hỗ trợ phông chữ hiện đại với XeLaTeX](/latex/vi/phong-chu/03-xelatex.md)
* [Hỗ trợ ngôn ngữ quốc tế](/latex/vi/ngon-ngu/03-international-language-support.md)
* [Kích thước phông chữ, họ phông và kiểu chữ](/latex/vi/phong-chu/01-font-sizes-families-and-styles.md)
* [Viết gói của riêng bạn](/latex/vi/tep-lop/03-writing-your-own-package.md)
* [Viết lớp của riêng bạn](/latex/vi/tep-lop/04-writing-your-own-class.md)
* [Phần giới thiệu về LaTeX2ε không quá ngắn](http://www.ctan.org/tex-archive/info/lshort/)
* [`import` tài liệu gói](ftp://sunsite.icm.edu.pl/pub/CTAN/macros/latex/contrib/import/import.pdf)


---

# 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/cau-truc-tai-lieu/07-management-in-a-large-project.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.
