Vladimír Lukeš: METAFONT - Jak kreslit obrázky
Predchozi (Obsah) Dalsi

10. Makra

Při psaní METAFONTových programů můžeme ušetřit spoustu času tím, že budeme používat makra. Makro je část programu, které je přiřazeno jméno. Objeví-li se pak někde jinde toto jméno, je zde při zpracování METAFONTem vložen onen příslušný kus programu. Této činnosti se říká expanze maker. Zajímavou vlastností maker je, že nemusí mít "smysl", příkazy v nich můžou být neukončené nebo začínat v půli. Vlastní tělo makra se definuje mezi příkazy def a enddef.


def kolecko=fullcircle scaled 2u slanted .7 rotated 20
enddef;

beginchar("A",30mm#,30mm#,0);
...
draw kolecko shifted (up*5u);
...
endchar;


Makra lze volat i s libovolnými parametry, jejich typy se přitom nemusí v definici uvádět. Uvádí se pouze jména těchto parametrů.


def kolecko(expr stred,pol)=
filldraw fullcircle scaled pol shifted stred;
enddef;

def pero expr tl=
pickup pencircle scaled tl;
enddef;

beginchar("A",30mm#,30mm#,0);
pero 2pt;
kolecko((up*12u),10u);
endchar;



Predchozi
Converted by Selathco 0.85 on 08.06.1999 11:20
Dalsi