请帮助我,我无法解决这个问题,问题是字符_t
\documentclass{article}
\usepackage{array,booktabs ,tabularx,multirow}
\usepackage{fontspec}
\usepackage{arabxetex}
\newfontfamily\arabicfont[Script=Arabic , Scale=1.5]{Nazli}
\begin{document}
\begin{tabularx}{\textwidth}{|r ||||X|||| r |}
\toprule
\textarab{AlmdT AlzmnyT : sA`tAn} & \centering \textarab{{\LARGE Al-'imt.hAn Al|m|.hly Al|m|w.hd }} & \textarab{'i`dAdyT `bd Alkrym Alx.tAby } \\
\textarab{AldwrT : $II$}& \centering \textarab{\Large{fy m|AdT AlryA.dyAt}}&\textarab{nyAbT tAwryrt} \\
\textarab{Alm`Aml : $3$} & \centering \textarab{AlsnT Al_tAl_tT 'i`dAdy} & \textarab{dabdw} \\
\bottomrule
\end{tabularx}
\end{document}
答案1
问题是,它tabularx
会读取表格的所有内容并对其进行多次排版。这样做会破坏\textarab
表格的运作,通常会将表格的类别代码更改_
为“字母”,但在这种情况下无法做到这一点,因为文本已被读入(并被标记化)。
一种可能的解决方法是使_
数学活跃起来,并在数学模式之外表现得像一个可打印字符。
\documentclass{article}
\usepackage{array,booktabs ,tabularx,multirow}
\usepackage{fontspec}
\usepackage{arabxetex}
\newfontfamily\arabicfont[Script=Arabic , Scale=1.5]{Scheherazade}
\begingroup\lccode`~=`_ \lowercase{\endgroup\let~\sb}
\AtBeginDocument{\mathcode`\_=\string"8000 \catcode`\_=12 }
\begin{document}
$x_{1}\ne x_{2}$
\noindent
\begin{tabularx}{\textwidth}{r X r}
\toprule
\textarab{AlmdT AlzmnyT : sA`tAn} &
\LARGE\centering \textarab{Al-'imt.hAn Al|m|.hly Al|m|w.hd} &
\textarab{'i`dAdyT `bd Alkrym Alx.tAby } \\
\textarab{AldwrT : $II$}&
\Large\centering \textarab{fy m|AdT AlryA.dyAt} &
\textarab{nyAbT tAwryrt} \\
\textarab{Alm`Aml : $3$} &
\centering \textarab{AlsnT Al_tAl_tT 'i`dAdy} &
\textarab{dabdw} \\
\bottomrule
\end{tabularx}
\end{document}
我添加了一个公式来表明它_
在数学模式下仍然有效。
答案2
underscore
你对内部环境的符号有问题tabularx
,你需要做的是使用更改下划线符号的类别\catcode
\documentclass{article}
\usepackage{array,booktabs ,tabularx,multirow}
\usepackage{fontspec}
\usepackage{arabxetex}
\newfontfamily\arabicfont[Script=Arabic , Scale=1.5]{Amiri}
\catcode`\_=11 % change the category of underscore to a lettre
\begin{document}
\begin{tabularx}{\textwidth}{|r ||||X|||| r |}
\toprule
\textarab{AlmdT AltzmnyT : sA`tAn} & \centering \textarab{\LARGE Al-'imt.hAn Al|m|.hly Al|m|w.hd } & \textarab{'i`dAdyT `bd Alkrym Alx.tAby } \\
\textarab{AldwrT : $II$}& \centering \textarab{\Large fy m|AdT AlryA.dyAt}&\textarab{nyAbT tAwryrt} \\
\textarab{Alm`Aml : $3$} & \textarab{AlsnT Al_tAl_tT 'i`dAdy} & \textarab{dabdw} \\
\bottomrule
\end{tabularx}
\catcode`\_=8 % return the category of the underscore
\end{document}
答案3
我无法解决这个问题,请帮忙
\documentclass[oneside]{文章}
\usepackage{xkeyval} \usepackage[顶部=1cm,底部=0cm,左侧=1cm,右侧=1cm]{几何}
\usepackage{xltxtra} \usepackage{arabxetex}
\newfontfamily\arabicfont[Script=Arabic, Scale=1.5]{Andalus}
%-----------\qst[bareme,bar=...]{......}----------------------%
\makeatletter \define@cmdkey[EX]{qst}{bar}{} \define@boolkey[EX]{qst}{bareme}[true]{} \presetkeys[EX]{qst}{bar= ,bareme=false}{} \newcommand{\qst}[2][]{ \setkeys[EX]{qst}{#1}
\ifEX@qst@bareme \ifdim pt < 2 pt \begin{arab} $-\arabic{k}$ #2 \marginpar{ \cmdEX@qst@bar} \end{arab} \else \begin{arab} $-\arabic{k}$ #2 \marginpar{ \cmdEX@qst@bar } \end{arab} \fi \else \begin{arab} $-\arabic{k}$ #2 \end{arab} \fi \stepcounter{k} }
\makeatother
\开始{文档}
\qst{ml mA yly Al-ll_ah 'akbr mmT: } \qst[bareme, bar=2]{
毫升毫安 yly : } \qst{ml mA yly : } \qst{
毫升毫安 yly Al------ll_a----------h: } \qst{`毫升毫安 yly : }
\结束{文档}