使用 fancyhdr 和 memoir 一侧的页码位置

使用 fancyhdr 和 memoir 一侧的页码位置

我正在尝试为书籍设计一个单面布局memoir(即:每页都应具有相同的左右边距),但我希望页眉和页脚也具有不同的边距:页眉应始终位于左侧,左边距较小,而页码出现在页脚中,对于奇数页应位于最右侧,对于偶数页应位于最左侧。

到目前为止,一切都很好,我能够使用fancyhdr(和ifthenelse包)来模仿这种行为。但是我无法为页码定义原则性的边距:我试图实现的是让左边距等于右边距,就像它们是在双面布局上一样。

以下是我目前编写的代码:

% !TEX encoding = UTF-8 Unicode
\documentclass[oneside]{memoir}
\usepackage{polyglossia}
\setmainlanguage{italian}

\setmainfont{Plantin MT Pro}
\usepackage{anyfontsize}
\usepackage{ragged2e}
\usepackage{titlesec}
\usepackage[head=10mm]{geometry}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\usepackage{showframe}
\usepackage{ifthen}
\usepackage[all]{nowidow}


\let\footruleskip\undefined
\usepackage{fancyhdr}
\newcommand{\footerfont}{\fontsize{9}{10}\selectfont\setmainfont{Founders Grotesk}}
\newcommand{\headerfontii}{\fontsize{7}{8}\selectfont}
\pagestyle{fancy}

\renewcommand{\chaptermark}[1]{\markboth{\uppercase{#1}}{}}
\renewcommand{\sectionmark}[1]{\markright{\uppercase{#1}}}

\fancyhead{}
\fancyheadoffset{16mm}
\fancyfootoffset{17mm}

\renewcommand{\headrulewidth}{0pt}
\fancyfoot{}

\fancyhead[LO]{\ifthenelse{\isodd{\value{page}}}{\colorbox{White}{\raisebox{6mm}[0cm][0cm]{\headerfontii\rightmark}}}{\colorbox{White}{\raisebox{6mm}[0cm][0cm]{\headerfontii\leftmark}}}}

\fancyfoot[L]{\ifthenelse{\isodd{\value{page}}}{}{\colorbox{White}{\raisebox{-23mm}[0cm][0cm]{\footerfont\thepage}}}}
\fancyfoot[R]{\ifthenelse{\isodd{\value{page}}}{\colorbox{White}{\raisebox{-23mm}[0cm][0cm]{\footerfont\thepage}{}}}}


\setstocksize{225mm}{160mm} %Finale
\settrimmedsize{\stockheight}{\stockwidth}{*}
\settrims{0cm}{0cm}
\setlrmarginsandblock{26mm}{42mm}{*}
\setulmarginsandblock{25mm}{42mm}{*}
%\settypeblocksize{152mm}{92mm}
%\setlrmargins{5mm}{*}{*}

%\setlrmargins{*}{*}{1}
\checkandfixthelayout
\fixpdflayout

\title{Italic. Identità Nazionale Regionale, nuovi codici visivi di rappresentazione}
\author{}
\date{} % Delete this line to display the current date

% \markboth{\thesection}{pisello}

%%% BEGIN DOCUMENT
\begin{document}
\fontsize{12}{14.4}\selectfont
\RaggedRight

\end{document}
%%% Local Variables:
%%% mode: xelatex
%%% TeX-master: t
%%% End:

看起来是这样的:你可以看到第一页数字左边的边距小于第二页数字右边的边距。有什么方法可以实现这一点? 在此处输入图片描述

更新:我想要的是让红色边距具有相同的长度(左页较小的边距)并且与绿色边距(即文本边距)不同(这已经通过设置参数实现fancyheadoffset

答案1

这可以作为起点。我们使用一个twoside设置,然后将其欺骗成看起来像oneside布局

\documentclass[a4paper]{memoir}
% just to show they are vastly different
\setlrmarginsandblock{2cm}{4cm}*
\checkandfixthelayout
% trick
\setlength\evensidemargin{\oddsidemargin}
\usepackage{lipsum}

\makepagestyle{m}
\makeoddhead{m}{\leftmark}{}{}
\makeevenhead{m}{\leftmark}{}{}
\makeoddfoot{m}{}{}{\thepage}
\makeevenfoot{m}{\thepage}{}{}

\copypagestyle{n}{m}
\makeoddhead{n}{}{}{}
\makeevenhead{n}{}{}{}

\aliaspagestyle{chapter}{n}

\pagestyle{m}
\begin{document}

\chapter{Test}

\lipsum[1-15]
\end{document}

相关内容