6

I'm using biblatex-chicago to manage citations in my dissertation. I often cite a multi-volume collection, Foreign Relations of the United States, for which there is an accepted citation format. I've created a customized bibliography driver, @archive to mimic this format, but there is one remaining error I can't fix. The MWE:

\documentclass{article}
\usepackage[notes,backend=biber,booklongxref=bib]{biblatex-chicago}

\DeclareBibliographyAlias{mvarchive}{archive}

\DeclareFieldFormat*[archive]{volume}{vol. #1}
\DeclareFieldFormat*[archive]{part}{\parentext{#1}}

\DeclareDataInheritance{mvarchive}{*}{
    \inherit{editor}{editor}
    \inherit{location}{location}
    \inherit{publisher}{publisher}
    \inherit{title}{maintitle}
    \inherit{subtitle}{mainsubtitle}
    \noinherit{shorttitle}
}

\newbibmacro*{archive-mtitle}{%
    \toggletrue{cms@usedvol}%
      \printtext[maintitle]{%
        \printfield[noformat]{maintitle}%
        \setunit{\addcolon\addspace}%
        \printfield[noformat]{mainsubtitle}}%
      \newcunit
      \printfield{maintitleaddon}
      \setunit{\addcomma\addspace}%
      \printtext[title]{%
      \printfield[noformat]{title}}}

\DeclareBibliographyDriver{archive}{%
  \usebibmacro{bibindex}%
  \usebibmacro{editor}%
  \setunit{\addspace}%
  \printfield{nameaddon}%
  \newcunit\newblock
  \usebibmacro{archive-mtitle}%
  \newcunit\newblock
  \printfield{volume}%
  \printfield{part}
  \setunit{\addcolon\addspace}%
  \printtext[subtitle]{%
    \printfield[title]{subtitle}}%
  \newunit\newblock
  \usebibmacro{publ+loc+year}%
  \newunit\newblock
  \usebibmacro{finentry}}%

\DeclareBibliographyDriver{cite:archive}{%
  \usebibmacro{bibindex}%
  \ifboolexpr{
    test {\iffieldundef{crossref}}%
    or
    not test {\ifentryseen{\thefield{crossref}}}%
  }% expression
  {%
    \usebibmacro{editor}%
    \setunit{\addspace}%
    \printfield{nameaddon}%
    \setunit{\addcomma\addspace}%
    \newcunit\newblock
    \usebibmacro{archive-mtitle}%
    \newcunit\newblock
    \usebibmacro{cpubl+loc+year}%
    \newcunit\newblock
    \printfield{volume}%
    \printfield{part}%
    \newcunit\newblock
    \usebibmacro{volfullpostnote}%
    \newcunit\newblock
    \usebibmacro{cite+doi+url}%
    \newcunit\newblock
    \usebibmacro{pageref}%
    \usebibmacro{finentry}%
    \usebibmacro{book:xref+finentry}%
    }%
  {%
    \entrydata{\thefield{crossref}}{%
        \clearname{editor}%
        \printtext[cmshyperlink]{%
            \printfield[citetitle]{labeltitle}}}%
    \setunit{\addcomma\addspace}%
    \clearname{editor}%
    \printtext[cmshyperlink]{%
        \printfield[citetitle]{labeltitle}}%
    \newcunit\newblock
    \printfield{volume}%
    \printfield{part}%
    \newcunit\newblock
    \usebibmacro{volfullpostnote}%
    \newcunit\newblock
    \usebibmacro{pageref}%
    \usebibmacro{finentry}}}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}

@MVarchive{FRUS,
    Editor = {{U.S. Department of State}},
    Location = {Washington},
    Publisher = {United States Government Printing Office},
    Shorttitle = {FRUS},
    Title = {Foreign Relations of the United States}}

@archive{FRUS:61-63:5.1,
    Title = {1961--1963},
    Subtitle = {Soviet Union},
    Shorttitle = {1961--63},
    Volume = {5},
    Part = {1},
    Crossref = {FRUS},
    Year = {1998}}

@archive{FRUS:64-68:11,
    Title = {1964--1968},
    Subtitle = {Arms Control and Disarmament},
    Shorttitle = {1964--68},
    Volume = {11},
    Crossref = {FRUS},
    Year = {1997}}

\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
Note.\footcite[795--96]{FRUS:61-63:5.1}

Note.\footcite[50-52]{FRUS:61-63:5.1}

Note.\footcite[654--56]{FRUS:64-68:11}

Note.\footcite[50-52]{FRUS:61-63:5.1}
\printbibliography
\end{document}

Resulting in:

enter image description here

That's exactly how FRUS citations should look in chicago-style, with the exception of footnote 4. Notice that when I repeat the citation for FRUS 1961-63 in footnote 2, it gives me an ibid and a postnote, as it should. Likewise, in footnote 3, it is the first instance of a different FRUS volume, so it gives me the shorttitle for the parent, followed by the shorttitle for the child, the volume, and the postnote. But when I repeat the citation for FRUS 61-63 in footnote 4, it reverts to a completely different style.

What changes do I need to make to have footnote 4 look exactly like footnote 3?

  • Do you have the most recent version of biblatex-chicago? It was updated with support for the mv* entry types. – Gene G. Mar 8 '14 at 2:26
  • I'm using Latexmk.pl with pdflatex and biber, and I'm consistently getting output with this example. – Gene G. Mar 8 '14 at 4:00
  • I've never done anything with the config files in my personal texmf tree. Just to make sure this was working, I used pdflatex -> biber -> pdflatex without using latexmk.pl. Working for me! If you manually biber in your terminal, are there errors? – Gene G. Mar 8 '14 at 4:06
  • let us continue this discussion in chat – Gene G. Mar 8 '14 at 4:23
  • The problem with your example is that the collection is actually a two-tier collection: There are year volumes as well as volumes within those volumes (there is "1961-63, volume I" as well as "1964-68, volume I"). So a solution for this problem might cause some problems with other @mvcollections/@collections. – moewe Mar 8 '14 at 14:12
4

I solved the issue by redefining bibmacro{cite} such that it checks to see whether the entry type is @archive. Less than elegant, I'm certain, but it got the job done. MWE:

\documentclass{article}
\usepackage[notes,backend=biber,booklongxref=bib]{biblatex-chicago}

\newbibmacro*{cite}{%
  \ifciteseen%
    {\iffieldundef{shorthand}%
       {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}%
          {\usebibmacro{cite:ibid}}%
          {\ifboolexpr{not test {\ifentrytype{archive}}}{%
          \global\toggletrue{cms@shortnote}%
            \global\togglefalse{cms@fullnote}%
            \usebibmacro{cite:short}%
           \usebibmacro{cite:save}}%
           {\usebibmacro{cite:full}% If it is @archive, use regular cite
           \usebibmacro{cite:save}}}}%
       {\iftoggle{cms@shorthandibid}%
         {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}%
           {\usebibmacro{cite:ibid}}%
           {\usebibmacro{cite:shorthand}%
             \usebibmacro{cite:save}}}%
         {\usebibmacro{cite:shorthand}%
           \usebibmacro{cite:save}}}}%
    {\iftoggle{cms@allshort}%
      {\global\toggletrue{cms@shortnote}%
        \global\togglefalse{cms@fullnote}%
        \global\toggletrue{cms@printshhand}%
        \usebibmacro{cite:short}%
        \usebibmacro{cite:save}}%
      {\global\toggletrue{cms@fullnote}%
        \global\togglefalse{cms@shortnote}%
        \usebibmacro{cite:full}%
        \usebibmacro{cite:save}}}}%

