diff --git a/manim/mobject/svg/text_mobject.py b/manim/mobject/svg/text_mobject.py index e367656808..9d6b7a2990 100644 --- a/manim/mobject/svg/text_mobject.py +++ b/manim/mobject/svg/text_mobject.py @@ -148,30 +148,29 @@ def __init__(self, *text, line_spacing=-1, alignment=None, **config): lines_str = "\n".join(list(text)) self.lines_text = Text(lines_str, line_spacing=line_spacing, **config) - lines_str_list = lines_str.split("\n") + lines_str_list = lines_str.splitlines(keepends=True) self.chars = self.gen_chars(lines_str_list) chars_lines_text_list = self.get_group_class()() char_index_counter = 0 - for line_index in range(lines_str_list.__len__()): + for line_index in range(len(lines_str_list)): chars_lines_text_list.add( self.lines_text[ char_index_counter : char_index_counter - + lines_str_list[line_index].__len__() - + 1 + + len(Text(lines_str_list[line_index])) ], ) - char_index_counter += lines_str_list[line_index].__len__() + 1 + char_index_counter += len(Text(lines_str_list[line_index])) self.lines = [] self.lines.append([]) - for line_no in range(chars_lines_text_list.__len__()): + for line_no in range(len(chars_lines_text_list)): self.lines[0].append(chars_lines_text_list[line_no]) self.lines_initial_positions = [] - for line_no in range(self.lines[0].__len__()): + for line_no in range(len(self.lines[0])): self.lines_initial_positions.append(self.lines[0][line_no].get_center()) self.lines.append([]) self.lines[1].extend( - [self.alignment for _ in range(chars_lines_text_list.__len__())], + [self.alignment for _ in range(len(chars_lines_text_list))], ) self.add(*self.lines[0]) self.move_to(np.array([0, 0, 0])) @@ -193,16 +192,15 @@ def gen_chars(self, lines_str_list): """ char_index_counter = 0 chars = self.get_group_class()() - for line_no in range(lines_str_list.__len__()): + for line_no in range(len(lines_str_list)): chars.add(self.get_group_class()()) chars[line_no].add( *self.lines_text.chars[ char_index_counter : char_index_counter - + lines_str_list[line_no].__len__() - + 1 + + len(Text(lines_str_list[line_no])) ] ) - char_index_counter += lines_str_list[line_no].__len__() + 1 + char_index_counter += len(Text(lines_str_list[line_no])) return chars def set_all_lines_alignments(self, alignment): @@ -213,7 +211,7 @@ def set_all_lines_alignments(self, alignment): alignment : :class:`str` Defines the alignment of paragraph. Possible values are "left", "right", "center". """ - for line_no in range(0, self.lines[0].__len__()): + for line_no in range(0, len(self.lines[0])): self.change_alignment_for_a_line(alignment, line_no) return self @@ -232,8 +230,8 @@ def set_line_alignment(self, alignment, line_no): def set_all_lines_to_initial_positions(self): """Set all lines to their initial positions.""" - self.lines[1] = [None for _ in range(self.lines[0].__len__())] - for line_no in range(0, self.lines[0].__len__()): + self.lines[1] = [None for _ in range(len(self.lines[0]))] + for line_no in range(0, len(self.lines[0])): self[line_no].move_to( self.get_center() + self.lines_initial_positions[line_no], ) @@ -555,7 +553,7 @@ def font_size(self, font_val): def gen_chars(self): chars = self.get_group_class()() submobjects_char_index = 0 - for char_index in range(self.text.__len__()): + for char_index in range(len(self.text)): if self.text[char_index] in (" ", "\t", "\n"): space = Dot(radius=0, fill_opacity=0, stroke_opacity=0) if char_index == 0: