I've tried with a wrapper and it seems to work fine. However, changing definitions "on the fly" to make xstring usable seems to break things in ConTeXt... Whatever. I guess I will have to find out other command redefinitions in ConTeXt. Thank you very much, Phelype. Jairo :) El mar., 7 de jul. de 2020 a la(s) 13:54, Phelype Oleinik ( phe.h.o1@gmail.com) escribió:
Hi Jairo,
ConTeXt's \unexpanded is e-TeX's \protected, so the error boils down to something like: \edef\x{\unexpanded{#}}, which works in Plain but not in ConTeXt.
Usually packages that claim to be generic have to cope with that. xstring would need to do (in a ConTeXt-specific loader): \let\xstring@unexpanded\normalunexpanded and \let\xstring@unexpanded\unexpanded in Plain and LaTeX loaders, then then use \xstring@unexpanded in the code. But `xstring` doesn't claim (that I found, at least) to be compatible with ConTeXt, so it's understandable: though if it is compatible with Plain, it wouldn't be hard to adapt to ConTeXt.
That said, you can load `xstring` if you do: \let\unexpanded\normalunexpanded \input xstring.tex \let\unexpanded\protected but the internals of the package will probably be comprimised by the misuse of (ConTeXt) \unexpanded.
Phelype
On Tue, Jul 7, 2020 at 3:40 PM Jairo A. del Rio
wrote: Reading about macro bundles meant to be generic (format agnostic), some
of them work in plain/LaTeX, but crash when loaded on ConTeXt. The following happens with xstring.tex
tex error > tex error on line 372 in file xstring.tex: ! Illegal
parameter number in definition of \xs_reserved_C
<to be read again>
1
\xs_newlines ->\unexpanded {}\xs_def \xs_arg_i {##1
}
\xs_newmacro_ ...name \xs_myarg }\edef \xs_reserved_C {\unexpanded
\expandafter {\xs_newlines
}\edef \noexpand \xs_call }\edef \xs_reserved_D {...
l.372 \xs_newmacro\StrRemoveBraces{}{1}{1}
{%
<empty file>
You meant to type ## instead of #, right? Or maybe a } was forgotten
somewhere
earlier, and things are all screwed up? I'm going to assume that you
meant ##.
I've tried changing the catcode regime, but with no effect.
Don't misunderstand me. I'm aware of ConTeXt capabilities and string
manipulation via Lua. My question is more like: "Why doesn't xstring.tex?"
Sorry if my question is outside the scope of ConTeXt
developers/maintainers. Thank you very much.
Jairo :)
___________________________________________________________________________________
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
___________________________________________________________________________________
___________________________________________________________________________________ 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
___________________________________________________________________________________