`tabular` 和 `bidi` 的奇怪行为

`tabular` 和 `bidi` 的奇怪行为

我正在使用polyglossia(阿拉伯语和英语)以及我可以关闭和打开的条件环境,代表老师的版本。

在下面的 MWE 中,我有三个单行tabular,我希望每个行的输出都相同。

  1. 第一行使用\textenglish并给出我想要和期望的结果。

  2. 第二行使用了begin{english}环境,但 RTL 似乎被忽略了。我不知道为什么。

  3. 第三行使用条件环境,其RTL也被忽略并且对齐方式再次不同。

我想要修复的是第三行的行为​​,但前两行更适合比较。

我想知道这个bidi包这里是否有错误,但我太新手了,无法确定。

这是 MWE。字体不重要。

\documentclass[11pt,oneside]{article}
\newif\ifteacher
\teachertrue
% \teacherfalse
\usepackage{environ}
\usepackage{polyglossia}
\setmainlanguage[numerals=mashriq]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic, Scale=1.00]{Times New Roman}
\newfontfamily\englishfont[Script=Latin]{Times New Roman}

\NewEnviron{forteacher}
{
\ifteacher
\begin{english}
\BODY\par
\end{english}
\else
\fi
}

\begin{document}

\begin{tabular}{rl}
ااا  ببب & \textenglish{aaa bbb} 
\end{tabular}

\begin{tabular}{rl}
ااا  ببب &
\begin{english}
aaa bbb
\end{english} 
\end{tabular}

\begin{tabular}{rl}
ااا  ببب &
\begin{forteacher}
aaa bbb
\end{forteacher} 
\end{tabular}

\end{document}

答案1

这不是一个包错误,但我认为您对何时使用以及何时使用环境bidi存在误解。\textenglishenglish

对于短文本(少于一行),使用\textenglish;对于长文本,使用english环境。a 的r或列只能包含短文本,因此使用环境没有意义,也不会产生任何效果;你问的相当于ltabularenglish

\hbox{\begin{english}...\end{english}}

因此在这种情况下,您需要使用\textenglish命令。但是,当您有p列时,您可以使用english环境从左到右排版文本。

答案2

为了达到这个目的,你可以使用原语 \beginL\endL 用于bidileft-to-rightright-to-left句子里面的,你可以看看e-TeX 简明参考手册

\documentclass[11pt,oneside]{article}
\newif\ifteacher
\teachertrue
% \teacherfalse
\usepackage{environ}
\usepackage{polyglossia}
\setmainlanguage[numerals=mashriq]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic, Scale=1.00]{Times New Roman}
\newfontfamily\englishfont[Script=Latin]{Times New Roman}

\NewEnviron{forteacher}
{%
\ifteacher
\beginL
\BODY\par
\endL
\else
\fi
}

\begin{document}

\begin{tabular}{rl}
ااا  ببب &
\textenglish{aaa bbb} 
\end{tabular}

\begin{tabular}{rl}
ااا  ببب &
\beginL
aaa bbb%
\endL
\end{tabular}

\begin{tabular}{rl}
ااا  ببب &
\begin{forteacher}
aaa bbb
\end{forteacher}
\end{tabular}

\end{document}

在此处输入图片描述

相关内容