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).
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.