我的设置如下:
\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 设置不同的格式。