![用語集 newacronym は、コマンドとして short が指定されていても、short フィールドでソートします。](https://rvso.com/image/420753/%E7%94%A8%E8%AA%9E%E9%9B%86%20newacronym%20%E3%81%AF%E3%80%81%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A8%E3%81%97%E3%81%A6%20short%20%E3%81%8C%E6%8C%87%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%A6%E3%82%82%E3%80%81short%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%A7%E3%82%BD%E3%83%BC%E3%83%88%E3%81%97%E3%81%BE%E3%81%99%E3%80%82.png)
私の文書では、下付き文字と上付き文字 (ドイツ語では Indizes) をコマンドとして定義して、\newcommand{}{}
頻繁に使用する略語のショートカットのカスケード構造を作成するのが好きです。これには、関連するすべての略語と下付き文字を 1 行で簡単に変更できるという大きな利点があります。たとえば、次のようになります。
- 熱エネルギー貯蔵の略語TES
\newcommand{\TES}{TES}
\newcommand{\TESi}{\mathit{\TES}}
美しい数式テキストの書式設定のための下付き文字または数式変数としても定義されます。- テキストで使用
\TES{}
- 数学で使用される。TES
$V_{\TESi}$
の体積を表す記号 - 上付き文字と下付き文字の用語集に追加された
\newacronym[type=indizes]{tes}{$\TESi$}{thermal energy storage}
最後のステップで問題が発生しています。エントリを並べ替えるときにglossaries
、コマンドの名前コマンドによって生成された文字列の代わりに、 が使われます。
つまり、最初の略語を から に変更するとnewcommand{\TES}{TES}
、newcommand{\TES}{ES}
用語集は\TES
ではなくでソートされますES
。これはさらに悪いことに、略語がnewcommand によって定義されていません(非常に明らかなケースでは、他に有用な略語がまったく存在しない)が追加されると、ソートは完全にオフになります。
追加は\newacronym[type=indizes,sort=ES]
機能しますが、ここでも私は暗黙の解決策柔軟性のために、 のように\newacronym[type=indizes,sort=\TES]
、これもTES
ではなくで並べ替えますES
...
私の最小限の動作例は次のとおりです (用語集スタイルの定義を省略することもできますが、このようにすると読みやすくなります :) ):
\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}
アイテムを正しく並べ替える方法はありますか?文書に実際に印刷される文字列によってnewacronym
? または、の場合と同様に、に何らかの方法で追加のソート キーを提供することはできますか\newglossaryentry
? 用語集のドキュメントを確認し、あらゆるバリエーションを試しましたが、うまくいかないようです。
xindy に切り替えると機能するでしょうか? 予期しない副作用は何でしょうか?
用語集の並び替えは次のようになると思います:
ES thermal energy storage
HT high temperature
I inertia tensor
NT low temperature
答え1
わかりました。答えを見つけました。sanitizesort=false
用語集パッケージのオプションとして設定すると、ソートキーが拡張されます。
\usepackage[
acronym, toc, nonumberlist, nopostdot, nomain, nogroupskip,
sanitizesort=false % false expands commands
]{glossaries}
明示的に定義された非コマンドエントリの一部では、依然としてソートの問題があるようですが、一般的には正常に動作しています。
編集: Latexで「サニタイズ」が何を意味するのかがわかったので、検索してみたところ、これを見つけました質問/答え同じ問題に取り組んでいます。