mathematica неправильно отображает SubsuperscriptBox в метке графика

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

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

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

введите здесь описание изображения


person nos    schedule 08.10.2011    source источник
comment
Пожалуйста... скопируйте и вставьте сюда свой код. Вокруг полно ленивых людей, которые ненавидят печатать. (Эй! Не смотри на меня!)   -  person Dr. belisarius    schedule 08.10.2011
comment
@belisarius есть еще один вопрос, связанный с аналогичной проблемой синтаксического анализа с полем вложенных дробей. Пожалуйста, попробуйте помочь мне найти его.   -  person Mr.Wizard    schedule 08.10.2011
comment
@belisarius Я нашел то, что искал, и связал это ниже.   -  person Mr.Wizard    schedule 08.10.2011


Ответы (3)


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

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

Например:

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

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

сюжет

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


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

Сила против подписки

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

Подстрочный индекс

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

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

person Simon    schedule 08.10.2011
comment
Это напоминает мне то, что мой маленький племянник с глазами, полными слез, сказал на днях своей матери, возвращаясь из детского сада: - Я чувствую разочарование! Я был не в состоянии плохо себя вести достаточно хорошо!- :) - person Dr. belisarius; 08.10.2011
comment
Когда я пробую это в V7.0.1, я получаю квадратные скобки вместо скобок в знаменателе. - person Brett Champion; 08.10.2011
comment
@Бретт: Верно! Я этого не заметил... На самом деле это ошибка в TraditionalForm версии 7.0.1 (исправлена ​​в версии 8) - см. правку - person Simon; 09.10.2011

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

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

В системе Mathematica 7.0.1:

введите здесь описание изображения

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

person Mr.Wizard    schedule 08.10.2011
comment
Какая это версия ММА? - person Simon; 08.10.2011
comment
@Simon 7.0.1 - извините, я включил это в свой исходный пост, но не учел в редакции. - person Mr.Wizard; 08.10.2011
comment
@Simon Я знаю, что был вопрос о похожей проблеме с неправильным разбором вложенных дробей. Сможете найти? - person Mr.Wizard; 08.10.2011
comment
Я только что потратил ~ 10 минут на поиски и не смог найти ... извините! - person Simon; 08.10.2011
comment
@ Саймон и мистер Я думаю, что к сообщению Toolbag можно добавить коллекцию ошибок. Что вы думаете? - person Dr. belisarius; 08.10.2011
comment
@belisarius Я не думаю, что ошибки - это действительно инструменты, поэтому просто список, я бы сказал нет. Однако, если бы каждая ошибка соответствовала исправлению или обходному пути, я бы сказал «да». Кстати, в вопросе выше не было тега ошибок, поэтому я добавил его. ты согласен с этим? Если это так, мы могли бы задним числом пометить таким образом любые другие вопросы, связанные с реальными ошибками. - person Mr.Wizard; 08.10.2011
comment
@Мистер. Публикация вопроса для каждой известной ошибки не кажется хорошим путем ... Я думаю, что ваше предложение оправдывает другие ожидания. В любом случае, давайте пометим эти вопросы :) - person Dr. belisarius; 08.10.2011
comment
@Мистер. Вместо разделения пробелом я бы, вероятно, разделил \[VeryThinSpace] или \[NegativeVeryThinSpace], так как это делает выражение более похожим на функцию - скобки ближе к правому положению. Обратите внимание, что такое же поведение происходит с нижними индексами и нижними надстрочными индексами... - person Simon; 09.10.2011
comment
@Simon нет никакой разницы во внешнем виде между формой с добавленным пространством и без него, по крайней мере, в моей системе. Пожалуйста, обратитесь к изображению выше. - person Mr.Wizard; 09.10.2011
comment
@Mr.Wizard: Достаточно справедливо, но отрицательное или тонкое пространство будет меньшим пространством, чем отсутствие пространства. - person Simon; 09.10.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]]]
person Brett Champion    schedule 08.10.2011