\DeclareBibliographyAlias{mvarchive}{archive}

\DeclareFieldFormat*[archive]{volume}{vol. #1}
\DeclareFieldFormat*[archive]{part}{\parentext{#1}}

\DeclareDataInheritance{mvarchive}{*}{
    \inherit{editor}{editor}
    \inherit{location}{location}
    \inherit{publisher}{publisher}
    \inherit{title}{maintitle}
    \inherit{subtitle}{mainsubtitle}
    \noinherit{shorttitle}
}

\newbibmacro*{archive-mtitle}{%
    \toggletrue{cms@usedvol}%
      \printtext[maintitle]{%
        \printfield[noformat]{maintitle}}%
      \newcunit
      \printfield{maintitleaddon}
      \setunit{\addcomma\addspace}%
      \printtext[title]{%
      \printfield[noformat]{title}}}

\DeclareBibliographyDriver{archive}{%
  \usebibmacro{bibindex}%
  \usebibmacro{editor}%
  \setunit{\addspace}%
  \printfield{nameaddon}%
  \newcunit\newblock
  \usebibmacro{archive-mtitle}%
  \newcunit\newblock
  \printfield{volume}%
  \printfield{part}
  \ifboolexpr{
    not test{\iffieldundef{crossref}}}%
  {%
  \setunit{\addcolon\addspace}%
  \printtext[subtitle]{%
    \printfield[title]{subtitle}}%
    \newunit\newblock}%
  {\newunit\newblock}%
  \usebibmacro{publ+loc+year}%
  \newunit\newblock
  \usebibmacro{finentry}}%

\DeclareBibliographyDriver{cite:archive}{%
  \usebibmacro{bibindex}%
  \ifboolexpr{
    test {\iffieldundef{crossref}}%
    or
    not test {\ifentryseen{\thefield{crossref}}}%
  }%
  {%
    \usebibmacro{editor}%
    \setunit{\addspace}%
    \printfield{nameaddon}%
    \newcunit\newblock
    \usebibmacro{archive-mtitle}%
    \newcunit\newblock
    \usebibmacro{cpubl+loc+year}%
    \newcunit\newblock
    \printfield{volume}%
    \printfield{part}%
    \newcunit\newblock
    \usebibmacro{volfullpostnote}%
    \newcunit\newblock
    \usebibmacro{pageref}%
    \usebibmacro{finentry}%
    \usebibmacro{book:xref+finentry}%
    }%
  {%
    \entrydata{\thefield{crossref}}{%
        \printtext[title]{%
            \printfield[noformat]{labeltitle}}}%
    \newcunit\newblock
    \clearname{editor}%
    \printtext[cmshyperlink]{%
        \printfield[citetitle]{labeltitle}}%
    \newcunit\newblock
    \printfield{volume}%
    \printfield{part}%
    \newcunit\newblock
    \usebibmacro{volfullpostnote}%
    \newcunit\newblock
    \usebibmacro{finentry}}}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}

@MVarchive{FRUS,
    Editor = {{U.S. Department of State}},
    Location = {Washington},
    Publisher = {United States Government Printing Office},
    Shorttitle = {FRUS},
    Title = {Foreign Relations of the United States}}

@archive{FRUS:61-63:5.1,
    Title = {1961--1963},
    Subtitle = {Soviet Union},
    Shorttitle = {1961--63},
    Volume = {5},
    Part = {1},
    Crossref = {FRUS},
    Year = {1998}}

@archive{FRUS:64-68:11,
    Title = {1964--1968},
    Subtitle = {Arms Control and Disarmament},
    Shorttitle = {1964--68},
    Volume = {11},
    Crossref = {FRUS},
    Year = {1997}}

\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
Note.\footcite[795--96]{FRUS:61-63:5.1}

Note.\footcite[50-52]{FRUS:61-63:5.1}

Note.\footcite[654--56]{FRUS:64-68:11}

Note.\footcite[50-52]{FRUS:61-63:5.1}
\printbibliography
\end{document}

Produces:

enter image description here

  • Looks pretty good Gene; no doubt not the most efficient, as you admit, but certainly effective. – cslstr Mar 14 '14 at 5:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.