![용어집 newacronym은 short가 명령으로 제공되는 경우에도 short 필드를 기준으로 정렬합니다.](https://rvso.com/image/420753/%EC%9A%A9%EC%96%B4%EC%A7%91%20newacronym%EC%9D%80%20short%EA%B0%80%20%EB%AA%85%EB%A0%B9%EC%9C%BC%EB%A1%9C%20%EC%A0%9C%EA%B3%B5%EB%90%98%EB%8A%94%20%EA%B2%BD%EC%9A%B0%EC%97%90%EB%8F%84%20short%20%ED%95%84%EB%93%9C%EB%A5%BC%20%EA%B8%B0%EC%A4%80%EC%9C%BC%EB%A1%9C%20%EC%A0%95%EB%A0%AC%ED%95%A9%EB%8B%88%EB%8B%A4..png)
\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}
\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에서 "위생 처리"가 무엇을 의미하는지 알고 검색해 보니 다음을 발견했습니다.질문/답변같은 문제를 다루고 있습니다.