当与从右到左的语言一起使用时,尝试使用ntheorem
's\theoremindent
似乎会缩进左侧而不是右侧:polyglossia
\documentclass{article}
\usepackage{ntheorem}
\theoremindent2cm
\theorembodyfont{\normalfont}
\theoremseparator{:}
\newtheorem{theorem}{משפט}
\usepackage{polyglossia}
\setdefaultlanguage[calendar=hebrew, numerals=arabic]{hebrew}
\setotherlanguage{english}
\newfontfamily\hebrewfont{David CLM}
\begin{document}
א א א א א א א א א א א א א א א א א א א א א א א א א א א א א א א א א א א א א א
\begin{theorem}
ב ב ב ב ב ב ב ב ב ב ב ב ב ב ב ב ב ב ב ב ב ב ב ב ב ב ב ב ב ב ב
\end{theorem}
\end{document}
这能修复吗?
此外,编号和分隔符似乎显示错误。
答案1
ntheorem-hyper.sty
中(或ntheorem.sty
,取决于您的分布)有问题的行似乎是:
\newdimen\theoremindent
\global\theoremindent0cm
\newdimen\theorem@indent
%...
\advance\@totalleftmargin \theorem@indent
\parshape \@ne \@totalleftmargin \linewidth
因此,毫不奇怪,ntheorem
假设边距在左边。这是建议的微补丁,部分归功于@egreg:
\usepackage{ntheorem}
\usepackage{etoolbox}
\makeatletter
\@ifpackageloaded{polyglossia}{
\patchcmd{\@thm}
{\advance\@totalleftmargin\theorem@indent}
{\if@RTL\else\advance\@totalleftmargin\theorem@indent\fi}
{}{}
}
\makeatother
这应该可以适应其自身的补丁ntheorem-hyper.sty
。