platex>dvips>ps2pdfでのIPAex埋め込み

platex>dvips>ps2pdfでのIPAex埋め込み

- FUJIMORI Hiroshi の投稿
返信数: 18
お世話になっております。
学位論文の提出のためにPDF/AでPDFを出力すべく、platex>dvips>ps2pdf(rungs.exe)の順でこころみていますが、Ghostscriptのrungs.exe(ps2pdf)でMS明朝、MSゴシックが埋め込まれてしまいます。

platex>dvipdfmxで、-f ipaex.map, -f dlbase14.mapで、欧文、日本語ともにフォントの埋め込みに成功しますが、当然なことにPDF/Aでの出力になりません。

そこでplatex>divps>ps2pdf(rungs.exe)となるわけですが、

1:dvipsでdviをpsに変換する際に-Ppdf, -Pdownload35, -u+ipaex.map -oとし、日本語フォントを埋め込んでpsに変換したものを、ps2pdf(rungs.exe)で、rungs.exe -dPDFA -dCompatibilityLevel#1.5 -dEPSCrop -q -dSAFER -dBATCH -dNOPAUSE -sDEVICE="pdfwrite" -sOutputFile="hoge.pdf" -c save pop -f "hoge.ps"として出力しようとすると、"Error: /typecheck in /findfont"となり、出力できません。むろん、psファイルをGSViewでも見ることもできません。


そこで、
2:dvipsでdviをpsに変換する際に-Ppdf, -Pdownload35, -oとし、日本語フォントを埋め込まずに、psに変換したものを、ps2pdf(rungs.exe)で、rungs.exe -dPDFA -dCompatibilityLevel#1.5 -dEPSCrop -q -dSAFER -dBATCH -dNOPAUSE -sDEVICE="pdfwrite" -sOutputFile="hoge.pdf" -c save pop -f "hoge.ps"として出力すると、MS明朝、MSゴシックが埋め込まれてしまいます。こちらはGSViewでpsファイルを見ることができます。

3:環境は、Win7(64bit)、インストーラー3にてW32TeXを導入しておりますので、角藤氏が手を入れたGhostscript9.16で、奥村氏のHPにあるように、cidfmapにipaexをMS明朝、MSゴシックのエイリアスとなるように書き換えてみました。しかしこちらは一層深刻なエラーが出てくるようで、cidfmapを元に戻している段階です。cidfmapはC:\gs\gs9.16\libに入れています。

4:GSがIPAexフォントを見つけられずにいると思われるのですが、解決の方向性もよくわからず困っております。解決の方向性でもお示しいただければ助かります。よろしくお願いいたします。



FUJIMORI Hiroshi への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- Akira Kakuto の投稿
ipaex.map というのは,dvipdfmx 専用のマップファイル
ですから,dvips 用には使用できません。

添付の mkpdfa1b.zip を展開すると,三つのファイル

ECI-RGB.V1.0.icc
mkpdfa.bat
pdfa-def.ps

があります。
このディレクトリに,dvipdfmx で全てのフォントを埋め込んだ
pdf ファイル, 例えば test.pdf を置いてから

mkpdfa test

というコマンドを実行します。 pdf ファイル名 test.pdf から
拡張子を除いた test とすることに注意します。

そうすると, test-a.pdf ができると思いますが,これは
PDF/A-1b 準拠になっているのではないかと思います。
いつでも成功するかどうか保証はできませが...
簡単な例では PDF/A-1b となりました。
Akira Kakuto への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- FUJIMORI Hiroshi の投稿
角藤さま

お世話になっております。まさか角藤さまから返信いただくとは。
恐縮しております。

添付いただいたファイルを試したところ、PDF/A-1bが生成されましたが、1ページの白紙PDFとなってしまいます。

Error: /undefinedfilename in (¥345¥215¥.......¥207.pdf)
Operand stack:
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stoppedLpush --nostringval-- --nostringval-- --nostringval-- false 1 %stoppedLpush
Dictionary stack:
--dict:1206/1684(ro)(G)-- --dict:0/20(G)-- --dict:81/200(L)--
Current allocation mode is local
Last OS error: No such file of directory
GPL Ghostscript 9.16: Unrecoverable error, exit code 1

