summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/latex2e/macro/calc.html
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/tex-virtual-academy-pl/latex2e/macro/calc.html')
-rw-r--r--Master/texmf-dist/doc/generic/tex-virtual-academy-pl/latex2e/macro/calc.html192
1 files changed, 192 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/latex2e/macro/calc.html b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/latex2e/macro/calc.html
new file mode 100644
index 00000000000..f60b8c47a74
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/tex-virtual-academy-pl/latex2e/macro/calc.html
@@ -0,0 +1,192 @@
+<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="Włodzimierz 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 rozszerzające zakres działań
+na rejestrach. Mamy do dyspozycji następujące polecenia:<br>
+
+<table border=1>
+<tr><th>
+Polecenie </th><th> opis</th></tr>
+<tr><td>
+<code>\newcounter{<i>rejestr</i>&nbsp;}</code> </td><td> definicja nowego
+rejestru; jest on inicjowany wartością 0</td></tr>
+<tr><td>
+<code>\newcounter{<i>rejestr</i>&nbsp;}[<i>inny&nbsp;rejestr</i>&nbsp;]</code> </td><td>
+ definicja nowego rejestru;
+ jest on inicjowany wartością 0
+ i staje się zależny od rejestru
+ <i>inny rejestr</i>. Wykonanie
+ polecenia
+ <code>\stepcounter{<i>inny&nbsp;rejestr</i>&nbsp;}</code> lub
+ <code>\refstepcounter{<i>inny&nbsp;rejestr</i>&nbsp;}</code>
+ powoduje
+ wyzerowanie rejestru <i>rejestr</i>&nbsp;</td></tr>
+<tr><td>
+<code>\setcounter{<i>rejestr</i>&nbsp;}{<i>wartość</i>&nbsp;}</code> </td><td> ustawienie wartości
+ rejestru</td></tr>
+<tr><td>
+<code>\addtocounter{<i>rejestr</i>&nbsp;}{<i>wartość</i>&nbsp;}</code> </td><td>
+ dodanie do rejestru <i>rejestr</i>&nbsp; wartości</td></tr>
+<tr><td>
+<code>\stepcounter{<i>rejestr</i>&nbsp;}</code> </td><td> incrementacja rejestru
+ <i>rejestr</i>&nbsp;</td></tr>
+<tr><td>
+<code>\refstepcounter{<i>rejestr</i>&nbsp;}</code> </td><td> incrementacja rejestru
+ <i>rejestr</i>;
+ jeżeli oznaczymy etykietą miejsce (<code>label</code>), to
+ wartością polecenia <code>\ref</code> będzie aktualna
+ wartość rejestru</td></tr>
+</table>
+
+Napis reprezentujący wartość rejestru możemy uzyskać wywołując
+polecenie<br>
+<code>\the</code><i>rejestr</i><br>
+(zamiast określenia <i>rejestr</i>&nbsp;
+należy użyć nazwy właściwego rejestru).
+
+Definiując wartość rejestru (parametr <i>wartość</i>&nbsp;) możemy używać liczb
+całkowitych, wartości innych rejestrów (możliwych do uzyskania
+poleceniem <code>\value{<i>rejestr</i>&nbsp;}</code>, lub <code>\the<i>rejestr</i>&nbsp;</code>)
+oraz operatorów <code>-</code>, <code>+</code>, <code>*</code>, <code>/</code>. Działania wykonywane
+są w kolejności zgodnej z przyjętymi zwyczajami. Możemy używać
+notacji nawiasowej (<code>()</code>) do wymuszenia kolejności wykonania działań.
+
+<p>
+<b>Przykład</b>
+<pre>
+\newcounter{x}
+\newcounter{y}
+\setcounter{x}{2}
+\setcounter{y}{3}
+\setcounter{y}{(\value{x} + 5) * \value{y}}
+
+Wartością rejestru y jest \they.
+</pre>
+
+Powyższa sekwencja daje następujący efekt:<br clear=all>
+<img src=calc1.gif>
+
+
+<p>Oprócz działań na liczbach mamy możliwość dokonywania działań
+na długościach. Długość może być podawana w jednostkach przyjętych
+w TeX-u:<br>
+
+<table border=1>
+<tr><th>
+Polecenie </th><th> opis</th></tr>
+<tr><td>
+sp </td><td> jednostka w której TeX prowadzi obliczenia
+ (65536&nbsp;sp = 1&nbsp;pt) </td></tr>
+<tr><td>
+pt </td><td> punkt typograficzny (1/72.27&nbsp;in = 0.351&nbsp;mm </td></tr>
+<tr><td>
+bp </td><td> duży punkt (72&nbsp;bp = 1&nbsp;in); używany w postscripcie) </td></tr>
+<tr><td>
+dd </td><td> didot (1/72 cala francuskiego, = 0.376&nbsp;mm) </td></tr>
+<tr><td>
+mm </td><td> milimetr (= 1.845&nbsp;pt) </td></tr>
+<tr><td>
+pc </td><td> pica (=12&nbsp;pt = 4.218&nbsp;mm) </td></tr>
+<tr><td>
+cc </td><td> cicero (= 12&nbsp;dd = 4.531&nbsp;mm) </td></tr>
+<tr><td>
+cm </td><td> centymetr (=10&nbsp;mm = 2.371&nbsp;pc) </td></tr>
+<tr><td>
+in </td><td> cal (= 2.54&nbsp;mm = 72.27&nbsp;pt = 6.022&nbsp;pc) </td></tr>
+<tr><td>
+ex </td><td> miara względna; wynika z wysokości litery <code>x</code> w
+ aktualnie używanym foncie) </td></tr>
+<tr><td>
+em </td><td> miara względna; wynika z szerokości litery <code>m</code> w
+ aktualnie używanym foncie) </td></tr>
+<tr><td>
+mu </td><td> jednostka używana we wzorach matematycznych
+ (18&nbsp;mu = 1&nbsp;em) </td></tr>
+</table>
+
+<table border=1>
+<tr><th>
+Polecenie </th><th> opis</th></tr>
+<tr><td>
+<code>\newlength{\<i>nazwa</i>&nbsp;}</code> </td><td> definicja nowego rejestru
+ długości</td></tr>
+<tr><td>
+<code>\setlength{\<i>nazwa</i>&nbsp;}{<i>długość</i>&nbsp;}</code> </td><td> ustawienie wartości</td></tr>
+<tr><td>
+<code>\addtolength{\<i>nazwa</i>&nbsp;}{<i>długość</i>&nbsp;}</code> </td><td> dodanie
+ do aktualnej wartości rejestru</td></tr>
+<tr><td>
+<code>\settowidth{\<i>nazwa</i>&nbsp;}{<i>tekst</i>&nbsp;}</code> </td><td> ustawienie
+ wartości rejestru <i>nazwa</i>&nbsp; na
+ wartość równą naturalnej szerokości
+ tekstu <i>tekst</i>&nbsp;</td></tr>
+<tr><td>
+<code>\settoheight{\<i>nazwa</i>&nbsp;}{<i>tekst</i>&nbsp;}</code> </td><td> ustawienie
+ wartości rejestru <i>nazwa</i>&nbsp; na
+ wartość równą naturalnej wysokości
+ tekstu <i>tekst</i>&nbsp;</td></tr>
+</table>
+
+<p>Parametr <i>długość</i>&nbsp; może być zdefiniowany za pomocą
+wyrażenia arytmetycznego. Proszę pamiętać o sensie fizycznym wykonywanych
+operacji (mają sens następujące operacje:<br>
+długość = długość + długość, <br>
+długość = długość * liczba, <br>
+liczba = <code>\ratio{długość}{długość}</code>,<br>
+długość = długość / liczba). <br>
+Operatorem
+dzielenia długości przez długość jest makroinstrukcja<br>
+<code>\ratio{<i>długość</i>&nbsp;}{<i>długość</i>&nbsp;}</code><br>
+a wartość rzeczywistą możemy uzyskać używając makroinstrukcji<br>
+<code>\real{<i>liczba rzeczywista</i>&nbsp;}</code><br>
+której parametrem jest tekst będący liczbą rzeczywistą (zapis
+z kropką dziesiętną).
+Do dzielenia długości przez liczbę możemy używać znaku <code>/</code>.
+Należy pamiętać że definicja wyrażenia powinna zaczynać się od
+elementu będącego długością, a w wyniku kolejnych obliczeń wartościami
+pośrednimi muszą być długości. Napis reprezentujący wartość rejestru
+możemy uzyskać poleceniem
+<code>\the\<i>rejestr</i>&nbsp;</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>
+Powyższa sekwencja daje następujący efekt:<br clear=all>
+
+<img src=calc2.gif>
+
+<p>Pakiet jest dostępny 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ę zwrócić uwagę że parametr określający nazwę rejestru długości
+zaczyna się znakiem <code>\</code>
+
+<hr>
+
+<a href=../../texologia.html><img src="../../gify/lew-7vs.gif" hspace=10 border=0 align=left></a>
+<a href=mailto:W.Macewicz@ia.pw.edu.pl><img src="../../gify/mail.gif" hspace=10 align=left></a>
+<a href=http://www.ia.pw.edu.pl/~wujek/index.html>Włodzimierz Macewicz</a><br clear=all>
+<hr>
+<!--#config timefmt="%y-%m-%d" -->
+Ostatnie zmiany: 12.09.2004.
+</body>
+</html>