从http://www.latex-community.org/forum/viewtopic.php?f=51&t=12595
我想编纂一本有关我专业领域的新英语术语集。它很像一本字典,但以相反的顺序排列单词,以方便学习,例如
...
romance ...
...(other words whose root is "-ance")
science ...
...
romantic ...
...
Titantic ...
...
scientific ...
我将写下以下文字
\newglossaryentry{romantic}{name=romantic,
description={(corresponding paraphrase)}
}
但找不到符合我需求的排序选项。请帮帮我。
答案1
如果我理解正确的话,您想编写一本基于某种两级排序程序的词典:首先,根据一组预定义的后缀(例如浪漫或语义中的“antic”)对单词进行分组,然后对组进行排序;其次,对每组的单词进行排序。
您可以使用xstring
包裹:
\documentclass{article}
\usepackage{xstring}
\usepackage{glossaries}
\newglossaryentry
围绕包提供的命令定义一个适当的包装器glossaries
:
\newcommand*{\mynewglossaryentry}[2]{%
\bgroup%
\StrBefore{#1}{-}[\root]%
\StrBehind{#1}{-}[\suffix]%
\StrExpand{{\root\suffix}{name=\root\suffix, description={#2}, sort=\suffix\root}}{\keyvallist}%
\expandafter\newglossaryentry\keyvallist%
\egroup%
}
现在,定义字典条目如下:
\mynewglossaryentry{sem-antic}{description of semantic}
\mynewglossaryentry{rom-antic}{description of romantic}
\mynewglossaryentry{immin-ence}{description of imminence}
\mynewglossaryentry{depend-ence}{description of dependence}
\mynewglossaryentry{immin-ent}{description of imminent}
\mynewglossaryentry{depend-ent}{description of dependent}
\makeglossaries
第一个参数中的连字符\mynewglossaryentry
仅用于指示控制第一级排序的后缀。它不会出现在字典中。此外,它不是字典条目标签的一部分——标签是单词本身:
\begin{document}
\noindent
\gls{semantic}, \gls{romantic}, \gls{imminence}, \gls{dependence}, \gls{imminent}, \gls{dependent}
\printglossary[style=listgroup]
\end{document}
输出结果为: