我想为扩展欧几里得算法在 LuaTeX 中。
\documentclass[a4paper]{scrartcl}
\usepackage{luacode}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new, babelshorthands=true]{german}
\newcommand{\wert}[1]{\directlua{tex.sprint(#1)}}
\begin{document}
\begin{luacode*}
function EEA(a,b)
if b == 0 then return a, 1, 0 end
d,s,t = EEA(b, a % b)
x = s - (a//b) * t
return d, t, x
end
p = 47
q = 97
d,x,y = EEA(p,q)
\end{luacode*}
We have $\wert{d} = \wert{p} \cdot \wert{x} + \wert{p} \cdot \wert{y}$.
\end{document}
运行代码https://www.lua.org/cgi-bin/demo有效,但是当我尝试 LuaTeX 时,出现错误:
语言 ngerman 已加载;id 为 8[\directlua]:4:
'/' 附近有意外符号。
\luacode@dbg@exec ...code@maybe@printdbg {#1} #1 }
l.20 \end{luacode*}
我想我与百分号有关,但是
function gcd(a,b)
if b == 0 then return a end
return gcd(b, a % b)
end
运行正常。我该如何解决这个问题?
我有 LuaTeX 版本 1.0.4 并且我刚刚运行lualatex lua_test.tex
。