Biber: Abkürzungen mit Makros \textbf{} werden anders sortiert

Biber: Abkürzungen mit Makros \textbf{} werden anders sortiert

Wenn ich eine Abkürzung in der .bibDatei von XYZzu ändere \textbf{X}YZ, ändert sich die Reihenfolge im Literaturverzeichnis.

Wie kann ich Abkürzungen haben, bei denen einige der Abkürzungen mit einem „a“ beginnen \textbf(um bestimmte Buchstaben fett zu formatieren), ohne die Sortierreihenfolge zu verzerren?


MWE

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[backend=biber,
        style=alphabetic,
        natbib=true,
        sorting=ynt,
        ]{biblatex}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{xei2016asdf,
Author = {Xei, A and A, B and B, C and C, D},
Title = {asdf is asdf},
Year = {2016},
}
@article{xei2017bob,
Author = {Xei, A and A, B and B, C and C, D},
Title = {bob is bob},
Year = {2017},
}
@article{xei2017bob2,
Author = {Xei, A and A, B and B, C and C, D},
Title = {bob is bob 2},
Year = {2017},
shorthand = {\textbf{X}ei+17},
sortshorthand = {Xei+17},
}
@article{xei2017alice,
Author = {Xei, A and A, B and B, C},
Title = {alice is alice},
Year = {2017},
}
@article{xei2018alice2,
Author = {Xei, A and A, B and B, C},
Title = {alice is alice 2},
Year = {2018},
shorthand = {\textbf{X}AB18},
sortshorthand = {XAB18},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

\newrefcontext[sorting=anyvt]
\cite{xei2016asdf,xei2017bob,xei2017bob2,xei2017alice,xei2018alice2}

\printbibliography
\end{document}

Ergebnisse in der Bibliographie: Bildbeschreibung hier eingeben

Ich hätte aber trotzdem gerne folgende Sortierung: Bildbeschreibung hier eingeben


Es gibt eine Kuriosität bezüglich der vorgeschlagenen Lösung. Wenn man bedenkt:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[backend=biber,
        style=alphabetic,
        ]{biblatex}

\DeclareSortingScheme{anyt}{
  \sort{
    \field{presort}
  }
  \sort{
    \field{sortshorthand}
    \field{labelalpha}
  }
  \sort[final]{
    \field{sortkey}
  }
  \sort{
    \field{sortname}
    \field{author}
    \field{editor}
    \field{translator}
    \field{sorttitle}
    \field{title}
  }
  \sort{
    \field{sortyear}
    \field{year}
  }
  \sort{
    \field{sorttitle}
    \field{title}
  }
  \sort{
    \field{volume}
    \literal{0}
  }
}

\DeclareSortingScheme{anyvt}{
  \sort{
    \field{presort}
  }
  \sort{
    \field{sortshorthand}
    \field{labelalpha}
  }
  \sort[final]{
    \field{sortkey}
  }
  \sort{
    \field{sortname}
    \field{author}
    \field{editor}
    \field{translator}
    \field{sorttitle}
    \field{title}
  }
  \sort{
    \field{sortyear}
    \field{year}
  }
  \sort{
    \field{volume}
    \literal{0}
  }
  \sort{
    \field{sorttitle}
    \field{title}
  }
}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{xei2016asdf,
Author = {Xei, A and A, B and B, C and C, D},
Title = {asdf is asdf},
Year = {2016},
}
@article{xei2018bob,
Author = {Xei, A and A, B and B, C and C, D},
Title = {bob is bob},
Year = {2018},
}
@article{xei2017bob2,
Author = {Xei, A and A, B and B, C and C, D},
Title = {bbob is bob 2},
Year = {2017},
shorthand = {\textbf{X}ei+17},
sortshorthand = {Xei+17},
}
@article{xei2017alice,
Author = {Xei, A and A, B and B, C},
Title = {alice is alice},
Year = {2017},
}
@article{xei2018alice2,
Author = {Xei, A and A, B and B, C},
Title = {alice is alice 2},
Year = {2018},
shorthand = {\textbf{X}AB18},
sortshorthand = {XAB18},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
\cite{xei2016asdf,xei2018bob,xei2017bob2,xei2017alice,xei2018alice2}

\printbibliography
\end{document}

wir bekommenBildbeschreibung hier eingeben

im Vergleich zur Reihenfolge ohne AbkürzungenBildbeschreibung hier eingeben

Antwort1

biblatexkennt das Feld sortshorthand. DiebiblatexDokumentationerklärt (§2.2.3Spezialgebiete, S. 30):

[ sortshorthand] Ähnlich wie, sortkeywird aber in der Liste der Abkürzungen verwendet. Wenn vorhanden, biblatexwird dieses Feld anstelle von shorthandbeim Sortieren der Liste der Abkürzungen verwendet. Dies ist nützlich, wenn das Abkürzungsfeld Abkürzungen mit Formatierungsbefehlen wie \emphoder enthält \textbf.

Für die alphabeticSortierschemata wird anytund anyvt biblatexnicht verwendet (da dies im Grunde bedeuten würde, dass a und a sortshorthandim Auge behalten würden, was nach den gleichen Regeln erstellt würde, aber Feldern Vorrang einräumt).labelalphasortlabelalphasort...

Bei den Standardeinstellungen (die labelalphaauf gesetzt werden shorthand, sofern letzteres vorhanden ist) genügt es, \field{sortshorthand}vorher \field{labelalpha}in den Sortierschemata etwas hinzuzufügen.

Das MWE definiert beide Sortierschemata neu, aber wenn Sie nur eines der beiden verwenden, können Sie das andere weglassen.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[backend=biber,
        style=alphabetic,
        ]{biblatex}

\DeclareSortingTemplate{anyt}{
  \sort{
    \field{presort}
  }
  \sort{
    \field{sortshorthand}
    \field{labelalpha}
  }
  \sort[final]{
    \field{sortkey}
  }
  \sort{
    \field{sortname}
    \field{author}
    \field{editor}
    \field{translator}
    \field{sorttitle}
    \field{title}
  }
  \sort{
    \field{sortyear}
    \field{year}
  }
  \sort{
    \field{sorttitle}
    \field{title}
  }
  \sort{
    \field{volume}
    \literal{0}
  }
}

\DeclareSortingTemplate{anyvt}{
  \sort{
    \field{presort}
  }
  \sort{
    \field{sortshorthand}
    \field{labelalpha}
  }
  \sort[final]{
    \field{sortkey}
  }
  \sort{
    \field{sortname}
    \field{author}
    \field{editor}
    \field{translator}
    \field{sorttitle}
    \field{title}
  }
  \sort{
    \field{sortyear}
    \field{year}
  }
  \sort{
    \field{volume}
    \literal{0}
  }
  \sort{
    \field{sorttitle}
    \field{title}
  }
}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{xei2016asdf,
Author = {Xei, A and A, B and B, C and C, D},
Title = {asdf is asdf},
Year = {2016},
}
@article{xei2017bob,
Author = {Xei, A and A, B and B, C and C, D},
Title = {bob is bob},
Year = {2017},
}
@article{xei2017bob2,
Author = {Xei, A and A, B and B, C and C, D},
Title = {bob is bob 2},
Year = {2017},
shorthand = {\textbf{X}ei+17},
sortshorthand = {Xei+17},
}
@article{xei2017alice,
Author = {Xei, A and A, B and B, C},
Title = {alice is alice},
Year = {2017},
}
@article{xei2018alice2,
Author = {Xei, A and A, B and B, C},
Title = {alice is alice 2},
Year = {2018},
shorthand = {\textbf{X}AB18},
sortshorthand = {XAB18},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
\cite{xei2016asdf,xei2017bob,xei2017bob2,xei2017alice,xei2018alice2}

\printbibliography
\end{document}

Sortierreihenfolge [XAB17], [XAB18], [Xei+16], [Xei+17], [Xei+17]

verwandte Informationen