我正在开设一门课程,让学生习惯混合数字符号。但是,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
这可能吗?
答案 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{}}$$