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

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

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

LaTeX (24) TeXworks (2) Windows (498)

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

新しいコメントを投稿




  • カテゴリー
  • 著者紹介

    ブログが趣味で、スマホアプリの利用中に発生するトラブルや不具合の対策手順や障害情報、 設定の変更方法などについて、解説記事をよく書いています。

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

    最近の関心は、スマホやパソコンが苦手な人の行動や思考、そしてそんな人を手助けする方法です。

    Amazonのアソシエイトとして、did2は適格販売により収入を得ています。

    RSS | Facebook | Twitter | About