ЛАТЕКС: Как сделать полностраничное вертикальное правило на каждой странице?

Я использую ЛАТЕКС, и я хотел бы иметь вертикальное правило вдоль левой стороны страницы, topmargin к bottommargin, в 0.5 дюймах от левого края страницы. Я хочу это на каждой странице, таким образом, я предполагаю, что означает, что она должна так или иначе быть связана с заголовком или нижним колонтитулом?

Я не сделал успехов вообще, таким образом, я нуждаюсь в помощи с (1) созданием самого правила во всю длину и (2) тем, чтобы заставлять это произойти автоматически на каждой странице документа.

Кто-то может сказать мне, как сделать это?

6
задан Herbert Sitz 7 June 2010 в 00:43
поделиться

3 ответа

Я получил рабочий ответ на свой вопрос на форуме Latex Community: http://www.latex-community.org/forum/viewtopic.php?f=5&t=9072&p = 34877 # p34877

В ответе, который я получил, используется пакет 'Background' и этот код:

\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 в область левого поля и одно в область правого поля.

8
ответ дан 9 December 2019 в 22:29
поделиться

Для этого может быть пакет LaTeX, но я больше люблю TeX, поэтому я попытался придумать решение TeX (не всегда лучшая идея смешивать простой TeX с LaTeX, но я думаю, что он у меня работает).

Попробуйте это. Блок 255 - это регистр блока, в который TeX помещает содержимое страницы перед выводом страницы. Я взял существующую процедуру вывода и изменил ее, чтобы вставить в поле 255: бесконечно сжимаемый, но переполняющийся набор полей с нулевой высотой и нулевой шириной, содержащий правило, которое является высотой страницы, 0,4. pt толщиной и, если повезет, на полдюйма влево. Существующее содержимое поля 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 и встроенных вещей.

2
ответ дан 9 December 2019 в 22:29
поделиться

Взгляните на пакет eso-pic . По памяти, то, что вы хотите, будет выглядеть так:

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

В вашем вопросе неясно, хотите ли вы, чтобы линия охватывала текстовую область или всю высоту листа. В зависимости от случая вам необходимо заменить \ topmargin и \ textheight на правильные значения, либо 0pt , либо другое значение вашего верхнего поля, либо на \ paperheight . См. Пакет geometry , если вы еще не используете его, чтобы узнать, как управлять этими размерами.

1
ответ дан 9 December 2019 в 22:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: