这是我为 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
。删除分号,问题就解决了。