禁用 kile 中的语法高亮

禁用 kile 中的语法高亮

\verbatim环境中,语法高亮默认是禁用的,例如,$ist 不会被识别为数学模式的开头。我将自己的环境 ( \rawtext) 添加到 kile Verbatim 环境中(设置 -> 配置 Kile -> LaTeX -> 常规 -> 命令 -> 环境)

在此处输入图片描述

但是,它不起作用:

在此处输入图片描述

哪里出了问题或者我该怎么做才能显示我自己的逐字环境(Debian Linux 下的 kile 2.1.0)

答案1

Kile 不会因为注册的环境而切换其高亮规则。高亮受 Kate 高亮规则的约束。

找到突出显示的文件latex.xml,它应该在 下PREFIX/share/apps/katepart/syntax/latex.xml,其中PREFIX是您的 KDE 安装的根目录,如/usr/opt

按如下方式编辑此文件。首先,我们必须找到您的rawtext环境,只需将其添加到verbatim检测到的位置即可:

  <!-- filter the environment name and check the type -->
  <context name="Environment" attribute="Environment" lineEndContext="#stay">
    <RegExpr String="(lstlisting|(B|L)?Verbatim)" attribute="Environment" context="VerbatimEnvParam"/>
    <RegExpr String="(verbatim|boxedverbatim|rawtext)" attribute="Environment" context="VerbatimEnv"/>
    <RegExpr String="(equation|displaymath|eqnarray|subeqnarray|math|multline|gather|align|flalign)" attribute="Environment" context="MathEnv"/>
    <RegExpr String="(alignat|xalignat|xxalignat)" attribute="Environment" context="MathEnvParam"/>
    <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
    <RegExpr String="[a-zA-Z]" attribute="Environment" context="LatexEnv"/>
    <RegExpr String="\s+" attribute="Error" context="#pop"/>
    <RegExpr String="[^a-zA-Z\xd7]" attribute="Error" context="#pop"/>
  </context>

接下来,需要解析你的环境:

  <!-- parse verbatim text -->
  <context name="Verbatim" attribute="Verbatim" lineEndContext="#stay">
    <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
    <RegExpr String="\\end(?=\s*\{(verbatim|lstlisting|boxedverbatim|rawtext|(B|L)?Verbatim)\*?\})" attribute="Structure"  context="VerbFindEnd"/>
  </context>

最后,我们需要检测该环境的结束:

  <!-- end of verbatim environment -->
  <context name="VerbFindEnd" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
    <RegExpr String="\s*\{" attribute="Normal Text" context="#stay"/>
    <RegExpr String="(verbatim|lstlisting|boxedverbatim|rawtext|(B|L)?Verbatim)\*?" attribute="Environment" context="#stay"/>
    <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop#pop#pop" endRegion="block"/>
  </context>

换句话说,无论verbatim在语法高亮文件中处理什么,都可以添加rawtext

快照

相关内容