我想在列表中添加中文字符。可以吗?如果可以,怎么做?
答案1
我附上一个例子,借助listingsutf8
包和CODE2000字体。我运行了xelatex
和lualatex
,结果看起来都一样。
%! {xe|lua}latex mal-cjkv.tex
\documentclass{article}
\pagestyle{empty}
\usepackage{listingsutf8}
\usepackage{fontspec}
\usepackage{filecontents}
\begin{filecontents*}{mal-code.tex}
My source code and Good bye! in Japanese: さよなら。
A greeting in Chinese: 你怎么样?
\end{filecontents*}
\begin{document}
% http://web.archive.org/web/20101122142710/http://code2000.net/code2000_page.htm
\setmainfont{CODE2000.TTF}
\lstinputlisting{mal-code.tex}
\end{document}
答案2
\documentclass{article}
\usepackage{fontspec}
\usepackage{libertine}
\newfontfamily\cjk{Code2000}
\usepackage{fancyvrb}
\begin{document}
Some nonsense text with the Libertine font.
\begin{Verbatim}[codes=\cjk,numbers=left,frame=single,label=Chinese test]
My source code and Good bye! in Japanese: さよなら。
A greeting in Chinese: 你怎么样?
\end{Verbatim}
\end{document}
答案3
listings
包比较特殊,Malipivo 的解决方案在以下情况下会出错:
我们使用语法高亮;
我们混合了 CJK 字符和拉丁字符。
这是一个显示该问题的例子。
% !TeX program = XeLaTeX
% !TeX encoding = UTF-8
\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}
\lstset{commentstyle=\color{blue},morecomment=[l]{//}}
\usepackage{fontspec}
\setmainfont{FandolSong-Regular.otf}
\begin{document}
\section{Failure}
\begin{lstlisting}
// tomorrow明天
\end{lstlisting}
\end{document}
下面是解决方案,使用xeCJK
:
% !TeX program = XeLaTeX
% !TeX encoding = UTF-8
\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}
\lstset{commentstyle=\color{blue},morecomment=[l]{//}}
\usepackage{xeCJK}
\setCJKmainfont{FandolSong-Regular.otf}
\begin{document}
\section{Success}
\begin{lstlisting}
// tomorrow明天
\end{lstlisting}
\end{document}