> 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/ru/voprosy-i-otvety/07-creating-multiple-bibliographies-in-the-same-document.md).

# Создание нескольких библиографий в одном документе

## Введение

В этой статье мы рассмотрим, как можно создать несколько библиографий в одном документе LaTeX, используя соответствующие пакеты. По умолчанию каждый документ LaTeX может содержать только одну библиографию или список литературы, либо с помощью `\begin{thebibliography}\bibitem...\end{thebibliography}` списка или с помощью `\bibligraphystyle{...}\bibliography{...}`, или `\printbibliography`. Но бывают ситуации, когда вам может понадобиться создать *несколько библиографий*. Возможно, вы захотите иметь отдельную библиографию для каждой главы, а не для всего документа. Или же вам могут понадобиться отдельные библиографии для разных категорий и тем.

Если вы попытаетесь учесть эти сценарии, вставив несколько `\bibliography` вызовов в разных местах вашего документа LaTeX, вы обнаружите, что все они содержат один и тот же список элементов, охватывающий *все* цитаты во всём документе. Вместо этого вам придётся использовать соответствующие пакеты LaTeX, чтобы правильно сгенерировать отдельные библиографии.

Сначала вам нужно определить, используете ли вы [BibTeX](/latex/ru/ssylki-i-citirovaniya/01-bibliography-management-with-bibtex.md) или [biblatex](/latex/ru/ssylki-i-citirovaniya/03-bibliography-management-with-biblatex.md): они требуют разных пакетов, которые нельзя смешивать. Если вы используете шаблон, предоставленный вашим издателем или университетом, проверьте, содержит ли пример шаблона `.tex` файл `\printbibliography` или `\addbibresource`. Если да, значит вы используете `biblatex`, так что переходите к разделу [здесь](#with-biblatex). В противном случае, скорее всего, вы используете BibTeX, так что продолжайте читать [здесь](#packages-for-bibtex).

## Пакеты для BibTeX

### Пакет chapterbib

Если вам просто нужна библиография в конце каждой главы вашей книги/диссертации, пакет `chapterbib` может оказаться всем, что вам нужно.

1. *Каждая глава должна быть в `.tex` отдельном файле.* Напишите

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

   в конце каждой главы в каждом `.tex` файле. Вы можете указать другой `.bib` файл для каждой главы в `\bibliography`.
2. В вашем «основном документе» `.tex` файле подключите `chapterbib` пакет. Параметр `sectionbib` пакета полезен, если вы хотите, чтобы библиография каждой главы выводилась как ненумерованный раздел, а не как ненумерованная глава после самой главы.

   ```latex
   \usepackage[sectionbib]{chapterbib}
   ```
3. Используйте `\include` в основном файле документа, чтобы подключать каждый из файлов ваших глав `.tex` файлов. *`\input` будет **не** работать с `chapterbib` для создания библиографий по главам!*
4. Если вы компилируете локально: компиляция основного документа `.tex` создаст несколько `.aux` файлов, по одному на каждую главу `.tex` файл, который вы подключили. Теперь вам нужно запустить `bibtex` на всех этих `.aux` файлах, прежде чем снова компилировать основной документ `.tex` файл. [Инструмент сборки Overleaf, `latexmk`,](/latex/ru/baza-znanii/064-how-does-overleaf-compile-my-project.md) автоматически выполнит все эти шаги обработки, так что всё, что вам нужно сделать, — это нажать кнопку **"Recompile"** один раз.

Обратите внимание, что вы *не должны* писать `\bibliobraphy{...}` в основном документе `.tex` файле при использовании `chapterbib`. Иначе вы можете получить множество сообщений об ошибках BibTeX о *"Illegal; another \bibdata command"*. Если вам также нужна «глобальная» библиография, которая собирает все цитаты во всём документе, пакет `bibunits` может оказаться лучшим выбором.

[Открыть пример в Overleaf](https://www.overleaf.com/project/new/template/5694?id=8827885\&mainFile=main.tex\&templateName=Per-chapter+bibliographies+with+chapterbib)

### Пакет bibunits

Это `bibunits` пакет также можно использовать для создания библиографий по главам, и главы не обязаны быть в отдельных `.tex` файлов.

1. Начните с добавления `\usepackage[sectionbib]{bibunits}` в основном документе `.tex`в преамбулу.
2. Чтобы использовать один и тот же `.bib` файл и стиль библиографии для всех цитат в вашем документе, используйте `\defaultbibliographystyle{...}` и `\defaultbibliography{...}` команды после подключения `bibunits`. Например:

   ```latex
   \defaultbibliographystyle{unsrt}
   \defaultbibliography{references} % имя файла .bib без расширения
   ```
3. Добавьте `\bibliographyunit[\chapter]` после `\begin{document}`.
4. В конце каждой главы добавьте `\putbib`. Это выведет библиографию для всех случаев `\cite` использования, которые появились после последней `\chapter`. (Вы можете написать `\bibliographyunit` без аргументов позже в документе, чтобы отключить автоматическое `bibunit`-ирование глав.)
5. Если вы компилируете локально: компиляция основного документа `.tex` создаст несколько `.aux` файлов, по одному на каждую главу `.tex` файл, который вы подключили. Теперь вам нужно запустить `bibtex` на всех этих `.aux` файлах, прежде чем снова компилировать основной документ `.tex` файл. [Инструмент сборки Overleaf, `latexmk`,](/latex/ru/baza-znanii/064-how-does-overleaf-compile-my-project.md) автоматически выполнит все эти шаги обработки, так что всё, что вам нужно сделать, — это нажать кнопку **"Recompile"** один раз.

[Открыть пример в Overleaf](https://www.overleaf.com/project/new/template/5695?id=8828133\&mainFile=main.tex\&templateName=Per-chapter+bibliographies+with+bibunits)

Несколько дополнительных советов:

* Если вы используете другой `.bib` файл для каждой главы/единицы, вы можете указать его как необязательный аргумент для `\putbib`, например `\putbib[chap1refs]`— обратите внимание, без `.bib` расширение.
* Если вам нужно разделить документ на произвольные «единицы библиографии» (то есть не ограниченные `\chapter` или другими командами заголовков разделов) со самостоятельными цитатами и библиографиями, вы можете использовать `bibunit` среду, с `\putbib` внутри неё:

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

  Если вам нужен другой стиль для конкретной `bibunit` то есть отличный от `\defaultbibliographystyle{...}` который вы указали, вы можете передать его как необязательный аргумент для `bibunit`: `\begin{bibunit}**[plain]**`
* Если вам также нужна «глобальная» библиография, включающая все цитаты из всех глав или bibunit, добавьте опцию `globalcitecopy` при подключении `bibunits` пакета: `\usepackage[sectionbib,**globalcitecopy**]{bibunits}`

### Пакет multibib

Иногда вам могут понадобиться отдельные библиографии для разных категорий. Один из способов сделать это — использовать пакет `multibib` пакет. Например, чтобы создать список литературы для ссылок, связанных с химией, и отдельный для ссылок, связанных с физикой, выполните следующие шаги:

1. Подключите `multibib` пакет и используйте `\newcites` для создания типов библиографий «`Math`» и «`Phys`»; в качестве заголовков библиографий будут «Math Readings» и «Physics Readings».

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

   \newcites{Math}{Math Readings}
   \newcites{Phys}{Physics Readings}
   ```

   Вы можете использовать значения, разделённые запятыми, чтобы создать несколько типов библиографии в одной `\newcites{}` команде; только убедитесь, что вы также указали правильное количество заголовков библиографии:

   ```latex
   \newcites{Math,Phys}{Math Readings,Physics Readings}
   ```
2. Для каждой новой библиографии `X`, у вас теперь есть новые команды `\citeX`, `\bibliographystyleX`, `\bibliographyX`. Поэтому теперь у вас будут

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

   в дополнение к стандартной `\cite`, `\bibliographystyle`, `\bibliography`

   Теперь вы можете использовать `\bibliographystyle`, `\bibliographystyleMath`, `\bibliographystylePhys` для задания стиля каждой библиографии; и указывать `.bib` файл для каждой `\bibliography`, `\bibliographyMath`, `\bibliographyPhys`. (Стиль библиографии часто одинаков для всех библиографий, но вы можете использовать разные `.bib` файлы.)

   ```latex
   "\cite{paper1}" и "\cite{paper2}" были опубликованы позже, чем
   "\citeMath{paper3}". См. также "\citePhys{paper4}".

   \bibliographystyle{unsrt}
   \bibliography{references}

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

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

   В этом примере `paper1` и `paper2` определены в `references.bib` и будут перечислены в стандартной библиографии. `paper3` будет перечислен в библиографии «Math Readings»; `paper4` в библиографии «Physics Readings»; оба `paper3` и `paper4` определены в `refs-etc.bib` файла.
3. Если вы компилируете локально: компиляция основного документа `.tex` создаст несколько `.aux` файла. Теперь вам нужно запустить `bibtex` на всех этих `.aux` файлах, прежде чем снова компилировать основной документ `.tex` файл снова. В Overleaf вам просто нужно нажать кнопку **Пересобрать** и она автоматически выполнит все эти шаги.

[Открыть пример в Overleaf](https://www.overleaf.com/project/new/template/18645?id=3104751\&latexEngine=pdflatex\&mainFile=main.tex\&templateName=Multiple+Bibliographies+with+multibib)

## С biblatex

Если вы используете пакет biblatex, то вам **не следует** подключать ни один из пакетов, упомянутых в предыдущих разделах: это включает `natbib`, `chapterbib`, `bibunits`, `multibib`.

### Библиографии по главам

Это `biblatex` Пакет имеет `refsection` механизм, похожий на «`bibunit`".

1. Вы можете `biblatex` автоматически начинать новый `refsection` когда он встречает `\chapter`, добавив опцию **`refsection=chapter`** при подключении `biblatex`:

   ```latex
   \usepackage[natbib,style=authoryear,refsection=chapter]{biblatex}
   \addbibresource{refs.bib}
   ```
2. Затем вы можете поместить `\printbibliography` в конце каждой `\chapter`, чтобы перечислить только те цитаты, которые появились после последней `\chapter`. В приведённом ниже примере кода мы также используем опцию `heading=subbibintoc` для `\printbibliography`, чтобы библиография выводилась в конце главы как ненумерованный раздел (`subbib`) а не как ненумерованная глава; и чтобы она была включена в оглавление (`intoc`).

   ```latex
   \chapter{First Chapter}

   \section{Section Heading}
   Вот цитата! \citep{latex:companion}
   \printbibliography[heading=subbibintoc]


   \chapter{Second Chapter}

   \section{Section Heading}
   Вот ещё одна цитата! \citep{lshort}
   \printbibliography[heading=subbibintoc]
   ```
3. В качестве альтернативы вы можете поместить `\begin{refsection}...\end{refsection}` вокруг каждой главы или вокруг произвольных блоков текста. Не используйте `refsection=chapter` эту опцию в этом случае:

   ```latex
   \usepackage[natbib,style=authoryear]{biblatex}
   \addbibresource{refs.bib}
   ...
   \begin{refsection}
   \chapter{First Chapter}
   \section{Section Heading}
   Вот цитата! \citep{latex:companion}
   \printbibliography[heading=subbibintoc]
   \end{refsection}

   \begin{refsection}
   \chapter{Second Chapter}
   \section{Section Heading}
   Вот ещё одна цитата! \citep{lshort}
   \printbibliography[heading=subbibintoc]
   \end{refsection}

   %% Список публикаций можно создать, используя этот подход
   \begin{refsection}
   \nocite{paper1,paper2}
   %% Здесь нам нужна ненумерованная глава, но с другим названием
   \printbibliography[title={List of Publications}]
   \end{refsection}
   ```

[Откройте пример в Overleaf.](https://www.overleaf.com/docs?snip_uri=https://assets.ctfassets.net/nrgyaltdicpt/3mfINcJWZRlegHyXND3SEQ/7843cab4a5d022161a43bea6662bc00b/biblatex-perchapter.zip) В этом примере `main.tex` использует `[refsection=chapter]` опцию пакета, тогда как `alt.tex` использует вставленную вручную `refsection` среды.

### Библиографии для разных категорий

Вы можете использовать ключевые слова или категории, чтобы создавать отдельные библиографии по разным темам.

#### Использование ключевых слов

1. В этом подходе вам нужно добавить **`ключевые слова`** поле к вашей записи-ссылке в `.bib` файле. Например:

   ```bibtex
   @article{paper4,
     title={High energy colliders as black hole factories...},
     ...
     keywords={phys}
   }
   ```
2. Цитируйте ваши ссылки как обычно.
3. Затем выполните несколько `\printbibliography` команд, указывая, какое `ключевое слово` включать. Вы можете задать разные `title`для каждой `\printbibliography` команду:

   ```latex
   % «Основная» библиография
   \printbibliography[notkeyword={math},notkeyword={phys}]

   % Библиография Math
   \printbibliography[keyword={math},title={Math Readings}]

   % Библиография Physics
   \printbibliography[keyword={phys},title={Physics Readings}]
   ```

[Открыть пример в Overleaf](https://www.overleaf.com/docs?snip_uri=https://assets.ctfassets.net/nrgyaltdicpt/3Bt5Tf9eSCtcXQrGshjQJT/7c64c3820a4adc4e20468aee752dc1e9/biblatex-keywords.zip)

#### Использование категорий

1. В этом подходе вам не нужно добавлять какие-либо дополнительные поля в ваш `.bib` файл. Вместо этого вы объявите типы категорий и добавите ссылки в каждую категорию в преамбуле вашего `.tex` файла:

   ```latex
   \addbibresource{refs-nokeywords.bib}
   \DeclareBibliographyCategory{math}
   \DeclareBibliographyCategory{phys}
   \addtocategory{math}{paper3}
   \addtocategory{phys}{paper4}
   ```
2. Цитируйте ваши ссылки как обычно.
3. Затем выполните несколько `\printbibliography` команд, каждая из которых указывает, какую `категорию` вывести.

   ```latex
   % «Основная» библиография
   \printbibliography[notcategory={math},notcategory={phys}]

   % Библиография Math
   \printbibliography[category={math},title={Math Readings}]

   % Библиография Physics
   \printbibliography[category={phys},title={Physics Readings}]
   ```

[Открыть пример в 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/ru/voprosy-i-otvety/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.
