在写数学表达式时,我想删除符号周围的空格+
。
对于简单的表达式,我可以通过像 这样的a+b
括起来来实现。但是对于复杂的表达式,例如 ,则需要更多的劳动:+
a{+}b
a+b+c+d+e
我想问一下是否有可编程的这样我就可以定义一个宏fooplus
:
\newcommand{\fooplus}[1]{do some thing here about +}
这样是否\fooplus{a+b+c+d+e}
会产生相同的结果a{+}b{+}c{+}d{+}e
?
感谢您花时间阅读我的问题。
答案1
答案2
如果您会使用 LuaLaTeX,那么设置一个 Lua 函数来将+
-- 以及-
、*
和=
-- 的状态更改为数学普通状态并不需要花费太多功夫。(Lua 提供了强大而灵活的字符串处理函数。)\fooplus
下面的 LaTeX 宏只是调用 Lua 函数。
% !TeX program = lualatex
\documentclass{article}
\usepackage{luacode} % for 'luacode' environment and '\luastring' macro
\begin{luacode}
function fooplus ( s )
tex.sprint (( string.gsub ( s , "[%+%-%*%=]" , "{%0}" ) ))
end
\end{luacode}
\newcommand\fooplus[1]{\directlua{fooplus(\luastring{#1})}}
\begin{document}
$\fooplus{a+b+c+d+e=f-g*h}$
$a+b+c+d+e=f-g*h$
\end{document}