Separace z definice

Stepan Kasal kasal at matsrv.math.cas.cz
Mon Jun 21 13:52:25 CEST 1999


Dobry den,

On Mon, 21 Jun 1999 07:35:41 GMT, Michal Kvasnièka wrote:
> \def\title#1{\def\@title{#1}}
> 
> Kdyz se pouzije \title{Blabla\footnote{poznamka}}, obsahuje \@title

Jedna moznost je scanovat parametr na vyskyt \footnote.
\def\title#1{\title@#1}
\def\title@#1\footnote#2{\def\@title{#1}\def\@pozn{#2}}

Aby to fungovalo i v pripade, kdy je nadpis bez poznamky nebo neni
poznamka na konci, je nutno pridat:
\def\title#1{\title@#1\footnote{}\TITL@}
\def\title@#1\footnote#2#3\TITL@{\def\@title{#1#3}\def\@pozn{#2}}

Vyhodou tohoto reseni je, ze se parametr neexpanduje, takze v nem mohou
byt i makra.  Nevyhodou je, ze nefunguje napr. v pripade
\title{Pojednani o {\it malych \footnote{mensich nez 10 tun} slonech}}
protoze footnote je schovana ve skupine.

Druha koncepce by vypadala asi takto:
\def\title#1{{\def\footnote#1{}\xdef\@title{#1}%
   \def\footnote#1{\gdef\@pozn{#1}}\setbox\z@\hbox{#1}%
   }}
resp. takto:
\def\title#1{\let\orifoot\footnote\def\footnote#1{}\edef\@title{#1}%
   \def\footnote#1{\def\@pozn{#1}}\setbox\z@\hbox{#1}%
   \let\footnote\orifoot \let\orifoot\undefined
   }

Nevyhodou obou uvedenych reseni je, ze funguji pouze pro jednu poznamku.
Kdyby mela fungovat i pro vice poznamek, bylo by nutno pripsat cyklus, coz by
slo bez problemu v obou pripadech, ale to si treba muzeme nechat na priste.

				Zatim se mejte,
					Stepan Kasal




More information about the csTeX mailing list