将目录中的点引线替换为(点)线

将目录中的点引线替换为(点)线

我正在编写一个对字符数有严格限制的提案。我希望资助机构只需从我的 PDF 中提取文本即可计算文档中的字符数。问题是目录中的点引号占用了很大一部分字符数。

我不想对目录的布局做太大的改动,因为 LaTeX 默认提供的布局已经很适合我的文档风格了。(例如,我认为 Robert Bringhurst 偏爱的风格或这个问题的答案不太合适。)是否可以简单地用图形虚线或虚线替换目录中基于字符的点引线,这样点/虚线就可以逐行对齐?如果没有简单的解决方案,也许一条可靠的规则对我的情况有用。

答案1

假设您正在使用标准文档类(或任何其他使用标准定义\@dottedtocline创建目录的文档类),以下内容将句点替换为小方块。

\documentclass[]{article}

\usepackage{etoolbox}

\makeatletter
\patchcmd\@dottedtocline{\hbox{.}}{\rule{.23ex}{.23ex}}{}{}
\makeatother

\usepackage{duckuments}

\begin{document}
\duckument[toc]
\end{document}

带有时期的原始外观:

在此处输入图片描述

带有小方块的新外观:

在此处输入图片描述

答案2

以下是我刚刚想到的一个解决方案:

\usepackage{tocloft}
\usepackage{tikz}
\renewcommand{\cftdot}{\begin{tikzpicture}\node [circle,fill,inner sep=0.54pt]{};\end{tikzpicture}}

我不确定这有多么优化(当然点的大小是硬编码的而不是缩放到文本大小)所以我很高兴听到任何不同或更好的解决方案。

答案3

一种可能性是使用破折号代替句号作为点。

% dottedprob.tex  SE 562961
\documentclass{article}
\usepackage{tikz}
\usepackage{tocloft}
\renewcommand{\cftdot}{---}
% following is from the OP
%\renewcommand{\cftdot}{\begin{tikzpicture}\node [circle,fill,inner sep=0.54pt]{};\end{tikzpicture}}

\begin{document}
\tableofcontents
\section{A section}
\subsection{A subsection}
\subsubsection{A subsubsection}

\end{document}

或者您可以尝试 2em-dashes ( \renewcommand{\cftdot}{------})。

但我认为您的解决方案看起来不错,并且您可以随时根据文档的默认字体大小对其进行调整。

相关内容