使用 Lua 将可选参数传递给 LaTeX 命令

使用 Lua 将可选参数传递给 LaTeX 命令

以下 tex 文档是使用 LuaLaTeX 引擎编译的。

\documentclass{article}
\usepackage{keytest}
\begin{document}
\myAddFunction[c=30,d=40]{10}{20}
\end{document}

运行正常,输出结果与预期一致,为 100.0。以下是“keytest.sty”文件中的代码。

\ProvidesPackage{keytest}
\RequirePackage{xkeyval}
\RequirePackage{luacode}
\begin{luacode*}
function test(a,b,c,d)
local c = c or 3
local d = d or 4
  return a + b + c + d
end
\end{luacode*}
% ========= KEY DEFINITIONS =========
\define@key{someop}{c}{\def\mop@third{#1}}
\define@key{someop}{d}{\def\mop@fourth{#1}}
% ========= KEY DEFAULTS =========
\setkeys{someop}{c=3,d=4}%
% ========= Defining Command =========
\newcommand{\myAddFunction}[3][]{{%
  \setkeys{someop}{#1}
  \directlua{tex.print(test(#2,#3,"\mop@third","\mop@fourth"))}%
}}%
\endinput

我也可以使用除xkeyval包之外的其他包。我正在寻找仅使用 Lua(不使用xkeyval 或其他包)将选项传递给命令的默认方法。我认为这是可能的。如何做到?

相关内容