包含三列和三组的词汇表

包含三列和三组的词汇表

我想创建一个有 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,子条目将会按照(我怀疑)您期望的方式显示。

不过,这并不是在词汇表中“创建部分”的好方法。您应该创建两个单独的词汇表(例如,一个用于罗马符号,一个用于希腊符号)。然后可以轻松地分别配置和输出它们。(如果您需要有关如何执行此操作的基本示例,您可以查看这个答案。问题是不同的,但我认为这个例子几乎显示了你正在寻找的内容。)

相关内容