实际上我正在使用该fancyhdr
包,并尝试将当前零件名称放在正确的标题中。
我知道\rightmark
和\leftmark
分别用于表示当前章节和章节标题,但我找不到任何类似的东西来表示部分名称。
答案1
这取决于您所指的是哪种类型的“部分” ,,,,,,\chaptername
等等......请参阅\sectionname
\thepage
\thesection
\thechapter
此链接了解详情。
编辑:根据您的评论,此主题似乎正在讨论解决方案(笔记:有一个拼写错误,应该是\renewcommand{\part}...
,即必须添加反斜杠):
要使用这些部件,您可以执行以下操作:
\let\Oldpart\part \newcommand{\parttitle}{} \renewcommand{part}[1]{\Oldpart{#1}\renewcommand{\parttitle}{#1}}
然后在标题栏中使用 \parttitle。
另一种选择是使用
titlesec
提供类似命令的包\partmark
。
答案2
将零件标题放入页眉并不常见,因此没有默认的宏。
您可以重新定义\part
宏来保存它的参数,例如,\parttitle
然后可以在自定义标题中使用的宏:
\newcommand*\parttitle{}
\let\origpart\part
\renewcommand*{\part}[2][]{%
\ifx\\#1\\% optional argument not present?
\origpart{#2}%
\renewcommand*\parttitle{#2}%
\else
\origpart[#1]{#2}%
\renewcommand*\parttitle{#1}%
\fi
}
答案3
在 KOMA 类中\part
执行一个\partmark
命令,您可以使用该命令来设置\rightmark
或\leftmark
部分标题。
但是,由于\part
总是会生成一个新页面,并且您可能只需要下一页的标题,您也可以做一些简单的操作,例如:
\newcommand\partcontent{}
...
\part{Blub}
\renewcommand\partcontent{Blub}
然后\partcontent
在标题中使用。
答案4
我找不到保存该部分标题的宏,因此我使用了etoolbox
包来修补命令中的内部内容\part
。然后,您只需获取该保存宏并将其放在任何地方即可。
\documentclass{report}
\title{part name in right mark}
\usepackage{fancyhdr}
\usepackage{lipsum}
\usepackage{etoolbox}
\makeatletter
% patch \@part[#1]{#2} and \@spart (see the class file) to save the part name
\pretocmd{\@part}{\gdef\parttitle{#1}}{}{}
\pretocmd{\@spart}{\gdef\parttitle{#1}}{}{}
\makeatother
\pagestyle{fancy}
\renewcommand{\rightmark}{\parttitle}
\begin{document}
\maketitle
\tableofcontents
\part{First part}
\chapter{first chapter}
\lipsum\lipsum\lipsum
\chapter{second chapter}
\lipsum\lipsum\lipsum
\part{Second part}
\chapter{third chapter}
\lipsum\lipsum\lipsum
\chapter{fourth chapter}
\lipsum\lipsum\lipsum
\end{document}