Estou usando multibib
e natbib
juntos para obter duas bibliografias diferentes (uma para o texto principal e outra para o apêndice). Aqui está um código de exemplo
\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}
Porém, a segunda bibliografia não aparece e a citação no apêndice dá apenas um "?". Procurei no multibib
manual e em outras perguntas semelhantes, mas não entendi onde está o erro.
ATUALIZAÇÃO 1 Isso acontece mesmo que eu execute o arquivo bibtex duas vezes. Aqui está o log
arquivo:
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
ATUALIZAÇÃO 2: Acho que o problema é que meu TexStudio não executa o sec.aux
arquivo que gera o link para a segunda bibliografia. Eu segui os passos deste linkhttps://sourceforge.net/p/texstudio/wiki/Tips%20and%20Tricks/e criei um .cwl
e adicionei ao TexStudio Completion mas ainda não funciona.
Responder1
Usando multibib
os resultados após a primeira execução de compilação do arquivo mwe.tex
com pdflatex
(ou no seu caso compilando com o TeXStudio) em dois novos arquivos mwe.aux
e apndx.aux
. Ambos .aux
os arquivos precisam ser executados com bibtex
. TeXStudio executa for bibtex
file mwe.aux
, pois apndx.aux
você precisa fazer isso sozinho. Basta executar o comando bibtex apndx
em um terminal do Windows. Depois disso você pode compilar duas vezes com o TeXStudio para obter o PDF resultante.
Para que o comando \citeapndx
seja executado na legenda de uma figura (sua pergunta nos comentários), você precisa usar um comando \protect
como (o mesmo para a \section
):
\caption{In figure caption \protect\citeapndx{Johnson2000}}
% ^^^^^^^^
Assim, com o seguinte arquivo mwe.tex
(o pacote filecontents
é usado apenas para ter os arquivos bib e o código tex em um MWE de compilação):
% 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}
e a cadeia de compilação (independente do TeXStudio):
- abra uma janela de terminal no Windows pressionando a tecla Iniciar do Windows e
R
, em seguida, digitecmd
e pressione Enter - vá para o diretório onde você tem seu código tex e o(s) arquivo(s) bib com
cd <directory path>
- execute o comando
pdflatex mwe
(resultando em dois.aux
arquivos necessários) - executar comando
bibtex mwe
(compilamwe.aux
) - executar comando
bibtex apndx
(compilaapndx.aux
) - executar comando
pdflatex mwe
(resultando em arquivos*.bbl
e*.blg
) - executar comando
pdflatex mwe
(resultando empdf
arquivo com bibliografia)
Se você estiver usando um editor (TeXStudio, TeXnicCenter, ...) o editor pode rodar pdflatex mwe
e bibtex mwe
para você, mas não bibtex apndx
. Então execute este comando após a primeira compilação executada com o TeXStudio em um terminal windows ...
Depois de executar a cadeia de compilação, você obtém o seguinte pdf resultante: