Vor- und Nachname bei einzelnen Titeln umkehren (Biblatex)

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


Stefan
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Do 16. Mär 2017, 17:36

Vor- und Nachname bei einzelnen Titeln umkehren (Biblatex)

Beitrag von Stefan »

Hallo an alle,

ich würde gerne in meinem Quellenverzeichnis einzelne Werke nicht in der üblichen Weise [Nachname],[Vorname]:[Titel] etc. ausgeben lassen, sondern [Vorname][Nachname]:[Titel] etc., wobei weiterhin nach Nachname sortiert werden soll.

Mein Verzeichnis soll wie folgt aussehen:

Gaius Julius Caesar: De Bello Gallico ...
Marcus Tullius Cicero: Atticus-Briefe ...
Hildebrandt, Paul: Scholia in Ciceronis ...

Ich habe es damit probiert, Gaius Julius Caesar und Marcus Tullius Cicero in der Bib-Datei in {} zu setzen, aber dann wird klarerweise anders sortiert, nämlich so:

Gaius Julius Caesar: De Bello Gallico ...
Hildebrandt, Paul: Scholia in Ciceronis ...
Marcus Tullius Cicero: Atticus-Briefe ...

Lässt sich mein Wunsch in Biblatex irgendwie realisieren?

Gast

Beitrag von Gast »

Wo ist Dein Minimalbeispiel?

Gast

Beitrag von Gast »

Ist es nicht für den Leser eher überraschend? Das Durchbrechen der Sortierung ist ebenfalls eher unschön als praktisch. Wenn ich erst einmal bei M bin, rechne ich nicht mehr damit, danach noch H zu finden. Da das also IMHO dem Leser das Leben erschwert, sollte man es IMHO eher ablehnen.

Man kann natürlich einen anderen Typ von Eintrag definieren. Vermutlich könnte man auch die Sprache des Eintrags testen. Aber wirklich sinnvoll finde ich es nicht.

Gast

Beitrag von Gast »

Wenn Du den Namen wirklich immer starr in dem Format 'Marcus Tullius Cicero' haben möchtest, dann solltest Du ihn in (doppelte) geschweifte Klammern setzen. Um dann die Sortierung anzupassen, gibt es das Feld sortname, dort gibst Du dann Cicero, Marcus Tullius (oder nur Cicero) ein. Das sortiert dann den Namen unter 'C'.

Je nach dem, ob Du in Zitaten nur 'Cicero' oder den ganzen Namen sehen möchtest, kannst Du dann noch shortauthor mit 'Cicero' befüllen.
author      = {{Marcus Tullius Cicero}},
sortname    = {Cicero, Marcus Tullius},
shortauthor = {Cicero},% für 'Cicero' statt 'Marcus Tullius Cicero' in Zitaten
Wäre Cicero der Herausgeber, wären die entsperchenden Felder in derselben Reihenfolge übrigens editor (klar), sortname (wieder!, hier also keine Veränderung) und shorteditor (auch das konnten wir uns denken).

Nun hat meine Vorrednerin/mein Vorredner, bereits darauf hingewiesen, dass bestimmte Kombinationen der Belegung dieser drei Felder unter Umständen der Leserin eher das Leben schwer machen und sie dazu bringen, an Deinem Verzeichnis zu (ver)zweifeln, als dass sie sinnvoll sind.

