我在工作中使用了很多经典词汇表:主要词汇表、首字母缩略词、缩写……我还使用更复杂的词汇表进行语言研究,这些词汇表具有层次结构类别。我知道如何构建带有子条目的词汇表,但不知道如何构建带有子子条目的词汇表。我想学习如何构建:条目=子节,子条目=子子节,子子条目=词汇表条目和描述。
这是我的代码:
% !TEX encoding = UTF-8 Unicode
% !TEX TS-program = arara
\documentclass{scrbook}
\usepackage[xindy={language=french, codepage=utf8},section]{glossaries}
\newglossary*{his}{History}
\newglossary*{est}{Esthetic}
\makeglossaries
\newglossarystyle{subgroup}{%
\renewenvironment{theglossary}{\tablehead{}\begin{description}}{\end{description}\tabletail{}}%
\renewcommand{\glossaryheader}{}%
\renewcommand*{\glsgroupskip}{}%
\renewcommand*{\glossentry}[2]{\subsection*{\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}}}}%
\renewcommand{\subglossentry}[3]{\item[\glssubentryitem{##2}\glstarget{##2}{\glossentryname{##2}}] \space\glossentrydesc{##2}\glspostdescription\space ##3}}
% \newglossarystyle{subsubgroup}{% yours ideas, thanks}
\newglossaryentry{niveau1}{type=est,name=niveau1,description={\nopostdesc}}
\newglossaryentry{niveau2}{type=est,name=niveau2,parent=niveau1,description={\nopostdesc}}
\newglossaryentry{glossaire}{type=est,name=glossaire,parent=niveau2,description={C'est un glossaire et un bon}}
\newglossaryentry{level1}{type=his,name=level1,description={\nopostdesc}}
\newglossaryentry{glossary}{type=his,name=glossary,parent=level1,description={This is a glossary \& a good one}}
\begin{document}
\gls{glossary} \gls{glossaire}
\printglossary[type=est,style=subgroup]% to test with the style=subsubgroup
\printglossary[type=his,style=subgroup]
\tableofcontents
\end{document}
% arara: xelatex
% arara: makeglossaries
% arara: xelatex
谢谢!
答案1
表 15.1用户手册中glossaries
显示了哪些预定义样式支持分层条目。您需要找到一个在最大级别列中至少有 2 个或 —(无限制)的样式。
这glossaries
预定义样式库glossary-tree
显示所有可用样式的示例。和包提供的样式glossary-mcols
最适合分层条目。我建议使用tree
或mcoltree
样式,具体取决于您是否要使用multicol
包。
如果您想定义自己的自定义样式,则 的第一个参数\subglossentry
是一个数字,表示子级别。许多预定义样式会忽略此值,从而导致词汇表扁平或最多只有一个子级别。树样式使用此参数来确定缩进。
例子:
\documentclass{scrbook}
\usepackage[xindy={language=french, codepage=utf8},section]{glossaries}
\newglossary*{his}{History}
\newglossary*{est}{Esthetic}
\makeglossaries
\newglossaryentry{niveau1}{type=est,name=niveau1,description={\nopostdesc}}
\newglossaryentry{niveau2}{type=est,name=niveau2,parent=niveau1,description={\nopostdesc}}
\newglossaryentry{glossaire}{type=est,name=glossaire,parent=niveau2,description={C'est un glossaire et un bon}}
\newglossaryentry{level1}{type=his,name=level1,description={\nopostdesc}}
\newglossaryentry{glossary}{type=his,name=glossary,parent=level1,description={This is a glossary \& a good one}}
\begin{document}
\gls{glossary} \gls{glossaire}
\printglossary[type=est,style=tree]% to test with the style=subsubgroup
\printglossary[type=his,style=tree]
\tableofcontents
\end{document}
生成: