单节章节的“自动”标题

单节章节的“自动”标题

LaTeX我正在用写我的硕士毕业作品memoir class。对于header/footer我正在使用的fancyhdr代码

\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\fancyhf{}
\fancyhead[LE,RO]{\small\textbf{\arabic{page}}}
\fancyhead[RE]{\small{\nouppercase{\rightmark}}}
\fancyhead[LO]{\small{\nouppercase{\leftmark}}}
\renewcommand{\chaptermark}[1]{\markboth{\thechapter.\space#1}{}}
\renewcommand{\headrulewidth}{0.4pt}

当文本至少有一个部分时,它可以正常工作。然而,在章节中,引言或结论(没有部分)rightmark在偶数页上是空的。

我想要一些解决方案(也许使用if命令)来改变自动地上面的代码

\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\fancyhf{}
\fancyhead[LE,RO]{\small\textbf{\arabic{page}}}
\fancyhead[RE]{\small{\nouppercase{\leftmark}}}
\fancyhead[LO]{\small{\nouppercase{\leftmark}}}
\renewcommand{\chaptermark}[1]{\markboth{\thechapter.\space#1}{}}
\renewcommand{\headrulewidth}{0.4pt}

(在偶数页和奇数页写标题章节)。

谢谢

答案1

我们来看看这一行的效果:

\renewcommand{\chaptermark}[1]{\markboth{\thechapter.\space#1}{}}

每次\chapter出现 a 时,当前的左标记和右标记都会被覆盖:左标记被\thechapter.\space#1一个空字符串覆盖,右标记被一个空字符串覆盖。当之后出现 a 时,只有右标记会被章节标题和编号覆盖。这样做的一个结果是,在 a 之后但在 any 之前的\section偶数页上,右标记是空的。\chapter\section

如果您想改变这种行为,只需\chaptermark插入一个右标记:

\renewcommand{\chaptermark}[1]{\markboth{\thechapter.\space#1}{\thechapter.\space#1}}

只要有章节存在,就不会发生任何变化: 的调用\section会覆盖 设置的 rightmark \chapter。但是当没有 时\section,标题将使用章节标题和编号作为 rightmark。

完整示例:

\documentclass{memoir}
\let\footruleskip\undefined
\usepackage{fancyhdr}
\usepackage{lipsum}

\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE,RO]{\small\textbf{\arabic{page}}}
\fancyhead[RE]{\small{\nouppercase{\rightmark}}}
\fancyhead[LO]{\small{\nouppercase{\leftmark}}}
\renewcommand{\chaptermark}[1]{\markboth{\thechapter.\space#1}{\thechapter.\space#1}}
\renewcommand{\headrulewidth}{0.4pt}

\begin{document}
\chapter{First}
\lipsum[1]

\section{Just}
\lipsum[2-4]

\section{some sections}
\lipsum[3-5]

\chapter{Second}
\lipsum[6-16]

\section{Section only now}
\lipsum[17-21]

\end{document}

在此处输入图片描述


无需使用 即可实现相同结果fancyhdr。只需进行以下替换:

  • \pagestyle{fancy}经过\pagestyle{myheadings}
  • \fancyhead[LE}{...}等等(类似\makeevenhead{myheadings}{<left>}{<center>}{<right>}\makeoddhead
  • \renewcommand{\headrulewidth}{0.4pt}经过\makeheadrule{myheadings}{\textwidth}{0.4pt}

完整示例:

\documentclass{memoir}
\usepackage{lipsum}

\pagestyle{myheadings}
\makeevenhead{myheadings}{\small\textbf{\arabic{page}}}{}{\small\rightmark}
\makeoddhead{myheadings}{\small\leftmark}{}{\small\textbf{\arabic{page}}}
\renewcommand{\chaptermark}[1]{\markboth{\thechapter.\space#1}{\thechapter.\space#1}}
\renewcommand{\sectionmark}[1]{\markright{\thesection.\space#1}}
\makeheadrule{myheadings}{\textwidth}{0.4pt}

\begin{document}
\chapter{First}
\lipsum[1]

\section{Just}
\lipsum[2-4]

\section{some sections}
\lipsum[3-5]

\chapter{Second}
\lipsum[6-16]

\section{Section only now}
\lipsum[17-21]

\end{document}

相关内容