\luatexbanner
imprime a seguinte string:
This is LuaTeX, Version 0.95.0 (TeX Live 2016)
.
No entanto, eu quero me despir This is
.
Eu tentei \StrBehind{\luatexbanner}{This is }
usar o pacote xstring
.
No entanto, ele retorna apenas uma string vazia. Minha segunda tentativa foi
\StrExpand[10]{\luatexbanner}{\mystring}\mystring\\
\StrBehind{\mystring}{This is }
Mas nenhuma mudança aqui.
Responder1
\luatexbanner
gera uma string com código de categoria 12 caracteres (espaços ainda são código de categoria 10).
\documentclass{article}
\usepackage{xstring}
\StrBehind{\luatexbanner}{\detokenize{This is }}[\mybanner]
\begin{document}
\texttt{\mybanner}
\end{document}
Com \detokenize
também This is
consistirá de caracteres com código de categoria 12.
É uma política comum no mundo TeX que todas as strings geradas dessa forma tenham caracteres com código de categoria 12, exceto espaços que permanecem como código de categoria 10. O mesmo ocorre com as strings geradas por
\the
\meaning
no TeX clássico; os adicionados pelo e-TeX, PDFTeX, LuaTeX e XeTeX seguem os mesmos padrões. Isto é para garantir resultados previsíveis; por outro lado, isso às vezes torna mais difícil fazer comparações, como no seu caso. Com \detokenize
o e-TeX introduziu uma boa maneira de “stringificar” tokens.