在LuaTeX中加载.so库

在LuaTeX中加载.so库

我想使用一些 LuaTeX (LuaLaTeX 和 ConTeXt) 的 C .so 库,例如利马特更具体地说,我想做类似的事情

%\documentclass{article} % LuaLaTeX
%\usepackage{luacode} % LuaLaTeX 
%\begin{luacode*} in LuaLaTeX
\startluacode % ConTeXt
--This works in Lua, but does not work in LuaTeX
imath = require "imath"
z = imath.new(3)
z = z^48 
\stopluacode
%\end{luacode*} in LuaLaTeX 
%\begin{document} % LuaLaTeX
\starttext
\directlua{tex.print(z)}
\stoptext 
%\end{document} % LuaLaTeX

我读过有关重新编译 LuaTeX 或使用外部库函数的文章,但我不知道如何实现这些解决方案。顺便问一句,我想知道是否可以像加载dofileLua 库那样加载 .so 文件。

答案1

LuaTeX 函数允许您将 catcode 表作为第一个参数传递。因此,如果第一个参数是数字(如您的示例中所示),则不会打印,而是将其解释为 catcode 表。

您可以通过先转换为字符串来避免这种情况:

\documentclass{article} % LuaLaTeX
\usepackage{luacode} % LuaLaTeX 
\begin{luacode*}
imath = require "imath"
z = imath.new(3)
z = z^48
\end{luacode*}
\begin{document}
\directlua{tex.print(tostring(z))}
\end{document}

在此处输入图片描述

相关内容