Não é possível usar \left. ... \certo| em um ambiente personalizado

Não é possível usar \left. ... \certo| em um ambiente personalizado

Estou escrevendo um documento em hebraico (RTL) com equações e compilo com xelatex. Os números das equações estão errados e descobri que colocar \LTRa etiqueta antes da equação corrige isso. Eu criei um ambiente que com isso, mas algo está errado. Quando tento compilar isso, por exemplo:

\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}

Eu recebo este erro:

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

Acho que minha abordagem foi muito ingênua. Como posso conseguir isso?

Responder1

Você especificou que o ltreqambiente tem um argumento, então ele está engolindo o \leftno início da equação. Se você remover o [1]da definição, funciona:

\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}

informação relacionada