我使用 boxedminipage2e 创建一个带有文本的框架框。我还使用了多语种,因为有时文本是阿拉伯语,有时是英语。
这些方框内的语言环境表现得很奇怪。在下面的 MWE 中,我已将自定义环境的内容包装起来,textbox
并begin{english}...end{english}
尝试在代码中手动包装各个段落。此切换到英语仅适用于第一段;如果开始一个新段落,它将以 RTL 方向开始,就像它已改回阿拉伯语一样。请参阅输出。
似乎我必须将每个段落都换行,begin{english}...end{english}
这太疯狂了。
主要问题:如何才能更轻松地换行这样的英文文本?
附加问题:MWE 中有一些行被注释掉了;这些行在新textbox
环境之外可以工作,但无法按照 MWE 中的说明进行编译。我认为原因与上述问题相同,但我不确定。有没有办法让它们正常工作里面新的textbox
环境?
梅威瑟:
\documentclass[12pt,oneside]{report}
\usepackage[a4paper, top=1in, bottom=1in, inner=1.6in, outer=1in, includefoot] {geometry}
\usepackage{boxedminipage2e}
\usepackage{environ}
\usepackage{polyglossia}
\setmainlanguage{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic, Scale=1.90]{Scheherazade}
\newfontfamily\englishfont[Script=Latin]{Linux Libertine O}
% \makeatletter
% \newcommand{\restarabic}{\let\@arabic\orig@arabic}
% \makeatother
\NewEnviron{textbox}[1]
{
\nopagebreak
\begin{boxedminipage}[t][#1][t]{\linewidth}
\begin{english}
\BODY
\end{english}
\end{boxedminipage}
}
\begin{document}
\begin{textbox}{3in}
This is some initial text.
This is a second paragraph
\begin{english}
This is a third paragraph.
This is a fourth paragraph
\end{english}
% \restartarabic
\begin{enumerate}
\item item 1
\item item 2
\item item 3
\end{enumerate}
This is a fifth paragraph
\end{textbox}
\begin{english}
This is outside the box
\end{english}
\end{document}
答案1
阿拉伯数字的宏\restarabic
不是\restartarabic
。
只需将您的textbox
环境放在english
环境内部而不是相反的地方,要在里面写阿拉伯语文本,textbox
您可以使用Arabic
这样的环境
\begin{Arabic}
نص عربي
\end{Arabic}
您的代码
\documentclass[12pt,oneside]{report}
\usepackage[a4paper, top=1in, bottom=1in, inner=1.6in, outer=1in, includefoot] {geometry}
\usepackage{boxedminipage2e}
\usepackage{environ}
\usepackage{polyglossia}
\setmainlanguage{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic, Scale=1.90]{Scheherazade}
\newfontfamily\englishfont[Script=Latin]{Linux Libertine O}
\makeatletter
\newcommand{\restarabic}{\let\@arabic\orig@arabic}
\makeatother
\NewEnviron{textbox}[1]
{
\nopagebreak
\begin{boxedminipage}[t][#1][t]{\linewidth}
\begin{english}
\BODY
\end{english}
\end{boxedminipage}
}
\begin{document}
\begin{english}
\begin{textbox}{3in}
This is some initial text.
This is a second paragraph
This is a third paragraph.
This is a fourth paragraph
\restarabic
\begin{enumerate}
\item item 1
\item item 2
\item item 3
\end{enumerate}
This is a fifth paragraph
\end{textbox}
\end{english}
\begin{english}
This is outside the box
\end{english}
\end{document}