latexでのpdfの挿入

latexでのpdfの挿入

- ツバサ ウエノ の投稿
返信数: 21
pdfファイルを挿入しようとしたところ、

dvipdfmx:warning: Error locating image file "???ʲ?.png"

dvipdfmx:warning: Could not find image resource...

dvipdfmx:warning: Interpreting special command image (pdf:) failed.

dvipdfmx:warning: >> at page="14" position="(71.9358, -112.402)" (in PDF)

dvipdfmx:warning: >> xxx "pdf:image @IMG1 width 597.23125pt height 845.15749pt depth 0pt "

というメッセージが表示されてしまい、挿入されるべき部分にはその大きさの空白が表示されてしまいます。

ご教授お願いいたします。

ツバサ ウエノ への返信

Re: latexでのpdfの挿入

- 和田 勇 の投稿

「... pdf の挿入」とありますが ...

.png などの画像ファイルの挿入と考えて良いですか

追加情報の提供依頼

再現及び確認のための情報が必要です。以下の三つのファイルを添付ファイルで提供してください。

    原稿ソース・ログファイル・”"???ʲ?.png"

”"???ʲ?.png" は日本語や空白を含むファイル名ですか

以下のソースで試すとどうなりますか?

  • (u)platex にしてありますが lualatex をお使いの場合は一行目のコメントを外し、二行目を削除してください

  • mill.png は一般的なインストールではコメントに示した場所にあります

       % \documentclass{jlreq}%%%%%%%%%%% lualatex
       \documentclass[dvipdfmx]{jlreq} %% platex (ptex2pdf -l) / uplatex (ptex2pdf -l -u)
       \usepackage{graphicx}
       \begin{document}
       %% /usr/local/texlive/2021/texmf-dist/tex/context/sample/common/mill.png
       %%         C:\texlive\2021\texmf-dist\tex\context\sample\common\mill.png
       \includegraphics[width=5cm]{mill.png}
       \end{document}
ツバサ ウエノ への返信

Re: latexでのpdfの挿入

- 和田 勇 の投稿

「... pdf の挿入」とありますが ...

.png などの画像ファイルの挿入と考えて良いですか

追加情報の提供依頼

再現及び確認のための情報が必要です。以下の三つのファイルを添付ファイルで提供してください。

    原稿ソース・ログファイル・”"???ʲ?.png"

”"???ʲ?.png" は日本語や空白を含むファイル名ですか

以下のソースで試すとどうなりますか?

  • (u)platex にしてありますが lualatex をお使いの場合は一行目のコメントを外し、二行目を削除してください

  • mill.png は一般的なインストールではコメントに示した場所にあります

    % \documentclass{jlreq}%%%%%%%%%%% lualatex \documentclass[dvipdfmx]{jlreq} %% platex (ptex2pdf -l) / uplatex (ptex2pdf -l -u) \usepackage{graphicx} \begin{document} %% /usr/local/texlive/2021/texmf-dist/tex/context/sample/common/mill.png %% C:\texlive\2021\texmf-dist\tex\context\sample\common\mill.png \includegraphics[width=5cm]{mill.png} \end{document}

和田 勇 への返信

Re: latexでのpdfの挿入

- ツバサ ウエノ の投稿
皆様ご回答いただきありがとうござます。
投稿後色々試してみた結果、貼り付けたい画像ファイルのファイル名を日本語から変更したところ不具合なく動作してくれました。
"."が含まれているとエラーを吐くというのは記事などで承知しておりましたが、日本語を使ってはいけないという制限があるのでしょうか?
またその制限は画像ファイルなどを挿入する場合のみあるのでしょうか?(tex文のファイル名は日本語でも何も問題ないかと存じます。)
ツバサ ウエノ への返信

Re: latexでのpdfの挿入

- TONE Kozaburo の投稿
元々、欧米のソフトウェアですし、スタイルファイルも国産とは限らないのでファイル名は英数字が無難だと思います。

Shif-JISの場合、中にエスケープ文字の「\」が含まれているので不具合を起こした事例が過去にあったかと思います。
今では大丈夫なのかは、わかりません。
TONE Kozaburo への返信

Re: latexでのpdfの挿入

- 和田 勇 の投稿

日本語ファイル名

Windows 環境をご利用ですか?実際に pdf に取り込むのは ghostscript というプログラムが担います。 このプログラムが古いと日本語ファイル名を期待通り扱えません。

調べ方はコマンドプロンプトで「rungs」と実行するとバージョン情報を表示できます。

      GPL Ghostscript 9.53.3 (2020-10-01)
      Copyright (C) 2020 Artifex Software, Inc.  All rights reserved.
      This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY:
      see the file COPYING for details.

