3b1b/manim · error · NotImplementedError
Compiler '{compiler}' is not implemented
Error message
Compiler '{compiler}' is not implemented What it means
Raised by full_tex_to_svg (tex_file_writing.py:99) when the compiler string is anything other than 'latex' or 'xelatex' — those two names determine the dvi extension ('.dvi' vs '.xdv'), and no other compiler is mapped. It is a NotImplementedError by design: only the DVI-producing pipelines are wired up.
Source
Thrown at manimlib/utils/tex_file_writing.py:99
compiler, preamble = get_tex_config(template)
preamble = "\n".join([preamble, additional_preamble])
full_tex = get_full_tex(latex, preamble)
return full_tex_to_svg(full_tex, compiler, message)
@cache_on_disk
def full_tex_to_svg(full_tex: str, compiler: str = "latex", message: str = ""):
if message:
print(message, end="\r")
if compiler == "latex":
dvi_ext = ".dvi"
elif compiler == "xelatex":
dvi_ext = ".xdv"
else:
raise NotImplementedError(f"Compiler '{compiler}' is not implemented")
# Use the custom LaTeX cache directory from the config
temp_dir = Path(manim_config.directories.latex_cache)
temp_dir.mkdir(exist_ok=True) # Create the directory if it does not already exist
# Define paths for the intermediate TeX and DVI files
tex_path = temp_dir / "working.tex"
dvi_path = tex_path.with_suffix(dvi_ext)
# Write tex file
tex_path.write_text(full_tex)
# Run latex compiler
process = subprocess.run(
[
compiler,
*(["-no-pdf"] if compiler == "xelatex" else []),
"-interaction=batchmode",View on GitHub (pinned to dee01804d4)
Solutions
- Use compiler='xelatex' (or 'latex'); for Unicode/CJK documents choose xelatex with appropriate fonts
- Check for typos/case in the config value; it must match exactly
- If you truly need another compiler, patch full_tex_to_svg to map it to a dvi-like extension — but prefer the supported pair
Example fix
# before full_tex_to_svg(tex, compiler='pdflatex') # raises NotImplementedError # after full_tex_to_svg(tex, compiler='xelatex')
Defensive patterns
Strategy: validation
Validate before calling
assert compiler in ('latex', 'xelatex'), \
f"unsupported compiler '{compiler}': manimlib only implements 'latex' and 'xelatex'" Prevention
- Restrict tex_compiler config to 'latex' or 'xelatex'
- Use xelatex for Unicode/CJK documents
- Do not port manim-community compiler names (pdflatex/lualatex) into manimlib configs
When it happens
Trigger: Setting tex_compiler: 'pdflatex' or 'lualatex' in the manim config, or calling full_tex_to_svg(tex, compiler='pdflatex'). Passing 'latex' or 'xelatex' works; any other string (including case variants like 'LaTeX') raises.
Common situations: Users porting configs from manim-community (which supports pdflatex/lualatex) to manimlib; needing CJK/Unicode and trying compilers other than xelatex; typos or case mismatch in the config key.
Related errors
- Missing '{' inserted
- Missing '}' inserted
- LaTeX compilation failed
- Unsupported: {path_verb}
- At least 2 mobjects needed for Union.
AI-assisted analysis of 3b1b/manim@dee01804d4 (2026-08-14).
Data as JSON: /api/errors/ab913bd62842cc16.
Report an issue: GitHub.