我想创建一个有 3 列的词汇表(我已经有了),我想将其细分为不同的子部分(如罗马字母和希腊字母)。该部分应左对齐并以粗体显示。
这是 MWE
\documentclass[12pt,oneside,listof=totoc,bibliography=totoc,BCOR=15mm,DIV=12,headings=normal,numbers=noendperiod,parskip=half]{scrbook}
\usepackage{siunitx}
\usepackage[acronym,toc,automake,nogroupskip]{glossaries} % automake: glossary automatically compiled each time pdflatex is run
\setlength{\glsdescwidth}{\textwidth} % total width of glossary
\newglossary[slg]{symbolslist}{syi}{syg}{Symbolslist} % create new symbolslist
\glsaddkey{unit}{\glsentrytext{\glslabel}}{\glsentryunit}{\GLsentryunit}{\glsunit}{\Glsunit}{\GLSunit} % add unit-entry to list of symbols
\glssetnoexpandfield{unit} % field for unit does never expand
\makeglossaries % calls backend to sort and typeset glossries, list of acronyms, list of symbols etc.
\newglossarystyle{symbunitlong}{%
\setglossarystyle{long3col}% base this style on the list style
\renewenvironment{theglossary}{% change the table type to three columns
\begin{longtable}{lp{0.75\glsdescwidth}>{\arraybackslash}p{1.3cm}}}%
{\end{longtable}}%
\renewcommand*{\glossentry}[2]{% change the displayed items
\glstarget{##1}{\glossentryname{##1}} % symbol
& \glossentrydesc{##1}% description
& \glsunit{##1} \tabularnewline % unit
}
}
% defining the two sections
\newglossaryentry{header1}{name={Section 1},description={},sort=000,unit={}}
\newglossaryentry{header2}{name={Sectino 2},description={},sort=001,unit={}}
% adding two entries
\newglossaryentry{firstEntry}{name=\ensuremath{a_1},
sort=a1,
description={Some description},
unit={\si{-}},
type=symbolslist,
parent=header1}
\newglossaryentry{secondEntry}{name=\ensuremath{b_2},
sort=b2,
description={Some description},
unit={\si{-}},
type=symbolslist,
parent=header2}
\begin{document}
\glsaddall
\printglossary[type=symbolslist,style=symbunitlong,title={List of Important Symbols}]
Hello World
\end{document}
在开头定义两个“部分”会破坏后面的条目。如果我不定义父级,一切都会正常。你能帮助我吗?谢谢 :)
答案1
您忘记定义子条目的显示方式。如果您添加
\renewcommand{\subglossentry}[3]{%
\glstarget{##2}{\glossentryname{##2}} &
\glossentrydesc{##2} &
\glsunit{##2} \tabularnewline
}%
根据您对 的定义symbunitlong
,子条目将会按照(我怀疑)您期望的方式显示。
不过,这并不是在词汇表中“创建部分”的好方法。您应该创建两个单独的词汇表(例如,一个用于罗马符号,一个用于希腊符号)。然后可以轻松地分别配置和输出它们。(如果您需要有关如何执行此操作的基本示例,您可以查看这个答案。问题是不同的,但我认为这个例子几乎显示了你正在寻找的内容。)