如何将分数显示为最大值中的带分数?

How to display a fraction as a mixed number in maxima?

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

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

所以我想得到的不是这个:

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

这可能吗?

我不认为有这方面的选项,但制作您自己的功能很容易。

例如:

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{}}$$

您可以通过 texput 分配 TeX 属性。有理数表示为 ((RAT) mmm nnn),您可以通过 :lisp $x 查看,其中 x 是一个最大值变量,它是一个有理数。因此,您可以通过以下方式设置 TeX 属性:

texput (?rat, texrat);

您的函数 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 的调用中是必需的。

有些东西没有记录;抱歉。