【问题标题】:Sublime Text 2 - makeglossaries within build systemSublime Text 2 - 在构建系统中生成词汇表
【发布时间】:2013-06-13 05:17:14
【问题描述】:

我需要我的构建系统以“main”作为唯一参数运行 makeglossaries,但 sublime 总是将当前文件名作为最终参数附加。我怎样才能防止这种情况发生?

执行命令如下(命令行下):

$: makeglossaries main

我当前的.sublime-build 文件如下所示:

{
    // General settings; DO NOT MODIFY!!!
    "target": "make_pdf",
    "selector": "text.tex.latex",

    // Windows-specific settings
    // -------------------------
    "windows":
        {

            "cmd": ["texify", 
                    "-b", "-p",
                    "--tex-option=\"--synctex=1\""
            ],

            "cmd": ["makeglossaries",
                    "main"
            ],

            "cmd": ["texify", 
                    "-b", "-p",
                    "--tex-option=\"--synctex=1\""
            ],          

            "path": "",

            "file_regex": "^((?:.:)?[^:\n\r]*):([0-9]+):?([0-9]+)?:? (.*)$"
        },

}

如果你问我为什么要调用texify 两次,那是因为makeglossaries 需要有一个可以注入词汇表的预构建tex 版本。注入后我想得到最终结果。

不幸的是,它没有按我的意愿工作。希望你能帮助我。

【问题讨论】:

    标签: latex customization build-process sublimetext2 glossaries


    【解决方案1】:

    假设您在 OSX/Linux 上运行,您可以创建一个忽略任何其他参数的快速 bash 脚本,并将该脚本用作您的 "cmd"。将~/bin中的以下内容另存为makeglossaries_main.sh

    #!/bin/bash
    /path/to/makeglossaries main
    

    然后将构建系统中的相关行更改为:

    "cmd": ["/home/adrian/bin/makeglossaries_main.sh"]
    

    你应该准备好了。

    【讨论】:

    • 但是我怎样才能保留我从 texify 的原始调用中获得的功能:"cmd": ["texify", "-b", "-p", "--tex-option=\"--synctex=1\""]。它可以跳转到您的 tex 文档中最后修改的位置。即使使用脚本也会保留它吗?
    • 我不确定,因为我不知道您的构建系统的全部细节。请随时使用您的 .sublime-build 文件的完整内容更新您的问题,我可以查看一下。
    • 编辑了我的问题并用 sublime-build 文件扩展了它
    • 进行我建议的更改后,您的构建系统是否仍然有效?
    • 我创建了自己的 Makefile,"cmd": ["make", "all"] 轻松调用了它。这解决了我的问题。无论如何,感谢您的宝贵时间和建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 2013-01-03
    • 2012-11-19
    • 2012-07-28
    • 2015-11-27
    • 2020-10-07
    相关资源
    最近更新 更多