从 Lyx 导出时的图像路径

从 Lyx 导出时的图像路径

我正在尝试设置 LyX 以直接导出为 reStructuredText 格式。我调整了这些说明只需用 reStructuredText 替换 markdown。

不幸的是,LyX 改变了每张图片的路径。这里是一个简短的例子。

例如这个图

.. figure:: 0_home_muzzle_Nextcloud_Stuff_Stuff_documentation_source_img_pressure.jpg
   :alt: Pressure
   :width: 80.0%

   Pressure

应该

.. figure:: img/pressure.jpg
   :alt: Pressure
   :width: 80.0%

   Pressure

LyX 将图像路径替换为创建的图像副本的路径,以便转换器完成其工作。如果输出格式以某种方式将图像嵌入文档中,则这是正确的行为,但对于 reStructuredText(或 markdown)而言并非如此。

如果我从 GUI 将 lyx 文件导出为 latex,然后使用命令将其转换为 reStructuredText

pandoc --wrap=none -f latex -t rst -o file.rst file.tex

图像路径正确,有没有办法从UI转换和导出系统获得相同的效果?

顺便说一句,有人有一个类似问题5 年前,但看起来这个问题并没有得到妥善解决。

答案1

感谢@fran 的提示,导出文件的最终版本(通过nice在导出命令中添加标志)有帮助。不幸的是,这会导致 lyx 从文件名中删除图像扩展名。

我发现最好的解决方法是在转换命令中手动指定图像扩展名:

pandoc --wrap=none -s --default-image-extension=jpg  -f latex -t rst -o $$o $$i  

不幸的是,这意味着你必须将所有图片转换为一种格式。这不是一个理想的解决方案,我希望有人能想出更好的解决方案。

无论如何,如果您想自动化该过程,您可以在 LyX GUI 中创建一个新的转换器。

导航到Tools > Preferences > File Handling > File Formats并添加第一个格式。

添加第一个格式

Tools > Preferences > File Handling > Converters然后使用上面的命令和 Extra 标志去创建转换器nice

在乳胶到第一转换器

答案2

确保从 .tex 文件转换为 .rst 文件的图像文件名具有正确扩展名的最简单方法是向 pandoc 添加正确的选项,例如:

–默认图像扩展名=png

当然,所有图像文件都必须具有此扩展名,这可能是一个警告,但当意识到问题时是可行的。

pandoc 文档说:

–默认图像扩展 =扩展

“指定当图像路径/URL 没有扩展名时使用的默认扩展名。这允许您对需要不同类型图像的格式使用相同的源。目前此选项仅影响 Markdown 和 LaTeX 阅读器。”

答案3

可能无法解决您的确切问题,但我在尝试使用 pandoc 将 lyx 编译为 html 时遇到了相同的问题。经过大量的挖掘,我得出结论,一般来说,lyx 和 pandoc 不能结合在一起,您必须先修复从 lyx 导出的 latex 文件,然后再将其提供给 pandoc。所以,我编写了这个 python 脚本来做这件事。对我来说(使用 html)这很完美!(经过几天的折腾)。我甚至设法添加了一些键绑定,以便单个击键可以编译为 html 并在我的浏览器中打开预览。我试图很好地记录这个过程,主要是为了我将来能够重现,但如果有人觉得这有用,那就太好了。

了解更多信息,这是存储库的 git 页面

相关内容