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?

7
  • Do you have the most recent version of biblatex-chicago? It was updated with support for the mv* entry types.
    – Gene G.
    Mar 8, 2014 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, 2014 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, 2014 at 4:06
  • let us continue this discussion in chat
    – Gene G.
    Mar 8, 2014 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, 2014 at 14:12

1 Answer 1

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

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

You must log in to answer this question.

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