外部 boxedminipage 环境取消内部环境

外部 boxedminipage 环境取消内部环境

我使用 boxedminipage2e 创建一个带有文本的框架框。我还使用了多语种,因为有时文本是阿拉伯语,有时是英语。

这些方框内的语言环境表现得很奇怪。在下面的 MWE 中,我已将自定义环境的内容包装起来,textboxbegin{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}

相关内容