Mathematica не показывает SubsuperscriptBox правильно в метке графика - PullRequest
3 голосов
/ 08 октября 2011

ребята, я столкнулся со странной проблемой при использовании mathematica.Как видно из прикрепленного снимка экрана, набор текста как-то интерпретируется как простой текст.

Есть ли способ исправить это?

Большое спасибо!(Я так растерялся. Иногда это действительно показывает правильную вещь ...)

enter image description here

Ответы [ 3 ]

7 голосов
/ 08 октября 2011

Можно заметить, что эта проблема выходит за рамки PlotLabel. Это также влияет на верхние индексы и индексы. Один из способов избежать этой проблемы - вставить пробел между объектом sub / superscript и смежным символом.

Я попытался опубликовать пример, но ошибка достаточно низкого уровня, поэтому невозможно вставить выражение в исходную форму. Мне придется прибегнуть к простой картине того, что я вижу. Хотя эти две строки выглядят одинаково, во второй строке есть пробел между «e 2 » и «(T)».

В Mathematica 7.0.1:

enter image description here

Это немного похоже на Известные проблемы с копированием кода из Mathematica на другие платформы? в том, что обе ошибки имеют дело с "2D" объектами внутри FractionBox.

6 голосов
/ 08 октября 2011

Я могу воспроизвести это с V7.0.1, но не с V8.0.1.

Самый простой обходной путь, который я нашел, состоит в том, чтобы структурировать дробь, используя отдельные строки для числителя и знаменателя.

Вы могли бы также использовать подход к набору текста вместо использования строк вообще:

Format[\[Epsilon][x_, sub_, sup_], TraditionalForm] := 
 Subsuperscript[\[Epsilon], sub, sup][x]

Graphics[{}, PlotLabel -> Style[Gamma[T]/\[Epsilon][T, 0, 2]]]
5 голосов
/ 08 октября 2011

В отличие от Бретта, мне не удалось воспроизвести ошибку ни в версии 7, ни в 8.

Однако, если вы используете математику в PlotLabel, возможно, лучше, чтобы Mathematica отображала ее, используя свою собственную наборку. Хитрость HoldForm

Например:

Plot[x, {x, 0, 1}, 
  PlotLabel -> HoldForm[\[Eta][T]/Subsuperscript[\[Epsilon], 0,2][T]]]

будет производить

a plot

независимо от каких-либо определений для Eta или Epsilon.


Как указал Бретт, на самом деле не работает в версии 7.0.1, так как кажется, что в TraditionalForm есть ошибка, заключающая в квадратные скобки в конструкции
Power[f,i][x]//TraditionalForm.
Чтобы обойти это, используйте Superscript вместо Power:

Power vs Subscript

Аналогично для знаменателя на приведенном выше графике вместо использования
Power[Subscript[...]][T], используйте Subsuperscript[...][T]:

Subsuperscript

Это означает, что вы не можете использовать стандарт (сочетание клавиш или палитра для) 2D-ввод , потому что SubsuperscriptBox, который создается с использованием этого, интерпретируется как Power[Subscript[...]]. Я исправил код для графики выше, чтобы отразить это.

Обратите внимание, что эта ошибка TraditionalForm была исправлена ​​в Mathematica версии 8.

...