在\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="×" 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="×" 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
。