如何使用 titletoc 临时更改小节内容的标题格式

如何使用 titletoc 临时更改小节内容的标题格式

我有一种常见的文档类型(拨款申请),它需要列出目标,通常列举为目标 1、目标 2 等。在下面的 MWE 中,一个article类可以很好地在文档中正确格式化子部分标题,但我在目录方面遇到了麻烦。我正在更改\thesubsection和使用\titleformattitlesec包,以期使用该titletoc包在定义的环境中更改条目的目录格式aims。我希望目标在目录中列为目标 1、目标 2 等。

我遇到的情况:

  1. \titlecontents我作为环境的一部分设置的设置似乎aims仍然存在环境的结束。这与\titleformat本地设置不同。
  2. \titleformat与包中的设置不同,中的titlesec默认设置未在文档中列出,因此我尝试更改默认设置,但只能不断尝试(此时,全是错误,因为我无法让它工作)。这些示例非常有价值;是否有类似的例子?\titlecontentstitletoctitlesectitletoc

MWE 关注

\documentclass[11pt]{article}
\usepackage {blindtext}
\usepackage {titlesec}
\usepackage {titletoc}

\newenvironment {aims} {
  \renewcommand{\thesubsection}{{\arabic{subsection}}}
  \titleformat{\subsection}{\normalfont\large\bfseries}{Aim
    \thesubsection}{1em}{}
  % example from titletoc docs to show that \titlecontents
  % changes persist outside the group
  \titlecontents{subsection} [3.8em]
  {}{\contentslabel{5em}}{\hspace*{-5em} Aim }
  {\titlerule*[1pc]{.}\contentspage}
}{}
\title {A document}
\author{me}
\begin{document}
\maketitle
\tableofcontents

\section {Introduction}
\blindtext
\begin {aims}
  \section {Aims}
  \subsection {This is an aim}
  \blindtext
  \subsection {This is another aim}
  \blindtext
\end {aims}
\section {Details}
\blindtext
\subsection {Some more details}
\blindtext
\end{document}

答案1

这是一个温和的实现,它复制了from\aims的行为\subsectionarticle.cls

在此处输入图片描述

\documentclass[11pt]{article}
\usepackage {blindtext}% http://ctan.org/pkg/blindtext

\makeatletter
% Taken from article.cls's \subsection and introduced it as \aim
\newcounter{aim}
\renewcommand{\theaim}{\arabic{aim}}
\newcommand\aim{\@startsection{aim}{2}{\z@}%
  {-3.25ex\@plus -1ex \@minus -.2ex}%
  {1.5ex \@plus .2ex}%
  {\normalfont\large\bfseries \hspace*{-\parindent}Aim~}}
\newcommand{\l@aim}{\@dottedtocline{2}{1.5em}{2.3em}}
\newcommand{\aimmark}[1]{}% You don't need any header marks for aims
\makeatother

\title {A document}
\author{me}
\begin{document}
\maketitle
\tableofcontents

\section {Introduction}
\blindtext

\section {Aims}
\aim {This is an aim}
\blindtext
\aim {This is another aim}
\blindtext

\section {Details}
\blindtext
\subsection {Some more details}
\blindtext
\end{document}

使用\aim而不是\subsection似乎更直观。当然,如果需要,也可以以不同的方式格式化“目标”标题;在文本/文档中以及在目录中。我刚刚使用了默认样式\subsection(即\dottedtocline,深度相当于\subsection)。

相关内容