\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 представил хороший способ «стрингификации» токенов.