我正在尝试创建一个看起来像打印在带格纸上的文档。我知道我可能可以在 中完成此操作tikZ
,但我希望能够在 中完成此操作pstricks
。
仅当给定页面上的第一个命令是时,absolute
包的选项才能正常工作。如果 LaTeX 为我制作分页符,那么我需要一种方法来自动调用它。pst-abspos
\pstSetAbsoluteOrigin
为了解决这个问题,我想在每页开头使用。但是,afterpage
似乎只对我的文档的第二页有效。 \pstSetAbosluteOrigin
afterpage
这是我的 MWE:
\documentclass{article}
%--------------------------------------------------------------------------------%
\usepackage{multido}
\usepackage[absolute]{pst-abspos}
\psset{unit=1cm}%
\newcommand{\myrules}{%
\pstSetAbsoluteOrigin%
\pstPutAbs[](0.0,0.0){%
\begin{pspicture}(0,0)(0,0)
\multido{\rx=-2.5+-0.50}{50}{\psline[linecolor=blue!20](0,\rx)(\paperwidth,\rx)}%
\psline[linecolor=red](2.5,0)(2.5,-\paperheight)
\end{pspicture}}}
%--------------------------------------------------------------------------------%
\usepackage{lipsum}
\usepackage{afterpage}
\afterpage{\myrules}
\begin{document}
\lipsum[1-114]
\end{document}
我可以复制这种意外的行为,\afterpage
无论有没有pst-abspos
。\afterpage{Hello World}
但是,我担心我得到的解决方案只能使用如此简单的方法,却不能配合pst-abspos
我尝试的技巧。
编辑
在阅读了无数次文档之后afterpage
,我发现它仅在当前页面之后生效。所以,我想我想要的是更像的东西aftereverypage
。
我知道有一个everypage
包,但是当我使用时\AddEverypageHook{\myrule}
,规则的格式完全错误。
当我使用该everyshi
软件包时,我会在每个页面的顶部获得额外的空间(至少在我看来是这样)。
下面是一个稍微复杂一点的 MWE,它说明了这一点:
\documentclass{article}
\usepackage[margin=1in]{geometry}
%--------------------------------------------------------------------------------%
\usepackage{multido}
\usepackage[absolute]{pst-abspos}
\psset{unit=1cm}%
\newcommand{\myrules}{%
\pstSetAbsoluteOrigin%
\pstPutAbs(0.0,0.0){%
\begin{pspicture}(0,0)(0,0)%
\multido{\dx=-2.5+-\baselineskip}{58}{\psline[linecolor=blue!20](0,\dx)(\paperwidth,\dx)}%
\psline[linecolor=red](2.5,0)(2.5,-\paperheight)%
\end{pspicture}}}
%--------------------------------------------------------------------------------%
\usepackage{lipsum}
\usepackage{everyshi}
\EveryShipout{\myrules}
\begin{document}\myrules%
\lipsum[1-50]
\end{document}
请注意,第一页的页面顶部间距是正确的,但后续页面的间距不正确。规则之间的间距比我实际想要的要小得多。但是,我为最后一个 MWE 选择了这种间距,以帮助显示第一页之后页面顶部出现的不需要的间距。
答案1
这看起来像是软件包的问题everyshi
。以下是解决方案eso-pic
:
\documentclass[a5paper]{article}
\usepackage[margin=1in]{geometry}
%-----------------------------------------------------------%
\usepackage{multido}
\usepackage[notitlepage,relative]{pst-abspos}
\newcommand{\myrules}{%
\pstSetRelativeOrigin(0,0)%
\pstPutAbs(0,0){%
\multido{\dx=-2.5+-\baselineskip}{58}{\psline[linecolor=blue!20,unit=1cm](0,\dx)(\paperwidth,\dx)}%
\psline[linecolor=red,unit=1cm](2.5,0)(2.5,-\paperheight)}}%
%--------------------------------------------------------------%
\usepackage{lipsum}
\usepackage[texcoord]{eso-pic}
\usepackage{showframe}
\AddToShipoutPictureFG{\myrules}
\begin{document}
\lipsum[1-50]
\end{document}