From 8e71db4f69079ddf57b5d05a64336d81e890c54b Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Wed, 9 May 2018 14:05:32 -0700 Subject: [PATCH] Improvements to TexMobject --- mobject/svg/tex_mobject.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/mobject/svg/tex_mobject.py b/mobject/svg/tex_mobject.py index 642d1a61..c7bcc78b 100644 --- a/mobject/svg/tex_mobject.py +++ b/mobject/svg/tex_mobject.py @@ -5,6 +5,7 @@ from svg_mobject import VMobjectFromSVGPathstring from utils.config_ops import digest_config from utils.strings import split_string_list_to_isolate_substring from utils.tex_file_writing import tex_to_svg_file +from mobject.geometry import Line from mobject.types.vectorized_mobject import VGroup from mobject.types.vectorized_mobject import VectorizedPoint @@ -290,3 +291,27 @@ class TexMobjectFromPresetString(TexMobject): TexMobject.__init__(self, self.tex, **kwargs) self.set_color(self.color) + +class Title(TextMobject): + CONFIG = { + "scale_factor": 1, + "include_underline": True, + "underline_width": FRAME_WIDTH - 2, + # This will override underline_width + "match_underline_width_to_text": False, + "underline_buff": MED_SMALL_BUFF, + } + + def __init__(self, text, **kwargs): + TextMobject.__init__(self, text, **kwargs) + self.scale(self.scale_factor) + self.to_edge(UP) + if self.include_underline: + underline = Line(LEFT, RIGHT) + underline.next_to(self, DOWN, buff=self.underline_buff) + if self.match_underline_width_to_text: + underline.match_width(self) + else: + underline.scale_to_fit_width(self.underline_width) + self.add(underline) + self.underline = underline