5

私はMathematicaを使って必要な数の図をプロットし、LaTeXでそれらをpdfとして使用しています。

問題は、MathematicaがAcrobat 5.x設定の互換性を使用して図をエクスポートすることです。これにより、図が大きくなり、最適化されないと思います。最終的なpdfにいくつかある場合、1つを印刷するだけで数分かかることがあります。最終文書のページ。

MathematicaでPDFの出力設定を変更する方法はありますか?PDFとしてエクスポートし、ポストスクリプトに変換してから、新しい設定で.psから新しいPDFを作成する必要がありますか?.epsをエクスポートしてPDFに変換する必要がありますか?Mathematicaで最適化されたPDFを作成するためのワンステップの方法はありますか?

簡単な例(そして少し誇張されているので違いは非常に明白です):Mathematicaからエクスポートするpdf(Export ["C:/figure.pdf"、%])はサイズが1065kb、.pdf->。ps->です。 pdfは652kbの最終ファイルを提供し、.eps->。pdfは610kbのファイルを提供します。私はラテックスでこれらのどれも使用しませんが、それは設定の違いを示しています。

4

1 に答える 1

4

pdf->ps->pdfこれは、常にファイルサイズを小さくするという神話です。たとえば、

(数学で)

fileName = "test.pdf";
p = DensityPlot[Sin[x] Sin[y], {x, -4, 4}, {y, -3, 3}];
Export[fileName, p];

(シェル内)

pdf2ps test.pdf && ps2pdf test.ps test1.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ファイルと8kBファイルを生成しますtest1.pdf。8kbファイルの品質は元のファイルよりも劣ります(600%以上にズームするとこれがわかります)。数学がPDFファイルに保存しているプレーンテキスト情報は、

Import[fileName,"Plaintext"]

ただし、より複雑なPDFファイルの場合、変換してpsから元に戻すことpdfは必ずしも適切なオプションではなく、ファイルサイズが大きくなる可能性があります。

ExportでPDFのオプションを試してみることができます。"AllowRasterization"またImageResolution、保存する前に画像をラスタライズすることもできますが、すでにご存知だと思います。

これが数学の中からファイルサイズを減らす裏通りの迅速で汚い方法です

Export[fileName, First@Import@Export[fileName, p]]

ファイルサイズはわずか12kBになりました!オリジナルの3分の1に過ぎず、から得られたものよりわずかに大きくpdf->ps->pdf、8kBのものよりもはるかに優れた品質です(オリジナルと完全に同じではありませんが、1200%以上の倍率で違いが見られます) 。

インポートおよび再エクスポートすると、保存されている画像のみが保存されます。そのプレーンテキスト部分は破棄されますが、この小さな例では、それはたまたま重要でした。このDensityPlot例では、削減は425kBにすぎませんでした(それでも、11MBまで爆発するのではなく減少しました)。

于 2011-05-16T06:05:46.587 に答える