使用SymPy预览时,我可以阻止Cmd对话框弹出吗?

时间:2016-09-22 18:01:06

标签: python latex command-prompt sympy

我在Python 2.7中编写了一些代码,它将从.ini文件中读取一个字符串,并使用sympy.preview以LaTeX格式生成字符串的.png图像。我的想法是使用此脚本在我输入时在后台生成图像。问题是即使我在后台运行脚本(使用pythonw.exe),也会弹出两个空的命令行窗口latex.exedvipng.exe并立即关闭。这很烦人,因为它会打断我的输入。我希望能够做到这一点"在飞行中"没有被打断。

有没有办法阻止这些窗户打开?

这是我的最低工作示例:

from sympy import preview   # for generating Latex images
import ConfigParser         # for reading .ini files

# read the latex commands from the .ini file:
config = ConfigParser.RawConfigParser()

config.read('mathPredictor.ini')
one = config.get('Words', 'one')

prefix = '\\Huge $' # make the Latex equations bigger
suffix = '$'
eqone =  prefix + one + suffix

# for generating Latex images:
preview(eqone, viewer='file', filename='one.png', euler=False)

用于.ini文件

[Words]
one=\alpha

我使用Python 2.7.10运行Windows 8 64位。这个问题在tex.SE交叉发布。

1 个答案:

答案 0 :(得分:1)

我解决了自己的问题。如果我从以前存在的cmd实例运行Python脚本,则窗口不会弹出。我的解决方案是启动一个隐藏的cmd实例,并将路径位置发送到隐藏的cmd窗口。这使得Python代码能够在没有来自latex.exedvipng.exe的烦人弹出窗口的情况下执行。

我使用以下函数在Autohotkey语言中完成了此操作:

Run, %comspec%, , max, pid2  ; runs cmd in hidden mode with instance name given by %pid%
WinWait, ahk_pid %pid2%  ; waits for instance to be active
ControlSend, ,python mypythonscript.py`r, ahk_pid %pid2%  ; send text for script execute