Ale*_*ph0 6 latex imagemagick pdflatex python-sphinx imagemagick-convert
我的公司正在使用 Sphinx 为我们的产品创建手册。我们的产品附带 PDF 和 HTML 文档。我们使用 Windows 作为唯一的开发环境。
必要的要求是从相同的源(*.rst 文件)生成两种格式。
旧文档使用大量 SVG 图像,但 sphinx 构建格式latex
不支持\includegraphics{}
环境中的 SVG 文件。
现在我找到了有前途的 Sphinx-Extensionsphinx.ext.imgconverter
并将其包含到我的conf.py
.
extensions = [
'sphinx.ext.imgmath',
'sphinx.ext.ifconfig',
'sphinx.ext.imgconverter'
]
Run Code Online (Sandbox Code Playgroud)
如果我正在构建 LaTeX,希望将所有 SVG 文件转换为 PDF 文件。不幸的是,该扩展的文档非常短,并且没有有效的示例。
http://www.sphinx-doc.org/en/master/ext/imgconverter.html#module-sphinx.ext.imgconverter
我们第一个文件的内容基本上是:
.. image:: Image.*
:width: 100px
Run Code Online (Sandbox Code Playgroud)
Sphinx 应该根据构建的 html/pdf 自行确定是否应将星号替换为 svg 或 pdf。我从之前的帖子中得到的信息:
但不知怎的,我无法生成我的乳胶。 使用 Sphinx 文档,如何为 HTML 构建指定 png 图像格式,为 Latex/PDF 构建指定 pdf 图像格式?
相反,会发出以下警告:
WARNING: no matching candidate for image URI u'Image.*'
Run Code Online (Sandbox Code Playgroud)
但只有当我想在 HTML 的情况下构建 LaTeX 时,才会出现警告。
我必须安装 ImageMagick 还是有什么问题?Sphinx 如何知道在哪里搜索 ImageMagick?
更新
我刚刚将 Sphinx 更新到版本 1.7.2。它仍然不起作用。由于我无法安装 ImageMagick,我暂时删除了该扩展以sphinx.ext.imgconverter
测试conf.py
手动解决方案。我使用 inkscape 手动将所有图像转换为 pdf/png。
现在,如果我使用make latex
.
WARNING: a suitable image for latex builder not found: ['image/svg+xml']
Run Code Online (Sandbox Code Playgroud)
source
但是目录和目录中肯定都有手动转换的图像(pdf,png)build/latex
,类似。
我的 LaTeX 文件被编译为:
\noindent\sphinxincludegraphics[width=100\sphinxpxdimen]{{Image}.*}
Run Code Online (Sandbox Code Playgroud)
我无法用 pdflatex 编译它。
LaTeX Error: Unknown graphics extension: .*.
Run Code Online (Sandbox Code Playgroud)
我的 LaTeX Builder 是否有一些设置来conf.py
获取转换后的图像?
如果我在我的代码中包含以下几行,conf.py
就会发生意想不到的事情:
from sphinx.builders.latex import LaTeXBuilder
LaTeXBuilder.supported_image_types = ['image/png', 'image/pdf','image/svg+xml' ]
Run Code Online (Sandbox Code Playgroud)
我的 LaTeX 文件的输出现在包含以下行:
\noindent\sphinxincludegraphics[width=100\sphinxpxdimen]{{Image}.svg}
Run Code Online (Sandbox Code Playgroud)
image/svg+xml
如果我从中删除类型,supported_image_types
我会再次收到之前的错误。我的印象是,sphinx-build
在错误的地方寻找转换后的图像。但这只是一个想法。
在内部,此扩展使用Imagemagick来转换图像。
这意味着它必须安装并位于您的系统路径中。
归档时间: |
|
查看次数: |
2416 次 |
最近记录: |