Проблемы с раскраской LaTeX Surd в маниме

У меня такая сцена:

from manimlib.imports import *

class Surds(Scene):
    def construct(self):
        text_1 = TexMobject("\\sqrt{", "a", "\\times", "b", "} ")

        text_1.set_color_by_tex("a", BLUE)
        text_1.set_color_by_tex("b", YELLOW)

        self.play(Write(text_1))

Which is meant to write the latex expression

\sqrt{a \times b}

С a синего цвета и b желтого цвета.

Вместо этого происходит что-то странное. Символ времени окрашен в желтый цвет, верхняя часть серда окрашена в синий цвет, а b вообще не отображается:

введите описание изображения здесь

Я уверен, что сурд все портит, потому что та же самая техника окраски работала, как задумано, в другой сцене:

введите описание изображения здесь

Итак, как мне заставить раскраску работать с сурдом?

Примечание: я также заметил, что добавление дополнительной буквы "b" в конце выражения LaTeX приводит к предпоследнему рендерингу, но на самом деле это не исправление, поскольку \sqrt интервал и цвет по-прежнему отключены :

введите описание изображения здесь


person FlipTack    schedule 23.03.2020    source источник


Ответы (1)


Хотя это скорее обходной путь, чем исправление, я заметил, что добавление круглых скобок, похоже, делает все правильно отображаемым. Кодируем сцену так:

class Surds(Scene):
    def construct(self):
        text_1 = TexMobject("\\sqrt{(","a","\\times","b",")}")

        text_1.set_color_by_tex("a", BLUE)
        text_1.set_color_by_tex("b", YELLOW)

        self.play(Write(text_1))

Производит это:

введите описание изображения здесь

В идеале это можно было бы сделать без дополнительных скобок, но в противном случае это лучшее, что вы можете сделать.

person FlipTack    schedule 23.03.2020