在 LuaLaTeX 中,我了解到如果您的 Lua 字符串有\n
,您可以逐行打印字符串,代码将忠实再现。但是如果您将该字符串设置为宏,它将不起作用。见下文。
\begin{luacode*}
multilines = [[
hello
world
]]
for line in multilines:gmatch"[^\n]*" do -- works fine
tex.print(line)
end
token.set_macro('multilines',multilines,'global')
\end{luacode*}
\multilines % does not satisfy
我想到了一个小小的办法:multilines:gsub('\n\n','\\par ')
。但我遇到了一个新问题。假设我想将以下文本(在 Lua 中)分配给 LaTeX 宏:
md = [[
\begin{markdown}
# section name
- list1
- list2
\end{markdown}
]]
--token.set_macro('md',md,'global') -- doesnt work
token.set_macro('md',md:gsub('\n\n','\\par '),'global') -- doesnt work
md
将字符串文字的新行推送到 LaTeX 宏时如何保留它们?