用(點)規則取代目錄中的點前導符

用(點)規則取代目錄中的點前導符

我正在製定一項有嚴格字元限制的提案。我希望資助機構只需從 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 破折號 ( \renewcommand{\cftdot}{------})。

但我認為您的解決方案看起來不錯,您可以隨時根據文件的預設字體大小對其進行調整。

相關內容