我可以在Mathematica 8中将导出更改为pdf设置吗?

我可以在Mathematica 8中将导出更改为pdf设置吗?,pdf,export,wolfram-mathematica,figures,Pdf,Export,Wolfram Mathematica,Figures,我正在使用Mathematica绘制一些我需要的图形,然后将它们用作Latex中的PDF 问题是Mathematica使用Acrobat 5.x设置兼容性导出图形,我认为这会导致图形较大,未经优化,当我在最终pdf中有两个图形时,有时仅打印最终文档的一页就需要几分钟 有没有办法更改Mathematica中PDF的输出设置? 我是否应该导出为PDF,转换为PostScript,然后使用新设置从.ps创建新的PDF? 我应该导出.eps并转换为pdf吗? 是否有一种通过Mathematica创建优化

我正在使用Mathematica绘制一些我需要的图形,然后将它们用作Latex中的PDF

问题是Mathematica使用Acrobat 5.x设置兼容性导出图形,我认为这会导致图形较大,未经优化,当我在最终pdf中有两个图形时,有时仅打印最终文档的一页就需要几分钟

有没有办法更改Mathematica中PDF的输出设置? 我是否应该导出为PDF,转换为PostScript,然后使用新设置从.ps创建新的PDF? 我应该导出.eps并转换为pdf吗? 是否有一种通过Mathematica创建优化PDF的单步方法

举个简单的例子(有点夸张,所以差别很明显):我从Mathematica导出的pdf(导出[“C:/figure.pdf”,%])大小为1065kb,.pdf->.ps->.pdf给出了652kb的最终文件,.eps->.pdf给出了610kb的文件。
我不会在latex中使用任何这些,但它显示了设置的差异。

一个神话是,
pdf->ps->pdf
总是会给你更小的文件大小。例如,考虑

(在数学中)

(在壳内)

test.pdf
是446kB,而
test1.pdf
在我的机器上是惊人的11.5MB

通常情况下,当您使用Mathematica导出PDF文件时,它会存储文本(轴记号、标签等)、字体和图像,所有这些都会添加到批量中。如果你有很多记号/标签的矢量图形,它们可能非常重要。执行
pdf->ps->pdf
将删除文件中的字体数据和文本数据,同时压缩图像,这就是为什么文件大小会减小的原因。虽然在小放大倍数下无法观察到,但在放大相当大的比例时,您会注意到差异。例如,将
p
替换为

p = Plot[Sin[t], {t, 0, 2 Pi}];
在我的机器上为
test.pdf
生成一个37kB的文件,为
test1.pdf
生成一个8kB的文件。8kb文件的质量比原始文件差(放大到600%+显示了这一点)。您可以通过执行以下操作查看mathematica存储在PDF文件中的纯文本信息

Import[fileName,"Plaintext"]
但是,对于更复杂的PDF文件,转换为
ps
,然后再转换回
PDF
并不一定是一个好的选择,可能会导致文件大小增大

您可以尝试使用
Export
中的PDF选项,例如
“AllowRasterization”
ImageResolution
,甚至在保存之前对图像进行光栅化,但我想您已经知道了这一点

这里有一种从mathematica内部快速而肮脏地减少文件大小的方法

Export[fileName, First@Import@Export[fileName, p]]
文件大小现在只有12kB!它仅为原版的三分之一,仅略大于从
pdf->ps->pdf
中获得的,并且质量比8kB的要好得多(尽管与原版不完全相同。在1200%及以上的放大率下可以看到差异)


在导入和重新导出时,只保存存储的图像。它的纯文本部分被扔掉了,在这个小例子中,这碰巧很重要。对于
DensityPlot
示例,减少的大小仅为425kB(仍然是减少而不是增加到11MB)。

如果有帮助,您可以直接转到.ps(不知道它会有帮助,但值得一试)。Export::expert:“无法推断文件格式”figure.ps“您不能将导出选项设置为postscript,.eps或.pdf是可以接受的,但不是。pst不知道,只知道它是一个选项。顺便说一句,保存时有一些选项。它们看起来不太像,但值得一试。有没有可能再多解释一下质量部分?第二个例子中有四个文件在我面前打开,
p=Plot[Sin[t],{t,0,2pi}缩放到3200%,我看不出它们之间有什么区别。它们是Mathematica的pdf(32kb)、导出文件(10kb)、pdf->ps->pdf(14kb)和eps->pdf(10kb),它们看起来完全相同。我是否应该特别关注一些东西来发现质量上的差异?@o4tlulz:尝试查看刻度线(例如,y轴上的0.5或x轴上的3),而不是正弦曲线。曲线将被完美地再现,因为它是矢量化的。是文字失去了质量。老实说,所有使用正弦函数创建的PDF都与前面讨论过的内容具有完全相同的质量,即使在6400%的缩放比例下,它们看起来与我完全相同。我认为目前我将继续导出到eps,然后通过蒸馏器将eps转换为pdf,以便在最终文档中使用。@o4tlulz:谢谢您的接受。这些转换过程可能依赖于机器和算法,所以我对您和我得到不同的结果并不感到惊讶。顺便问一下,你知道乳胶的包装吗?您可以使用eps图形并运行pdflatex,它将使用GhostScript自动将eps转换为pdf。这可能会为您节省一些手动转换,如果您现在这样做的话。
Import[fileName,"Plaintext"]
Export[fileName, First@Import@Export[fileName, p]]