2009-12-16 18 views
25

W mojej rozprawie mam słownik wyjaśniający niektóre skróty, których używam. Wkładam to do stołu, aby wyglądał ładniej. Jednak LaTeX nie łamie linii na końcu strony.Automatyczne łamanie linii w tabelach LaTeX

Wiem, że mogłem wymusić łamanie linii w dowolnym punkcie stołu, ale to długi stół (dużo pracy!) I ręczne łamanie linii sprawiają, że tekst wygląda postrzępiony i brzydki. Czy istnieje dobry sposób na to, aby mieć ładny glosariusz lub sprawić, że LaTeX automatycznie przerwie linie w tabeli?

... jeśli LaTeX nie robiłby takich rzeczy co jakiś czas, bardzo by mi się to podobało. Tak jest, ciągle przełączam się pomiędzy uczuciem i złością ...

Odpowiedz

23

spójrz na pakiet longtable. obsługuje łamanie stron automatycznie. http://ctan.org/tex-archive/macros/latex/required/tools/longtable.pdf

+1

przepraszam za downwote, ale moje pytanie dotyczy podziały linii, a nie podziały stron – bastibe

+5

W takim przypadku można powiedzieć: 'begin {longtable} {l> {\ raggedright} p {0,75 \ textwidth}}' , a linie zostaną automatycznie przerwane na krawędzi stołu i na stronie przerwać;) – Mica

+0

Och, nie byłem tego świadomy! Dziękuję Ci! – bastibe

0

Insert po każdym \\ (lub \cr) następujące:

\noalign{\penalty -100 } 

Przykład:

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

Jeśli chcesz użyć reguły po każdym wierszu, a następnie napisać

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

Dlaczego jesteś używając tabeli do swojego słownika? Czy wiesz o pakiecie glossaries? Pozwala tworzyć piękne glosariusze przy minimalnym wysiłku.

Jeśli nadal chcesz użyć tabeli, sugeruję użycie tabularx, która definiuje kolumnę X, która tworzy kolumny o regulowanej szerokości z zawijaniem słów.

Na przykład:

\usepackage{tabularx} 

... 

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

Jesteś moim bohaterem! – bastibe

+0

+1 wydaje się być najprostszym rozwiązaniem – bgw

+2

Znaleźliśmy tę stronę przez Google ... To rozwiązanie sprawdziło się doskonale! –

5

try:

\begin{tabular}{|p{3cm}|p{4cm}|p{4cm}|} 
Long text here & Long text here & Long text here \\ 
\end{tabular} 
Powiązane problemy