私の環境ではどうもうまく働かないようです。
ipaex.mapがdvipdfmx向けのものとは知りませんでした。
文系研究者で試行錯誤しながら使用中ということもありますのでご容赦ください。


FUJIMORI Hiroshi への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- Akira Kakuto の投稿

> Error: /undefinedfilename in (¥345¥215¥.......¥207.pdf)

ファイル名に日本語が入っていませんか?
Ghostscript は日本語ファイル名に弱いので,
必ず ASCII 文字だけを使用して下さい。
Akira Kakuto への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- FUJIMORI Hiroshi の投稿
返信ありがとうございます。

ご指摘のとおり、ファイル名に日本語が入っております。
経験からGSが日本語ファイル名をうまく処理できないことがわかっていたので、DT.pdfとファイル名を変更の上、拡張子を除いてDTとし、mkpdfaで処理してみましたが、これまたうまく行きません。
お知らせしたのは、再度、日本語ファイル名でこころみた際の結果でした。

DTとした場合も、
Error: /undifinedfilename in(DT.pdf)となり、日本語ファイル名の場合と同じ、内容のない1頁のPDF/Aファイルが生成されます。

なかなか厄介です。
何度も返信ありがとうございます。


FUJIMORI Hiroshi への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- Akira Kakuto の投稿
> Error: /undifinedfilename in(DT.pdf)

これは,現在のディレクトリが正しくないことを
意味しています。

dir

というコマンドを実行して,あるべきファイル名が
全て表示されることを確認して下さい。
Akira Kakuto への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- Akira Kakuto の投稿
> これは,現在のディレクトリが正しくないことを
> 意味しています。

つまり,DT.pdf というファイルが,現在のディレクトリ
に存在しないのです。

ECI-RGB.V1.0.icc
mkpdfa.bat
pdfa-def.ps
DT.pdf

という四つのファイルが,dir というコマンドで
表示されなければいけません。
Akira Kakuto への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- FUJIMORI Hiroshi の投稿
角藤さま、解説ありがとうございます。

dirで確認したところ、
ECI-RGB.V1.0.icc
mkpdfa.bat
pdfa-def.ps
DT(.pdf)
が同じフォルダに存在しております。

そして以前と同じく、Erorr: /undifinedfilename in (DT.pdf)とエラーを吐きます。

ドイツ語、フランス語、ギリシア語、英語、日本語が混在するファイルですが、図は一切使用しておらず、純粋に文字だけの出力なのですが、なかなか厄介です。
文字だけなので、カラーマネイジメントにはほとんど気を使っておりませんが、この辺に問題があるとも思えません。
ディレクトリの問題かとも考え、GSがインストールされているフォルダでmkpdfaをこころみましたが、こちらも結果に変化ありません。

幸い、PDF>PDF/Aに変換できればよいのだからと、ネットを散策した結果、
https://docupub.com/pdfconvert/というサイトを見つけ、オンライン上で変換してみたところ、まったく原理はわからないのですが、あっけなくPDF.PDF/Aに変換されてきました。

このサイトやAcrobatDCなりの商用のソフトを使えば、解決できるのでしょうが、正直、釈然としない気もしますので、TeXLiveの可能性も含め、もう少し検討してみます。多謝。


FUJIMORI Hiroshi への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- aminophen の投稿
> dirで確認したところ、
> ECI-RGB.V1.0.icc
> mkpdfa.bat
> pdfa-def.ps
> DT(.pdf)
> が同じフォルダに存在しております。

> そして以前と同じく、Erorr: /undifinedfilename in (DT.pdf)とエラーを吐きます。

