基本上我想要的是这个:
图片目录
图片 1:somecaptiontextxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxx..............................................34
Abbildung 1 是图形的名称。它相当于图 1、图 2 等。Abbildungsverzeichnis 表示图形列表。我没有将其翻译成英文,因为底部的图片全是德文,显示了我的图形列表的实际状态。
但是我使用的代码:
\usepackage[titles]{tocloft}
\newlength{\mylen}
\renewcommand{\cftfigpresnum}{\figurename\enspace}
\renewcommand{\cftfigaftersnum}{:}
\settowidth{\mylen}{\cftfigpresnum\cftfigaftersnum}
\addtolength{\cftfignumwidth}{\mylen}
产生了这个:
提前致谢。
答案1
一种可能的解决方案是使用tocloft
:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[titles]{tocloft}
\usepackage{graphicx}
\newlength\mylen
\cftsetindents{figure}{0em}{0em}
\let\orignumberline\numberline
\let\origlistoffigures\listoffigures
\renewcommand\listoffigures{%
\renewcommand\numberline[1]{%
\settowidth\mylen{\figurename\enspace:##1\enspace}%
\orignumberline{\figurename\enspace##1:\enspace\hspace{-\mylen}}\hspace{\mylen}%
}%
\origlistoffigures
\let\numberline\orignumberline
}
\begin{document}
\listoffigures
\clearpage
\section{Test}
\begin{figure}
\centering
\includegraphics[height=3cm]{example-image-a}
\caption{this is just a caption for a test figure, we add some more text here so the caption will span several lines}
\end{figure}
\end{document}
如果你愿意改变titletoc
而不是tocloft
,而是这样做:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{titletoc}
\usepackage{graphicx}
\titlecontents{figure}
[0em]
{}
{\figurename\enspace\thecontentslabel:\enspace}
{}
{\titlerule*[1pc]{.}\contentspage}
\begin{document}
\listoffigures
\begin{figure}
\centering
\includegraphics[height=3cm]{example-image-a}
\caption{this is just a caption for a test figure, we add some more text here so the caption will span several lines}
\end{figure}
\end{document}
生成的 LoF 的图像:
答案2
你必须调整方式tocloft
通过修改设置的边距长度来构造 LoF 条目。下面是对\l@figure
from的重新定义tocloft
,以便为您提供必要的输出:
\makeatletter
\renewcommand*{\l@figure}[2]{%
\ifnum \c@lofdepth >\z@
\vskip \cftbeforefigskip
{%\leftskip \cftfigindent\relax
\rightskip\z@%\rightskip \@tocrmarg
\parfillskip -\rightskip
\parindent\z@%\parindent \cftfigindent\relax
\@afterindenttrue
\interlinepenalty\@M
\leavevmode
\@tempdima \cftfignumwidth\relax
\let\@cftbsnum \cftfigpresnum
\let\@cftasnum \cftfigaftersnum
\let\@cftasnumb \cftfigaftersnumb
\null\nobreak%\advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
{\cftfigfont #1}\nobreak
\cftfigfillnum{#2}}%
\fi
}
\makeatother
注释掉的部分已经修改。
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage[titles]{tocloft}
\makeatletter
\renewcommand*{\l@figure}[2]{%
\ifnum \c@lofdepth >\z@
\vskip \cftbeforefigskip
{%\leftskip \cftfigindent\relax
\rightskip\z@%\rightskip \@tocrmarg
\parfillskip -\rightskip
\parindent\z@%\parindent \cftfigindent\relax
\@afterindenttrue
\interlinepenalty\@M
\leavevmode
\@tempdima \cftfignumwidth\relax
\let\@cftbsnum \cftfigpresnum
\let\@cftasnum \cftfigaftersnum
\let\@cftasnumb \cftfigaftersnumb
\null\nobreak%\advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
{\cftfigfont #1}\nobreak
\cftfigfillnum{#2}}%
\fi
}
\makeatother
\newlength{\mylen}
\renewcommand{\cftfigpresnum}{\figurename\enspace}
\renewcommand{\cftfigaftersnum}{:\enspace}
\settowidth{\mylen}{\cftfigpresnum\cftfigaftersnum}
\addtolength{\cftfignumwidth}{\mylen}
\begin{document}
\listoffigures
\begin{figure}
\centering
\includegraphics[height=3cm]{example-image-a}
\caption{this is just a caption for a test figure, we add some more text here so the caption will span several lines}
\end{figure}
\end{document}
保留该\rightskip \@tocrmarg
选项将获得以下输出:
您还可以使用etoolbox
如果需要,请重新定义\l@figure
。这样不会更干净。