使用 lualatex 时,项目标签超出了文档页边距吗?

使用 lualatex 时,项目标签超出了文档页边距吗?

我使用 Latex 用我们的母语希伯来语完成家庭作业。我一直使用polyglossiaXeLateX但遇到几个我不知道如何解决的烦人错误后,我决定改用babel+ LuaLateX(另外,我发现 的 APIbabel比 更好polyglossia)。

我尝试编译我的一项作业,经过几次调整后,我让它看起来与以前的设置一样,除了一个我没能解决的问题。每当我使用列表环境(例如itemizeenumerate或)时description,项目的标签(项目符号/索引/注释)都会出现在页边距之外,在我看来,这看起来不太好:

description在物品注释完全剪到页面外面的环境中,情况会更糟。

XeLateX将其与使用我的旧+设置编译的同一文档进行比较polyglossia

如您所见,没有任何内容超出页边距,并且项目甚至缩进itemize(我故意在enumerate中间环境中禁用了缩进。我认为这样看起来更好)。

对于itemize我使用的环境,\begin{itemize}...\end{itemize}没有任何特殊之处。description我使用类似的东西:

\begin{description}
    \item[הערה]
ספין הוא תנע זוויתי המשויך לחלקיק ומקנה לו מומנט מגנטי אינטרינזי. הוא אינו נובע מתנועה סיבובית, וגם לחלקיקים שאינם טעונים חשמלית (כמו נויטרונים) יש ספין. הספין יכול להימדד בערכים בדידים
בלבד כאשר סט הערכים האפשריים תלוי בסוג החלקיק. מבחינה מיקרוסקופית, לספין אין אנלוג במכניקה הקלאסית, אך במקרים רבים ניתן לנתח מערכות של ספינים באמצעות מכניקה סטטיסטית קלאסית.
\end{description}

这是环境的标准用法description。对于enumerate,我实际上使用具有以下设置的自定义列表:

\newlist{QuestionParts}{enumerate}{2}
\setlist[QuestionParts, 1]{align=left, leftmargin=*, label=\alph*.}
\setlist[QuestionParts, 2]{align=right, label=\arabic*.}

它不应该有任何导致其超出边缘的东西。

我认为可以安全地假设这babel不会改变列表缩进的工作方式,所以我几乎可以肯定罪魁祸首是LuaLatex。有人能解释为什么会发生这种情况以及如何修复它以获得与我的旧文档类似的结果吗?

我认为这与问题无关,但为了确保万无一失,这里是babel我在新设置中设置的代码(此代码位于我用于所有样式和设置的自定义包中):

\RequirePackage{xifthen}

\newboolean{hebrew}
\setboolean{hebrew}{false}

\DeclareOption{hebrew}{\setboolean{hebrew}{true}}
\DeclareOption*{\PackageWarning{my-style}{Unknown '\CurrentOption'}}
\ProcessOptions\relax

\RequirePackage{mathpazo}
\RequirePackage[bidi=basic, provide=*]{babel}

\babelprovide[import, alph=letters, Alph=letters]{hebrew}
\babelprovide[import]{english}

\babelfont[hebrew]{rm}[ItalicFont=*-Regular, ItalicFeatures={FakeSlant=0.3}]{Assistant}
\babelfont[hebrew]{sf}[ItalicFont=*-Regular, ItalicFeatures={FakeSlant=0.3}]{Assistant}

\ifthenelse{\boolean{hebrew}}{
    \AddToHook{begindocument/end}{\selectlanguage{hebrew}}
}{
    \AddToHook{begindocument/end}{\selectlanguage{english}}
}

下面是polyglossia我以前设置的代码:

\newboolean{hebrew}
\setboolean{hebrew}{false}

\DeclareOption{hebrew}{\setboolean{hebrew}{true}}
\DeclareOption*{\PackageWarning{my-style}{Unknown '\CurrentOption'}}
\ProcessOptions\relax

% Font and language settings
\RequirePackage{mathpazo}

\RequirePackage[no-math]{fontspec}
\RequirePackage{polyglossia}

\newfontfamily\hebrewfont[
    Script=Hebrew,
    ItalicFont=*-Regular,
    ItalicFeatures={FakeSlant=0.3},
]{Assistant}
\ifthenelse{\boolean{hebrew}}{
    \setmainlanguage{hebrew}
    \setotherlanguage{english}
    \setsansfont{Assistant}
}{
    \setmainlanguage{english}
    \setotherlanguage{hebrew}
}

除了设置文档语言的这些代码片段(我不认为这些代码片段是造成此问题的原因)之外,这两个文档完全相同。

相关内容