lualatex의 텍스트 모드에서 수학적 개체를 인쇄하는 방법은 무엇입니까?

lualatex의 텍스트 모드에서 수학적 개체를 인쇄하는 방법은 무엇입니까?

lua(build_filter)의 lualatex 콜백 중 하나에서 함수의 첫 번째 인수를 인쇄합니다.

\begin{luacode}
function f(a)
tex.print(a)
end
luatexbase.add_to_callback("buildpage_filter",f,"build_filter")
\end{luacode}

하지만 컴파일하는 동안 오류가 발생합니다.

! Missing $ inserted.
<inserted text>
$

좋아, 변수에 a수학 모드에서 사용되는 문자가 있을 수 있다는 것을 알고 있지만 텍스트 모드에서 어떻게 인쇄할 수 있나요?

답변1

항상 조각이 아닌 사용 가능한 테스트 파일을 제공하십시오.

buildpage_filter고정된 문자열 목록 중 하나를 인수로 가져오며 그 중 일부는 after_output밑줄을 포함하므로 해당 문자열을 문서에 삽입하는 경우 tex.print기본이 아닌 catcode 테이블을 사용해야 합니다.

가능한 서명 중 하나는 다음과 tex.print같습니다.

tex.print(<number> n, <string> s, ...)

n문자열을 인쇄하는 데 사용되는 catcode 테이블의 번호는 어디에 있습니까 s? 음수로 식별되는 두 개의 특수 catcode 테이블이 있습니다.

  • n = -1: 현재 활성화된 catcode 체계를 사용합니다.
  • n = -2: 와 동일한 catcode를 사용합니다 \the\toks. 즉, 모든 문자에는 catcode 12가 있고 공백에는 catcode 10이 있습니다.

관련 정보