MetaPost - substituce promenne mezi btex a etex
Jaromir Kuben
kuben at scova.vabo.cz
Fri Jul 7 10:57:26 CEST 2000
Alexandr Malusek píše:
>
> Alexandr Malusek <malusek at hroch.ujf.cas.cz> writes:
>
> > Mam zacatecnicky dotaz: Potreboval bych, aby se v nasledujicim cyklu
> > za promennou "i" ve vyrazu "x_{i}" dosadila jeji ciselna hodnota.
> >
> > for i=0 upto nx:
> > zz := (i,0);
> > label.bot(btex x_{i} etex, u*zz);
> > endfor
>
> Nakonec jsem pouzil workaround, ve kterem napred vygeneruji soubor
> inp_labX.mp obsahujici definici pole "picture" elementu. Tento soubor
> pak nactu a v cyklu vykresluji picture promenne labX[i]:
>
> % Define X-labels
> write "picture labX[];" to "inp_labX.mp";
> for k=0 upto nx:
> write "labX[" & decimal(k) & "] := btex $x_{" & decimal(k) & "}$ etex;"
> to "inp_labX.mp";
> endfor;
> write EOF to "inp_labX.mp";
> input inp_labX.mp
>
> % Plot X-labels
> for i=0 upto nx:
> zz := (i,0);
> label.bot(labX[i], u*zz);
> endfor
>
> --
> A. Malusek (malusek at ujf.cas.cz)
> UJF AV CR
Ono to ani v podstate jinak nejde, uz tady byla pred casem o tom rec.
Metapost nejprve "vysbira" okoli btex etex (bez jakehokoli interpretace,
nebere v uvahu, ze obsahuji nejake symbolicke promenne cyklu, symbolicke
parametry maker a pod.) a da to zpracovat texu (plus dalsim programum).
Takze dostanete naprosty nesmysl. To okoli tam da jen jednou, ne
tolikrat,
kolikrat se vola pozdeji cyklus, zato s nesmyslnymi parametry. Podobne
je to s pouzitim btex etex v definicich.
Nazpet dostane promenne typu picture, ktere pak umistuje misto btex etex
tak, jak jste to vlastne udelal. Pouzit tedy primo btex etex v cyklu
nejde.
Trik, jak to udelat, najdete v souboru tex.mp (je zalozen na write a
scantokens). Znamena to ale, ze je pokazde volan znovu tex, coz je
u dlouheho cyklu (na pocet opakovani) neunosne. To Vase je vlastne neco
podobneho a vola tex jen jednou, tedy je lepsi.
Zdravi
Jaromir Kuben
More information about the csTeX
mailing list