apa6 或 biblatex-apa6 错误:缺少 \begin{document}

apa6 或 biblatex-apa6 错误:缺少 \begin{document}

我被要求使用apa6套餐(https://ctan.org/pkg/apa6?lang=en),但无法编译文件夹中提供的示例sample/(例如,通过运行),而是在包提供的文件中pdflatex shortsample.tex收到错误“ ” (Missing \begin{document}apa6.cbxbiblatex-apa6https://ctan.org/pkg/biblatex-apa6?lang=en)。

在这个问题的最后,我粘贴了日志文件的相关摘录。下面是附加信息。

在手册中apa6.pdf没有关于如何安装包的明显说明,但在根文件夹中提供了一个.dtx和一个文件,并且在谷歌搜索后我发现编译该文件(例如)会生成一组包括该文件的文件。.ins.inspdflatex apa6.insapa6.cls

将文件复制apa6.clssamples/文件夹并运行后pdflatex shortsample.tex,出现有关biblatexapa6样式的错误。我在网上找到了包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 手动更新,但由于依赖关系,这可能会导致灾难,因此我强烈建议您不要这样做。)

我建议你删除手动安装的文件(类apa6biblatex样式biblatex-apa6)。而是确保已经安装了软件包

  • texlive-publishers,其中包含apa6
  • texlive-bibtex-extra,其中包含biblatexbiblatex-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-apa6tlmgr


既然你提到期刊要求你使用apa6,请仔细检查他们是否也希望你使用biblatex-apa(6)biblatex基于 的工作流程biblatex-apa与标准 LaTeX 引用工作流程截然不同,而且出版商通常似乎更喜欢旧的 BibTeX 方式。仔细检查他们的提交指南。也许他们更希望你使用 而apacite不是biblatex-apa(6)

相关内容