如何在最大值中将分数显示为混合数?

时间:2017-08-28 09:02:59

标签: maxima

我正在开设一门课程,让学生习惯混合数字符号。但是,maxima所做的所有计算都使用更传统的分数表示法。是否可以将3/2显示为1 1/2。我只需要这个乳胶输出。

(%i4) tex(3/2);
$${{3}\over{2}}$$
(%o4)                                false

所以不是这样,我想得到:

(%i4) tex(3/2);
$$1 {{1}\over{2}}$$
(%o4)                                false

这可能吗?

2 个答案:

答案 0 :(得分:2)

您可以通过texput指定TeX属性。有理数表示为((RAT) mmm nnn),您可以通过:lisp $x看到x,其中texput (?rat, texrat); 是一个有理数的Maxima变量。因此,您可以通过以下方式设置TeX属性:

texrat

您的函数texrat(x) := block ([i, r], i:floor(x), r:x-i, sconcat ("{", i, "} {{", num(r), "}\\over{", denom(r), "}}")); 定义为(例如):

(%i11) tex(sin(12/7));
$$\sin \left({1} {{5}\over{7}}\right)$$

示例:

texrat

请注意,即使新函数位于另一个运算符内,它也会应用于有理数。

当然,您可以更改?的输出,使其成为您想要的任何内容。

请注意,调用rat时需要texput之前Textbox

其中一些内容没有记录;抱歉。

答案 1 :(得分:1)

我不认为有这样的选择,但很容易做出自己的功能。

例如:

texixed(a):= tex(printf(false, "~a ~a", a-mod(a,1) , mod(a,1)));
texixed(5/3);
   $$\mbox{{}1 2/3{}}$$
texixed(7/2);
   $$\mbox{{}3 1/2{}}$$