スポンサーリンク
TeXworksを使用した時に「platex: Invalid command-line option」「platex: Data: unknown option」というエラーが表示されてpdfが作れない場合の原因と対処法について書いておきます。
目次
スポンサーリンク
TeXworksのインストール方法
今回は「簡単LaTeXインストールWindows編(2014年7月版)」でインストールしたTeXworksを想定していますが、別にこのインストール方法に限定するわけではありません。また、TeXworksユーザーでなくとも、platexコマンドを使う人であれば、関係します。
エラーの内容
TeXworksで「pdfpLaTeX」に設定した再生ボタンをクリックしたとき、
platex: Invalid command-line option
platex: Data: unknown option
が表示され、PDFの作成に失敗してしまします。
再生ボタンの実行内容
初期設定では、TeXworksで再生ボタンを押したとき、「C:\w32tex\bin\pdfplatex.bat」が実行されます。その中身では「platex -synctex=1 -jobname="%~n1" -kanji=utf8 -guess-input-enc %1 && dvipdfmx "%~n1"」が実行されており、今回のエラーは、このコマンドの前半の「platex -synctex=1 -jobname="%~n1" -kanji=utf8 -guess-input-enc %1」が表示したものだとわかります。
platex.exeもバージョンや種類によって使用できないオプションがある
このplatex(platex.exe)ですが、同じ名前であっても、ものによっては、「synctex」や「guess-input-enc」が実行できません。
参考までに、手元の環境では、使用されるplatexは「C:\w32tex\bin\platex.exe(where platexで確認)」にある、次のバージョンのものでした(platex --versionで確認)。
e-pTeX 3.1415926-p3.4-130605-2.6 (sjis) (TeX Live 2013/W32TeX)
kpathsea version 6.1.1
ptexenc version 1.3.1
Copyright 2013 D.E. Knuth.
There is NO warranty. Redistribution of this software is
covered by the terms of both the e-pTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the e-pTeX source.
Primary author of e-pTeX: Peter Breitenlohner.
原因:別のplatexがインストールされたまま
つまり、今回のエラーの原因は、TeXworksが想定したplatexではないplatexが実行されたからと考えられます。
どうしてそんなことが起こるのか、といえば、TeXworks環境をインストールする前に、別のLaTeX環境をインストールし、それをアンインストールしていなかったという場合です。
確かめる
それが本当か、「where platex」をコマンドプロンプトで実行してみてください。
これで、「platex」コマンドを実行した時に実行される「platex.exe」がどこに存在するかが表示されます。
例えば、実際にあった事例では、次のように表示されます。
C:\Program Files (x86)\MiKTeX 2.9\miktex\bin\platex.exe
C:\w32tex\bin\platex.exe
これは、platex.exeが2つ見つかっており(環境変数Pathで指定された場所で見つかったということ)、優先度が高いほうが1行目の「C:\Program Files (x86)\MiKTeX 2.9\miktex\bin\platex.exe」で、こちらが実行され、一応発見される2行目の「C:\w32tex\bin\platex.exe」もあるが、こちらは実行されない、ということを意味します。
つまり、TeXworksが想定しているplatexは、後者のほうですから、TeXworksが想定していないMiKTeXのplatexが実行されてしまい、オプションの一部がエラーを引き起こしてしまった、ということになります。
対処法
対処法としては、環境変数を編集して、優先度を入れ替える方法が考えられますが、やはり正攻法はTeXworksをインストールする前にインストールしていた別のLaTeX環境をアンインストールすることです。
つまり、先ほどの事例では、MiKTeX(Lyx)一式をアンインストールすることで、platex.exeの衝突が回避され、TeXworksが想定しているplatexが実行され、問題が解決します。
参考:dvipdfmxの場合
platex.exeの問題のみを解決した場合、platexではエラーが発生せず、dvipdfmxのほうでエラーが発生する場合があります。
先の事例では、次のエラーになりました。
...
Output written on test.dvi (1 page, 348 bytes).
SyncTeX written on test.synctex.gz.
Transcript written on test.log.
(guessed encoding: Shift_JIS = sjis)(guessed encoding: ISO-2022-JP = jis)test.dvi -> test.pdf
[1 **ERROR ** Unable to find TFM file "min10".
Output file removed.
事例
スポンサーリンク
2015年10月7日(水) 18:18
ありがとうございます。
私はlivetex, w32tex, miktex もう使うし、またwin64 なのでこのようにしました。
steep 1 w32tex:
C:\w32tex\pdfplatex.bat をつくって
@echo off
platex -synctex=1 -jobname=”%~n1″ -kanji=utf8 -guess-input-enc %1 && dvipdfmx “%~n1″
は
@echo off
C:\w32tex\bin64\platex.exe -synctex=1 -jobname=”%~n1” -kanji=utf8 -guess-input-enc %1 && C:\w32tex\bin64\dvipdfmx “%~n1”
変えて無事に成功しました。
steep1 w32tex:
TeXworks 「編集」→「設定」「タイプセット」に
名前:pdfpLateXBa
プログラム:C:\w32tex\pdfplatex.bat
引数:$fullname
再度実施して、日本語がうまく表示した。
window64 bit なので、しっかりフォルダを指定することはわかりました。