Thanks for correcting that, Wolfgang. I must have added the other \fi instances because I was trying to use \orelse in MKIV and couldn't get it to work. Is it only supported in LMTX? Joey On Thu, Dec 9, 2021 at 11:30 AM Hans Hagen via ntg-context < ntg-context@ntg.nl> wrote: > On 12/9/2021 5:11 PM, Wolfgang Schuster via ntg-context wrote: > > Joey McCollum via ntg-context schrieb am 09.12.2021 um 15:08: > >> I believe \orelse might be what you want. It works with most \if... > >> macros, and it avoids nesting of \doifelse constructs. Here's an > >> example, which I use in conditionally removing preceding punctuation > >> if any other keys are defined before a specific one in an assignment: > >> > >> ``` > >> % If any of the preceding keys was specified, then replace any > >> preceding punctuation with a space > >> % and typeset the number with its CSL abbreviation, followed by a > >> comma > >> \ifdefined\btxsbllocvol > >> \removeunwantedspaces\removepunctuation\btxspace > >> \orelse\ifdefined\btxsbllocno > >> \removeunwantedspaces\removepunctuation\btxspace > >> \fi > >> \orelse\ifdefined\btxsbllocpt > >> [...] > >> \fi > >> ``` > > > > The \fi at the end of each \orelse branch is wrong. > > > > \ifdefined\btxsbllocvol > > ... > > \orelse\ifdefined\btxsbllocno > > ... > > \else > > ... > > \fi > and when 'string' comparison is needed one can do: > > \starttext > > \def\foo{foo} > \def\ofo{ofo} > \def\oof{oof} > > \def\XXX{ofo} > > \ifcstok\XXX\foo > FOO > \orelse\ifcstok\XXX\ofo > OFO > \orelse\ifcstok\XXX\oof > OOF > \else > XXX > \fi > > \def\XXX{\ofo} > > \iftok{\XXX}{\foo}% > FOO > \orelse\iftok{\XXX}{\ofo}% > OFO > \orelse\iftok{\XXX}{\oof}% > OOF > \else > XXX > \fi > > \ifcstok{\XXX}\foo > FOO > \orelse\ifcstok{\XXX}\ofo > OFO > \orelse\ifcstok\XXX}\oof > OOF > \else > XXX > \fi > > \stoptext > > watch the subtle differences. It all makes coding in tex primitives a > bit more visual appealing and readable. Oone of the objectives of lmtx > is that users can read the context code without pondering too much about > the syntax or getting depressed by possibly obscure helper macros and > expansion trickery. > > Hans > > > ----------------------------------------------------------------- > Hans Hagen | PRAGMA ADE > Ridderstraat 27 | 8061 GH Hasselt | The Netherlands > tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl > ----------------------------------------------------------------- > > ___________________________________________________________________________________ > If your question is of interest to others as well, please add an entry to > the Wiki! > > maillist : ntg-context@ntg.nl / > http://www.ntg.nl/mailman/listinfo/ntg-context > webpage : http://www.pragma-ade.nl / http://context.aanhet.net > archive : https://bitbucket.org/phg/context-mirror/commits/ > wiki : http://contextgarden.net > > ___________________________________________________________________________________ >