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}