Ale*_*kov 6 wolfram-mathematica mathematica-frontend
使用Messages内置功能都嵌入线格式.例如:
In[1]:= ActionMenu::usage // FullForm
Out[1]//FullForm=
"\!\(\*RowBox[{\"ActionMenu\", \"[\", RowBox[{StyleBox[\"name\", \"TI\
\"], \",\", RowBox[{\"{\", \
RowBox[{RowBox[{SubscriptBox[StyleBox[\"lbl\", \"TI\"], \
StyleBox[\"1\", \"TR\"]], \":>\", SubscriptBox[StyleBox[\"act\", \"TI\
\"], StyleBox[\"1\", \"TR\"]]}], \",\", \
RowBox[{SubscriptBox[StyleBox[\"lbl\", \"TI\"], StyleBox[\"2\", \
\"TR\"]], \":>\", SubscriptBox[StyleBox[\"act\", \"TI\"], \
StyleBox[\"2\", \"TR\"]]}], \",\", StyleBox[\"\[Ellipsis]\", \
\"TR\"]}], \"}\"}]}], \"]\"}]\) represents an action menu with label \
\!\(\*StyleBox[\"name\", \"TI\"]\), and with items labeled \
\!\(\*SubscriptBox[StyleBox[\"lbl\", \"TI\"], StyleBox[\"i\", \
\"TI\"]]\), that evaluates the expression \
\!\(\*SubscriptBox[StyleBox[\"act\", \"TI\"], StyleBox[\"i\", \
\"TI\"]]\) if the corresponding item is chosen."
Run Code Online (Sandbox Code Playgroud)
可以看到,这种内联格式化基于Core.nb样式表的"内联格式样式"部分中定义的样式集.但是我没有找到这些样式的任何文档以及向usage Messages 添加格式的方便算法的任何描述.
usage Message在Mathematica中为用户定义的s 添加内联格式的便捷方法是什么?Core.nb样式表中定义的内联格式的默认样式的使用规则是什么?我想usage Message使用Mathematica为我的包中的s 添加内联格式,而无需安装Workbench等其他组件.
PS Strings中嵌入式内联格式的语法部分记录在教程页面" Box表示框"中.在此语法的官方新闻组相关的问题:" ?(对任何文档)线性语法 "显示在前台这样的字符串是由选项控制ShowStringCharacters->False的Cell.
处理此类字符串的问题之一是 Mathematica 中的大多数字符串操作都会自动将反斜杠 ( \) 替换为转义的反斜杠 ( \\)。
如果你尝试这样做:
您可能认为您已经找到了要查找的字符串(减去\!使其成为表达式),但实际上它是:"\\(x\\_\\(1, 2\\) \[Equal] \\(\\(-b\\) \[PlusMinus] \\@\\(b\\^2 -\\(4\\ a\\ c\\)\\)\\)\\/\\(2\\ a\\)\\)"
我的解决方案远非优雅,但它有效。

Cell > Convert to > InputForm。结果:

\!其放在前面并在其周围加上引号:
"\!\(x \_ \(1, 2\) == \(\(-b\) \[PlusMinus] \@\(b \^2 - \(4\ a\ c\)\)\) \/ \(2\ a\)\)" 如果您在外部编辑器中执行步骤 3,请保留引号,只需将\!结果放在前面并将结果粘贴回 MMA 中,它会直接转换为格式化表达式
| 归档时间: |
|
| 查看次数: |
822 次 |
| 最近记录: |