Подтвердить что ты не робот

Как автоматически создавать цитаты BibTex для пакетов R в файле knitr?

Я не уверен, что это проблема R, LaTeX или BibTex.

Я пытаюсь автоматически генерировать .bib файл, содержащий цитаты для R-пакетов, а затем перечислять их в конце. Я могу сгенерировать файл BibTex, и я не вижу ничего плохого в файле BibTex, но записи не появляются при компиляции PDF.

Я не уверен, что R не создает файл BibTex правильно, если какой-то синтаксис LaTeX ошибочен или если файл BibTex должен быть предварительно скомпилирован или что-то еще. Я заметил, что \bibliography{NOT A REAL FILENAME} создаст раздел "Ссылки" без жалобы, но я не думаю, что это проблема.

Минимальный рабочий пример:

\documentclass[10pt]{amsart}
\usepackage[margin=1in, headheight=20pt, footskip=20pt]{geometry}

\begin{document}

<<label='Create References'>>=
require(knitr) # Needed for write_bib()

# Load some packages to the session:
require(xtable)
require(ggplot2)

# Select packages to cite:
citPkgs <- names(sessionInfo()$otherPkgs)
# Write the bibtex file:
write_bib(citPkgs, file="R-Pckgs.bib")
@

\nocite{*}
\bibliographystyle{plain}
\bibliography{R-Pckgs.bib}

\end{document}

Любая помощь или предложения будут оценены.

4b9b3361

Ответ 1

Просто замените \bibliography{R-Pckgs.bib} на \bibliography{R-Pckgs}, и он должен работать нормально.

В Windows 7 с обновленной установкой MikTeX и текущими пакетами R и R работало:

  • Поместите ваш воспроизводимый пример в файл с именем "eg.Rnw" и отредактируйте, чтобы удалить посторонний ".bib"
  • Запустите R и перейдите в каталог, в котором находится "eg.Rnw".
  • Do library(knitr); knit2pdf("eg.Rnw")

Примечание.. Существует много рабочих процессов для перехода от *.Rnw в *.pdf, но если вы хотите использовать knit2pdf() (по крайней мере), убедитесь, что вы запустили его из каталог, содержащий *.Rnw для обработки.

Ответ 2

Добавить \nocite{dummycite} к вашему документу - создать цитату, чтобы была напечатана библиография.

Обратите внимание, что это устарело, если у вас уже есть другая ссылка в вашем документе.