\luatexbanner
imprime la siguiente cadena:
This is LuaTeX, Version 0.95.0 (TeX Live 2016)
.
Sin embargo, quiero desnudarme This is
.
Intenté \StrBehind{\luatexbanner}{This is }
usar el paquete xstring
.
Sin embargo, sólo devuelve una cadena vacía. Mi segundo intento fue
\StrExpand[10]{\luatexbanner}{\mystring}\mystring\\
\StrBehind{\mystring}{This is }
Pero aquí no hay cambios.
Respuesta1
\luatexbanner
genera una cadena con código de categoría de 12 caracteres (los espacios siguen siendo el código de categoría 10).
\documentclass{article}
\usepackage{xstring}
\StrBehind{\luatexbanner}{\detokenize{This is }}[\mybanner]
\begin{document}
\texttt{\mybanner}
\end{document}
Con \detokenize
también This is
estará formado por caracteres con código de categoría 12.
Es una política común en el mundo TeX que todas las cadenas generadas de esa manera tengan caracteres con el código de categoría 12, excepto los espacios que siguen siendo el código de categoría 10. También lo son las cadenas generadas por
\the
\meaning
en TeX clásico; los agregados por e-TeX, PDFTeX, LuaTeX y XeTeX siguen los mismos patrones. Esto es para garantizar resultados predecibles; por otro lado, esto hace que a veces sea más difícil hacer comparaciones como en su caso. Con \detokenize
, e-TeX introdujo una buena forma de "encadenar" tokens.