有人能告诉我是否可以在页面侧面标注页码吗?我的意思是奇数页的页码在右侧,偶数页的页码在左侧。
答案1
我按照alexises提出的解决方案,完成了代码。
\documentclass[twoside]{article}
\usepackage{lipsum}
\usepackage{tikz}
\usepackage{fancyhdr}
\fancypagestyle{Plain}{%
\fancyhf{}
\fancyfoot[EC]{%
\begin{tikzpicture}[remember picture,overlay]
\node[xshift=3cm,font=\bfseries] (number) at (current page.west) {\Huge[\thepage]};
\end{tikzpicture}
}%
\fancyfoot[OC]{%
\begin{tikzpicture}[remember picture,overlay]
\node[xshift=-3cm,font=\bfseries] (number) at (current page.east) {\Huge[\thepage]};
\end{tikzpicture}
}%
}
\fancypagestyle{nonums}{%
\fancyhf{}
\fancyfoot[OC]{}
\fancyfoot[EC]{}
}
\pagestyle{Plain}
\begin{document}
\lipsum[1-10]
\lipsum[11-15]
\thispagestyle{nonums}
\lipsum[16-18]
\end{document}
对于没有页码的页面,请\thispagestyle{nonums}
在文档中的适当位置使用。屏幕截图:
之后:
我想要一种不依赖于twoside
选项的方法。tikzpagenodes.sty
这使得这成为可能,因为页码的位置是相对于当前文本块,而不是页面边缘。
\documentclass{article} %% Use [twoside] if needed
\usepackage{lipsum}
\usepackage{tikzpagenodes}
\usepackage{fancyhdr}
\fancypagestyle{Plain}{%
\fancyhf{}
\fancyfoot[C]{%
\ifodd\thepage
\begin{tikzpicture}[remember picture,overlay]
\node[xshift=2cm,font=\bfseries] (number) at (current page text area.east) {\Huge[\thepage]};
\end{tikzpicture}
\else
\begin{tikzpicture}[remember picture,overlay]
\node[xshift=-2cm,font=\bfseries] (number) at (current page text area.west) {\Huge[\thepage]};
\end{tikzpicture}
\fi
}%
}
\fancypagestyle{nonums}{%
\fancyhf{}
\fancyfoot[C]{}
}
\pagestyle{Plain}
\begin{document}
\lipsum[1-10]
\lipsum[11-15]
\thispagestyle{nonums}
\lipsum[16-18]
\end{document}
以下是非输出twoside
:
输出如下twoside
:
答案2
您应该考虑TikZ
使用fancyhdr
\fancypagestyle{plain}{%
\fancyhf{}
\fancyfoot[EC]{%
\begin{tikz}[overlay]
\node[font=\textbf,xshift=0.5cm] (number) at (current page.west) {\[~\thepage~\]}
\end{tikz}
}%
\fancyfoot[OC]{%
\begin{tikz}[overlay]
\node[font=\textbf,xshift=0.5cm] (number) at (current page.east) {\[~\thepage~\]}
\end{tikz}
}%
}
答案3
另一种方法是使用背景包。从手册中窃取一点,你可以得到:
(我只能在奇数页旁边显示偶数页......)
使用 LaTeX 来实现这个功能相当简单:
\documentclass{article}
\usepackage{lipsum}
\usepackage[pages=all,color=black,opacity=1,scale=4,contents={},angle=0,%
contents={}]{background}
\usepackage{ifthen}
\AddEverypageHook{\ifthenelse{\isodd{\value{page}}}%
{\backgroundsetup{position={0,-0.15\textheight}, contents={[\thepage]}}}%
{\backgroundsetup{position={0.34\textwidth,-0.15\textheight}, contents={[\thepage]}}}%
\BgMaterial%
}
\pagestyle{empty}
\begin{document}
\lipsum\lipsum\lipsum\lipsum
\end{document}
\fbox
页码的放置有点杂乱,可以改进。我不太喜欢 [x] 的页码格式,但对于这个,我遵循了 OP。我更喜欢灰色的 -x-。在等中输入数字也不难。
最后,我应该说我在这里有点作弊,因为在幕后background
使用,所以这与@alexises 已经发布的解决方案类似。tikz
编辑
如果您想要删除某些页面的页码,那么您可以通过以下修改并将其放在\PageNumberfalse
您不需要页码的页面上来实现(这只对一页有效):
\documentclass{article}
\usepackage{lipsum}
\usepackage[pages=all,color=black,opacity=1,scale=4,contents={},angle=0,%
contents={}]{background}
\newif\ifPageNumber\PageNumbertrue
\AddEverypageHook{%
\ifPageNumber%
\ifodd\value{page}%
\backgroundsetup{position={0,-0.15\textheight}, contents={[\thepage]}}%
\else%
\backgroundsetup{position={0.34\textwidth,-0.15\textheight}, contents={[\thepage]}}%
\fi
\BgMaterial%
\fi\global\PageNumbertrue% by default number all pages
}
\pagestyle{empty}
\begin{document}
\lipsum\lipsum\PageNumberfalse\lipsum\lipsum
\end{document}
(为了保险起见,我放弃使用该ifthen
包...不确定为什么之前会使用它:)