在自定义环境中无法使用 \left. ... \right|

在自定义环境中无法使用 \left. ... \right|

我正在编写一个包含方程式的希伯来语 (RTL) 文档,并使用 xelatex 对其进行编译。方程式编号错误,我发现\LTR在方程式前放置标签可以解决这个问题。我已经创建了一个包含它的环境,但有些不对劲。例如,当我尝试编译它时:

\documentclass[11pt]{article}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage{xltxtra} 
\usepackage{bidi} 
\setmainfont{Arial} 
\tolerance=1000
\providecommand{\alert}[1]{\textbf{#1}}
\newenvironment{ltreq}[1]{
  \LTR
  \begin{equation}
    {1}}
  {\end{equation}
  \RTL}

\begin{document}
\RTL

\begin{ltreq}
\left . \frac{\partial f}{\partial y} \eta \right |_{x_1}^{x_2} -\int_{x_1}^{x_2} \frac{\partial f}{\partial y'} \eta dx
\end{ltreq}
\RTL

\end{document}

我收到此错误:

l.22 ...frac{\partial f}{\partial y} \eta \right |
                                                  _{x_1}^{x_2} -\int_{x_1}^{...

我想,我的方法太幼稚了。我该如何实现这一点?

答案1

您指定环境有一个参数,因此它在等式的开头ltreq吞掉了。如果您从定义中删除它,它就会起作用:\left[1]

\documentclass[11pt]{article}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage{xltxtra} 
\usepackage{bidi} 
\setmainfont{Arial} 
\tolerance=1000
\providecommand{\alert}[1]{\textbf{#1}}
\newenvironment{ltreq}{
  \LTR
  \begin{equation}}
  {\end{equation}
  \RTL}

\begin{document}
\RTL

\begin{ltreq}
\left . \frac{\partial f}{\partial y} \eta \right |_{x_1}^{x_2} -\int_{x_1}^{x_2} \frac{\partial f}{\partial y'} \eta dx
\end{ltreq}
\RTL

\end{document}

相关内容