以下の環境では、日本語ファイル名の .png も問題なく取り扱えます。10 / 11 ともにコードページは 932 です。

OS TeXLive Ghostscript
Windows 11 2020 9.53.3
Windows 11 2021 9.53.3
Windows 10 2021 9.53.3

お詫び

今朝解凍した時に提示したソースファイルが一行になっていました。 上記テストは以下のソースを利用しました。

      % \documentclass{jlreq}%%%%%%%%%%% lualatex
      \documentclass[dvipdfmx]{jlreq} %% platex (ptex2pdf -l) / uplatex (ptex2pdf -l -u)
      \usepackage{graphicx}
      \begin{document}
      %% /usr/local/texlive/2021/texmf-dist/tex/context/sample/common/mill.png
      %%         C:\texlive\2021\texmf-dist\tex\context\sample\common\mill.png
      \includegraphics[width=5cm]{mill.png}
      \includegraphics[width=5cm]{水車.png} % 上記 mill.png を 水車.png にコピー
      \end{document}
和田 勇 への返信

Re: latexでのpdfの挿入

- ツバサ ウエノ の投稿
Windowsではなくmacを使用しております。
ツバサ ウエノ への返信

Re: latexでのpdfの挿入

- 和田 勇 の投稿
お手数ですが、私の提示したもので処理したときの情報を提供していただけませんか?

必要な情報は以下のもの。

- 当初の質問時に利用したコマンドはplatex? uplatex? lualatex?その他?
- ターミナルで、そのコマンドで私の提示したものを処理したときに表示される情報
- 処理時に作成される .log ファイル
- ls '*.xbb' の処理結果
和田 勇 への返信

Re: latexでのpdfの挿入

- ツバサ ウエノ の投稿
platexを使用しています。
処理した際には

