![具有 RTL 主语言(如阿拉伯语)的 Hyperref 形式](https://linux22.com/image/388478/%E5%85%B7%E6%9C%89%20RTL%20%E4%B8%BB%E8%AF%AD%E8%A8%80%EF%BC%88%E5%A6%82%E9%98%BF%E6%8B%89%E4%BC%AF%E8%AF%AD%EF%BC%89%E7%9A%84%20Hyperref%20%E5%BD%A2%E5%BC%8F.png)
我想在同一文档中排版一份以阿拉伯语为主要语言、英语为另一种语言的电子表格。我使用引擎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}