我正在使用以下代码编写包含两种语言的传单:
\documentclass[10pt,foldmark,notumble]{leaflet}
\renewcommand*\foldmarkrule{.3mm}
\renewcommand*\foldmarklength{5mm}
% Set language here
\usepackage{polyglossia}
\setmainlanguage{english}
%\setotherlanguage[locale=mashriq, numerals=maghrib]{arabic} % <------ ERROR
\setmainfont{Times New Roman}
\newfontfamily\arabicfont[Scale=1, Script=Arabic]{Traditional Arabic}
\usepackage{lipsum}
\usepackage{comment}
\usepackage{float}
\newcommand*\defaultmarker{\textsuperscript\textasteriskcentered}
\CutLine*{1}%
\CutLine*{6}%
\begin{document}
\section{Abstract}
This is the abstract which is good \arabicfont{ (مثال عن العربية)} The rest of the abstract is here..
\section{Background}
\lipsum[1]
\section{Objectives}
\lipsum[1]
\end{document}
我习惯在其他文档中使用上面的语言部分,效果很好。但是在传单类中,每当我使用它时\setotherlanguage{arabic}
都会出错。
在当前状态下,阿拉伯语单词是从左到右的,并且应该是 RTL。polyglossia
包通常允许我使用:
\begin{Arabic}
...نص عربي هنا...
\end{Arabic}
但它在这里也不起作用。我该怎么做才能在课堂上用两种语言写作leaflet
?
答案1
使用 LuaLaTeX 时我没有收到错误消息(但我必须用“Noto Naskh Arabic”替换阿拉伯字体,因为我没有“Traditional Arabia”)。使用 XeLaTeX 时,bidi
由于需要计数寄存器的数量,包内存在内存问题。因此我建议使用 LuaLaTeX。
顺便说一句:\arabicfont
是一个开关,而不是带参数的命令。所以使用\textarabic{…}
会更好。使用 LuaLaTeX
\documentclass[10pt,foldmark,notumble]{leaflet}
\renewcommand*\foldmarkrule{.3mm}
\renewcommand*\foldmarklength{5mm}
% Set language here
\usepackage{polyglossia}
\setmainlanguage{english}
\setotherlanguage[locale=mashriq, numerals=maghrib]{arabic} % <------ ERROR
\setmainfont{Times New Roman}
%\newfontfamily\arabicfont[Scale=1, Script=Arabic]{Traditional Arabic}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.1]{Noto naskh Arabic}
\usepackage{lipsum}
\usepackage{comment}
\usepackage{float}
\newcommand*\defaultmarker{\textsuperscript\textasteriskcentered}
\CutLine*{1}%
\CutLine*{6}%
\begin{document}
\section{Abstract}
This is the abstract which is good \textarabic{مثال عن العربية} The rest
of the abstract is here.
\begin{Arabic}
نص عربي هنا
\end{Arabic}
\section{Background}
\lipsum[1]
\section{Objectives}
\lipsum[1]
\end{document}
导致: