页面侧面的页码

页面侧面的页码

有人能告诉我是否可以在页面侧面标注页码吗?我的意思是奇数页的页码在右侧,偶数页的页码在左侧。

在此处输入图片描述

答案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包...不确定为什么之前会使用它:)

相关内容