\luatexbanner
打印以下字符串:
This is LuaTeX, Version 0.95.0 (TeX Live 2016)
。
可是,我想脱掉This is
。
我已尝试\StrBehind{\luatexbanner}{This is }
使用该包xstring
。
但是,它只返回一个空字符串。我的第二次尝试是
\StrExpand[10]{\luatexbanner}{\mystring}\mystring\\
\StrBehind{\mystring}{This is }
但这里没有变化。
答案1
\luatexbanner
生成一个类别代码为 12 个字符的字符串(空格仍为类别代码 10)。
\documentclass{article}
\usepackage{xstring}
\StrBehind{\luatexbanner}{\detokenize{This is }}[\mybanner]
\begin{document}
\texttt{\mybanner}
\end{document}
也\detokenize
将由This is
类别代码为 12 的字符组成。
TeX 世界中的一项常见政策是,以这种方式生成的所有字符串都包含类别代码为 12 的字符,但空格除外,其类别代码仍为 10。由
\the
\meaning
在传统 TeX 中;e-TeX、PDFTeX、LuaTeX 和 XeTeX 添加的标记遵循相同的模式。这是为了确保结果可预测;另一方面,这有时会使进行比较变得更加困难,就像你的情况一样。借助\detokenize
,e-TeX 引入了一种“字符串化”标记的好方法。