将页码自定义为固定浮动框

将页码自定义为固定浮动框

在 latex 书籍文档中,我使用命令 \newgeometry 来使用不同的布局。我的页脚和边距 (marginparwidth、marginparsep)“移动”,如果我使用标准页码,页码也会移动,这很不美观。

我想在文档所有页面的底角使用固定的“浮动”页码框,而不考虑 \newgeometry 设置。我想为我的所有文档的此框指定 (X,Y) 位置,如下所示:

我想要的指定页码框示例

为了复杂化,我希望命令 \thispagestyle{empty} 也可以被理解:如果在页面中指定 \thispagestyle{empty},则不会显示页码框。

答案1

这是有关包的建议scrlayer-scrpage。它使用图层作为页眉和页脚。可以定义新图层并将其添加到页面样式中。

因此,您可以使用两个新图层来显示页码:一个用于奇数页,一个用于偶数页。

在以下示例中,基线中心位于奇数页/偶数页的页面下边框上方 1 厘米处以及外页边距左侧/右侧 2 厘米处。

\documentclass{book}
\usepackage{geometry}
\geometry{top=2cm,bottom=3cm,left=2cm,right=4cm,marginparwidth=2.8cm,marginparsep=1cm}

\usepackage{xcolor}

\usepackage{scrlayer-scrpage}
\clearpairofpagestyles
\addtokomafont{pagenumber}{\LARGE\bfseries}
\renewcommand\pagemark{\fcolorbox{black}{yellow!30}{\usekomafont{pagenumber}\thepage}}

\DeclareNewLayer[
    oddpage,
    background,
    page,
    addheight=-1cm,
    addwidth=-2cm,
    mode=picture,
    contents=\putLR{\makebox[0pt][c]{\pagemark}}
]{pagenumber.odd}
\DeclareNewLayer[
    clone=pagenumber.odd,
    evenpage,
    hoffset=2cm,
    contents=\putLL{\makebox[0pt][c]{\pagemark}}
]{pagenumber.even}

\AddLayersToPageStyle{scrheadings}{pagenumber.odd,pagenumber.even}
\AddLayersToPageStyle{plain}{pagenumber.odd,pagenumber.even}

\usepackage{blindtext}
\usepackage{showframe}
\begin{document}
\chapter{A chapter}
\Blindtext[10]
\clearpage
\thispagestyle{empty}
{\Huge A page with empty page style.\par}
\clearpage
\Blindtext
\newgeometry{top=8cm,bottom=5cm,right=6cm,left=5cm,marginparwidth=2cm,marginparsep=3mm}
\Blindtext[10]
\end{document}

在此处输入图片描述

相关内容