我使用的是从 ACM 网站下载的 sample-sigconf.tex 和 samplebody-conf.tex 文件。参考书目格式为 ACM-Reference-Format。我在 Mac 上使用的是较早的操作系统,运行良好。我更新到 Sierra 后一切都崩溃了。我按照http://www.tug.org/mactex/来解决这些问题。
但是,当我使用 BibTeX 编译 .tex 文件时,似乎无法解决以下错误。
! Undefined control sequence. <argument> \citeauthoryear
ACM-Reference-Format.bst 添加了\protect\citeauthoryear
短语bibitem
,我可以在 .bbl 文件中看到它。我怎样才能让我的 Tex 发行版处理此命令?有人遇到过这个问题吗?有什么好的解决方案吗?
我原本想\protect\citeauthoryear
从 .bst 文件中删除该短语。但我知道很多人都在用这个,所以一定有更好的解决方案。
按照建议提供代码。主 tex 文件如下所示。
\documentclass[sigconf]{acmart}
\usepackage{booktabs} % For formal tables
\setcopyright{rightsretained}
\acmDOI{10.475/123_4}
\acmISBN{123-4567-24-567/08/06}
\acmConference[WOODSTOCK'97]{ACM Woodstock conference}{July 1997}{El
Paso, Texas USA}
\acmYear{1997}
\copyrightyear{2016}
\acmPrice{15.00}
\usepackage{listings}
\begin{document}
\title{Learning !! to Rank Web Resources connected with Smart Services\\ using Multi-Objective LinUCB Bandits}
\input{samplebody-conf}
\bibliographystyle{ACM-Reference-Format}
\bibliography{sigproc.bib}
\end{document}
我在正文中引用如下。
The Internet of Things(IoT) \cite{dynamix}
生成的.bbl 文件具有如下所示的引用条目。
\bibitem[\protect\citeauthoryear{Carlson and Schrader}{Carlson and
Schrader}{2012}]%
{dynamix}
\bibfield{author}{\bibinfo{person}{D. Carlson} {and} \bibinfo{person}{A
Schrader}.} \bibinfo{year}{2012}\natexlab{}.
\newblock \showarticletitle{Dynamix: An open plug-and-play context framework
for android}. In \bibinfo{booktitle}{{\em Internet of Things (IOT), 2012 3rd
International Conference on the}}. \bibinfo{pages}{151--158}.
\newblock
\showDOI{%
\url{http://dx.doi.org/10.1109/IOT.2012.6402317}}
谢谢
答案1
我尝试了一个实验,建立文件
\begin{filecontents*}{\jobname.bib}
@inproceedings{dynamix,
author={D. Carlson and A. Schrader},
year={2012},
title={{Dynamix: An open plug-and-play context framework for android}},
booktitle={{Internet of Things (IOT), 2012 3rd International Conference on the}},
pages={151--158},
doi={http://dx.doi.org/10.1109/IOT.2012.6402317},
}
\end{filecontents*}
\documentclass[sigconf]{acmart}
\usepackage{booktabs} % For formal tables
\usepackage{listings}
\setcopyright{rightsretained}
\acmDOI{10.475/123_4}
\acmISBN{123-4567-24-567/08/06}
\acmConference[WOODSTOCK'97]{ACM Woodstock conference}{July 1997}{El
Paso, Texas USA}
\acmYear{1997}
\copyrightyear{2016}
\acmPrice{15.00}
\begin{document}
\title{Learning !! to Rank Web Resources connected with Smart Services\\
using Multi-Objective LinUCB Bandits}
\cite{dynamix}
\bibliographystyle{ACM-Reference-Format}
\bibliography{\jobname}
\end{document}
变化如下:
- 包裹的装载顺序更加合理
- 环境
filecontents
- 删除
.bib
指令\bibliography
第一个更改不会产生任何影响。第二个更改只是为了使示例独立。最后一个更改是重要的!.bib
扩展名永远不应该出现在参数中\bibliography
(只有 MiKTeX 允许它,而它不应该)。
如果我编译示例文档并运行 BibTeX,则生成的.bbl
文件包含
\bibitem[\protect\citeauthoryear{Carlson and Schrader}{Carlson and
Schrader}{2012}]%
{dynamix}
\bibfield{author}{\bibinfo{person}{D. Carlson} {and} \bibinfo{person}{A.
Schrader}.} \bibinfo{year}{2012}\natexlab{}.
\newblock \showarticletitle{{Dynamix: An open plug-and-play context framework
for android}}. In \bibinfo{booktitle}{{\em {Internet of Things (IOT), 2012
3rd International Conference on the}}}. \bibinfo{pages}{151--158}.
\newblock
\showDOI{%
\url{https://doi.org/10.1109/IOT.2012.6402317}}
和你得到的结果一样。下次编译时不会出现任何错误。