Alphabetische Sortierung - Kurztitel

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: Alphabetische Sortierung - Kurztitel

Re: Alphabetische Sortierung - Kurztitel

von MoeWe » Mi 12. Okt 2022, 19:42

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}

Alphabetische Sortierung - Kurztitel

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}

Nach oben