Title

Qualified name: algan.mobs.manim\_compat.Title

class Title(*text_parts, include_underline=True, match_underline_width_to_text=False, underline_buff=0.25, **kwargs)

Bases: ManimCompatMob

An underlined heading, wrapping Manim’s Title.

The text is typeset by LaTeX in text mode (so Title("Chapter 1") reads as written, no maths escaping needed) with a horizontal rule beneath it, and the whole thing is moved to the top of the frame.

The frame it moves to the top of is Manim’s, not Algan’s, and it lands flush against the edge. Manim’s frame is 8 world units tall and its to_edge leaves a 0.5 gap, so the title’s top comes to rest at y = 3.5 – which is exactly where Algan’s default camera puts its top border. Nothing is cut off, but the text touches the frame edge with no margin at all. Call move_to_screen_edge() to inset it by the usual buffer, or .move(DOWN * 1) to place it by hand.

The default rule is sized from Manim’s frame too, at frame_width - 2, which comes out just narrower than Algan’s visible width. Pass match_underline_width_to_text=True for a rule the width of the words.

Animation

Constructing one records nothing: LaTeX runs immediately and the Mob joins the active Scene unspawned. Call spawn() to make it appear; later changes are recorded on the timeline like any other Mob’s.

Parameters:
  • *text_parts (str) – One or more strings, joined and typeset as a single line of text.

  • include_underline (bool) – Whether to draw the rule beneath the text. Defaults to True.

  • match_underline_width_to_text (bool) – Whether the rule spans only the width of the text. Defaults to False, which spans Manim’s frame width less 2 world units instead.

  • underline_buff (float) – Gap between the text and the rule, in world units. Defaults to 0.25 (Manim’s MED_SMALL_BUFF).

  • **kwargs (Any) – Manim’s remaining Tex arguments – notably font_size (defaults to 48), color and tex_template – plus the Algan-only scene, add_to_scene, glow and glow_radius.

underline

The rule Mob, present only when include_underline is true. Animate it like any other Mob.

Examples

A title placed where Algan’s camera can see all of it, over a shape:

Example: Example1Title

../_images/Example1Title-1.png
from algan import *

Title("A Title", match_underline_width_to_text=True).move(DOWN * 1).spawn()
Circle(radius=0.8, color=BLUE).spawn()

Scene.save_video()

Methods

Attributes

animation_manager

This mob's scene-owned animation manager.

basis

The Mob's orientation and scale, as a flattened 3x3 matrix of shape (*, 9).

casts_shadows

Whether this Mob's geometry blocks light on its way from a light source to another surface -- whether it casts a shadow.

children

The Mobs attached below this one, in attachment order.

closed_shell

Whether this Mob's triangles form a CLOSED shell -- every camera ray that enters the geometry crosses a second time on its way out.

draws_descendants

Whether get_render_primitives returns geometry belonging to this Mob's DESCENDANTS as well as its own.

forward

Get the direction the Mob is facing.

lifespan

This mob's [spawn, despawn) interval on its Scene timeline (a Lifespan).

location

The Mob's position in world space, shape (*, 3).

normalized_basis

The Mob's orientation with scale divided out, shape (*, 9).

parents

The Mobs this one is attached to, in attachment order.

receives_shadows

Whether this Mob's surfaces are darkened by shadows cast onto them.

right

Get the Mob's own rightward direction.

scale_coefficient

The Mob's scale along its own right, up and forward axes, shape (*, 3).

stroke_color

The color of the circuit's border stroke.

two_sided

Whether this Mob's geometry should be lit from whichever side the ray arrives on.

up

Get the Mob's own upward direction.

x

The Mob's x coordinate in world units, shape (*, 1).

xy

The Mob's x and y coordinates in world units, shape (*, 2).

y

The Mob's y coordinate in world units, shape (*, 1).

z

The Mob's z coordinate in world units, shape (*, 1).

z_index

Which of two exactly coplanar circuits draws in front (higher wins).