Graphics LaTeX:如何在每页上制定完整的垂直规则?

Graphics LaTeX:如何在每页上制定完整的垂直规则?,graphics,layout,latex,Graphics,Layout,Latex,我使用的是LaTeX,我想沿着页面的左侧,从上页边距到下页边距,距离页面左边缘0.5英寸。我希望每一页都有这个,所以我假设这意味着它必须以某种方式绑定到页眉或页脚 我没有取得任何进展,因此我需要帮助:(1)制定完整的规则本身;(2)在文档的每一页上自动执行 有人能告诉我怎么做吗?可能有一个乳胶包可以帮你做这件事,但我更喜欢TeX,所以我试着想出一个TeX解决方案(将纯TeX与乳胶混合并不总是最好的主意,但我想我已经成功了) 试试这个。框255是TeX在输出页面之前将页面内容放入的框寄存器。我所做

我使用的是LaTeX,我想沿着页面的左侧,从上页边距到下页边距,距离页面左边缘0.5英寸。我希望每一页都有这个,所以我假设这意味着它必须以某种方式绑定到页眉或页脚

我没有取得任何进展,因此我需要帮助:(1)制定完整的规则本身;(2)在文档的每一页上自动执行


有人能告诉我怎么做吗?

可能有一个乳胶包可以帮你做这件事,但我更喜欢TeX,所以我试着想出一个TeX解决方案(将纯TeX与乳胶混合并不总是最好的主意,但我想我已经成功了)

试试这个。框255是TeX在输出页面之前将页面内容放入的框寄存器。我所做的是采用现有的输出例程,并将其更改为插入框255中:一组0高、0宽、可无限收缩但溢出的框,其中包含一条规则,即页面高度,0.4吨厚,如果幸运的话,可以插入到左侧半英寸处。框255的现有内容随后添加到此规则之后。然后我调用前面的输出例程,该例程输出页面(现在包含一条规则)以及页眉和页脚

\newtoks\oldoutput
\oldoutput=\expandafter{\the\output}%
\output{%
    \setbox255\vbox to 0pt{%
        \hbox to 0pt{%
            \vsize\ht255%
            \vbox to \ht255{%
                \vss
                \hbox to -0.5in{%
                    \hss
                    \vrule height \ht255 width 0.4pt%
                }%
            }\hss
        }\vss
        \box255%
    }%
    \the\oldoutput
}%

将其置于
\begin{document}
命令之前。这可能无法完全解决您的问题,但希望它能让您开始。这是一个学习TeX原语和内置内容的好页面。

我在Latex社区论坛上得到了我的问题的有效答案:

我得到的答案使用了“背景”包和以下代码:

\documentclass{article}
\usepackage{background}
\usepackage{lipsum}% just to generate filler text for the example

\SetBgScale{1}
\SetBgAngle{0}
\SetBgColor{black}
\SetBgContents{\rule{.4pt}{\paperheight}}
\SetBgHshift{-9cm}

\begin{document}

\lipsum[1-90]

\end{document}
非常好用,很容易调整,将一个vrule放在左边距区域,另一个放在右边距区域。

看看包装。根据记忆,您想要的是这样的:

\AddToShipoutPicture{%
    \setlength\unitlength{1in}%
    \AtPageUpperLeft{%
        \put(0.5,\topmargin){\vrule width .5pt height \textheight}%
    }%
}

在你的问题中,你不清楚你是想让这一行跨越文本区域还是整个纸张的高度。根据具体情况,您必须将
\topmargin
\textheight
替换为正确的值,要么替换为
0pt
,要么替换为顶部边距,要么替换为
\paperheight
。如果您尚未使用
几何图形
软件包了解如何控制这些尺寸,请参阅该软件包。

非常感谢。我没能把它写下来。如果我在简单的示例文档中编译它,我会遇到无法调试的错误。奇怪的是,如果我把这段代码放在我已经使用我发布的关于我自己的“背景”解决方案的文档前言中,这段代码会在文本区域的最左边缘放一行(即,在缩进为0的段落的左边缘)。也就是说,它正好沿着textarea的左边缘运行,高度为textheight。如果我注释掉背景行,那么我会再次得到编译错误。我将在将来的某个时候保存此代码以供grok使用。谢谢@赫伯特·西茨:很抱歉,我把
\hss
放在
\vrule
的错误一侧。不确定为什么会出现错误,我觉得你的lipsum测试用例很好用。不确定是什么问题,但你的代码现在运行良好。我想你们的解决方案是专门用来画垂直线的,它的顶部和底部等于“textarea”的顶部和底部。将其修改为页眉区域顶部和页脚区域下方是否容易?如果不是小事,不要担心。再次感谢。@Herbert Sitz:不平凡,这是可以做到的。
\vrule height xxx
可以设置为任何值,
\ht255
仅表示页面的高度(或部分页面,如果弹出时页面未完全填满);无论如何,您的解决方案要优雅得多。