当我使用两种不同的语言,如英语和阿拉伯语(一种从左到右书写,另一种从右到左书写)时,方程式编号用阿拉伯语书写,例如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}
结果