Подтвердить что ты не робот

Вертикальное размещение математического символа в LaTeX

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

Operator below the baseline

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

Operator misaligned in subscript

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

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

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

Operator near baseline

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

Operator too big in subscript

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

4b9b3361

Ответ 1

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

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

документация amsopn говорит:

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

Ответ 2

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