是否有办法使用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 则意味着数字就在文本块外面。