代码之家  ›  专栏  ›  技术社区  ›  Herbert Sitz

如何在每一页上建立一个完整的垂直规则?

  •  6
  • Herbert Sitz  · 技术社区  · 16 年前

    我使用乳胶,我想有垂直的规则,沿着页面的左侧,上页边距下页边距,0.5英寸从页面的左边缘。我希望每一页都有这个,所以我想这意味着它必须以某种方式绑定到页眉或页脚?

    3 回复  |  直到 16 年前
        1
  •  9
  •   Herbert Sitz    16 年前

    我在乳胶社区论坛上得到了一个有效的答案: http://www.latex-community.org/forum/viewtopic.php?f=5&t=9072&p=34877#p34877

    \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放在左边空白区,一个放在右边空白区。

        2
  •  2
  •   dreamlax    16 年前

    有可能是一个乳胶包来为你做这件事,但我是一个得克萨斯人更多,所以我试图拿出一个得克萨斯解决方案(不总是最好的主意,混合纯TeX与乳胶,但我认为我有它的工作)。

    试试这个。框255是TeX在输出页面之前将页面内容放入的框寄存器。我所做的是使用现有的输出例程,并将其更改为插入到框255中:一组0高、0宽、可无限收缩但溢出的框,其中包含一条规则,即页面的高度,0.4pt厚,如果幸运的话,请插入左侧半英寸。然后将框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} 命令。这也许不能完全解决你的问题,但希望它能让你开始。 Here's 这是一个学习TeX原语和内置内容的好页面。

        3
  •  2
  •   Damien Pollet    16 年前

    看一看这个 eso-pic 包裹。根据记忆,你想要的是这样的:

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

    在你的问题中不清楚你是想让这行跨过文本区域还是整个纸张的高度。根据情况,你必须更换 \topmargin \textheight 以正确的值 0pt 或者不管你的最高利润是多少 \paperheight . 看到了吗 geometry 如果您还没有使用它来控制这些维度,请打包。