3

I would like to use different citation styles within the same document - ideally by only using keywords, but using different cite-commands would also work.

It's essentially this question from 2012, that didn't get a satisfying answer, but had people alluding to biblatex 2.0. I figured since a decade has passed since then and we're now on biblatex 3.16, there might be a solution for something like this.

My specific problem

I would like to cite secondary sources by just "Author Year.", but primary sources by "Shortauthor Shorttitle". Both have already a keyword ("primary" and "secondary" respectively) associated with them, that I use to seperate my bibliography. But frankly I'm already very out of my depth with what I have right now and I wouldn't even know how to start to set up something like that.

What I want

enter image description here

What I get

enter image description here

MWE

\documentclass[]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
    @misc{plin.2003,
        title = {Briefe: Lateinisch-Deutsch = {{Epistularum}} Libri Decem},
        author = {Plinius Caecilius Secundus, Gaius},
        editor = {Kasten, Helmut},
        date = {2003},
        edition = {8. Aufl.},
        publisher = {{Artemis \& Winkler}},
        location = {{Düsseldorf [u.a.]}},
        isbn = {9783050055404},
        keywords = {primary},
        shorttitle = {Epist.},
        shortauthor = {Plin.}
    }
    @phdthesis{Rae.1991,
        author = {{Rae L. M.}},
        year = {1991},
        title = {A study of the versification of the African carmina Latina epigraphica},
        address = {Vancouver},
        type = {Diss.},
        keywords = {secondary}
    }
\end{filecontents}


\usepackage[autocite=footnote,
citestyle=authoryear-comp,
bibstyle=authortitle,
block=space,    
isbn=false,
]{biblatex}
\addbibresource{\jobname.bib}


%the following might be irrelevant to the MWE, but it also might not. I put it in, because it's in my orininal file and it might affect things.
\renewcaptionname{ngerman}{\refname}{Bibliographie}
\AtBeginDocument{%
    \renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}}
