Sublime 认为我的整个文本是一个等式

Sublime 认为我的整个文本是一个等式

我目前正在 Sublime 3 中使用 latex 编写;我使用的是 LaTeXTools 包。在我的文件的第一行中,我重新定义了方括号,如下所示。

\makeatletter
\AtBeginDocument{%
\let\[\@undefined
\DeclareRobustCommand{\[}{\begin{equation}}
\let\]\@undefined
\DeclareRobustCommand{\]}{\end{equation}}
}
\makeatother

Sublime 在某种程度上知道这是一个未解决的方程式,因此我的文件的其余部分都是在数学模式下编写的。这很烦人,不仅因为我的所有文本现在都变成黄色,而且自动完成功能也不太好用。

我该如何解决这个问题?

答案1

解决特定问题但不能解决根本问题的一种方法是将该部分代码提取到另一个 tex 或 sty 文件中并输入该文件。这样,Sublime 就不会看到它,也不会弄乱语法颜色。

答案2

我看不出 Sublime Text 能做什么;但是你的方法是错误的:如果你愿意,equation你就应该使用它。

无论如何,你可以做

\AtBeginDocument{%
  \expandafter\let\csname[\endcsname\relax
  \expandafter\let\csname]\endcsname\relax
  \expandafter\DeclareRobustCommand\csname[\expandafter\endcsname\expandafter{%
    \csname begin\endcsname{equation}%
  }%
  \expandafter\DeclareRobustCommand\csname]\expandafter\endcsname\expandafter{%
    \csname end\endcsname{equation}%
  }%
}

因此 Sublime Text 解析器不会在 、 和 中\[看到\]任何内容\begin{equation}\end{equation}

答案3

除了所有其他解决方案之外,您还可以编辑语法定义。我已创建 PR 以在后续的 Sublime Text 版本中修复此问题,请参阅sublimehq#1010。为此,您可以安装包资源查看器编辑文件,通过在第 488 行后面添加来LaTeX/LaTeX.sublime-syntax更改上下文math-content(您也可以在公共关系):

    - match: (?=\})
      pop: true

这只会弹出不匹配的右括号/} 上的每个数学上下文。

相关内容