Zastaw ciekawych makroinstrukcji
Author: Włodzimierz Macewicz
Keywords: tex, latex, makroinstrukcje, pakiety makroinstrukcji, Wirtualna Akademia

## longtable

Pakiet definiuje środowisko `longtable` pozwalające na budowę tabel (p. też. ltxtable i ltabptch) o długości większej niż strona (konstrukcja `longtable` blokuje umieszczenie tekstu definiowanego przez `\afterpage{...}` oraz umieszczanie rysunków na stronie zawierającej kontynuację tabeli.). Aby zapewnić jednakowe szerokości tych samych kolumn na wszystkich stronach, wymagana jest dwukrotna kompilacja (dwa przebiegi TeX'a).

Parametr/polecenie | opis
--- | ---
`\setlongtables` | polecenie które należy wykonać przed każdą tablicą mającą mieć różne szerokości kolumn niż poprzednia (w szczególności przed pierwszą tablicą)
`\LTleft` | przestrzeń z lewej strony tablicy (wartość standardowa `\fill`)
`\LTright` | przestrzeń z prawej strony tablicy\footnote{% Z wartości parametrów można wywnioskować że tablica standardowo jest zawsze wycentrowana.} (wartość standardowa `\fill`)
`\LTpre` | przestrzeń powyżej tablicy (wartość standardowa `\bigskipamout`)
`\LTpost` | przestrzeń poniżej tablicy (wartość standardowa `\bigskipamout`)
`\LTchunksize` | liczba wierszy (wartość standardowa 20)
`\LTcapwidth` | szerokość łamania podpisu tabeli (wartość standardowa 4in)
opcje polecenia `\begin{longtable}`
| tabela jest pozycjonowana wg zmiennych `\LTleft` i `\LTright`
`[c]` | tabela jest centrowana
`[l]` | tabela jest dosunięta do lewego marginesu
`[r]` | tabela jest dosunięta do prawego marginesu
polecenia wewnątrz tabeli
`\endhead` | koniec definicji nagłówka (pierwszych wierszy) na kolejnych stronach
`\endfirsthead` | koniec definicji nagłówka tabeli (pierwszech wierszy) na pierwszej stronie; jeśli definicja nie wystąpi nagłówek będzie taki, jaki został zdefiniowany przez `\endhead`
`\endfoot` | koniec definicji zamknięcia tabeli (ostatnich wierszy tabeli) na kolejnych stronach
`\endlastfoot` | koniec definicji zamknięcia tabeli (ostatnich wierszy tabeli) na końcu (jeśli nie wystąpi, brana jest definicja określona przez polecenia `\endfoot`)
`\kill` | polecenie powodujące że wiersz nie będzie drukowany; służy do tego żeby określić szerokość cel tabeli na podstawie najszerszej celi; np można zdefiniować wiersz złożony z najszerszych cel w poszczególnych kolumnach i zakończyć go poleceniem `\kill`; analogia do środowiska `tabbing`.
`\caption{...}` | definicja podpisu tabeli
`\caption[xxx]{...}` | xxx określa tekst, który znajdzie się w spisie tabel (pusta definicja `[]` spowoduje że w spisie tabel nie będzie informacji o tej tabeli)
`\caption*{...}` | definicja podpisu tabeli, bez umieszczania informacji o tabeli w spisie tabel
`\newpage` | wymuszenie zmiany strony

Przykład definicji tabeli (używane są kopnstrukcje pakietu hhline)

    \setlongtables
    \begin{longtable}{||l|p{5cm}||}
    \hhline{|t:==:t|}
    \multicolumn{2}{||c||}{początek}\\
    \hhline{|:==:|}
    1-f & 2-f\\
    \hhline{|:==:|}
    \endfirsthead
    \hhline{|t:==:t|}
    1-n & 2-n\\
    \hhline{|:==:|}
    \endhead
    \hhline{|:==:|}
    x-n & y-n\\
    \hhline{|b:==:b|}
    \endfoot
    \hhline{|:==:|}
    x-l & y-l\\
    \hhline{|:==:|}
    \multicolumn{2}{||c||}{koniec}\\
    \hhline{|b:==:b|}
    \endlastfoot
    aqq & bqq\\
    \hhline{||-|-||}
    aqq & bqq\\
    \hhline{||-|-||}
    aqq & bqq\\
    \hhline{||-|-||}
    aqq & bqq\\
    \hhline{||-|-||}
    aqq & bqq\\
    \hhline{||-|-||}
    aqq & bqq\\
    \hhline{||-|-||}
    aqq & bqq\\
    \end{longtable}
| i efekt definicji |

Nagłówki należy definiować za pomocą przewidzianych konstrukcji (nawet jeśli składają się tylko z pojedynczej linii), w przeciwnym wypadku może się zdarzyć złamanie strony zaraz po pierwszej linii (lub przed ostatnią).

Pakiet posiada następujące opcje:

`errorshow`
`pausing`
`set`
`final`

Włodzimierz Macewicz

Ostatnie zmiany: 05.05.2014.