\DeclareFieldFormat[article]{journaltitle}{#1}
\DeclareFieldFormat[article, thesis]{title}{\mkbibemph{#1}}
\DeclareFieldFormat[thesis]{type}{\mkbibparens{#1}}
\DeclareFieldFormat[article]{pages}{#1}
\renewcommand\multilistdelim{\addslash}
\renewcommand\finallistdelim{\addslash}
\renewcommand\newunitpunct{\addcomma\space}
\renewcommand\labelnamepunct{\adddot\space}
\renewcommand\revsdnamepunct{}
\renewbibmacro*{publisher+location+date}{
    \printlist{location}%
    \iflistundef{publisher}
    {\setunit*{\space}}
    {\setunit*{\addcolon\space}}%
    \printlist{publisher}%
    \setunit*{\space}%
    \usebibmacro{date}%
    \newunit}
\renewbibmacro*{institution+location+date}{%
    \printlist{location}%
    \iflistundef{institution}
    {\setunit*{\space}}
    {\setunit*{\addcolon\space}}%
    \printlist{institution}%
    \setunit*{\space}%
    \usebibmacro{date}%
    \newunit}
\renewbibmacro*{location+date}{%
    \printlist{location}%
    \setunit*{\space}%
    \usebibmacro{date}%
    \newunit}
\usepackage{xpatch}
\xpatchbibdriver{thesis}
{\printfield{type}% replace this
    \newunit}
{\printfield{type}% with this
    \setunit*{\addspace}}
{}
{}


%===============================
\begin{document}
    \footcite{plin.2003}
    
    
    \footcite{Rae.1991}
    
    
    \nocite{*}
    \printbibheading
    \printbibliography[keyword=primary,heading=
    subbibliography,%
    title={Primary}]
    \printbibliography[keyword=secondary,heading=
    subbibliography,%
    title={Secondary}]
    
\end{document}

1 Answer 1

1

It is still in general not possible to combine different citations styles in the same document. Very often it is possible to obtain the desired output with clever workarounds. But there is no official interface to just mix styles.

In your case I'd be tempted to suggest you use shorthand instead of shortauthor and shorttitle. The shorthand field lets you 'fix' the citation label for the particular entry to a fixed format. In this case shorthand = {\textsc{Plin.}~Epist.}, would work.

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage[autocite=footnote,
citestyle=authoryear-comp,
bibstyle=authortitle,
block=space,
isbn=false,
]{biblatex}

\renewcaptionname{ngerman}{\refname}{Bibliographie}

\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
\renewcommand\revsdnamepunct{}

\renewcommand\newunitpunct{\addcomma\space}
\DeclareDelimFormat[bib]{nametitledelim}{\addperiod\space}


\DeclareDelimFormat{multilistdelim}{\addslash}
\DeclareDelimAlias{finallistdelim}{multilistdelim}

\DeclareFieldFormat[article]{journaltitle}{#1}
\DeclareFieldFormat[article, thesis]{title}{\mkbibemph{#1}}
\DeclareFieldFormat[thesis]{type}{\mkbibparens{#1}}
\DeclareFieldFormat[article]{pages}{#1}


\renewbibmacro*{publisher+location+date}{%
  \printlist{location}%
  \iflistundef{publisher}
    {\setunit*{\space}}
    {\setunit*{\addcolon\space}}%
  \printlist{publisher}%
  \setunit*{\space}%
  \usebibmacro{date}%
  \newunit}
\renewbibmacro*{institution+location+date}{%
  \printlist{location}%
  \iflistundef{institution}
    {\setunit*{\space}}
    {\setunit*{\addcolon\space}}%
  \printlist{institution}%
  \setunit*{\space}%
  \usebibmacro{date}%
  \newunit}
\renewbibmacro*{location+date}{%
  \printlist{location}%
  \setunit*{\space}%
  \usebibmacro{date}%
  \newunit}
\usepackage{xpatch}
\xpatchbibdriver{thesis}
  {\printfield{type}% replace this
   \newunit}
  {\printfield{type}% with this
   \setunit*{\addspace}}
  {}
  {}


\begin{filecontents}{\jobname.bib}
@misc{plin.2003,
  title       = {Briefe: Lateinisch-Deutsch = {Epistularum} Libri Decem},
  author      = {Plinius Caecilius Secundus, Gaius},
  editor      = {Kasten, Helmut},
  date        = {2003},
  edition     = {8},
  publisher   = {Artemis \& Winkler},
  location    = {Düsseldorf},
  isbn        = {9783050055404},
  keywords    = {primary},
  shorthand   = {\textsc{Plin.}~Epist.},
}
@phdthesis{Rae.1991,
  author   = {Rae, Lyn MacCrostie},
  year     = {1991},
  title    = {A study of the versification of the African carmina Latina epigraphica},
  address  = {Vancouver},
  type     = {Diss.},
  keywords = {secondary},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
  Lorem\footcite{plin.2003}
  ipsum\footcite{Rae.1991}

  \printbibheading
  \printbibliography[keyword=primary,heading=
  subbibliography,%
  title={Primary}]
  \printbibliography[keyword=secondary,heading=
  subbibliography,%
  title={Secondary}]
\end{document}

Plin. Epist.

2
  • The answer says: "It is still in general not possible...". Does this mean that there is a plan to define an official interface for this?
    – matteofg
    Mar 20 at 9:38
  • 1
    @matteo339 I think I just wrote "still" in allusion to the second paragraph of the question that mentioned a question from ten years ago. It would be cool to allow for different styles in the same document, but as far as I can see that would require a total rewrite of the whole system, so I don't see this happening any time soon (or even not so soon). For some specific uses cases workarounds or good-enough approximations are possible, but a general approach would need a proper design idea.
    – moewe
    Mar 21 at 15:07

You must log in to answer this question.

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