问题标签 [mathematica-frontend]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wolfram-mathematica - 自重启 MathKernel - 在 Mathematica 中是否可能?
这个问题来自最近的问题“正确的方法来限制Mathematica内存使用? ”
我想知道,是否可以以编程方式重新启动 MathKernel,以保持当前 FrontEnd 进程连接到新的 MathKernel 进程并在新的 MathKernel 会话中评估一些代码?我的意思是“透明”重启,它允许用户继续使用 FrontEnd,同时拥有新的全新 MathKernel 进程,其中包含来自先前内核的一些代码进行评估/评估?
这个问题的动机是有一种方法可以在 MathKernel 占用太多内存时自动重新启动,而不会破坏计算。换句话说,计算应该在新的 MathKernel 进程中自动继续,无需与用户交互(但保持用户与Mathematica交互的能力与原来一样)。关于应该在新内核中评估哪些代码的细节当然是针对每个计算任务的。我正在寻找如何自动继续计算的通用解决方案。
wolfram-mathematica - 如何修改默认样式表?
每次创建新笔记本时,我都必须将放大倍率设置为 150%,并将输出颜色修改为蓝色。
有没有办法使用样式表或其他功能自动执行此操作?
wolfram-mathematica - 更改文本样式中的方程背景颜色
在 Mathematica 中,当您写入文本样式的单元格时,如果您创建一个格式化的方程,例如按“x ctrl_a”,则在选择方程时背景颜色会发生变化。有谁知道在选择方程时,以及如何在选择方程时如何更改背景颜色。
wolfram-mathematica - 如何为调色板运行初始化代码?
有时最好有一些用于(按钮的)调色板的初始化代码。例如,它可以定义一些调色板按钮使用的功能。
为调色板定义/运行初始化代码的最简单和更可取的方法是什么?
- 初始化可以在加载调色板或第一次按下任何按钮时运行(可能的问题:如果在加载调色板后重新启动内核怎么办?)
- 定义应该以某种方式本地化(即在它们自己的上下文中——独特的笔记本上下文在这里有帮助吗?)
- 如果可能的话,我更喜欢一个省力的解决方案(即在尽可能少的地方添加额外的代码,没有额外的包文件的自包含调色板文件,使用现有的调色板菜单或调色板
CreatePalette
等便利工具创建调色板) - (您可以假设初始化代码运行得很快,例如它只包含定义)
wolfram-mathematica - 暂时禁用笔记本某个部分中的所有输入单元格
有没有一种方法可以禁用单元组/部分中的所有输入单元,以便以后轻松反转?
我的目标是保持笔记本的一部分完好无损,但在前端选择“评估笔记本”时阻止它被评估。
有 Cell -> Cell properties -> Evaluatable,但使用它需要我手动选择每个输入单元格并更改/恢复此属性。这是太多的工作。我有交错的文本/小节/输出单元格。
有没有更好的使用 UI 的方法?如果没有,是否有一种简单的编程方式?
编辑:我找到了 Alt-click,它选择了笔记本中的所有输入单元格。这可以仅限于一个部分/单元组吗?
wolfram-mathematica - 粘贴 Mathematica 代码,以便将其分解为单独的输入单元格
我经常将 Mathematica 代码从网站(例如 SO)复制到笔记本上。代码通常被粘贴为单个输入单元格。我正在寻找一种简单的方法将其粘贴为几个输入单元格,以便于逐步评估。
例如,
理想情况下粘贴为两个输入单元格。最好也保留手动格式化(即原始换行符)(默认粘贴不是这种情况)。
通常,如果选择所有输入单元格(ALT 键单击),将它们复制到文本编辑器中,然后将生成的文本复制回笔记本中,则应该得到与复制的原始单元格相当的内容。
tortoisesvn - 是否可以从命令行调用 Mathematica 的 diff 功能?
TortoiseSVN(以及其他 Tortoise 客户端)包含一个脚本来区分Mathematica 中的笔记本文件。Mathematica 的差异功能在AuthorTools包中实现(也许有更好的东西?)
该脚本当前通过在临时目录中创建一个小笔记本文件并在前端打开它来工作。笔记本有一个大按钮,可以进行比较,并且文件名是硬编码的。
缺点是带有差异代码的笔记本会留在临时目录中,不会被清理。每次进行 diff 时似乎也没有必要打开辅助笔记本。
是否可以从命令行启动差异功能以避免通过临时笔记本?或者有没有其他可靠的方法来改进这个过程并避免在临时文件夹中乱扔辅助笔记本?
欢迎任何改善差异体验的建议!
请注意,由于 TortoiseSVN 是一个 Windows 程序,我主要对基于 Windows 的解决方案感兴趣。
这是脚本生成的示例笔记本。我意识到它需要清理,但上次我检查它在版本 5 中也可以工作(!),所以我不想不必要地触摸它(没有明显改进)。
wolfram-mathematica - Mathematica 中的鼠标悬停和动态
谁能指出为什么这在Mathematica 8 中不起作用:
当我将鼠标悬停在“World”上时,我期望看到“Hello”的颜色发生变化。我得到的是一个永远不会改变颜色的粉红色“你好”。
wolfram-mathematica - 控制笔记本相关表达式的 Rasterize[] 宽度
更新向导先生的答案给出了像素完美的结果,但它仅适用于 Windows,并且会破坏剪贴板内容。我的答案应该适用于任何平台,但不太精确:例如它省略了输入/输出标签。它确实允许设置光栅化宽度。
当我尝试为图像上传器制作预览窗口时出现了这个问题(请参阅该答案的结尾)。
我想创建一个调色板按钮,它将当前笔记本选择作为图像上传。在上传之前,我想显示图像的预览,以减少在联系服务器之前出现问题的机会。
这是我到目前为止所拥有的(仅包括预览代码,不包括上传器):
如果您想知道为什么我在内部使用嵌套With
而Module
不是创建img
模块变量:这是因为在doIt[img]
评估时,本地模块变量将被清除,所以我需要将光栅化表达式直接替换为doIt
函数,
此按钮有效(或多或少)。您可以通过在同一个笔记本中创建一个图形(例如Graphics[Circle[]]
)来尝试它,单击选择它,然后单击预览按钮。
但是,如果我使用 将它放在调色板中CreatePalette[button]
,那么将在调色板的窗口宽度上发生光栅化,我会得到这样的结果:
如何控制光栅化的宽度,或者更一般地说,如何为避免此问题的上传者创建预览对话框?
对于额外的改进,如果能够调整消息窗口的大小以使其适合预览图像(并且仍然显示按钮:按钮消失WindowSize -> All
),那就太好了。
答案
巫师先生的建议:
问题:它(可能)仅适用于 Windows,并且会破坏剪贴板内容。