そのエラーは「ドイツ語、フランス語、ギリシア語、英語、日本語が…」とか
ファイルの中身は一切関係なく、単にコマンドを実行したときに
Ghostscript が「ファイルを見つけられない」と言っているのです。
だから、cd コマンドでそのファイル達がある場所に移動してから mkpdfa を
実行する必要があるのです。

あと、DT.pdf というファイルが本当にファイル名が DT.pdf になっているか
(DT.pdf.pdf とかになっていないか)は大丈夫ですか?
確認をいまいちどやってみてください。
エラー内容を見る限り基本的な操作に不自由がありそうです。

オンラインで変換できたのであればそれはそれでいいですが、
このフォーラムに後から来た人にとって「回答者が提示した方法」が
質問者の役に立ったのかどうかは重要です。
FUJIMORI Hiroshi への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- Akira Kakuto の投稿
> dirで確認したところ、
> ECI-RGB.V1.0.icc
> mkpdfa.bat
> pdfa-def.ps
> DT(.pdf)
> が同じフォルダに存在しております。

DT(.pdf) では明らかに失敗します。
DT.pdf
でなければいけません。

Akira Kakuto への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- FUJIMORI Hiroshi の投稿
角藤先生、ご返信ありがとうございます。

商用サイトで(無料のようですが)、dvipdfmxでIPAexを埋め込んだPDFをPDF/Aに変換できることが判明したのですが、何とも釈然としないでいたので、TeXLiveでこころみてみようとTeXLiveに入れ替えてみました。

TeXLive導入後、kanji-config-updmap ipaexで、TeXLiveとともに導入されているipaexのmapをupdateした後、

1:platexで、platex hoge.tex

2:dvipsで、dvips -Ppdf -Pdownload35 -o hoge.ps hoge.dvi

3:ps2pdfで、 -dCompatibilityLevel#1.5 -dPDFA hoge.ps

無事、欧文フォント、IPAexフォントを埋め込んだhoge.pdfが生成されました。

w32TeXでは、
1:platexで、platex hoge.tex

2:dvipdfmxで、dvipdfmx -f ipaex.map -f dlbase14.map hoge.dvi

として、欧文フォント、IPAexフォントを埋め込んだhoge.pdfを生成した後、
hoge.pdfの拡張子を取り除いたhogeで、

3:mkpdfa hoge

結果、フォントを含まないPDF/Aが生成、という結果でした。

ご指摘いただいたのは、

3:mkpdfa hoge.pdf

を実行とのことと思いますが、環境が変わってしまっているので、こちらの可能性を検証するのは少しばかり時間がかかりそうです。

一度乗りかかった船ですので、ご指摘いただいた、mkpdfa hoge.pdfの可能性もこころみたいのですが、しばらくお時間をください。

返信、遅くなり申し訳ありません。またともに試行錯誤いただきありがとうございます。

2,3週ほど後になりますが、ご指摘いただいた可能性をためしてみます。しばしお待ちください。
FUJIMORI Hiroshi への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- Akira Kakuto の投稿
TeX Live をインストールしたのであれば,フォントやパッケージ
が完璧になっていますから,それを使い続けるのがベターです。

> 3:ps2pdfで、 -dCompatibilityLevel#1.5 -dPDFA hoge.ps

で出来た hoge.pdf は,PDF/A-1b を一部満たしていますが,
ちゃんとチェックすると,不完全なところがあります。
mkpdfa.bat を使うと,チェックに合格するものができます。
mkpdfa.bat を使う方法は TeX Live でも同じです。
TeX Live でも mkpdfa.bat を使えばよいと思います。
たとえば,ps2pdfで、 -dCompatibilityLevel#1.4 hoge.ps
で出来た hoge.pdf を PDF/A-1b に変換します。

> 3:mkpdfa hoge
>
> 結果、フォントを含まないPDF/Aが生成、という結果でした。

そのような結果になったのは,hoge.pdf が存在しないディレクトリ
で実行したから,hoge.pdf を見つけることができなかったのです。

> ご指摘いただいたのは、
>
> 3:mkpdfa hoge.pdf
>
> を実行とのことと思いますが

