> 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-hoi-and-tra-loi/07-creating-multiple-bibliographies-in-the-same-document.md).

# Tạo nhiều thư mục tài liệu tham khảo trong cùng một tài liệu

## Giới thiệu

Bài viết này sẽ thảo luận về cách bạn có thể tạo nhiều danh mục tài liệu tham khảo trong cùng một tài liệu LaTeX bằng cách sử dụng các gói thích hợp. Theo mặc định, mỗi tài liệu LaTeX chỉ có thể chứa một danh mục tài liệu tham khảo hoặc danh sách tài liệu tham khảo, hoặc với một `\begin{thebibliography}\bibitem...\end{thebibliography}` danh sách hoặc với `\bibligraphystyle{...}\bibliography{...}`, hoặc `\printbibliography`. Nhưng có những tình huống bạn có thể cần tạo *nhiều danh mục tài liệu tham khảo*. Bạn có thể muốn có một danh mục tài liệu tham khảo riêng cho mỗi chương, thay vì cho toàn bộ tài liệu. Hoặc bạn có thể muốn có các danh mục tài liệu tham khảo riêng cho các loại và chủ đề khác nhau.

Nếu bạn cố gắng đáp ứng các tình huống này bằng cách đặt nhiều `\bibliography` lệnh gọi ở các vị trí khác nhau trong tài liệu LaTeX của bạn, bạn sẽ thấy rằng chúng đều chứa cùng một danh sách mục, bao gồm *tất cả* trích dẫn trong toàn bộ tài liệu của bạn. Thay vào đó, bạn sẽ phải sử dụng các gói LaTeX thích hợp để tạo đúng các danh mục tài liệu tham khảo riêng biệt.

