subtitles

class janim.timeline.subtitles.SubtitleInfo(text: str, range: TimeRange, kwargs: dict, subtitle: Text | TypstText)

基类:object

调用 subtitle() 的参数信息

text: str
range: TimeRange
kwargs: dict
subtitle: Text | TypstText
class janim.timeline.subtitles.SubtitlesMixin(*args, **kwargs)

基类:TimelineCore

向 Timeline 提供添加字幕的功能

提示

该类中的方法都可以直接在 Timeline 中使用

subtitle(text: str | Iterable[str], duration: float = 1, *, delay: float = 0, scale: float | Iterable[float] = 0.8, use_typst_text: bool | Iterable[bool] = False, surrounding_color: JAnimColor = BLACK, surrounding_alpha: float = 0.5, font: str | Iterable[str] = [], depth: float = -100000.0, **kwargs) → TimeRange
subtitle(text: str | Iterable[str], range: TimeRange, **kwargs) → TimeRange

添加字幕

  • 文字可以传入一个列表,纵向排列显示

  • 可以指定在当前位置往后 delay 秒才显示

  • duration 表示持续时间

  • scale 表示对文字的缩放,可以传入列表表示对各个文字的缩放

  • use_typst_text 表示是否使用 TypstText,可以传入列表表示各个文字是否使用

  • 将 surrounding_alpha 设置为 0 可以禁用附带的底框

Config 中也提供了一些可以配置的参数:

  • subtitle_font 可全局配置字幕所使用的字体

  • subtitle_to_edge_buff 可配置字幕离底边的距离,默认是 DEFAULT_ITEM_TO_EDGE_BUFF

返回值表示显示的时间段

place_subtitle(subtitle: Text | TypstText, range: TimeRange) → None

被 subtitle() 调用以将字幕放置到合适的位置:

  • 对于同一批添加的字幕 [a, b],则 a 放在 b 的上面

  • 如果在上文所述的 [a, b] 仍存在时,又加入了一个 c,则 c 放在最上面

has_subtitle() → bool