Für die Fans von tollen (und wahrscheinlich selten genutzten) Biber-Features gibt es auch eine alternative Lösung in Anlehnung an Bibtex/Biber: how to cite an author using Ethiopian conventions?
Mein wissen über römische Namen speist sich leider nur aus dem [url=https://en.wikipedia.org/wiki/Roman_nam ... ria_nomina]Wikipedia-Artikel dazu[/tt] und nicht mehr aus dem schon etwas zurückliegenden Lateinunterricht.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{filecontents}

\begin{filecontents*}{ancientroman.dbx}
\DeclareDatamodelConstant[type=list]{nameparts}{prefix,family,suffix,given,praenomen,nomen,cognomen}% the last three are for ancient Roman names
\end{filecontents*}

\begin{filecontents*}{\jobname.bib}
@book{bellgall,
  author      = {praenomen=Marcus, nomen=Tullius, cognomen=Cicero, sortnamekeyscheme=ancientroman},
  title       = {Commentarii de Bello Gallico},
  shortttitle = {De Bello Gallico},
  date        = {1983},
}
@book{natdeo,
  author       = {praenomen=Marcus, nomen=Tullius, cognomen=Cicero, sortnamekeyscheme=ancientroman},
  title        = {De natura deorum. {\"U}ber das Wesen der G{\"o}tter},
  date         = 1995,
  editor       = {Blank-Sangmeister, Ursula},
  translator   = {Blank-Sangmeister, Ursula},
  afterword    = {Thraede, Klaus},
  language     = {langlatin and langgerman},
  publisher    = {Reclam},
  location     = {Stuttgart},
}
\end{filecontents*}

\usepackage[style=authoryear-icomp,datamodel=ancientroman]{biblatex}

\addbibresource{biblatex-examples.bib}
\addbibresource{\jobname.bib}

% sort 'Marcus Tullius Cicero' under 'Cicero -> Tullius -> Marcus'
\DeclareSortingNamekeyScheme[ancientroman]{
  \keypart{
    \namepart{cognomen}
  }
  \keypart{
    \namepart{nomen}
  }
  \keypart{
    \namepart{praenomen}
  }
}


\DeclareNameAlias{sortname}{family-given}

% given-family gives 'Marcus Tullius Cicero' in full
\DeclareNameFormat{given-family}{%
  \ifsortnamekeyscheme{ancientroman}
    {\usebibmacro{name:ancientroman-full}
       {\namepartpraenomen}
       {\namepartnomen}
       {\namepartcognomen}}
    {\ifgiveninits
       {\usebibmacro{name:given-family}
         {\namepartfamily}
         {\namepartgiveni}
         {\namepartprefix}
         {\namepartsuffix}}
       {\usebibmacro{name:given-family}
         {\namepartfamily}
         {\namepartgiven}
         {\namepartprefix}
         {\namepartsuffix}}}%
  \usebibmacro{name:andothers}}

% family-given also gives 'Marcus Tullius Cicero' in full (no inversion here!)
\DeclareNameFormat{family-given}{%
  \ifsortnamekeyscheme{ancientroman}
    {\usebibmacro{name:ancientroman-full}
       {\namepartpraenomen}
       {\namepartnomen}
       {\namepartcognomen}}
    {\ifgiveninits
       {\usebibmacro{name:family-given}
         {\namepartfamily}
         {\namepartgiveni}
         {\namepartprefix}
         {\namepartsuffix}}
       {\usebibmacro{name:family-given}
         {\namepartfamily}
         {\namepartgiven}
         {\namepartprefix}
         {\namepartsuffix}}}%
  \usebibmacro{name:andothers}}

% labelname (used in citations) uses 'Cicero' only
\DeclareNameFormat{labelname}{%
  \ifsortnamekeyscheme{ancientroman}
    {\usebibmacro{name:ancientroman-short}
       {\namepartpraenomen}
       {\namepartnomen}
       {\namepartcognomen}}
    {\ifcase\value{uniquename}%
       \usebibmacro{name:family}
         {\namepartfamily}
         {\namepartgiven}
         {\namepartprefix}
         {\namepartsuffix}%
     \or
       \ifuseprefix
         {\usebibmacro{name:given-family}
           {\namepartfamily}
           {\namepartgiveni}
           {\namepartprefix}
           {\namepartsuffixi}}
         {\usebibmacro{name:given-family}
           {\namepartfamily}
           {\namepartgiveni}
           {\namepartprefixi}
           {\namepartsuffixi}}%
     \or
       \usebibmacro{name:given-family}
         {\namepartfamily}
         {\namepartgiven}
         {\namepartprefix}
         {\namepartsuffix}%
     \fi}
  \usebibmacro{name:andothers}}


\newbibmacro*{name:ancientroman-short}[3]{%
  \mkbibromancognomen{#3}}%

\newbibmacro*{name:ancientroman-full}[3]{%
  \usebibmacro{name:delim}{#1#2#3}%
  \usebibmacro{name:hook}{#1#2#3}%
  \ifdefvoid{#1}{}{\mkbibromanpraenomen{#1}\isdot}%
  \ifdefvoid{#2}{}{\bibnamedelimd\mkbibromannomen{#2}\isdot}%
  \ifdefvoid{#3}{}{\bibnamedelimd\mkbibromancognomen{#3}\isdot}}

\let\mkbibromancognomen\mkbibnamefamily
\let\mkbibromannomen\mkbibnamegiven
\let\mkbibromanpraenomen\mkbibnamegiven

\begin{document}
\textcite{bellgall,natdeo,sigfridsson,knuth:ct:a,coleridge,averroes/hercz}
\printbibliography
\end{document}
Die Erklärungen für den Code finden sich in dem erwähnten Link und in den Kommentaren im Code.

Da die Eingabe (weit) weniger komfortabel ist, und auch einiges mehr an Code benötigt wird, ist das vielleicht eher als Spielerei zu sehen. Aber es zeigt, was biblatex alle schon kann, und Du bist hier natürlich viel flexibler, was spätere Änderungen an Sortierung und Ausgabe angeht. (Das erfordert dann keine Änderung an Deiner .bib-Datei, alles kann vom Dokument aus geregelt werden.)

Stefan
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Do 16. Mär 2017, 17:36

Beitrag von Stefan »

Herzlichen Dank für Deine Hilfe! In der Tat reicht mir das Feld sortname für meine Zwecke völlig aus! Aber vielleicht wird sich das biber-feature in Zukunft mal nützlich erweisen.

Antworten