Vyplnovani formulare -- ztrata mezer

Petr Mandys mandp0am at artax.karlin.mff.cuni.cz
Wed Mar 26 22:58:47 CET 2003


Zdravim!

Potrebuju vyplnovat predtisteny formular. Mam okynka do kterych musi
padnout jednotliva pismenka. Mam definovana makra typu:

\def\Jmeno{Antonin}
\def\Prijmeni{Novak}
\def\Mesto{Praha 8-Holesovice}
\def\Ulice{Patkova 3}
\def\PSC{180 00}
...

Tato makra mam do formulare rozmistit.

Myslenka je jasna: Budu si odebirat postupne znaky a centrovat je do
\hboxu potrebne sirky, ktere pak budu skladat za sebe...

V cem je teda problem: Jak zajistit, aby mi nemizely mezery? Odebirani po
znaku delam pomoci makra

\def\vytiskni#1{\expandafter\odebertoken#1;}
\def\odebertoken#1#2;{\zpracuj{#1}\odebertoken#2;}

(velmi zjednodusene napsano...) Jenze mezera se mi v takovem pripade
sezere, jako nepovinna mezera pred parametry makra... Nakonec jsem to
vyresil nejak takhle:

\def\vytiskni#1{\setbox\boxi=\hbox{#1}\expandafter\odebertoken#1;}
\def\odebertoken#1#2;{\setbox\boxii=\hbox{#1#2}%
	\ifdim\wd\boxi=\wd\boxii
	\else % byla tam mezera
		\zpracuj{ }
	\fi
	\zpracuj{#1}\setbox\boxi=\hbox{#2}\odebertoken#2;}

(opet zjednoduseno; nechce se mi tu demonstrovat, jak pekne umim psat
v TeXu cykly :-))

Ale to mi preci jen prijde trochu drasticke. Napada me, ze by se to mohlo
resit pomoci registru typu <toks>. Ale nemam s tim moc zkusenosti...

S tim vstupem nic nenadelam, takze rada at misto mezery pouzivam \  nebo
\space jsou mi na nic...

Pouzivam i tu variantu, ktera uzira mezery, protoze pro PSC tam je 5
policek a obcas mi prijde PSC s mezerou a obcas bez ni...

Dekuji za napady.

Petr Mandys




More information about the csTeX mailing list