Sublime Text 2 - makeglossaries внутри системы сборки
Мне нужно, чтобы моя система сборки запускала makeglossaries с аргументом "main" в качестве единственного аргумента, но 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, в которую он может добавить глоссарий. После инъекции я хочу получить конечный результат.
К сожалению, это не работает так, как я хочу. Надеюсь, ты сможешь мне помочь.
1 ответ
Предполагая, что вы работаете в OSX/Linux, вы можете создать быстрый bash-скрипт, который просто игнорирует любые дополнительные аргументы, и использовать этот скрипт как свой "cmd"
, Сохраните следующее в ~/bin
как makeglossaries_main.sh
:
#!/bin/bash
/path/to/makeglossaries main
затем измените соответствующую строку в вашей системе сборки на:
"cmd": ["/home/adrian/bin/makeglossaries_main.sh"]
и у тебя все будет готово.