71

ここで提案されているlatexmkように、ソースが変更されるたびにドキュメントを継続的にコンパイルするための便利な方法です。しかし、多くの場合、ドキュメントで作業していると、エラーが発生し、latexパニックに陥り、ユーザー入力を待ってから続行します。これは非常に煩わしいものになる可能性があります。特に最近、 etherpadlatexドキュメントから直接コンパイルするために何かをハックした場合、入力時に継続的に保存されます。

コンパイルできない場合にエラーメッセージを表示して中止するための設定はありますlatexか?latexmkまたは、必要に応じて、LaTeXの苦情を自動却下するための何らかのExpectスクリプトを設定するにはどうすればよいですか?

(私はpdflatexのオプション-halt-on-errorがうまくいくと思っていましたが、明らかにそうではありません。)

ボーナスの質問:Mac OSXのSkimは、PDFが変更されたときに自動更新する優れたPDFビューアです(プレビューとは異なります)。ただし、ラテックスエラーが発生すると、自動更新が必要であることを再確認できます。Texniscopeにはこの問題はありませんが、他の理由でTexniscopeを捨てなければなりませんでした。Skimを常に自動更新する方法はありますか、それともこれを正しく行う別のビューアがありますか?


latexmk追加:この質問への回答に基づくミニチュートリアル:

  1. latexmkここにアクセス: http : //www.phys.psu.edu/~collins/software/latexmk-jcc/

  2. ~/.latexmkrcファイルに以下を追加します。

    $pdflatex = 'pdflatex -interaction=nonstopmode';
    

    (スキム付きOS Xの場合)

    $pdf_previewer = "open -a /Applications/Skim.app";
    
  3. ソースファイルを編集しているときfoo.texに、ターミナルで次のコマンドを実行します。

    latexmk -pvc -pdf foo.tex
    
  4. Skimまたは別のリアルタイムPDFビューアを使用してfoo.pdfを表示します。Skimの場合は、Skimの設定の[同期]タブを確認して、エディター用に設定します。

出来上がり!保存を押すと、物に触れることなく更新されfoo.texます。foo.pdf

4

4 に答える 4

44

MikTeXにpdflatexは、次のコマンドラインオプションがあります。

  -interaction=MODE               Set the interaction mode; MODE must be one
                                  of: batchmode, nonstopmode, scrollmode,
                                  errorstopmode.

@ 9999yearsによって提案された編集:

これらの値は\commands、同じ機能を提供するLaTeXのセットと同等です。

TeXの使用上のヒントから:

これらのモードにより、TeXは次のように動作します。

  • errorstopmodeソースコードのエラーであろうと存在しないファイルであろうと、すべてのエラーで停止します。

  • scrollmodeソースのエラーで停止しませんが、ファイルの欠落などのより深刻なエラーが発生したときに入力を要求します。

  • やや誤った名前nonstopmodeの場合、TeXは重大なエラーの後に入力を要求しませんが、完全に停止します。

  • batchmodeこれに加えてすべての出力を防止します(自動スクリプトでの使用を目的としています)。いずれの場合も、すべてのエラーはログファイル(yourtexfile.log)に書き込まれます。

于 2009-04-10T20:28:20.553 に答える
7

texファイルの先頭に\nonstopmode置くこともできます。\batchmodeそうすれば、だけでなく、どのTeXバージョンでも動作しますpdflatex。これらおよび関連するコマンドの詳細については、David Bausumによる(生の)TeXコマンドに関する非常に優れたリファレンスを参照してください。特に、デバッグファミリからのコマンドはここで興味深い可能性があります。

于 2011-10-20T13:14:42.143 に答える
4

もう1つの考えられるハックは、単に使用することです。

yes x | latexmk source.tex

'yesx|のエイリアスはいつでも作成できます。このオプションをたくさん使用する場合は、latexmk'。私が他の提案の上に見ることができるこれの主な利点は、latexmkをこのように動作させたい場合に非常に迅速であるということです。

メフメット

于 2010-07-21T11:30:20.147 に答える
0

\batchmode 仕事をするかもしれないコマンドもあります。

于 2010-07-21T11:38:08.667 に答える