fancyhdr:标题中的节号、节、冒号和小节

fancyhdr:标题中的节号、节、冒号和小节

我对这些选项有点困惑fancyhdr。我目前的标题样式是这样的:MWE:

\documentclass[12pt,oneside]{book}%use oneside to ensure no blanks\
\usepackage[text={5.45in,8.5in}, left=1.5in, right=1.25in, top=1.25in, bottom=1.25in, headheight=15.91pt, centering]{geometry}
\usepackage[table,hyperref]{xcolor}
\usepackage{setspace, fancyhdr, amsmath, amssymb,amsthm, graphicx, color, lscape, longtable, booktabs, caption, wrapfig, hyperref, pdfpages, capt-of, microtype, lmodern, titlesec, tikz, lipsum}


% Ensures we put the section name/number on the left side and page number on right

\fancyhf{}                % clear all header and footer fields
\pagestyle{fancy}           %define page style
\pagenumbering{roman}       %page numbering style: before main text
\fancyhead[L]{\nouppercase{\rightmark}}
\fancyhead[R]{\thepage}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\headheight}{0.5pt} % make space for the rule
\fancypagestyle{plain}{%
\fancyhead{} % get rid of headers on plain pages
\fancyhead[R]{\thepage}
\renewcommand{\headrulewidth}{0pt} % and the line
}
\doublespacing

\newpage
\pagenumbering{arabic}
\renewcommand{\headrulewidth}{0.5pt}


\begin{document}

\chapter{Some chapter}
\section{Section I}
\lipsum[1-1]
\subsection{Subsection}
\lipsum[1-2]
\section{Section II}
\lipsum[1-2]
\subsection{Subsection One}
\lipsum[1-2]
\subsection{Subsection Two}
\lipsum[1-2]
\end{document}
\section{Section III}
\lipsum[1-2]
\subsection{Subsection for this section}
\lipsum[1-2]
\subsection{Another subsection}
\lipsum[1-2]

当前标题如下所示:

1.1 第一部分

对于我的大部分章节来说,这没问题。但是对于某些章节,比如上面 MWE 中的第 II 节,我希望标题如下所示:

1.2 第二节:第二小节

然后我想让标题在下一节(第三节)中切换回当前样式:

1.3 第三部分

我读了关于 fancyhdr 的几篇文章,维基百科中有关 fancyhdr 的部分但我在让它工作时遇到了一些麻烦,尤其是中间有冒号的时候。任何帮助都太棒了!

附言:如果这是一个重复的问题,您能否指出相关问题?

答案1

\documentclass[12pt,oneside]{book}

\usepackage{fancyhdr,lipsum,setspace}

\pagestyle{fancy}           %define page style
\fancyhf{}                  % clear all header and footer fields

\renewcommand{\subsectionmark}[1]{%
  \ifsubsectioninheader
    \def\subsectiontitle{: #1}%
  \else
    \def\subsectiontitle{}%
  \fi}
\newif\ifsubsectioninheader
\def\subsectiontitle{}
\fancyhead[L]{\nouppercase{\rightmark\ifsubsectioninheader\subsectiontitle\fi}}
\fancyhead[R]{\thepage}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\headheight}{0.5pt} % make space for the rule
\fancypagestyle{plain}{%
\fancyhead{} % get rid of headers on plain pages
\fancyhead[R]{\thepage}
\renewcommand{\headrulewidth}{0pt} % and the line
}
\doublespacing

\renewcommand{\headrulewidth}{0.5pt}


\begin{document}
% \frontmatter %%% use this for roman page numbering

\mainmatter %%% use this for switching to arabic page numbering

\chapter{Some chapter}

\section{Section I}
\lipsum[1]

\subsection{Subsection}
\lipsum[1-2]

\section{Section II}
\subsectioninheadertrue

\lipsum[1-2]

\subsection{Subsection One}
\lipsum[1-2]

\subsection{Subsection Two}
\lipsum[1-2]
\subsectioninheaderfalse


\section{Section III}
\lipsum[1-2]

\subsection{Subsection for this section}
\lipsum[1-2]

\subsection{Another subsection}
\lipsum[1-2]

\end{document}

我们重新定义\subsectionmark为保留标题,但仅当条件\ifsubsectioninheader为真时;在这种情况下,标题将显示信息。的通常定义\subsectionmark是不执行任何操作。

另外,请注意该类book具有更好的方法,可以将页码从罗马数字转换为阿拉伯数字。\frontmatter您还可以获得其他优势:其中的章节没有编号,但会自动进入目录。

相关内容