Почему \StrBehind{\luatexbanner}{This is} возвращает пустую строку?

Почему \StrBehind{\luatexbanner}{This is} возвращает пустую строку?

\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, следуют тем же шаблонам. Это сделано для того, чтобы гарантировать предсказуемые результаты; с другой стороны, это иногда затрудняет выполнение сравнений, как в вашем случае. С \detokenizee-TeX представил хороший способ «стрингификации» токенов.

Связанный контент