Нечетное поведение Bibtex в латексном документе - PullRequest
3 голосов
/ 17 апреля 2009

Я добавил строку "\ cite {test}" в качестве теста в мой рабочий латексный документ. Когда я скомпилировал bibtex "! Bibtex name_of_my_file, я получил ожидаемую ошибку:

Предупреждение - я не нашел запись в базе данных для "test"

Затем я удалил строку и снова скомпилировал bibtex, надеясь снова получить работающий латексный файл. Однако такая же ошибка возникает даже с новой оболочкой. Я не могу понять поведение. В чем логика? Как я могу заставить мой латексный документ работать снова?

[Обновленная информация] Проблема исчезла так же неожиданно, как и появилась. Понятия не имею почему, но сейчас это работает. Вы знаете причину странного поведения?

Ответы [ 4 ]

9 голосов
/ 17 апреля 2009

Я думаю, что вы запутались в многопроходной природе LaTex плюс Bibtex. Если вы посмотрите на Шаг 3 в этом обсуждении , вы увидите следующее:

Первый прогон (через латекс) генерирует вспомогательный файл, paper.aux, содержащий информацию о цитатах (и других типах ссылки), библиография стиль используется, и название bibtex база данных. Второй прогон (через bibtex) использует информацию в вспомогательный файл вместе с данными содержится в базе данных bibtex, чтобы создать файл paper.bbl. Этот файл содержит библиографическую среду с \ bibitem отформатированными записями в соответствии со стилем библиографии указано.

Итак, я думаю, что ваш name_of_my_file.aux файл все еще содержит ваш заполнитель \cite{test}. Если вы удалите вспомогательный файл, вы сможете начать с:

latex name_of_my_file
bibtex name_of_my_file
latex name_of_my_file
latex name_of_my_file

[Обновление на основе дополнительной информации] : Проблема заключалась в том, что у вас был файл .aux с вашим встроенным \cite{}. Во второй раз, когда вы запустили latex, вы заменили старый файл новым. Вот почему полный набор шагов включает в себя начальный latex звонок, bibtex звонок и два последующих latex звонка. Думайте об этом как о многопроходном компиляторе, и он может быть более интуитивным.

3 голосов
/ 17 апреля 2009

Вы можете взглянуть на latexmk , который позаботится о компиляции с фиксированной точкой.

В любом случае, вы должны быть в состоянии создать документ (pdflatex blah.tex), даже если вам не хватает библиографического элемента. Соответствующие ссылки будут просто отображаться в виде вопросительных знаков в PDF.

2 голосов
/ 17 апреля 2009

Перезапустите латекс, чтобы восстановить файл aux.

Посмотрите на это обсуждение , чтобы найти указатели на немного больше информации. По сути, вы, возможно, удалили свою цитату из файла .tex, но он все еще существует в одном из производных файлов (aux, bbl, что угодно ...)

1 голос
/ 23 июля 2012

Проверьте, имеет ли ваш нагрудный файл расширение .bib, а не .tex. Если это .tex, просто измените его на .bib, и это должно сделать это. Однажды я случайно изменил его на tex, добавив несколько ссылок и сохранив их с опцией «сохранить как», не указывая расширение нагрудника. Вот как это может случиться внезапно.

...