我认为在 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 文件中缺少括号的错误。
有任何解决方法的提示吗?