我使用memoir
带有选项的文档类twoside
,并希望\textwidth
在页眉下方使用水平线,而在页脚上方使用较小的水平线。不幸的是,页脚线始终与左边距对齐,而我希望它与页码上方的外边距对齐。
最小工作示例:
\documentclass[twoside]{memoir}
\copypagestyle{myheadings}{headings}
% add the lines
\makeheadrule{myheadings}{\textwidth}{\normalrulethickness}
\makefootrule{myheadings}{2cm}{\normalrulethickness}{0pt}
% header/footer contents
\makeevenhead{myheadings}{\footnotesize\textsc{chapter \thechapter}}{}{}
\makeoddhead{myheadings}{}{}{\footnotesize\textsc{\MakeLowercase{\leftmark}}}
\makeevenfoot{myheadings}{\footnotesize\thepage}{}{}
\makeoddfoot{myheadings}{}{}{\footnotesize\thepage}
\begin{document}
\pagestyle{myheadings}
Test.
\newpage
Test.
\newpage
Test.
\end{document}
如您所见,第 2 页的线位于页码上方,而第 1 页和第 3 页的线位于另一侧。
我曾尝试添加\makeheadposition{myheadings}{}{}{\flushleft}{\flushright}
,但并没有任何改变。
答案1
我们首先必须加载etoolbox
包并修补定义\makefootrule
:
\usepackage{etoolbox}
\makeatletter
\patchcmd{\makefootrule}
{\hrule\@width #2\@height #3 }
{\rule{#2}{#3}}
{}
{}
\makeatother
然后我们定义\makeheadfootruleprefix
在奇数页中添加所需的空间:
\makeheadfootruleprefix{myheadings}{}{%
\checkoddpage\ifoddpage\hspace*{\dimexpr\textwidth-2cm\relax}\fi}
就这样。
梅威瑟:
\documentclass[twoside]{memoir}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\makefootrule}
{\hrule\@width #2\@height #3 }
{\rule{#2}{#3}}
{}
{}
\makeatother
\copypagestyle{myheadings}{headings}
% add the lines
\makeheadfootruleprefix{myheadings}{}{%
\checkoddpage\ifoddpage\hspace*{\dimexpr\textwidth-2cm\relax}\fi}
\makeheadrule{myheadings}{\textwidth}{\normalrulethickness}
\makefootrule{myheadings}{2cm}{\normalrulethickness}{-4pt}
% header/footer contents
\makeevenhead{myheadings}{\footnotesize\textsc{chapter \thechapter}}{}{}
\makeoddhead{myheadings}{}{}{\footnotesize\textsc{\MakeLowercase{\leftmark}}}
\makeevenfoot{myheadings}{\footnotesize\thepage}{}{}
\makeoddfoot{myheadings}{}{}{\footnotesize\thepage}
\begin{document}
\pagestyle{myheadings}
Test.
\newpage
Test.
\newpage
Test.
\end{document}
输出:
注意我已经调整为\makefootrule
跳过-4pt
\makefootrule{myheadings}{2cm}{\normalrulethickness}{-4pt}
由于\rule
的位置高于\hrule
。