Ich verwende multibib
und natbib
zusammen, um zwei verschiedene Bibliographien zu erhalten (eine für den Haupttext und eine für den Anhang). Hier ist ein Beispielcode
\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}
Allerdings taucht die zweite Bibliographie nicht auf und die Quellenangabe im Anhang enthält nur ein "?". Ich habe im multibib
Handbuch und in anderen ähnlichen Fragen nachgeschaut, komme aber nicht dahinter, wo der Fehler liegt.
UPDATE 1 Dies passiert, obwohl ich die Bibtex-Datei zweimal ausführe. Hier ist die log
Datei:
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
sec.aux
UPDATE 2: Ich denke, das Problem liegt darin, dass mein TexStudio die Datei, die den Link zur zweiten Bibliographie generiert, nicht ausführt . Ich bin den Schritten dieses Links gefolgthttps://sourceforge.net/p/texstudio/wiki/Tips%20and%20Tricks/und habe eins erstellt .cwl
und es zu TexStudio Completion hinzugefügt, aber es funktioniert immer noch nicht.
Antwort1
multibib
Die Ergebnisse werden nach dem ersten Kompilierungslauf der Datei mwe.tex
mit pdflatex
(oder in Ihrem Fall mit TeXStudio) in zwei neuen Dateien mwe.aux
und verwendet apndx.aux
. Beide .aux
Dateien müssen mit ausgeführt werden bibtex
. TeXStudio führt den Lauf mit bibtex
für die Datei aus mwe.aux
, denn apndx.aux
Sie müssen dies selbst tun. Führen Sie den Befehl einfach bibtex apndx
in einem Windows-Terminal aus. Danach können Sie zwei Mal mit TeXStudio kompilieren, um das resultierende PDF zu erhalten.
Um einen Befehl \citeapndx
in der Überschrift einer Abbildung auszuführen (Ihre Frage in den Kommentaren), müssen Sie einen Befehl \protect
wie diesen verwenden (dasselbe gilt für \section
):
\caption{In figure caption \protect\citeapndx{Johnson2000}}
% ^^^^^^^^
Also mit der folgenden Datei mwe.tex
(das Paket filecontents
wird nur verwendet, um sowohl Bib-Dateien als auch den Tex-Code in einem kompilierenden MWE zu haben):
% 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}
und die Kompilierungskette (unabhängig von TeXStudio):
- Öffnen Sie ein Terminalfenster in Windows, indem Sie die Windows-Starttaste drücken
R
, dann eingebencmd
und die Eingabetaste drücken - Wechseln Sie in das Verzeichnis, in dem Sie Ihren Tex-Code und die Bib-Datei(en) haben mit
cd <directory path>
- Befehl ausführen
pdflatex mwe
(führt zu zwei benötigten.aux
Dateien) - Befehl ausführen
bibtex mwe
(kompiliertmwe.aux
) - Befehl ausführen
bibtex apndx
(kompiliertapndx.aux
) - Befehl ausführen
pdflatex mwe
(ergibt Dateien*.bbl
und*.blg
) - Befehl ausführen
pdflatex mwe
(ergibt einepdf
Datei mit Bibliographie)
Wenn Sie einen Editor (TeXStudio, TeXnicCenter, ...) verwenden, kann der Editor pdflatex mwe
und bibtex mwe
für Sie ausführen, aber nicht bibtex apndx
. Führen Sie diesen Befehl also nach dem ersten Kompilierungslauf mit TeXStudio in einem Windows-Terminal aus ...
Nach dem Ausführen der Kompilierungskette erhalten Sie das folgende resultierende PDF: