一个奇怪的事情:
\documentclass{beamer}
\usepackage{ctex}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{fontspec}
\lstset{
basicstyle={ % 设置代码格式
\fontspec{Consolas}
\scriptsize
},
keywordstyle={ % 设置关键字格式
\color[RGB]{40,40,255}
\fontspec{Consolas Bold}
\scriptsize
},
stringstyle={ % 设置字符串格式
\color[RGB]{128,0,0}
\fontspec{Consolas}
\scriptsize
},
commentstyle={ % 设置代码注释的格式
\color[RGB]{0,96,96}
\fontspec{Consolas}
\scriptsize
},
numberstyle={ % 设置行号格式
\scriptsize
\color{black}
\fontspec{Consolas}
},
emphstyle=\color[RGB]{112,64,160}, % 设置强调字格式
language=c++, % 设置语言
numbers=left, % 显示行号
% numbersep=5pt, % 设置行号与代码的距离
frame=single, % 设置背景边框
tabsize=4, % 设置tab长度
backgroundcolor=\color[RGB]{245,245,244}, % 设定背景颜色
showstringspaces=false, % 不显示字符串中的空格
showspaces=false, % 不显示代码中的空格
showtabs=false, % 不显示代码中的tab
breaklines=true, % 设置自动换行
morekeywords={}, % 可以手动添加关键字
emph={scanf,printf}, % 可以手动添加强调字
% xleftmargin=2em, % 设置左边距,默认与页芯等宽
% xrightmargin=2em, % 设置右边距,默认与页芯等宽
% aboveskip=1em, % 设置上边距
}
\begin{document}
\begin{frame}[fragile]
\frametitle{helloworld}
\begin{lstlisting}
#include<stdio.h>
int main(){
puts("hello world");
return 0;
}
\end{lstlisting}
\end{frame}
\end{document}
我用texlive2021编译+运行后的结果是 可以注意到代码框左侧有乱码