编辑

编辑

我用它Kile来编辑我的 LaTeX 文档。我定义了自己的自定义环境来突出显示 LaTeX 代码,lstLaTeX代码如下:

\documentclass[a4paper]{scrartcl}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage[latin1]{inputenc}
\usepackage[ngerman,english]{babel}

\usepackage{listings}

\definecolor{lightgrey}{rgb}{0.9,0.9,0.9}
\definecolor{darkgreen}{rgb}{0,0.6,0}

\lstnewenvironment{lstLaTeX}
  {
  \lstset{language=[LaTeX]TeX,
    keepspaces=true,
    texcsstyle=*\bf\color{blue},
    basicstyle=\ttfamily,
    numbers=none,
    breaklines=true,
    keywordstyle=\color{darkgreen},
    commentstyle=\color{red},
    morekeywords={},
    otherkeywords={$, \{, \}, \[, \]},
    frame=none,
    tabsize=2,
    columns=fullflexible,
    backgroundcolor=\color{lightgrey},
    escapechar=°
    }
  }
  {}


\begin{document}
The actual document.
Here some LaTeX code:
\begin{lstLaTeX}
Brackets should be {\bf highlighted}.
The dollar sign: $x=5$
\end{lstLaTeX}

\end{document}

问题是 Kile 无法处理序言中的单个美元符号,并将所有后续文本标记为绿色(因为它认为应该有一个数学环境)。

在此处输入图片描述

我已经阅读了如何教 Kile 在自定义环境中使用时忽略美元符号:禁用 kile 中的语法高亮 但这篇文章并不能解决我的问题。

所以如果我可以告诉 Kile 忽略这个美元符号就好了。我已经尝试%$在行末添加一个美元符号,但 Kile 忽略了它。

答案1

otherkeywords={$, $, \{, \}, \[, \]},

似乎有效。重复似乎不会在编译时造成任何问题,这让 Kile 很高兴。

编辑

例如,如果使用$with ,就会出现类似的问题,但无法以相同的方式解决。l3regex

以下函数

\cs_new_protected_nopar:Nn \prefix_gobble_token:n
{
  \relax
}

允许$匹配,通过添加限制突出损坏到违规令牌的附近

\cfr_gobble_token:n { $ }

靠近。

但是,我不知道这是否安全......

相关内容