使用 witharrows 包添加希伯来语文本时内联方程式中断

使用 witharrows 包添加希伯来语文本时内联方程式中断

我使用 Latex 用babel希伯来语做作业。我还使用该witharrows包制作箭头来解释方程中的步骤。它通常工作正常:

然而,当我尝试添加希伯来语文本来解释我所做的事情时,内联方程式会中断\Arrow{}并使用 RTL 方向,这对于数学来说显然是错误的:

为什么会发生这种情况?我该如何解决?

以下是 MWE:

\documentclass[a4paper, 12pt]{article}

\PassOptionsToPackage{no-math}{fontspec}

\usepackage[bidi=basic, layout=tabular, headfoot=hebrew]{babel}

% For Hebrew
\babelprovide[main, import, alph=letters, Alph=letters]{hebrew}
\babelprovide[import]{english}

% For English
% \babelprovide[main, import]{english}
% \babelprovide[import, alph=letters, Alph=letters]{hebrew}

\babelfont[hebrew]{rm}{David CLM}
\babelfont[hebrew]{sf}{David CLM}

\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{witharrows}

% witharrows options
\WithArrowsOptions{displaystyle}

\tikzset{text=.}
\tikzset{
    WithArrows/arrow/.append style = {
        font= \small
    }
}

\begin{document}
נחשב את הגבול
\( \lim_{x \to \infty} f(x) \):
\begin{DispWithArrows*}
    L &= \lim_{x \to \infty} f(x) \\
    &= \lim_{x \to \infty} xP(x) e^{-x^2} \Arrow{\( Q(x) \coloneq xP(x) \) פולינום} \\
    &= \lim_{x \to \infty} Q(x) e^{-x^2}
\end{DispWithArrows*}
\end{document}

答案1

我对这个问题没有任何解释,但作为解决方法,你可以将方程式放在\hboxTeX 中。

\documentclass[a4paper, 12pt]{article}

\PassOptionsToPackage{no-math}{fontspec}

\usepackage[bidi=basic, layout=tabular, headfoot=hebrew]{babel}

% For Hebrew
\babelprovide[main, import, alph=letters, Alph=letters]{hebrew}
\babelprovide[import]{english}

% For English
% \babelprovide[main, import]{english}
% \babelprovide[import, alph=letters, Alph=letters]{hebrew}

\babelfont[hebrew]{rm}{David CLM}
\babelfont[hebrew]{sf}{David CLM}

\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{witharrows}

% witharrows options
\WithArrowsOptions{displaystyle}

\tikzset{text=.}
\tikzset{
    WithArrows/arrow/.append style = {
        font= \small
    }
}

\begin{document}
נחשב את הגבול
\( \lim_{x \to \infty} f(x) \):
\begin{DispWithArrows*}
    L &= \lim_{x \to \infty} f(x) \\
    &= \lim_{x \to \infty} xP(x) e^{-x^2} \Arrow{\hbox{\( Q(x) \coloneq xP(x)\)} פולינום} \\
    &= \lim_{x \to \infty} Q(x) e^{-x^2}
\end{DispWithArrows*}
\end{document}

上述代码的输出

答案2

抱歉回复晚了。我正在尝试寻找一个通用的解决方案,但下面有一个解决方法(@f-pantigny 几乎明白了)。为什么会这样?嗯,这与\hbox'es(不应在用户级别使用的 TeX 原语)在内部用于很多目的有关,并且无法知道它们是否包含真实文本或用于构建字母、符号、图形等的某种特殊组合。Babel尝试猜测如何处理它们,但可能会失败。


\documentclass[a4paper, 12pt]{article}

\PassOptionsToPackage{no-math}{fontspec}

\usepackage[bidi=basic, layout=tabular, headfoot=hebrew]{babel}

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

\babelfont[hebrew]{rm}{David CLM}

\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{witharrows}

% witharrows optionsפולינום
\WithArrowsOptions{displaystyle}

\tikzset{text=.}
\tikzset{
    WithArrows/arrow/.append style = {
        font= \small
    }
}

\begin{document}
נחשב את הגבול
\( \lim_{x \to \infty} f(x) \):
\begin{DispWithArrows*}
    L &= \lim_{x \to \infty} f(x) \\
    &= \lim_{x \to \infty} xP(x) e^{-x^2}
    \Arrow{\mbox{\(Q(x) \coloneq xP(x)\)} \mbox{פולינום}}\\
    &= \lim_{x \to \infty} Q(x) e^{-x^2}
\end{DispWithArrows*}
\end{document}

在此处输入图片描述

相关内容