2

In citing medieval texts using biblatex-chicago, I often want to refer to the author and title of a book, then print a section or paragraph number, then the book's editor (i.e., the modern editor who collated the manuscripts and produced the version of the text I am using), and only then the page number or, in the (common) case of a multivolume edition, volume number and page number. Is there a citation command that would let me do this (along the lines of Chicago Manual of Style 14.260)?

Here is an example of what I am looking for. The first citation should be:

Photios, Bibliotheca, cod. 172, ed. René Henry (Paris: Les Belles Lettres, 1959–1991), vol. 2, p. 169.

Then subsequent citations should be:

Photios, Bibliotheca, cod. 172, ed. Henry, vol. 2, p. 169.

To do this, I would like to be able to write:

Photios, \emph{Bibliotheca}, cod.\ 172, \editorvolcite{2}[169]{photios:bibliotheca:henry}.

with a .bib file containing:

@book{photios:bibliotheca:henry,
Address = {Paris},
Author = {Photios},
Booktitle = {Bibliothèque},
Editor = {Henry, René},
Entrysubtype = {primary},
Note = {index by Jacques Schamp},
Publisher = {Les Belles Lettres},
Title = {Bibliothèque},
Volumes = {9},
Year = {1959--1991}}

Perhaps there is already a command like \editorvolcite?

(Likewise, for the case of a single-volume work, there would be a command \editorcite that only prints "editor, p. pagenumber".)


Update 2017-09-09

MWE (using \volcite rather than the desired \editorvolcite in order to satisfy the "W" part of MWE):

\documentclass{article}

\usepackage[notes]{biblatex-chicago}
\addbibresource{editor-cite.bib}

\begin{document}

Photios, \emph{Bibliotheca}, cod.\ 172,\mancite{}
\volcite{2}[169]{photios:bibliotheca:henry}.

Photios, \emph{Bibliotheca}, cod.\ 172,\mancite{}
\volcite{2}[169]{photios:bibliotheca:henry}.

\end{document}

Update 2017-09-10

Based on the comments, I have looked into biblatex-source-division with the usage described in Print numbered paragraph and tried to implement it. But it still doesn't quite do what I'm trying to do.

Here is my MWE version 2:

\documentclass{article}

\usepackage[notes]{biblatex-chicago}
\usepackage{biblatex-source-division}

\renewcommand*\newunitpunct{\addcomma\space}
\begin{filecontents*}{\jobname.bib}
@book{photios:bibliotheca:henry,
    Address = {Paris},
    Author = {Photios},
    Booktitle = {Bibliothèque},
    Editor = {Henry, René},
    Entrysubtype = {primary},
    Note = {index by Jacques Schamp},
    Publisher = {Les Belles Lettres},
    Title = {Bibliothèque},
    Volumes = {9},
    Year = {1959--1991}}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}

1st time:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.

2nd time:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.

\mancite{}

Again after \verb`\mancite`:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.

\end{document}

The result for the first-time citation is perfect. But I think the following citation should be simply "ibid." though "ibid., cod. 172" is not so bad either. But the real problem is that the (full) short citation after \mancite lacks the editor. Here is a clip of my result:

Result of MWE v2

Is there a way to turn the last one into the following?

Photios, Bibliothèque, cod. 172, ed. Henry, vol. 2, p. 169.


Update 2017-09-21

As I mentioned in a comment down below, the solution kindly proposed by @moewe results in a slight bug when it interacts with complicated features of biblatex-chicago, in particular shorthandibid. Here is a new MWE that produces a spurious comma resulting in

ibid.,

where there should simply be

ibid.

\documentclass{article}

\usepackage[notes,
        alldates=       comp,
        backend=        biber,
        bibwarn=        false,
        cmsdate=        both, % reprints: print `origdate` as well as `year`
        compresspages=  true,
        doi=            false,
        eprint=     false,
        ibidtracker=        true,
        inheritshorthand,       % feature added for me by D.Fussner
        isbn=           false,
        mincrossrefs =  2,
        shorthandibid,
        strict=     true,
        url=            false,
        usetranslator=  true,
        uniquename= true
    ]{biblatex-chicago}
\usepackage{biblatex-source-division}

\AtEveryCite{\renewcommand*\newunitpunct{\addcomma\space}}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{photios:bibliotheca:henry,
    Address = {Paris},
    Author = {Photios},
    Booktitle = {Bibliothèque},
    Editor = {Henry, René},
    Entrysubtype = {primary},
    Note = {index by Jacques Schamp},
    Publisher = {Les Belles Lettres},
    Title = {Bibliothèque},
    Volumes = {9},
    Year = {1959--1991},
    options = {medinfo},
}
@book{loci:communes:ihm,
    Author = {{ps.-Maximos the Confessor}},
    Booktitle = {Erste kritische Edition einer Redaktion des sacro-profanen Florilegiums Loci communes},
    Editor = {Ihm, Sibylle},
    Entrysubtype = {primary},
    Keywords = {Loci communes},
    Publisher = {Franz Steiner Verlag},
    Shorthand = {\emph{Loc.comm.}\ Ihm},
    Shorttitle = {Loci communes},
    Sortname = {Maximos the Confessor},
    Title = {Erste kritische Edition einer Redaktion des sacro-profanen Florilegiums Loci communes},
    Year = {2001}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\newtoggle{bbx:ar:medinfo}
\togglefalse{bbx:ar:medinfo}
\DeclareEntryOption[boolean]{medinfo}[true]{\settoggle{bbx:ar:medinfo}{#1}}

\makeatletter
\renewbibmacro*{cite:short}{%
  \usebibmacro{allshort+firstcite+xref}%
  \ifthenelse{\ifnameundef{labelname}\OR%
    \ifentrytype{inreference}\OR%
    \ifentrytype{reference}\OR%
    \ifentrytype{mvreference}}%
  {\ifthenelse{\iffieldequalstr{entrysubtype}{magazine}\AND\NOT%
      \ifentrytype{periodical}}% Simplify .bib creation
    {\ifuseauthor%
      {\ifboolexpr{%
          not test {\iffieldundef{shortjournal}}%
          and
          ((
          test {\ifcitation}%
          and
          togl {cms@citejtabb}%
          )
          or
          (
          test {\ifbibliography}%
          and
          togl {cms@bibjtabb}%
          ))
        }%
        {\printfield[shortjournal]{shortjournal}\newcunit}%
        {\printfield[journaltitle]{journaltitle}\newcunit}}%
      {}}%
    {\ifentrytype{manual}%
      {\printlist{organization}\isdot\newcunit}%
      {}}}%
  {\ifboolexpr{%
      test {\ifciteidem}%
      and
      not test {\ifbibliography}%
      and
      not test {\iffirstonpage}%
      and
      not togl {cms@noidem}%
      and
      not togl {cms@headlessnote}%
    }%
    {\bibstring[\mkibid]{idem\thefield{gender}}%
      \classicpunct}%
    {\iffieldequalstr{authortype}{anon}%
      {\bibleftbracket\printnames{labelname}%
        \bibrightbracket\classicpunct}%
      {\iffieldequalstr{authortype}{anon?}%
        {\bibleftbracket\printnames{labelname}?%
          \bibrightbracket\classicpunct}%
        {\printnames{labelname}%\usebibmacro{choose+labelname}%
          \isdot\classicpunct}}}}%
  \ifboolexpr{%
    togl {cms@allshort}%
    or
    test {\ifbibliography}%
  }%
  {\printtext[bibhyperref]{%
    \printfield[citetitle]{labeltitle}}}%
  {\printtext[cmshyperlink]{%
    \printfield[citetitle]{labeltitle}}}%#
  \iftoggle{bbx:ar:medinfo}
    {\newcunit
     \printfield{titleaddon}%
     \newcunit
     \usebibmacro{cbyeditor:short}}
  {}}

\DeclareNameFormat{family}{%
  \usebibmacro{name:family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}%
  \usebibmacro{name:andothers}}

\renewbibmacro*{cbyeditor:short}{%
  \ifnameundef{editor}%
    {}%
    {\usebibmacro{cbytypestrg}{editor}{editor}%
     \setunit{\addspace}%
     \printnames[family]{editor}%
     \newcunit}%
  \usebibmacro{cbyeditorx:short}}

\renewbibmacro*{cbyeditorx:short}{%
  \ifnameundef{editora}%
    {}%
    {\usebibmacro{cbytypestrg}{editora}{editor}%
     \setunit{\addspace}%
     \printnames[family]{editora}%
     \newcunit}%
  \ifnameundef{editorb}%
    {}%
    {\usebibmacro{cbytypestrg}{editorb}{editor}%
     \setunit{\addspace}%
     \printnames[family]{editorb}%
     \newcunit}%
  \ifnameundef{editorc}%
    {}%
    {\usebibmacro{cbytypestrg}{editorc}{editor}%
     \setunit{\addspace}%
     \printnames[family]{editorc}%
     \newcunit}}
\makeatother

\begin{document}

\section{editor-cite with volume}

1st time:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.

2nd time:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.

After \mancite\verb`\mancite`:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.

Again: \volcite{2}[(cod.\ 172)169\textsubscript{11}]{photios:bibliotheca:henry}.

\section{problem with shorthand/ibid}

1st time: \cite[3]{loci:communes:ihm}.

2nd time: \cite[3]{loci:communes:ihm}.

After \mancite\verb`\mancite`: \cite[3]{loci:communes:ihm}.

Again: \cite[3]{loci:communes:ihm}.

Without final period in source: \cite[3]{loci:communes:ihm}

\printbibliography
\end{document}
8
  • Am I right in thinking that you use the note style? An MWE would help us get started more quickly, even though your question is fairly clear without one.
    – moewe
    Sep 8 '17 at 9:45
  • 2
    I think that biblatex-source-division will do what you want. Sep 8 '17 at 10:32
  • 1
    Have a look at Print numbered paragraph after title with Biblatex for biblatex-source-division.
    – moewe
    Sep 8 '17 at 13:04
  • 1
    Is used in many places in the bibliography (it is the default punctuation between any two bits of information - in some prominent places it is overridden by other explicit punctuation) and rarely in (full) citations. Changing it can cause changes in quite a bit of places.
    – moewe
    Sep 10 '17 at 12:59
  • 1
    You could do \AtEveryCite{\renewcommand*\newunitpunct{\addcomma\space}}. biblatex-chicago already uses commas in citations more extensively, but since its codebase is so big another solution will need to redefine lots of things.
    – moewe
    Sep 11 '17 at 9:39
3

Based on your last MWE using biblatex-source-division we can implement a new option called medinfo that interacts with biblatex-source-division and also prints the editor.

The necessary changes are quite long since the macros of biblatex-chicago are quite complicated.

\documentclass{article}

\usepackage[notes]{biblatex-chicago}
\usepackage{biblatex-source-division}

\renewcommand*\newunitpunct{\addcomma\space}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{photios:bibliotheca:henry,
    Address = {Paris},
    Author = {Photios},
    Booktitle = {Bibliothèque},
    Editor = {Henry, René},
    Entrysubtype = {primary},
    Note = {index by Jacques Schamp},
    Publisher = {Les Belles Lettres},
    Title = {Bibliothèque},
    Volumes = {9},
    Year = {1959--1991},
    options = {medinfo},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\newtoggle{bbx:ar:medinfo}
\togglefalse{bbx:ar:medinfo}
\DeclareEntryOption[boolean]{medinfo}[true]{\settoggle{bbx:ar:medinfo}{#1}}

\makeatletter
\renewbibmacro*{cite:short}{%
  \usebibmacro{allshort+firstcite+xref}%
  \ifthenelse{\ifnameundef{labelname}\OR%
    \ifentrytype{inreference}\OR%
    \ifentrytype{reference}\OR%
    \ifentrytype{mvreference}}%
  {\ifthenelse{\iffieldequalstr{entrysubtype}{magazine}\AND\NOT%
      \ifentrytype{periodical}}% Simplify .bib creation
    {\ifuseauthor%
      {\ifboolexpr{%
          not test {\iffieldundef{shortjournal}}%
          and
          ((
          test {\ifcitation}%
          and
          togl {cms@citejtabb}%
          )
          or
          (
          test {\ifbibliography}%
          and
          togl {cms@bibjtabb}%
          ))
        }%
        {\printfield[shortjournal]{shortjournal}\newcunit}%
        {\printfield[journaltitle]{journaltitle}\newcunit}}%
      {}}%
    {\ifentrytype{manual}%
      {\printlist{organization}\isdot\newcunit}%
      {}}}%
  {\ifboolexpr{%
      test {\ifciteidem}%
      and
      not test {\ifbibliography}%
      and
      not test {\iffirstonpage}%
      and
      not togl {cms@noidem}%
      and
      not togl {cms@headlessnote}%
    }%
    {\bibstring[\mkibid]{idem\thefield{gender}}%
      \classicpunct}%
    {\iffieldequalstr{authortype}{anon}%
      {\bibleftbracket\printnames{labelname}%
        \bibrightbracket\classicpunct}%
      {\iffieldequalstr{authortype}{anon?}%
        {\bibleftbracket\printnames{labelname}?%
          \bibrightbracket\classicpunct}%
        {\printnames{labelname}%\usebibmacro{choose+labelname}%
          \isdot\classicpunct}}}}%
  \ifboolexpr{%
    togl {cms@allshort}%
    or
    test {\ifbibliography}%
  }%
  {\printtext[bibhyperref]{%
    \printfield[citetitle]{labeltitle}}}%
  {\printtext[cmshyperlink]{%
    \printfield[citetitle]{labeltitle}}}%#
  \iftoggle{bbx:ar:medinfo}
    {\newcunit
     \printfield{titleaddon}%
     \newcunit
     \usebibmacro{cbyeditor}}
  {}}
\makeatother

\begin{document}
1st time:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.

2nd time:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.

\cite{sigfridsson}

Again after \verb`\mancite`:
\volcite{2}[(cod.\ 172)169]{photios:bibliotheca:henry}.
\end{document}

Subsequent non-ibid citation 'Photios, *Bibliothèque*, cod. 172, ed. René Henry, vol. 2, p. 169.'

If you want only the last name, replace the \makeatletter...\makeatother block with the longer

\makeatletter
\renewbibmacro*{cite:short}{%
  \usebibmacro{allshort+firstcite+xref}%
  \ifthenelse{\ifnameundef{labelname}\OR%
    \ifentrytype{inreference}\OR%
    \ifentrytype{reference}\OR%
    \ifentrytype{mvreference}}%
  {\ifthenelse{\iffieldequalstr{entrysubtype}{magazine}\AND\NOT%
      \ifentrytype{periodical}}% Simplify .bib creation
    {\ifuseauthor%
      {\ifboolexpr{%
          not test {\iffieldundef{shortjournal}}%
          and
          ((
          test {\ifcitation}%
          and
          togl {cms@citejtabb}%
          )
          or
          (
          test {\ifbibliography}%
          and
          togl {cms@bibjtabb}%
          ))
        }%
        {\printfield[shortjournal]{shortjournal}\newcunit}%
        {\printfield[journaltitle]{journaltitle}\newcunit}}%
      {}}%
    {\ifentrytype{manual}%
      {\printlist{organization}\isdot\newcunit}%
      {}}}%
  {\ifboolexpr{%
      test {\ifciteidem}%
      and
      not test {\ifbibliography}%
      and
      not test {\iffirstonpage}%
      and
      not togl {cms@noidem}%
      and
      not togl {cms@headlessnote}%
    }%
    {\bibstring[\mkibid]{idem\thefield{gender}}%
      \classicpunct}%
    {\iffieldequalstr{authortype}{anon}%
      {\bibleftbracket\printnames{labelname}%
        \bibrightbracket\classicpunct}%
      {\iffieldequalstr{authortype}{anon?}%
        {\bibleftbracket\printnames{labelname}?%
          \bibrightbracket\classicpunct}%
        {\printnames{labelname}%\usebibmacro{choose+labelname}%
          \isdot\classicpunct}}}}%
  \ifboolexpr{%
    togl {cms@allshort}%
    or
    test {\ifbibliography}%
  }%
  {\printtext[bibhyperref]{%
    \printfield[citetitle]{labeltitle}}}%
  {\printtext[cmshyperlink]{%
    \printfield[citetitle]{labeltitle}}}%#
  \iftoggle{bbx:ar:medinfo}
    {\newcunit
     \printfield{titleaddon}%
     \newcunit
     \usebibmacro{cbyeditor:short}}
  {}}

\DeclareNameFormat{family}{%
  \usebibmacro{name:family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}%
  \usebibmacro{name:andothers}}

\newbibmacro*{cbyeditor:short}{%
  \ifnameundef{editor}%
    {}%
    {\usebibmacro{cbytypestrg}{editor}{editor}%
     \setunit{\addspace}%
     \printnames[family]{editor}%
     \newcunit}%
  \usebibmacro{cbyeditorx:short}}

\newbibmacro*{cbyeditorx:short}{%
  \ifnameundef{editora}%
    {}%
    {\usebibmacro{cbytypestrg}{editora}{editor}%
     \setunit{\addspace}%
     \printnames[family]{editora}%
     \newcunit}%
  \ifnameundef{editorb}%
    {}%
    {\usebibmacro{cbytypestrg}{editorb}{editor}%
     \setunit{\addspace}%
     \printnames[family]{editorb}%
     \newcunit}%
  \ifnameundef{editorc}%
    {}%
    {\usebibmacro{cbytypestrg}{editorc}{editor}%
     \setunit{\addspace}%
     \printnames[family]{editorc}%
     \newcunit}}
\makeatother

The additional comma after 'ibid.' was introduced by biblatex-source-division. I don't think this package was written with biblatex-chicago in mind.

As it turns out this could be considered a bug in biblatex-source-division. I have reported the issue at https://github.com/maieul/biblatex-source-division/issues/2 and Maïeul has reacted really swiftly. Version 2.4.2 of the package has a fix for this problem, this version is available in MikTeX and TeX live now.

(An earlier version of this answer included an ad-hoc fix for the problem. That fix is not necessary any longer with the updated version of biblatex-source-division, so I removed it, it can be found in the edit history.)

11
  • Wonderful, thank you, @moewe. Would it be possible to tweak it to print only the editor's short name (in this case "ed. Henry" instead of "ed. René Henry") for repeated citations? Sep 11 '17 at 5:47
  • @AlexRoberts It is possible (but possibly inconsistent), see the edit, please.
    – moewe
    Sep 11 '17 at 9:30
  • In my original question I had been searching for a cite command that would print only the editor's name (or editor plus Address, Publisher, and Year) followed by page or vol/page. Sometimes it would be useful to be able to do just that. Is that simple to do? Perhaps a command for it already exists and I just haven't found it in the biblatex-chicago manual? Sep 12 '17 at 6:12
  • @AlexRoberts I don't think such a command exists, you'd have to roll your own. \citename{foo}{editor} gives you the editor, but not the volume, you could define a volcite version of the editor citation...
    – moewe
    Sep 12 '17 at 6:28
  • 1
    @AlexRoberts Maïeul has pushed a new version of biblatex-source-division to CTAN. With the new version my modified version of getsourcedivision is not needed any more.
    – moewe
    Sep 23 '17 at 12:54

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.