我使用 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
我对这个问题没有任何解释,但作为解决方法,你可以将方程式放在\hbox
TeX 中。
\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}