Trước hết, bạn cần xác định xem bạn đang dùng [BibTeX](/latex/vi/tai-lieu-tham-khao-va-trich-dan/01-bibliography-management-with-bibtex.md) hoặc [biblatex](/latex/vi/tai-lieu-tham-khao-va-trich-dan/03-bibliography-management-with-biblatex.md): chúng yêu cầu các gói khác nhau và không thể trộn lẫn. Nếu bạn đang dùng một mẫu do nhà xuất bản hoặc trường đại học cung cấp, hãy kiểm tra xem mẫu ví dụ có `.tex` tệp chứa `\printbibliography` hoặc `\addbibresource`. Nếu có, bạn đang dùng `biblatex`, vì vậy hãy chuyển đến phần [ở đây](#with-biblatex). Nếu không, rất có thể bạn đang dùng BibTeX, vì vậy hãy tiếp tục đọc [ở đây](#packages-for-bibtex).

## Các gói cho BibTeX

### Gói chapterbib

Nếu bạn chỉ cần có một danh mục tài liệu tham khảo ở cuối mỗi chương của sách/luận văn, gói `chapterbib` có thể là tất cả những gì bạn cần.

1. *Mỗi chương nên ở trong một `.tex` tệp riêng của nó.* Viết

   ```latex
   \bibliographystyle{...}
   \bibliography{...}
   ```

   ở cuối mỗi chương trong mỗi `.tex` tệp. Bạn có thể chỉ định một `.bib` tệp cho mỗi chương trong `\bibliography`.
2. Trong "tài liệu chính" của bạn `.tex` tệp, hãy nạp `chapterbib` gói. Tùy chọn `sectionbib` gói này hữu ích nếu bạn muốn danh mục tài liệu tham khảo của mỗi chương xuất hiện như một mục không đánh số thay vì một chương không đánh số sau chương thực tế.

   ```latex
   \usepackage[sectionbib]{chapterbib}
   ```
3. Sử dụng `\include` trong tệp tài liệu chính để đưa vào từng `.tex` các tệp. *`\input` sẽ **không** hoạt động cùng với `chapterbib` để tạo các danh mục tài liệu tham khảo theo từng chương!*
4. Nếu biên dịch trên máy cục bộ: Việc biên dịch tài liệu chính của bạn `.tex` sẽ tạo ra nhiều `.aux` tệp, mỗi tệp cho một chương `.tex` tệp mà bạn đã đưa vào. Bây giờ bạn phải chạy `bibtex` trên tất cả các `.aux` tệp này, trước khi biên dịch lại tài liệu chính `.tex` tệp. [Công cụ biên dịch của Overleaf, `latexmk`,](/latex/vi/co-so-tri-thuc/064-how-does-overleaf-compile-my-project.md) sẽ tự động xử lý tất cả các bước này, vì vậy bạn chỉ cần nhấp vào **"Recompile"** nút một lần.

Lưu ý rằng bạn *không được* viết `\bibliobraphy{...}` trong tài liệu chính của bạn `.tex` tệp khi sử dụng `chapterbib`BibTeX. Nếu không, bạn có thể nhận được rất nhiều thông báo lỗi BibTeX về *"Không hợp lệ; một lệnh \bibdata khác"*. Nếu bạn cũng cần có một danh mục tài liệu tham khảo "toàn cục" thu thập tất cả các trích dẫn trong toàn bộ tài liệu, thì `bibunits` gói này có thể là lựa chọn tốt hơn.

[Mở một ví dụ trong Overleaf](https://www.overleaf.com/project/new/template/5694?id=8827885\&mainFile=main.tex\&templateName=Per-chapter+bibliographies+with+chapterbib)

### Gói bibunits

Tính năng `bibunits` gói cũng có thể được dùng để tạo các danh mục tài liệu tham khảo theo từng chương, và các chương không cần phải nằm trong các `.tex` các tệp.

1. Bắt đầu bằng cách viết `\usepackage[sectionbib]{bibunits}` trong tài liệu chính của bạn `.tex`phần tiền đề của nó.
2. Để dùng cùng một `.bib` tệp và kiểu danh mục tài liệu tham khảo cho tất cả các trích dẫn trong tài liệu của bạn, hãy dùng `\defaultbibliographystyle{...}` và `\defaultbibliography{...}` các lệnh sau khi nạp `bibunits`. Ví dụ:

   ```latex
   \defaultbibliographystyle{unsrt}
   \defaultbibliography{references} % tên của tệp .bib không có phần mở rộng
   ```
3. Thêm `\bibliographyunit[\chapter]` sau `\begin{document}`.
4. Ở cuối mỗi chương, thêm `\putbib`. Khi đó nó sẽ in danh mục tài liệu tham khảo cho tất cả các lần xuất hiện của `\cite` đã xuất hiện kể từ lần gần nhất `\chapter`. (Bạn có thể viết `\bibliographyunit` mà không có đối số nào ở một vị trí sau trong tài liệu để tắt việc tự động `bibunit`hóa các chương.)
5. Nếu biên dịch trên máy cục bộ: Việc biên dịch tài liệu chính của bạn `.tex` sẽ tạo ra nhiều `.aux` tệp, mỗi tệp cho một chương `.tex` tệp mà bạn đã đưa vào. Bây giờ bạn phải chạy `bibtex` trên tất cả các `.aux` tệp này, trước khi biên dịch lại tài liệu chính `.tex` tệp. [Công cụ biên dịch của Overleaf, `latexmk`,](/latex/vi/co-so-tri-thuc/064-how-does-overleaf-compile-my-project.md) sẽ tự động xử lý tất cả các bước này, vì vậy bạn chỉ cần nhấp vào **"Recompile"** nút một lần.

[Mở một ví dụ trong Overleaf](https://www.overleaf.com/project/new/template/5695?id=8828133\&mainFile=main.tex\&templateName=Per-chapter+bibliographies+with+bibunits)

Một vài mẹo bổ sung:

* Nếu bạn đang dùng một `.bib` tệp khác cho mỗi chương/đơn vị, bạn có thể chỉ định nó làm đối số tùy chọn cho `\putbib`, ví dụ. `\putbib[chap1refs]`—lưu ý, không có `.bib` phần mở rộng.
* Nếu bạn cần chia tài liệu của mình thành các "đơn vị tài liệu tham khảo" tùy ý (tức là không bị giới hạn trong `\chapter` hoặc các lệnh tiêu đề phần khác) với các trích dẫn và danh mục tài liệu tham khảo tự chứa, bạn có thể dùng `bibunit` môi trường, với một `\putbib` bên trong:

  ```latex
  \begin{bibunit}
  ...\cite{smith2012} and \cite{wilkins2008}...
  \putbib
  \end{bibunit}
  ```

  Nếu bạn cần một kiểu khác cho một `bibunit` tức là khác với `\defaultbibliographystyle{...}` mà bạn đã chỉ định, bạn có thể truyền nó như một đối số tùy chọn cho `bibunit`: `\begin{bibunit}**[plain]**`
* Nếu bạn cũng cần một danh mục tài liệu tham khảo "toàn cục" bao gồm tất cả các trích dẫn từ mọi chương hoặc bibunit, hãy thêm `globalcitecopy` tùy chọn khi nạp `bibunits` gói: `\usepackage[sectionbib,**globalcitecopy**]{bibunits}`

### Gói multibib

Đôi khi bạn có thể muốn có các danh mục tài liệu tham khảo riêng cho các hạng mục khác nhau. Một cách để thực hiện điều này là dùng `multibib` gói. Ví dụ, để tạo một danh sách tài liệu tham khảo cho các tài liệu liên quan đến hóa học và một danh sách cho các tài liệu liên quan đến vật lý, các bước cần thực hiện là:

1. Nạp `multibib` gói, và dùng `\newcites` lệnh để tạo các kiểu danh mục "`Math`" và "`Phys`" của danh mục tài liệu tham khảo. Chúng sẽ có tiêu đề danh mục là "Tài liệu đọc về Toán" và "Tài liệu đọc về Vật lý".

   ```latex
   \usepackage[resetlabels,labeled]{multibib}

   \newcites{Math}{Tài liệu đọc về Toán}
   \newcites{Phys}{Tài liệu đọc về Vật lý}
   ```

   Bạn có thể dùng các giá trị phân tách bằng dấu phẩy để tạo nhiều kiểu danh mục tài liệu tham khảo trong cùng một `\newcites{}` lệnh; chỉ cần chắc chắn rằng bạn cũng đã chỉ định đúng số lượng tiêu đề danh mục tài liệu tham khảo:

   ```latex
   \newcites{Math,Phys}{Tài liệu đọc về Toán,Tài liệu đọc về Vật lý}
   ```
2. Đối với mỗi danh mục tài liệu tham khảo mới `X`, giờ bạn có các lệnh mới `\citeX`, `\bibliographystyleX`, `\bibliographyX`. Vì vậy, giờ bạn sẽ có

   * `\citeMath`, `\bibliographystyleMath`, `\bibliographyMath`
   * `\citePhys`, `\bibliographystylePhys`, `\bibliographyPhys`

   ngoài mặc định `\cite`, `\bibliographystyle`, `\bibliography`

   Bây giờ bạn có thể dùng `\bibliographystyle`, `\bibliographystyleMath`, `\bibliographystylePhys` để chỉ định kiểu cho từng danh mục tài liệu tham khảo; và chỉ định `.bib` tệp cho mỗi `\bibliography`, `\bibliographyMath`, `\bibliographyPhys`. (Kiểu danh mục tài liệu tham khảo thường nhất quán trên tất cả các danh mục, nhưng bạn có thể dùng các `.bib` tệp khác nhau.)

   ```latex
   \cite{paper1} và \cite{paper2} được xuất bản sau
   \citeMath{paper3}. Xem thêm \citePhys{paper4}.

   \bibliographystyle{unsrt}
   \bibliography{references}

   \bibliographystyleMath{unsrt}
   \bibliographyMath{refs-etc}

   \bibliographystylePhys{unsrt}
   \bibliographyPhys{refs-etc}
   ```

   Trong ví dụ này, `paper1` và `paper2` được định nghĩa trong `references.bib` và sẽ được liệt kê trong danh mục tài liệu tham khảo mặc định. `paper3` sẽ được liệt kê trong danh mục "Tài liệu đọc về Toán"; `paper4` trong danh mục "Tài liệu đọc về Vật lý"; cả hai `paper3` và `paper4` được định nghĩa trong `refs-etc.bib` .
3. Nếu biên dịch trên máy cục bộ: Việc biên dịch tài liệu chính của bạn `.tex` sẽ tạo ra nhiều `.aux` tệp. Bây giờ bạn phải chạy `bibtex` trên tất cả các `.aux` tệp này, trước khi biên dịch lại tài liệu chính `.tex` tệp lại. Trên Overleaf, bạn chỉ cần nhấp vào **Biên dịch lại** nút và nó sẽ tự động xử lý tất cả các bước này.

[Mở một ví dụ trong Overleaf](https://www.overleaf.com/project/new/template/18645?id=3104751\&latexEngine=pdflatex\&mainFile=main.tex\&templateName=Multiple+Bibliographies+with+multibib)

## Với biblatex

Nếu bạn đang dùng gói biblatex, thì bạn **không nên** nạp bất kỳ gói nào được nhắc đến ở các phần trước: bao gồm cả `natbib`, `chapterbib`, `bibunits`, `multibib`.

### Danh mục tài liệu tham khảo theo từng chương

Tính năng `biblatex` gói có một `refsection` cơ chế, tương tự như một "`bibunit`".

1. Bạn có thể có `biblatex` tự động bắt đầu một `refsection` khi nó gặp `\chapter`, bằng cách thêm **`refsection=chapter`** tùy chọn khi nạp `biblatex`:

   ```latex
   \usepackage[natbib,style=authoryear,refsection=chapter]{biblatex}
   \addbibresource{refs.bib}
   ```
2. Sau đó bạn có thể đặt một `\printbibliography` ở cuối mỗi `\chapter`, để chỉ liệt kê các trích dẫn đã xuất hiện kể từ lần gần nhất `\chapter`. Trong ví dụ mã bên dưới, chúng tôi cũng dùng `heading=subbibintoc` tùy chọn cho `\printbibliography`, để danh mục tài liệu tham khảo được in ở cuối chương như một mục không đánh số (`subbib`) thay vì một chương không đánh số; và để nó được đưa vào mục lục (`intoc`).

   ```latex
   \chapter{Chương đầu tiên}

   \section{Tiêu đề phần}
   Đây là một trích dẫn! \citep{latex:companion}
   \printbibliography[heading=subbibintoc]


   \chapter{Chương thứ hai}

   \section{Tiêu đề phần}
   Đây là một trích dẫn khác! \citep{lshort}
   \printbibliography[heading=subbibintoc]
   ```
3. Ngoài ra, bạn có thể đặt `\begin{refsection}...\end{refsection}` bao quanh từng chương, hoặc quanh các khối văn bản tùy ý. Đừng dùng `refsection=chapter` tùy chọn này trong trường hợp này:

   ```latex
   \usepackage[natbib,style=authoryear]{biblatex}
   \addbibresource{refs.bib}
   ...
   \begin{refsection}
   \chapter{Chương đầu tiên}
   \section{Tiêu đề phần}
   Đây là một trích dẫn! \citep{latex:companion}
   \printbibliography[heading=subbibintoc]
   \end{refsection}

   \begin{refsection}
   \chapter{Chương thứ hai}
   \section{Tiêu đề phần}
   Đây là một trích dẫn khác! \citep{lshort}
   \printbibliography[heading=subbibintoc]
   \end{refsection}

   %% Có thể tạo một danh sách các ấn phẩm bằng cách này
   \begin{refsection}
   \nocite{paper1,paper2}
   %% Ở đây chúng ta muốn một chương không đánh số, nhưng với một tiêu đề khác
   \printbibliography[title={Danh sách ấn phẩm}]
   \end{refsection}
   ```

[Mở một ví dụ trong Overleaf.](https://www.overleaf.com/docs?snip_uri=https://assets.ctfassets.net/nrgyaltdicpt/3mfINcJWZRlegHyXND3SEQ/7843cab4a5d022161a43bea6662bc00b/biblatex-perchapter.zip) Trong ví dụ này, `main.tex` sử dụng `[refsection=chapter]` tùy chọn gói, trong khi `alt.tex` sử dụng phần được chèn thủ công `refsection` môi trường.

### Danh mục tài liệu tham khảo cho các hạng mục khác nhau

Bạn có thể dùng từ khóa hoặc hạng mục để tạo các danh mục tài liệu tham khảo riêng dựa trên các chủ đề khác nhau.

#### Sử dụng từ khóa

1. Theo cách này, bạn cần thêm một **`keywords`** trường vào mục tham khảo của bạn trong `.bib` tệp. Ví dụ:

   ```bibtex
   @article{paper4,
     title={Các máy va chạm năng lượng cao như những nhà máy hố đen...},
     ...
     keywords={phys}
   }
   ```
2. Trích dẫn các tài liệu tham khảo của bạn như bình thường.
3. Sau đó đưa ra một số `\printbibliography` lệnh trong khi chỉ định từ khóa nào `từ khóa` để bao gồm. Bạn có thể đặt các `title`cho từng `\printbibliography` lệnh:

   ```latex
   % Danh mục tài liệu tham khảo "chính"
   \printbibliography[notkeyword={math},notkeyword={phys}]

   % Danh mục tài liệu tham khảo Toán
   \printbibliography[keyword={math},title={Tài liệu đọc về Toán}]

   % Danh mục tài liệu tham khảo Vật lý
   \printbibliography[keyword={phys},title={Tài liệu đọc về Vật lý}]
   ```

[Mở một ví dụ trong Overleaf](https://www.overleaf.com/docs?snip_uri=https://assets.ctfassets.net/nrgyaltdicpt/3Bt5Tf9eSCtcXQrGshjQJT/7c64c3820a4adc4e20468aee752dc1e9/biblatex-keywords.zip)

#### Sử dụng các hạng mục

1. Theo cách này, bạn không cần thêm bất kỳ trường bổ sung nào vào `.bib` tệp của mình. Thay vào đó, bạn sẽ khai báo các kiểu hạng mục và thêm các tài liệu tham khảo vào từng hạng mục, trong `.tex` phần tiền đề của tệp:

   ```latex
   \addbibresource{refs-nokeywords.bib}
   \DeclareBibliographyCategory{math}
   \DeclareBibliographyCategory{phys}
   \addtocategory{math}{paper3}
   \addtocategory{phys}{paper4}
   ```
2. Trích dẫn các tài liệu tham khảo của bạn như bình thường.
3. Sau đó đưa ra một số `\printbibliography` các lệnh, mỗi lệnh chỉ định `hạng mục` cần in.

   ```latex
   % Danh mục tài liệu tham khảo "chính"
   \printbibliography[notcategory={math},notcategory={phys}]

   % Danh mục tài liệu tham khảo Toán
   \printbibliography[category={math},title={Tài liệu đọc về Toán}]

   % Danh mục tài liệu tham khảo Vật lý
   \printbibliography[category={phys},title={Tài liệu đọc về Vật lý}]
   ```

[Mở một ví dụ trong Overleaf](https://www.overleaf.com/docs?snip_uri=https://assets.ctfassets.net/nrgyaltdicpt/6l5HYYfby0AscSXwLsWKPM/71b6fb3e848f473fc9d2735847af7ec1/biblatex-categories.zip)


---

# 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-hoi-and-tra-loi/07-creating-multiple-bibliographies-in-the-same-document.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.
