Ich erstelle einen Bericht in LaTeX, der einige Tabellen enthält. Ich bleibe dabei, da meine Zellendaten in der Tabelle die Breite der Seite überschreiten. Kann ich den Text irgendwie so umbrechen, dass er in die nächste Zeile in derselben Zelle der Tabelle fällt?
Hat es etwas mit der Breite des Tisches zu tun? Aber macht es einen Unterschied, wenn die Seitenbreite überschritten wird?
Antworten:
Verwenden Sie p {width} für Ihre Spaltenspezifizierer anstelle von l / r / c.
quelle
\begin{tabular}{p{1cm}p{3cm}}
begin{tabular}{lp{<whatever is left to fill the line width>}}
p{0.2\linewidth}p{0.6\linewidth}}
In der regulären
tabular
Umgebung möchten Sie denp{width}
Spaltentyp verwenden, wie Marcog angibt. Das zwingt Sie jedoch dazu, explizite Breiten anzugeben.Eine andere Lösung ist die
tabularx
Umwelt:Alle X-Spalten haben die gleiche Breite. Sie können dies beeinflussen, indem Sie
\hsize
in der Formatdeklaration Folgendes festlegen:aber dann müssen sich wohl alle Faktoren zu 1 summieren (ich habe dies dem LaTeX-Begleiter entnommen). Es gibt auch das Paket, mit
tabulary
dem die Spaltenbreiten angepasst werden, um die Zeilenhöhen auszugleichen. Für die Details erhalten Sie die Dokumentation für jedes Paket mittexdoc tabulary
(in TeXlive).quelle
Eine andere Möglichkeit besteht darin, in jede Zelle, in der ein Textumbruch gewünscht wird, eine Minipage einzufügen, z.
quelle
itemize
Listen in meine Zellen einfügen.\columnwidth
: Als ich es versuchte, schien es eher eine Tabellenbreite als eine Spaltenbreite zu sein, also musste ich ein manuelles Verhältnis festlegen0.2\columnwidth
, um eine angemessene Breite zu erhalten.Ich mag die Einfachheit des
tabulary
Pakets:Im Beispiel ordnen Sie die gesamte Breite der Tabelle in Bezug auf \ textwidth an. ZB 0,4 davon. Der Rest erledigt dann automatisch das Paket.
Der größte Teil des Beispiels stammt von http://en.wikibooks.org/wiki/LaTeX/Tables .
quelle
Einfach wie ein Stück Kuchen!
Sie können einen neuen Spaltentyp wie (definieren
L
in diesem Fall) , während die aktuelle Ausrichtung beibehalten wird (c
,r
oderl
):quelle
Wenn Sie Ihren Text umbrechen möchten, aber die Ausrichtung beibehalten möchten, können Sie diese Zelle in eine
minipage
oder einevarwidth
Umgebung einschließen (varwidth stammt aus dem varwidth-Paket). Die Varwidth ist "so breit wie der Inhalt, aber nicht breiter als X". Sie können einen benutzerdefinierten Spaltentyp erstellen, der sich wie "p {xx}" verhält, jedoch mithilfe von "verkleinert" wirddas kann das
array
Paket erfordern . Wenn Sie dann so etwas wie\begin{tabular}{llM{2in}}
die ersten beiden Spalten verwenden, sind wir normal linksbündig und die dritte Spalte ist normal linksbündig, aber wenn sie breiter als 2 Zoll wird, wird der Text umbrochen.quelle
Um den Text
AB
inA \r B
eine Tabellenzelle zu ändern , platzieren Sie diesen an der Zellenposition :\makecell{A \\ B}
.Zuvor müssen Sie auch das Paket einschließen
makecell
.quelle
quelle