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 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
|
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
<title> Zastaw ciekawych makroinstrukcji </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=calc>calc</a></h2>
Pakiet zawiera makroinstrukcje rozszerzajce zakres dziaa
na rejestrach. Mamy do dyspozycji nastpujce polecenia:<br>
<table border=1>
<tr><th>
Polecenie </th><th> opis</th></tr>
<tr><td>
<code>\newcounter{<i>rejestr</i> }</code> </td><td> definicja nowego
rejestru; jest on inicjowany wartoci 0</td></tr>
<tr><td>
<code>\newcounter{<i>rejestr</i> }[<i>inny rejestr</i> ]</code> </td><td>
definicja nowego rejestru;
jest on inicjowany wartoci 0
i staje si zaleny od rejestru
<i>inny rejestr</i>. Wykonanie
polecenia
<code>\stepcounter{<i>inny rejestr</i> }</code> lub
<code>\refstepcounter{<i>inny rejestr</i> }</code>
powoduje
wyzerowanie rejestru <i>rejestr</i> </td></tr>
<tr><td>
<code>\setcounter{<i>rejestr</i> }{<i>warto</i> }</code> </td><td> ustawienie wartoci
rejestru</td></tr>
<tr><td>
<code>\addtocounter{<i>rejestr</i> }{<i>warto</i> }</code> </td><td>
dodanie do rejestru <i>rejestr</i> wartoci</td></tr>
<tr><td>
<code>\stepcounter{<i>rejestr</i> }</code> </td><td> incrementacja rejestru
<i>rejestr</i> </td></tr>
<tr><td>
<code>\refstepcounter{<i>rejestr</i> }</code> </td><td> incrementacja rejestru
<i>rejestr</i>;
jeeli oznaczymy etykiet miejsce (<code>label</code>), to
wartoci polecenia <code>\ref</code> bdzie aktualna
warto rejestru</td></tr>
</table>
Napis reprezentujcy warto rejestru moemy uzyska wywoujc
polecenie<br>
<code>\the</code><i>rejestr</i><br>
(zamiast okrelenia <i>rejestr</i>
naley uy nazwy waciwego rejestru).
Definiujc warto rejestru (parametr <i>warto</i> ) moemy uywa liczb
cakowitych, wartoci innych rejestrw (moliwych do uzyskania
poleceniem <code>\value{<i>rejestr</i> }</code>, lub <code>\the<i>rejestr</i> </code>)
oraz operatorw <code>-</code>, <code>+</code>, <code>*</code>, <code>/</code>. Dziaania wykonywane
s w kolejnoci zgodnej z przyjtymi zwyczajami. Moemy uywa
notacji nawiasowej (<code>()</code>) do wymuszenia kolejnoci wykonania dziaa.
<p>
<b>Przykad</b>
<pre>
\newcounter{x}
\newcounter{y}
\setcounter{x}{2}
\setcounter{y}{3}
\setcounter{y}{(\value{x} + 5) * \value{y}}
Wartoci rejestru y jest \they.
</pre>
Powysza sekwencja daje nastpujcy efekt:<br clear=all>
<img src=calc1.gif>
<p>Oprcz dziaa na liczbach mamy moliwo dokonywania dziaa
na dugociach. Dugo moe by podawana w jednostkach przyjtych
w TeX-u:<br>
<table border=1>
<tr><th>
Polecenie </th><th> opis</th></tr>
<tr><td>
sp </td><td> jednostka w ktrej TeX prowadzi obliczenia
(65536 sp = 1 pt) </td></tr>
<tr><td>
pt </td><td> punkt typograficzny (1/72.27 in = 0.351 mm </td></tr>
<tr><td>
bp </td><td> duy punkt (72 bp = 1 in); uywany w postscripcie) </td></tr>
<tr><td>
dd </td><td> didot (1/72 cala francuskiego, = 0.376 mm) </td></tr>
<tr><td>
mm </td><td> milimetr (= 1.845 pt) </td></tr>
<tr><td>
pc </td><td> pica (=12 pt = 4.218 mm) </td></tr>
<tr><td>
cc </td><td> cicero (= 12 dd = 4.531 mm) </td></tr>
<tr><td>
cm </td><td> centymetr (=10 mm = 2.371 pc) </td></tr>
<tr><td>
in </td><td> cal (= 2.54 mm = 72.27 pt = 6.022 pc) </td></tr>
<tr><td>
ex </td><td> miara wzgldna; wynika z wysokoci litery <code>x</code> w
aktualnie uywanym foncie) </td></tr>
<tr><td>
em </td><td> miara wzgldna; wynika z szerokoci litery <code>m</code> w
aktualnie uywanym foncie) </td></tr>
<tr><td>
mu </td><td> jednostka uywana we wzorach matematycznych
(18 mu = 1 em) </td></tr>
</table>
<table border=1>
<tr><th>
Polecenie </th><th> opis</th></tr>
<tr><td>
<code>\newlength{\<i>nazwa</i> }</code> </td><td> definicja nowego rejestru
dugoci</td></tr>
<tr><td>
<code>\setlength{\<i>nazwa</i> }{<i>dugo</i> }</code> </td><td> ustawienie wartoci</td></tr>
<tr><td>
<code>\addtolength{\<i>nazwa</i> }{<i>dugo</i> }</code> </td><td> dodanie
do aktualnej wartoci rejestru</td></tr>
<tr><td>
<code>\settowidth{\<i>nazwa</i> }{<i>tekst</i> }</code> </td><td> ustawienie
wartoci rejestru <i>nazwa</i> na
warto rwn naturalnej szerokoci
tekstu <i>tekst</i> </td></tr>
<tr><td>
<code>\settoheight{\<i>nazwa</i> }{<i>tekst</i> }</code> </td><td> ustawienie
wartoci rejestru <i>nazwa</i> na
warto rwn naturalnej wysokoci
tekstu <i>tekst</i> </td></tr>
</table>
<p>Parametr <i>dugo</i> moe by zdefiniowany za pomoc
wyraenia arytmetycznego. Prosz pamita o sensie fizycznym wykonywanych
operacji (maj sens nastpujce operacje:<br>
dugo = dugo + dugo, <br>
dugo = dugo * liczba, <br>
liczba = <code>\ratio{dugo}{dugo}</code>,<br>
dugo = dugo / liczba). <br>
Operatorem
dzielenia dugoci przez dugo jest makroinstrukcja<br>
<code>\ratio{<i>dugo</i> }{<i>dugo</i> }</code><br>
a warto rzeczywist moemy uzyska uywajc makroinstrukcji<br>
<code>\real{<i>liczba rzeczywista</i> }</code><br>
ktrej parametrem jest tekst bdcy liczb rzeczywist (zapis
z kropk dziesitn).
Do dzielenia dugoci przez liczb moemy uywa znaku <code>/</code>.
Naley pamita e definicja wyraenia powinna zaczyna si od
elementu bdcego dugoci, a w wyniku kolejnych oblicze wartociami
porednimi musz by dugoci. Napis reprezentujcy warto rejestru
moemy uzyska poleceniem
<code>\the\<i>rejestr</i> </code><sup><a href=#fnc1>1</a></sup>
<p>
<b>Przyklad:</b><br>
<pre>
\newlength{\x}
\newlength{\y}
\setlength{\y}{5cm}
\settowidth{\x}{ala ma kota}
\setlength{\y}{3cm * \ratio{\y}{\x}}
Rejestr y ma warto: \the\y
</pre>
Powysza sekwencja daje nastpujcy efekt:<br clear=all>
<img src=calc2.gif>
<p>Pakiet jest dostpny pod adresem:<br>
<a href=ftp://ftp.gust.org.pl/TeX/macros/latex/requiredtools/calc.dtx>
ftp://ftp.gust.org.pl/TeX/macros/latex/contrib/required/tools/calc.dtx</a><p>
<hr align=left width=20%>
<sup><a name=fnc1>1</a></sup>
Prosz zwrci uwag e parametr okrelajcy nazw rejestru dugoci
zaczyna si znakiem <code>\</code>
<hr>
<em>Wodzimierz Macewicz</em>
<hr>
Ostatnie zmiany: 05.05.2014.
</body>
</html>
|