![LuaLaTeX 字符串文字 - 将新行保留在 Latex 宏中](https://linux22.com/image/439688/LuaLaTeX%20%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%96%87%E5%AD%97%20-%20%E5%B0%86%E6%96%B0%E8%A1%8C%E4%BF%9D%E7%95%99%E5%9C%A8%20Latex%20%E5%AE%8F%E4%B8%AD.png)
在 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 宏时如何保留它们?