pst-abspos 和 afterpage 没有产生我想要的效果:有 aftereverypage 吗?

pst-abspos 和 afterpage 没有产生我想要的效果:有 aftereverypage 吗?

我正在尝试创建一个看起来像打印在带格纸上的文档。我知道我可能可以在 中完成此操作tikZ,但我希望能够在 中完成此操作pstricks

仅当给定页面上的第一个命令是时,absolute包的选项才能正常工作。如果 LaTeX 为我制作分页符,那么我需要一种方法来自动调用它。pst-abspos\pstSetAbsoluteOrigin

为了解决这个问题,我想在每页开头使用。但是,afterpage似乎只对我的文档的第二页有效。 \pstSetAbosluteOriginafterpage

这是我的 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}

在此处输入图片描述

相关内容