Seite 1 von 1
Shortauthor im Lit.Verz.
Verfasst: Fr 19. Jun 2020, 22:34
von Gast
Ich würde gerne, sofern vorhanden, den Shortauthor im Literaturverzeichnis mit auflisten.
Sofern shortauthor angegeben, soll das Verzeichnis wie folgt aussehen: Shortauthor (year) – Author. Title.
Wenn kein shortauthor angegeben ist, soll das Verzeichnis wie folgt aussehen: Author (year). Title.
Daher ist shortauthor über begentry einzufügen, scheinbar keine Option. Jemand eine Idee, wie das alternativ umgesetzt werden kann.
\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@online{mustermann2020,
author = {Max Mustermann},
shortauthor = {MM},
title = {Titel},
year = {2020}
}
\end{filecontents*}
\usepackage[backend=biber, style=authoryear]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
\parencite{mustermann2020}
\printbibliography
\end{document}
Re: Shortauthor im Lit.Verz.
Verfasst: Sa 20. Jun 2020, 10:51
von MoeWe
Wie Du schon sagst, ist begentry hier nicht das Mittel der Wahl, Du musst in die Makros für author (author) und editor (bbx:editor) gehen.
Da ich keinen guten Weg gefunden habe, die gewünschte Ausgabe mit der Option dashed=true, zu kombinieren, habe ich dashed=false, gesetzt.
\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=authoryear, dashed=false]{biblatex}
\makeatletter
\renewbibmacro*{author}{%
\ifboolexpr{
test \ifuseauthor
and
(not test {\ifnameundef{author}}
or
not test {\ifnameundef{shortauthor}})
}
{\ifnameundef{shortauthor}
{\printnames{author}%
\setunit{\printdelim{authortypedelim}}%
\usebibmacro{authorstrg}}
{\printnames{shortauthor}}%
\setunit{\printdelim{nameyeardelim}}}
{\global\undef\bbx@lasthash
\usebibmacro{labeltitle}%
\setunit*{\printdelim{nonameyeardelim}}}%
\usebibmacro{date+extradate}%
\ifnameundef{shortauthor}
{}
{\setunit{\addspace\textendash\space}%
\printnames{author}%
\setunit{\printdelim{authortypedelim}}%
\usebibmacro{authorstrg}}}
\renewbibmacro*{bbx:editor}[1]{%
\ifboolexpr{
test \ifuseeditor
and
(not test {\ifnameundef{editor}}
or
not test {\ifnameundef{shorteditor}})
}
{\ifnameundef{shorteditor}
{\printnames{editor}%
\setunit{\printdelim{editortypedelim}}%
\usebibmacro{#1}%
\clearname{editor}}
{\printnames{shorteditor}}%
\setunit{\printdelim{nameyeardelim}}}%
{\global\undef\bbx@lasthash
\usebibmacro{labeltitle}%
\setunit*{\printdelim{nonameyeardelim}}}%
\usebibmacro{date+extradate}%
\ifnameundef{shorteditor}
{}
{\setunit{\addspace\textendash\space}%
\printnames{editor}%
\setunit{\printdelim{editortypedelim}}%
\usebibmacro{#1}%
\clearname{editor}}}
\makeatother
\begin{filecontents*}{\jobname.bib}
@online{mustermann2020,
author = {Max Mustermann},
shortauthor = {MM},
title = {Titel},
year = {2020}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
\autocite{mustermann2020,sigfridsson}
\printbibliography
\end{document}
Re: Shortauthor im Lit.Verz.
Verfasst: Sa 20. Jun 2020, 11:23
von Gast
Super, das klappt hervorragend. Dashed hab ich auch auf false, hatte das nur aufgrund des Minimalbeispiels verkürzt, an dieser Stelle wohl zu stark verkürzt. Danke