용어집 newacronym은 short가 명령으로 제공되는 경우에도 short 필드를 기준으로 정렬합니다.

용어집 newacronym은 short가 명령으로 제공되는 경우에도 short 필드를 기준으로 정렬합니다.

\newcommand{}{}내 문서에서는 자주 사용되는 약어에 대한 계단식 단축키 구조를 만드는 명령으로 하위 스크립트와 상위 스크립트(독일어: Indizes)를 정의하는 것을 좋아합니다 . 이는 관련된 모든 약어와 아래 첨자를 한 줄로 쉽게 변경할 수 있다는 큰 장점이 있습니다. 예를 들어:

  • 열 에너지 저장을 위한 약어 TES\newcommand{\TES}{TES}
  • \newcommand{\TESi}{\mathit{\TES}}또한 아름다운 수학 텍스트 형식을 위해 아래 첨자 또는 수학 변수로 정의됩니다.
  • 텍스트에 사용됨\TES{}
  • 수학에 사용됩니다. $V_{\TESi}$TES의 볼륨에 대한 기호
  • 아래 첨자와 위 첨자 용어집에 추가됨\newacronym[type=indizes]{tes}{$\TESi$}{thermal energy storage}

마지막 단계에서 문제가 발생했습니다. 항목을 정렬할 때 다음 glossaries을 기준으로 정렬하는 것 같습니다.명령의 이름명령으로 생성된 문자열 대신. 즉, 초기 약어의 이름을 에서 로
바꾸면 용어집이 대신에 의해 정렬됩니다.newcommand{\TES}{TES}newcommand{\TES}{ES}\TESES 정렬됩니다 . 약어를 사용하면 상황이 더욱 악화됩니다.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로 전환하면 작동할 수 있나요? 예상치 못한 부작용은 무엇입니까?

용어집의 정렬은 다음과 같을 것으로 예상됩니다.

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

답변1

좋아, 답을 찾았어. 용어집 패키지 옵션으로 설정하면 sanitizesort=false정렬 키가 확장됩니다.

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

명시적으로 정의된 비명령 항목에는 여전히 정렬 문제가 있는 것 같지만 일반적으로 정상적으로 작동합니다.

편집: 이제 Latex에서 "위생 처리"가 무엇을 의미하는지 알고 검색해 보니 다음을 발견했습니다.질문/답변같은 문제를 다루고 있습니다.

관련 정보