理論上使用逃逸字符可以解決 lstlisting 環境的中文問題。可是在測試中發現並不行。網上那些可以實現代碼中插入中文的都不可用。只有下面這個代碼是可用的。通過對比發現是basicstyle=\tiny這兒除了問題。如果改爲basicstyle=\ttfamily\tiny就無法顯示中文。而且逃逸符號好像沒什麼用。
\begin{lstlisting}[language={[ANSI]C++}, keywordstyle=\color{blue!70}, commentstyle=\color{red!50!green!50!blue!50}, escapeinside=``, basicstyle=\tiny]
int main(int argc, char ** argv)
{
/* `打印“你好啊,世界”` */
printf("Hello world!\n");
return 0;
}
\end{lstlisting}
另外 ,這個博主那貌似有不少LaTeX排版技巧的文章,留存備用。
http://blog.sina.com.cn/s/blog_5e16f1770102e48h.html
參考資料:
Ctex論壇:http://bbs.ctex.org/forum.php?mod=viewthread&tid=40529