Search code examples
latexbibtexbibliographybiblatex

Error when using biblatex with ACM-reference-format


I am using the ACM-Reference-Format. I need to sort the reference based on the order they appear in the paper, so I tried to use biblatex package like below:

\usepackage[sorting=none]{biblatex}
\bibliographystyle{ACM-Reference-Format}

But then I got the following error:

enter image description here

Is there anything I am missing? Thanks!


Solution

  • By default the acm classes turn on natbib which is not comptabile with biblatex. Fortunately there is an option to turn this off. You can then use biblatex as follows, including your sorting=none option:

    \documentclass[sigconf,natbib=false]{acmart}
    
    \usepackage[style=ACM-Reference-Format,backend=bibtex,sorting=none]{biblatex}
    \addbibresource{sample-bibliography.bib}
    

    and put

    \printbibliography
    

    at the point in the document when you want the document printed.

    Doing this to sample-sigconf.tex and adding a \nocite{*} results in a bibliography starting as follows, with Lamport as the first reference instead of articles with authors beginning with A.

    Sample output

    Here is a minimal document demonstrating this:

    \documentclass[sigconf,natbib=false]{acmart}
    
    \usepackage[style=ACM-Reference-Format,backend=bibtex,sorting=none]{biblatex}
    \addbibresource{sample-bibliography.bib}
    \begin{document}
    \title{Contribution title}
    \author{A. N. Author}
    \maketitle
    
    \textcite{Kosiur01} and \textcite{Cohen07}
    
    \printbibliography
    
    \end{document}
    

    where sample-bibliography.bib contains

    @Article{Cohen07,
      author        = "Sarah Cohen and Werner Nutt and Yehoshua Sagic",
      title         = "Deciding equivalances among conjunctive aggregate queries",
      journal       = JACM,
      articleno     = "5",
      numpages      = "50",
      volume        = "54",
      number        = "2",
      month         = apr,
      year          = "2007",
      doi           = "10.1145/1219092.1219093",
      url           = "http://doi.acm.org/10.1145/1219092.1219093",
      acmid         = "1219093",
      note          = "",
    }
    
    @Book{Kosiur01,
      author =       "David Kosiur",
      title =        "Understanding Policy-Based Networking",
      publisher =    "Wiley",
      year =         "2001",
      address =      "New York, NY",
      edition =      "2nd.",
      editor =       "",
      volume =       "",
      number =       "",
      series =       "",
      month =        "",
      note =         "",
    }
    

    giving after pdflatex, bibtex, pdflatex, pdflatex:

    Sample output

    Removing the sorting=none option results in the opposite order in the bibliography.

    Switching to the default backend biber instead of bibtex will give you access to more features of biblatex.