そうではありません。 mkpdfa hoge.pdf としたら必ず失敗します。
現在作業をしているフォルダに
ECI-RGB.V1.0.icc
mkpdfa.bat
pdfa-def.ps
hoge.pdf
というファイルが存在する状態で,コマンドプロンプトで
mkpdfa hoge
とするわけです。

ps2pdf などが使えるのですから,難しいことは何も無いはず
なのですが,一度失敗すると不思議なことになかなか抜け出せない
ものなのですね。

> hoge.pdfの拡張子を取り除いたhogeで、

これを見て,ふと思ったのですが,ファイル名までも拡張子
を取り除いたのでしょうか?
きっとそうでしょう。誤解を与えるような書き方をしたとしたら,
申し訳けありません。
ファイル名は変更してはいけません。コマンドを実行するとき
ファイル名から拡張子を除いた部分を引数にする,ということです。
Akira Kakuto への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- FUJIMORI Hiroshi の投稿
角藤先生
返信ありがとうございます。

TeXLive上でありますが、mkpdfaでPDF/Aが無事生成されました。
ご指摘のとおり、hoge.pdfの拡張子".pdf"を取り除いてmkpdfa hogeをしておりました。ファイルはhoge.pdfのまま、mkpdfa hogeで、PDF/Aが生成できます。

おそらくW32TeX上でも、角藤先生に添付いただいた3つのファイルを用いることで、PDF/Aがきちんと生成されるものと推測されます。

私のミスからお手数をお掛けしました。申し訳ありません。

添付いただいたファイルがTeXLive上でも有効であるとお気遣い、痛み入ります。
mkpdfaでPDF/Aが生成されたときは感動してしまいました。

これで安心して論文を提出できます。ありがとうございます。

FUJIMORI Hiroshi への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- KUROKI Yusuke の投稿
TeX Live であれば,
kanji-config-updmap-sys ipaex
としてから,
platex hoge
dvips hoge
rungs (後略)
とすれば,お望みのものが得られます(実験済み).“W32TeX+TeX Live以外のGhostscript配布”の環境についてはすみません,最近追いつけていません.
KUROKI Yusuke への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- Akira Kakuto の投稿
> お望みのものが得られます(実験済み)

それは,cidfmap の設定がうまくできて,ipaex フォントが埋め込めた
ことを意味しますが,

rungs.exe -dPDFA -dCompatibilityLevel#1.4 -q -dSAFER -dBATCH -dNOPAUSE -sDEVICE="pdfwrite" -sOutputFile="hoge.pdf" -c save pop -f "hoge.ps"

だけでは,できた hoge.pdf は,PDF/A 準拠にはならないような気がします。
Akira Kakuto への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- KUROKI Yusuke の投稿
一応,添付ファイルのようにPDF/A準拠だと判断されるようです.
添付 texforum-9562.png
KUROKI Yusuke への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- Akira Kakuto の投稿
その表示はそうなるのですが,プリフライトで
失敗しませんか?
Akira Kakuto への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- KUROKI Yusuke の投稿
ご丁寧にありがとうございます(何を確認したらよいか手探りです).
はい,確かにエラーになりました.

> プロファイル: PDF/A-1b への準拠を確認
> 結果 (概要)
> エラー
> カスタム CMap 用の CMap が埋め込まれていない (1 個の該当箇所 : 1 ページ)
> デバイスプロセスカラーが使用されているが、PDF/A 出力インテントがない (2 個の該当箇所 : 1 ページ)
KUROKI Yusuke への返信

Re: platex>dvips>ps2pdfでのIPAex埋め込み

- FUJIMORI Hiroshi の投稿
TeXLiveでのkanji-config-updmap-sys ipaex、情報ありがとうございます。

TeXliveと、TeXインストーラー3を使用したW32TeXの並存が可能であればこころみたいのですが、並存はやばそうな気がします。

もうしばらく粘ってみることにします。TeXLiveのインストールは、何だかんだと3時間近くかかりますから……。