Pages 1-2 of interface3.pdf, "The LaTeX3 Interfaces" released 2018-10-31, only lists specifiers of c,D, F, f, N, n, o, p, T, V, v, w and x. The e specifier of \str_if_eq:eeTF is not in that list. What does it mean and where is it documented?


It is a wrapper for the \expanded primitive that is in luatex and in xetex/ptex/pdftex in texlive 2019, see interface3 on page 27 which says

\exp_args:Ne function { tokens }

This function absorbs two arguments (the function name and the tokens) and exhaustively expands the tokens. The result is inserted in braces into the input stream after reinsertion of the function. Thus the function may take more than one argument: all others are left unchanged.

TeXhackers note: This relies on the \expanded primitive when available (in LuaTeX and starting around 2019 in other engines). Otherwise it uses some fall-back code that is very much slower. As a result it should only be used in performance-critical code if typical users have a recent installation of the TeX ecosystem.

  • Thanks; I dropped them a note asking to include the relevant material from Section V on pp. 1-2. – shmuel Feb 5 at 22:02
  • @shmuel yes I got the email:-) – David Carlisle Feb 5 at 22:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.