具有 RTL 主语言(如阿拉伯语)的 Hyperref 形式

具有 RTL 主语言(如阿拉伯语)的 Hyperref 形式

我想在同一文档中排版一份以阿拉伯语为主要语言、英语为另一种语言的电子表格。我使用引擎xetex没有成功,布局很乱,如下面的 MWE 所示:

MWE 代码

\documentclass[a4,pagesize=pdftex,DIV=16]{scrartcl}
\usepackage{xcolor}
\usepackage{graphicx}

\usepackage{hyperref}

\usepackage{polyglossia}
\setmainlanguage[locale=mashriq,numerals=mashriq,abjadjimnotail=true]{arabic}
\setotherlanguages{english}
% User-defined commands
\newcommand{\AR}{\textarabic}
\newcommand{\EN}{\textenglish}
\newfontfamily\arabicfont[Script=Arabic,Scale=1,Ligatures=TeX,Mapping=arabicdigits]{Amiri}

\begin{document}
\begin{Form}

\centering
 \LARGE\textbf{استمارة باللغة العربية}

\rule{\textwidth}{1pt}
\vskip 1cm

\TextField[backgroundcolor=white,borderwidth=1,bordercolor=gray!30,maxlen=30,width=0.5\textwidth]{اسم الوثيقة:} 

\TextField[mappingname=title,name=title,backgroundcolor=white,borderwidth=1,bordercolor=gray!30,width=0.5\textwidth,multiline]{تعليق:}

 \LARGE\textbf{نوع الاجراء المطلوب}

\CheckBox[backgroundcolor=white,radiosymbol=\ding{53},borderwidth=1,bordercolor=gray!30]{اصدار وثيقة}
\CheckBox[backgroundcolor=white,radiosymbol=\ding{53},borderwidth=1,bordercolor=gray!30]{تعديل وثيقة}
\CheckBox[backgroundcolor=white,radiosymbol=\ding{53},borderwidth=1,bordercolor=gray!30]{حذف وثيقة}


\end{Form}
\end{document}

%%% Local Variables:
%%% mode: latex
%%% TeX-engine: xetex               
%%% TeX-master: t
%%% End:

输出
输出

如您所见,文本框与文本对齐不佳,实际上甚至没有按预期放置。一些文本被复选框隐藏,那么在这种情况下如何使此类表单正确?非常感谢您的帮助。

答案1

首先,您需要一个最新版本的bidi包,该包可适应许多从右到左书写的包,并且包polyglossia隐式地用于 bidi 从右到左书写的语言。

第二个CheckBox命令\LayoutCheckField可用于更改检查字段布局

\documentclass[a4,pagesize=pdftex,DIV=16]{scrartcl}
\usepackage{xcolor}
\usepackage{graphicx}

\usepackage{hyperref}


\usepackage{polyglossia}
\setmainlanguage[locale=mashriq,numerals=mashriq,abjadjimnotail=true]{arabic}
\setotherlanguages{english}
% User-defined commands
\newcommand{\AR}{\textarabic}
\newcommand{\EN}{\textenglish}
\newfontfamily\arabicfont[Script=Arabic,Scale=1,Ligatures=TeX,Mapping=arabicdigits]{Amiri}

\begin{document}
\begin{Form}

\centering
 \LARGE\textbf{استمارة باللغة العربية}

\rule{\textwidth}{1pt}
\vskip 1cm

\TextField[backgroundcolor=white,borderwidth=1,bordercolor=gray!30,maxlen=30,width=0.5\textwidth]{اسم الوثيقة:} 

\TextField[mappingname=title,name=title,backgroundcolor=white,borderwidth=1,bordercolor=gray!30,width=0.5\textwidth,multiline]{تعليق:}

 \LARGE\textbf{نوع الاجراء المطلوب}

\def\LayoutCheckField#1#2{% label, field
  #1 \hskip1.3em #2%
}


\CheckBox[backgroundcolor=white,radiosymbol=\ding{53},borderwidth=1,bordercolor=gray!30]{اصدار وثيقة}
\CheckBox[backgroundcolor=white,radiosymbol=\ding{53},borderwidth=1,bordercolor=gray!30]{تعديل وثيقة}
\CheckBox[backgroundcolor=white,radiosymbol=\ding{53},borderwidth=1,bordercolor=gray!30]{حذف وثيقة}

\end{Form}
\end{document}

在此处输入图片描述

相关内容