目录和词汇表中的等点间距

目录和词汇表中的等点间距

我想使我在包\dotfill中使用的点分隔glossaries与我在包中获得的点分隔相匹配tocloft。下图显示了顶部目录中的条目和底部词汇表中的条目:

比较

根据这个答案,我可以创建一个名为的命令\Dotfill,其间距与不同。以下是中点之间的空间\dotfill的定义。\Dotfill.33em

\makeatletter
\newcommand \Dotfill {\leavevmode \cleaders \hb@xt@ .33em{\hss .\hss }\hfill \kern \z@}
\makeatother

然后我可以\Dotfill使用在描述后添加点在我的词汇表中:

renewcommand*\glspostdescription{\Dotfill}

我可以手动更改,.33em直到点间距看起来匹配,但有没有更好的方法呢?根据tocloft 的文档,描述目录中点之间的空间的值由给出,\@dotsep其默认值为 4.5。我不确定如何在上面给出的内容中利用它。

这是一个最小的工作示例:

\documentclass{report}

\makeatletter
\newcommand \Dotfill {\leavevmode \cleaders \hb@xt@ .33em{\hss .\hss }\hfill \kern \z@}
\makeatother

\usepackage{tocloft}
\renewcommand{\cftchapleader}{\cftdotfill{\cftsecdotsep}}

\usepackage[toc]{glossaries}
\makeglossaries
\renewcommand*\glspostdescription{\Dotfill}

\begin{document}

\newglossaryentry{Cab}{name={$C[a,b]$},sort=C,description={The space of continuous functions defined on $[a,b]$}}

\tableofcontents

\printglossary

\chapter{Chap 1}

\gls{Cab}

\end{document}

要进行编译,您必须makeglossaries在调用之间运行latex

答案1

您不需要知道长度或明确给出它们(这肯定容易出错)。只需tocloft在定义中使用设置即可\Dotfill

\documentclass{report}
\usepackage[toc]{glossaries}
\usepackage{tocloft}

\newcommand\Dotfill{\cftdotfill{\cftsecdotsep}}
    \renewcommand{\cftchapleader}{\cftdotfill{\cftsecdotsep}}

\makeglossaries
\renewcommand*\glspostdescription{\Dotfill}

\begin{document}

\newglossaryentry{Cab}{name={$C[a,b]$},sort=C,description={The space of continuous functions defined on $[a,b]$}}

\tableofcontents

\printglossary

\chapter{Chap 1}

\gls{Cab}

\end{document}

您甚至可以不用该\Dotfill命令:

\documentclass{report}
\usepackage[toc]{glossaries}
\usepackage{tocloft}

\renewcommand{\cftchapleader}{\cftdotfill{\cftsecdotsep}}

\makeglossaries
\renewcommand*\glspostdescription{\cftdotfill{\cftsecdotsep}}

\begin{document}

\newglossaryentry{Cab}{name={$C[a,b]$},sort=C,description={The space of continuous functions defined on $[a,b]$}}

\tableofcontents

\printglossary

\chapter{Chap 1}

\gls{Cab}

\end{document}

目录

在此处输入图片描述

词汇表中的条目:

在此处输入图片描述

答案2

您可以将值 4.5 转换为 em 以获得正确的数字。如文档中所述,4.5 为math units18数学单位为1em。

18 / 4.5 = 4,所以 4.5 个数学单位是 1/4 * 1 em = 0.25 em。

使用该值0.25 em将为您提供 tocloft 使用的正确标准间距。

相关内容