Tworzę raport w LaTeX, który obejmuje kilka tabel. Utknąłem na tym, ponieważ dane mojej komórki w tabeli przekraczają szerokość strony. Czy mogę w jakiś sposób owinąć tekst, aby znalazł się w następnym wierszu w tej samej komórce tabeli?
Czy ma to jakiś związek z szerokością stołu? Ale czy przekracza to szerokość strony, czy to coś zmieni?
Odpowiedzi:
Użyj p {szerokość} dla specyfikatorów kolumn zamiast l / r / c.
źródło
\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}}
W zwykłym
tabular
środowisku chcesz używaćp{width}
typu kolumny, jak wskazuje marcog. Ale to zmusza cię do podania wyraźnych szerokości.Innym rozwiązaniem jest
tabularx
środowisko:Wszystkie kolumny X mają tę samą szerokość. Możesz na to wpłynąć, ustawiając
\hsize
w deklaracji formatu:ale potem wszystkie czynniki muszą sumować się do 1, jak sądzę (wziąłem to od towarzysza LaTeXa). Istnieje również pakiet,
tabulary
który dostosuje szerokości kolumn w celu zrównoważenia wysokości wierszy. Aby uzyskać szczegółowe informacje, możesz uzyskać dokumentację dla każdego pakietu za pomocątexdoc tabulary
(w TeXlive).źródło
Inną opcją jest wstawienie minipage w każdej komórce, w której pożądane jest zawijanie tekstu, np .:
źródło
itemize
listy w moich komórkach.\columnwidth
: Kiedy spróbowałem, wydawało się, że ma ona większą szerokość tabeli niż szerokość kolumny, więc musiałem ustawić proporcję manualną,0.2\columnwidth
aby uzyskać rozsądną szerokość.Podoba mi się prostota
tabulary
pakietu:W tym przykładzie ustawiasz całą szerokość tabeli w odniesieniu do \ textwidth. Np. 0,4. Następnie reszta jest automatycznie wykonywana przez pakiet.
Większość przykładów pochodzi z http://en.wikibooks.org/wiki/LaTeX/Tables .
źródło
Prosty jak kawałek ciasta!
Można zdefiniować nowy typ kolumny podobne (
L
w tym przypadku), podczas gdy utrzymanie obecnego wyrównanie (c
,r
lubl
):źródło
Jeśli chcesz zawinąć tekst, ale zachować wyrównanie, możesz owinąć tę komórkę w środowisku
minipage
lubvarwidth
(zmienność pochodzi z pakietu zmienności). Szerokość będzie „tak szeroka, jak jej zawartość, ale nie szersza niż X”. Możesz utworzyć niestandardowy typ kolumny, który działa jak „p {xx}”, ale zmniejsza się w celu dopasowania, używającktóre mogą wymagać
array
pakietu. Następnie, gdy użyjesz czegoś takiego jak\begin{tabular}{llM{2in}}
pierwsze dwie kolumny, będziemy normalnie wyrównani do lewej, a trzecia kolumna będzie normalnie wyrównana do lewej, ale jeśli będzie szersza niż 2 cale, tekst zostanie zawinięty.źródło
Aby zmienić tekst
AB
naA \r B
w komórce tabeli, umieścić to w pozycji komórek:\makecell{A \\ B}
.Zanim to zrobisz, musisz również dołączyć pakiet
makecell
.źródło
źródło