我有一个 IEEE(conf)格式的文档,我想使用 添加一个新环境tocloft
。相关代码如下(略有缩写):
\documentclass[conference]{IEEEtran}
\usepackage[titles]{tocloft}
\newcommand{\listexampletitle}{List of Examples}
% FIXME: Should be styled as a "normal" subsection
\newlistof{examples}{exp}{\listexampletitle}
% FIXME: Remove page numbers
\newcommand{\examplelist}[1]{%
\refstepcounter{examples}
\addcontentsline{exp}{examples}
{\protect\numberline{\theexamples}#1}
}
\newcommand{\example}[1]{\examplelist{#1}\textbf{Example}: #1}
\begin{document}
\section{A section}
\example{A first example}
\listofexamples
\end{document}
结果如下:
尽管使用titles
带有\usepackage[titles]{tocloft}
标题的选项,示例列表看起来更像是\section*
而不是\section
。这很有意义,因为默认情况下通常会生成一个表格作为书籍前言的一部分。但是,我希望该标题是正常的,\section
因为它将出现在文档的中间。这可能吗?
其次,如何删除每个项目的页码\listofexamples
,以便仅列出示例本身?
答案1
section
这个问题的第一部分可以通过自动增加计数器并手动将其插入到表标题中来解决,如下所示:
\newcommand{\listexampletitle}{\addtocounter{section}{1}\thesection.~List of Examples}
这个问题的第二部分(如何删除页码)可以通过使用\cftpagenumbersoff{XXX}
宏来回答(XXX
新列表的长格式名称在哪里)。
在这种情况下,更正后的代码如下所示:
\newcommand{\listexampletitle}{\addtocounter{section}{1}\thesection.~List of Examples}
\newlistof[section]{examples}{exp}{\listexampletitle}
\newcommand{\examplelist}[1]{%
\refstepcounter{examples}
\addcontentsline{exp}{examples}
{\protect\numberline{\theexamples}#1}
}
\newcommand{\example}[1]{\examplelist{#1}\textbf{Example \theexamples}: #1}
\cftsetindents{examples}{1.5em}{3.0em}
\cftpagenumbersoff{examples} % Don't print page numbers with examples
\setlength{\cftexamplesnumwidth}{1.5cm} % Add space around example numbers
结果如下:
答案2
问题的第一部分需要这样一种 hack 方法来解决,这确实很不幸。tocloft
设置为定义其自己的标题格式,并titles
简单地将其关闭以使用类定义的任何内容(例如\section*
)。因此,目前还没有办法tocloft
将其更改为未加星标的部分。
我添加了一个问题在其 Github 页面上解决了这个问题。
为了使其立即正常工作,您可以重新定义\listofexamples
命令:(其定义相当容易理解)
\makeatletter
\renewcommand\listofexamples{%
\@cfttocstart
\if@cfthaschapter
\chapter{\listexampletitle}%
\else
\section{\listexampletitle}%
\fi
\@nameuse{cftmarkexp}%
\@starttoc{exp}%
\@cfttocfinish
}
\makeatother
或者,\patchcmd
来自的命令toolbox
对于这种修复非常有用:
\usepackage{etoolbox}
\patchcmd\listofexamples{\section*}{\section}{}{}