Meine Zitate funktionieren einwandfrei, wenn sich die sources.bib
Datei im selben Verzeichnis wie meine .tex
Datei befindet, wie hier gezeigt:
\documentclass{article}
\usepackage{fancyhdr}
\begin{document}
\thispagestyle{fancy}
\everymath{\displaystyle}
\nocite{textbook}
\bibliographystyle{plain}
\bibliography{sources}
\end{document}
Hier ist die sources.bib
Datei:
@book{textbook,
author = {First, Last},
title = {title},
}
Meine Bibliographie wird einwandfrei angezeigt. Wenn ich jedoch einfach sources.bib
in das übergeordnete Verzeichnis gehe und den Code anpasse:
\documentclass{article}
\usepackage{fancyhdr}
\begin{document}
\thispagestyle{fancy}
\everymath{\displaystyle}
\nocite{textbook}
\bibliographystyle{plain}
\bibliography{../sources}
\end{document}
Ich erhalte die folgenden Fehlermeldungen:
Citation `textbook' undefined
Empty `thebibliography' environment
There were undefined references.
Was ist hier los?
Antwort1
Ich habe den Code ausprobiert, der gepostet wurde inU.Martinez-Corrals Antwort, leider funktioniert es bei mir nicht (Windows10 + Sublime Text 3 (Build 3126) + LaTeXTools + Texlive).
Dies ist eine Einschränkung von BibTeX:
Relative Pfade, die eine Verzeichnisdurchquerung nach oben (..) erfordern, funktionieren bei Verwendung von BibTeX und einem Ausgabeverzeichnis nicht. Dies ist eine Einschränkung von BibTeX, das das Konzept eines Ausgabeverzeichnisses nicht wirklich unterstützt. Zitat nicht gefunden, wenn Bib-Datei im übergeordneten Verzeichnis
Lösung 1
Verwenden Sie stattdessen den absoluten Pfad.
\bibliography{../sources} % relative path: don't work
\bibliography{E:/GitKraken/test/sources} % absolute path: work
Lösung 2
Meine Lösung besteht darin, currfile-abspath
ein Paket zum Erstellen eines absoluten Pfads zu verwenden \bibliography{\mainabsdir/../sources}
.
./main.tex
\documentclass[a4paper]{article}
% \usepackage[backend=bibtex]{biblatex}
\usepackage{currfile-abspath}
\getmainfile % get real main file (can be different than jobname in some cases)
\getabspath{\themainfile} % or use \jobname.tex instead (not as safe)
\let\mainabsdir\theabsdir % save result away (macro will be overwritten by the next \getabspath
\let\mainabspath\theabspath % save result away (macro will be overwritten by the next \getabspath
\begin{document}
\cite{knuth1986texbook}
\bibliographystyle{plain}
\bibliography{\mainabsdir/../sources}
\end{document}
Siehe auch:https://tex.stackexchange.com/a/54891/115852
Antwort2
Obwohl es in diesem Fall keine Auswirkungen haben sollte, ist es besser, das Minimum Working Example (MWE) so klein wie möglich zu halten und alle zum Testen erforderlichen Dateien bereitzustellen. Dem MWE fehlt die fancy
Stildefinition. Wenn ich sie entferne \everymath
und den Inhalt der Bib-Datei hinzufüge, funktioniert dieses MWE für mich:
./main.tex
\documentclass[a4paper]{article}
\begin{document}
\cite{knuth1986texbook}
\bibliographystyle{plain}
\bibliography{../sources}
\end{document}
../quellen.bib
@book{knuth1986texbook,
keywords = {book},
title={The texbook},
author={Knuth, D.E. and Bibby, D.},
volume={1993},
year={1986},
publisher={Addison-Wesley}
}
Um sicherzugehen, entfernen Sie alle Hilfsdateien und kompilieren Sie die gesamte Sequenz erneut (pdflatex + bibtex + pdflatex + pdflatex). Funktioniert es immer noch nicht?