Pakiet definiuje �rodowisko blockarray zast�puj�ce �rodowiska
tabular i array (wewn�trz trybu matematycznego zachowuje si�
jak array, a w trybie tekstowym jak tabular).
Posta� wywo�ania jest podobna jak w przypadku ww. konstrukcji.
\begin{blockarray}{preambu�a}
zawarto�� tabeli
\end{blockarray}
lub
\begin{blockarray}[s]{preambu�a}
zawarto�� tabeli
\end{blockarray}
gdzie s okre�la spos�b pozycjonowania tabeli wzgl�dem
s�siedztwa; mo�e przyjmowa� warto�ci: c -- center (warto�� domy�lna),
b -- d� tabeli r�wno z lini� s�siedni�, t -- g�ra tabeli
r�wno z lini� s�siedni�
preambu�a definiuje spos�b prezentacji (sk�adu)
poszczeg�lnych kolumn tabeli oraz okre�la separatory kolumn; mog� si� w niej
znale�� nast�puj�ce oznaczenia:
l | dosuni�cie tekstu do lewej |
r | dosuni�cie tekstu do prawej |
c | centrowanie |
m{width} | Definiuje kolumn� o szeroko�ci
width .
�rodek celi w tej kolumnie (po�owa jej wysoko�ci) pokrywa si�
ze �rodkiem celi kolumny s�siedniej.
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�yte przed jednym z
nast�puj�cych typ�w: l , r ,
c , p , m lub
b .
Polecenie macro b�dzie wykonywane zawsze
przed rozpocz�ciem analizy materia�u celi w tak okre�lonej
kolumnie. |
<{macro} | Mo�e by� u�yte po jednym z
nast�puj�cych typ�w: l , r ,
c , p , m lub
b .
Polecenie macro b�dzie wykonywane zawsze
na ko�cu materia�u
celi 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). Mo�na wstawi� dwa znaki | -- separatorem b�dzie linia podw�jna (odleg�o�� mi�dzy liniami okre�la parametr \BAdoublerulesep). |
@{macro} | Mo�e by� u�yte w dowolnym
miejscu preambu�y zamiast separatora (np.: | ).
Polecenie macro zostanie wywo�ane mi�dzy
kolumnami (kasowana jest normalna
odleg�o�� mi�dzy kolumnami). |
!{macro} | Mo�e by� u�yte w dowolnym
miejscu preambu�y zamiast separatora (np.:
| ).
Polecenie macro zostanie wywo�ane
mi�dzy kolumnami (w odr�nieniu od
@{...} nie jest kasowana normalna
odleg�o�� mi�dzy kolumnami). |
& | Znak umieszczony przed symbolem separatora kolumny (|) powoduje, �e w przypadku u�ycia polecenia \BAmulticolumn nie trzeba w nim powtarza� definicji obramowania celi (w przypadku u�ycia makra \BAmulticolumn w pierwszej kolumnie obramowanie z lewej strony musi by� redefiniowane). W przypadku podw�jnego obramowania (||) znak & nale�y umie�ci� tylko przed pierwszym znakiem |. |
) | dodatkowa kolumna obejmuj�ca nawiasem ca�� wysoko�� tabeli (p. �rodowisko block) |
\} | dodatkowa kolumna obejmuj�ca nawiasem ca�� wysoko�� tabeli (p. �rodowisko block) |
] | dodatkowa kolumna obejmuj�ca nawiasem ca�� wysoko�� tabeli (p. �rodowisko block) |
( | dodatkowa kolumna obejmuj�ca nawiasem ca�� wysoko�� tabeli (p. �rodowisko block) |
\{ | dodatkowa kolumna obejmuj�ca nawiasem ca�� wysoko�� tabeli (p. �rodowisko block) |
[ | dodatkowa kolumna obejmuj�ca nawiasem ca�� wysoko�� tabeli (p. �rodowisko block) |
\Left{tekst}{delimiter} | tekst i delimiter stanowi kolumn� o zerowej szeroko�ci; konstrukcja s�u�y do wstawienia dodatkowego opisu (sk�adanego antykw�) umieszczonego przed delimiterem (mo�e nim by� jeden z nawias�w ([{}])); delimiter obejmuje ca�� wysoko�� tabeli (p. block). |
\Right{delimiter}{tekst} | tekst i delimiter stanowi kolumn� o zerowej szeroko�ci; konstrukcja s�u�y do wstawienia dodatkowego opisu (sk�adanego antykw�) umieszczonego po delimiterze (mo�e nim by� jeden z nawias�w ([{}])); delimiter obejmuje ca�� wysoko�� tabeli (p. block). |
\BAenum | dodatkowa kolumna zawieraj�ca numer kolejny wiersza (szeroko�� kolumny jest ustalona na 2em bez wzgl�du czy si� to komu� podoba czy nie) |
*{n}{parametry} | n-krotne powt�rzenie
specyfikacji kolumny np:
*{3}{|c} jest r�wnowa�ne |c|c|c |
Parametry kt�rymi mo�na regulowa� spos�b budowania tabeli:
Polecenie | opis |
---|---|
\tabcolsep | po�owa szeroko�ci odst�pu mi�dzy kolumnami tablicy (domy�lnie 6pt) |
\BAarrayrulewidth | szeroko�� pionowej linii separuj�cej kolumny (o ile jest u�ywana -- domy�lnie 0.4pt) |
\BAdoublerulesep | 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%) |
\BAextrarowheight | dodatkowy odst�p mi�dzy liniami (domy�lnie 0pt) |
\BAextraheightafterhline | dodatkowy odst�p po poziomej linii oddzielaj�cej |
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 wyeliminowa�
wstawiaj�c pust� przestrze� o d�ugo�ci 0pt na pocz�tku celi
(wykorzystuj�c mo�liwo�ci formowania preambu�y tabeli) np.
>{\hspace{0pt}}p{20mm}
W pakiecie jest zdefiniowane polecenie \BAhhline umo�liwiaj�ce
uzyskanie �adniejszych wyko�cze� tabeli:
Wywo�anie:
\BAhhline{parametry}
na li�cie parametr�w mog� wyst�powa� nast�puj�ce symbole:
= | podw�jna linia o szeroko�ci danej kolumny |
" | podw�jna linia przerywana o szeroko�ci danej kolumny |
- | pojedyncza linia o szeroko�ci danej kolumny |
. | pojedyncza linia przerywana o szeroko�ci danej kolumny |
~ | brak linii w danej kolumnie (pozwala zast�pi�
dyrektyw� \BAhhline dyrektyw� \cline ) |
| | linia pionowa przecina (ma priorytet) konstrukcj� poziom� |
: | linia pionowa styka si� z podw�jn� poziom� |
# | skrzy�owanie podw�jnych linii |
t | g�rne wyko�czenie rogu (lewe lub prawe w zale�no�ci od s�siedztwa) |
b | dolne wyko�czenie rogu |
* | powt�rzenie sekwencji; np. *{3}{==#} jest r�wnowa�ne
==#==#==# |
Przyk�ad ilustruje r�ne zestawienia po��cze� linii poziomych i pionowych (niekoniecznie poprawnych)
\begin{blockarray}{||cc||c|c||} \BAhhline{|t:==:t:==:t|} a & b & c & d\\ \BAhhline{|:==:|~|~||} 1 & 2 & 3 & 4\\ \BAhhline{#==#~|=#} i & j & k & l\\ \BAhhline{||--||--||} w & x & y & z\\ \BAhhline{|:==|:==:|} 1 & 2 & 3 & 4 \\ \BAhhline{|:==::=|=:|} 5 & 6 & 7 & 8 \\ \BAhhline{|:="::"|=:|} 9 & 10 & 11 & 12 \\ \BAhhline{||-|.||.|-||} 13 & 14 & 15 & 16\\ \BAhhline{|b:==:b:==:b|} \end{blockarray} |
Pakiet udost�pnia �rodowisko block (i block*)
o nast�puj�cej postaci wywo�ania:
\begin{block}{preambu�a}
.
.
.
\end{block}
lub
\begin{block*}{preambu�a}
.
.
.
\end{block*}
mo�e by� ono u�yte wy��cznie wewn�trz �rodowiska blockarray
(mo�e by� wielokrotnie zagnie�d�any)
preambu�a powinna by� zgodna co do liczby kolumn
ze specyfikacj� kolumn umieszczon� w �rodowisku blockarray
(opr�cz dost�pnych w niej parametr�w, dodatkowo mog� wyst�pi� polecenia
\BAmulticolumn, obejmuj�ce
kilka kolumn tabeli oraz \BAmultirow obejmuj�ce wszystkie
wiersze zawarte w �rodowisku block).
�rodowisko umo�liwia wstawienie kolumn, kt�re b�d� inaczej
prezentowane ni� okre�la to specyfikacja �rodowiska blockarray.
Wszystkie separatory kolumn i kolumny tabeli musz� by� redefiniowane.
W przypadku u�ycia konstrukcji nawiasowych w specyfikacji
tabeli wersja ,,bezgwiazdkowa'' �rodowiska umo�liwia zdefiniowanie
innych konstrukcji nawiasowych (lub rezygnacj� z nich). W wersji
,,gwiazdkowej'' specyfikacja konstrukcji nawiasowych jest ignorowana
(pozostaj� w mocy specyfikacje �rodowiska blockarray; r�nice
najlepiej zilustruje przyk�ad:
\begin{blockarray}{[c|c]c\}} 1111111 & 222222 & 333333 \\ 1 & 2 & 3 \\ \begin{block*}{(ll)l\}} 1111 & 2222 & 3333 \\ 11 & 22 & 33 \\ \end{block*} 1 & 2 & 3 \\ \end{blockarray} | |
\begin{blockarray}{[c|c]c\}} 1111111 & 222222 & 333333 \\ 1 & 2 & 3 \\ \begin{block}{(ll)l\}} 1111 & 2222 & 3333 \\ 11 & 22 & 33 \\ \end{block} 1 & 2 & 3 \\ \end{blockarray} |
\begin{blockarray}{||l|c|c|t{1cm}|c|c||} \BAhhline{|t:======:t|} 2s & ss &ss &ss &ss&ss\\ \BAhhline{||------||} \begin{block}{||l|l|\BAmulticolumn{2}{r}|l|l||} 1 & 2 & 3 4 & 5 & 6\\ \end{block} \BAhhline{||------||} a & b & c & d & e & f\\ \BAhhline{|b:======:b|} \end{blockarray} |
U�ycie konstrukcji \BAmultirow w preambule �rodowiska block wymaga dodatkowego komentarza. Materia� kt�ry ma by� sk�adany w bloku o wysoko�ci wszystkich wierszy �rodowiska block mo�e by� wprowadzany w jednym lub kilku wierszach (w tak okre�lonej kolumnie). Je�eli jest on podany w kilku wierszach to jedynym efektem jest zachowanie podzia�u na wiersze (zapis ,,od nowej linii''), b�dzie on i tak stanowi� ca�o��, kt�ra b�dzie pozycjonowana wzgl�dem �rodka wysoko�ci wszystkich wierszy.
\begin{blockarray}{||l|c|c|t{1cm}|c|c||} \BAhhline{|t:======:t|} 2s & ss &ss &ss &ss&ss\\ \BAhhline{||------||} \begin{block}{||l|l|l|l|l|\BAmultirow{1in}||} 1 & 2 & 3 & 4 & 5 & \relax\\ 1 & 2 & 3 & 4 & 5 & to jest multirow to jest multirow \\ 1 & 2 & 3 & 4 & 5 & \relax\\ 1 & 2 & 3 & 4 & 5 & \relax\\ 1 & 2 & 3 & 4 & 5 & to jest multirow to jest multirow \\ 1 & 2 & 3 & 4 & 5 & \relax\\ 1 & 2 & 3 & 4 & 5 & \relax\\ \end{block} \BAhhline{||------||} a & b & c & d & e & f\\ \BAhhline{|b:======:b|} \end{blockarray} |
Uwaga! zawarto�� kolumn, kt�re nie zawieraj� materia�u wchodz�cego w sk�ad kolumny musi zawiera� ,,co�'' np. materia� ,,pusty'' (\relax).
Je�li wysoko�� sk�adu materia�u przekracza wysoko�� wszystkich wierszy nie
wp�ywa to
na wysoko�� delimiter�w kolumn, pojawia si� efekt widoczny w poni�szym
przyk�adzie
\begin{blockarray}{||l|c|c|t{1cm}|c|c||} \BAhhline{|t:======:t|} 2s & ss &ss &ss &ss&ss\\ \BAhhline{||------||} \begin{block}{||l|l|l|l|l|\BAmultirow{1in}||} 1 & 2 & 3 & 4 & 5 & \relax\\ 1 & 2 & 3 & 4 & 5 & to jest multirow to jest multirow to jest multirow to jest multirow to jest multirow \\ 1 & 2 & 3 & 4 & 5 & \relax\\ 1 & 2 & 3 & 4 & 5 & \relax\\ 1 & 2 & 3 & 4 & 5 & to jest multirow to jest multirow \\ 1 & 2 & 3 & 4 & 5 & \relax\\ 1 & 2 & 3 & 4 & 5 & \relax\\ \end{block} \BAhhline{||------||} a & b & c & d & e & f\\ \BAhhline{|b:======:b|} \end{blockarray} |
Pakiet blkarray udost�pnia polecenie \BAmultirow,
umo�liwiaj�c� ��czenie cel tabeli w pionie, podobnie jak pakiet
multirow, sk�adnia wywo�ania jest inna;
wygl�da ona nast�puj�co:
\BAmulticolumn{szeroko��}{tekst}
Sk�adany materia� obejmuje ca�� wysoko�� tabeli (je�eli jest u�yte �rodowisko
block to materia� b�dzie powielony (sic!))
\begin{blockarray}{||l|c|c|t{1cm}|c|c||} \BAhhline{|t:======:t|} 2s & ss &ss &ss &ss&ss\\ \BAhhline{||------||} 1 & 2 & 3 & 4 & 5 & \\ 1 & 2 & 3 & 4 & 5 & \\ \BAmultirow{4cm}{to jest multirow to jest multirow} \\ 1 & 2 & 3 & 4 & 5 & \\ \begin{block}{||l|l|l|l|l|l||} 1 & 2 & 3 & 4 & 5 & 6\\ \end{block} 1 & 2 & 3 & 4 & 5 & \\ 1 & 2 & 3 & 4 & 5 & \\ 1 & 2 & 3 & 4 & 5 & \\ \BAhhline{||------||} a & b & c & d & e & f\\ \BAhhline{|b:======:b|} \end{blockarray} |
Je�eli chcemy, aby materia� obejmowa� jedynie okre�lon� liczb� wierszy (a nie wszystkie wiersze) w danej kolumnie to nale�y u�y� konstrukcji block ��cz�c j� z makroinstrukcj� \BAmultirow (p. u�ycie konstrukcji \BAmultirow w preambule �rodowiska block).
Przyk�ad:
separator podw�jnej celi z prawej strony jest zdefiniowany za pomoc�
znaku &
\begin{blockarray}{||l|c|c&|t{1cm}|c|c||} \BAhhline{|t:======:t|} 2s & ss &ss &ss &ss&ss\\ \BAhhline{||------||} & \BAmulticolumn{2}{c}{a b} & c & d & e\\ \BAhhline{||------||} a & b & c & d & e & f\\ \BAhhline{|b:======:b|} \end{blockarray} |
\begin{blockarray}{||l|c|c|t{1cm}|c|c||} \BAhhline{|t:======:t|} 2s & ss &ss &ss &ss&ss\\ \BAhhline{||------||} & \BAmulticolumn{2}{c}{a b} & c & d & e\\ \BAhhline{||------||} a & b & c & d & e & f\\ \BAhhline{|b:======:b|} \end{blockarray} |
\begin{blockarray}{l|c|c|t{1cm}|c|c\}} 2s & ss &ss &ss &ss&ss\\ 2s & ss &ss &ss &ss&ss\\ \BAnoalign{ala ma kota, a kot ma Ale ala ma kota, a kot ma Ale ala ma kota, a kot ma Ale} a & b & c & d & e & f\\ a & b & c & d & e & f\\ \end{blockarray} |
Wywo�anie makroinstrukcji \BAparfootnotes powoduje, �e przypisy b�d� sk�adane jako jeden akapit (tylko w przypadku \BAtablenotestrue).