2

我有以下场景:

从 manimlib.imports 导入 *

类 Surds(场景):
    def 构造(自我):
        text_1 = TexMobject("\\sqrt{", "a", "\\times", "b", "}")

        text_1.set_color_by_tex("a", 蓝色)
        text_1.set_color_by_tex("b", 黄色)

        self.play(写(text_1))

这是为了写乳胶表达式

\sqrt{a \times b}

a彩色的蓝色和b彩色的黄色。

相反,发生了一些奇怪的事情。时间符号为黄色,surd 的“顶部”为蓝色,并且b根本不渲染:

在此处输入图像描述

我敢肯定 surd 把事情搞砸了,因为相同的着色技术在不同的场景中按预期工作:

在此处输入图像描述

那么我怎样才能让着色与 surd 一起工作呢?

旁注:我还注意到,在 LaTeX 表达式的末尾添加一个额外的 'b' 会使倒数第二个渲染,但这并不是真正的修复,因为\sqrt间距和颜色仍然关闭:

在此处输入图像描述

4

1 回答 1

2

尽管这更像是一种解决方法而不是修复,但我注意到添加括号似乎确实可以使事情正确呈现。像这样对场景进行编码:

类 Surds(场景):
    def 构造(自我):
        text_1 = TexMobject("\\sqrt{(","a","\\times","b",")}")

        text_1.set_color_by_tex("a", 蓝色)
        text_1.set_color_by_tex("b", 黄色)

        self.play(写(text_1))

产生这个:

在此处输入图像描述

理想情况下,可以在没有额外括号的情况下执行此操作,但如果没有,这可能是您能做的最好的事情。

于 2020-03-23T14:08:08.440 回答