6

I have the following example for doing cross-referencing using the amsrefs package:

\documentclass{amsart}
\usepackage{amsrefs}

\begin{document}

Please see \cite{B} for more details.

\begin{bibdiv}
\begin{biblist}
  \bib*{A}{book}{
    title = {Proceedings of the 10th Annual International Conference on XXX},
    publisher = {La-La},
    date = {2000}
  }
  \bib{B}{article}{
    title = {A Brief History of XXX},
    author = {John, M.},
    xref = {A},
    date = {2000},
    pages = {70--80}
  }
\end{biblist}
\end{bibdiv}

\end{document}

Running this through LaTeX and previewing the PDF document, I find that the article’s entry in the bibliography contains the title of the conference-proceedings book but not the name of the book’s publisher. Is there an elegant way of fixing this issue?

Thanks!

2 Answers 2

3

You can redefine the specs for a collection.article:

\documentclass{amsart}
\usepackage{amsrefs}

\BibSpec{collection.article}{%
    +{}  {\PrintAuthors}                {author}
    +{,} { \textit}                     {title}
    +{.} { }                            {part}
    +{:} { \textit}                     {subtitle}
    +{,} { \PrintContributions}         {contribution}
    +{,} { \PrintConference}            {conference}
    +{}  {\PrintBook}                   {book}
    +{,} { }                            {booktitle}
    +{,} { }                            {publisher}
    +{,} { \PrintDateB}                 {date}
    +{,} { pp.~}                        {pages}
    +{,} { }                            {status}
    +{,} { \PrintDOI}                   {doi}
    +{,} { available at \eprint}        {eprint}
    +{}  { \parenthesize}               {language}
    +{}  { \PrintTranslation}           {translation}
    +{;} { \PrintReprint}               {reprint}
    +{.} { }                            {note}
    +{.} {}                             {transition}
    +{}  {\SentenceSpace \PrintReviews} {review}
}


\begin{document}

Please see \cite{B} for more details.

\begin{bibdiv}
\begin{biblist}
  \bib*{A}{book}{
    title = {Proceedings of the 10th Annual International Conference on XXX},
    publisher = {La-La},
    date = {2000}
  }
  \bib{B}{collection.article}{
    title = {A Brief History of XXX},
    author = {John, M.},
    xref = {A},
    date = {2000},
    pages = {70--80}
  }
\end{biblist}
\end{bibdiv}

\end{document}

In amsrefs.sty the publisher is not included in the information for that entry type. Note that it's better to classify it collection.article rather than article anyway.

enter image description here

2
  • Hi egreg. I have a further question. How would I add the editor field for amsrefs? I require something like “Name of book, Editor 1 and Editor 2 (Eds.), ...” I don’t know how to add “(Eds.)” using \BibSpec. Nov 13, 2014 at 4:16
  • @BerrickFillmore That's too much for a comment, it's better to open a new question on the site.
    – egreg
    Nov 13, 2014 at 8:31
1

As mentioned in Section 8.3 of the package documentation, compound fields can also function as cross-reference fields. In this case, you can get the publisher's name to appear by using book={A} instead of xref={A}.

Screenshot of the output when book={A} is used instead of xref={A}

Here, the year 2000 appears twice because the entry date={2000} occurs in the \bib*{A}{book} entry and also separately in the \bib{B}{article} entry. Sometimes, this could indeed be the required behaviour; but, in this case it seems to be redundant, so you can remove the date entry in the \bib{B}{article} entry.


To be fair, the documentation is a bit unclear about when \xref should be used instead of a compound field like book for cross-referencing, literally leaving it as "an exercise for the reader" [section 8.3, page 24].

A little experimentation with the examples provided in the documentation provides the following rules of thumb:

  1. \xref behaves as if all the fields in the \bib* cross-reference are added verbatim to the main \bib reference, except for any title field, which is added as a booktitle. For instance, in your MCVE, the output contains the title of the article as well as the title of the conference, since the latter field is imported as a booktitle field by xref:

    M. John, A Brief History of XXX, Proceedings of the 10th Annual International Conference on XXX, 2000, pp. 70–80.

  2. Any fields that are duplicated by the cross-reference are ignored. This is the case with the date field in your MCVE: notice that the year "2000" occurs only once in the output, as it should.
  3. Any fields in the cross-reference that are not recognized by the main \bib reference type are simply ignored. In your case, the fields publisher and address added by the cross-reference are being ignored because these fields are not recognized by the article entry type.
  4. When using a compound field, say book, for cross-referencing, the fields in the \bib* cross-reference are imported verbatim inside the book compound field in the main \bib reference. Any field that this "innerbook" field (in this case) recognizes is printed, and any field that it does not recognize is ignored.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .