2009-12-16 20 views
25

En mi disertación, tengo un glosario que explica algunas abreviaturas que uso. Puse esto en una mesa para que se vea mejor. Sin embargo, LaTeX no divide las líneas al final de la página.saltos de línea automatizados en tablas LaTeX

Sé que podría forzar un salto de línea en cualquier punto de la tabla, pero es una tabla larga (¡mucho trabajo!) Y los saltos de línea manuales hacen que el texto se vea irregular y feo. ¿Hay alguna manera de tener un glosario bien parecido o hacer que LaTeX rompa líneas automáticamente en una tabla?

... si LaTeX no hiciera estas cosas de vez en cuando, realmente me encantaría. Tal como está, constantemente cambio de afecto y enojo ...

Respuesta

23

mira el paquete longtable. maneja pausas de páginas automáticamente. http://ctan.org/tex-archive/macros/latex/required/tools/longtable.pdf

+1

Lo siento por la downvote, pero mi pregunta es sobre saltos de línea, no saltos de página – bastibe

+5

en cuyo caso puede decir: 'begin {longtable} {l> {\ raggedright} p {0.75 \ textwidth}}' y sus líneas se romperán automáticamente en el borde de la tabla y en la página romper;) – Mica

+0

¡Oh, no era consciente de eso! ¡Gracias! – bastibe

0

Insertar después de cada \\ (o \cr) lo siguiente:

\noalign{\penalty -100 } 

Ejemplo:

\def\penlt{\noalign{\penalty-100 }} 

\halign{&\hfil\ (#)\ \hfil\cr 
1&2&3\cr \penlt 
1&2&3\cr \penlt 
1&2&3\cr \penlt 
1&2&3\cr \penlt 
1&2&3\cr \penlt 
1&2&3\cr \penlt 
1&2&3\cr \penlt 
1&2&3\cr \penlt 
1&2&3\cr \penlt 
1&2&3\cr \penlt 
1&2&3\cr \penlt 
} 

Si desea utilizar la regla después de cada línea a continuación, escribir

\def\penlt{\noalign{\hrule \penalty-100 \hrule height -.4pt \hrule}} 
54

¿Por qué estás usando una tabla para tu glosario ¿Conoce el paquete glossaries? Te permite crear hermosos glosarios con un mínimo esfuerzo.

Si aún desea utilizar una tabla, le sugiero que utilice tabularx, define el tipo de columna X que crea columnas de ancho ajustable con ajuste de palabra.

Por ejemplo:

\usepackage{tabularx} 

... 

\begin{tabularx}{\textwidth}{ |l|X| } 
    \hline 
    word1 & long definition... \\ 
    \hline 
    word2 & long definition... \\ 
    \hline 
\end{tabularx} 
+1

¡Eres mi héroe! – bastibe

+0

+1 parece la solución más simple – bgw

+2

Encontré esta página a través de Google ... ¡Esta solución funcionó muy bien para mí! –

5

intento:

\begin{tabular}{|p{3cm}|p{4cm}|p{4cm}|} 
Long text here & Long text here & Long text here \\ 
\end{tabular}