| Polecenie | opis |
|---|---|
\newcounter{rejestr } | definicja nowego rejestru; jest on inicjowany wartością 0 |
\newcounter{rejestr }[inny rejestr ] |
definicja nowego rejestru;
jest on inicjowany wartością 0
i staje się zależny od rejestru
inny rejestr. Wykonanie
polecenia
\stepcounter{inny rejestr } lub
\refstepcounter{inny rejestr }
powoduje
wyzerowanie rejestru rejestr |
\setcounter{rejestr }{wartość } | ustawienie wartości rejestru |
\addtocounter{rejestr }{wartość } | dodanie do rejestru rejestr wartości |
\stepcounter{rejestr } | incrementacja rejestru rejestr |
\refstepcounter{rejestr } | incrementacja rejestru
rejestr;
jeżeli oznaczymy etykietą miejsce (label), to
wartością polecenia \ref będzie aktualna
wartość rejestru |
\therejestr\value{rejestr }, lub \therejestr )
oraz operatorów -, +, *, /. Działania wykonywane
są w kolejności zgodnej z przyjętymi zwyczajami. Możemy używać
notacji nawiasowej (()) do wymuszenia kolejności wykonania działań.
Przykład
\newcounter{x}
\newcounter{y}
\setcounter{x}{2}
\setcounter{y}{3}
\setcounter{y}{(\value{x} + 5) * \value{y}}
Wartością rejestru y jest \they.
Powyższa sekwencja daje następujący efekt:
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:
| Polecenie | opis |
|---|---|
| sp | jednostka w której TeX prowadzi obliczenia (65536 sp = 1 pt) |
| pt | punkt typograficzny (1/72.27 in = 0.351 mm |
| bp | duży punkt (72 bp = 1 in); używany w postscripcie) |
| dd | didot (1/72 cala francuskiego, = 0.376 mm) |
| mm | milimetr (= 1.845 pt) |
| pc | pica (=12 pt = 4.218 mm) |
| cc | cicero (= 12 dd = 4.531 mm) |
| cm | centymetr (=10 mm = 2.371 pc) |
| in | cal (= 2.54 mm = 72.27 pt = 6.022 pc) |
| ex | miara względna; wynika z wysokości litery x w
aktualnie używanym foncie) |
| em | miara względna; wynika z szerokości litery m w
aktualnie używanym foncie) |
| mu | jednostka używana we wzorach matematycznych (18 mu = 1 em) |
| Polecenie | opis |
|---|---|
\newlength{\nazwa } | definicja nowego rejestru długości |
\setlength{\nazwa }{długość } | ustawienie wartości |
\addtolength{\nazwa }{długość } | dodanie do aktualnej wartości rejestru |
\settowidth{\nazwa }{tekst } | ustawienie wartości rejestru nazwa na wartość równą naturalnej szerokości tekstu tekst |
\settoheight{\nazwa }{tekst } | ustawienie wartości rejestru nazwa na wartość równą naturalnej wysokości tekstu tekst |
Parametr długość może być zdefiniowany za pomocą
wyrażenia arytmetycznego. Proszę pamiętać o sensie fizycznym wykonywanych
operacji (mają sens następujące operacje:
długość = długość + długość,
długość = długość * liczba,
liczba = \ratio{długość}{długość},
długość = długość / liczba).
Operatorem
dzielenia długości przez długość jest makroinstrukcja
\ratio{długość }{długość }
a wartość rzeczywistą możemy uzyskać używając makroinstrukcji
\real{liczba rzeczywista }
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 /.
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
\the\rejestr 1
Przyklad:
\newlength{\x}
\newlength{\y}
\setlength{\y}{5cm}
\settowidth{\x}{ala ma kota}
\setlength{\y}{3cm * \ratio{\y}{\x}}
Rejestr y ma wartość: \the\y
Powyższa sekwencja daje następujący efekt:
Pakiet jest dostępny pod adresem:
ftp://ftp.gust.org.pl/TeX/macros/latex/contrib/required/tools/calc.dtx
\
Włodzimierz Macewicz