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}
Du musst das genutzte sorting template anpassen und dort die relevanten Felder an der richtigen Stelle einfügen. Die Standardsortierungen findest Du in biblatex.def (Z. 1464-1689 in v3.18b).
\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
\DeclareSortingTemplate{nyt}{
\sort{
\field{presort}
}
\sort[final]{
\field{sortkey}
}
\sort{
\field{sortname}
\field{shortauthor}
\field{author}
\field{shorteditor}
\field{editor}
\field{translator}
\field{sorttitle}
\field{title}
}
\sort{
\field{sortyear}
\field{year}
}
\sort{
\field{sorttitle}
\field{title}
}
\sort{
\field{volume}
\literal{0}
}
}
\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}