\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}

With \detokenizeThis is카테고리 코드 12의 문자로 구성됩니다.

여기에 이미지 설명을 입력하세요

이러한 방식으로 생성된 모든 문자열은 범주 코드 10으로 남아 있는 공백을 제외하고 범주 코드 12의 문자를 갖는 것이 TeX 세계의 일반적인 정책입니다.

\the
\meaning

고전적인 TeX에서는; e-TeX, PDFTeX, LuaTeX 및 XeTeX에 의해 추가된 것들은 동일한 패턴을 따릅니다. 이는 예측 가능한 결과를 보장하기 위한 것입니다. 반면에 이는 귀하의 경우와 같이 비교를 수행하는 것을 때로는 더 어렵게 만듭니다. e-TeX 는 \detokenize토큰을 "문자열화"하는 좋은 방법을 도입했습니다.

관련 정보