\documentclass[11pt,a4paper] {article}
%\usepackage{fontspec}
\usepackage{listings}
\usepackage{xcolor}
%\setmainfont[BoldFont=黑体]{宋体}
%\XeTeXlinebreaklocale "zh"
%\XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt
%\linespread{1.5}
\lstset{
numbers = left,
framexleftmargin=10mm,
frame=none,
backgroundcolor=\color[rgb]{245,245,244},
keywordstyle=\bf\color{blue},
identifierstyle=\bf,
numberstyle=\color[RGB]{0,192,192},
commentstyle=\it\color[RGB]{0,96,96},
stringstyle=\rmfamily\s1shape\color[RGB]{128,0,0},
showstringspaces=true
}
\begin {document}
\title{实验课}
\author{ coolwind}
\maketitle
\paragraph{}
你好,世界!
\begin{lstlisting}[language=C]
#include <stdio.h>
int main()
{
printf("Hello world!\n");
for (int i = 0; i < 100; i ++)
{
for (int j = 0; j < 100; j ++)
{
int tmp = i + j;
}
}
return 0;
}
\end{lstlisting}
\end {document}
答案1
您的代码有三个问题。
- 的参数中有一个空行
\lstset
,这是不允许的。 - 传递给键的值中有一个拼写错误(
\s1shape
而不是) 。\slshape
stringstyle
- 您误用了
\color
。无论可选参数是rgb
还是RGB
,强制参数都应该是逗号分隔或空格分隔的三个值列表,分别对应红色、蓝色和绿色。但是,当可选参数是 时rgb
,每个值必须介于 0 和 1 之间,而当可选参数是 时RGB
,每个值都必须是 8 位整数(0 到 255)。
\documentclass[11pt,a4paper] {article}
%\usepackage{fontspec}
\usepackage{listings}
\usepackage{xcolor}
%\setmainfont[BoldFont=黑体]{宋体}
%\XeTeXlinebreaklocale "zh"
%\XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt
%\linespread{1.5}
\lstset{
numbers = left,
framexleftmargin=10mm,
frame=none,
backgroundcolor=\color[RGB]{245,245,244}, % <--- use RGB (not rgb) if you use 8-bit color specifications
keywordstyle=\bf\color{blue},
identifierstyle=\bf,
numberstyle=\color[RGB]{0,192,192},
commentstyle=\it\color[RGB]{0,96,96},
stringstyle=\rmfamily\slshape\color[RGB]{128,0,0}, % <---- you had a `1' instead of an `l' in \slshape
% <--- do not leave blank lines in the argument of \lstset
showstringspaces=true
}
\begin {document}
\title{实验课}
\author{ coolwind}
\maketitle
\paragraph{}
你好,世界!
\begin{lstlisting}[language=C]
#include <stdio.h>
int main()
{
printf("Hello world!\n");
for (int i = 0; i < 100; i ++)
{
for (int j = 0; j < 100; j ++)
{
int tmp = i + j;
}
}
return 0;
}
\end{lstlisting}
\end {document}
答案2
删除第 19 个空白行就可以帮我编译了!