2010-05-19 9 views
21

Estoy usando el símbolo \otimes como operador unario y su alineación vertical no me parece correcta. Quiere sentarse un poco por debajo de la línea de base. Por ejemplo, si defino \newcommand{\myop}{\ensuremath \otimes}, entonces $\myop I$ se convierteColocación vertical del símbolo matemático en LaTeX

Operator below the baseline http://i48.tinypic.com/iqajo5.jpg

y $F_{\myop I}$ convierte

Operator misaligned in subscript http://i46.tinypic.com/mimgrr.png

I intentado utilizar \raisebox de solucionar este problema, por ejemplo,

\newcommand{\myop}{\ensuremath \raisebox{1pt}{$\otimes$}} 

Este corrige $\myop I$:

Operator near baseline http://i48.tinypic.com/2dspbhc.png

Pero \raisebox no parece ser sensible a los subíndices. El operador mantiene el mismo tamaño, mientras todo a su alrededor se encoge:

Operator too big in subscript http://i47.tinypic.com/jku4p5.png

El problema, creo, es que \raisebox crea su propia caja LR, que no hereda la configuración en el entorno que rodea a las matemáticas. ¿Hay una versión de \raisebox que "respete las matemáticas"?

+2

@Loving fanatic: no, el consenso es que pertenece aquí. –

+2

Sí, me gustaría señalar que revisé esta publicación de Meta antes de hacer la pregunta: http://meta.stackexchange.com/questions/12918/can-we-have-a-ruling-on-latex-on-stackoverflow Deberías hágalo también antes de votar para cerrar. –

Respuesta

10

Trate \mathchoice (o \mathpalette):

\newcommand{\myop}{% 
    \mathchoice{\raisebox{1pt}{$\displaystyle\otimes$}} 
      {\raisebox{1pt}{$\otimes$}} 
      {\raisebox{0.5pt}{$\scriptstyle\otimes$}} 
      {\raisebox{0.2pt}{$\scriptscriptstyle\otimes$}}} 

El amsopn documentation dice:

... la separación vertical puede no ser óptima en el guión y scriptscript tamaños. Desafortunadamente, TeX no ofrece una manera fácil de hacer el espaciado vertical en modo matemático que varía con el estilo matemático actual, como las unidades mu.

+1

'\ mathchoice' parece ser la solución. Pero no puedo encontrar la documentación para ello en Google ... ¿Punteros? –

+1

The TeXbook, p. 151. Ver http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=texbook para el código fuente. –

+2

@Chris: los Javadocs de Extex tienen una documentación sorprendentemente buena de primitivos Tex. Para '\ mathchoice', consulte http://www.extex.org/snapshot/javadoc/org/extex/unit/tex/math/Mathchoice.html –

0
$F_{\raisebox{1pt}{\scriptsize$\otimes$} I}$ 
+0

Esto funciona, claro, pero quiero ser capaz de ponerlo en una macro que funcionará en cualquier contexto. Por ejemplo, '\ newcommand {\ myop} {\ ensuremath ... \ otimes ...}' –

+0

Editado la pregunta para responder a esto. –

Cuestiones relacionadas