当我为 ACM 会议撰写论文时,使用最新的acmart 文件:
Package natbib Warning: Citation `)' multiply defined.
此外,我还收到此错误以及以下错误:
Package natbib Warning: Citation `ufactory' on page 3 undefined on input line 21.
上述引用未定义消息仅出现在 3 个杂项引用中,如下所示,当我删除 3 个杂项引用时,第一个警告消息消失。
在该output.aux
文件中,我看到了这些引文的以下内容:
\bibcite{)}{{33}{[n.\,d.(@}{{SDRplay}}{{}}}
\bibcite{)}{{37}{[n.\,d.(@}{{uArm Developer}}{{}}}
\bibcite{)}{{38}{[n.\,d.(@}{{UFACTORY}}{{}}}
我在序言中使用的软件包如下:
\documentclass[sigconf,anonymous,table]{acmart}
% Packages
\usepackage{xcolor}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{graphicx}
\usepackage{makecell}
\usepackage{booktabs}
\usepackage{array}
\usepackage{float}
\usepackage{enumitem}
引用:
@misc{sdrplay2022, title={SDRuno}, url={https://www.sdrplay.com/sdruno}, author={SDRplay}}
@misc{ufactory, title={UFactory UArm}, url={https://www.ufactory.cc/uarm}, author={UFACTORY}}
@misc{uarmdeveloper, title={UARM-developer/UARM-Python-SDK: New Python Library for Swift, swift pro}, url={https://github.com/uArm-Developer/uArm-Python-SDK/tree/2.0}, author={uArm-Developer}}
编辑:
最新的 acmart 文件可以在官方网站上收集:https://www.acm.org/publications/proceedings-template
乳胶文档 MWE 可以在这里看到:
\documentclass[sigconf,anonymous,table]{acmart} % anonymous
% Packages
\usepackage{xcolor}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{graphicx}
\usepackage{makecell}
\usepackage{booktabs}
\usepackage{array}
\usepackage{float}
\usepackage{enumitem}
% \graphicspath{{img/}}
\newcommand{\subscript}[2]{$#1 _ #2$}
\newcommand{\paragraphb}[1]{\vspace{0.03in}\noindent{\bf #1} }
\begin{document}
\title{My Paper}
\author{James Smith, John Nash}
\affiliation{%
\institution{My Afill}
\city{City}
\country{ABC}
}
\email{{first.last}@afill.com}
\begin{abstract}
...
\end{abstract}
\keywords{a, b, c}
\maketitle
I used
uFactory's uARM Swift Pro~\cite{ufactory} and ... using
the uARM Python (3.8.X) SDK~\cite{uarmdeveloper}. The data capture ... uses ..
SDRuno~\cite{sdrplay2022} with ...
% References
\bibliographystyle{ACM-Reference-Format}
\bibliography{references}
\end{document}
所references.bib
用文件如下,省略了所有其他引用:
@misc{sdrplay2022, title={SDRuno}, url={https://www.sdrplay.com/sdruno}, author={SDRplay}}
@misc{ufactory, title={UFactory UArm}, url={https://www.ufactory.cc/uarm}, author={UFACTORY}}
@misc{uarmdeveloper, title={UARM-developer/UARM-Python-SDK: New Python Library for Swift, swift pro}, url={https://github.com/uArm-Developer/uArm-Python-SDK/tree/2.0}, author={uArm-Developer}}
答案1
我可以使用从问题中提供的链接下载的当前 ACM 书目样式来重现该错误(https://www.acm.org/publications/proceedings-template)。这是 ACM-Reference-Format.bst 的 2.1 版,它是为 2017 年 6 月 14 日发布的 acmart.cls 1.79 版编写的。acmart.cls 的当前版本较新(2022/04/09 v1.84),但最近的更改重点是 BibLaTeX 支持,BibTeX 样式保持不变。
该类支持数字和作者年份引用(适用于 BibTeX 和 BibLaTeX)。数字是默认的,但文件在两种情况下都会在文件中.bst
条目的可选参数中生成作者年份标签(使用数字样式时将被忽略)。\bibitem
.bbl
对于没有year
字段的条目,这会产生问题。标签格式化程序包含以下代码:
year empty.or.unknown
{ "[n.\,d.]" }
{ year field.or.null purify$ #-1 #4 substring$}
这会在.bbl
文件中生成如下条目:
\bibitem[SDRplay([n.\,d.])]%
{sdrplay2022}
由于未对[]
aroundn.\,d.
进行转义,可选参数解析不正确,并且)
第一个之后的]
参数被解析为每个不带年份的条目的 citekey。
您可以通过编辑 ACM-Reference-Format.bst 来修复此错误,特别是FUNCTION { calc.basic.label }
和。删除两个函数中FUNCTION { calc.label }
的括号就足够了:n.\,d.
year empty.or.unknown
{ "n.\,d." }
{ year field.or.null purify$ #-1 #4 substring$}
然后(未使用的)可选参数如下所示:
\bibitem[SDRplay(n.\,d.)]%
{sdrplay2022}
并且该文档编译正确:
请注意,参考书目仍然[n.d.]
用方括号显示,此输出来自.bst
文件中的不同函数,与可选 citekey 的格式无关。