Como imprimir objetos matemáticos em modo texto em lualatex?

Como imprimir objetos matemáticos em modo texto em lualatex?

Em um dos callbacks do lualatex em lua (build_filter) imprimo o primeiro argumento da função.

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

Mas durante a compilação recebo um erro:

! Missing $ inserted.
<inserted text>
$

Ok, sei que a variável aprovavelmente possui caracteres usados ​​em modo matemático, mas como posso imprimi-la em modo texto?

Responder1

Sempre forneça um arquivo de teste utilizável, não um fragmento.

buildpage_filterobtém um argumento de uma lista fixa de strings, algumas delas, como after_outputincluem um sublinhado, portanto, se você inserir essa string no documento, tex.printprecisará usar uma tabela de código de gato não padrão.

Uma assinatura possível tex.printé

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

onde nestá o número da tabela catcode usada para imprimir a string s. Existem duas tabelas especiais de catcode que são identificadas por números negativos:

  • n = -1: Usa o regime catcode atualmente ativo
  • n = -2: usa os mesmos catcodes que \the\toks, ou seja, todos os caracteres têm catcode 12, espere espaços que tenham catcode 10.

informação relacionada