当我使用 xelatex 生成 PDF 文件并使用时,我发现一个非常奇怪的错误任何ACM 风格与 Biblatex 和任何后端(我尝试过 biber、bibtex 和 natbib)。
这是我重现的简单示例:
\documentclass[a4paper,titlepage,bibliography=totoc,parskip=full]{scrartcl}
\usepackage[backend=biber,sorting=none,dateabbrev=false,style=acmauthoryear]{biblatex}
\usepackage{lipsum}
\addbibresource{references.bib}
\title{Example}
\begin{document}
\lipsum \cite{5952536}
\printbibliography
\end{document}
(您可以尝试使用bib
文件中的任何引用,这无关紧要)。这是我用来编译文档的内容:
latexmk -xelatex -shell-escape -synctex=1 -interaction=nonstopmode -file-line-error -pdf -outdir=output main.tex
我收到的错误很奇怪:
output/main.bbl:69: Undefined control sequence.
\bibfont ->\bibliofont
\footnotesize
l.69 \endentry
) [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
./main.tex:12: Undefined control sequence.
\bibfont ->\bibliofont
\footnotesize
l.12 \end
{document}
./main.tex:12: Undefined control sequence.
\bibfont ->\bibliofont
\footnotesize
l.12 \end
{document}
[2] (output/main.aux)
LaTeX Warning: There were undefined references.
Package biblatex Warning: Please rerun LaTeX.
有趣的是,PDF 文件在最后生成时没有任何问题(除了生成时由于错误而突然结束)。如果我将样式更改为其他样式,例如numeric
生成时不会显示任何错误。
知道发生了什么吗?我目前的猜测是,acm
样式设计用于与 KOMA 文章一起使用acmart
,但我想继续使用 KOMA 文章(这是我的论文,而不是 ACM 文章)。
答案1
\bibliofont
并非所有文档类别都可用。它由 AMS 类别(amsart
、、 )定义amsbook
,amsproc
因此在 中也可用acmart
,因为acmart
它基于amsart
。
如果您使用未定义的类\bibliofont
,则可以添加类似
\newcommand{\bibliofont}{\footnotesize}
你的序言。
\documentclass[a4paper,titlepage,bibliography=totoc,parskip=full]{scrartcl}
\usepackage[backend=biber, style=acmauthoryear, dateabbrev=false,]{biblatex}
\addbibresource{biblatex-examples.bib}
\newcommand{\bibliofont}{\footnotesize}
\begin{document}
Lorem \autocite{sigfridsson}
\printbibliography
\end{document}
我认为这sortin=none,
与作者年份风格不符,所以我删除了该选项。