Sunday, June 14, 2015

Как сделать несколько списков литературы в BibTeX

Я расскажу, как в LaTeX сделать несколько библиографических списков с помощью BibTeX. Например, если нужно сделать независимые списки после каждой главы в LaTeX, или разделить литературу на основную и дополнительную.

Работающее решение - использовать пакет multibbl. Вот пример tex-документа, который я нашел в сети:

\documentclass{article}
\usepackage{multibbl}
\usepackage{hyperref}

\newbibliography{main}
\newbibliography{appendix}

\title{A Document With Two Bibliographies}
\author{The Unreasonable Man}

\begin{document}
  \maketitle
  \tableofcontents
  
  \section{The Art of Computer Programming}
  You can look this up in Knuth's famous books
  \cite{main}{ArtCompProg1:2011,ArtCompProg2:1998,ArtCompProg3:2004}.
  
  \bibliographystyle{main}{plain}
  \bibliography{main}{bibfilename}{References 1}
  
  \appendix
  \section{Note on Sorting and Searching}
  Well, have a look at the book mentioned before \cite{appendix}{ArtCompProg3:2004}.
  
  \bibliographystyle{appendix}{plain}
  \bibliography{appendix}{bibfilename}{References 2}
  
\end{document
}


Подключаем пакет multibbl и объявляем служебные имена библиографических списков командой \newbibliography{ <имя списка> }. Не стоит использовать служебные имена:  \newbibliography{auxне сработало, пришлось переименовать в auxil.

В тексте документа к каждой команде ссылки на литературу добавляем имя списка, например \cite{appendix}{ArtCompProg3:2004}.

Сборка документа немного меняется. Если файл (см. пример выше) называется article.tex, нужно вызвать

pdflatex multibbl
bibtex main
bibtex appendix
pdflatex multibbl
pdflatex multibbl

Кстати! Библиографическая ссылка на книгу появится во всех списках, с именами которых она была процитирована.

Вот так можно легко сделать несколько библиографических списков с BibTex'ом.




No comments:

Post a Comment