Przejdź do treści

array, tabularx, longtable i tabulary w Scissor LaTeX

Pakiety array i tabularx oraz pokrewne działają w Scissor LaTeX częściowo: tabele tabularx, tabulary, longtable i xltabular składają się jak tabular, a długie komórki są zawijane, gdy tabela byłaby szersza niż wiersz; szerokości kolumn (p{3cm}, X, szerokość tabeli) i kod >{...}/<{...} są ignorowane, \newcolumntype jest nieznane, a nagłówki longtable się nie powtarzają.

Do czego służą pakiety

  • array dodaje typy kolumn, takie jak m{width} i b{width}, kod przed każdą komórką i po niej za pomocą >{...} i <{...} oraz \newcolumntype do własnych liter kolumn.
  • tabularx daje \begin{tabularx}{\textwidth}{lX}, gdzie kolumny X rozciągają się tak, by tabela miała podaną szerokość. tabulary robi to samo z kolumnami L, C, R, J, które dzielą szerokość według zawartości.
  • longtable pozwala tabeli przechodzić przez kilka stron, z powtarzanym nagłówkiem (\endhead). xltabular łączy longtable i tabularx.

Co tu działa

FunkcjaW Scissor LaTeXUwagi
tabularx, tabulary, xltabular, longtable, tabular*CzęściowoSkładane jak tabular. Argument całkowitej szerokości jest ignorowany.
Kolumny X, L, C, R, JCzęściowoX i L są wyrównane do lewej, C wyśrodkowane, R wyrównane do prawej.
p{3cm}, m{3cm}, b{3cm}CzęściowoWyrównane do lewej; szerokość jest ignorowana.
Długi tekst w komórceDziałaZawijany, gdy tabela byłaby inaczej szersza niż wiersz.
>{\bfseries}l, r<{\%}PomijaneKod przed komórkami i po nich jest ignorowany.
\newcolumntype{C}{...}NieobsługiwanePomijane z uwagą na karcie Problemy, a jego definicja jest wypisywana jako tekst. Zamiast tego zapisz typ kolumny w pełnej postaci.
\endhead, \endfirsthead, \endfoot, \endlastfootPomijaneDługa tabela przechodzi na kolejne strony, ale jej nagłówek nie jest powtarzany.
\tabularnewlineDziałaTo samo co \\.
\arraybackslashNieobsługiwanePomijane z uwagą na karcie Problemy; poza tym nieszkodliwe.

Przykłady

Tabela tabularx z rozciągającą się kolumną. Długi tekst zawija się na krawędzi tekstu, tak jak w instalacji TeX:

tabularx z kolumną X

LaTeXPreambuła: \usepackage{tabularx}Otwórz w edytorze (otwiera się w nowej karcie)
\begin{tabularx}{\textwidth}{lX}
\hline
Name & Notes \\
\hline
Erika Mustermann & Leads the project, writes the reports and checks
  every one of the 44 measurements twice before they are published. \\
John Doe & Builds the test setup. \\
\hline
\end{tabularx}
Złożone przez Scissor LaTeX: tabularx z kolumną X

longtable z wierszem nagłówka. Tabela się składa; w długim dokumencie nagłówek nie powtórzyłby się na następnej stronie:

longtable z \endhead

LaTeXPreambuła: \usepackage{longtable}Otwórz w edytorze (otwiera się w nowej karcie)
\begin{longtable}{lr}
\hline
Item & Count \\
\hline
\endhead
Pencils & 44 \\
Erasers & 12 \\
Rulers  & 7 \\
\hline
\end{longtable}

Kod w >{...} jest ignorowany, więc ta kolumna nie jest pogrubiona, a znaków procentu brakuje:

>{...} i <{...} są ignorowane

LaTeXPreambuła: \usepackage{array}Otwórz w edytorze (otwiera się w nowej karcie)
\begin{tabular}{>{\bfseries}l r<{\,\%}}
Growth & 44 \\
Share  & 12 \\
\end{tabular}

Zamiast tego wpisz formatowanie do komórek. Działa to tutaj i w instalacji TeX:

Formatowanie wpisane do komórek

\begin{tabular}{lr}
\textbf{Growth} & 44\,\% \\
\textbf{Share}  & 12\,\% \\
\end{tabular}

Zgodność

  • Z instalacji TeX do Scissor LaTeX: tabele się składają i zachowują wyrównanie, ale nie szerokości kolumn. Szukaj własnych liter kolumn z \newcolumntype.
  • Ze Scissor LaTeX do instalacji TeX: dokumenty kompilują się tam bez zmian, a szerokości są tam stosowane.

Pełne dokumentacje są dostępne w CTAN: ctan.org/pkg/array, ctan.org/pkg/tabularx, ctan.org/pkg/tabulary, ctan.org/pkg/longtable oraz ctan.org/pkg/xltabular. O tabelach ogólnie przeczytasz na stronie Tabele w LaTeX.

Zobacz też Tabele, multirow, booktabs oraz generator tabel LaTeX.

Pytania i odpowiedzi

Dlaczego moja kolumna p{3cm} nie ma szerokości 3 cm?

Szerokości kolumn nie są jeszcze stosowane. Długi tekst nadal zawija się na krawędzi tekstu, więc tabela mieści się na stronie.

Czy longtable przechodzi na kolejne strony?

Tak, długa tabela jest kontynuowana na następnej stronie, ale wiersze oznaczone \endhead nie są tam powtarzane.

Każdy przykład na tej stronie jest składany przez Scissor LaTeX podczas budowania witryny. Ostatnia aktualizacja: 2026-11-07.