| 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\refbę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 xw
			aktualnie używanym foncie) | 
| em | miara względna; wynika z szerokości litery mw
			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
\