Я использую multibib
и natbib
вместе, чтобы получить две разные библиографии (одну для основного текста и одну для приложения). Вот пример кода
\documentclass[12pt]{article}
\usepackage{natbib}
\usepackage{multibib}
\newcites{apndx}{References}
\begin{document}
First paper to cite: \cite{X1}
\bibliographystyle{ecca}
\bibliography{XXX}
\appendix
Cite a paper in the appendix \citeapndx{X2}
\bibliographystyleapndx{ecca}
\bibliographyapndx{XXX}
\end{document}
Однако вторая библиография не отображается, а ссылка в приложении дает только "?". Я посмотрел в руководстве multibib
и в других похожих вопросах, но не понял, где ошибка.
ОБНОВЛЕНИЕ 1 Это происходит, даже если я запускаю файл bibtex дважды. Вот файл log
:
Process started: /Library/TeX/texbin/bibtex "prova".aux
This is BibTeX, Version 0.99d (TeX Live 2016)
The top-level auxiliary file: prova.aux
The style file: plain.bst
Database file #1: myrefs.bib
Process exited normally
Process started: /Library/TeX/texbin/bibtex "prova".aux
This is BibTeX, Version 0.99d (TeX Live 2016)
The top-level auxiliary file: prova.aux
The style file: plain.bst
Database file #1: myrefs.bib
Process exited normally
ОБНОВЛЕНИЕ 2: Я думаю, проблема в том, что мой TexStudio не запускаетsec.aux
, который генерирует ссылку на вторую библиографию. Я выполнил шаги по этой ссылкеhttps://sourceforge.net/p/texstudio/wiki/Tips%20and%20Tricks/и создал .cwl
и добавил его в TexStudio Completion, но он все еще не работает.
решение1
Использование multibib
результатов после первого компиляционного запуска файла mwe.tex
с помощью pdflatex
(или в вашем случае компиляции с помощью TeXStudio) в двух новых файлах mwe.aux
и apndx.aux
. Оба .aux
файла необходимо запустить с помощью bibtex
. TeXStudio выполняет запуск с помощью bibtex
for file mwe.aux
, поскольку apndx.aux
вам нужно сделать это самостоятельно. Просто запустите команду bibtex apndx
в терминале Windows. После этого вы можете скомпилировать два раза с помощью TeXStudio, чтобы получить результирующий PDF.
Чтобы команда \citeapndx
была запущена в подписи к рисунку (ваш вопрос в комментариях), вам нужно использовать команду \protect
вида (то же самое для a \section
):
\caption{In figure caption \protect\citeapndx{Johnson2000}}
% ^^^^^^^^
Итак, в следующем файле mwe.tex
(пакет filecontents
используется только для того, чтобы иметь и файлы bib, и код tex в одном компилируемом MWE):
% needs: bibtex apndx
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@inproceedings{Creighton2006,
author = {Creighton, Oliver and Ott, Martin and Bruegge, Bernd},
booktitle = {Requirements Engineering, 14th IEEE International Conference},
isbn = {0769525555},
pages = {109--118},
publisher = {IEEE},
title = {{Software cinema-video-based requirements engineering}},
url = {http://ieeexplore.ieee.org/xpls/abs{\_}all.jsp?arnumber=1704054},
year = {2006},
}
\end{filecontents}
\begin{filecontents}{apndx.bib}
@article{Johnson2000,
author = {Johnson, W Lewis and Rickel, Jeff W and Lester, James C},
journal = {International Journal of Artificial Intelligence in Education},
number = {11},
pages = {47--78},
title = {{Animated pedagogical agents: face-to-face interaction in
interactive learning environments}},
volume = {Internatio},
year = {2000},
}
\end{filecontents}
\documentclass[12pt]{article}
\usepackage{natbib}
\usepackage{multibib}
\usepackage{graphicx}
\newcites{apndx}{References in Appendix}
\begin{document}
First paper to cite: \cite{Creighton2006}
\bibliographystyle{ecca}
\bibliography{\jobname}
\appendix
Cite a paper in the appendix \citeapndx{Johnson2000}
%\section{In the appendix \protect\citeapndx{Johnson2000}} % <===========
\begin{figure}
\centering
\includegraphics[width=5cm]{example-image-a}
\caption{In figure caption \protect\citeapndx{Johnson2000}} % <=======
\label{fig:example-image-a}
\end{figure}
\bibliographystyleapndx{ecca}
\bibliographyapndx{apndx}
\end{document}
и цепочка компиляции (независимая от TeXStudio):
- откройте окно терминала в Windows, нажав клавишу «Пуск» Windows
R
, затем введите иcmd
нажмите «Ввод». - перейдите в каталог, где у вас находится ваш код tex и файл(ы) bib с
cd <directory path>
- выполнить команду
pdflatex mwe
(в результате чего появятся два необходимых.aux
файла) - выполнить команду
bibtex mwe
(компилируетmwe.aux
) - выполнить команду
bibtex apndx
(компилируетapndx.aux
) - выполнить команду
pdflatex mwe
(результатом станут файлы*.bbl
и*.blg
) - выполнить команду
pdflatex mwe
(результатом станетpdf
файл с библиографией)
Если вы используете редактор (TeXStudio, TeXnicCenter, ...), редактор может запустить pdflatex mwe
и bibtex mwe
для вас, но не bibtex apndx
. Поэтому выполните эту команду после первой компиляции, запущенной с TeXStudio в терминале Windows ...
После запуска цепочки компиляции вы получите следующий результирующий PDF-файл: