dcpurton / biblatex-sbl

Society of Biblical Literature (SBL) style files for biblatex
24 stars 5 forks source link

churchfather classictext related to article throws undefined control sequence error #128

Closed jjmccollum closed 2 years ago

jjmccollum commented 2 years ago

In my bibliography, I have some works by church fathers that are reproduced not in series, but in books and articles. I'd like to employ the citation-alternate citation mechanism—e.g., \cite[(5.18)628--629]{TertullianAdvMarc} for Tertullian, Marc. 5.18 (Evans, Adversus Marcionem, 628-29—for these works as well, and in general, I can use the related and relatedoptions fields to manage this correctly. But for an edition of a patristic work that was published in an article, cross-referencing the article in the related field of the patristic work causes an unexpected error.

A minimal working example (with the problematic lines of the bibliography entry commented out) is reproduced below:

\documentclass[12pt]{article}

\usepackage{filecontents}

\begin{filecontents}{bibliography.bib}
    @mvbook{Evans1972,
        editor = {Evans, Ernest},
        translator = {Evans, Ernest},
        title = {Tertullian, Adversus Marcionem},
        shorttitle = {Adversus Marcionem},
        volumes = {2},
        location = {Oxford},
        publisher = {Oxford University Press},
        date = {1972}
    }

    @article{Gregg1902,
        author = {Gregg, J. A. F.},
        title = {The Commentary of Origen upon the Epistle to the Ephesians},
        shorttitle = {Commentary of Origen},
        journaltitle = {Journal of Theological Studies},
        shortjournal = {{JTS}},
        pages = {1/3.10 \mkbibparens{1902}: 233--244\addsemicolon\space 1/3.11 \mkbibparens{1902}: 398--420\addsemicolon\space 1/3.12 \mkbibparens{1902}: 554--576},
    }

    @classictext{TertullianAdvMarc,
        entrysubtype = {churchfather},
        author = {{Tertullian}},
        title = {Adversus Marcionem},
        shorttitle = {Marc\adddot},
        related = {Evans1972},
        relatedoptions = {usefullcite=false,useshorttitle=true}
    }

    @classictext{OrigenCommEph,
        entrysubtype = {churchfather},
        author = {{Origen}},
        title = {Commentary on Ephesians},
        shorttitle = {Comm. Eph\adddot},
        % If the following lines are uncommented, then XeLaTeX throws the following error: ! Undefined control sequence. <argument> \ifciteseen 
        %related = {Gregg1902},
        %relatedoptions = {usefullcite=false,useshorttitle=true}
    }
\end{filecontents}

\usepackage[style=sbl, backend=biber]{biblatex}
\addbibresource{bibliography.bib} % Add the bibliography file to be processed by biblatex

\begin{document}
    Tertullian's commentary on Ephesians is taken from Evans's edition and translation \autocite{Evans1972}.

    Origen's commentary on Ephesians is taken from Gregg's edition \autocite{Gregg1902}.

    Citation of Tertullian \autocite[(5.18)628--629]{TertullianAdvMarc}.

    Citation of Origen \autocite[(§36)3:575]{OrigenCommEph}.
\end{document}

If I uncomment the last two lines of the last bib entry, then XeLaTeX throws the following error:

! Undefined control sequence.
<argument> \ifciteseen 
    {\usebibmacro {ifidemused} {} {\printnames [labelname...
l.56 ...igen \autocite[(§36)3:575]{OrigenCommEph}.

I am using the version of XeLaTeX and biblatex-sbl from the TeXLive 2021 distribution.

It seems that something strange is going on with the idem checking. Note that the first patristic source (related to a book) has its citation typeset correctly.

Is this a bug, or am I misusing the related mechanism for patristic works?

dcpurton commented 2 years ago

@jjmccollum I'll take a look. Can you also add the output you want to help me test

jjmccollum commented 2 years ago

@dcpurton Sure! Do you mean the expected typeset citation, the log file, or something else?

dcpurton commented 2 years ago

Expected typeset output (including what should appear in bibliography)

jjmccollum commented 2 years ago

Thanks! I would expect the following for the citations of the patristic sources:

Tertullian, Marc. 5.18 (Evans, Adversus Marcionem, 628-29.

Origen, Comm. Eph. §36 (Gregg, "Commentary of Origen" 3:575)

(The last citation above may or may not have a comma between the shorttitle and the part:page number citation; I know that SBL style drops the comma for volume:page citations for books, so I imagine that would be the correct approach here.)

For the bibliography, neither patristic work should appear. Only the works containing their editions should be included in the bibliography:

Evans, Ernest, ed. and trans. Tertullian, Adversus Marcionem. 2 vols. Oxford: Oxford University Press, 1972.

Gregg, J. A. F. "The Commentary of Origen upon the Epistle to the Ephesians." JTS 1/3.10 (1902): 233–44; 1/3.11 (1902): 398–420; 1/3.12 (1902): 554–76.

dcpurton commented 2 years ago

You found a typo!

Three times in sbl.cbx I have used \@firtoftwo instead of \@firstoftwo.

I'll do a new release to CTAN,

But until then and to confirm that this is indeed the problem, try adding

\makeatletter
\let\@firtoftwo\@firstoftwo
\makeatother

to your preamble.

jjmccollum commented 2 years ago

It looks like that fixed the problem! Thanks so much!