扩展 Maples Latex 函数以支持 siunitx

扩展 Maples Latex 函数以支持 siunitx

在 maple 中有一个名为的函数latex可以将 maple 表达式转换为等效的 latex 表达式。

不幸的是,我似乎无法正确使用具有转换功能的单位:

> with(Units[Standard]):
> latex(Unit('m'))
{\it Unit} \left( m \right)

根据文档,latex我需要实现一个名为的函数latex/Unit,但是:

> `latex/Unit` := proc (v) "test" end proc:
> latex(Unit('m'));
{\it Unit} \left( m \right)

如何创建一个可以使用 siunitx 将表达式正确转换为乳胶的函数?

虽然\SI{5.523}{m}比 更受欢迎5.523\si{m},但是第二种格式也可以。

如果可能的话,我还希望将数字改为输出为\num{5.5}而不是5.5,但我更关心单位。当然,在单位中使用\meter而不是也是可取的,但并不那么重要。m

答案1

这是一个 Maple 问题,而不是 LaTeX 问题。

不过,基本问题是Unit( 'm' )在传递给之前先进行求值latex。看看下面的 uneval 引号的效果:

> latex( int( 1 / x , x ) ) ;
\ln  \left( x \right) 
> latex( 'int'(1 / x , x ) ) ;
\int \!{x}^{-1}\,{\rm d}x

因此,就你的情况而言,该latex/Unit函数根本不会被调用。你可以使用

> latex('Unit'('m'));

之后你还需要做一些工作才能产生你想要的结果,但至少函数被执行了。明天我会想办法实现一个不那么繁琐的语法。

相关内容