[cstex] Problém s testy definovanými pomocí \newif

Jaroslav Hajtmar hajtmar at gyza.cz
Tue Sep 29 18:44:09 CEST 2015


Dobrý den.
Potýkám se s problémem funkčnosti testů v ConTeXtových makrech, která 
jsou umístěna v prostředí tabulek \startxtable ... \stopxtable.
Že je to v ConTeXtu je v tuto chvíli nepodstatné, nicméně nejsem v tuto 
chvíli schopen vyrobit nějaký plainový či latexový minimální příklad, 
kde bych ukázal co nefunguje.

Na důvod nefunkčnosti jsem už zřejmě narazil - viz 
http://tex.stackexchange.com/questions/35807/newif-conditional-causing-problem-in-typeout-or-edef

Tam se píše:
% The problem here is that \testtrue is not expandable and not protected 
and
% therefore fragile. It is defined as \let\iftrue\iftrue. In an expandable
% context like \edef or \typeout the \let assignment is ignored, and both
% if-switches are expanded. Because there is only one \fi (which is 
taken as
% part of \iftrue) the compiler complains about the missing \fi.

Chci se touto cestou zeptat, zda existuje možnost definovat makra, která 
expandují do hodnot true nebo false tak aby šly jednoduše nahradit testy 
hodnot definovaných pomocí \newif

Něco ve smyslu:
\def\notEOF{false}

aby se následně dobře vyhodnocoval test: \if\notEOF .... \else ... \fi

Jde mi o to, abych zachoval nějakou vizuální kompatibilitu s testy typu
\ifnotEOF ... \else ... \fi

Na vysvětlenou dodávám, že pokud bych dané řešení potřeboval sám jen pro 
sebe, tak bych to to vyřešil jinak, nicméně pracuji na jednom modulu 
(většina je psána v lua) a dá se předpokládat, že jej budou užívat i 
jiní uživatelé, takže tomu chci dát jistý rámec.

PS: Pokud jsem úplně mimo, tak se velmi omlouvám.

Zdraví Jarda Hajtmar






More information about the csTeX mailing list