阻止 LyX 使用 LRE 自动包装公式(希伯来语)

阻止 LyX 使用 LRE 自动包装公式(希伯来语)

就像以下问题,我正在使用希伯来语的 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这会造成内联方程周围的间距问题。

相关内容