Estoy usando multibib
y natbib
juntos para obtener dos bibliografías diferentes (una para el texto principal y otra para el apéndice). Aquí hay un código de ejemplo.
\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}
Sin embargo, la segunda bibliografía no aparece y la cita en el apéndice solo da un "?". Busqué en el multibib
manual y en otras preguntas similares, pero no consigo dónde está el error.
ACTUALIZACIÓN 1 Esto sucede aunque ejecuto el archivo bibtex dos veces. Aquí está el log
archivo:
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
ACTUALIZACIÓN 2: Creo que el problema es que mi TexStudio no ejecuta el sec.aux
archivo que genera el enlace a la segunda bibliografía. Seguí los pasos de este enlace.https://sourceforge.net/p/texstudio/wiki/Tips%20and%20Tricks/y creé .cwl
y lo agregué a TexStudio Completion pero todavía no funciona.
Respuesta1
Usar multibib
los resultados después de la primera ejecución de compilación del archivo mwe.tex
con pdflatex
(o en su caso compilar con TeXStudio) en dos archivos nuevos mwe.aux
y apndx.aux
. Ambos .aux
archivos deben ejecutarse con bibtex
. TeXStudio ejecuta el bibtex
archivo for mwe.aux
, ya que apndx.aux
usted debe hacerlo usted mismo. Simplemente ejecute el comando bibtex apndx
en una terminal de Windows. Después de eso, puedes compilar dos veces con TeXStudio para obtener el PDF resultante.
Para que el comando \citeapndx
se ejecute en el título de una figura (su pregunta en los comentarios), debe usar un comando \protect
como (lo mismo para a \section
):
\caption{In figure caption \protect\citeapndx{Johnson2000}}
% ^^^^^^^^
Entonces, con el siguiente archivo mwe.tex
(el paquete filecontents
solo se usa para tener los archivos bib y el código tex en un MWE compilador):
% 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}
y la cadena de compilación (independiente de TeXStudio):
- abra una ventana de terminal en Windows presionando la tecla de inicio de Windows y
R
, luego escribacmd
, presione Entrar - vaya al directorio donde tiene su código tex y los archivos bib con
cd <directory path>
- ejecutar comando
pdflatex mwe
(lo que da como resultado dos.aux
archivos necesarios) - ejecutar comando
bibtex mwe
(compilamwe.aux
) - ejecutar comando
bibtex apndx
(compilaapndx.aux
) - ejecutar comando
pdflatex mwe
(lo que da como resultado archivos*.bbl
y*.blg
) - ejecutar comando
pdflatex mwe
(lo que da como resultadopdf
un archivo con bibliografía)
Si está utilizando un editor (TeXStudio, TeXnicCenter, ...), el editor puede ejecutar pdflatex mwe
y bibtex mwe
por usted, pero no bibtex apndx
. Así que ejecute este comando después de la primera compilación con TeXStudio en una terminal de Windows...
Después de ejecutar la cadena de compilación, obtienes el siguiente pdf resultante: