[Tex/LaTex] Tex Live 2016 Mac Sierra bibtex ! Undefined control sequence. \citeauthoryear

bibtexundefined

I was writing in the sample-sigconf.tex and the samplebody-conf.tex files which I downloaded from the ACM site. The bibliography style was ACM-Reference-Format. I was working in an earlier OS in Mac and it worked fine. I updated to Sierra and everything broke. I followed the instructions given in http://www.tug.org/mactex/ to resolve the issues.

However, I can't seem to resolve the following error when I compile the .tex file with my BibTeX.

! Undefined control sequence. <argument> \citeauthoryear

The ACM-Reference-Format.bst adds \protect\citeauthoryear phrase for the bibitem and I can see it in the .bbl file. How can I make my Tex distribution to process this command? Has anyone encountered this issue? What is a good solution?

I was thinking to delete the \protect\citeauthoryear phrase from the .bst file. But I know a lot of people are using this so there must be a better solution.

Providing the code as suggested. The main tex file looks like that.

\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}

I cite as follows in the body.

The Internet of Things(IoT)  \cite{dynamix} 

the generated .bbl file has the following entry for the citation like below.

\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}}

Thank you

Best Answer

I tried an experiment, building the file

\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}

The changes are

  1. the loading of packages is in a better order
  2. the filecontents environment
  3. removing .bib in the \bibliography instruction

The first change should have no consequence. The second one is just for making the example self-contained. The final change is important! The .bib extension should never appear in the argument for \bibliography (only MiKTeX allows it and it shouldn't).

If I compile the sample document and run BibTeX, the generated .bbl file contains

\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}}

which is the same as you got. There is no error in the next compilation.

enter image description here

Related Question