我使用以下设置来格式化我的代码块:
% xxxxxxxxxxxxxxxxxxxxxxxxx Code Snippet STARTS xxxxxxxxxxxxxxxxxxxxxx
\lstset{
language=C, % choose the language of the code
stepnumber=1, % the step between two line-numbers. If it's 1, each line will be numbered
% numbersep=5pt, % how far the line-numbers are from the code
% backgroundcolor=\color{white}, % choose the background color. You must add \usepackage{color}
showspaces=false, % show spaces adding particular underscores
showstringspaces=false, % underline spaces within strings
showtabs=false, % show tabs within strings adding particular underscores
tabsize=4, % sets default tabsize to 2 spaces
captionpos=t, % sets the caption-position to top
breaklines=true, % sets automatic line breaking
breakatwhitespace=true, % sets if automatic breaks should only happen at whitespace
% title=\lstname, % show the filename of files included with \lstinputlisting;
identifierstyle=\color{identifierColor},
caption={Array of Pointers to Strings},
frame=lrtb,
keywordstyle=\color{purple}, % keyword style
commentstyle=\color{blue}, % comment style
stringstyle=\color{violet}, % string literal style
belowcaptionskip = 0.2in, % Space below caption
abovecaptionskip = 0.2in, % Space above caption
}
\begin{lstlisting}
int main()
{
char *strings[] = {
"String1",
"String2",
"String3",
"String4"
};
char *ptr_swap; /* A temporary pointer to swap strings */
/* Swap "String2" with 'String3' */
ptr_swap = names [1];
names [1] = names [2];
names [2] = ptr_swap;
return 0;
}
% xxxxxxxxxxxxxxxxxxxxxxxxx Code Snippet ENDS xxxxxxxxxxxxxxxxxxxxxx
输出如下:
我的问题是:
C 关键字(如:int、char)的颜色与其余代码的颜色相同。
我想要获得更漂亮的输出(就像专业书籍一样)。
请就此问题给我提供指导。
谢谢。
答案1
嗯,我不确定我是否真的理解了你的问题,因为在你显示的输出中,关键字似乎都是彩色的,但如果你想添加彩色关键字,以下选项似乎可以解决问题:
morekeywords={*,keyword1, keyword2, ...}
如果您不希望关键字被着色,那么只需将其设置为与您的选项keywordstyle=\color{purple},
相同的颜色。stringstyle
正如@FedericoPoloni 所指出的,紫色和紫罗兰色确实也是非常接近的颜色。也许你想通过使用不太接近的颜色来确保这一点。
除此之外,我还想指出,在您的示例中,命令\lstset
的最后一个选项后有一个逗号,这可能会给您带来很多问题。
我知道这不属于你的问题,但你输入的 C 代码似乎非常错误。但也可能是我们缺乏很多背景信息,而且这也不是那么重要。