tocloft 将某一节作为子节进行交叉引用

tocloft 将某一节作为子节进行交叉引用

我有一份文档,它创建了一个新的示例列表。该列表有一个标签\label{sec:examples},用于标记列表的标题,该标题呈现为一个部分。但是,交叉引用sec:examples会导致对子部分的引用。

这是一个很小但完整的例子,演示了这个问题:

\documentclass[conference]{IEEEtran}

\usepackage{lipsum}
\usepackage[titles]{tocloft}

\newcommand{\listexampletitle}{\addtocounter{section}{1}\thesection.~List of Examples\label{sec: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}
\setlength{\cftexamplesnumwidth}{1.5cm}


\begin{document}

\title{Example IEEE with tocleft}

\author{}

\maketitle

\section{Introduction}
Examples are summarised in Section \ref{sec:examples}.

\example{A first example}

\section{A section}
\subsection{A subsection}
\lipsum[1]{}
\example{A second example}

\listofexamples

\end{document}

下面是相关输出的图片,有问题的行以黄色突出显示。简介的第一行,呈现为:

Examples are summarised in Section II.I.

应该读:

Examples are summarised in Section III.

我该如何纠正这个问题?

输出:

在此处输入图片描述

答案1

不知何故,该\newlistof命令似乎将命令分组(诚然,我没有检查这一点)\refstepcounter。最好先修补\listofexamples,首先增加节计数器,而不是立即通过减少它来更正它。这是通过etoolbox包命令实现的\pretocmd,在这种情况下有点偷懒,我忽略了测试;-)

\listofexamples我稍微改变了等等的定义,使它成为一个真正的部分。

\documentclass[conference]{IEEEtran}

\usepackage{lipsum}
\usepackage[titles]{tocloft}

\usepackage{etoolbox}

\newcommand{\listexampletitle}{List of Examples}


\newlistof[section]{examples}{exp}{\section{\listexampletitle}}%

% Prepending the \listofexamples command with dummy \refstepcounter{section} etc.
\pretocmd{\listofexamples}{\refstepcounter{section}\addtocounter{section}{-1}}{}{}%



\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}
\setlength{\cftexamplesnumwidth}{1.5cm}


\begin{document}

\title{Example IEEE with tocleft}

\author{}

\maketitle

\section{Introduction}
Examples are summarised in Section \ref{sec:examples}.

\example{A first example}

\section{A section}
\subsection{A subsection}
\lipsum[1]{}
\example{A second example}



\listofexamples\label{sec:examples}
\end{document}

在此处输入图片描述

相关内容