![Como imprimir objetos matemáticos em modo texto em lualatex?](https://rvso.com/image/391706/Como%20imprimir%20objetos%20matem%C3%A1ticos%20em%20modo%20texto%20em%20lualatex%3F.png)
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 a
provavelmente 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_filter
obtém um argumento de uma lista fixa de strings, algumas delas, como after_output
incluem um sublinhado, portanto, se você inserir essa string no documento, tex.print
precisará 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 n
está 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 ativon = -2
: usa os mesmos catcodes que\the\toks
, ou seja, todos os caracteres têm catcode 12, espere espaços que tenham catcode 10.