如何使用 tocloft 包自定义图号和标题之间的间距?

如何使用 tocloft 包自定义图号和标题之间的间距?

我的设置如下:

  \renewcommand{\cftfigfont}{\songti\zihao{-4}}
  \renewcommand{\cftfigpresnum}{\loflabel\hspace*{0.4em}}
  \renewcommand{\cftfigaftersnumb}{\hfill\hspace*{1.0em}}
  \renewcommand{\cftfigleader}{\cftdotfill{\cftdot}}
  \renewcommand{\cftfigdotsep}{\cftdotsep}
  \renewcommand{\cftfigpagefont}{\rm\zihao{-4}}
  \setlength{\cftbeforefigskip}{-2pt}
  \listoffigures

输出如下(_代表空格):

图 1____xxxxxxxx.................1

图 2____xxxxxxxx....................2

图 100__xxxxxxx......................100

但是,我想要的是这样的:

图1__xxxxxxxx.................1

图 2__xxxxxxxx.................2

图 100__xxxxxxx......................100

我该如何处理tocloft包裹?

答案1

tocloft仍然将图形编号设置在固定宽度的框内。这就是为什么您(默认情况下)在 LoF 中实现图形标题的左对齐。以下是(重新)定义:

\renewcommand{\numberline}[1]{% 
  \hb@xt@\@tempdima{\@cftbsnum #1\@cftasnum\hfil}\@cftasnumb}

设置\hb@xt@\@tempdima{..}一个宽度的框\@tempdima- 由指定\cftnumwidth作为列表条目构造的一部分。

为了实现您想要的布局,您需要调整\numberline宏并删除其盒装特性。下面我创建了\cftlofnumberline与传统的\numberline由 创建的非常相似的宏tocloft,只是它删除了固定宽度的盒装:

在此处输入图片描述

\documentclass{article}

\usepackage{tocloft}

\newcommand{\loflabel}{Fig}
\renewcommand{\cftfigpresnum}{\loflabel\hspace*{0.4em}}
\renewcommand{\cftfigaftersnumb}{\hspace*{1em}}
\renewcommand{\cftfigdotsep}{\cftdotsep}

\makeatletter
\newcommand{\cftlotnumberline}[1]{\@cftbsnum #1\@cftasnum\@cftasnumb}
\makeatother

\begin{document}

\begingroup
\let\numberline\cftlotnumberline
\listoffigures
\endgroup

\begin{figure}[ht]
  \caption{First figure}
\end{figure}

\setcounter{figure}{99}
\begin{figure}[ht]
  \caption{Last figure}
\end{figure}

\end{document}

注意重新定义 (通过\let)的局部范围\numberline。你可能需要为 ToC 或 LoT 设置不同的格式。

相关内容