我在让命令\makepsmarks
按照我希望的方式运行方面遇到了一些麻烦。我希望标题中的部分标题按以下方式运行:在第二页面的某一部分。当一个部分在页面中间停止时,我希望页眉中的标题来自该部分,而不是页面开头的部分。
如果你编译我的最小示例并查看第 3 页,则页眉中不应有章节标题。第 5 页的章节标题应保留为第一节,直到下一页,因为第一节在该页结束。
我尝试摆弄both
、left
和right
命令并更改\leftmark
和\rightmark
命令,但我还没有找到解决方案,所以我希望你能帮忙。
\documentclass[12pt,a4paper,onecolumn,oneside,final]{memoir}
\usepackage{multicol}
\usepackage[english]{babel}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage[textwidth=10cm,textheight=22cm]{geometry}
\usepackage{calc}
\usepackage{lipsum}
\makepagestyle{HDR}
\makepsmarks{HDR}{\nouppercaseheads
\createmark{chapter}{left}{nonumber}{}{\space}
\createmark{section}{right}{nonumber}{}{\space}
\makeheadrule{HDR}{10cm}{\normalrulethickness}
}
\makeoddhead{HDR}{\small\normalfont\mdseries\textsc{\leftmark}\hskip.3cm\vrule\hskip.3cm\bfseries\rightmark}{}{}
\makeoddfoot{HDR}{}{\thepage}{}
\begin{document}
\pagestyle{HDR}
\chapter{Chapter One}
\lipsum
\section{Section One}
\lipsum
\section{Section Two}
\lipsum
\end{document}
答案1
您可以\rightmark
使用\topmark
而不是\firstmark
,但如果某个部分从页面顶部开始,就会出错。您可以通过在部分前发出 mark als 来修复此问题(但不保证在任何情况下都能正常工作):
\documentclass[12pt,a4paper,onecolumn,oneside,final]{memoir}
\usepackage[textwidth=10cm,textheight=22cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[latin]{babel}% just to avoid bad hyphenation
\usepackage{lmodern}
\usepackage{microtype} % for better results
\usepackage{xparse}
\usepackage{calc}
\usepackage{multicol}
\usepackage{lipsum}
\makepagestyle{HDR}
\makepsmarks{HDR}{%
\nouppercaseheads
\createmark{chapter}{left}{nonumber}{}{\space}%
\createmark{section}{right}{nonumber}{}{\space}%
\makeheadrule{HDR}{10cm}{\normalrulethickness}%
}
\makeoddhead{HDR}{%
\small\normalfont\mdseries
\textsc{\leftmark}%
\hspace{.3cm}\vrule\hspace{.3cm}%
\textbf{\rightmark}%
}{}{}
\makeoddfoot{HDR}{}{\thepage}{}
\makeatletter
\renewcommand{\rightmark}{\expandafter\@rightmark\topmark\@empty\@empty}
\makeatother
\let\memoirsection\section
\RenewDocumentCommand{\section}{oom}{%
\markright{#3}% emit a mark also before the section
\IfNoValueTF{#1}
{\memoirsection{#3}}
{\IfNoValueTF{#2}
{\memoirsection[#1]{#3}}
{\memoirsection[#1][#2]{#3}}%
}%
}
\begin{document}
\pagestyle{HDR}
\chapter{Chapter One}
\lipsum
\section{Section One}
\lipsum
\section{Section Two}
\lipsum
\lipsum[1-2]
\section{Section Three}
\lipsum[1]
\end{document}