"Unidades" de longitud sensibles al contexto en LaTeX

"Unidades" de longitud sensibles al contexto en LaTeX

Me gustaría incluir en alguna macro un espacio de separación que sea "sensible al contexto" (en el sentido de que cuando se llama a la macro, por ejemplo, dentro de un subíndice, el espacio de separación se reduce en consecuencia).

¿Existe algún comando específico que produzca tal comportamiento?

De lo contrario, me siento tentado a utilizar el comando \phantompara simularlo, por ejemplo:

\newcommand{\contextseparate}[2]{#1 \phantom{M} #2} 

¿Es aceptable este último enfoque? (Por alguna razón me parece mal)

Respuesta1

Si incrusta la definición de macro \ThisStyle{}desde el scalerelpaquete, reconoce \LMpty \LMexcomo longitudes que escalan con el tamaño de Local-Math.

Más particularmente, los factores de escala para \LMpty \LMexestán predefinidos (pero se pueden restablecer) como

\def\scriptstyleScaleFactor{0.7}
\def\scriptscriptstyleScaleFactor{0.5}

Obviamente, el factor de escala es 1 para \textstyley \displaystyle. El MWE:

\documentclass{article}
\usepackage{scalerel}
\newcommand{\contextseparate}[2]{\ThisStyle{#1\kern1.5\LMex#2}} 
\begin{document}
$\contextseparate{A}{B}$\par
$\scriptstyle\contextseparate{A}{B}$\par
$\scriptscriptstyle\contextseparate{A}{B}$
\end{document}

ingrese la descripción de la imagen aquí

Si alguna vez necesita recuperar el estilo matemático actual en un lugar donde de otro modo sería inaccesible (como dentro de un cuadro), puede invocarlo \SavedStylepara recuperar cualquier estilo que estuviera activo al inicio del archivo \ThisStyle.

\documentclass{article}
\usepackage{scalerel}
\newcommand{\contextseparate}[2]{\ThisStyle{\fboxsep=0pt%
  #1\fbox{$\phantom{\SavedStyle m}$}#2}} 
\begin{document}
$\contextseparate{A}{B}$\par
$\scriptstyle\contextseparate{A}{B}$\par
$\scriptscriptstyle\contextseparate{A}{B}$
\end{document}

ingrese la descripción de la imagen aquí

información relacionada