3

伙计们,我在使用mathematica时遇到了一个奇怪的问题。从随附的屏幕截图中可以看出,排版以某种方式被解释为纯文本。

有没有办法来解决这个问题?

非常感谢!(我很困惑。它实际上有时会显示正确的东西......)

在此处输入图像描述

4

3 回答 3

7

可以观察到这个问题超出了 PlotLabel 的范围。它还影响上标和下标。避免该问题的一种方法是在子/上标对象和相邻符号之间插入一个空格。

我试图发布一个示例,但错误级别很低,无法将表达式粘贴为其原始形式。我将不得不求助于仅包含我所看到的图片。虽然这两行看起来很相似,但第二行的“e 2 ”和“(T)”之间有一个空格。

在 Mathematica 7.0.1 中:

在此处输入图像描述

这有点类似于将代码从 Mathematica 复制到其他平台的已知问题?因为这两个错误都处理FractionBox.

于 2011-10-08T06:26:12.097 回答
6

我可以用 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]]]
于 2011-10-08T04:11:10.657 回答
5

与 Brett 不同,我无法在版本 7 或 8 中重现该错误。

但是,如果您在 中使用数学PlotLabel,最好让 Mathematica 使用自己的排版来渲染它。诀窍是HoldForm

例如:

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

会产生

剧情

与 Eta 或 Epsilon 的任何定义无关。


正如 Brett 所指出的,这实际上在 7.0.1 版本中不起作用,因为它似乎存在一个错误TraditionalForm,将方括号放在构造中
Power[f,i][x]//TraditionalForm
解决此问题的方法是使用Superscript而不是Power

幂与下标

类似地,对于上图中的分母,不要使用 ,而是
Power[Subscript[...]][T]使用Subsuperscript[...][T]

下标

这意味着您不能使用标准(键盘快捷键或调色板)2D 输入,因为SubsuperscriptBox使用 this 生成的 被解释为 Power[Subscript[...]]。我已经修复了上面图形的代码以反映这一点。

请注意,此TraditionalForm错误已在 Mathematica 版本 8 中修复。

于 2011-10-08T04:20:43.393 回答