我正在使用书籍类。我的边距必须在顶部、底部、左侧、右侧均为 3 厘米。我现在的代码如下:
\usepackage[a4paper,left=3cm,right=3cm,top=3cm,bottom=3cm]{geometry} %for margins
\usepackage{fancyhdr} %for page number
\pagestyle{fancy}
\fancyhf{}
\fancyhead[R]{\thepage}
这给了我准确的页边距,并将页码放在右上角,但没有放在指定的正确位置。谢谢你的帮助!
答案1
(1)使用该tikz
包,可以使用绝对页面坐标来定位材料,而不管文本使用的几何形状如何。
只需要一行(\node at ...
)即可将页码定位在距离页面右上角(名为current page.north east
)左上角一定距离的位置。
(严格来说,它将定位包含页码的框的中心)。
\documentclass{book}
\usepackage[a4paper,left=3cm,right=3cm,top=3cm,bottom=3cm]{geometry}
%\newgeometry{a4paper,left=3cm,right=1cm,top=1cm,bottom=3cm, showframe}%USE TEST the numpber position <<<
\usepackage{fancyhdr} %for page number
\pagestyle{fancy}
\fancyhf{}
\fancyhead[R]{\tikz[remember picture,overlay]\node at ([xshift=-1cm, yshift=-1cm] current page.north east){\thepage};}
\usepackage{tikz}% ****** added <<<<
\begin{document}
Some words.
\end{document}
取消注释
\newgeometry{a4paper,left=3cm,right=1cm,top=1cm,bottom=3cm, showframe}
测试页码的位置是否正确。
(2)使用该包也获得了类似的结果eso-pic
。
\documentclass{book}
\usepackage[a4paper,left=3cm,right=3cm,top=3cm,bottom=3cm]{geometry}
%\newgeometry{a4paper,left=3cm,right=1cm,top=1cm,bottom=3cm, showframe}%USE TEST the numpber position <<<
\usepackage{fancyhdr} %for page number
\pagestyle{fancy}
\fancyhf{}
\fancyhead[R]{}
% ************** added <<<<<<<<<<<<<<<<<<<<
\usepackage{eso-pic}
\AddToShipoutPictureFG{%
\put(\paperwidth-1cm,\paperheight-1cm)
{\makebox[0pt][c]{\raisebox{-0.5\height}{\thepage}}}
}
% **************
\begin{document}
Some words.
\end{document}
(3)还有最簡單解决方案,无需使用最近的宏附加包\AddToHook{shipout/foreground}
\documentclass{book}
\usepackage[a4paper,left=3cm,right=3cm,top=3cm,bottom=3cm]{geometry}
%\newgeometry{a4paper,left=3cm,right=1cm,top=1cm,bottom=3cm, showframe}%USE TEST the numpber position <<<
\AddToHook{shipout/foreground}{\put(\paperwidth-1cm,-1cm){% added <<<<<<<<<<<<<<
\makebox[0pt][c]{\raisebox{-0.5\height}{\thepage}}
}}
\usepackage{fancyhdr} %for page number
\pagestyle{fancy}
\fancyhf{}
\fancyhead[R]{}
\begin{document}
Some words.
\end{document}