在 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'));
之后你还需要做一些工作才能产生你想要的结果,但至少函数被执行了。明天我会想办法实现一个不那么繁琐的语法。