Avisarme cuando el número de ecuación pase a la siguiente línea

Avisarme cuando el número de ecuación pase a la siguiente línea

¿Es posible dejar que amsmathme avise cuando la ecuación es demasiado larga y empuja el número a la siguiente línea?

Espero que se imprima Equation (1) too longen la consola o que la (1)pieza se ponga roja.

\documentclass[twocolumn]{article}

\usepackage{amsmath}

\begin{document}

    \begin{equation}
        A+B+C+D+R+F+G+H+I+J+L+M+N+O+P
    \end{equation}

\end{document}

Respuesta1

No quiero decir que sea imposible, pero definitivamente es un problema difícil, porque amsmathdepende de lo \eqnoprimitivo para hacer este trabajo por el equationmedio ambiente.

\hsize=8cm
$$A+B+C+D+R+F+G+H+I+J+L+M+N+O+P\eqno(1)$$
\bye

ingrese la descripción de la imagen aquí

Entonces, la única forma que veo es anular la \eqnoprimitiva y medir las penalizaciones para ver si el número pasará a la siguiente línea.


Para la alignfamilia de entornos es un poco más fácil porque el cambio de etiquetas se maneja mediante macros, a las que simplemente se conecta el error o advertencia personalizado.

\documentclass[twocolumn]{article}

\usepackage{amsmath}

\makeatletter
\def\place@tag{%
    \iftagsleft@
        \kern-\tagshift@
        \if1\shift@tag\row@\relax
            \errmessage{Equation too wide}%
            \rlap{\vbox{%
                \normalbaselines
                \boxz@
                \vbox to\lineht@{}%
                \raise@tag
            }}%
        \else
            \rlap{\boxz@}%
        \fi
        \kern\displaywidth@
    \else
        \kern-\tagshift@
        \if1\shift@tag\row@\relax
            \errmessage{Equation too wide}%
            \llap{\vtop{%
                \raise@tag
                \normalbaselines
                \setbox\@ne\null
                \dp\@ne\lineht@
                \box\@ne
                \boxz@
            }}%
        \else
            \llap{\boxz@}%
        \fi
    \fi
}
\makeatother


\begin{document}

    \begin{align}
        A+B+C+D+R+F+G+H+I+J+L+M+N+O+P
    \end{align}

\end{document}

Otra posibilidad sería componer la ecuación dos veces, pero una vez con ancho cero (usando \vphantom), de modo que el número no pueda ir en la segunda línea. Luego compare la altura de la ecuación tipográfica regular con la de ancho cero. Si la altura del normal es mayor que la del otro, hubo un salto de línea.

\documentclass[twocolumn]{article}

\usepackage{amsmath}
\usepackage{environ}

\NewEnviron{warnequation}{
  \setbox0=\vbox{\begin{equation}\BODY\end{equation}}%
  \setbox1=\vbox{\begin{equation}\vphantom{\BODY}\end{equation}}%
  \ifdim\ht0>\ht1
    \errmessage{Equation too wide}%
  \fi
  \box0
}

\begin{document}

    \begin{warnequation}
        A+B+C+D+R+F+G+H+I+J+L+M+N+O+P
    \end{warnequation}

\end{document}

información relacionada