glosarios nuevo acrónimo ordena por campo corto, incluso si short se proporciona como un comando

glosarios nuevo acrónimo ordena por campo corto, incluso si short se proporciona como un comando

Para mis documentos, me gusta definir subíndices y superíndices (en alemán: Indizes) como comandos para \newcommand{}{}crear una estructura en cascada de atajos para abreviaturas utilizadas con frecuencia. Esto tiene la gran ventaja de que puedo cambiar fácilmente todas las abreviaturas y subíndices relacionados con una sola línea. Por ejemplo:

  • Abreviatura TES para almacenamiento de energía térmica.\newcommand{\TES}{TES}
  • También se define como subíndice o variable matemática \newcommand{\TESi}{\mathit{\TES}}para un hermoso formato de texto matemático.
  • Usado en texto con\TES{}
  • Usado en matemáticas. símbolos con $V_{\TESi}$para el volumen de un TES
  • Agregado a los glosarios de subíndices y superíndices con\newacronym[type=indizes]{tes}{$\TESi$}{thermal energy storage}

El último paso está causando algunos problemas: al ordenar las entradas,glossaries parece estar ordenando porel nombre del comandoen lugar de la cadena producida por el comando.
Lo que significa que si cambio el nombre de la abreviatura inicial de newcommand{\TES}{TES}a newcommand{\TES}{ES}, los glosarios se ordenan por \TESen lugar de ES. Esto empeora aún más cuando las abreviaturasno definido por nuevo comandose agregan (en algunos casos muy claros simplemente no hay otra abreviatura útil), la clasificación está completamente incorrecta.
Agregar \newacronym[type=indizes,sort=ES]funciona, pero nuevamente preferiría unsolución implícitapara flexibilidad, como \newacronym[type=indizes,sort=\TES], que nuevamente ordena por TESy no ES...

Mi ejemplo mínimo de trabajo es (sí, podría eliminar la definición de estilo del glosario, pero es mucho más fácil de leer así :)):

\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}

¿Hay alguna manera de ordenar los elementos correctamente, eso significapor las cadenas que realmente están impresas en el documento? ¿O puedo proporcionar de alguna manera una clave de clasificación adicional newacronym, como sea posible \newglossaryentry? Revisé el documento de glosarios y probé todo tipo de variaciones, pero no parecía funcionar.
¿Cambiar a xindy podría hacer que funcione? ¿Cuáles podrían ser los efectos secundarios inesperados?

Esperaría que la clasificación del glosario se viera así:

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

Respuesta1

Ok, encontré la respuesta. Si configuro sanitizesort=falsecomo opción del paquete de glosarios, las claves de clasificación se expandirán:

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

Todavía parece haber algunos problemas de clasificación con algunas entradas que no son comandos definidas explícitamente, pero en general está funcionando bien.

editar: Ahora que sé lo que significa "desinfectar" en Latex y, por lo tanto, lo busqué, encontré estopregunta/respuestalidiando con el mismo problema.

información relacionada