每章的词汇表、首字母缩略词、符号等均采用 super 样式,以便描述部分垂直对齐,清晰易读。

每章的词汇表、首字母缩略词、符号等均采用 super 样式,以便描述部分垂直对齐,清晰易读。

我正在使用提供的示例代码TEX.SX 由 Talbot 提供也在这里我在其中评论了一种解决方案,即按章节列出词汇表。但这里的词汇表没有按对齐方式排列,这在格式上看起来很糟糕。如果名称和描述等都垂直对齐,那就太好了,这样每个词汇表术语、符号、首字母缩略词、符号或每章使用的自定义词汇表都有清晰的可读性。样式super很好看,但无法使用上述链接中提供的按章节列出的想法。

MWE 可能与这一页或者我有复制于此处从此页面

\documentclass[hidelinks, twoside,11pt]{book}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage[utf8]{inputenc} % Required for inputting international characters
\usepackage[T1]{fontenc} % Output font encoding for international characters
\usepackage{lipsum}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{setspace}
\usepackage{datatool-base}
\usepackage[nomain, counter=chapter,xindy, section=section, acronym, nonumberlist,nopostdot,nogroupskip, toc,symbols,numbers]{glossaries}

\makeglossaries

% load some dummy acronyms for testing
\loadglsentries{example-glossaries-acronym.tex}

\begin{document}
\tableofcontents

\singlespacing
\printglossary[title={List of Abbreviations}]
\doublespacing

\chapter{Sample Text}

\lipsum % dummy text - remove from real document

Add all the acronyms for testing purposes \glsaddall

\end{document} 

以下按章节输出的格式会很好。此外,如果提供附加功能,那么如果有人不想按章节输出,而是按部分输出(包含几个章节),或者一本书中的单个词汇表将涵盖所有方面。 在此处输入图片描述

答案1

条件代码我之前的回答在类似表格的环境中不起作用,因为它本质上需要:

  \renewcommand*{\glossentry}[2]{%
    \edef\doifinlocation{\noexpand\ifinlocation{\thechapter}{##2}}%
    \doifinlocation
    {%
      \glossentryname{##1} & \glossentrydesc{##1}\tabularnewline
    }%
  }%

在样式定义中,这会导致错误。

更好的方法是使用样式,特别是如果您希望所有列表的描述偏移量相同时altlist。此样式需要知道最宽的名称才能正确设置缩进。定义样式glossary-tree的包提供了,它会遍历所有定义的条目以确定最宽的名称(对于未设置键的条目)。alttree\glsfindwidesttoplevelnameparent

例如:

\documentclass{report}
\usepackage[counter=chapter,xindy,section=section]{glossaries}
\GlsSetXdyMinRangeLength{0}
\makeglossaries

\loadglsentries{example-glossaries-acronym.tex}% dummy entries

\newglossarystyle{mystyle}%
{%
  \setglossarystyle{alttree}%
  \renewcommand*{\glossaryentrynumbers}[1]{\striprelax##1\endstriprelax}%
  \renewcommand*{\glsXchapterXglsnumberformat}[2]{##2}%
  \renewcommand*{\delimR}{,}%
  \let\orgglossentry\glossentry
  \renewcommand*{\glossentry}[2]{%
    \edef\doifinlocation{\noexpand\ifinlocation{\thechapter}{##2}}%
    \doifinlocation{\orgglossentry{##1}{}}%
  }%
}
\newcommand{\ifinlocation}[3]{%
 \DTLifinlist{#1}{#2}{#3}{}%
}
\def\striprelax\relax#1\endstriprelax{#1}
\setglossarystyle{mystyle}
\glsfindwidesttoplevelname

\begin{document}
\chapter{Sample Chapter}
\printglossary
Test dummy entries: \gls{lid}, \gls{aeu} and \gls{eii}.

\glsresetall 
\chapter{Another Chapter}
\printglossary

Test dummy entries: \gls{pqv}, \gls{aeu} and \gls{eii}.
\end{document}

第 1 页:

第 1 页图片

第2页:

第 2 页图片

nogroupskip如果每个列表中只有几个条目,您可能需要关闭组分隔符( ),并在词汇表后添加一些额外的垂直间距,以将其与以下文本分开:

\newglossarystyle{mystyle}%
{%
  \setglossarystyle{alttree}%
  \renewenvironment{theglossary}%
  {\csdef{@gls@prevlevel}{-1}\mbox{}\par}%
  {\par\bigskip\par}% extra space after glossary
  \renewcommand*{\glsgroupskip}{}% no group separation
  \renewcommand*{\glossaryentrynumbers}[1]{\striprelax##1\endstriprelax}%
  \renewcommand*{\glsXchapterXglsnumberformat}[2]{##2}%
  \renewcommand*{\delimR}{,}%
  \let\orgglossentry\glossentry
  \renewcommand*{\glossentry}[2]{%
    \edef\doifinlocation{\noexpand\ifinlocation{\thechapter}{##2}}%
    \doifinlocation{\orgglossentry{##1}{}}%
  }%
}

或者,您也可以不使用,而是\glsfindwidesttoplevelname使用 明确设置最宽的名称\glssetwidest,因此如果您想要更多空间,可以执行以下操作:

\documentclass{report}
\usepackage[counter=chapter,xindy,section=section]{glossaries}
\GlsSetXdyMinRangeLength{0}
\makeglossaries

\loadglsentries{example-glossaries-acronym.tex}% dummy entries

\newglossarystyle{mystyle}%
{%
  \setglossarystyle{alttree}%
  \renewenvironment{theglossary}%
  {\csdef{@gls@prevlevel}{-1}\mbox{}\par}%
  {\par\bigskip\par}% extra space after glossary
  \renewcommand*{\glsgroupskip}{}% no group separation
  \renewcommand*{\glossaryentrynumbers}[1]{\striprelax##1\endstriprelax}%
  \renewcommand*{\glsXchapterXglsnumberformat}[2]{##2}%
  \renewcommand*{\delimR}{,}%
  \let\orgglossentry\glossentry
  \renewcommand*{\glossentry}[2]{%
    \edef\doifinlocation{\noexpand\ifinlocation{\thechapter}{##2}}%
    \doifinlocation{\orgglossentry{##1}{}}%
  }%
}
\newcommand{\ifinlocation}[3]{%
 \DTLifinlist{#1}{#2}{#3}{}%
}
\def\striprelax\relax#1\endstriprelax{#1}
\setglossarystyle{mystyle}

\glssetwidest{xxxxxxxxxx}

\begin{document}
\chapter{Sample Chapter}
\printglossary
Test dummy entries: \gls{lid}, \gls{aeu} and \gls{eii}.

\glsresetall 
\chapter{Another Chapter}
\printglossary

Test dummy entries: \gls{pqv}, \gls{aeu} and \gls{eii}.
\end{document}

第 1 页图片

可以通过重新定义 来调整标题\glossarysection。例如(需要xcolor包):

\renewcommand{\glossarysection}[2][]{%
 \par\noindent
 \colorbox{lightgray}{\parbox{\linewidth}{\centering\MakeTextUppercase{#2}}}%
 \par
}

标题可以title通过 的可选参数中的 key来更改\printglossary。例如:

\printglossary[title={List of Key Terms}]

相关内容