Ghostscript/使い方
の編集
https://texwiki.texjp.org/?Ghostscript%2F%E4%BD%BF%E3%81%84%E6%96%B9
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
[[Ghostscript]] > 使い方 *使い方 [#s2e0cdb0] &color(White,#5F2F2F){ ''◆CONTENTS◆'' };&br; #contents **Ghostscript の起動コマンド [#se3b8ef2] Microsoft Windows なら -TeX Live に付属の rungs の場合は rungs -64-bit 版の Ghostscript の場合は gswin64c -32-bit 版の Ghostscript の場合は gswin32c です。 UNIX 互換 OS なら $ gs です。 **サポートしているデバイスを調べるには [#d708538b] Ghostscript のサポートする出力形式を調べるには~ Microsoft Windows では -TeX Live に付属の rungs の場合は rungs -h -64-bit 版の Ghostscript の場合は gswin64c -h -32-bit 版の Ghostscript の場合は gswin32c -h と打ち込みます。 UNIX 互換 OS では $ gs -h と打ち込みます。 あるいは Ghostscript を起動して GS> のプロンプトで GS>devicenames == と打ち込みます。Ghostscript のプロンプトから抜け出るには GS>quit と打ち込みます。 **EPS から PNG への変換 [#g1adcf94] EPS を α(アルファ)チャンネルを使った透過機能附きの PNG に 変換する場合には Microsoft Windows の~ Windows PowerShell なら例えば PS > rungs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pngalpha -dEPSCrop ` >> -r600 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 ` >> -sOutputFile="output.png" "input.eps" >> コマンド プロンプトなら例えば >rungs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pngalpha -dEPSCrop ^ More? -r600 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 ^ More? -sOutputFile="output.png" "input.eps" とします。~ UNIX 互換 OS なら例えば $ gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pngalpha -dEPSCrop -r600 \ > -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sOutputFile="output.png" "input.eps" とします。 EPS を256色 PNG に変換する場合には Microsoft Windows の~ Windows PowerShell なら例えば PS > rungs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=png256 -dEPSCrop ` >> -r600 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 ` >> -sOutputFile="output.png" "input.eps" >> とします。~ コマンド プロンプトなら例えば >rungs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=png256 -dEPSCrop ^ More? -r600 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 ^ More? -sOutputFile="output.png" "input.eps" とします。~ UNIX 互換 OS なら例えば $ gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=png256 -dEPSCrop -r600 \ > -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sOutputFile="output.png" "input.eps" とします。 **PS を GIF に変換するには [#p31562f1] 次のようにします。 gs -q -dNOPAUSE -dBATCH -sDEVICE=ppm -sOutputFile=- foo.ps | ppmtogif >foo.gif デフォールトの解像度は 72×72 ですが,“-r600x600” のようなオプションで 解像度が変えられます。 gs -q -dNOPAUSE -dBATCH -sDEVICE=ppm -sOutputFile=- -r600x600 foo.ps | ppmtogif >foo.gif 周囲に余分な領域がある場合は,次のようにしてクロップします。 gs -q -dNOPAUSE -dBATCH -sDEVICE=ppm -sOutputFile=- foo.ps | pnmcrop | ppmtogif >foo.gif 上で使っている ppmtogif,pnmcrop は PBMPLUS や NetPBM というフリーソフトの 画像フォーマット変換パッケージに入っています。 この ppmtogif の部分を変えればいろいろな形式に変換できます。 **PDF をアウトライン化するには [#b7g015t4] いったん eps2write (gs9.10 以前の場合は epswrite) を用いてアウトライン化 EPS を出力し,それを再度 PDF に変換します。~ [[TeX2img]] (Win, Mac) の動作が参考になるかもしれません。 **PDF への CJK フォントの非埋め込み制御 [#zd1cf8d8] 標準ではオプション “-sDEVICE="pdfwrite"” や ps2pdf.bat によって PDF を作成する場合,CJK フォントは全て埋め込まれます。~ CJK フォントを埋め込まないように制御するには “/NeverEmbed” を使います。~ 例えば “foo.ps” という PostScript ファイルを PDF に 変換する場合に,/MS-Mincho (MS 明朝)を埋め込まないようにするためには~ Windows PowerShell に次のようにコマンドを入力します。~ C:\Users\$Env:USERNAME> rungs -dSAFER -q -dBATCH -dNOPAUSE ` >> -sDEVICE="pdfwrite" -dCompatibilityLevel="1.4" -sOutputFile="foo.pdf" ` >> -c ".setpdfwrite <</NeverEmbed [/MS-Mincho]>> setdistillerparams" ` >> -f "foo.ps" >> コマンド プロンプトの場合は次のようにコマンドを入力します。 >rungs -dSAFER -q -dBATCH -dNOPAUSE ^ More? -sDEVICE="pdfwrite" -dCompatibilityLevel="1.4" -sOutputFile="foo.pdf" ^ More? -c ".setpdfwrite <</NeverEmbed [/MS-Mincho]>> setdistillerparams" ^ More? -f "foo.ps" ここで “/NeverEmbed” で指定するフォント名は PostScript ファイル内に 記述されているフォント名ではなく,''実際に埋め込むフォント名''でなければ 効果がありません。 また,lib/neverembed.ps に非埋め込み制御を行うフォント名をあらかじめ 記述しておいて,次のように~ Windows PowerShell にコマンドを入力する方法もあります。 C:\Users\$Env:USERNAME> rungs -dSAFER -q -dBATCH -dNOPAUSE ` >> -sDEVICE="pdfwrite" -dCompatibilityLevel="1.4" -sOutputFile="foo.pdf" ` >> -c .setpdfwrite -f "neverembed.ps" -f "foo.ps" >> コマンド プロンプトの場合は次のようにコマンドを入力します。 >rungs -dSAFER -q -dBATCH -dNOPAUSE ^ More? -sDEVICE="pdfwrite" -dCompatibilityLevel="1.4" -sOutputFile="foo.pdf" ^ More? -c .setpdfwrite -f "neverembed.ps" -f "foo.ps" lib/neverembed.ps には,例えば次のように記述しておきます。 ---- %! % neverembed.ps % << /NeverEmbed [ %/Times-Roman /Times-Bold %/Times-Italic /Times-BoldItalic %/Helvetica /Helvetica-Oblique /Helvetica-Bold /Helvetica-BoldOblique %/Courier /Courier-Oblique /Courier-Bold /Courier-BoldOblique %/Symbol /ZapfDingbats /Ryumin-Light /HeiseiMin-W3 %/GothicBBB-Medium /HeiseiKakuGo-W5 /STSong-Light %/STHeiti-Regular /MSung-Light %/MHei-Medium /HYSMyeongJo-Medium %/HYGoThic-Medium /KozMinProVI-Regular /KozGoProVI-Medium /KozGoPro-Medium /AdobeSongStd-Light %/AdobeHeitiStd-Regular /AdobeMingStd-Light /AdobeMyungjoStd-Medium /KozMinPro-Regular-Acro /KozGoPro-Medium-Acro /AdobeSongStd-Light-Acro /AdobeMingStd-Light-Acro /AdobeMyungjoStd-Medium-Acro /STSongStd-Light-Acro /MSungStd-Light-Acro /HYSMyeongJoStd-Medium-Acro /HeiseiMin-W3-Acro /HeiseiKakuGo-W5-Acro /STSong-Light-Acro /MSung-Light-Acro /HYSMyeongJo-Medium-Acro /MS-Mincho %/MS-Gothic /HGGothicM /NSimSun /MingLiU /BatangChe ] /AlwaysEmbed [ %/Times-Roman /Times-Bold %/Times-Italic /Times-BoldItalic %/Helvetica /Helvetica-Oblique /Helvetica-Bold /Helvetica-BoldOblique %/Courier /Courier-Oblique /Courier-Bold /Courier-BoldOblique %/Symbol /ZapfDingbats ] >> setdistillerparams ---- この lib/neverembed.ps への設定を ps2pdf でも有効に するためには,[[gs\gs$(rungs --version)\lib\ps2pdfxx.bat:http://git.ghostscript.com/?p=ghostpdl.git;a=blob;f=lib/ps2pdfxx.bat;hb=HEAD]] の記述内容の25行目 echo -c .setpdfwrite -f%1 >>"%TEMP%\_.at"2 を REM echo -c .setpdfwrite -f%1 >>"%TEMP%\_.at"2 のようにコメントアウトし echo -c .setpdfwrite -f neverembed.ps -f%1 >>"%TEMP%\_.at"2 を追加します。~ さらに dvipdfmx が PostScript ファイルや EPS ファイルを PDF に変換する場合に lib/neverembed.ps への設定を有効にするためには [[TeX Live]] の場合は [[dvipdfmx.cfg:http://www.tug.org/svn/texlive/trunk/Master/texmf-dist/dvipdfmx/dvipdfmx.cfg?view=markup]] の記述内容の[[152行目:https://tug.org/svn/texlive/trunk/Master/texmf-dist/dvipdfmx/dvipdfmx.cfg?view=markup#l152]] D "rungs -q -dSAFER -dNOPAUSE -dBATCH -dEPSCrop -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=%v -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dAutoRotatePages=/None -sOutputFile='%o' '%i' -c quit" に次のように “-f neverembed.ps ” を挿入します。 D "rungs -q -dSAFER -dNOPAUSE -dBATCH -dEPSCrop -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=%v -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dAutoRotatePages=/None -sOutputFile='%o' -f neverembed.ps '%i' -c quit" **PDF への欧文用フォントの埋め込み制御 [#y3b70de6] Ghostscript では “/NeverEmbed”,“/AlwaysEmbed” を使って PDF への欧文用フォントの埋め込み制御が行えます。~ “/NeverEmbed”,“/AlwaysEmbed” がうまく働かない場合は [[Resource/Init/gs_pdfwr.ps:http://git.ghostscript.com/?p=ghostpdl.git;a=blob;f=Resource/Init/gs_pdfwr.ps;hb=HEAD]] の記述内容を書き換えることで PDF への欧文用フォントの埋め込み制御を行います。 デフォルトでは PostScript Level 1 での基本14書体である Times ファミリ,Helvetica ファミリ,Courier ファミリ,Symbol,ZapfDingbats が 埋め込まれません。~ しかし macOS を除く UNIX 互換 OS での Adobe Reader で Times-Italic や Times-BoldItalic を埋め込んでいない PDF を 表示すると,Times-Italic や Times-BoldItalic の部分が Italic 体ではなく Oblique 体(Slanted 体,斜体)で表示されてしまいます。 (Xpdf で表示すると PostScript Level 1 での基本14書体は埋め込まれていなくても 正確に表示されます。しかし Xpdf の場合は非埋め込みの中国語フォント・韓国語 [한국어]フォントが表示されず,非埋め込みの日本語フォントに 使われる書体にも不満がある方が多いとのこと。)~ そこで Times-Italic と Times-BoldItalic だけを埋め込み,Times-Roman,Times-Bold,Helvetica ファミリ,Courier ファミリ,Symbol,ZapfDingbats だけを 埋め込まないようにすると,ほとんどの環境で PostScript Level 1 での基本14書体が 正確に表示されます。~ このような設定にするには,Resource/Init/gs_pdfwr.ps の 記述内容の[[31–38行目:http://git.ghostscript.com/?p=ghostpdl.git;a=blob;f=Resource/Init/gs_pdfwr.ps;hb=HEAD#l31]]のうち36行目を次のように変更してください。~ /.a2112 [2 1 1 2] readonly def /.a1111 [1 1 1 1] readonly def /.standardfonts [ /Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique /Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique /Times-Roman /Times-Bold % /Times-Italic /Times-BoldItalic /Symbol /ZapfDingbats ] readonly def また TeX ファイルから作った Times ファミリや Helvetica ファミリを埋め込んでいない PDF を Microsoft Windows の Adobe Reader/Acrobat で表示すると,Times ファミリや Helvetica ファミリでの 文字の一部(\={o} [ō],\b{b} [ḇ],\dj [đ],$\hbar$ など)が 正確に表示されません。~ そこで Times ファミリと Helvetica ファミリは 埋め込み,Courier ファミリ,Symbol,ZapfDingbats だけを 埋め込まないようにすると,Microsoft Windows を含めたほとんどの環境で PostScript Level 1 での基本14書体が正確に表示されます。~ このような設定にするには,Resource/Init/gs_pdfwr.ps の記述内容の[[31–38行目:http://git.ghostscript.com/?p=ghostpdl.git;a=blob;f=Resource/Init/gs_pdfwr.ps;hb=HEAD#l31]]の うち[[35–36行目:http://git.ghostscript.com/?p=ghostpdl.git;a=blob;f=Resource/Init/gs_pdfwr.ps;hb=HEAD#l35]]を次のようにコメントアウトしてください。~ /.a2112 [2 1 1 2] readonly def /.a1111 [1 1 1 1] readonly def /.standardfonts [ /Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique % /Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique % /Times-Roman /Times-Bold /Times-Italic /Times-BoldItalic /Symbol /ZapfDingbats ] readonly def *関連リンク [#we8f22aa] -[http://acetaminophen.hatenablog.com/archive/category/Ghostscript "Ghostscript" - 記事一覧 - Acetaminophen’s diary] --[[Ghostscript のこと(1):アウトライン化の詳細:http://acetaminophen.hatenablog.com/entry/2014/10/16/110255]] --[[Ghostscript のこと(2):不具合?:http://acetaminophen.hatenablog.com/entry/2014/10/17/145447]] --[[Ghostscript のこと(3):新しいアウトライン化の知見:http://acetaminophen.hatenablog.com/entry/2015/03/14/221359]] -[[GhostScriptを使ってPDFファイルを印刷する:https://qiita.com//Masahiro-Ito/items/ffea4838f57bb3de5232]]
[[Ghostscript]] > 使い方 *使い方 [#s2e0cdb0] &color(White,#5F2F2F){ ''◆CONTENTS◆'' };&br; #contents **Ghostscript の起動コマンド [#se3b8ef2] Microsoft Windows なら -TeX Live に付属の rungs の場合は rungs -64-bit 版の Ghostscript の場合は gswin64c -32-bit 版の Ghostscript の場合は gswin32c です。 UNIX 互換 OS なら $ gs です。 **サポートしているデバイスを調べるには [#d708538b] Ghostscript のサポートする出力形式を調べるには~ Microsoft Windows では -TeX Live に付属の rungs の場合は rungs -h -64-bit 版の Ghostscript の場合は gswin64c -h -32-bit 版の Ghostscript の場合は gswin32c -h と打ち込みます。 UNIX 互換 OS では $ gs -h と打ち込みます。 あるいは Ghostscript を起動して GS> のプロンプトで GS>devicenames == と打ち込みます。Ghostscript のプロンプトから抜け出るには GS>quit と打ち込みます。 **EPS から PNG への変換 [#g1adcf94] EPS を α(アルファ)チャンネルを使った透過機能附きの PNG に 変換する場合には Microsoft Windows の~ Windows PowerShell なら例えば PS > rungs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pngalpha -dEPSCrop ` >> -r600 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 ` >> -sOutputFile="output.png" "input.eps" >> コマンド プロンプトなら例えば >rungs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pngalpha -dEPSCrop ^ More? -r600 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 ^ More? -sOutputFile="output.png" "input.eps" とします。~ UNIX 互換 OS なら例えば $ gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pngalpha -dEPSCrop -r600 \ > -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sOutputFile="output.png" "input.eps" とします。 EPS を256色 PNG に変換する場合には Microsoft Windows の~ Windows PowerShell なら例えば PS > rungs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=png256 -dEPSCrop ` >> -r600 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 ` >> -sOutputFile="output.png" "input.eps" >> とします。~ コマンド プロンプトなら例えば >rungs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=png256 -dEPSCrop ^ More? -r600 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 ^ More? -sOutputFile="output.png" "input.eps" とします。~ UNIX 互換 OS なら例えば $ gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=png256 -dEPSCrop -r600 \ > -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sOutputFile="output.png" "input.eps" とします。 **PS を GIF に変換するには [#p31562f1] 次のようにします。 gs -q -dNOPAUSE -dBATCH -sDEVICE=ppm -sOutputFile=- foo.ps | ppmtogif >foo.gif デフォールトの解像度は 72×72 ですが,“-r600x600” のようなオプションで 解像度が変えられます。 gs -q -dNOPAUSE -dBATCH -sDEVICE=ppm -sOutputFile=- -r600x600 foo.ps | ppmtogif >foo.gif 周囲に余分な領域がある場合は,次のようにしてクロップします。 gs -q -dNOPAUSE -dBATCH -sDEVICE=ppm -sOutputFile=- foo.ps | pnmcrop | ppmtogif >foo.gif 上で使っている ppmtogif,pnmcrop は PBMPLUS や NetPBM というフリーソフトの 画像フォーマット変換パッケージに入っています。 この ppmtogif の部分を変えればいろいろな形式に変換できます。 **PDF をアウトライン化するには [#b7g015t4] いったん eps2write (gs9.10 以前の場合は epswrite) を用いてアウトライン化 EPS を出力し,それを再度 PDF に変換します。~ [[TeX2img]] (Win, Mac) の動作が参考になるかもしれません。 **PDF への CJK フォントの非埋め込み制御 [#zd1cf8d8] 標準ではオプション “-sDEVICE="pdfwrite"” や ps2pdf.bat によって PDF を作成する場合,CJK フォントは全て埋め込まれます。~ CJK フォントを埋め込まないように制御するには “/NeverEmbed” を使います。~ 例えば “foo.ps” という PostScript ファイルを PDF に 変換する場合に,/MS-Mincho (MS 明朝)を埋め込まないようにするためには~ Windows PowerShell に次のようにコマンドを入力します。~ C:\Users\$Env:USERNAME> rungs -dSAFER -q -dBATCH -dNOPAUSE ` >> -sDEVICE="pdfwrite" -dCompatibilityLevel="1.4" -sOutputFile="foo.pdf" ` >> -c ".setpdfwrite <</NeverEmbed [/MS-Mincho]>> setdistillerparams" ` >> -f "foo.ps" >> コマンド プロンプトの場合は次のようにコマンドを入力します。 >rungs -dSAFER -q -dBATCH -dNOPAUSE ^ More? -sDEVICE="pdfwrite" -dCompatibilityLevel="1.4" -sOutputFile="foo.pdf" ^ More? -c ".setpdfwrite <</NeverEmbed [/MS-Mincho]>> setdistillerparams" ^ More? -f "foo.ps" ここで “/NeverEmbed” で指定するフォント名は PostScript ファイル内に 記述されているフォント名ではなく,''実際に埋め込むフォント名''でなければ 効果がありません。 また,lib/neverembed.ps に非埋め込み制御を行うフォント名をあらかじめ 記述しておいて,次のように~ Windows PowerShell にコマンドを入力する方法もあります。 C:\Users\$Env:USERNAME> rungs -dSAFER -q -dBATCH -dNOPAUSE ` >> -sDEVICE="pdfwrite" -dCompatibilityLevel="1.4" -sOutputFile="foo.pdf" ` >> -c .setpdfwrite -f "neverembed.ps" -f "foo.ps" >> コマンド プロンプトの場合は次のようにコマンドを入力します。 >rungs -dSAFER -q -dBATCH -dNOPAUSE ^ More? -sDEVICE="pdfwrite" -dCompatibilityLevel="1.4" -sOutputFile="foo.pdf" ^ More? -c .setpdfwrite -f "neverembed.ps" -f "foo.ps" lib/neverembed.ps には,例えば次のように記述しておきます。 ---- %! % neverembed.ps % << /NeverEmbed [ %/Times-Roman /Times-Bold %/Times-Italic /Times-BoldItalic %/Helvetica /Helvetica-Oblique /Helvetica-Bold /Helvetica-BoldOblique %/Courier /Courier-Oblique /Courier-Bold /Courier-BoldOblique %/Symbol /ZapfDingbats /Ryumin-Light /HeiseiMin-W3 %/GothicBBB-Medium /HeiseiKakuGo-W5 /STSong-Light %/STHeiti-Regular /MSung-Light %/MHei-Medium /HYSMyeongJo-Medium %/HYGoThic-Medium /KozMinProVI-Regular /KozGoProVI-Medium /KozGoPro-Medium /AdobeSongStd-Light %/AdobeHeitiStd-Regular /AdobeMingStd-Light /AdobeMyungjoStd-Medium /KozMinPro-Regular-Acro /KozGoPro-Medium-Acro /AdobeSongStd-Light-Acro /AdobeMingStd-Light-Acro /AdobeMyungjoStd-Medium-Acro /STSongStd-Light-Acro /MSungStd-Light-Acro /HYSMyeongJoStd-Medium-Acro /HeiseiMin-W3-Acro /HeiseiKakuGo-W5-Acro /STSong-Light-Acro /MSung-Light-Acro /HYSMyeongJo-Medium-Acro /MS-Mincho %/MS-Gothic /HGGothicM /NSimSun /MingLiU /BatangChe ] /AlwaysEmbed [ %/Times-Roman /Times-Bold %/Times-Italic /Times-BoldItalic %/Helvetica /Helvetica-Oblique /Helvetica-Bold /Helvetica-BoldOblique %/Courier /Courier-Oblique /Courier-Bold /Courier-BoldOblique %/Symbol /ZapfDingbats ] >> setdistillerparams ---- この lib/neverembed.ps への設定を ps2pdf でも有効に するためには,[[gs\gs$(rungs --version)\lib\ps2pdfxx.bat:http://git.ghostscript.com/?p=ghostpdl.git;a=blob;f=lib/ps2pdfxx.bat;hb=HEAD]] の記述内容の25行目 echo -c .setpdfwrite -f%1 >>"%TEMP%\_.at"2 を REM echo -c .setpdfwrite -f%1 >>"%TEMP%\_.at"2 のようにコメントアウトし echo -c .setpdfwrite -f neverembed.ps -f%1 >>"%TEMP%\_.at"2 を追加します。~ さらに dvipdfmx が PostScript ファイルや EPS ファイルを PDF に変換する場合に lib/neverembed.ps への設定を有効にするためには [[TeX Live]] の場合は [[dvipdfmx.cfg:http://www.tug.org/svn/texlive/trunk/Master/texmf-dist/dvipdfmx/dvipdfmx.cfg?view=markup]] の記述内容の[[152行目:https://tug.org/svn/texlive/trunk/Master/texmf-dist/dvipdfmx/dvipdfmx.cfg?view=markup#l152]] D "rungs -q -dSAFER -dNOPAUSE -dBATCH -dEPSCrop -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=%v -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dAutoRotatePages=/None -sOutputFile='%o' '%i' -c quit" に次のように “-f neverembed.ps ” を挿入します。 D "rungs -q -dSAFER -dNOPAUSE -dBATCH -dEPSCrop -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=%v -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dAutoRotatePages=/None -sOutputFile='%o' -f neverembed.ps '%i' -c quit" **PDF への欧文用フォントの埋め込み制御 [#y3b70de6] Ghostscript では “/NeverEmbed”,“/AlwaysEmbed” を使って PDF への欧文用フォントの埋め込み制御が行えます。~ “/NeverEmbed”,“/AlwaysEmbed” がうまく働かない場合は [[Resource/Init/gs_pdfwr.ps:http://git.ghostscript.com/?p=ghostpdl.git;a=blob;f=Resource/Init/gs_pdfwr.ps;hb=HEAD]] の記述内容を書き換えることで PDF への欧文用フォントの埋め込み制御を行います。 デフォルトでは PostScript Level 1 での基本14書体である Times ファミリ,Helvetica ファミリ,Courier ファミリ,Symbol,ZapfDingbats が 埋め込まれません。~ しかし macOS を除く UNIX 互換 OS での Adobe Reader で Times-Italic や Times-BoldItalic を埋め込んでいない PDF を 表示すると,Times-Italic や Times-BoldItalic の部分が Italic 体ではなく Oblique 体(Slanted 体,斜体)で表示されてしまいます。 (Xpdf で表示すると PostScript Level 1 での基本14書体は埋め込まれていなくても 正確に表示されます。しかし Xpdf の場合は非埋め込みの中国語フォント・韓国語 [한국어]フォントが表示されず,非埋め込みの日本語フォントに 使われる書体にも不満がある方が多いとのこと。)~ そこで Times-Italic と Times-BoldItalic だけを埋め込み,Times-Roman,Times-Bold,Helvetica ファミリ,Courier ファミリ,Symbol,ZapfDingbats だけを 埋め込まないようにすると,ほとんどの環境で PostScript Level 1 での基本14書体が 正確に表示されます。~ このような設定にするには,Resource/Init/gs_pdfwr.ps の 記述内容の[[31–38行目:http://git.ghostscript.com/?p=ghostpdl.git;a=blob;f=Resource/Init/gs_pdfwr.ps;hb=HEAD#l31]]のうち36行目を次のように変更してください。~ /.a2112 [2 1 1 2] readonly def /.a1111 [1 1 1 1] readonly def /.standardfonts [ /Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique /Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique /Times-Roman /Times-Bold % /Times-Italic /Times-BoldItalic /Symbol /ZapfDingbats ] readonly def また TeX ファイルから作った Times ファミリや Helvetica ファミリを埋め込んでいない PDF を Microsoft Windows の Adobe Reader/Acrobat で表示すると,Times ファミリや Helvetica ファミリでの 文字の一部(\={o} [ō],\b{b} [ḇ],\dj [đ],$\hbar$ など)が 正確に表示されません。~ そこで Times ファミリと Helvetica ファミリは 埋め込み,Courier ファミリ,Symbol,ZapfDingbats だけを 埋め込まないようにすると,Microsoft Windows を含めたほとんどの環境で PostScript Level 1 での基本14書体が正確に表示されます。~ このような設定にするには,Resource/Init/gs_pdfwr.ps の記述内容の[[31–38行目:http://git.ghostscript.com/?p=ghostpdl.git;a=blob;f=Resource/Init/gs_pdfwr.ps;hb=HEAD#l31]]の うち[[35–36行目:http://git.ghostscript.com/?p=ghostpdl.git;a=blob;f=Resource/Init/gs_pdfwr.ps;hb=HEAD#l35]]を次のようにコメントアウトしてください。~ /.a2112 [2 1 1 2] readonly def /.a1111 [1 1 1 1] readonly def /.standardfonts [ /Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique % /Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique % /Times-Roman /Times-Bold /Times-Italic /Times-BoldItalic /Symbol /ZapfDingbats ] readonly def *関連リンク [#we8f22aa] -[http://acetaminophen.hatenablog.com/archive/category/Ghostscript "Ghostscript" - 記事一覧 - Acetaminophen’s diary] --[[Ghostscript のこと(1):アウトライン化の詳細:http://acetaminophen.hatenablog.com/entry/2014/10/16/110255]] --[[Ghostscript のこと(2):不具合?:http://acetaminophen.hatenablog.com/entry/2014/10/17/145447]] --[[Ghostscript のこと(3):新しいアウトライン化の知見:http://acetaminophen.hatenablog.com/entry/2015/03/14/221359]] -[[GhostScriptを使ってPDFファイルを印刷する:https://qiita.com//Masahiro-Ito/items/ffea4838f57bb3de5232]]
テキスト整形のルールを表示する