答案1
如果您可以使用包,那么scrlayer-scrpage
您fancyhdr
可以定义新的图层并将它们添加到预定义的页面样式中scrheadings
。plain
\documentclass[
% twoside
]{article}
\usepackage{xcolor}
\usepackage{scrlayer-scrpage}
\clearpairofpagestyles
\DeclareNewLayer[
foreground,
oddpage,
align=br,
hoffset=\paperwidth,
voffset=\paperheight,
width=7em,
height=2\baselineskip,
contents={{%
\setlength{\fboxsep}{0pt}%
\colorbox{red!50!black}{\parbox[c][\layerheight][c]{\layerwidth}{\centering\pagemark}}%
}}
]{pagenumberouterbottom.odd}
\DeclareNewLayer[
clone=pagenumberouterbottom.odd,
evenpage,
align=bl,
hoffset=0pt
]{pagenumberouterbottom.even}
\addtokomafont{pagenumber}{\color{white}\bfseries}
\AddLayersToPageStyle{scrheadings}{pagenumberouterbottom.odd,pagenumberouterbottom.even}
\AddLayersToPageStyle{plain}{pagenumberouterbottom.odd,pagenumberouterbottom.even}
\usepackage{blindtext}% only for dummy text
\begin{document}
\blinddocument
\end{document}
请注意,代码中还有偶数页的图层。因此,如果文档是双面的,则页码将位于外边距上。
和twoside
:
答案2
我发现这通过谷歌搜索并尝试了一下。要像这样移动边距(例如页脚较低),您可以使用几何包。
\documentclass{scrbook}
\usepackage{scrlayer-scrpage}
\lefoot{
\hspace{-5em}\pagemark\headmark
}
\rofoot{
\headmark\pagemark\hspace{-5em}
}
\usepackage{lipsum}
\begin{document}
\pagestyle{scrheadings}
\lipsum[1-3]
\newpage
\lipsum[1-3]
\end{document}