Решение 1

Решение 1

Мои цитаты работают нормально, когда sources.bibфайл находится в том же каталоге, что и мой .texфайл, как показано здесь:

\documentclass{article}
\usepackage{fancyhdr}

\begin{document}

\thispagestyle{fancy}
\everymath{\displaystyle}

\nocite{textbook}

\bibliographystyle{plain}
\bibliography{sources}

\end{document}

Вот sources.bibфайл:

@book{textbook,
    author = {First, Last},
    title = {title},
}

Моя библиография отображается нормально. Однако, если я просто перейду sources.bibв родительский каталог и исправлю код:

\documentclass{article}
\usepackage{fancyhdr}

\begin{document}

\thispagestyle{fancy}
\everymath{\displaystyle}

\nocite{textbook}

\bibliographystyle{plain}
\bibliography{../sources}

\end{document}

Я получаю ошибки:

Citation `textbook' undefined
Empty `thebibliography' environment
There were undefined references.

Что здесь не так?

решение1

Я попробовал код, размещенный вОтвет У.Мартинеса-Коррала, к сожалению, у меня это не работает (Windows10 + Sublime Text 3 (Сборка 3126) + LaTeXTools + Texlive).

Это ограничение BibTeX:

Относительные пути, требующие восходящего обхода каталога (..), не работают при использовании BibTeX и выходного каталога. Это ограничение BibTeX, который на самом деле не поддерживает концепцию выходного каталога. Ссылка не найдена, если файл bib находится в родительском каталоге

Решение 1

Вместо этого используйте абсолютный путь.

\bibliography{../sources}                         % relative path: don't work
\bibliography{E:/GitKraken/test/sources}          % absolute path: work

Решение 2

Мое решение — использовать currfile-abspathпакет для построения абсолютного пути \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}

Смотрите также:https://tex.stackexchange.com/a/54891/115852

решение2

Хотя в этом случае это не должно иметь никакого эффекта, лучше сохранить минимальный рабочий пример (MWE) как можно меньше и предоставить все файлы, необходимые для его проверки. В MWE отсутствует fancyопределение стиля. Удалив его и \everymath, и добавив содержимое bibfile, этот MWE работает для меня:

./main.tex

\documentclass[a4paper]{article}
\begin{document}

\cite{knuth1986texbook}

\bibliographystyle{plain}
\bibliography{../sources}

\end{document}

../sources.bib

@book{knuth1986texbook,
  keywords = {book},
  title={The texbook},
  author={Knuth, D.E. and Bibby, D.},
  volume={1993},
  year={1986},
  publisher={Addison-Wesley}
}

Для уверенности удалите все вспомогательные файлы и скомпилируйте всю последовательность заново (pdflatex + bibtex + pdflatex + pdflatex). Все еще не работает?

Связанный контент