arabxetex 的问题

arabxetex 的问题

请帮助我,我无法解决这个问题,问题是字符_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 : }

\结束{文档}

相关内容