Tex Live 2016 Mac Sierra bibtex ! 未定义的控制序列。\citeauthoryear

Tex Live 2016 Mac Sierra bibtex ! 未定义的控制序列。\citeauthoryear

我使用的是从 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}

变化如下:

  1. 包裹的装载顺序更加合理
  2. 环境filecontents
  3. 删除.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}}

和你得到的结果一样。下次编译时不会出现任何错误。

在此处输入图片描述

相关内容