Imagemagick 使用Sphinx扩展将svg转换为pdf
我的公司正在使用斯芬克斯为我们的产品制作手册。我们的产品附带PDF和HTML文档。我们使用Windows作为唯一的开发环境 一个必要的要求是从相同的源(*.rst文件)生成两种格式 旧式文档使用广泛的SVG图像,但sphinx构建格式Imagemagick 使用Sphinx扩展将svg转换为pdf,imagemagick,latex,python-sphinx,imagemagick-convert,pdflatex,Imagemagick,Latex,Python Sphinx,Imagemagick Convert,Pdflatex,我的公司正在使用斯芬克斯为我们的产品制作手册。我们的产品附带PDF和HTML文档。我们使用Windows作为唯一的开发环境 一个必要的要求是从相同的源(*.rst文件)生成两种格式 旧式文档使用广泛的SVG图像,但sphinx构建格式latex不支持\includegraphics{}环境中的SVG文件 现在我找到了有前途的Sphinx扩展Sphinx.ext.imgconverter,并将其包含到我的conf.py中 extensions = [ 'sphinx.ext.imgmath
latex
不支持\includegraphics{}
环境中的SVG文件
现在我找到了有前途的Sphinx扩展Sphinx.ext.imgconverter
,并将其包含到我的conf.py
中
extensions = [
'sphinx.ext.imgmath',
'sphinx.ext.ifconfig',
'sphinx.ext.imgconverter'
]
如果我正在构建LaTeX,希望能将所有SVG文件转换为PDF文件。不幸的是,扩展的文档非常短,并且没有工作示例
我们的rst文件的内容基本上是:
.. image:: Image.*
:width: 100px
Sphinx应该自行决定是否使用svg或pdf替换星号,具体取决于构建html/pdf。这是我从以前的帖子中得到的信息:
但不知怎么的,我无法产生我的乳胶。
而是发出以下警告:
WARNING: no matching candidate for image URI u'Image.*'
但只有当我想在HTML的情况下构建LaTeX时,才没有警告
我必须安装ImageMagick吗?还是有什么问题?斯芬克斯怎么知道在哪里搜索ImageMagick
更新
我刚刚将Sphinx更新为1.7.2版。它仍然不起作用。由于无法安装ImageMagick,我临时从我的conf.py
中删除了扩展名sphinx.ext.imgconverter
,以测试手动解决方案。我使用inkscape手动将所有图像转换为pdf/png
现在,如果使用makelatex
编译,我会收到以下警告
WARNING: a suitable image for latex builder not found: ['image/svg+xml']
但是在源
目录和build/latex
目录中肯定都有手动转换的图像(pdf、png)
我的LaTeX文件被编译为如下内容:
\noindent\sphinxincludegraphics[width=100\sphinxpxdimen]{{Image}.*}
我无法用pdflatex编译它
LaTeX Error: Unknown graphics extension: .*.
myconf.py
中的LaTeX Builder是否有一些设置用于拍摄转换后的图像
如果在我的conf.py
中包含以下行,则会发生意外情况:
from sphinx.builders.latex import LaTeXBuilder
LaTeXBuilder.supported_image_types = ['image/png', 'image/pdf','image/svg+xml' ]
我的LaTeX文件的输出现在包含以下行:
\noindent\sphinxincludegraphics[width=100\sphinxpxdimen]{{Image}.svg}
如果我从支持的图像类型中删除类型image/svg+xml
,我会再次遇到上一个错误。我的印象是,sphinx build
在错误的位置查找转换后的图像。但这只是一个想法
我怀疑这个错误与此有关。它在Sphinx1.7中得到了修复,这表明Sphinx1.7的版本已安装。升级至Sphinx 1.7或更高版本提示:始终搜索源代码存储库以获取帮助
从以下文件中:
在内部,此扩展用于转换图像
这意味着它必须安装在您的系统路径中
谢谢你的建议。我已经安装了sphinx build 1.7.0。我将尝试更新。请查看这将有助于将动态svg转换为pdf,以便与Sphinx的latex builder一起使用。它基于通过inkscape或rsvg convert添加转换