如何正确格式化 C 程序代码块

如何正确格式化 C 程序代码块

我使用以下设置来格式化我的代码块:

% 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 代码似乎非常错误。但也可能是我们缺乏很多背景信息,而且这也不是那么重要。

相关内容