2010-05-19 6 views
21

J'utilise le symbole \otimes comme opérateur unaire et son alignement vertical ne me semble pas correct. Il veut s'asseoir un peu au-dessous de la ligne de base. Par exemple, si je définis \newcommand{\myop}{\ensuremath \otimes}, puis $\myop I$ devientPositionnement vertical du symbole mathématique dans LaTeX

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

et $F_{\myop I}$ devient

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

J'ai essayé d'utiliser \raisebox pour résoudre ce problème, par exemple,

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

Cette corrige $\myop I$:

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

Mais \raisebox ne semble pas être sensible aux indices. L'opérateur reste la même taille, alors que tout autour d'elle se rétrécit:

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

Le problème, je pense, est que \raisebox crée sa propre boîte LR, qui ne hérite pas les paramètres dans l'environnement de mathématiques autour. Y a-t-il une version de \raisebox qui "respecte les maths"?

+2

@ fanatique de fermeture: non, le consensus est qu'il appartient ici. –

+2

Oui, je voudrais noter que j'ai vérifié ce poste Meta avant de poser la question: http://meta.stackexchange.com/questions/12918/can-we-have-a-ruling-on-latex-on-stackoverflow Vous devriez faites-le aussi avant de voter pour fermer. –

Répondre

10

Essayez \mathchoice (ou \mathpalette):

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

Le amsopn documentation dit:

... l'espacement vertical peut ne pas être optimale dans le script et scriptscript tailles. Malheureusement, TeX ne fournit pas de moyen facile de faire l'espacement vertical en mode mathématique qui varie avec le style mathématique actuel comme les unités mu.

+1

'\ mathchoice' semble être juste la chose. Mais je ne peux pas trouver la documentation pour cela dans Google ... Pointers? –

+1

Le TeXbook, p. 151. Voir http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=texbook pour le code source. –

+2

@Chris: Les Javadocs d'Extex ont une documentation étonnamment bonne sur les primitives Tex. Pour '\ mathchoice', voir http://www.extex.org/snapshot/javadoc/org/extex/unit/tex/math/Mathchoice.html –

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

Cela fonctionne, bien sûr, mais je veux être en mesure de le mettre dans une macro qui fonctionnera dans n'importe quel contexte. Par exemple, '\ newcommand {\ myop} {\ ensuremath ... \ otimes ...}' –

+0

A édité la question pour répondre à ceci. –

Questions connexes