在 tcblisting (tcolorbox) 中显示阿拉伯文字

在 tcblisting (tcolorbox) 中显示阿拉伯文字

在这个 MWE 中

\documentclass[a4paper]{article}
\usepackage{listings}
\usepackage{tcolorbox}
\tcbuselibrary{listings}
\usepackage[no-math]{fontspec}
\usepackage{polyglossia}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.3]{Amiri}
\setdefaultlanguage{english}
\setotherlanguage{arabic}
\lstset{language=[LaTeX]TeX,
,escapeinside={*}{*}}
\begin{document}

\begin{lstlisting}
\LaTeX * \textarabic{كلمة عربية}*
\end{lstlisting}

\begin{tcblisting}{listing only,listing options={style=tcblatex,escapeinside={*}{*}}}

\LaTeX  * %\textarabic{كلمة عربية}*
\end{tcblisting}

\end{document}

lstlisting环境下,我可以使用列表选项显示阿拉伯语文本escapeinside,但相反,如果我在 收到错误警报之前tcblisting删除%符号\textarabic

! 软件包 polyglossia 错误:当前罗马字体不包含阿拉伯语

有什么办法可以解决这个问题吗?

答案1

使用此 MWE,您可以在 tcblisting 中显示阿拉伯文字

\documentclass[a4paper]{article}
\usepackage{listings}
\usepackage{tcolorbox}
\tcbuselibrary{listings}
\usepackage[no-math]{fontspec}
\usepackage{polyglossia}
\newfontfamily\arabicfont[Script=Arabic]{Amiri}
\setdefaultlanguage{english}
\setotherlanguage{arabic}
\lstset{language=[LaTeX]TeX,escapeinside={*}{*}}
\begin{document}

\begin{lstlisting}
\LaTeX * \textarabic{كلمة عربية}*
\end{lstlisting}

\begin{tcblisting}{listing only,listing options={language={[LaTeX]TeX},escapeinside={*}{*}}}

\LaTeX  * \textarabic{كلمة عربية}*
\end{tcblisting}

\end{document}

结果 在此处输入图片描述

相关内容