[cstex] Proč se nenačte parametr?

arecuktk at yahoo.co.uk arecuktk at yahoo.co.uk
Tue Mar 20 13:09:51 CET 2007


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.
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




More information about the csTeX mailing list