创建外部变量模板。

创建外部变量模板。

我正在使用铸造lyx 软件包。我想\inputminted使用必须能够指定相对路径(在具有不同主目录名称的机器之间共享)。

问题是\inputminted调用时的工作目录是/tmp/lyxbuf_tmp这是 2009 年的邮件列表帖子讨论了将外部材料复制到该目录的确切问题,但似乎没有我能找到的解决方案。

有人能解释一下如何制作一个minted.layout允许我使用\inputminted并实现包含外部源代码文件的预期效果的文件吗?

或者有人可以建议任何方法来实现预期的效果吗?

答案1

有两种方法:

创建外部变量模板。

这是最好的方法,但需要一些时间来理解和设置。转到工具 > 自定义 > 第 6 部分(包括外部材料)

路径变量有很多。例如:

$$AbsOrRelPathParent The file path, absolute or relative to the LyX document.
$$FPath The path part of $$FName (absolute name or relative to the LyX document).
$$RelPathMaster The file path, relative to the master LyX document.
$$RelPathParent The file path, relative to the LyX document.

使用脚本(例如 Python 或 Bash)进行替换。

这有点儿像黑客行为,但可以让您完全控制。转到“工具”>“首选项”>“文件处理”>“转换器”,创建一个转换器(再次,有关详细信息,请参阅自定义手册)。编辑该converter字段。参见以下屏幕截图: 在此处输入图片描述

答案2

我根据 @scottkosty 的回答找到了解决方案!我将其放入 ~/.lyx/external_templates 文件夹中,然后转到“插入”>“文件”>“外部材料”,然后选择“minted”。它的参数化程度不够,但我没有更多时间去摆弄它。

Template MintedSource
    GuiName "Minted Source Code"
    HelpText
        Run \inputminted{}
    HelpTextEnd
    InputFormat text
    FileFilter "*"
    AutomaticProduction true
    Preview InstantPreview
    Format PDFLaTeX
        Product "\\inputminted[linenos,fontsize=\\footnotesize,baselinestretch=1]{python}{$$AbsPath$$Basename$$Extension}"

        Requirement "underscore"
        Requirement "minted"

        UpdateFormat text
        UpdateResult "$$AbsPath$$Basename$$Extension"
        ReferencedFile text "$$AbsPath$$Basename$$Extension"
    FormatEnd
TemplateEnd

相关内容