Rik Kabel schrieb am 08.06.2021 um 18:14:
Hello all,
Odd issue with LMTX (works fine with --luatex). \doifelsemode causes a failure if it is used to set a simple value such as on, off, yes, no, ..., but works with a dimension. Perhaps better illustrated by an example:
\definemode [aaa] [keep] \setuplayout [ marking=\doifmodeelse{aaa}{off}{on}, % marking=on, grid=\doifmodeelse{aaa}{yes}{no}, % grid=yes, bottom=\doifmodeelse{aaa}{10mm}{20mm}, ] \starttext This is only a test. \stoptext
The problem occurs whether or not the mode is enabled. In the example, it fails with the mode test in the either the marking= or grid= keys, but has no problem with it in the bottom= key.
The error message says:
The control sequence marked <to be read again> should not appear between \csname and \endcsname.
pointing to the enabled \doifmodeelse line.
The same issue occurs with the following, using \doifmode:
\definemode [aaa] [keep] \setuplayout [ marking=on, marking=\doifmode{aaa}{off}, ] \starttext This is only a test. \stoptext
This did work without complaint a few months ago.
You can never be sure if these combinations (\doifXXX within \setupXXX) work without problems. The only reliable method in this case is: % default setup \setuplayout [marking=on] % mode dependent setup \startmode[aaa] \setuplayout [marking=off] \stopmode Wolfgang