Python 使用preview()保存具有指定宽度的图像

Python 使用preview()保存具有指定宽度的图像,python,latex,pdf-generation,sympy,reportlab,Python,Latex,Pdf Generation,Sympy,Reportlab,我试图保存一个公式的图像,我用乳胶写的。下面是公式: triple_integral_formula = r"$$1)\int_{0}^{2\pi}\int_{0}^{\frac{\pi}{4}}\int_{0}^{3}\rho^2sin(\phi)d\rho d\phi d\theta$$" 我正在使用Symphy保存图像,以便稍后使用reportlab在PDF上显示。这是我迄今为止所用的代码: preview(triple_integral_formula, viewe

我试图保存一个公式的图像,我用乳胶写的。下面是公式:

triple_integral_formula = r"$$1)\int_{0}^{2\pi}\int_{0}^{\frac{\pi}{4}}\int_{0}^{3}\rho^2sin(\phi)d\rho d\phi d\theta$$"
我正在使用Symphy保存图像,以便稍后使用reportlab在PDF上显示。这是我迄今为止所用的代码:

preview(triple_integral_formula, viewer='file', filename='triple_integral.png', euler=False, dvioptions=["-T", "tight", "-z", "0", "--truecolor", "-D 600", "-bg", "Transparent"])
以下是图像输出:

它可能很难看到,因为透明的背景,但所有的工作都很好,它保存的图像正确。唯一的问题是,我希望这些图像具有一定的宽度。从我到目前为止读到的内容来看,dvioptions列表的
-d600
部分设置了“密度”,我将其解释为分辨率。我试着在网上查找所有可以放在dvioptions列表中的不同选项,但找不到任何设置宽度的选项

我怎样才能做到这一点?是在PDF上显示LaTeX公式的更好方法(使用reportlab或其他方法)?

的,它只允许设置DPI,或以英寸/厘米为单位的尺寸,但不允许以像素为单位设置宽度/高度

但是您可以绕过这个限制,因为它是一个图像库(不保留)

来自sympy导入的
*
三重积分公式=r“$$1)\int{0}{2\pi}\int{0}{4}\int{0}{3}\rho^2sin(\phi)d\rho d\phi d\theta$”
预览(三重积分公式,viewer='file',filename='orig.png',euler=False,dvioptions=[“-T”,“tight”,“-z”,“0”,“--truecolor”,“-D 600”,“-bg”,“Transparent”])
从PIL导入图像
对于[400300200]中的宽度:
im=Image.open(“orig.png”)
大小=(宽度,200)
im.缩略图(大小、图像、抗锯齿)
out\u dim=im.size
out_name=“已调整大小-”+str(out_dim[0])+”-“+str(out_dim[1])+”.png”
im.save(输出名称,“PNG”)
im.close()
从IPython.display导入图像为i_图像
显示(i_图像(文件名=输出名称))
最后两行之所以出现,是因为我正在运行它,但是您可以忽略它们,并且仍然会生成调整大小的图像--.png

输出:


latex支持有一个堆栈交换网络,与您的问题无关,但您应该使用
\sin
等来获得正确的间距和字体