TRT pagedir (lualatex) 中的 align* 环境问题

TRT pagedir (lualatex) 中的 align* 环境问题

我有这个示例,其环境位于 TRT pagedir(lualatex 引擎)中,即使环境放置在从左到右的上下文中(使用)@DavidCarlisle,align*结果也会向右对齐\bodydir TLT \pardir TLT \textdir TLT

\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{amsmath}

\pagedir TRT\bodydir TRT \pardir TRT \textdir TRT
\begin{document}


\begin{align*}
f(x)&=1+\dfrac{1}{x+2}\\
    &=1+k(x+2) 
\end{align*}

{%
\bodydir TLT \pardir TLT \textdir TLT
\begin{align*}
f(x)&=1+\dfrac{1}{x+2}\\
    &=1+k(x+2) 
\end{align*}
 }

 \newpage

\pagedir TLT \bodydir TLT \pardir TLT \textdir TLT

\begin{align*}
f(x)&=1+\dfrac{1}{x+2}\\
    &=1+k(x+2) 
\end{align*}

\end{document}

在此处输入图片描述

答案1

仅凭评论太复杂了,但是:

我刚刚发现这个问题已经解决了这里。我通过使用包etoolbox来修补命令而不是复制相关宏的整个定义来改进此解决方案。但说实话,我并不完全清楚此修补程序究竟为何有效。

由于我只是完善了他们的答案,并不了解其背后的机制,所以应该给予赞扬用户22486

\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{amsmath}

\usepackage{etoolbox}
\makeatletter
\patchcmd{\math@cr@@@align}{\fi\ifst@rred}{\else\place@tag\fi\ifst@rred}{}{}
\makeatother

\pagedir TRT \bodydir TRT \pardir TRT \textdir TRT

\begin{document}

Hello

\begin{align*}
f(x)&=1+\dfrac{1}{x+2}\\
    &=1+k(x+2) 
\end{align*}

Hello

{
\bodydir TLT \pardir TLT \textdir TLT 

Hello

\begin{align*}
f(x)&=1+\dfrac{1}{x+2}\\
    &=1+k(x+2) 
\end{align*}

Hello

}

Hello

\end{document}

在此处输入图片描述

相关内容