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

Tomas Hala tomas.hala at mendelu.cz
Wed Sep 30 17:55:07 CEST 2015


Ahoj Jardo,
nevím přesně, co řešíš, ale zdá se mi, že základní problém 
by mohl být v tom, že příkazy \if (i \ifx) vyžadují dva paramtery.

Možná by Ti mohlo pomoci toto:

\starttext
\def\mujproblem{1}
\def\notEOF{\mujproblem 1}
\if\notEOF děláme \else končíme \fi
\stoptext

Do makra \mujproblem si někde strčíš jedničku, pokud chceš, aby "podmínka"
\notEOF byla true. Makro \notEOF pak bude expandovat na dva tokeny, 
při shodě děláš, při neshodě, kterou simuluješ jakoukoliv jinou
jednoznakovou hodnotou, končíš.

Zdraví

Tom



Tue, Sep 29, 2015 ve 06:44:09PM +0200 Jaroslav Hajtmar napsal(a):
# 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
# 
# 
# 
# _______________________________________________
# csTeX mailing list
# csTeX at cs.felk.cvut.cz
# https://lists.felk.cvut.cz/mailman/listinfo/cstex

                                         Tomáš Hála
--------------------------------------------------------------------
Mendelova univerzita, Provozně ekonomická fakulta, ústav informatiky
Zemědělská 1, CZ-613 00 Brno,  tel. +420 545 13 22 28
--------------------------------------------------------------------
http://akela.mendelu.cz/~thala



More information about the csTeX mailing list