\tabular
i \array
) -- na lepsze. Wskazane jest dołączenie pakietu
w przypadku używania środowisk:
tabular
, array
, tabularx
, longtable
i supertabular
.
Definicja nowego typu kolumny:
\newcolumntype{x }[n ]{preambuła }
gdzie
#1
#2
, ...),
W specyfikacji makropolecenia \newcolumntype
oraz w definicji
preambuły tablicy mogą być użyte następujące określenia (w preambule tablicy
może znaleźć się oczywiście nowy, zdefiniowany poleceniem
\newcolumntype
typ).
l | dosunięcie tekstu do lewej |
r | dosunięcie tekstu do prawej |
c | centrowanie |
m{width } | Definiuje kolumnę o szerokości
width .
Środek celi tej kolumny (połowa wysokości) pokrywa się
ze środkiem celi kolumny sąsiedniej
(porównaj; cela bieżąca i sąsiednia). Odpowiednik:
\parbox{width } ; tekst jest łamany
na szerokości width . |
p{width } | Równoważna:
\parbox[t]{width } .
Pozycjonowanie w/g szczytu celi. |
b{width } | Równoważna
\parbox[b]{width } .
Pozycjonowanie w/g dołu celi. |
>{macro } | Może być użyta przed jednym z
następujących typów: l , r ,
c , p , m lub
b .
polecenie macro będzie wykonywana zawsze
przed rozpoczęciem cel w tak określonej
kolumnie. |
<{macro } | Może być użyta po jednym z
następujących typów: l , r ,
c , p , m lub
b .
Polecenie macro będzie wykonywana zawsze
po zakończeniu
cel w tak określonej kolumnie. |
| | Wstawienie linii pionowej jako separatora kolumn; odległość między kolumnami zostanie zwiększona o szerokość linii (w odróżnieniu od oryginalnej definicji tabeli). |
@{macro } | Może być użyte w dowolnym
miejscu preambuły zamiast | .
Polecenie macro zostanie wywołane między
kolumnami (kasuje normalną
odległość między kolumnami). |
!{macro } | Może być użyte w dowolnym
miejscu preambuły zamiast
| .
Polecenie macro zostanie wywołane
między odpowiednimi kolumnami (w odróżnieniu od
oryginalnej
makroinstrukcji @{...} nie kasuje normalnej
odległości między kolumnami). |
*{n }{decl } |
n -- krotne powtórzenie
decl ; gdzie
decl jest ciągiem poprzednio określonych
parametrów. Np.
*{3}{c} oznacza trzy kolumny centrowane. |
Parametry którymi można regulować sposób budowania tabeli:
Polecenie | opis |
---|---|
\arraycolsep | połowa szerokości odstępu między kolumnami
tablicy w środowisku matematycznym (array )
(domyślnie 5pt) |
\tabcolsep | połowa szerokości odstępu między kolumnami tablicy (domyślnie 6pt) |
\arrayrulewidth | szerokość pionowej linii separującej kolumny (o ile jest używana -- domyślnie 0.4pt) |
\doublerulesep | odległość między dwoma liniami pionowymi stanowiącymi separator kolumn (domyślnie 2pt) |
\arraystretch | ,,mnożnik'' odstępu między
wierszami tablicy
(np.
\renewcommand{\arraystretch}{1.5}
zwiększa odstęp o 50%) |
\extrarowheight | dodatkowy odstęp między liniami (domyślnie 0pt) |
Uwaga
Niektóre polecenia (np. \raggedright
) zmieniają definicje
polecenia \\
; tak więc specyfikacja
typu ostatniej kolumny jako:
>{\raggedleft}p{20mm}
może spowodować błąd. Możemy temu zapobiec definiując makroinstrukcję
odtwarzającą definicję polecenia \\
\newcommand{\PreserveBackslash}[1]%
{\let\temp=\\#1\let\\=\temp}
\let\PBS=\PreserveBackslash
Argumentem pierwszego polecenia jest inne polecenie. Przed jego
wykonaniem jest wykonywane makropodstawienie definicji \\
na zmienną \temp
,
następnie wykonanie polecenia i odtworzenie poprzedniej definicji
\\
z zachowanej zmiennej \temp
.
Drugie polecenie utożsamia dla wygody
(krótsza nazwa) zmienną \PBS
z utworzonym poleceniem \PreserveBackslash
. Poprawna definicja
ostatniej kolumny będzie wyglądała teraz następująco:
>{\PBS\raggedleft}p{20mm}
Uwaga:
W związku z realizacją tabeli występuje efekt uboczny ---
blokowane jest przenoszenie wyrazów (hyphenation) dla pierwszego
wyrazu w celi. Efekt możemy skompensować
wstawiając pustą przestrzeń o długości 0pt na początku celi
(wykorzystując możliwości formowania preambuły tabeli) np.
>{\PBS\raggedleft\hspace{0pt}}p{20mm}
Pakiet jest dostępny standardowo w dystrybucjach LaTeX, a także
pod adresem:
ftp://ftp.gust.org.pl/TeX/macros/latex/required/tools/array.dtx