1

I want to distinguish between literature and ancient sources. Therefore, I used "classictext" and "entrysubtype". I have this question: For my literature, I want to use "ibid", bot for those ancient sources I did not want "ibid." or "idem.", but a repetition of source. How can I do that? Here is the MWE:

\documentclass{article}
\usepackage[style=sbl,citepages=separate,backend=biber,sblfootnotes=false,ibidpage=true,ibidtracker=true,idemtracker=true,pagetracker=spread,sorting=nyvt,url=false,isbn=false,doi=false,clearlang=false,uniquename=false]{biblatex} 

    \usepackage{filecontents}
    \begin{filecontents}{\jobname.bib}
           @book{Guillaum.Gnostique.SC,
 editor = {Guillaumont, Antoine and Guillaumont, Claire},
 gender = {pm},
 date = {1989},
 title = {Évagre le Pontique. Le Gnostique. Ou a celui qui est devenu digne de la science},
 shorttitle = {Évagre le Pontique. Le Gnostique},
 location = {Paris},
 keywords = {Evagrius},
series = {SC},
number = {356},
location = {Paris},
 }
@classictext{Evagr.Gnost.gr,
author = {{Evagr. Pont. Gnost.}},
xref = {Guillaum.Gnostique.SC},
  entrysubtype = {classical}, Options = {skipbib=true}, Options = {skipbiblist=true}, 
  shorthand    = {Evagr. Pont. Gnost.},
}
    \end{filecontents}

    
    \DeclareSourcemap{
      \maps[datatype=bibtex]{
        \map{
          \step[fieldsource=entrysubtype, match={classical},final]
          \step[fieldset=pagination, fieldvalue={none}]
        }
      }
    }
    
    \DeclareFieldFormat{shorthand}{%
      \iffieldequalstr{entrysubtype}{classical}
        {\mkbibemph{#1\isdot}}
        {#1\isdot}}
    
    \renewcommand*{\postnotedelim}{%
      \iffieldequalstr{entrysubtype}{classical}
        {}
        {\addcomma}%
      \addspace}
    
    \addbibresource{\jobname.bib}
    \addbibresource{biblatex-examples.bib}
    \begin{document}
    \cite[4]{Evagr.Gnost.gr}; \cite[5]{Evagr.Gnost.gr}\\
\cite[6]{Guillaum.Gnostique.SC}; \cite[7]{Guillaum.Gnostique.SC}    
    

    \end{document}
6
  • Related: Preventing ibid in individual cases
    – Alan Munn
    Commented Feb 11 at 18:59
  • Thanks, is there are a possibility for preventing "ibid" exclusively for only a specific literature type such as "classictext" or for a specific entrysubtype?
    – test
    Commented Feb 11 at 19:26
  • Can you give me an example how to do that? I am still a beginner in LaTeX...
    – test
    Commented Feb 11 at 20:28
  • Sorry no time to do that at the moment. But thinking further, it likely won't work, since you need to issue the reset command before the \cite.
    – Alan Munn
    Commented Feb 11 at 20:40
  • Looking at your other question (tex.stackexchange.com/q/708732/35864) where the example code didn't have the entrysubtype = {classical}, yet, I'm thinking: Do you actually need that? If all your @classictexts are entrysubtype = {classical}, and everything that could ever be entrysubtype = {classical}, is a @classictext, we might as well just test for @classictext instead of entrysubtype = {classical},.
    – moewe
    Commented Feb 26 at 7:34

1 Answer 1

1

We can insert another condition into the "ibid" to check if entrysubtype is equal to classical.

\documentclass{article}
\usepackage[style=sbl,citepages=separate,backend=biber,sblfootnotes=false,ibidpage=true,ibidtracker=true,idemtracker=true,pagetracker=spread,sorting=nyvt,url=false,isbn=false,doi=false,clearlang=false,uniquename=false]{biblatex} 


\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=entrysubtype, match={classical},final]
      \step[fieldset=pagination, fieldvalue={none}]
    }
  }
}

\DeclareFieldFormat{shorthand}{%
  \iffieldequalstr{entrysubtype}{classical}
    {\mkbibemph{#1\isdot}}
    {#1\isdot}}

\renewcommand*{\postnotedelim}{%
  \iffieldequalstr{entrysubtype}{classical}
    {}
    {\addcomma}%
  \addspace}


\renewbibmacro*{cite}{%
  \boolfalse{suppresspostnote}%
  \boolfalse{usevolpostnotedelim}%
  \global\togglefalse{usingibid}%
  \global\togglefalse{inentrytype}%
  \global\toggletrue{blx@testpostnotedelim}%
  \ifciteseen
    {\global\toggletrue{relatedseen}}
    {\global\togglefalse{relatedseen}}%
  \ifciteseen{}{\iffieldundef{pages}{}{\booltrue{suppresspostnote}}}%
  \iffieldundef{shorthand}
    {\ifciteseen{}{\bibhypertarget{\strfield{entrykey}}{}}}
    {}%
  \printtext{%
    \ifboolexpr{%
        test {\ifciteibid}
        and
        not test {\iffirstonpage}
        and not test {\iffieldequalstr{entrysubtype}{classical}}
    }
      {\usebibmacro{cite:ibid}}
      {\usebibmacro{ifciteuseshorthand}
         {\usebibmacro{cite:shorthand}}
         {\usedriver{}{cite:\thefield{entrytype}}%
          \ifcsstring{blx@shorthand}{intro}
            {\usebibmacro{shorthandintro}}
            {}}}}}



\begin{filecontents}{\jobname.bib}
@book{Guillaum.Gnostique.SC,
  editor = {Guillaumont, Antoine and Guillaumont, Claire},
  gender = {pm},
  date = {1989},
  title = {Évagre le Pontique. Le Gnostique. Ou a celui qui est devenu digne de la science},
  shorttitle = {Évagre le Pontique. Le Gnostique},
  location = {Paris},
  keywords = {Evagrius},
  series = {SC},
  number = {356},
  location = {Paris},
}
@classictext{Evagr.Gnost.gr,
  author = {{Evagr. Pont. Gnost.}},
  xref = {Guillaum.Gnostique.SC},
  entrysubtype = {classical},
  Options = {skipbib=true},
  Options = {skipbiblist=true}, 
  shorthand    = {Evagr. Pont. Gnost.},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite[4]{Evagr.Gnost.gr}; \cite[5]{Evagr.Gnost.gr}\\
\cite[6]{Guillaum.Gnostique.SC}; \cite[7]{Guillaum.Gnostique.SC}    


\end{document}

Evagr. Pont. Gnost. 4; Evagr. Pont. Gnost. 5
Antoine Guillaumont and Claire Guillaumont, eds., Évagre le Pontique. Le Gnostique. Ou a celui qui est devenu digne de la science, SC 356 (Paris, 1989), 6; ibid., 7

You must log in to answer this question.

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