我被要求使用apa6
套餐(https://ctan.org/pkg/apa6?lang=en),但无法编译文件夹中提供的示例sample/
(例如,通过运行),而是在包提供的文件中pdflatex shortsample.tex
收到错误“ ” (Missing \begin{document}
apa6.cbx
biblatex-apa6
https://ctan.org/pkg/biblatex-apa6?lang=en)。
在这个问题的最后,我粘贴了日志文件的相关摘录。下面是附加信息。
在手册中apa6.pdf
没有关于如何安装包的明显说明,但在根文件夹中提供了一个.dtx
和一个文件,并且在谷歌搜索后我发现编译该文件(例如)会生成一组包括该文件的文件。.ins
.ins
pdflatex apa6.ins
apa6.cls
将文件复制apa6.cls
到samples/
文件夹并运行后pdflatex shortsample.tex
,出现有关biblatex
和apa6
样式的错误。我在网上找到了包biblatex-apa6
,在文件第 3 节的说明中biblatex-apa6.pdf
,它说可以通过将.cbx
、.bbx
和.lbx
文件复制到的子文件夹来安装<texmf>/tex/latex/biblatex/
。在我的计算机中biblatex
(安装了包,texlive-bibtex-extra)
相关的<texmf>
是/usr/share/texlive/texmf-dist/
。我复制了文件,运行了texhash
,现在出现了提到的错误。
摘录自shortsample.log
:
Package biblatex Info: Trying to load citation style 'apa6'...
Package biblatex Info: ... file 'apa6.cbx' found.
(/usr/share/texlive/texmf-dist/tex/latex/biblatex/cbx/apa6.cbx
File: apa6.cbx 2020/05/03 v8.4 APA 6th ed. biblatex citation style
Package biblatex Info: Delimiter 'nameyeardelim' in context '' already
defined,
overwriting.
Package biblatex Info: Delimiter 'nameyeardelim' in context 'textcite'
already
defined, overwriting.
Package biblatex Info: Delimiter 'andothersdelim' in context '' already
defined
, overwriting.
Package biblatex Info: Redefining '\fullcite'.
Package biblatex Info: Redefining '\citeauthor'.
Package biblatex Info: Redefining '\citeyear'.
Package biblatex Info: Redefining '\cite'.
Package biblatex Info: Redefining '\cites'.
Package biblatex Info: Redefining '\parencite'.
Package biblatex Info: Redefining '\parencites'.
! LaTeX Error: Missing \begin{document}.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.509 ...DelimAlias*[nptextcite]{finalnamedelim}[parencite]{finalnamedelim}
答案1
从 CTAN 手动安装 LaTeX 包、文档类或参考书目样式几乎总是有问题的。这样做的风险之一是您可能会遇到版本不兼容的问题。
在这里,您使用的是来自 Linux 发行版存储库的 TeX live。根据操作系统的具体版本,TeX live 版本可能按今天的标准来说有点过时或非常过时。
具体来说,您收到的错误表明biblatex
系统上安装的版本对于biblatex-apa6
您从 CTAN 手动安装的版本来说太旧了。(现在人们可能会想biblatex
从 CTAN 手动更新,但由于依赖关系,这可能会导致灾难,因此我强烈建议您不要这样做。)
我建议你删除手动安装的文件(类apa6
和biblatex
样式biblatex-apa6
)。而是确保已经安装了软件包
texlive-publishers
,其中包含apa6
和texlive-bibtex-extra
,其中包含biblatex
和biblatex-apa
(在旧版本的 TeX live 中相当于现代的biblatex-apa6
;当前版本的biblatex-apa
实现了第 7 版 APA 样式)
来自您的Linux发行版。
安装这些包后,您应该能够使用apa6
文档类(使用biblatex-apa
而不是biblatex-apa6
)运行文档。
如果你想拥有一个完全最新的 TeX live 系统,你应该考虑从 TUG.org 安装“vanilla”TeX live。请参阅如何在 Debian 或 Ubuntu 上安装“原始” TeXLive?。
如果您从 TUG.org 获取 TeX live 2020,那么您应该通过apa6
安装。biblatex-apa6
tlmgr
既然你提到期刊要求你使用apa6
,请仔细检查他们是否也希望你使用biblatex-apa(6)
。biblatex
基于 的工作流程biblatex-apa
与标准 LaTeX 引用工作流程截然不同,而且出版商通常似乎更喜欢旧的 BibTeX 方式。仔细检查他们的提交指南。也许他们更希望你使用 而apacite
不是biblatex-apa(6)
。