von marco_polo » Mi 12. Okt 2022, 19:14
Mir wurde von einem findigen User dieses Forums ein Code-Schnipsel vorgestellt, mit dem der Kurzautor/-editor im Literaturverzeichnis aufgeführt wird. Nun musste ich nur feststellen, dass die Sortierung der Einträge im Literaturverzeichnis sich nicht an den Shortauthor/-editor orientiert, sondern an Author/Editor. Wie kann man die Sortierung gemäß der Short-... bewerkstelligen?
MWE:
\documentclass{scrartcl}
\usepackage[style=authoryear-comp,backend=biber]{biblatex}
%das ist der Code-Teil, welcher mir zur Verfügung gestellt wurde
\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
%Shortauthor/-editor (year) - Author/Editor
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{mpfs2009,
editor = {{Medienpaedagogischer Forschungsverbund Suedwest}},
date = {2009},
title = {Titel},
shorteditor = {mpfs},
}
@author{Mister20015,
author = {Peter Mister},
date = {2015-08},
title = {Titel},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
Mir wurde von einem findigen User dieses Forums ein Code-Schnipsel vorgestellt, mit dem der Kurzautor/-editor im Literaturverzeichnis aufgeführt wird. Nun musste ich nur feststellen, dass die Sortierung der Einträge im Literaturverzeichnis sich nicht an den Shortauthor/-editor orientiert, sondern an Author/Editor. Wie kann man die Sortierung gemäß der Short-... bewerkstelligen?
MWE:
[code]\documentclass{scrartcl}
\usepackage[style=authoryear-comp,backend=biber]{biblatex}
%das ist der Code-Teil, welcher mir zur Verfügung gestellt wurde
\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
%Shortauthor/-editor (year) - Author/Editor
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{mpfs2009,
editor = {{Medienpaedagogischer Forschungsverbund Suedwest}},
date = {2009},
title = {Titel},
shorteditor = {mpfs},
}
@author{Mister20015,
author = {Peter Mister},
date = {2015-08},
title = {Titel},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}[/code]