请问在MAC上用sublime(安装LatexTools插件)编辑tex文件时,如何配置makeglossaries

发布于 2026-05-11 20:52:52

请问用sublime编辑tex文件时,如何配置makeglossariessublime调用进行词汇表编译?我查了下百度,说是在 sublime Text → tools → build system → new build system 进行配置,但是操作后还是不行。

百度AI给出的方法如下:
在 Sublime Text 中配置构建系统‌
创建自定义 .sublime-build 文件,例如命名为 LaTeXWithGlossaries.sublime-build,内容如下:

{
    "cmd": ["latexmk", "-pdf", "-dvi-",
            "-jobname=${file_base_name}",
            "-synctex=1",
            "-interaction=nonstopmode",
            "${file}"],
    "file_regex": "^(...*?):([0-9]+):?([0-9]+):? (.*)$",
    "working_dir": "${file_path}",
    "selector": "text.tex.latex",
    "variants": [
        {
            "name": "Make Glossaries",
            "cmd": ["makeglossaries", "${file_base_name}"],
            "working_dir": "${file_path}"
        }
    ]
}

此配置使用 latexmk 自动处理编译流程(包括调用 makeglossaries),但若需手动触发,可通过 Tools → Build With… → Make Glossaries 执行。

查看更多

关注者
0
被浏览
58
3 个回答
Sagittarius Rover
这家伙很懒,什么也没写!

几个建议:

  • 首先不要盲目地听信AI直接修改配置文件
  • 要理解任何配置(sublime/vscode/texstudio)的本质都是编辑器在按照某套既定的规则帮助你在命令行输入命令
  • 基于上一点,应该先构造一个最简单的测试样例
\documentclass{article}
\usepackage{glossaries}
\makeglossaries

\newglossaryentry{latex}{
    name={LaTeX},
    description={A document preparation system}
}

\begin{document}

This document is written using \gls{latex}.

\printglossaries

\end{document}
  • 确保某一组命令在命令行测试编译通过
  • 最后再研究sublime的配置要如何设置这套「既定的规则」

要正确编译上面的文档,有两种方案:

1.多次编译:

pdflatex main
makeglossaries main
pdflatex main

2.或者使用latexmk,但也不能太直接一步到位,参考这个链接

在codex老师的帮助下,我发现我在windows下需要微调一下.latexmkrc

add_cus_dep('glo', 'gls', 0, 'run_makeglossaries');
add_cus_dep('acn', 'acr', 0, 'run_makeglossaries');

sub run_makeglossaries {
    my ($base_name, $path) = fileparse( $_[0] ); #handle -outdir param by splitting path and file, ...
    pushd $path; # ... cd-ing into folder first, then running makeglossaries ...

    if ( $silent ) {
        # system "makeglossaries -q '$base_name'"; #unix
        system "makeglossaries", "-q", "$base_name"; #windows
    }
    else {
        # system "makeglossaries '$base_name'"; #unix
        system "makeglossaries", "$base_name"; #windows
    };

    popd; # ... and cd-ing back again
}

再用

latexmk -pdf main

image.png

现在要做的,就是如何把上述配置移植到 sublime 风格的配置文件上,让他实际上做和上面命令行完全相同的事。

梦见李玉湖
梦见李玉湖 20小时前
这家伙很懒,什么也没写!

谢谢大佬指点,还是用多次编译最保险,虽然麻烦点,但能正确运行。其余的方案都不行,运行提示编译失败,可能是还有隐蔽设置没注意到。

梦见李玉湖
梦见李玉湖 19小时前
这家伙很懒,什么也没写!

另外还发现个问题,用sublime打开.tex文件,用skim查看相应的pdf。然后在终端下用xelatex直接编译.tex文件时,编译出来的pdf文件在skim里是无法使用shfit+cmd+左键进行反向定位到sublime相应的位置。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览