\caption versus un nuevo setminus

\caption versus un nuevo setminus

Estoy usando lo siguiente comouna mejora en el aspecto de\setminus:

\newcommand\rsetminus{\mathbin{\mathpalette\rsetminusaux\relax}}
\newcommand\rsetminusaux[2]{\mspace{-4mu}
\raisebox{\rsmraise{#1}\depth}{\rotatebox[origin=c]{-20}{$#1\smallsetminus$}}
 \mspace{-4mu}
}
\newcommand\rsmraise[1]{%
  \ifx#1\displaystyle .8\else
    \ifx#1\textstyle .8\else
      \ifx#1\scriptstyle .6\else
        .45%
      \fi
    \fi
  \fi}

\rsetminusfunciona bien en modo matemático, pero dentro del título de una figura en modo matemático produce un error que indica que el "argumento de \@captiontiene un extra }".

Agregué \protect antes de \rotatebox. Sin efecto. Tengo otro comando que utiliza \raiseboxpara mover la letra griega chi hasta la línea normal. Tiene un \protectantes \raiseboxy funciona bien dentro del título de una figura en modo matemático.

También probé con \ensuremathantes del \protect. ¿Consejo?

Respuesta1

Un error como

argument of \@caption has an extra }

normalmente significa “tienes un comando frágil en el argumento para \caption. Como \mathbinno es frágil, el culpable debe ser \mathpaletteo \rsetminusauxy de hecho éste utiliza \raiseboxlo que es frágil.

Solución:

\DeclareRobustCommand\rsetminus{\mathbin{\mathpalette\rsetminusaux\relax}}

en lugar de \newcommand.

información relacionada