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