我使用几何包来定义(一页)文档的纸张尺寸和文本区域:
\usepackage[
paperwidth=420mm,
paperheight=297mm,
text={365mm,270mm},
centering
]{geometry}
我希望为指定的文本区域设置背景颜色。我用的是这个。
\usepackage{color}
\pagecolor{magenta}
但是,这会为整张纸(420*297 平方毫米)着色,而不仅仅是文本区域(365*270 平方毫米)。
我该如何上色仅有的文本区域?
答案1
您可以使用tikzpagenodes
包裹:
\documentclass{article}
\usepackage{tikzpagenodes}
\usepackage{lipsum}
\usepackage{showframe}
\newcommand\ColorTextArea{%
\begin{tikzpicture}[remember picture,overlay]
\fill[cyan!20]
(current page text area.north west) rectangle (current page text area.south east);
\end{tikzpicture}%
}
\begin{document}
\ColorTextArea
\lipsum[1-3]
\end{document}
该showframe
包仅用于提供一些用于页面布局的框架来帮助可视化。
\ColorTextArea
仅影响调用它的页面。如果希望所有页面均受影响,请使用以下atbegshi
包:
\documentclass{article}
\usepackage{tikzpagenodes}
\usepackage{lipsum}
\usepackage{atbegshi}
\usepackage{showframe}
\newcommand\ColorTextArea{%
\begin{tikzpicture}[remember picture,overlay]
\fill[cyan!20]
(current page text area.north west) rectangle (current page text area.south east);
\end{tikzpicture}%
}
\AtBeginShipout{\ColorTextArea}
\AtBeginShipoutFirst{\ColorTextArea}
\begin{document}
\lipsum[1-40]
\end{document}
答案2
这样,每一页都会自动完成。
\documentclass{article}
\usepackage{everypage}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage{calc}
\AddEverypageHook{\color{blue!20}\smash{\hspace{\oddsidemargin}%
\rule[-\textheight-\headsep-\headheight-\topmargin]{\textwidth}{\textheight}}}
\begin{document}
\lipsum[1-7]
\end{document}
谢谢“Killmargins” 包?用于文本测量的图像。