不同的部分名称

不同的部分名称

我希望在文本中将我的章节命名为“练习 x - 名称”,但在目录和 中将其命名为“练习 x” \leftmark。有人对此有想法吗?我尝试过\leftmark使用 来操作我的\thesection章节。我的问题在于,我使用 命令\setcounter{secnumdepth}{-1},因此没有章节编号。

答案1

最简单的方法是使用\section[Exercise x]{Exercise x - name}。强制参数用于文本,可选参数用于标题和目录。

为了更容易编写,你可以定义命令

\newcommand{\exercise}[2]{\section[Exercise #1]{Exercise #1 - #2}}

并将其与 一起使用\exercise{x}{name},或者,如果所有练习都是连续编号的,您可以使用

\newcounter{Exercise}
\newcommand{\exercise}[1]{\stepcounter{Exercise}
\section[Exercise \arabic{Exercise}]{Exercise \arabic{Exercise} - #1}}

获得自动编号。

答案2

我假设您设置secnumdepth为 -1 来手动调整分段命名。如果您策略性地更新三个要求(目录/标题/命名)仅用于\section代表你的练习,那么以下内容就足够了:

在此处输入图片描述

\documentclass{article}
\usepackage{etoolbox,fancyhdr}% http://ctan.org/pkg/{etoolbox,fancyhdr}

\fancyhf{}% Clear header/footer    
\fancyhead[R]{\thepage}% Page number in Right header
\fancyhead[L]{\leftmark}% \leftmark in Left header
\pagestyle{fancy}

\makeatletter
\patchcmd{\l@section}{#1}{Exercise #1}{}{}% Correct ToC
\renewcommand{\sectionmark}[1]{\markboth{Exercise~\thesection}{}}% Header mark
\renewcommand{\@seccntformat}[1]{Exercise \csname the#1\endcsname~--~}% Correct in-text \section # format
\let\oldsection\section% Store \section in \oldsection
\makeatother


\begin{document}

\tableofcontents

\renewcommand{\section}[1]{\oldsection[]{#1}}% Sections don't have a title in the ToC

\section{ABC}
\pagebreak

\section{DEF}
\pagebreak

\section{GHI}
\end{document}

相关内容