Glossare newacronym sortiert nach dem Feld short, auch wenn short als Befehl angegeben wird

Glossare newacronym sortiert nach dem Feld short, auch wenn short als Befehl angegeben wird

Für meine Dokumente definiere ich gerne Indizes als Befehle, um \newcommand{}{}eine kaskadierende Struktur von Abkürzungen für häufig verwendete Abkürzungen zu erstellen. Das hat den großen Vorteil, dass ich alle zugehörigen Abkürzungen und Indizes mit einer einzigen Zeile ändern kann. Zum Beispiel:

  • Abkürzung TES für Thermal Energy Storage\newcommand{\TES}{TES}
  • Wird auch als Index oder mathematische Variable definiert, um \newcommand{\TESi}{\mathit{\TES}}eine schöne mathematische Textformatierung zu ermöglichen
  • Wird im Text mit verwendet\TES{}
  • In der Mathematik verwendetes Symbol $V_{\TESi}$für das Volumen eines TES
  • Hinzugefügt zu Glossaren von tiefgestellten und hochgestellten Zeichen mit\newacronym[type=indizes]{tes}{$\TESi$}{thermal energy storage}

Der letzte Schritt verursacht einige Probleme: Beim Sortieren der Einträge glossariesscheint es sich um das Sortieren nachder Name des Befehlsanstelle der vom Befehl erzeugten Zeichenfolge.
Das bedeutet, dass, wenn ich die ursprüngliche Abkürzung von newcommand{\TES}{TES}in umbenenne, die Glossare nach statt nach newcommand{\TES}{ES}sortiert werden . Das wird noch schlimmer, wenn Abkürzungen\TESESnicht durch newcommand definierthinzugefügt werden (in einigen sehr klaren Fällen gibt es einfach keine andere nützliche Abkürzung), ist die Sortierung völlig falsch.
Das Hinzufügen \newacronym[type=indizes,sort=ES]funktioniert, aber ich würde wieder einimplizite Lösungfür Flexibilität, wie \newacronym[type=indizes,sort=\TES], das wiederum nach TESund nicht nach ES... sortiert.

Mein minimales funktionierendes Beispiel ist (ja, ich könnte die Definition im Glossarstil weglassen, aber so ist es viel einfacher zu lesen :)):

\documentclass[a4paper,oneside,11pt,parskip=half]{scrreprt}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{amsmath}

\usepackage[acronym, toc, nonumberlist, nopostdot, nomain, nogroupskip]{glossaries}

\newglossary[ilg]{indizes}{iyi}{iyg}{Indizes}

\setlength{\glsdescwidth}{12cm}
\makeglossaries
\glsnoexpandfields

% Stil für Indizes und Abkürzungen
\newglossarystyle{fixedglslong}{%
    \setglossarystyle{long}% base this style on the list style
    \renewenvironment{theglossary}{% Change the table type --> 3 columns
        \begin{longtable}{p{2cm}p{14.5cm}}}%
        {\end{longtable}}%
    %
    \renewcommand*{\glossentry}[2]{%        Change the displayed items
        \glstarget{##1}{\glossentryname{##1}} %
        & \glossentrydesc{##1} \tabularnewline
    }
}

%% abbreviations
\newcommand{\TES}{ES}   
\newcommand{\HT}{HT}        
\newcommand{\NT}{NT}
%% sub- and superscripts
\newcommand{\TESi}{\mathit{\TES}}
\newcommand{\HTi}{\mathit{\HT}}
\newcommand{\NTi}{\mathit{\NT}}
\newcommand{\IT}{I}
% glossary for sub- and superscripts:
\newacronym[type=indizes]{TES}{$\TESi$}{thermal energy storage}
\newacronym[type=indizes]{HT}{$\HTi$}{high temperature}
\newacronym[type=indizes]{NT}{$\NTi$}{low temperature}
\newacronym[type=indizes]{itens}{$I$}{inertia tensor}

\begin{document}

\glsaddall
\printglossary[type=indizes, style=fixedglslong]

\end{document}

Gibt es eine Möglichkeit, die Artikel richtig zu sortieren, das heißt,durch die Zeichenfolgen, die tatsächlich im Dokument gedruckt werden? Oder kann ich irgendwie einen zusätzlichen Sortierschlüssel für bereitstellen newacronym, wie es für möglich ist \newglossaryentry? Ich habe das Glossardokument überprüft und alle möglichen Variationen ausprobiert, aber es schien nicht zu funktionieren.
Könnte ein Wechsel zu xindy dazu führen, dass es funktioniert? Was könnten unerwartete Nebenwirkungen sein?

Ich würde erwarten, dass die Sortierung des Glossars folgendermaßen aussieht:

  1. ES thermal energy storage
  2. HT high temperature
  3. I inertia tensor
  4. NT low temperature

Antwort1

Ok, ich habe die Antwort gefunden. Wenn ich sanitizesort=falseals Glossarpaketoption einstelle, werden Sortierschlüssel erweitert:

\usepackage[
    acronym, toc, nonumberlist, nopostdot, nomain, nogroupskip, 
    sanitizesort=false  % false expands commands
]{glossaries}

Es scheint immer noch Sortierprobleme mit einigen explizit definierten Nicht-Befehlseinträgen zu geben, aber im Allgemeinen funktioniert es einwandfrei.

edit: Nachdem ich nun weiß, was „Desinfizieren“ in Latex bedeutet und deshalb danach gesucht habe, habe ich dies gefundenFrage/Antwortmit dem gleichen Problem befasst.

verwandte Informationen