列表,嵌入字符串渲染问题

列表,嵌入字符串渲染问题

这是我为 C# 定义的风格:

\lstdefinestyle{CSharp}{
  language=[Sharp]C
  ,captionpos=b
  ,columns=fixed
  ,morekeywords={var,get,set}
  ,basicstyle=\footnotesize\ttfamily 
  ,keywordstyle=\color{blue}
  ,commentstyle=\color{ForestGreen}
  ,stringstyle=\color{BrickRed};
  ,breaklines=true
  ,tabsize=1
  ,showstringspaces=false
  ,showspaces=false
  ,showtabs=false
  ,breakatwhitespace=true
  ,escapeinside={(*@}{@*)}
  ,emph={double,bool,int,unsigned,char,true,false,void,get,set}
  ,emphstyle=\color{blue}
  ,lineskip={-1.5pt} % single line spacing
}

问题是由于某种原因,当呈现嵌入的字符串时,它们看起来像这样:

Console.WriteLine(;";S;:;String;");

但应该:

Console.WriteLine("S:String");

我将不胜感激任何帮助。

答案1

明显的提示是,字符串中每个“标记”(字符的语法单位)前都有多个分号。

如果你检查源代码,你会发现这一行stringstyle=\color{BrickRed};,它告诉lstlisting你在每次排版字符串中的标记时添加一个分号并切换颜色BrickRed。删除分号,问题就解决了。

相关内容