尽管这似乎是一个非标准位置,但我想将文档的页码垂直放置在外部页边距的中心 - 即您浏览书籍时通常用拇指放置的位置。
我如何使用 scrbook 实现该功能?据我所知,页码的唯一预定义位置是在页眉和页脚中。
答案1
仅使用 KOMA-Script 工具的另一种解决方案(以及一些低级技巧):
\usepackage{scrpage2}
\pagestyle{scrheadings}
\setlength{\footskip}{0pt}
\rofoot[\centerpageno{o}]{\centerpageno{o}}
\lefoot[\centerpageno{e}]{\centerpageno{e}}
\def\centerpageno#1{\leavevmode
\vbox to 0pt{
\vss
\hbox to 0pt{\Huge\normalfont
\if#1o\kern 2em\else\hss\fi\thepage
\if#1o\hss\else\kern2em\fi}
\vskip.5\textheight
\vskip\baselineskip}}
我使用普通页脚,在其中放入一个零高度框,该框包含一个零宽度框,该框升高到文本块的中心;在其中,页码排版在右侧或左侧移动,取决于我们是在奇数页还是偶数页。
答案2
您可以使用该background
包;一个小例子:
\documentclass[twoside]{scrbook}
\usepackage{background}
\usepackage{ifthen}
\usepackage{lipsum}
\SetBgContents{}
\SetBgAngle{0}
\SetBgColor{black}
\SetBgScale{3}
\makeatletter
\AddEverypageHook{%
\ifthenelse{\isodd{\value{page}}}%
{\SetBgPosition{1.05\textwidth,-.5\textheight}}
{\SetBgPosition{0.3,-.5\textheight}}
\SetBgContents{-\thepage-}
\bg@material%
}
\makeatother
\pagestyle{empty}
\begin{document}
\lipsum[1-30]
\end{document}
答案3
您还可以使用 KOMA-Script 包scrlayer-scrpage
。它是已弃用的包的后继者scrpage2
。
scrlayer-scrpage
使用 layer 来声明 pagestyles。因此,您可以为外边距中的 pagenumber 声明一个新层,并将此层添加到 pagestylescrheadings
和plain.scrheadings
。请注意,加载后scrlayer-scrpage
pagestylescrheadings
已设置,并且 pagestyleplain
被重新定义为 的别名 pagestyle plain.scrheadings
。
\documentclass{scrbook}
\usepackage[automark]{scrlayer-scrpage}
\clearpairofpagestyles
\ohead{\headmark}
\DeclareNewLayer[
background,
outermargin,
height=\textheight,
voffset=1in+\voffset+\topmargin+\headheight+\headsep,
contents={%
\vfill
\ifodd\value{page}\hspace*{.4\layerwidth}\else\hfill\fi
\pagemark
\ifodd\value{page}\else\hspace*{.4\layerwidth}\fi
\vfill
}
]{outermargin.pagenumber}
\AddLayersToPageStyle{scrheadings}{outermargin.pagenumber}
\AddLayersToPageStyle{plain.scrheadings}{outermargin.pagenumber}
\addtokomafont{pagenumber}{\Huge}
\usepackage{blindtext}% <- only for dummy text
\begin{document}
\chapter{Fruits}
\section{Bananas}
\Blindtext[20]
\end{document}
结果是