Shortauthor im Lit.Verz.

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Shortauthor im Lit.Verz.

Re: Shortauthor im Lit.Verz.

von Gast » Sa 20. Jun 2020, 11:23

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

Re: Shortauthor im Lit.Verz.

von MoeWe » Sa 20. Jun 2020, 10:51

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}

Shortauthor im Lit.Verz.

von Gast » Fr 19. Jun 2020, 22:34

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}

Nach oben