黑科技——Manim的安装和使用

什么是Manim

  Manim是一个基于Python编写的数学动画引擎,可以做出像3b1b那样高逼格的解释性的数学动画。在Github上已经有了两万多star,链接https://github.com/3b1b/manim。本文开头的动画只是一个最简单的例子。

Manim的安装

本机安装(Mac)

需要准备

  • MiKTex: 这是用来给manim生成文字的。建议在这里下载Basic版的,只有200MB:https://miktex.org/download
  • FFmpeg: 视频处理程序。
  • dvisvgm: DVI转SVG的工具。

运行以下命令安装依赖项

安装dvisvgm可以使用以下脚本:

详细的步骤解释见 http://gavinzhang.work/%E5%85%B6%E4%BB%96/manim%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B.html

使用Docker

  如果嫌在本机安装太麻烦而且不好卸载,可以使用Docker来快速构建所需要的环境。

  首先要准备好Docker的环境,这里提供了Ubuntu和Mac的Docker安装方法:《DOCKER – 镜像和容器的构建使用》

  运行以下命令

  就这样几行,所需要的环境就配置好啦。

让Manim支持中文

  让Manim支持中文稍微有些麻烦,主要步骤有以下三步:
  ① 安装texlive
  ② 下载并安装中文字体。
  ③ 修改Manim的tex引擎设置为CTex,并在CTex的模板中设置字体。

安装TexLive

  texlive是一个发行版,包括tex, latex, xelatex等等诸多工具。官网 https://www.tug.org/texlive/

  ① 联网安装,首先下载一个3M大小的安装文件,http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz,在linux下运行,联网安装texlive

  如果此前安装过texlive,需要先删除上次安装目录:(将2019换成上次安装的版本)

  解压缩安装包,然后执行

  根据命令行的提示,输入大写的i开始安装。

  安装完成后,需要配置PATH,修改/etc/profile文件,增加一行

  ② 安装包安装

  下载完整的离线安装包(4G左右) https://www.tug.org/texlive/acquire-iso.html。如果下载速度过慢,可以手动选择距离近的下载镜像:
  [清华镜像]
  [上海交大镜像]
  [中科大镜像]
  [重庆大学镜像]

下载好以后挂载iso文件:

然后执行sudo ./install-tl开始安装,之后的环境变量设置步骤和联网安装相同。

下载和安装字体

  在/usr/share/fonts目录下新建一个目录custom,将下载的字体都复制到里面。然后执行下面的更新字体命令:

  为了方便,我把常用的微软雅黑(MSYH.TTC)和数学公式字体(latinmodern-math.otf)上传到服务器了。[点击下载]

修改Manim的配置文件

  首先进入manim的安装目录:cd /usr/local/lib/python3.7/site-packages/manimlib
  修改配置文件vim constants.py
  修改其中的TEX引擎配置:

  保存后再修改ctex的模板文件vim ctex_template.tex
  其中的\setmainfont\setCJKmainfont分别是设置英文和中文字体。

运行第一个example

  就用文章开头的动画做例子吧,在本地的工作目录新建一个example.py

  保存以后就会同步出现在docker里了,然后在docker容器里运行:

  其中-m表示中等画质,也可以用-l低画质更方便预览。

  在官方源码的example_scenes.py有更多的例子。

参考资料

texlive的安装以及用xetex和xelatex进行中文编辑 https://blog.csdn.net/lizhe_dashuju/article/details/88708562