多语言文档中的数字

多语言文档中的数字

当我使用两种不同的语言,如英语和阿拉伯语(一种从左到右书写,另一种从右到左书写)时,方程式编号用阿拉伯语书写,例如14,但当我使用\ref它时会返回41。我试过了\textRL,但数字的格式从阿拉伯语变成了英语。所以我需要文档中的所有数字都以相同的格式(英语或阿拉伯语)书写,有什么建议吗?我使用此代码。

\documentclass[]{article}
\usepackage[utf8]{inputenc}
\usepackage[english,arabic]{babel}
\usepackage[LAE]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\begin{document}
نبين فلتحكم الكلي يما يلي قانون
% here there are equations more than ten

\begin{equation}\label{eq:lyap_tot}
\color{blue}{\boxed{\color{black}u=u_\theta-u_x}}
\end{equation}

figure \ref{lyap_tot} shows ... % here the returned number is written in arabic 
% but from left to right ( the real number is 14 and the retunred number is 41)
\end{document}

答案1

polyglossia 这是您需要XeLaTeX引擎的代码

  • 首先,您使用设置默认语言\setdefaultlanguage[calendar=gregorian,numerals=maghrib]{arabic},选择numerals=maghrib阿拉伯形式的数字 1、2、3、.... 与 numerals=machriq印度形式 ٣ ٢ ١ .....相反
  • 使用以下方法在文档中定义其他语言\setotherlanguage{english}
  • 使用以下方式定义阿拉伯文字的字体\newfontfamily\arabicfont[Script=Arabic]{Name_of_font}

代码

\documentclass{article}
\usepackage{xcolor}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{polyglossia}

\setdefaultlanguage[calendar=gregorian,numerals=maghrib]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic]{Amiri}
\newfontfamily\englishfont{Amiri}
\parindent 0pt
\begin{document}
نبين فلتحكم الكلي يما يلي قانون

\setcounter{equation}{13}

\begin{equation}\label{eq:lyap_tot}
\color{blue}{\boxed{\color{black}u=u_\theta-u_x}}
\end{equation}

\begin{english}
equation \ref{eq:lyap_tot} shows .....
\end{english}

المعادلة 
\ref{eq:lyap_tot} 
تبين أن ......

\end{document}

结果

在此处输入图片描述

相关内容