Вертикальное размещение математического символа в LaTeX - PullRequest
21 голосов
/ 19 мая 2010

Я использую символ \otimes в качестве унарного оператора, и его вертикальное выравнивание мне не кажется правильным. Он хочет сидеть немного ниже базовой линии. Например, если я определю \newcommand{\myop}{\ensuremath \otimes}, то $\myop I$ станет

Оператор ниже базовой линии http://i48.tinypic.com/iqajo5.jpg

и $F_{\myop I}$ становится

Оператор смещен в нижнем индексе http://i46.tinypic.com/mimgrr.png

Я пытался использовать \raisebox, чтобы исправить это, например,

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

Это исправляет $\myop I$:

Оператор около базовой линии http://i48.tinypic.com/2dspbhc.png

Но \raisebox, кажется, не чувствителен к подписчикам. Оператор остается того же размера, а все вокруг сокращается:

Оператор слишком большой в индексе http://i47.tinypic.com/jku4p5.png

Проблема, я думаю, в том, что \raisebox создает свой собственный блок LR, который не наследует настройки в окружающей математической среде. Есть ли версия \raisebox, которая "уважает математику"?

Ответы [ 2 ]

11 голосов
/ 19 мая 2010

Попробуйте \mathchoice (или \mathpalette):

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

Документация amsopn гласит:

... вертикальный интервал может быть неоптимальным в скрипте и скрипте размеры. К сожалению, в TeX нет простого способа сделать вертикальный интервал в математическом режиме. это зависит от текущего математического стиля, например, от единиц мю.

1 голос
/ 19 мая 2010
$F_{\raisebox{1pt}{\scriptsize$\otimes$} I}$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...