LaTeX Warning: File `水車.png' not found on input line 8.



extractbb:warning: Can't find file (???.png), or it is forbidden to read ...skipping



! LaTeX Error: Cannot determine size of graphic in 水車.xbb (no BoundingBox).

となりました。


和田 勇 への返信

Re: latexでのpdfの挿入

- 奥村 晴彦 の投稿
和田さんの「水車.png」の例,Macで試してみたところ,
platex NG
uplatex OK
lualatex OK
でした。
奥村 晴彦 への返信

Re: latexでのpdfの挿入

- 和田 勇 の投稿
奥村さんのレポートの状態は確認しました。

.xbb ファイルがない状態だと extractbb で NG ですね。

extractbb で .xbb を作成すると今度は、 dvipdfmx でエラー。

ちょっと原因調べてみます。
和田 勇 への返信

Re: latexでのpdfの挿入

- m c の投稿
platexはJIS/SJISなので,日本語ファイル名が通らなかったように思います.
uptexになってUTF8が扱えるようになってから,日本語を平気で使えるようになったのではなかったでしょうか.

で質問者さんのケースではplatexをお使いだとのことですので,dviファイルに書き込まれた日本語の画像
ファイル名が化けてしまったためにdvipdfmxがそれを処理できなかった,という筋書きではないかと思います.
m c への返信

Re: latexでのpdfの挿入

- 和田 勇 の投稿
なるほど ... 了解。一応、platex の制限事項だと理解しました。

ただ .xbb の存在は確認できていないのですが、
dvipdfmx の処理を動ごいているので、多少のエラーは
無視して dvi ファイルを作成してるのだと思うけど、
警告メッセージが異なるのは気になりますね。

コンパイル時のオプションなどを含めた処理環境不明だし、当初質問時のソースファイルやログファイルも入手できないのでこれ以上は追い切れないです。
m c への返信

Re: latexでのpdfの挿入

- m c の投稿
すみません,「JIS/SJISなので」の部分は勘違いでした.
2018年頃にplatexで処理した原稿を見たら,UTF-8で書いていました.
#でもincludeするファイル名には日本語は使っていませんでした
m c への返信

Re: latexでのpdfの挿入

- 和田 勇 の投稿

ありがとうございます。

でも制限事項でも良いかと思います。

  • platex で includegraphics する NON-ASCII ファイルの .xbb が無いと exyractbb でエラーになる
  • NON-ASCII 画像ファイルの .xbb を手動で作成しても dvipdfmx で失敗する

    • 「1, 2 , 5, 6」行目が extractbb 後 platex で作成した dvi ファイルのダンプ
    • 「3, 4, 7, 8」は .xbb ファイルが無い状態での uplatex で作成した dvi ファイルのダンプ

      diff -u platex.txt  uplatex.txt | rg -B 1 ' n   g' | sed 's/--$//' | nl |expand | sed 's/^/       /'
      
      1  -0000420    676e    2029    8d8e    0092    14a2    efbc    703f    6664
      2  -          n   g   )  sp  so  cr dc2 nul   " dc4   <   o   ?   p   d   f
      3  +0000420    676e    2029    8d8e    0092    14a2    efbc    7041    6664
      4  +          n   g   )  sp  so  cr dc2 nul   " dc4   <   o   A   p   d   f
      
      5  -0000520    2820    e5bf    d6bc    702e    676e    2029    8e8e    9f8e
      6  -         sp   (   ?   e   <   V   .   p   n   g   )  sp  so  so  so  us
      
      7  +0000520    2820    b0e6    e8b4    8abb    702e    676e    2029    8e8e
      8  +         sp   (   f   0   4   h   ;  nl   .   p   n   g   )  sp  so  so
      
  • 注目は 5,6 行目と 7,8行目で「水車」の「sp (」の次から「水車」に相当する部分。 uplatex はそのままなのですが、platex だと utf-8 にならないまでもSJISのバイト  列じゃないしSJIS になってもアクセスはできないだろうな。

    今後 windows が codepage 65001 が標準になると顕在化すると思うけど、 個人的には制限事項にしても良いと思う。

    • SJISな「水車」を同じようにダンプしてみると

       echo 水車 | nkf -s | od -xa 
      
       0000000    8590    d48e    000a
              dle enq  so   T  nl
      
    •  utf8 な「水車」を同じようにダンプしてみると 

      echo 水車 | nkf -w | od -xa
      

      0000000 b0e6 e8b4 8abb 000a f 0 4 h ; nl nl

和田 勇 への返信

Re: latexでのpdfの挿入

- 和田 勇 の投稿
自己フォロー

制限事項でもいいのだけど「水車.xbb」があればアクセス可能
だということは、内部的に SJIS になっていても元の UTF-8
なコードは保持してるのかな?

そうであれば、shell-escape するときにキックするコマンドに
与えるファイル名などは sjis なものではなく元のコードを
使えるように改修できれば良いのかもしれない。

そして、dvi ファイル作成の際も utf-8 の方のコードを使うとかができればいいのかな?
m c への返信

Re: latexでのpdfの挿入

- t tk の投稿
今回の件は、MAC で platex + dvipdfmx を使用、とのことですので、
私の結論を先に書きますと、「dvi に書き込まれた special の文字コードを EUC → UTF-8 に書き換えれば dvipdfmx も(間接的に呼び出される) ghostscript も通るはず」です。

↓以前書いた記事です。
https://okumuralab.org/tex/mod/forum/discuss.php?d=2531#p14755

(u)platex では dvi に書き込まれるファイル名の文字コードはそのエンジンの内部コードです。MAC の platex は EUC-JP で書き込んでいるはずです。MAC の場合、そこをUTF-8にしないと dvipdfmx, ghostscript が上手く動きません。

拙作の convbkmk.rb に --dvi-special または -d というオプションを入れてあります。今回のケースで役に立つように作ったはずです。
https://github.com/texjporg/tex-jp-build/issues/45#issuecomment-441438042


ちなみに、Windows の場合は、Shift_JIS のダメ文字問題と、cmd.exe の文字コードの問題があるのでさらに問題はややこしいです。そこを上手くいくように W32TeX では手当てしてありましたが、最近の TeX Live版にも引き継がれているかどうかは知りません。

私のお薦めは pLaTeX を捨てて upLaTeX または LuaTeX-ja に乗り換えることです。
t tk への返信

Re: latexでのpdfの挿入

- 奥村 晴彦 の投稿
> 私のお薦めは pLaTeX を捨てて upLaTeX または LuaTeX-ja に乗り換えることです。

ですよね!
奥村 晴彦 への返信

Re: latexでのpdfの挿入

- t tk の投稿
「捨てる」とつい過激な言葉を思わず使ってしまいましたが、upTeX/upLaTeX は pTeX / pLaTeX の文字コード部分を入れ替えただけであり 99.99... % は pTeX / pLaTeX なんですよね。pTeX / pLaTeX への感謝も忘れないつもりです。
t tk への返信

Re: latexでのpdfの挿入

- 和田 勇 の投稿
dvi ファイルは euc だったんですね。ダンプが違うはずだ。

> 私のお薦めは pLaTeX を捨てて upLaTeX または LuaTeX-ja に乗り換えることです。

私もそう思いますので、platex で使用するファイル名は ASCII コードでという制約事項で良いと思っています。

ただ、再掲しますが まだ道のりは長いかと思いますが
Windows でシステムコードページが 65001 に
なった時、同様の質問が発生しそうですね。

ちなみに変換スクリプトは以下の手順で、問題なく pdf 化できました。

extractbb 水車.png
platex mill
ruby convbkmk-0.30/convbkmk.rb --euc-jp --dvi-special mill.dvi