如何提升Sphinx中sphinx.ext.imgmath生成的数学表达式图片分辨率?
提升sphinx.ext.imgmath生成的数学公式图片分辨率的方法
别担心,这个问题其实有几个很直接的解决办法,都是通过调整Sphinx配置文件conf.py里的参数实现的:
调整DPI参数(最直接有效)
sphinx.ext.imgmath默认的DPI设置比较低(通常是100),你只需要在项目的conf.py里添加一行配置,把DPI调高到印刷级别的300:imgmath_dpi = 300这个参数直接控制生成图片的每英寸点数,数值越高,图片越清晰。如果300还不够,甚至可以调到600,不过一般300就完全能满足屏幕和打印的需求了。
开启预览图模式
开启imgmath_use_preview选项可以让imgmath使用dvipng的预览生成模式,这个模式生成的图片边缘更平滑,配合高DPI效果更好。在conf.py里添加:imgmath_use_preview = True这个选项默认是关闭的,开启后会自动优化图片的渲染质量。
使用更高效的渲染工具链
如果你系统里安装了XeLaTeX和ImageMagick,可以替换默认的LaTeX和转换工具,生成更高质量的图片。在conf.py里配置:# 使用XeLaTeX替代默认的latex imgmath_latex = 'xelatex' # 使用ImageMagick的convert工具转图 imgmath_converter = 'convert' # 设置转换参数,300DPI+95%质量 imgmath_converter_args = ['-density', '300', '-quality', '95']这个方法需要确保你的系统已经安装了对应的工具,不过生成的图片质量会比默认工具链好很多。
备选方案:改用MathJax(仅HTML文档)
如果你的文档是HTML格式,其实更推荐用sphinx.ext.mathjax代替imgmath——MathJax是在浏览器端渲染矢量格式的数学公式,完全不会有分辨率问题,缩放也不会模糊。只需要把conf.py里的extensions列表中的sphinx.ext.imgmath替换成sphinx.ext.mathjax即可。
内容的提问来源于stack exchange,提问作者maroba
相关产品推荐
相关产品推荐

