请问用sublime编辑tex文件时,如何配置makeglossaries供sublime调用进行词汇表编译?我查了下百度,说是在 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 执行。
几个建议:
\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}要正确编译上面的文档,有两种方案:
pdflatex main
makeglossaries main
pdflatex mainlatexmk,但也不能太直接一步到位,参考这个链接:在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
现在要做的,就是如何把上述配置移植到 sublime 风格的配置文件上,让他实际上做和上面命令行完全相同的事。
另外还发现个问题,用sublime打开.tex文件,用skim查看相应的pdf。然后在终端下用xelatex直接编译.tex文件时,编译出来的pdf文件在skim里是无法使用shfit+cmd+左键进行反向定位到sublime相应的位置。
经过Sagittarius Rover大佬的指点,采用直接修改配置文件的方法,实现tex词汇表自动编译,详细步骤如下:
1、打开sublime的LaTeXTools插件的配置文件,有两种方法,
(1)通过MAC的Finder(访达):打开MAC的Finder(访达)窗口,按快捷键shift+command+G,在弹出栏(前往文件夹)中填入:/Users/mac/Library/Application Support/Sublime Text/Packages/User ,然后回车,进入文件夹后打开配置文件LaTeXTools.sublime-settings
此方法如不适用则采用下面第二种方法。
(2)通过Sublime Text菜单栏打开:Sublime Text ➡️ PackageSettings ➡️ LaTeXTools ➡️ Setting ,点击后会打开配置文件LaTeXTools.sublime-settings
2、在配件文件中找到// Platform settings: adapt as needed for your machine,正确设置“osx”中的"texpath",确保包含makeglossaries 和 makeindex 的安装路径。
并将makeglossaries 和 makeindex 的安装路径加入环境变量($PATH)。MAC设置环境变量$PATH的方法请另行参阅其他资料。
我的"texpath":"/usr/local/texlive/2026/bin/x86_64-darwinlegacy:/usr/local/texlive/2026/texmf-dist/scripts/glossaries:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:$PATH", 注意要保留$PATH"最后的英文逗号。
其中:
makeindex安装路径为为/usr/local/texlive/2026/bin/x86_64-darwinlegacy
makeglossaries安装路径为/usr/local/texlive/2026/texmf-dist/scripts/glossaries
3、在配件文件中找到// Platform settings: adapt as needed for your machine,正确设置“osx”中的"sublime_executable": "/Users/mac/Downloads/Sublime Text.app/Contents/MacOS",上面是sublime可执行文件的安装路径,可能因设备及系统不同而有差异,我的安装路径仅供参考。
4、在配件文件中找到// Build engine settings,设置"builder": "script",设置"builder_settings"中的"osx" : {},在大括号中填入如下内容:
"script_commands": [
"xelatex -synctex=1 -interaction=nonstopmode",
"makeglossaries",
"xelatex -synctex=1 -interaction=nonstopmode",
"xelatex -synctex=1 -interaction=nonstopmode"
]
5、在配件文件中找到// Viewer settings,设置"viewer": "skim",设置"viewer_settings":{}中的"osx" : {},在大括号中填入如下内容:
"sycn_tex_after_build":true
6、command+s保存设置,或在关闭配置文件LaTeXTools.sublime-settings按提示保存设置。
7、在SKIM的选项➡️同步设置中,勾选“检查文件变化”、“自动重新加载”两个选项,PDF-TeX同步支持中预设为Sublime Text,命令subl,参数"%file":"%line"
8、退出Sublime Text,重新进入后打开你的.tex文档,按下shift+command+B,在弹出栏中选择compile to pdf - Script Builder,此时Sublime Text会按照之前定义的脚本自动执行编译,xelate先编译一次,然后makeglossaries编译一次,最后xelate再编译两次,完成预定的编译。
直接按command+B,执行编译也可以,各位可自行测试与按下shift+command+B,选择脚本编译是否有区别。
9、正向定位:每次编译完成后,先按commad+L,再按V,可以直接从sublime Text(源码光标处)正向定位到SKIM的pdf相应位置。如果不是在每次编译完成后第一次正向定位,那么则需要先按commad+L,再按J,再先按commad+L,再按v,来从sublime Text(源码光标处)正向定位到skim的pdf相应位置。
如果.tex文件没有任何改动,执行编译后先按commad+L,再按V,会切换到skim,但不会正向定位到sublime Text源码光标处所对应的skim pdf位置,此时仍需执行上面的“先按commad+L,再按J,再先按commad+L,再按v,来从sublime Text(源码光标处)正向定位到skim的pdf相应位置。”
10、反向定位:在skim的pdf中,shift+command+左键单击想要定位的地方,即可反向定位到sublime Text相应源码处。
我不方便用sublime测试...
可以试试下面的 codex 的建议: