我正在尝试设置 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 页面: