答案1
答案2
我做到了。
我希望这不会在将来引起任何其他范围混淆。这是我的解决方案(请注意,我正在使用 Windows 8.1 机器):
- 打开 Sublime Text 3 安装目录,找到 Packages 目录。在我的计算机上,它是
C:\Program Files\Sublime Text 3\Packages
- 在此目录中打开(例如使用 7-Zip)包
LaTeX.sublime-package
(之前请备份此文件) - 在此包中,您可以看到一个名为的文件
TeX.tmLanguage
。将此文件复制到您的桌面(或其他任何地方)。 - 使用 Sublime打开此复制的
TeX.tmLanguage
文件。在我的文件中,从第 165 行到第 205 行字典指定范围的条目string.other.math.tex
(此信息位于第 186-187 行)。在此字典条目(第 166-167 行)我们有开始键,字符串只是\$
告诉 Sublime Text 3“这里开始一个string.other.math.tex
范围。这是 onigurama 语法中的正则表达式(请参阅这里和这里)。 - 将 替换
\$
为以下正则表达式:(?<!X\[)(?<!X\[[\w\.-])(?<!X\[[\w\.-]{2})(?<!X\[[\w\.-]{3})(?<!X\[[\w\.-]{4})(?<!X\[[\w\.-]{5})(?<!X\[[\w\.-]{6})(?<!X\[[\w\.-]{7})\$
此正则表达式是 xml 转义的,基本上是负向后视,可保证 之前的内容不是任何具有最多 7 个字符$
的禁忌列类型的模式(例如)。如果有人知道更智能的正则表达式,我将不胜感激。X[coef,align,type]
X[-1.25cb$]
- 保存并关闭文件。同时关闭 Sublime Text 3。现在将编辑后的
TeX.tmLanguage
文件复制到包中LaTeX.sublime-package
(可以通过 7-Zip 实现)。这将覆盖旧TeX.tmLanguage
文件。
现在 Sublime Text 应该能够应对数学范围。
编辑
在重新安装 Windows 后,我再次尝试了给定的步骤,并意识到我无法将编辑后的TeX.tmLanguage
文件复制回LaTeX.sublime-package
包中。因此,我不得不研究原因,并找到了以下说法:C:\Program Files\Sublime Text 3\Packages
是只读的。但有可能覆盖这些包中的某些文件。以下是脚步:
- 在 Sublime Text 3 的用户目录中创建一个名为
LaTeX
- 将修改后的文件(参见上文)复制
TeX.tmLanguage
到此文件夹中。
现在文件夹中的此文件User\LaTeX
优先于C:\Program Files\Sublime Text 3\Packages
文件夹中的相同文件。