Lua 替代 icomma 包?

Lua 替代 icomma 包?

我认为在 Lua 中模仿该包很容易icomma :我的第一个想法是每次在回调中逗号后面紧跟着数字时,在逗号周围添加括号process_input_buffer。正如 @UlrikeFisher 指出的那样,这会破坏实例tikz命令。第二次尝试时,我尝试了以下方法:

\documentclass{article}
\usepackage{unicode-math}
\usepackage{dcolumn}
\RequirePackage{luacode}
\newcommand*{\luaIC}{\ifmmode\mathord\mathcomma\else,\fi}
\begin{luacode}
  local string_gsub = string.gsub
  function luaicomma (buffer)
  local out = string_gsub (buffer, ",(%d)", "\\luaIC%1" )
return out
end
return luaicomma
\end{luacode}
\AtBeginDocument{%
  \directlua{luatexbase.add_to_callback
               ("process_input_buffer", luaicomma, "intelligent comma")
            }%
}
\begin{document}
0,5 $1,23$ list $(a,b,c)$ interval $[0, 1]$.

\(
  \begin{array}{|D{,}{,}{2}|}
    0,8  \\ 123,45
  \end{array}
\)
\end{document}

问题出现在dcolumn包中;PDF 输出是正确的,但我收到有关 .log 文件中缺少括号的错误。

有任何解决方法的提示吗?

相关内容