首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在最大值中以混合数的形式显示分数?

如何在最大值中以混合数的形式显示分数?
EN

Stack Overflow用户
提问于 2017-08-28 09:02:59
回答 2查看 952关注 0票数 4

我正在教学生们习惯混合数字表示法的课程。然而,maxima所做的所有计算都使用了更传统的分数表示法。是否可以将3/2表示为1 1/2。我只需要这个来输出乳胶。

代码语言:javascript
复制
(%i4) tex(3/2);
$${{3}\over{2}}$$
(%o4)                                false

所以我想要的不是这个,而是:

代码语言:javascript
复制
(%i4) tex(3/2);
$$1 {{1}\over{2}}$$
(%o4)                                false

这个是可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-28 17:30:34

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

代码语言:javascript
复制
texput (?rat, texrat);

其中函数texrat被定义为(例如):

代码语言:javascript
复制
texrat(x) := block ([i, r], 
                    i:floor(x), 
                    r:x-i, 
                    sconcat ("{", i, "} {{", num(r), "}\\over{", denom(r), "}}"));

示例:

代码语言:javascript
复制
(%i11) tex(sin(12/7));
$$\sin \left({1} {{5}\over{7}}\right)$$

注意,新函数被应用到一个rational中,即使它在另一个操作符中。

当然,您可以更改texrat的输出,使其成为您想要的任何东西。

注意,在调用?时,rat之前的texput是必需的。

有些东西是没有文件记录的,很抱歉。

票数 3
EN

Stack Overflow用户

发布于 2017-08-28 12:46:03

我认为这是没有选择的,但很容易实现您自己的功能。

例如:

代码语言:javascript
复制
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{}}$$
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45915359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档