![glossários newacronym classifica por campo curto, mesmo que short seja fornecido como um comando](https://rvso.com/image/420753/gloss%C3%A1rios%20newacronym%20classifica%20por%20campo%20curto%2C%20mesmo%20que%20short%20seja%20fornecido%20como%20um%20comando.png)
Para meus documentos, gosto de definir sub e superscripts (em alemão: Indizes) como comandos para \newcommand{}{}
criar uma estrutura em cascata de atalhos para abreviações usadas com frequência. Isso tem a enorme vantagem de poder alterar facilmente todas as abreviações e subscritos relacionados com uma única linha. Por exemplo:
- Abreviatura TES para armazenamento de energia térmica
\newcommand{\TES}{TES}
- Também definido como subscrito ou variável matemática
\newcommand{\TESi}{\mathit{\TES}}
para uma bela formatação de texto matemático - Usado em texto com
\TES{}
- Usado em matemática. símbolos com
$V_{\TESi}$
para o volume de um TES - Adicionado aos glossários de sub e sobrescritos com
\newacronym[type=indizes]{tes}{$\TESi$}{thermal energy storage}
A última etapa está causando alguns problemas: ao classificar as entradas, glossaries
parece estar classificando poro nome do comandoem vez da string produzida pelo comando.
O que significa que se eu renomear a abreviatura inicial de newcommand{\TES}{TES}
para newcommand{\TES}{ES}
, os glossários serão classificados por \TES
em vez de ES
. Isto fica ainda pior quando as abreviaturasnão definido por newcommandsão adicionados (em alguns casos muito claros, simplesmente não há outra abreviatura útil), a classificação é completamente errada.
Adicionar \newacronym[type=indizes,sort=ES]
funciona, mas novamente eu preferiria umsolução implícitapara flexibilidade, como \newacronym[type=indizes,sort=\TES]
, que novamente classifica por TES
e não ES
...
Meu exemplo mínimo de trabalho é (sim, eu poderia abandonar a definição do estilo do glossário, mas é muito mais fácil de ler assim :)):
\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}
Existe alguma maneira de classificar os itens corretamente, isso significapelas strings que são realmente impressas no documento? Ou posso de alguma forma fornecer uma chave de classificação adicional newacronym
, como é possível \newglossaryentry
? Verifiquei o documento dos glossários e tentei todos os tipos de variações, mas não parecia estar funcionando.
Mudar para o xindy poderia fazer com que funcionasse? Quais poderiam ser os efeitos colaterais inesperados?
Eu esperaria que a classificação do glossário fosse assim:
ES thermal energy storage
HT high temperature
I inertia tensor
NT low temperature
Responder1
Ok, encontrei a resposta. Se eu definir sanitizesort=false
como opção de pacote de glossários, as chaves de classificação serão expandidas:
\usepackage[
acronym, toc, nonumberlist, nopostdot, nomain, nogroupskip,
sanitizesort=false % false expands commands
]{glossaries}
Ainda parece haver alguns problemas de classificação com algumas entradas sem comando explicitamente definidas, mas em geral está funcionando bem.
edit: Agora que eu sei o que significa "higienização" em Latex e, portanto, procurei por isso, encontrei istopergunta/responderlidando com o mesmo problema.