¿Cómo cancelo un exponente en una ecuación usando siunitx?

¿Cómo cancelo un exponente en una ecuación usando siunitx?

El ejemplo de trabajo mínimo a continuación demuestra el problema. Tengo varias ecuaciones formateadas como la primera a continuación, donde digamos que el numerador tiene metros cuadrados y el denominador tiene metros. Me gustaría cancelar el exponente, pero ahora tengo que decir "m m" y cancelar la primera "m", lo cual parece un poco tonto.

\documentclass{article}
\usepackage{siunitx}
\usepackage{cancel}
\begin{document}
    How can I cancel out the exponent in the numerator of the following equation?
    \begin{equation}
        W = \frac{\SI{32}{\square\meter}}{\SI{4}{\meter}} = \SI{8}{\meter}
    \end{equation}
    If instead of using \si{\square\meter} I use \si{\meter\meter}, it's easy:
    \begin{equation}
        W = \frac{\SI{32}{\cancel\meter\meter}}{\SI{4}{\cancel\meter}} = \SI{8}{\meter}
    \end{equation}
\end{document}

Obviamente, si fueran metros al cubo divididos por metros, me gustaría cancelar el 3 y seguirlo con un 2, pero aún no he tenido ese problema. ¡Gracias de antemano!

Respuesta1

Como mencionó Mico, probablemente sea más fácil omitirlo siunitxtodo y configurarlo manualmente. Si realmente deseas seguir usando siunitx, puedes intentar usar un poco de interletraje para colocarlo \cancelen el lugar correcto. Por ejemplo, puedes usar el par de macros 1 a continuación para tachar elfinalsubíndice en una unidad.

\usepackage{calc}

\newdimen{\KernAmount}

\newcommand{\cancelsup}[2]{%
  \setlength{\KernAmount}{\widthof{{\scriptsize \cancel{#1}}}*\real{-1}}%
  #2\kern\KernAmount\vphantom{}^{\cancel{\phantom{#1}}}}

\newcommand{\canceltosup}[3]{%
  \setlength{\KernAmount}{\widthof{{\scriptsize \cancel{#1}}}*\real{-1}}%
  #3\kern\KernAmount\vphantom{}^{\cancel{\phantom{#1}}}\vphantom{}^{^{#2}}}

El primero simplemente tacha el exponente, mientras que el segundo también coloca la potencia de reemplazo en texto pequeño encima de la cancelación. Por ejemplo:

\[
    W = \frac{\cancelsup{2}{\SI{32}{\square\meter}}}{\SI{4}{\cancel\meter}} = \SI{8}{\meter}
\] \[
    W = \frac{\canceltosup{3}{2}{\SI{32}{\cubic\meter}}}{\SI{4}{\cancel\meter}} = \SI{8}{\square\meter}
\]

Captura de pantalla del resultado del código anterior

Tenga en cuenta que ambos necesitan que proporcione un marcador de posición para el número que va a cancelar. Esto es para garantizar que se produzca la forma y posición de cancelación correctas.


1 Como ocurre con todos los fragmentos de código, este solo se prueba ligeramente y puede fallar de manera impredecible.

información relacionada