我正在教学生们习惯混合数字表示法的课程。然而,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这个是可能的吗?
发布于 2017-08-28 17:30:34
您可以通过TeX分配texput属性。有理数表示为((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)$$注意,新函数被应用到一个rational中,即使它在另一个操作符中。
当然,您可以更改texrat的输出,使其成为您想要的任何东西。
注意,在调用?时,rat之前的texput是必需的。
有些东西是没有文件记录的,很抱歉。
发布于 2017-08-28 12:46:03
我认为这是没有选择的,但很容易实现您自己的功能。
例如:
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{}}$$https://stackoverflow.com/questions/45915359
复制相似问题