情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

TeXworks等で「platex: Invalid command-line option」エラーが出た場合の原因と対策

LaTeX (24) TeXworks (2) Windows (248)

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.

事例

コメント(1)

  1. BUI DINH BA
    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 なので、しっかりフォルダを指定することはわかりました。

新しいコメントを投稿




  • カテゴリ ナビ
  • 著者紹介

    ブログが趣味で、 月間1,000万PV を達成しました。

    自分が困ったことをブログに書けば、次に困る人の参考になって、みんながみんな同じ苦労をせずに済む、というのが原点です。

    最近の関心は、スマホやパソコンに詳しくない人の行動や思考、 そしてそんな人を手助けする方法や枠組み。 また、それに関連するような、"身近な"セキュリティ。

    ※SNS(特にTwitter)でシェアされた記事は、内容の追加・更新を行っています。 必ず、ではありませんが、気に入った記事は積極的にシェアしてみてください。

    RSS | Facebook | Twitter | About