
Несколько раз я читал инструкции вроде «запустите Latex для вашего файла, затем запустите Bibtex, а затем снова запустите Latex...». Я использую TeXstudio в качестве редактора и при компиляции любого tex-кода просто нажимаю кнопку компиляции. Что происходит за этим, для меня не имело значения, так как нужный мне pdf-файл все равно создавался. Теперь, когда я использую .bib
файлы для ссылок, у меня возникла проблема, решение которой было таким же, как указано выше. Но как мне это сделать? Я знаю только кнопку компиляции. Как мне запустить Latex отдельно из Bibtex и Bibtex отдельно из Latex? И какой из них обоих запускается при простом нажатии «компилировать»?
решение1
Кнопка «компилировать» запускает последовательность компиляции по умолчанию. Похоже, в вашем случае это, вероятно, pdfLaTeX. (Вы, вероятно, можете изменить это, если захотите — многие редакторы позволяют вам настраивать последовательность по умолчанию.)
Чтобы создать библиографию, вам нужно посмотреть, что есть в вашем документе. Как вы управляете ссылками? Если вы используете такие команды, как
\bibliographystyle{stylename}
\bibliography{bibfilename}
Тогда вам нужно бежать
pdflatex
->bibtex
->pdflatex
->pdflatex
Если у вас есть что-то вроде этого:
\usepackage{biblatex}
\addbibresource{bibfilename.bib}% or \bibliography{bibfilename}
...
\printbibliography
Тогда вам нужно бежать
pdflatex
->biber
->pdflatex
->pdflatex
Можно использовать bibtex
с biblatex
, но это не по умолчанию. Если только у вас нет
\usepackage[backend=bibtex]{biblatex}
вам не нужно беспокоиться об этом. Если вы используете эту опцию, вы должны использовать bibtex
последовательность компиляции выше, а не ту biber
.
Для запуска компиляций вы можете использовать командную строку или ваш редактор. Большинство редакторов имеют кнопки или меню с опциями для нестандартной компиляции. Несмотря на то, что pdfLaTeX является стандартным, вероятно, есть кнопка или опция меню для bibTeX (и, возможно, biber). Вероятно, вы можете настроить все в дальнейшем в соответствии с вашим рабочим процессом.
решение2
Вот прием, который я люблю использовать:
Создайте скрипт Python в корневом каталоге вашего проекта с именем eg
compile_refs.py
и вставьте в него следующий код:#!/usr/bin/python import subprocess, sys commands = [ ['pdflatex', sys.argv[1] + '.tex'], ['bibtex', sys.argv[1] + '.aux'], ['pdflatex', sys.argv[1] + '.tex'], ['pdflatex', sys.argv[1] + '.tex'] ] for c in commands: subprocess.call(c)
Если вы хотите скомпилировать ссылки, просто запустите:
python compile_refs.py main_file_name
.
решение3
Вот полезный инструмент, Makefile
который вы можете использовать для автоматизации процесса компиляции, описанного вответ cfr:
DOCNAME=report
all: report
.PHONY: clean
report:
pdflatex $(DOCNAME).tex
bibtex $(DOCNAME).aux
pdflatex $(DOCNAME).tex
pdflatex $(DOCNAME).tex
view: report
open $(DOCNAME).pdf
clean:
rm *.blg *.bbl *.aux *.log
Просто вставьте это в файл, находящийся Makefile
в том же каталоге, что и ваш основной файл .tex, и замените report
определение переменной DOCNAME=report
на имя вашего файла.
Тогда вы можете использовать это следующим образом:
make
илиmake report
создаст PDF-документ из исходных текстов TeX.make view
создаст PDF-файл, если он еще не создан, и откроет его с помощью системного средства просмотра PDF-файлов по умолчанию.make clean
удалит промежуточные файлы, созданные во время создания PDF-файла.
Если вам нужно использовать biber
вместо bibtex
, вы можете просто заменить вызов bibtex
на вызов biber
.
решение4
ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ TEXSTUDIO. Перейдите в: настройки --> компиляции и запустите, ожидая выполнения каждого шага:
1 pdflatex. --> 2 bibtex . --> 3 pdflatex . --> 4 pdflatex .