さきほど投稿させていただいた者です。
また新たな困難が生じ困っています。
PDF形式で保存したExcelの図を挿入すべく、美文書作成入門第6版の通りにやってみたのですが、美文書作成入門p121にあるようなエラーメッセージ(Latex Error.File'netsu.xbb'not found のような)が出たので、美文書作成入門に書いてある通り、texmf.cnfというファイルを探してshell_escape_commands=の右辺にextracbbを追加したのですが、それでもうまくゆきません。
具体的には、現在
\documentclass{jarticle}
\usepackage[dvipdfmx]{graphicx}
\begin{document}
\includegraphics[width=5cm]{netsu.pdf}
\end{document}
というdocumentに対して、
This is ptex2pdf[.lua] version 0.4.
Processing ex1.tex.
This is e-pTeX, Version 3.1415926-p3.4-110825-2.6 (utf8.sjis) (TeX Live 2013/W32TeX)
restricted \write18 enabled.
entering extended mode
(./ex1.tex
pLaTeX2e <2006/11/10> (based on LaTeX2e <2011/06/27> patch level 0)
Babel <3.9f> and hyphenation patterns for 78 languages loaded.
(c:/texlive/2013/texmf-dist/tex/platex/base/jarticle.cls
Document Class: jarticle 2006/06/27 v1.6 Standard pLaTeX class
(c:/texlive/2013/texmf-dist/tex/platex/base/jsize10.clo))
(c:/texlive/2013/texmf-dist/tex/latex/graphics/graphicx.sty
(c:/texlive/2013/texmf-dist/tex/latex/graphics/keyval.sty)
(c:/texlive/2013/texmf-dist/tex/latex/graphics/graphics.sty
(c:/texlive/2013/texmf-dist/tex/latex/graphics/trig.sty)
(c:/texlive/2013/texmf-dist/tex/latex/latexconfig/graphics.cfg)
(c:/texlive/2013/texmf-dist/tex/latex/dvipdfmx-def/dvipdfmx.def))) (./ex1.aux)
** WARNING ** Streams with DecodeParams not supported.
** WARNING ** Cannot parse cross-reference stream.
** WARNING ** Error while parsing PDF file.
** WARNING ** ./netsu.pdf does not look like a PDF file...
! LaTeX Error: File `netsu.xbb' not found. Use -shell-escape option to generate
automatically.
See the LaTeX manual or LaTeX Companion for explanation.
Type H for immediate help.
...
l.6 \includegraphics[width=5cm]{netsu}
?
処理はユーザによって中断されました
というエラーメッセージが表示されている状況です。
texmf.cnfを、wordで開いて編集したのですが、それがいけなかったのでしょうか。
どなたかわかる方がいれば教えてください。
よろしくお願いします。
添付していただいた texmf.cnf は正常でした。
(追記:まずかったようです→後の投稿参照)
したがって、問題は Excel で出力した PDF ファイル側にあります。
この問題については既に Forum: 1503 および Forum: 1578 で私が回答しています。
が、一応もう一度貼っておきます。
# とりわけ Forum: 1578 は「TeX のインストール失敗」と「画像取り込み失敗」が
# 同時に起きたため、論点を把握しづらくなっているっぽいから。
------------------------------
Excel で作った PDF 画像が挿入できないのは
「Excel が PDF version 1.5 を出力する」
からです。PDF ファイルのバージョンは、例えば Adobe Reader で PDF を開いた
状態でページのどこでもいいので右クリックすると「文書のプロパティ」がでて
きます。そこに「PDF のバージョン」が書かれているはずです。
PDF というファイル形式のバージョンが1.5以上だと、美文書が収録している
TeX Live 2013 付属の dvipdfmx は取り込みに失敗します。ちなみに、このバグは
現在の最新版では修正されています(2014/08/14 に修正)。
選択肢として「PDF のバージョンを下げる」または「dvipdfmx に -V オプションを付ける」
があります。どちらがよいかは場合によります。一応方法を書くと
(1) 取り込む PDF のバージョンを下げる
Microsoft Office では出力する PDF のバージョンを下げることはできませんので、毎回
PDF のバージョンを手動で何らかのツールで下げる必要があります。
Windows で簡単なのは CubePDF です。これは「印刷」と似た操作で CubePDF をプリンタ
として指定すると、PDF のバージョンを 1.2 から 1.7 の間で選択することができます。
これを用いて、例の dvipdfmx のバグに引っかからない 1.4 まで下げるという方法です。
(2) dvipdfmx で -V オプションを指定する
例えば
--------
\documentclass{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\begin{document}
\includegraphics[width=3cm]{excel.pdf}
\end{document}
--------
という test.tex を作った場合(excel.pdf はバージョン 1.5 とする)、コマンドプロンプトで
platex test.tex
dvipdfmx -V5 test.dvi
とすると正常に出力できます。これは
ptex2pdf -l -od '-V5' test.tex
入力した場合と同じです。
これをコマンドプロンプトではなく TeXworks で自動的に可能にするには、TeXworks のプログラム
設定画面で「ptex2pdf」の中に
-l
-ot
$synctexoption -kanji=utf8
-od
-V5
$fullname
と書けば OK です(要するに -od と -V5 を追加)
------------------------------
(追記:まずかったようです→後の投稿参照)
したがって、問題は Excel で出力した PDF ファイル側にあります。
この問題については既に Forum: 1503 および Forum: 1578 で私が回答しています。
が、一応もう一度貼っておきます。
# とりわけ Forum: 1578 は「TeX のインストール失敗」と「画像取り込み失敗」が
# 同時に起きたため、論点を把握しづらくなっているっぽいから。
------------------------------
Excel で作った PDF 画像が挿入できないのは
「Excel が PDF version 1.5 を出力する」
からです。PDF ファイルのバージョンは、例えば Adobe Reader で PDF を開いた
状態でページのどこでもいいので右クリックすると「文書のプロパティ」がでて
きます。そこに「PDF のバージョン」が書かれているはずです。
PDF というファイル形式のバージョンが1.5以上だと、美文書が収録している
TeX Live 2013 付属の dvipdfmx は取り込みに失敗します。ちなみに、このバグは
現在の最新版では修正されています(2014/08/14 に修正)。
選択肢として「PDF のバージョンを下げる」または「dvipdfmx に -V オプションを付ける」
があります。どちらがよいかは場合によります。一応方法を書くと
(1) 取り込む PDF のバージョンを下げる
Microsoft Office では出力する PDF のバージョンを下げることはできませんので、毎回
PDF のバージョンを手動で何らかのツールで下げる必要があります。
Windows で簡単なのは CubePDF です。これは「印刷」と似た操作で CubePDF をプリンタ
として指定すると、PDF のバージョンを 1.2 から 1.7 の間で選択することができます。
これを用いて、例の dvipdfmx のバグに引っかからない 1.4 まで下げるという方法です。
(2) dvipdfmx で -V オプションを指定する
例えば
--------
\documentclass{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\begin{document}
\includegraphics[width=3cm]{excel.pdf}
\end{document}
--------
という test.tex を作った場合(excel.pdf はバージョン 1.5 とする)、コマンドプロンプトで
platex test.tex
dvipdfmx -V5 test.dvi
とすると正常に出力できます。これは
ptex2pdf -l -od '-V5' test.tex
入力した場合と同じです。
これをコマンドプロンプトではなく TeXworks で自動的に可能にするには、TeXworks のプログラム
設定画面で「ptex2pdf」の中に
-l
-ot
$synctexoption -kanji=utf8
-od
-V5
$fullname
と書けば OK です(要するに -od と -V5 を追加)
------------------------------
添付された texmf.cnf をよくよく見ると、質問者が余分なものを足したようです(Thanks: 本田さん)。
% added by abtlinst.exe
shell_escape_commands = extractbb
bibtex,pbibtex,jbibtex,repstopdf,epspdf,extractbb,\
makeindex,mendex,mpost,pmpost,upmpost,kpsewhich
ここは元通り
% added by abtlinst.exe
shell_escape_commands = \
bibtex,pbibtex,jbibtex,repstopdf,epspdf,extractbb,\
makeindex,mendex,mpost,pmpost,upmpost,kpsewhich
にしてください>渡辺さん
# extracbb と書いたのは、渡辺さんがフォーラムに書くとき間違えたっぽい。
というわけで、今回は
- texmf.cnf を正常に戻す
- PDF のバージョンの問題
の2つの合併症でした。
追記:もっとも、今回の図取り込みの失敗については、根本的な原因は Excel が吐く PDF のバージョンです。
texmf.cnf に誤った改変を加えたようですが、この改変でも(幸い?)結局のところ shell_escape_commands の
右辺に extractbb がちゃんとあるので、認識はしてくれるはずです。しかし、bibtex などのプログラムが
右辺に無い状態として設定されてしまっているので、渡辺さんに元に戻してもらう必要があるわけですね。
% added by abtlinst.exe
shell_escape_commands = extractbb
bibtex,pbibtex,jbibtex,repstopdf,epspdf,extractbb,\
makeindex,mendex,mpost,pmpost,upmpost,kpsewhich
ここは元通り
% added by abtlinst.exe
shell_escape_commands = \
bibtex,pbibtex,jbibtex,repstopdf,epspdf,extractbb,\
makeindex,mendex,mpost,pmpost,upmpost,kpsewhich
にしてください>渡辺さん
# extracbb と書いたのは、渡辺さんがフォーラムに書くとき間違えたっぽい。
というわけで、今回は
- texmf.cnf を正常に戻す
- PDF のバージョンの問題
の2つの合併症でした。
追記:もっとも、今回の図取り込みの失敗については、根本的な原因は Excel が吐く PDF のバージョンです。
texmf.cnf に誤った改変を加えたようですが、この改変でも(幸い?)結局のところ shell_escape_commands の
右辺に extractbb がちゃんとあるので、認識はしてくれるはずです。しかし、bibtex などのプログラムが
右辺に無い状態として設定されてしまっているので、渡辺さんに元に戻してもらう必要があるわけですね。
この問題について、おそらく行き違いがあったのではないかと思いますので、確認したいと思います。
最後の「上手くできました。」は、もともと失敗した PDF ファイル(個人情報が入っているもの)を
使ったのでしょうか、それとも最初とは違う方法で出力した PDF ファイルを使ったのでしょうか。
私の手元で TeX Live 2013(美文書6版)の環境をつくって試したところ、PDF-1.5 以上でも取り
込みに成功する場合と失敗する場合があることを確認しました。具体的には「dvipdfmx が解釈する
必要のある領域に /DecodeParms がある PDF ファイル」について失敗するようです(トピックの
最初でご提示いただいたエラーメッセージの最初の Warning はこれのことです)。
これが 2014/08/14 の修正で「dvipdfmx が解釈すべき領域に /DecodeParms が見つかった
場合にも対応可能な改修が施されているので、以降の W32TeX および TeX Live 2015 以降では
問題なく取り込むことができると思います。TeX Live 2010 以降はデフォルトが -V5 を付けた
のと同等の処理しかしないはずなので、私が提案した「-V5 を付ける」は冗長でした(付けても付け
なくても、dvipdfmx が /DecodeParms を解釈不能なことに変わりはないので)。
Excel を含む Office では「名前を付けて保存」で形式を選択するときに「PDF (.pdf)」を指定
すれば PDF を出力することができます。しかし、2007, 2010, 2013 いずれの世代においても、
dvipdfmx が解釈不能な /DecodeParms を含む PDF を吐いたことはありません。ではなぜ質問者
がそんな PDF を Excel で作れたかというと、Excel 標準の PDF 出力機能ではなく Adobe 製の
「Excel 用 AcrobatMaker」なるプラグイン?を使ったからだと思います。これは Distiller を
経由して PDF を出力するので、そのデフォルトが PDF-1.5 でかつ /DecodeParms を持ちます。
根本的な原因はもしかするとこれだったのかもしれません。
ちなみに CubePDF で吐いた PDF は、たとえバージョンが1.5でも dvipdfmx が解釈する領域に
/DecodeParms を作らないようなので、この対処法は有効だと思います。
最後の「上手くできました。」は、もともと失敗した PDF ファイル(個人情報が入っているもの)を
使ったのでしょうか、それとも最初とは違う方法で出力した PDF ファイルを使ったのでしょうか。
私の手元で TeX Live 2013(美文書6版)の環境をつくって試したところ、PDF-1.5 以上でも取り
込みに成功する場合と失敗する場合があることを確認しました。具体的には「dvipdfmx が解釈する
必要のある領域に /DecodeParms がある PDF ファイル」について失敗するようです(トピックの
最初でご提示いただいたエラーメッセージの最初の Warning はこれのことです)。
これが 2014/08/14 の修正で「dvipdfmx が解釈すべき領域に /DecodeParms が見つかった
場合にも対応可能な改修が施されているので、以降の W32TeX および TeX Live 2015 以降では
問題なく取り込むことができると思います。TeX Live 2010 以降はデフォルトが -V5 を付けた
のと同等の処理しかしないはずなので、私が提案した「-V5 を付ける」は冗長でした(付けても付け
なくても、dvipdfmx が /DecodeParms を解釈不能なことに変わりはないので)。
Excel を含む Office では「名前を付けて保存」で形式を選択するときに「PDF (.pdf)」を指定
すれば PDF を出力することができます。しかし、2007, 2010, 2013 いずれの世代においても、
dvipdfmx が解釈不能な /DecodeParms を含む PDF を吐いたことはありません。ではなぜ質問者
がそんな PDF を Excel で作れたかというと、Excel 標準の PDF 出力機能ではなく Adobe 製の
「Excel 用 AcrobatMaker」なるプラグイン?を使ったからだと思います。これは Distiller を
経由して PDF を出力するので、そのデフォルトが PDF-1.5 でかつ /DecodeParms を持ちます。
根本的な原因はもしかするとこれだったのかもしれません。
ちなみに CubePDF で吐いた PDF は、たとえバージョンが1.5でも dvipdfmx が解釈する領域に
/DecodeParms を作らないようなので、この対処法は有効だと思います。
具体的な変換ツールを示していただかないとわかりませんね(てっきり Excel の保存機能かと思った)。
私が用意した Excel ファイルをアップロードして早速 PDF を作ってみましたが、その PDF は問題
なく美文書6版の環境で取り込みに成功しました。渡辺さんのと結果が違いますね。私が作った PDF の
中身を調べたら、これには /DecodeParms が含まれていませんでした。
渡辺さんの場合と私の場合で結果が違うのはなぜかは分かりませんが、調べようがないです。
「何をやっているかわからないオンラインツール」は怖いですね。
今後 Excel を使うときは、ファイルの種類で PDF を選ぶことをおすすめします。
(それから Adobe 純正品も、必要以上に /DecodeParms を使いまくるので良くないと思う)
一応、件のサイトで私が作った PDF を添付します。
私が用意した Excel ファイルをアップロードして早速 PDF を作ってみましたが、その PDF は問題
なく美文書6版の環境で取り込みに成功しました。渡辺さんのと結果が違いますね。私が作った PDF の
中身を調べたら、これには /DecodeParms が含まれていませんでした。
渡辺さんの場合と私の場合で結果が違うのはなぜかは分かりませんが、調べようがないです。
「何をやっているかわからないオンラインツール」は怖いですね。
今後 Excel を使うときは、ファイルの種類で PDF を選ぶことをおすすめします。
(それから Adobe 純正品も、必要以上に /DecodeParms を使いまくるので良くないと思う)
一応、件のサイトで私が作った PDF を添付します。