而矩阵的()则可以自动延伸到适当大小以包住整个矩阵,如下图所示:
![](file:///C:/DOCUME%7E1/WZY/LOCALS%7E1/Temp/moz-screenshot.jpg)
![](file:///C:/DOCUME%7E1/WZY/LOCALS%7E1/Temp/moz-screenshot-1.jpg)
在Word 2007中试验了一下,它的公式编辑器是可以的,如下图所示:
miniWhale翻阅了一下《Tour of Mathematica》,发现用StyleBox[……, SpanMaxSize -> Infinity] // DisplayForm可以解决这个问题。
1、有关Low-Level Notebook Structure的概念
Notebook[ {cell1, cell2, ……}]
Cell[内容, 格式]
RowBox[ {box1, box2, …} ],构建1行
GridBox[ { {box11, box12, …}, {box21, box22, …}, … } ],构建1表
SuperscriptBox、SubscriptBox、SubsuperscriptBox[主体, 下, 上],上下标
OverscriptBox、UnderscriptBox、UnderoverscriptBox[主体, 下, 上],正上下标
FractionBox[分子, 分母],分数
SqrtBox[主体]、RadicalBox[主体, 方],根号
StyleBox[boxes, options],设置选项
StyleBox[boxes, "格式"],设置选项
FrameBox
AdjustmentBox
FormBox
InterpretationBox
TagBox
ErrorBox
由于函数名字已经很好的暗示了其功能,这里不再赘述。
2、StyleBox与自动垂直延伸相关的选项
选项 | 默认值 | 备注 |
SpanMinSize | Automatic | 垂直可延字符的最小高度 |
SpanMaxSize | Automatic | 垂直可延字符的最大高度 |
SpanSymmetric | True | 是否对称延伸 |
SpanLineThickness | Automatic | 是否自动粗细 |
但是,小括号()永远自动垂直延伸。
4、解决方案
有了上面的知识,可以解释为啥矩阵可以自动被包围,而大括号、中括号却不行。当然,要解决这个问题也很简单,就是用StyleBox[……, SpanMaxSize -> Infinity] // DisplayForm。
下面是一个实例:
StyleBox[RowBox[{ "{",
GridBox[{ {AAA}, {BBB}, {CCC}, {DDD}, {EEE} }]}] ,
SpanMaxSize -> Infinity] // DisplayForm
3、其它
遗憾的是,Word中调好的公式copy到Mathematica中,仍然不能正确显示;同样,Mathematica中调好的公式copy到Word中,也不能正确显示。
前一个问题容易解决,就是在Mathematica中,按Shift+Ctrl+E,相当于ToBoxex,在代码里修改即可。
miniWhale原创
No comments:
Post a Comment