使用 fancyhdr 将页码置于文本块外部(水平)

使用 fancyhdr 将页码置于文本块外部(水平)

是否有办法使用fancyhdr包将页码定位在文本块外面(水平移动),如下所示?

我曾尝试用它\hspace来控制它的位置,但没有任何成功。

请参阅以下 MWE。

% !TEX TS-program = xelatex
\documentclass[a4paper,openright]{book}

\usepackage{blindtext}
\usepackage[showframe]{geometry}
    \geometry{hmargin=1.5in,bmargin=1.5in,tmargin=1.5in,centering}

\usepackage{fancyhdr}
%%% Page Styles
% Front Matter
\fancypagestyle{fancyFrontMatter}[fancy]{%
    \fancyhf{}
    \fancyfoot[LE,RO]{\thepage}
    \renewcommand{\headrulewidth}{0pt}}
% Main Matter
\fancypagestyle{fancyMainMatter}[fancy]{%
    \fancyhf{}
    \fancyfoot[LE]{\thepage}
    \fancyfoot[RO]{\thepage}
    \renewcommand{\headrulewidth}{.75pt}}
% Reset plain style for chapter pages
\fancypagestyle{plain}{%
    \fancyhf{} 
    \fancyfoot[LE,RO]{\thepage} % same placement as with page style "fancy"
    \renewcommand{\headrulewidth}{0pt}}


\begin{document}
    \pagestyle{fancyFrontMatter}
    \tableofcontents
    
    \pagestyle{fancyMainMatter}
    \blinddocument
\end{document}

答案1

只需将负空间放置在外边缘即可:

在此处输入图片描述

\documentclass[a4paper,openright]{book}

\usepackage{blindtext}
\usepackage[showframe]{geometry}
    \geometry{hmargin=1.5in,bmargin=1.5in,tmargin=1.5in,centering}

\usepackage{fancyhdr}
%%% Page Styles
% Front Matter
\fancypagestyle{fancyFrontMatter}[fancy]{%
    \fancyhf{}
    \fancyfoot[LE]{\hspace*{-1cm}\thepage}
    \fancyfoot[RO]{\thepage\hspace*{-1cm}}
    \renewcommand{\headrulewidth}{0pt}}
% Main Matter
\fancypagestyle{fancyMainMatter}[fancy]{%
    \fancyhf{}
    \fancyfoot[LE]{\hspace*{-1cm}\thepage}
    \fancyfoot[RO]{\thepage\hspace*{-1cm}}
    \renewcommand{\headrulewidth}{.75pt}}
% Reset plain style for chapter pages
\fancypagestyle{plain}{%
    \fancyhf{} 
    \fancyfoot[LE]{\hspace*{-1cm}\thepage}
    \fancyfoot[RO]{\thepage\hspace*{-1cm}}
    \renewcommand{\headrulewidth}{0pt}}


\begin{document}
    \pagestyle{fancyFrontMatter}
    \tableofcontents
    
    \pagestyle{fancyMainMatter}
    \blinddocument
\end{document}

请注意,测量的是数字的外边缘,因此原始的 0pt 会将其保留在文本块内,而不像红色箭头,如果设置为 0pt 则意味着数字就在文本块外面。

相关内容