我需要 \listoffigures 和 \listofalgorithms 的特殊格式。
它应该是:
List of Tables
Table 1: T1.....................1
以及各自的
List of Algorithms
Algorithm 1: A1.................1
对于表格,我发现:
\renewcommand*\cfttabpresnum{Table~}
\settowidth{\cfttabnumwidth}{\cfttabpresnum}
\renewcommand{\cfttabaftersnumb}{$\;$$\;$:~}
效果非常好。
对于我找到的算法
\let\oldlistofalgorithms\listofalgorithms
\renewcommand{\listofalgorithms}{%
\begingroup%
\let\oldnumberline\numberline%
\renewcommand{\numberline}{Algorithmus:~\oldnumberline}%
\oldlistofalgorithms%
\endgroup}
从这里:在算法列表中的每个条目前添加单词“算法” 这也行得通。但风格是
List of Algorithms
Algorithm 1 A1................1
所以“:”不见了。我试着自己解决,但没能解决。你能帮我解决一下吗?
你好,托尼
答案1
这个想法是首先注册算法列表,以便tocloft
意识到这一点;例如,可以使用egreg 的回答到定制由 \lstlistoflistings 生成的列表列表?。相关部分根据算法的情况进行了调整,
\makeatletter
\begingroup
\let\newcounter\@gobble
\let\setcounter\@gobbletwo
\globaldefs\@ne
\let\c@loadepth\@ne
\newlistof{algorithms}{loa}{\listalgorithmname}
\endgroup
\let\l@algorithm\l@algorithms
\makeatother
完成后,您可以使用\cft...
命令系列自定义条目格式:
\documentclass{book}
\usepackage{tocloft}
\usepackage{algorithm}
\makeatletter
\begingroup
\let\newcounter\@gobble
\let\setcounter\@gobbletwo
\globaldefs\@ne
\let\c@loadepth\@ne
\newlistof{algorithms}{loa}{\listalgorithmname}
\endgroup
\let\l@algorithm\l@algorithms
\makeatother
\renewcommand\cfttabaftersnum{:}
\renewcommand\cfttabpresnum{Table~}
\cftsetindents{tab}{1.5em}{5em}
\renewcommand\cftalgorithmsaftersnum{:}
\renewcommand\cftalgorithmspresnum{Algorithm~}
\cftsetindents{algorithms}{1.5em}{7em}
\begin{document}
\listoftables
\cleardoublepage
\listofalgorithms
\cleardoublepage
\begin{table}
\centering A
\caption{test table}
\end{table}
\begin{algorithm}
\centering A
\caption{test algorithm}
\end{algorithm}
\begin{table}
\centering A
\caption{another test table}
\end{table}
\begin{algorithm}
\centering A
\caption{another test algorithm}
\end{algorithm}
\end{document}
表格列表的图像:
算法列表的图像:
答案2
如果有人正在寻找上述“lstlistings”相同的内容,那么应该这样做:
\makeatletter
\begingroup\let\newcounter\@gobble\let\setcounter\@gobbletwo
\globaldefs\@ne \let\c@loldepth\@ne
\newlistof{listings}{lol}{\lstlistlistingname}
\endgroup
\let\l@lstlisting\l@listings
\AtBeginDocument{\addtocontents{lol}{\protect\addvspace{10\p@}}}
\makeatother
\renewcommand{\lstlistoflistings}{\listoflistings}
\renewcommand\cftlistingsaftersnum{:}
\renewcommand\cftlistingspresnum{Listing~}
\cftsetindents{listings}{1.5em}{7em}