就像以下问题,我正在使用希伯来语的 LyX 工作,使用“使用非 TeX 字体(通过 XeTeX/LuaTeX)”选项。当我插入数学方程式时,LyX 会自动用 将其包裹起来\LRE{}
。这会导致一些间距问题,并且没有任何好处(没有它,公式看起来也很好)。有没有办法告诉 LyX 停止自动\LRE{}
在方程式周围添加?
答案1
目前无法阻止 LyX 用 括住方程式\LRE
,但将来可能会修复这个问题。
如果我正确理解了您的问题,那么您希望避免\LRE
在显示方程式周围造成一些垂直间距。以下代码将重新定义\LRE
以检查其参数的第一个标记是否为\[
,如果是,它将不执行任何操作,否则它将照常运行(请注意,在这样的情况下会导致问题\textenglish{\[a+b=c\] Hello there}
,但我认为您不需要输入这样的内容)。
\long\def\LRE@gobble#1#2\stopgobblehere{#1}
\AddToHook{package/bidi/after}{%
\bidi@renewrobustcmd*{\LRE}[1]{%
\expandafter\ifx\LRE@gobble #1{}{}\stopgobblehere\[
#1%
\else
\protect\pLRE{#1}%
\fi
}%
}
在 LyX 中您应该将其添加到Document > Settings > LaTeX Preamble
。
另一种可能性是使用 expl3 语法
\ExplSyntaxOn
\AddToHook{package/bidi/after}{%
\bidi@renewrobustcmd*{\LRE}[1]
{
\tl_set:Ne \l_tmpa_tl { \tl_head:n { #1 } }
\tl_if_eq:NnTF \l_tmpa_tl { \[ }
{ #1 }
{ \protect\pLRE{#1} }
}
}
\ExplSyntaxOff
您可以为内联方程添加条件,但我不认为\LRE
这会造成内联方程周围的间距问题。