1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
|
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
<title> Zestaw ciekawych pakietw makr </title>
<LINK REL="stylesheet" TYPE="text/css" HREF="mycss.css">
<meta http-equiv="Content-language" content="pl">
<meta name="Author" content="Wodzimierz Macewicz">
<meta name="Keywords" content="tex, latex, makroinstrukcje, pakiety makroinstrukcji, Wirtualna Akademia">
</head>
<body bgcolor=#a0f0a0>
<h2><a name=array>array</a></h2>
Umoliwia doczenie wasnej specyfikacji typu
kolumny i zmienia standardowe makropolecenia definiujce tabele:
(<code>\tabular</code>
i <code>\array</code>) -- na lepsze. Wskazane jest doczenie pakietu
w przypadku uywania rodowisk:
<code>tabular</code>, <code>array</code>, <code>tabularx</code>, <code>longtable</code> i <code>supertabular</code>.
<p>Definicja nowego typu kolumny:<br>
<code>\newcolumntype{<i>x</i> }[<i>n</i> ]{<i>preambua</i> }</code><br>
gdzie
<dl>
<dt><i>x</i>
<dd>nazwa typu; uywana potem w definicji preambuy tablicy
<dt><i>n</i>
<dd> liczba parametrw formalnych definicji rodzaju kolumny
okrelonej specyfikacj (moe by pominite jeeli definicja jest
bezparametrowa; jeeli paramatry wystpuj, s one oznaczone jako:
<code>#1</code>
<code>#2</code>, ...),
<dt><i>preambua</i>
<dd> definicja rodzaju kolumn.
</dl>
<p>W specyfikacji makropolecenia <code>\newcolumntype</code> oraz w definicji
preambuy tablicy mog by uyte nastpujce okrelenia (w preambule tablicy
moe znale si oczywicie nowy, zdefiniowany poleceniem
<code>\newcolumntype</code> typ).
<table border>
<tr>
<tr><td> l </td><td> dosunicie tekstu do lewej</td></tr>
<tr><td> r </td><td> dosunicie tekstu do prawej</td></tr>
<tr><td> c </td><td> centrowanie</td></tr>
<tr><td valign=middle nowrap>m{<i>width</i> }
</td><td> Definiuje kolumn o szerokoci
<i>width</i> .
rodek celi tej kolumny (poowa wysokoci) pokrywa si
ze rodkiem celi kolumny ssiedniej
(porwnaj; cela bieca i ssiednia). Odpowiednik:
<code>\parbox{<i>width</i> }</code>; tekst jest amany
na szerokoci <i>width</i> .</td></tr>
<tr><td valign=top nowrap> p{<i>width</i> } </td><td> Rwnowana:
<code>\parbox[t]{<i>width</i> }</code>.
Pozycjonowanie w/g szczytu celi.</td></tr>
<tr><td valign=bottom nowrap> b{<i>width</i> } </td><td> Rwnowana
<code>\parbox[b]{<i>width</i> }</code>.
Pozycjonowanie w/g dou celi.</td></tr>
<tr><td nowrap> >{<i>macro</i> } </td><td> Moe by uyta przed jednym z
nastpujcych typw: <code>l</code>, <code>r</code>,
<code>c</code>, <code>p</code>, <code>m</code> lub
<code>b</code>.
polecenie <i>macro</i> bdzie wykonywana zawsze
przed rozpoczciem cel w tak okrelonej
kolumnie.</td></tr>
<tr><td nowrap> <{<i>macro</i> } </td><td> Moe by uyta po jednym z
nastpujcych typw: <code>l</code>, <code>r</code>,
<code>c</code>, <code>p</code>, <code>m</code> lub
<code>b</code>.
Polecenie <i>macro</i> bdzie wykonywana zawsze
po zakoczeniu
cel w tak okrelonej kolumnie.</td></tr>
<tr><td nowrap> | </td><td> Wstawienie linii pionowej jako separatora kolumn;
odlego midzy kolumnami zostanie zwikszona
o szeroko linii (w odrnieniu od oryginalnej
definicji tabeli).</td></tr>
<tr><td nowrap> @{<i>macro</i> } </td><td> Moe by uyte w dowolnym
miejscu preambuy zamiast <code>|</code>.
Polecenie <i>macro</i> zostanie wywoane midzy
kolumnami (kasuje normaln
odlego midzy kolumnami).</td></tr>
<tr><td nowrap> !{<i>macro</i> } </td><td> Moe by uyte w dowolnym
miejscu preambuy zamiast
<code>|</code>.
Polecenie <i>macro</i> zostanie wywoane
midzy odpowiednimi kolumnami (w odrnieniu od
oryginalnej
makroinstrukcji <code>@{...}</code> nie kasuje normalnej
odlegoci midzy kolumnami).</td></tr>
<tr><td nowrap> *{<i>n</i> }{<i>decl</i> } </td><td>
<i>n</i> -- krotne powtrzenie
<i>decl</i> ; gdzie
<i>decl</i> jest cigiem poprzednio okrelonych
parametrw. Np.
<code>*{3}{c}</code> oznacza trzy kolumny centrowane.</td></tr>
</table>
<p>Parametry ktrymi mona regulowa sposb budowania tabeli:<br>
<table border=1>
<tr><th>Polecenie </th><th> opis </th></tr>
<tr><td><code>\arraycolsep</code> </td><td> poowa szerokoci odstpu midzy kolumnami
tablicy w rodowisku matematycznym (<code>array</code>)
(domylnie 5pt)</td></tr>
<tr><td><code>\tabcolsep</code> </td><td> poowa szerokoci odstpu midzy kolumnami
tablicy (domylnie 6pt)</td></tr>
<tr><td><code>\arrayrulewidth</code> </td><td> szeroko pionowej linii separujcej
kolumny (o ile jest uywana -- domylnie
0.4pt)</td></tr>
<tr><td><code>\doublerulesep</code> </td><td> odlego midzy dwoma liniami pionowymi
stanowicymi separator kolumn (domylnie 2pt)</td></tr>
<tr><td><code>\arraystretch</code> </td><td> ,,mnonik'' odstpu midzy
wierszami tablicy
(np.
<code>\renewcommand{\arraystretch}{1.5}</code>
zwiksza odstp o 50%)</td></tr>
<tr><td><code>\extrarowheight</code> </td><td> dodatkowy odstp midzy liniami (domylnie 0pt)</td></tr>
</table>
<p><b>Uwaga</b><br>
Niektre polecenia (np. <code>\raggedright</code>) zmieniaj definicje
polecenia <code>\\</code>; tak wic specyfikacja
typu ostatniej kolumny jako:<br>
<code>>{\raggedleft}p{20mm}</code><br>
moe spowodowa bd. Moemy temu zapobiec definiujc makroinstrukcj
odtwarzajc definicj polecenia <code>\\</code><br>
<code>\newcommand{\PreserveBackslash}[1]%
{\let\temp=\\#1\let\\=\temp}</code><br>
<code>\let\PBS=\PreserveBackslash</code><br>
Argumentem pierwszego polecenia jest inne polecenie. Przed jego
wykonaniem jest wykonywane makropodstawienie definicji <code>\\</code>
na zmienn <code>\temp</code>,
nastpnie wykonanie polecenia i odtworzenie poprzedniej definicji
<code>\\</code> z zachowanej zmiennej <code>\temp</code>.
Drugie polecenie utosamia dla wygody
(krtsza nazwa) zmienn <code>\PBS</code>
z utworzonym poleceniem <code>\PreserveBackslash</code>. Poprawna definicja
ostatniej kolumny bdzie wygldaa teraz nastpujco:<br>
<code>>{\PBS\raggedleft}p{20mm}</code><br>
<p><b>Uwaga:</b><br>
W zwizku z realizacj tabeli wystpuje efekt uboczny ---
blokowane jest przenoszenie wyrazw (hyphenation) dla <b> pierwszego</b>
wyrazu w celi. Efekt moemy skompensowa
wstawiajc pust przestrze o dugoci 0pt na pocztku celi
(wykorzystujc moliwoci formowania preambuy tabeli) np.<br>
<code>>{\PBS\raggedleft\hspace{0pt}}p{20mm}</code>
<p>Pakiet jest dostpny standardowo w dystrybucjach LaTeX, a take
pod adresem:<br>
<a href="ftp://ftp.gust.org.pl/TeX/macros/latex/required/tools/array.dtx">
ftp://ftp.gust.org.pl/TeX/macros/latex/required/tools/array.dtx</a><p>
<hr>
<em>Wodzimierz Macewicz</em>
<hr>
Ostatnie zmiany: 05.05.2014.
</body>
</html>
|