如果将 Bidi LRE 命令放在列表项的末尾,则会导致过多的垂直空间

如果将 Bidi LRE 命令放在列表项的末尾,则会导致过多的垂直空间

我在 LyX 中使用希伯来语,使用“使用非 TeX 字体(通过 XeTeX/LuaTeX)”选项。文档是希伯来语的,当我插入数学方程式时,LyX 会自动用它换行,\LRE{}以确保从左到右的格式。大多数情况下都没有问题,但是如果我用显示的方程式结束列表项,我会得到一个非常大的空间(见图片和 MWE)。有没有办法解决这个问题(除了每次手动添加负水平空间)?

例子

\documentclass[english,hebrew]{article}
\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{David CLM}
\usepackage{polyglossia}
\setdefaultlanguage{hebrew}
\setotherlanguage{english}
\begin{document}
\begin{enumerate}
\item בלה בלה כל מיני טקסט לא חשוב רק רוצה שיגיע לאמצע השורה\LRE{
\[
a=b
\]
}בלה בלה עוד טקסט לא מעניין רק רוצה שיגיע לאמצע השורה\LRE{
\[
c=d
\]
}
\item ורק עוד קצת טקסט לשם הבהרה רק רוצה שיגיע לאמצע השורה
\end{enumerate}
\end{document}

答案1

我不能将此解决方案添加为评论,因此我将其发布为答案。您可以使用它\offinterlineskip来修复此问题。请参阅 David Carlisle 的回答这个问题了解更多信息。

\documentclass[english,hebrew]{article}
\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{DavidCLM-Medium}
\usepackage{polyglossia}
\setdefaultlanguage{hebrew}
\setotherlanguage{english}

\newdimen\oldbaselineskip
\newdimen\oldlineskip
\newdimen\oldlineskiplimit
\def\itemWithPreDisplayMath{
  \oldbaselineskip\baselineskip
  \oldlineskip\lineskip
  \oldlineskiplimit\lineskiplimit
  \offinterlineskip
  \item
  \baselineskip \oldbaselineskip
  \lineskip \oldlineskip
  \lineskiplimit \oldlineskiplimit
}

\begin{document}
\begin{enumerate}
\item % or \itemWithPreDisplayMath, whichever you want.
 בלה בלה כל מיני טקסט לא חשוב רק רוצה שיגיע לאמצע השורה
 בלה בלה כל מיני טקסט לא חשוב רק רוצה שיגיע לאמצע השורה
 בלה בלה כל מיני טקסט לא חשוב רק רוצה שיגיע לאמצע השורה
 בלה בלה כל מיני טקסט לא חשוב רק רוצה שיגיע לאמצע השורה
 בלה בלה כל מיני טקסט לא חשוב רק רוצה שיגיע לאמצע השורה
 בלה בלה כל מיני טקסט לא חשוב רק רוצה שיגיע לאמצע השורה
\LRE{
\[
a=b
\]
}
\itemWithPreDisplayMath
 בלה בלה כל מיני טקסט לא חשוב רק רוצה שיגיע לאמצע השורה
 בלה בלה כל מיני טקסט לא חשוב רק רוצה שיגיע לאמצע השורה
 בלה בלה כל מיני טקסט לא חשוב רק רוצה שיגיע לאמצע השורה
 בלה בלה כל מיני טקסט לא חשוב רק רוצה שיגיע לאמצע השורה
 בלה בלה כל מיני טקסט לא חשוב רק רוצה שיגיע לאמצע השורה
 בלה בלה כל מיני טקסט לא חשוב רק רוצה שיגיע לאמצע השורה
\LRE{
\[
a=b
\]
}
 בלה בלה עוד טקסט לא מעניין רק רוצה שיגיע לאמצע השורה
 בלה בלה עוד טקסט לא מעניין רק רוצה שיגיע לאמצע השורה
 בלה בלה עוד טקסט לא מעניין רק רוצה שיגיע לאמצע השורה
 בלה בלה עוד טקסט לא מעניין רק רוצה שיגיע לאמצע השורה
 בלה בלה עוד טקסט לא מעניין רק רוצה שיגיע לאמצע השורה
 בלה בלה עוד טקסט לא מעניין רק רוצה שיגיע לאמצע השורה
\LRE{
\[
c=d
\]
}
\itemWithPreDisplayMath
 ורק עוד קצת טקסט לשם הבהרה רק רוצה שיגיע לאמצע השורה
 ורק עוד קצת טקסט לשם הבהרה רק רוצה שיגיע לאמצע השורה
 ורק עוד קצת טקסט לשם הבהרה רק רוצה שיגיע לאמצע השורה
 ורק עוד קצת טקסט לשם הבהרה רק רוצה שיגיע לאמצע השורה
 ורק עוד קצת טקסט לשם הבהרה רק רוצה שיגיע לאמצע השורה
 ורק עוד קצת טקסט לשם הבהרה רק רוצה שיגיע לאמצע השורה
\end{enumerate}
 ורק עוד קצת טקסט לשם הבהרה רק רוצה שיגיע לאמצע השורה
 ורק עוד קצת טקסט לשם הבהרה רק רוצה שיגיע לאמצע השורה
 ורק עוד קצת טקסט לשם הבהרה רק רוצה שיגיע לאמצע השורה
 ורק עוד קצת טקסט לשם הבהרה רק רוצה שיגיע לאמצע השורה
 ורק עוד קצת טקסט לשם הבהרה רק רוצה שיגיע לאמצע השורה
 ורק עוד קצת טקסט לשם הבהרה רק רוצה שיגיע לאמצע השורה

\end{document}

输出为: 在此处输入图片描述

相关内容