[cstex] Proč se nenačte parametr?

Zdenek Wagner zdenek.wagner at gmail.com
Tue Mar 20 22:52:32 CET 2007


20 Mar 2007 05:09:51 -0700, arecuktk at yahoo.co.uk <arecuktk at yahoo.co.uk>:
> Dobrý den, asi přehlížím nějakou banalitu, ale nemohu vyřešit
> následující problém v plainu:
>
> Chci definovat makro, které se bude pro uživatele tvářit, jako že má 3
> parametry.
> Používat se má takto:
>
> \zalozka{cíl v dokumentu}{text záložky}{počet podzáložek}
>
> Makro má ve skutečnosti jen jeden parametr, ten první. Po něm spustí
> makro \textin, které otevře skupinu s fůrou aktivních znaků, odstraní
> levou svorku a nějak zpracuje "text záložky". Vypadne z toho \textout,
> obsahující zpracovaný text.

Makro \textin nic neodstrani.  Kdyz se dojde na \sezerznak, nahradi se
toto makro svou expanzi, tj.  \afterassignment\relax\let\sezranyznak=

To znamena, ze pri dalsi expanzi se provede \let\sezranyznak=\bgroup a
nasledne se provede \relax vlozeny pomoci \afterassignment.

> Aktivní pravá svorka nakonec skupinu uzavře a spustí makro \zalozkaa,
> které by mělo s tím vším nějak naložit a před tím nabrat do parametru
> obsah třetí dvojice svorek.
> Ale nenabere! A to je právě to, co nemůžu pochopit proč.
>
> Pokud by se na to někdo byl ochoten podívat, tady je kód:
>
> \def\sezerznak{\afterassignment\relax\let\sezranyznak=}
>
> \newtoks\cilodkazu
>
> \def\zalozka#1{\cilodkazu={#1}\textin}     %Vlastní uživatelský povel
>
> \bgroup
> \catcode"7D=13\catcode"7C=2    %Definice aktivní pravé svorky
> \gdef}{\egroup\zalozkaa|
> \egroup
>
> \def\textin{        % To bude dělat hlavní práci, teď jen ladicí forma
> \sezerznak          % Sežere levou svorku
> \bgroup\gdef\textout{Nazev}\catcode"7D=13}    %Otevřeni skupiny,
> ladicí definice \utfout a aktivace pravé svorky
> %Pravá svorka skupinu uzavře a spustí \zalozkaa
>
> \def\zalozkaa#1{%                %Pokračování uživatelského povelu -
> ladicí forma
> \par Parametr 1 = \the\cilodkazu\par Parametr 2 = \textout\par
> Parametr 3 = #1 (nula)}
>
> \zalozka{cil}{Tohle se v ostré verzi zpracuje jinak.}{0}
>
> \bye
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>


-- 
Zdeněk Wagner
http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz




More information about the csTeX mailing list