vs codeの拡張機能LaTeX Workshop でビルドができない

Re: vs codeの拡張機能LaTeX Workshop でビルドができない

- 和田 勇 の投稿
返信数: 0

Table of Contents

  1. .log ファイルが 4096 バイトバウンダリーかチェックする方法
  2. 「root ファイル」という用語
  3. 「小さな文字を表示…」の警告メッセージはどこに書かれている
  4. diffファイルを動かすアプリをインストールする必要あるか?
  5. 不要な空白の除去
  6. 「コマンドラインで実行し最初のエラーで止めて云々」
  7. TeXworks vs vscode
    1. vscode の方が個人的には良いと思っている点
    2. vscode の他にも魅力的なメニュー項目が多数あり,それらを理解するための資料がないのが残念

.log ファイルが 4096 バイトバウンダリーかチェックする方法

  • vscode は .tex ファイルだけでなく様々なテキストファイルを開くことができますので、 「ファイル」→「開く」や「エクスプローラ(vscode の)」で開いて、ファイル末まで移動し 最終行が途中で終わっているかいなかでチェックする。

    通常処理が行われれば、最後の数行のブロックには、 「Here is how much …」で始まる処理に要したリソース状況など表示されています。

  • dir などのコマンドでファイルのサイズを調べ 4096 で割り切れるかいなかで判断

「root ファイル」という用語

間違ってるかもしれませんが、「LaTeX ワークショップメッセージを表示」で 表示される LaTeX Workshop のメッセージのなかに時々利用されている用語で す。私は、これを 「documentclass」が記述されているファイル、すなわち、 これから処理する根幹(root) となるファイルだと理解しています。

「小さな文字を表示…」の警告メッセージはどこに書かれている

基本的には、.log ファイルを拠り所にします。 残念ながら該当のファイルの行数は即座にはわからないと思います。

latex は、イメージを作成する際、.log ファイルに エラーや警告メッセージ、読み込んだファイル名などの他に、 「[123]」のようなページ番号情報も以下のように記録します。

1176:[44]
... snip ..
1189:LaTeX Font Warning: Font shape `OT1/cmr/m/n' in size <3.5> not available
... snip ..
1228:[45<./image/move-to-upperface-crop.pdf>]

上記は、.log ファイルを vscode で開き、虫眼鏡アイコンで「検索」に 「Font Warning」で検索した一部をクリックしたものと同等のものです。

この情報から「44ページ目」での警告メッセージは、「45ページ目」と して読み込まれる 「move-to-upperface-crop.pdf」を手がかりに 該当箇所を探す必要があります。

なので all_content_translated_03_work.tex で「move-to-upperface-crop.pdf」 を取り込んでいるちょっと前が探索範囲になります。

なお、この情報は、「問題」のところにも表示はされるのですが、リンク先は 補助ファイルの方に飛んでいるので、上記のような面倒な作業が必要です。

とはいえ、この種の処理はほぼ似た記述が起因するものなので、一つ、二つ処理すれば 大体検討はつくと思います。

diffファイルを動かすアプリをインストールする必要あるか?

なくても良いですが、あると便利です。 今から入れるなら、git を入れれば付随すると考えて良いでしょう。

vscode は git 対応しているので、修正した内容も事前に確認できます。

難点は、修正した内容を都度都度コミットしなければならないことですが、 慣れれば、「試し修正して、NG だったら元に戻す」というような 作業もできるようになります。

git を導入するインストーラはいくつかあります。「git on bash(確かこんな 名称だった気がする)」もありますが、私は Windows のパッケージ管理に scoop を利用しています。これはこのツール自体が git を利用しているので もれなく git が入ります。

本来の diff を入れたければ scoop で確か diff-utils とかで入れることも できたと思いますが、git 管理という手間はありますが、git diff の方がカ ラフルで便利かと思います。

不要な空白の除去

私は、emacs を通常使っていて、ファイルの先頭や最後の空行、行末の空白を 保存時に削除するようにカスタマイズしています。

類似の機能は 「VS Codeで行末やファイル末尾の空白文字を削除するには」 にあるようなので参考にしてください。

「コマンドラインで実行し最初のエラーで止めて云々」

簡単に行うには、エラーになるように例えば「\ref{...}」を「\TOBEERROR{...}」 と書き変えて 「lualatex all_content_translated_03_work」とコマンド プロンプトか vscode のターミナルで実行してみてください。

「エラーだけどどうするの?」のようなメッセージで止まります。

表示された内容から、該当のファイル名や行番号を読み取ります。

記述エラーであることがわかったら「x」を入力すれば latex の処理は終了します。

ポイントは、行番号はあくまで目安。エラーはその直前の記述にあるので、 数行前までチェックする必要があります。

この時、git 環境にしておけば、vscode 変更内容等が把握しやすくなると思います。 もちろん、ターミナル等で git diff だけでも記述ミスは見つかると思います。

TeXworks vs vscode

TeXworks もカスタマイズできるらしいけど、本格的に使うことはないのでその知見なし状態です。

vscode の方が個人的には良いと思っている点

  • TeXworks は latex のみだと思うけど vscode では perl/python/ruby/shell などのスクリプトをはじめとするいわゆるテキストファイル全般を扱える
  • 検索の機能
  • git に対応してる
  • ブロックの折りたたみ機能
  • 「構造」で section とかのブロックを管理しやすい

vscode の他にも魅力的なメニュー項目が多数あり,それらを理解するための資料がないのが残念

vscode も私のメインエディタではないのであまりお役に立ちそうな情報はありませんが …

  • 気になるアイコンの上にマウスをしばらく放置しておけば、ヒントが出ます
  • インターネット検索

どんなアプリも最初はとっつきにくい物です。 習うより慣れろだと思います。