Бибтекс, Латексная компиляция

Бибтекс, Латексная компиляция

Несколько раз я читал инструкции вроде «запустите 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

Вот прием, который я люблю использовать:

  1. Создайте скрипт 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)
    
  2. Если вы хотите скомпилировать ссылки, просто запустите: 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на имя вашего файла.

Тогда вы можете использовать это следующим образом:

  1. makeили make reportсоздаст PDF-документ из исходных текстов TeX.
  2. make viewсоздаст PDF-файл, если он еще не создан, и откроет его с помощью системного средства просмотра PDF-файлов по умолчанию.
  3. make cleanудалит промежуточные файлы, созданные во время создания PDF-файла.

Если вам нужно использовать biberвместо bibtex, вы можете просто заменить вызов bibtexна вызов biber.

решение4

ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ TEXSTUDIO. Перейдите в: настройки --> компиляции и запустите, ожидая выполнения каждого шага:

1 pdflatex. --> 2 bibtex . --> 3 pdflatex . --> 4 pdflatex .

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