泰语字体的 Verbatim 与 Listings

泰语字体的 Verbatim 与 Listings

verbatim我有一个关于和的问题listings。我需要使用泰语字体编写一些代码,但它显示在图片中

\documentclass[12pt,a4paper,oneside]{book}
\usepackage{verbatim}
\usepackage{listings}
\usepackage{xltxtra}
\usepackage{fontspec}
\usepackage{xunicode}
\defaultfontfeatures{Mapping=tex-text}
\XeTeXlinebreaklocale "th_TH" 
\XeTeXlinebreakpenalty=100
\XeTeXlinebreakskip=0pt plus 1pt
\setmainfont[Scale=1.4]{TH SarabunPSK} % Thai Font
\begin{document}
\begin{verbatim}
\begin{enumerate} 
\item one หนึ่ง
\item two สอง
\end{enumerate}     
\end{verbatim}  
\begin{lstlisting}
\begin{enumerate}
\item one หนึ่ง
\item two สอง
\end{enumerate}     
\end{lstlisting}
\end{document}

在此处输入图片描述

但我希望获得像这样的代码lstlisting,但字体却像这样verbatim。如何改进它。

答案1

这里有一个解决方案,我认为它会在您的情况下成功(我没有泰语字体),您可以显示泰语字体,使用escapeinside它在它们之间定义两个符号,您可以插入您的文本。

代码

\documentclass[12pt,a4paper,oneside]{book}
\usepackage{verbatim}
\usepackage{listings}
\usepackage{xltxtra}
\usepackage{fontspec}
\usepackage{xunicode}
\defaultfontfeatures{Mapping=tex-text}
\XeTeXlinebreaklocale "th_TH" 
\XeTeXlinebreakpenalty=100
\XeTeXlinebreakskip=0pt plus 1pt
\setmainfont[Scale=1.4]{TH SarabunPSK} % Thai Font
\newfontfamily\thaifont{TH SarabunPSK}
\lstset{basicstyle=\ttfamily, escapeinside={*}{*}}
\begin{document}
\begin{verbatim}
\begin{enumerate} 
\item one หนึ่ง
\item two สอง
\end{enumerate}     
\end{verbatim}  
\begin{lstlisting}
\begin{enumerate}
\item one *\thaifont{หนึ่ง}*
\item two *\thaifont{สอง}*
\end{enumerate}     
\end{lstlisting}
\end{document}

答案2

我猜想泰语没有打字机字体。您可以尝试 Code2000 字体,它当然不是打字机字体,但包含所有字符:

\documentclass[12pt,a4paper,oneside]{book}
\usepackage{fontspec}
\setmainfont[Scale=1.4]{TH SarabunPSK} % Thai Font
\setmonofont[Scale=MatchLowercase]{Code2000}
\XeTeXlinebreaklocale "th_TH" 
\XeTeXlinebreakpenalty=100
\XeTeXlinebreakskip=0pt plus 1pt

\usepackage{verbatim}
\usepackage{listings}
\begin{document}

    \begin{verbatim}
    \begin{enumerate} 
    \item one หนึ่ง
    \item two สอง
    \end{enumerate}     
    \end{verbatim}  
    \begin{lstlisting}[basicstyle=\ttfamily\small]
    \begin{enumerate}
    \item one หนึ่ง
    \item two สอง
    \end{enumerate}     
    \end{lstlisting}
\end{document}

在此处输入图片描述

相关内容