逐字逐句和多语

逐字逐句和多语

我在阿拉伯语 tex 文件中使用 polyglossia,我想使用 verbatim 环境为用户手册编写 Latex 命令。一切运行良好,如果我们输入英文字符,则添加命令 '\let\arabicfonttt\ttfamily',但它无法识别我认为的阿拉伯字符。我该如何修复它?我举了一个简单的例子,我们可以看到阿拉伯字母被完全省略了。

\documentclass[12pt,a4paper]{article}

\usepackage{polyglossia}
\setmainlanguage[numerals=maghrib]{arabic}
\setotherlanguage{english}

\newfontfamily\arabicfont[Script=Arabic,Scale=1.2,AutoFakeSlant=-0.02]{Traditional Arabic}
\let\arabicfonttt\ttfamily
\setsansfont[Script=Arabic,Scale=1.5]{Traditional Arabic}
\begin{document}

\begin{english}
\begin{verbatim}
The command \LaTeX prints the Latex logo.

أمر
\LaTeX
يعطي لوجو لاتخ
\end{verbatim}
\end{english}
\end{document}

可以看到,只有 \LaTeX 这个词

艾玛

\乳胶

يعطي لوجو لاتخ

被考虑在内 在此处输入图片描述

答案1

除此之外,\let\arabicfonttt\ttfamily您还必须使用\setmonofont{DejaVu Sans Mono}任何其他支持阿拉伯语的等宽字体。

\documentclass[12pt,a4paper]{article}

\usepackage{polyglossia}
\setmainlanguage[numerals=maghrib]{arabic}
\setotherlanguage{english}

\newfontfamily\arabicfont[Script=Arabic,Scale=1.2,AutoFakeSlant=-0.02]{Traditional Arabic}
\setmonofont{DejaVu Sans Mono}
\let\arabicfonttt\ttfamily
\setsansfont[Script=Arabic,Scale=1.5]{Traditional Arabic}
\begin{document}

\begin{english}
\begin{verbatim}
The command \LaTeX prints the Latex logo.

أمر
\LaTeX
يعطي لوجو لاتخ
\end{verbatim}
\end{english}
\end{document}

在此处输入图片描述

答案2

我们可以使用listings包来实现这一点,将阿拉伯语单词放在像escapeinside这样定义的符号内:

\documentclass[12pt,a4paper]{article}
\usepackage{listings}
\usepackage{polyglossia}
\setmainlanguage[numerals=maghrib]{arabic}
\setotherlanguage{english}

\newfontfamily\arabicfont[Script=Arabic,Scale=1.2,AutoFakeSlant=-0.02]{Traditional Arabic}
\setmonofont{DejaVu Sans Mono}
\let\arabicfonttt\ttfamily
\setsansfont[Script=Arabic,Scale=1.5]{Traditional Arabic}

\lstset{language=[LaTeX]TeX,escapeinside={*}{*}}

\begin{document}

\begin{english}
\begin{lstlisting}
The command \LaTeX prints the Latex logo.
*\textarabic{أمر}*
\LaTeX
*\textarabic{يعطي لوجو لاتخ}*
\end{lstlisting}
\end{english}
\end{document} 

结果:

在此处输入图片描述

相关内容