2010-05-19 14 views
21

Sto usando il simbolo \otimes come operatore unario e l'allineamento verticale non mi sembra corretto. Vuole stare un po 'al di sotto della linea di base. Ad esempio, se definisco \newcommand{\myop}{\ensuremath \otimes}, quindi $\myop I$ diventaPosizionamento verticale del simbolo matematico in LaTeX

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

e $F_{\myop I}$ diventa

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

Ho provato utilizzando \raisebox per risolvere questo problema, per esempio,

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

Questo correzioni $\myop I$:

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

Ma \raisebox non sembra essere sensibile a indici. L'operatore rimane la stessa dimensione, mentre tutto intorno si restringe:

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

Il problema, credo, è che \raisebox crea una propria casella di LR, che non ereditano le impostazioni nell'ambiente circostante matematica. Esiste una versione di \raisebox che "rispetta la matematica"?

+2

@Closing fanatico: no, il consenso è che appartiene proprio qui. –

+2

Sì, vorrei notare che ho controllato questo post Meta prima di porre la domanda: http://meta.stackexchange.com/questions/12918/can-we-ha-a-ruling-on-latex-on-stackoverflow Si dovrebbe fallo anche prima di votare per chiudere. –

risposta

10

Prova \mathchoice (o \mathpalette):

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

Il amsopn documentation dice:

... la spaziatura verticale non può essere ottimale in sceneggiatura e scriptscript dimensioni. Sfortunatamente TeX non fornisce un modo semplice per eseguire la spaziatura verticale in modalità matematica che varia con lo stile matematico corrente come unità mu.

+1

'\ mathchoice' sembra essere la cosa giusta. Ma non riesco a trovare la documentazione per questo in Google ... Puntatori? –

+1

The TeXbook, p. 151. Vedi http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=texbook per il codice sorgente. –

+2

@Chris: i Javadoc di Extex hanno una documentazione sorprendentemente buona delle primitive di Tex. Per '\ mathchoice', vedere http://www.extex.org/snapshot/javadoc/org/extex/unit/tex/math/Mathchoice.html –

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

Funziona, certo, ma voglio essere in grado di metterlo in una macro che funzionerà in qualsiasi contesto. Ad esempio, '\ newcommand {\ myop} {\ ensuremath ... \ otimes ...}' –

+0

Modificata la domanda per rispondere a questo. –