gpt4 book ai didi

wolfram-mathematica - 格式化使用消息

转载 作者:行者123 更新时间:2023-12-04 08:01:44 26 4
gpt4 key购买 nike

如果你看看 Combinatorica Mathematica8 中的软件包 (mathematicapath)/AddOns/LegacyPackages/DiscreteMath/Combinatorica.m您将找到函数的定义。我有兴趣知道 Mathematica 如何知道如何格式化使用消息。有些东西告诉我我没有查看正确的文件。无论如何,让我们尝试以下操作:

Cofactor::usage = "Cofactor[m, {i, j}] calculates the (i, j)th cofactor of matrix m."

这一行就是上面提到的文件中的682行。现在,如果我们在 mathematica notebook 中运行它并使用 ?Cofactor我们将看到完全相同的消息。但是如果我们得到包,那么消息就被格式化了。这是一个屏幕截图:

enter image description here

注意函数中的 m、i 和 j 是如何改变的,并且消息中添加了一个双箭头。我认为箭头已添加到消息中,因为存在相关文档。有人可以解释这种行为吗?

编辑:
这是我的笔记本文件的屏幕截图,它自动保存到一个 m 文件。

enter image description here

如您所见, LM是在斜体时代新罗马。现在我将加载包并查看使用情况。

enter image description here

到现在为止还挺好。现在让我们看看文档中心。我会寻找函数 LineDistance .

enter image description here

如您所见,它显示了一条奇怪的消息。在这种情况下,我们只想显示没有任何样式的消息。我还是想不通 Combinatorica包做到这一点。
我关注了 this制作索引,以便文档中心可以显示摘要。摘要本质上是使用情况显示。让我知道是否需要更具体。

最佳答案

好,解释到此。

对 Combinatorica 源代码的挖掘揭示了这一点:

(* get formatted Combinatorica messages, except for special cases *)
If[FileType[ToFileName[{System`Private`$MessagesDir,$Language},"Usage.m"]]===File,
Select[FindList[ToFileName[{System`Private`$MessagesDir,$Language},"Usage.m"],"Combinatorica`"],
StringMatchQ[#,StartOfString~~"Combinatorica`*"]&&
!StringMatchQ[#,"Combinatorica`"~~("EdgeColor"|"Path"|"Thin"|"Thick"|"Star"|"RandomInteger")~~__]&]//ToExpression;
]

它正在加载来自 ToFileName[{System`Private`$MessagesDir,$Language},"Usage.m"] 的消息,在我的机器上是 SystemFiles\Kernel\TextResources\English\Usage.m .这就是为什么在 Combinatorica.m 中有条件地创建所有使用消息的原因。 (仅当它们尚不存在时)。如果您查看 Usage.m你会看到它有@ragfield 提到的所有丑陋的盒子。

我想格式化消息的最简单方法是在笔记本的前端编辑它们,并创建一个自动保存包。这样你就可以使用所有前端的格式化工具,并且不需要处理盒子。

关于wolfram-mathematica - 格式化使用消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6570770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com