我在 Overleaf 上编译了一个 Plain TeX 项目,代码如下
$latex = 'tex %O %S';
在latexmkrc
文件中。这使得大多数事情都能顺利进行,除了 BibTeX。
main.tex
在一个名为的文件中
\input btxmac
The \TeX{}book~\cite{knuth:tex} is good.
\medskip
\leftline{\bf References}
\bibliography{mybib}
\bibliographystyle{plain}
\bye
在一个名为的文件中mybib.bib
我有
@BOOK{knuth:tex,
author = "Donald E. Knuth",
title = "The {\TeX}book",
publisher = "Addison-Wesley",
year = "1984",
}
(这些例子来自帕塔什尼克。
问题是我无法让它产生正确的输出。我得到 而在本地,使用完全相同的文件,运行
tex main
bibtex main
tex main
tex main
我可以在latexmkrc
文件中添加一些内容,以便在 Overleaf 上获得相同的行为吗?提前致谢!Overleaf 项目是这里如果你想修改(它只包含最小的例子并且应该是可编辑的)。
答案1
你必须作弊:-)
消息来源latexmk.pl
非常笼统地指出:
# In any event bibtex is only run if the log file
# indicates that the document uses bbl files.
并且这个“表明”意味着 LaTeX 打印:
No file \jobname.bbl.
到.log
,或者bibtex
已经运行并且 LaTeX 读取了.bbl
文件,因此.log
包含:
(./\jobname.bbl)
但是 Plain 不会打印No file \jobname.bbl
到.log
,所以您必须自己动手打印。将以下内容添加到您的文档中:
\immediate\write16{No file \jobname.bbl.}%
一切就绪。
您可能会注意到每次都会写入该行,但没关系,因为latexmk
无论如何都会理解并会做正确的事情(如果文件.bbl
已输入,它会忽略该行)。