2010-06-06 25 views
6

Estoy usando LaTeX y me gustaría tener una regla vertical a lo largo del lado izquierdo de la página, de arriba a abajo, 0,5 pulgadas desde el borde izquierdo de la página. Quiero esto en cada página, así que supongo que eso significa que de alguna manera debe estar vinculado al encabezado o al pie de página.LaTeX: ¿Cómo hacer una regla vertical de página completa en cada página?

No he progresado en absoluto, así que necesito ayuda para (1) hacer la regla de longitud completa y (2) hacer que suceda automáticamente en cada página del documento.

¿Alguien me puede decir cómo hacerlo?

Respuesta

7

me dieron una respuesta de trabajo a mi pregunta en el foro de látex Comunidad: http://www.latex-community.org/forum/viewtopic.php?f=5&t=9072&p=34877#p34877

La respuesta que obtuve utiliza el paquete de 'Antecedentes' y este código:

\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} 

funciona muy bien y era fácil ajústelo para poner una vrúgula en el área del margen izquierdo y una en el área del margen derecho.

2

Podría haber un paquete LaTeX para hacer esto por usted, pero yo soy más una persona TeX, así que traté de encontrar una solución TeX (no siempre la mejor idea para mezclar TeX simple con LaTeX pero yo creo que lo tengo funcionando).

Pruebe esto. El recuadro 255 es el registro de recuadro al que TeX coloca los contenidos de la página antes de que se emita la página. Lo que hice fue tomar la rutina de salida existente, y la cambié para insertarla en la casilla 255: un conjunto de cajas infinitamente contraíble pero desbordante de 0 de altura, 0 de ancho que contiene una regla que es el alto de la página, 0.4 pt grueso y con un poco de suerte, a media pulgada de distancia a la izquierda. El contenido existente de la casilla 255 se agrega después de esta regla. Luego llamo a la rutina de salida anterior que genera la página (que ahora incluye una regla), y también a los encabezados y pies de página.

\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 
}% 

Ponlo antes de tu \begin{document} comando. Es posible que esto no resuelva tu problema por completo, pero espero que te ayude a empezar. Here's una gran página para aprender sobre primitivas TeX y cosas incorporadas.

+0

Muchas gracias. No pude lograr que funcionara como estaba escrito. Si lo compilé en un simple ejemplo de documento, obtuve errores que no pude depurar. Extrañamente, si pongo este código en el preámbulo del documento donde ya estaba usando la solución de "fondo" que publiqué sobre mí mismo, este código pone una línea en el extremo izquierdo del área de texto (es decir, en el borde izquierdo del párrafo con sangría) de 0). Es decir, se ejecuta exactamente a lo largo del borde izquierdo del área de texto, con altura de altura de texto. Si hago un comentario sobre las líneas de fondo, nuevamente obtengo errores de compilación. Guardaré este código para grok en algún momento futuro. ¡Gracias! –

+0

@Herbert Sitz: Lo siento, puse el '\ hss' en el lado incorrecto de' \ vrule'. No estoy seguro de por qué está recibiendo errores, funciona bien para mí en su caso de prueba de lipsum. – dreamlax

+0

No estoy seguro de qué problema era, pero su código está funcionando bien ahora. Supongo que su solución está especialmente diseñada para dibujar una línea vertical que tenga la parte superior e inferior igual a la parte superior e inferior de 'textarea'.¿Sería fácil modificarlo para que suba al área del encabezado y debajo del área del pie de página? Si no es trivial, no te preocupes por eso. Gracias de nuevo. –

1

Eche un vistazo al paquete eso-pic. De memoria, lo que quiere se vería así:

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

No está claro en su pregunta si desea que la línea para abarcar el área de texto o toda la altura del papel. Dependiendo del caso, debe reemplazar \topmargin y \textheight por los valores correctos, ya sea 0pt o cualquiera que sea su margen superior, o por \paperheight. Consulte el paquete geometry si todavía no lo usa para saber cómo controlar esas dimensiones.

Cuestiones relacionadas