パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- myu myo の投稿
返信数: 45


パス名にSHIFT_JISの禁則文字(予や表など)を含む画像を取り込みたいのですが
うまくいきません。

普通に
\includegraphics[width=7.5cm,bb=0 0 869.25 869.25]{.//予定表2.png}

のようにして読み込んでpdfにコンパイルしても
禁則文字を含む画像だけ白紙になります。

一般的な問題だろうと思って検索して調べてみたのですが
意外とこの問題の解決策が見つかりませんでした。

どうすれば禁則文字をパス名にもった画像を取り込むことができますか?

myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- 梅田 宗宏 の投稿
素朴な質問ですが、どうしても禁則文字を使わなければならない理由がありのでしょうか。
わたしならば、禁則文字が使えないならば、さっさと英数字のパス名にしてしまいますが。
myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- Akira Kakuto の投稿
uptex, uplatex を使う場合,問題なく 予定表.png など
が使用できます。

%
% uplatex test.tex
% encoding should be utf8
%
\documentclass{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\begin{document}
\includegraphics{予定表.png}
\end{document}


set COMMAND_LINE_ENCODING=utf8
uplatex test.tex
dvipdfmx test


なお
\includegraphics{.//foo.png}
とされることが多いようですが
\includegraphics{.///////////////foo.png} は
\includegraphics{./foo.png}
と同じです。
通常 current directory のものは
\includegraphics{foo.png}
で十分です。
Akira Kakuto への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- Akira Kakuto の投稿
\documentclass{jsarticle}

\documentclass[uplatex]{jsarticle}
でした。なお,Norbert さんの最新の ptex2pdf
を使うことをお勧めします。内部で環境変数を
扱ってくれますから,

ptex2pdf -u -l test.tex

だけで全て OK です。
Akira Kakuto への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- myu myo の投稿
ありがとうございます。

試してみたのですが以下のようなエラーが出ます。

エラーはこの後もまだまだ出ます。

フォントがないようなことが書かれてありますが、どうすれば良いでしょうか?

abtexinst_0_85r1でインストールしたTeX環境を使っております。
よろしくお願いいたします。

D:\後>ptex2pdf -l fffff.tex
This is ptex2pdf[.lua] version 0.8.
Processing fffff.tex
This is e-pTeX, Version 3.14159265-p3.7-150805-2.6 (sjis) (TeX Live 2015/W32TeX)
(preloaded format=platex)
restricted \write18 enabled.
entering extended mode
(./fffff.tex(guessed encoding: Shift_JIS = sjis)
pLaTeX2e <2006/11/10> (based on LaTeX2e <2015/01/01> patch level 2)
Babel <3.9m> and hyphenation patterns for 79 languages loaded.
(c:/w32tex/share/texmf-dist/tex/platex/jsclasses/jsarticle.cls(guessed encoding:
ISO-2022-JP = jis)
Document Class: jsarticle 2014/02/07 okumura

! LaTeX Error: Font family `JY2+mc' unknown.

See the LaTeX manual or LaTeX Companion for explanation.
Type H for immediate help.
...

l.325 ...{mc}{m}{n}{<-> s * [0.924690] upjisr-h}{}

?

! LaTeX Error: Font family `JY2+gt' unknown.

See the LaTeX manual or LaTeX Companion for explanation.
Type H for immediate help.
...

l.326 ...{gt}{m}{n}{<-> s * [0.924690] upjisg-h}{}

?

! LaTeX Error: Font family `JT2+mc' unknown.

See the LaTeX manual or LaTeX Companion for explanation.
Type H for immediate help.
...

l.327 ...{mc}{m}{n}{<-> s * [0.924690] upjisr-v}{}

?

! LaTeX Error: Font family `JT2+gt' unknown.

See the LaTeX manual or LaTeX Companion for explanation.
Type H for immediate help.
...

l.328 ...{gt}{m}{n}{<-> s * [0.924690] upjisg-v}{}

?
myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- aminophen の投稿
角藤さんは upLaTeX でとおっしゃっています。
しかもその後コマンドも示してくださっています。
その通りに入力してください。
ptex2pdf -u -l fffff.tex
とします。upLaTeX なら -u と覚えておいてください。
aminophen への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- myu myo の投稿
ありがとうございます。

-uが抜けていました。
うまくコンパイルすることはできたのですが
コンパイル途中に禁則文字が含まれているファイルがあると
not found xxx.pngというようなエラーメッセージが出ます。
これは問題ないでしょうか?

uplatexというのは私がいつも使っているplatexの拡張版のようなものと考えて良いでしょうか?
何かデメリットとかあれば教えていただけないでしょうか?
 
myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- aminophen の投稿
upLaTeX については TeX Wiki の LaTeX 入門/発展編 に簡単な解説があります。
警告については(いま外出先で試せないので)わかりません。
aminophen への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- myu myo の投稿
ありがとうございます。

いま気付いたのですが
uplatexだとパス名に%が含まれているとうまくコンパイルできないようなのですが解決策はございますでしょうか?

platexだと問題無くコンパイルできるのですが。
 
よろしくお願いいたします。
aminophen への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- myu myo の投稿
何度もすいません。
あと
\usepackage{lastpage}
\usepackage[dvipdfmx]{hyperref}

もうまく機能していないようです。

もし解決策をご存じでしたら教えていただけないでしょうか?

もしこれらの解決策がないようでしたら
禁則文字に注意しながらplatexを使おうと思います。

よろしくお願いいたします。

myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- aminophen の投稿
> uplatexだとパス名に%が含まれているとうまくコンパイル
> できないようなのですが解決策はございますでしょうか?
パスとは TeX ファイル名ですか、画像ですか?

> \usepackage{lastpage}
> \usepackage[dvipdfmx]{hyperref}
> うまく機能していないようです。
何をもって myu myo さんがうまく機能しないといっているのか
まるでわかりません。私は特に不自由した記憶はないです。
毎度ですが「どうなったか」伝わるように書いてください。
aminophen への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- myu myo の投稿
毎度ありがとうございます。

%でエラーが出るのはtexファイルだけで
画像では出ません。
以下のようなエラーが出て、コンパイルすることができません。

This is e-upTeX, Version 3.14159265-p3.7-u1.20-150805-2.6 (utf8.uptex) (TeX Live
2015/W32TeX) (preloaded format=uplatex)
restricted \write18 enabled.
entering extended mode

*

> \usepackage{lastpage}

のエラーに関してはコンパイル途中でlastpageが読み込めないといったエラーメッセージが表示されて、コンパイルには成功するのですが最終ページのところが「?」になってしまいます。

> \usepackage[dvipdfmx]{hyperref}
の方はまだ詳しく確認できていません。
 
myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- aminophen の投稿
「以下のエラーが出て」というか何もエラーは出ていないですね。
最後に出ている * は入力待ちを意味します。
つまり、ファイル名に(おそらく1文字目が)% になっている
ためそれをファイル名として認識できず、何も入力されていないと
勘違いされているのかもしれません。
# 相変わらず今 PC から離れているので推測ですが。

気になるのですが「エラーなのか警告なのか何も出ないのか」は
ちゃんと判別できたほうが良いです。今の場合は「何も出ない」です。
エラーなら ! LaTeX Error とか「Error」という文字が出ますし、
警告なら LaTeX Warning とか「Warning」の文字が出ます。
Error は処理にとって致命的なので絶対にプログラムは失敗します。
Warning はユーザの期待どおりではないかもしれないけど致命的で
ないので一応それらしく処理を継続します。この違いにも留意する
と、Web で検索するときも引っかかりやすくなります。
aminophen への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- myu myo の投稿

Package hyperref Warning: Rerun to get /PageLabels entry


hyperrefは上記のようなエラーが出ます。
コンパイルはうまくいきます
 
myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- aminophen の投稿
> Package hyperref Warning: Rerun to get /PageLabels entry
これは警告であってエラーではありません。
hyperref は複数回実行しないと相互参照を正しく扱えません。だから
Rerun to get ... しなさいと教えてくれているのですよ。
メッセージを見ればすぐに分かることです。
(というのは pLaTeX でも同じですから、ご存知でしょう?)
aminophen への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- aminophen の投稿
lastpage もエラーではなく警告でしょう?
最後のページまで LaTeX が読まないと、何ページあるのか知る由も
ありませんから。hyperref の件と全く同じ。
(これも pLaTeX と同じだから絶対にご存知のはず)
aminophen への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- myu myo の投稿
立て続けに質問して申し訳ありません。

platexの時は
platexコマンドを三回実行した後に
dvipdfmx -V 7
を実行していました。

uplatexでも同じようにこれを実行すると
pdfファイルが出力されなくなります。

dvipdfmx -V 7
は何に使うためのものだったでしょうか?
uplatexではどのようにして使えば良いでしょうか?
 
myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- aminophen の投稿
「ptex2pdf -l hoge.tex」は
platex hoge.tex
dvipdfmx hoge.dvi
という1回ずつ連続実行と等価です。

「ptex2pdf -u -l hoge.tex」な
uplatex hoge.tex
dvipdfmx hoge.tex
という1回ずつ連続実行と等価です。

要は、ptex2pdf は日本語 TeX と dvipdfmx を1回ずつ実行する
為のスクリプトです。
TeX Wiki 参照。
https://oku.edu.mie-u.ac.jp/~okumura/texwiki/?ptex2pdf

ということなので、uplatex を3回、dvipdfmx を1回なら
ptex2pdf -u -l hoge.tex
を3回やれば同じ効果が得られますね。

dvipdfmx の -V 7 とは、出力する PDF のバージョンを
1.7 にするためのオプションです。
dvipdfmx -V 7 hoge.dvi
とすると、hoge.pdf のバージョンが1.7になります。
多分 \includegraphics する PDF が1.7の場合に、
出力 PDF がそれより低いバージョンだと取り込めない
場合があったため、付けることにしたのでは?
ptex2pdf の使い方は ptex2pdf --help を見てください。
-od というオプションが見つかるでしょう。
いろいろ試すのも勉強です。聞く前に調べる。
aminophen への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- aminophen の投稿
少なくとも私は、ですが(myu myo さんに限らず)

回答したときにすぐに質問した方から返事が来ることは
必ずしも望んでいません。
むしろこちらが回答した内容を一字一句逃さずに間違い
なく実践してもらうことのほうが大事です。

知らないコマンド(uplatex とか ptex2pdf とか)を
指示されたら、とりあえず TeX Wiki に解説がないか
探してみてはどうでしょう?
uplatex を3回実行することも試さずに、なんか変な
メッセージが出たからと「知らないエラーだ!」と
決めつけるのではなく、よくメッセージを見ましょう。
エラーではなく警告で親切に何をすべきか教えてくれて
いる場合も(今回の hyperref のように)あります。

一つ一つ丁寧に自分で調べるのも勉強です。
TeX Wiki に立ち寄って、それでも分からなければ
その部分を引用して「ここがわからない」と聞けば
よいのです。そのほうが、Wiki を書いている私たち
にとって励みになるのです。(もうあそこに書いた
のに…というのは非常に残念なことですから。)
いちから人に尋ねるのではなく、根気よく。
そのくらいの心の余裕を持ちたいものです。
…という独り言です。
aminophen への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- myu myo の投稿
ありがとうございます。

uplatexでも三回通すのは必要でしたか
last pageとhyperrefの問題は解決しました。

あと%をパス名に含むtexファイルがうまくコンパイルできない問題の解決策があれば教えてください。
 
myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- aminophen の投稿
TeX は全部基本的に前から順にファイルを読んでいきます
から当然ですね。わざわざ後ろまで読みに行かないのは
ちょっと考えれば分かりますね?
エラーと警告の区別はよく見ないとあらぬ誤解を生みます。

「%」は試したことがありません。
とはいえ、今までの会話の流れから
・pLaTeX は ShiftJIS のダメ文字が NG
・upLaTeX は % が NG
などと知見が得られてきたので、どちらを採るかという話に
なるかもしれません。
# そもそも私はどちらも使わないので気にしたこともないし。
myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- 帯田 木偶太 の投稿
回りくどいけど、仮にソースが %.tex というファイル名だとして
    platex \makeatletter\input\@percentchar.tex
とすればタイプセットできるようです。
(拡張子を省略するとうまくいかないみたい。なぜだろう‥‥?)
帯田 木偶太 への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- 帯田 木偶太 の投稿

>(拡張子を省略するとうまくいかないみたい。なぜだろう‥‥?)
あ、コントロール・ワードで行端になるからファイル名の終端を
TeX が関知してくれないからですね。
    platex \makeatletter\input\@percentchar\relax
とすればうまくいきました。

帯田 木偶太 への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- myu myo の投稿

ご回答ありがとうございます。

そういえばplatexでもtexファイルに%が含まれていると

コンパイル失敗することに気がつきました。

画像ファイルの方は以前教えていただいた方法で読み込めるようにできてました。

それでtexファイルに%を使う方法なのですが

platex \makeatletter\input\@percentchar.tex

platex \makeatletter\input\@percentchar\relax

両方試してみたのですがdivファイルは生成されるのですが

画像の埋め込みがうまくいきません。

またpdfファイルを出力するために

dvipdfmx \makeatletter\input\@percentchar

を入れてみましたがpdfファイルは出力されませんでした。

myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- 前田 一貴 の投稿
dvipdfmx %.dvi

で変換できるでしょう.dvipdfmx は TeX 処理系ではありませんので.

そもそも platex などで % を含むファイル名が使えないのは
% が tex ではデフォルトでコメント文字であるためです.
platex はコマンドプロンプトの引数で渡された名前のファイルをそのまま読み込むのではなく,
\input に TeX のやり方で渡そうとします.
この時点で % はコメント文字になってしまっているので,そこから先は無視されてしまいます.

一番の解決策は,% をファイル名に使わないことだと思います.
myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- 帯田 木偶太 の投稿

> 画像の埋め込みがうまくいきません。
当方では問題なく画像が出力されました。
%.tex の中身とログを見てみないことには何ともいえません。

>またpdfファイルを出力するために
>
>
>dvipdfmx \makeatletter\input\@percentchar
>
>を入れてみましたがpdfファイルは出力されませんでした。
dvipdfmx は LaTeX とは違って % を特別扱いしませんので、
単に dvipdfmx % とすることで変換されると思うのですが‥‥。

帯田 木偶太 への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- myu myo の投稿
ご回答ありがとうございます。

昨日の夜からいろいろと試していて、かなり使い方は分かってきたのですが

やはり以下の点が不明なので教えていただけないでしょうか?

ファイル名に%を使う方法に関してですが

platex \makeatletter\input\@percentchar.tex
platex \makeatletter\input\@percentchar.tex
platex \makeatletter\input\@percentchar.tex
dvipdfmx %


とやってみたのですが、コマンドプロンプト上で

最後に

d:\Documents and Settings\desktop\新しいフォルダー>dvipdfmx
stdin -> stdout

というメッセージを残して終了してしまいます。

それでpdfファイルは出力されません。

何が原因でしょうか?

それと、pLaTeX upLaTeX ptex2pdf の速度を比較を行ってみたのですが以下のようになりました。(pLaTeX とupLaTeXは3回実行後にdvipdfmxを一回実行、ptex2pdfは3回実行)

pLaTeX 4.4秒
upLaTeX 20.5秒
ptex2pdf 22.1秒

ptex2pdfは二回余分にdvipdfmxの処理を行っているため、

他よりも遅いのは理解できるのですがなぜかupLaTeXがpLaTeXよりも5倍程度遅くなってしまいます。

その理由は画像ファイルのパス名に全角文字が含まれていると

エラーメッセージが表示され、しばらくその状態でフリーズするためです。

ただ、エラーは出てもコンパイルには成功します。

例えば、ファイル名が004-(010)2-変換前_out.pngというファイルの場合には

LaTeX Warning: File `004-(010)2-螟画鋤蜑浩out.png' not found on input line 35.

<004-(010)2-螟画鋤蜑浩out.png>

というようなエラーメッセージが表示されます。

全角のところが文字化けしており、ファイルが見つからないと書かれてあります。

ただ、エラーは出ても最終的にはコンパイルには成功します。

set COMMAND_LINE_ENCODING=utf8&

の一文は入れているのですがなにが問題でしょうか?

ちなみにかなり苦戦したのですが

set COMMAND_LINE_ENCODING=utf8のあとにスペースを入れると

全角文字の画像を読み込まなくなるようで、1行にコマンドを書きたい場合には

set COMMAND_LINE_ENCODING=utf8& というように

&をすぐ後ろにつける必要があることがわかり、このようにして使っています。

解決策があればよろしくお願いいたします。

myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- 飯島 徹 の投稿
>dvipdfmx %
>
>
>とやってみたのですが、コマンドプロンプト上で
>
>最後に
>
>d:\Documents and Settings\desktop\新しいフォルダー>dvipdfmx
>stdin -> stdout
>
>というメッセージを残して終了してしまいます。

やってないでしょ…

「dvipdfmx」 だけでEnterキーを押すと

stdin -> stdout

とメッセージが出ます.
「dvipdfmx x」などと存在しないファイル「x.dvi」を指定すると

x -> x.pdf

dvipdfmx:fatal: Could not open specified DVI (or XDV) file: x.dvi

Output file removed.

とエラーメッセージが出ます.

すなわち,あなたはプロンプトで dvipdfmx の後ろにファイル名を指定しないで実行しています.
myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- Akira Kakuto の投稿
この場合は,括弧 ( と ) がだめなのです。制約が多いですね。
括弧をファイル名に使わないようにして,例えば以下を試して下さい。
表示の文字化けを無くするには,-sjis-terminal オプションを付けます:

%
% test.tex (utf-8)
%
\documentclass[uplatex]{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\usepackage{bmpsize}
\begin{document}
\centering
\includegraphics[width=11cm]{004-010-2-変換前_out.png}\par
\end{document}


set COMMAND_LINE_ENCODING=utf8& uplatex -sjis-terminal test.tex
set COMMAND_LINE_ENCODING=utf8& dvipdfmx test.dvi
Akira Kakuto への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- Akira Kakuto の投稿
何故括弧 (, ), などが image file にあったらだめなのか,
これはデフォルトでは extractbb が restricted mode で実行
されるからです。 restricted mode では,安全性のため,
shell の特殊文字は全て quoted となります。WIN32 の場合は
^ が prepend されます。
どうしても特殊文字をファイル名に使いたければ,制限なしの
shell escape mode を使えば OK です。 つまり,

set COMMAND_LINE_ENCODING=utf8& uplatex -shell-escape -sjis-terminal test.tex
Akira Kakuto への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- Akira Kakuto の投稿
> ^ が prepend されます。

これでは説明が不十分だったので追加します。
特殊文字に ^ を prepend するだけでなく,そのうえに
各引数を " で囲みます。従って動かなくなります。
オーバーですが,それが restricted mode と思って下さい。
Akira Kakuto への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- myu myo の投稿

 

ありがとうございます。

ご回答を元にいろいろと試してみました。

set COMMAND_LINE_ENCODING=utf8& uplatex -shell-escape -sjis-terminal test.tex
のようにコマンドを書いたとしても
どうもtexと画像ファイルが同じ階層にある時に
\includegraphics[width=7.5cm,bb=0 0 696 696]{004-(010)2-変換前_out.png}
のようにして指定すると画像ファイルを読み込む時に
フリーズしてしまいコンパイルに時間がかかってしまいます。

上の方で.////を連ねるのは無意味だとご指摘を受けました
uplatexの場合にはなぜか
\includegraphics[width=7.5cm,bb=0 0 696 696]{.//004-(010)2-変換前_out.png}
のようにファイル名の最初にスラッシュが入ると
フリーズすることなくコンパイルが終了します。
あるいは

\includegraphics[width=7.5cm,bb=0 0 696 696]{./フォルダー/004-(010)2-変換前_out.png}

のようにして画像ファイルをフォルダー内に入れてしまっても
すんなりとコンパイルが終了します。

何か対症療法的な気がしますが、とりあえずuplatexに関してはこれで問題なく動作しているように思います。

この使い方は問題ございませんでしょうか?

それと
shell escape mode
を使えば、ファイルパスに括弧()があっても処理できることを教えていただきましたが
platexでは特にこれを入れなくとも括弧()を使うことができます。
これはUnicodeおよびuplatex特有の使い方ということで良いでしょうか?
わざわざ、shell escape modeを入れないと使えない文字列ががあるということは
shell escape modeを使うことによって弊害が生じるケースがあるということだと思うのですが
例えばどういう場合に問題が生じますでしょうか?


それと、ファイルパスにパーセントを入れることに関してですが
platex \makeatletter\input\@percentchar.tex
platex \makeatletter\input\@percentchar.tex
platex \makeatletter\input\@percentchar.tex
dvipdfmx %

platex \makeatletter\input\@percentchar/relax
platex \makeatletter\input\@percentchar/relax
platex \makeatletter\input\@percentchar/relax
dvipdfmx %

platex \makeatletter\input\@percentchar.tex
platex \makeatletter\input\@percentchar.tex
platex \makeatletter\input\@percentchar.tex
dvipdfmx %.dvi

などいろいろ試してみましたが
上で書いたエラーメッセージの後で改行を打つと続きが出てきて
以下のようなことが書かれてあります。

LaTeX Warning: There were undefined references.

)
(see the transcript file for additional information)
Output written on %.dvi (1 page, 1192 bytes).
Transcript written on %.log.

d:\Documents and Settings\desktop\platex>dvipdfmx
stdin -> stdout

Found 13 where PRE was expected

dvipdfmx:fatal: Something is wrong. Are you sure this is a DVI file?

どうもDVIファイルは出力されているが何かがおかしいそうです。

このソースファイルをアップしましたので一度何が問題か見ていただけないでしょうか?

http://fast-uploader.com/file/7001836812304/


よろしくお願いいたします。


myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- Akira Kakuto の投稿
\documentclass[uplatex]{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\begin{document}
\centering
\includegraphics[width=11cm,bb=0 0 440 308]{004-(010)2-変換前_out.png}\par
\end{document}

色々テストされているようですが,仰っているような結論にはなりません。
上の場合は, Bounding Box が与えられているので,extractbb は呼ばれず,
set COMMAND_LINE_ENCODING=utf8& uplatex -sjis-terminal test.tex
で何の問題もありません。
extractbb が呼ばれるときは,platex であろうが uplatex であろうが同じです。
.// を付けたらうまく行くというのも,何か別の原因を誤解しているのでしょう。
例えば .xbb ファイルが存在すると, extractbb が呼ばれません。
platex.zip は後で見てみます。
Akira Kakuto への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- Akira Kakuto の投稿
> platex.zip は後で見てみます

バッチファイル中では % は特殊文字ですから

dvipdfmx %

はだめで

dvipdfmx %%

として下さい。
Akira Kakuto への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- myu myo の投稿

ありがとうございます。


パーセントに関してですが%%とすることでうまくpdfファイルを出力することができました。

%あ.texの場合には

platex \makeatletter\input\@percentchar あ.tex
後ろに半角スペースを空けることでうまくいきました。

しかし
あ%あ.tex
のように前に文字列がある場合にはどうしてもうまくいかないのですが
どのようにすれば良いですか?

それと、

http://fast-uploader.com/file/7001842570338/

uplatexの方のソースファイルもアップしました
いずれもコンパイルすることはできるのですが
画像のファイルパスをそのまま書いた方は20秒程度かかり
パス名の頭に.//をつけた方は5秒程度で終わります。


myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- Akira Kakuto の投稿
> 画像のファイルパスをそのまま書いた方は20秒程度かかり
> パス名の頭に.//をつけた方は5秒程度で終わります

確認しました。 .// は ./ と同じです。いずれの場合も失敗
しているのですが,./ を付けると失敗が速いようです。

原因は,他のところで書いたように

\usepackage[space]{grffile}

です。残念ながら,これと uplatex による windows における
日本語ファイルサポートが矛盾しているようです。
これをコメントアウトすると成功するでしょう。
Akira Kakuto への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- myu myo の投稿


ご回答ありがとうございます。


確かに仰るとおり、
パス名に括弧()があったとしても
-shell-escape
をつけなくとも
\usepackage[space]{grffile}
をとるか
パス名の頭に.//をつけるとすんなりコンパイルできることが分かりました。

疑問なのは失敗しているのに
最終的にコンパイルできるというのは一体どういう仕様なのでしょうか?
\usepackage[space]{grffile}
が自動的に無効になっているのかと思ったのですが
画像ファイル名に
あ ...().png

のようなgrffileでしか扱えないようなものを入れてみましたが
普通にコンパイルできました。

あと
あ%あ.tex
のようにパーセントの前に文字列を入れた時がうまくいかないのですが
%あ ().tex
のようにパーセントの後の文字列の後にスペースがあってもうまくいきません。
これは解決策がございますでしょうか?


Akira Kakuto への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- Akira Kakuto の投稿
> いずれの場合も失敗しているのですが

訂正:

LaTeX Warning: File `./あ.png' not found on input line 6.

にも関わらず,

\includegraphics[width=7.5cm,bb=0 0 696 696]{./あ.png}

の場合は,実際には成功しているようですね。 myu myo さんに同意します。
詳しいことは,識者に調べてもらいましょう。
Akira Kakuto への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- myu myo の投稿

ありがとうございます。

どうもuplatexを使う場合には

\usepackage[space]{grffile}

を入れなくても二重ドットやスペースがファイルパスに入っていても

問題ないことに気がつきました。

だからuplatexの場合だけ

\usepackage[space]{grffile}

を使わないということで解決しそうです。

あとはパーセントの問題だけです。

Akira Kakuto への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- myu myo の投稿

すいません、やはり間違いでした

uplatexであっても

\usepackage[space]{grffile}

無しで読み込むことはできるのですが

パス名がなぜか表示されるという問題は残ってしまいます。

ということで対症療法的ですが./をつけるしかなさそうです。

Akira Kakuto への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- t tk の投稿
いつもお世話になります。
grffileのマニュアル をざざっと眺めた感じでは、

grffileはXeTeXもサポートしていて、
XeTeXの時のspaceの扱いは、pdfTeXなど他とは別の処理になっているようです。
XeLaTeXとupLaTeXは、後で(x)dvipdfmxを呼ぶことになるなど、事情はほとんど同じと思います。
upLaTeXの場合でも、XeTeX側の処理の方に流れるように出来れば、動くようになると予想します。



myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- 阿部 紀行 の投稿
> それと、ファイルパスにパーセントを入れることに関してですが
バッチファイルではなくコマンドプロンプトに直接入れてください.

バッチファイル内では%は特別扱いされます.
http://pf-j.sakura.ne.jp/program/dos/doscmd/str_percent.htm
をご覧ください.
myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- 飯島 徹 の投稿
%.texの1行目を
\documentclass[uplatex]{jsarticle}
に修正します.

そして,端末から
>uplatex \\makeatletter\\input\\@percentchar.tex
および
>dvipdfmx %
を実行すると図が取り込まれた%.pdfが作成されます.

Windows では
>uplatex \\makeatletter\\input\\@percentchar.tex

>uplatex \makeatletter\input\@percentchar.tex
なのかもしれません.当方はWindowsを持っていないので検証できず.
myu myo への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- Akira Kakuto の投稿
myu myo さんのソースを試していて
今初めて気がついたのですが,

\usepackage[space]{grffile}
あるいは
\usepackage{grffile}

と,ttk さんによる uptex, uplatex on Windows における
command_line_encoding = utf8
による漢字ファイルサポート
は,相性が悪いようです。 image ファイルが見つけられなく
なることがあるようです。
原因はわかっていません。

myu myo さんの問題もこれかもしれません。
myu myo さん,ありがとう御座いました。
Akira Kakuto への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- t tk の投稿
私の手元では、xelatexで以下のファイルで上手く動きました。
(環境は、xelatex, Windows, W32TeX, command_line_encoding=utf8使用)
CP932(いわゆるShift JIS)の文字集合の範囲では
"command_line_encoding=utf8"は上手く動いているようです。


%% hoge.tex 文字コードはUTF-8
\documentclass{article}
\usepackage{graphicx}
\usepackage[space]{grffile}
\grffilesetup{
encoding,
inputencoding=utf8,
filenameencoding=utf8,
}
\begin{document}
ABC.
\includegraphics{000display.eps}
\includegraphics{001表示.eps}
\includegraphics{002表示 - スペース入り.eps}
\includegraphics{003表示.ドット.入り.eps}
%\includegraphics{004♠♦♥♣.eps}%%% 「♠♦♥♣」はCP932外の文字
%\includegraphics{005鷗.eps}%%% 「鷗」はCP932外の文字
\end{document}


"004♠♦♥♣.eps" や "005鷗.eps" を入れると、エラーになります。
途中、
Error: /undefinedfilename in (./005?.eps)
の文字が見えるので、ghostscriptの前後でUnicodeが通らない部分があるように見えます。

それはさておき、myu myoさんのソースの場合の問題は、私見では、
「grffileと"uptex, uplatex on Windows における command_line_encoding = utf8 による漢字ファイルサポート"」の相性ではなく、
「grffileとuplatex」の相性の問題だと今のところ考えています。

Akira Kakuto への返信

Re: パス名にSHIFT_JISの禁則文字を含む画像の取り込み方

- Akira Kakuto の投稿
> 特殊文字に ^ を prepend するだけでなく,そのうえに
> 各引数を " で囲みます。

おそらく大丈夫だと思いますので,restricted mode では
次回から各引数を " で quote するだけにしたいと思います。
よって,( や ) が入っていることによって,extractbb が
失敗するということは無くなります。