处理丢失字体的正确方法是什么?假设我编写了一个漂亮的脚本,它使用了一些字体 - 您几乎可以在任何计算机上找到的标准字体,但不是 JMP 默认字体。
我将此脚本分发给我的用户,并且开始收到有关缺少字体的错误消息的反馈。
组织中的某些计算机似乎安装了极少量的字体。
因此,我将每个 Font 消息包装在 Try() 语句中,如下所示:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = dt << Bivariate( Y( :height ), X( :weight ) );
rbiv = biv << Report;
Try((rbiv << XPath( "//AxisBox/MouseBox/DropBox/TextEditBox" )) << Set Font( "Agency FF", 13 ), Write("No Font"));
问题是它仍然给我一个错误弹出窗口。

如何正确编写以下脚本:
如果安装了字体 - 按照指示设置为 GUI 元素,否则 - 使用默认字体。
消费者和市场研究数据混合和清理质量和工艺工程回复:处理丢失字体的正确方法是什么?看起来这在这个例子中是有效的。 让我看看它在现实生活脚本中会是什么样子。
回复:处理丢失字体的正确方法是什么?这会起作用,和如果 <
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = dt << Bivariate( Y( :height ), X( :weight ) );
rbiv = biv << Report;
Batch Interactive( 1 );
x = Log Capture( ((rbiv << XPath( "//AxisBox/MouseBox/DropBox/TextEditBox" ))) << Set Font( "Comic Sans MS1", 13 ) );
Batch Interactive( 0 );
if(x!="",Show( x ));
请注意,没有 try(...) 因为 <
回复:处理丢失字体的正确方法是什么?很奇怪。 我认为下一个最佳答案是注释掉 Batch Interactive(0)。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = dt << Bivariate( Y( :height ), X( :weight ) );
rbiv = biv << Report;
show(Batch Interactive(1));
((rbiv << XPath( "//AxisBox/MouseBox/DropBox/TextEditBox" ))[1]) << Set Font( "Comic Sans MS1", 13 );
//show(Batch Interactive(0));
我无法解释发生了什么,但我认为这可能是因为字体在需要时才经过测试......但我不知道如何执行 wait(1) 来修复它。
编辑:向开发团队发送了一条说明。
编辑2:下一个想法更好......
回复:处理丢失字体的正确方法是什么?奇怪的是,这不起作用:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = dt << Bivariate( Y( :height ), X( :weight ) );
rbiv = biv << Report;
Batch Interactive(1);
Try((rbiv << XPath( "//AxisBox/MouseBox/DropBox/TextEditBox" )) << Set Font( "Agency FF", 13 ), (rbiv << XPath( "//AxisBox/MouseBox/DropBox/TextEditBox" )) << Set Font( "Agency FB", 13 ));
Batch Interactive(0);
虽然这有效:
Batch Interactive(1);
throw("Test");
Batch Interactive(0);
回复:处理丢失字体的正确方法是什么?如何防止弹出 JMP 警报?是一个起点,不是最好的...
有一个功能,
batch Interactive(1);
将 JMP 设置为批模式假设没有用户在键盘上并采用默认按钮答案。 这有点不可取交互的模式,因为您可能没有注意到日志中的消息。 您可以在可能触发半预期但不需要的对话框的语句之后将其设置为 0。
如果您想使用类似堆栈的机制来恢复值,则每次调用还会返回先前的值。
回复:处理丢失字体的正确方法是什么?我只能找到一篇关于Python的文章,里面有这段代码,没有太多解释:
# Set the matplotlib.pyplot interactive flag to false
_JMPpp.interactive(False)
任何帮助将非常感激。
回复:处理丢失字体的正确方法是什么?远离我的计算机,但我相信答案是使用批处理交互标志来抑制对话框。 我认为该标志仍然没有记录,您必须在这个社区内搜索才能了解它是如何工作的。 您可能还会发现使用日志捕获功能来抓取对话框中的文本以诊断发生的情况很有用,或者您可能对获得的默认字体感到满意。
编辑:链接到Wendy 关于 Batch Interactive 的注释