lualatex 使用 vebatim 包

lualatex 使用 vebatim 包

这是有效的,我看不出有什么变化,但是下面的代码现在抛出了“缺少 \endcsname 插入”错误。

如果我只是按下回车键,lualatex 就会继续,读取文本文件 myfile.lua,并逐字逐句地打印出来。文件是 UTF-8 还是 ASCII 编码似乎并不重要(我通常使用前者)。如果这很重要,则使用 Windows 10 机器。

平均能量损失

\documentclass{article}

\RequirePackage{verbatim}%

\RequirePackage{luacode}%

\begin{luacode*}
function buildPath(...)                                                                                       
    -- get the system path separator                    
    local pathseparator = package.config:sub(1,1)       

    -- get the arguments                                
    local elements = {...}                              

    -- return the elements with the path separator      
    return table.concat(elements, pathseparator)        
end                                                     

-- Get the current path.             
function getPath(filename)                                                                                     
-- Print the current path. According to the documentation, if -2 is used, 
-- then the strings are read as if the result of detokenize: all characters 
-- have catcode 12 except space, which  has catcode 10.   

    tex.print(-2, buildPath(lfs.currentdir(), filename))
end       
\end{luacode*}

\DeclareRobustCommand\getPath[1]{\luadirect{getPath(\luastring{#1})}}

\begin{document}

\verbatiminput{\getPath{myfile.lua}}

\end{document}   

答案1

这从来没起作用。不要在里面使用强大的命令\verbatiminput。因此,请将您的\getPath命令定义为

\newcommand\getPath[1]{\luadirect{getPath(\luastring{#1})}}

相关内容