理系のおともの備忘録

理系(がよく使いそうな)のおとも(PCまわり)の備忘録ブログ

【LaTeX】PDF出力が遅すぎる!サクサクにする方法3選

ぶりぶーです。
LaTeXをPDFに出力する際、ビルドがものすごく遅く感じたことはありませんか?
特に論文など、重い文書を執筆する際に待たされることがあるかと思います。

今回は、もっと快適に出力できるような方法を紹介します!

想定環境

  • Windows11
  • VS Code 1.83.1
  • LaTeX Workshop v9.14.1
  • TeX Live 2023

問題点

LaTeXのPDF出力が重い、遅いのは非常に困ります。
ちょっと変更して確かめたいだけなのに、やっと出力できたと思ったらエラーだし...小さなストレスが重なると、大きなストレスになってしまいますね。
また、特にLuaLaTeXなどは仕組み上、遅いと言われています(今回紹介する方法はいずれも、どの種類のLaTeXにも有効です)。

そこで、少しでも改善するためにできることをご紹介します。

解決方法

① 1回のみのビルドにする

意図的か否かに関わらず、ビルドを1回しただけなのに何度か連続して実行されることはありませんか?
少し変更しただけで毎回2回とか、5回とかビルドされるのは、非効率な気もします。
もしそのように思うのであれば、ビルドの実行回数を見直してみるのはいかがでしょうか。

VS Codeでの手順を紹介しますが、他の場合でも同様の方法で変更できると思います。
以下、ビルドコマンドで複数回自動的にビルドが実行されてちゃんとした文書ができることを前提とします。

  1. VS Codeの設定を開く(「Ctrl」+「,」)
  2. JSONファイルを開く
  3. "latex-workshop.latex.recipes"を見つけて、次のように"tools"の値(下の例では"lualatex")が2つ以上あることを確認する
    nametoolの値の名前は下の見本と異なっていて問題ありません!)
    "latex-workshop.latex.recipes": [
    {
    "name": "LuaLaTex_bulid",
    "tools": [
    "lualatex",
    "lualatex" // 同じコマンドが複数ある
    ]
    },
    // 他の記述があるかも
    ],
  4. 元のコードを編集しないように注意しながら、次のように追記する
    "latex-workshop.latex.recipes": [
    {
    "name": "LuaLaTex_bulid", // 元のまま
    "tools": [ // 元のまま
    "lualatex", // 元のまま
    "lualatex" // 元のまま
    ] // 元のまま
    }, // 元のまま,コンマ「,」を忘れずに
    {
    "name": "LuaLaTex_1",
    "tools": [
    "lualatex", // ココを1つのみにする
    ]
    }, // コンマ「,」を忘れずに
    // 他の記述はそのまま残す
    ],

これでビルドの際にLuaLaTeX_1を選択すると、1回のみ実行されて実質のビルド処理時間が短縮されるはずです!

この方法だと、参考文献や図番号などが反映されないことがあります。
必ず最終版を出力する際には元の完全版のビルド(今回の例の場合はLuaLaTex_bulid)を選択するようにしてください!

また、

  • 「設定」のJSONファイルの開き方がわからない
  • ショートカットキーでビルドしたい

といった場合は、この記事で解説しています!

briboo-pc.hatenablog.jp

② 画像を仮の姿にする

コンパイルで重くなる大きな原因に、画像ファイルが重すぎることが挙げられます。
通常の文字よりも、画像は一般に大きな情報量を持ちます。

そこで、画像を文書内に置いて、しかし画像の中身を表示しない方法があります!
つまり、画像自体ではなく、挿入した画像の場所、枠のみが表示されることでビルド時の負担を減らして速度を上げることができます。
(画像のパスを枠内に文字で表示してくれるので、何の画像かはわかります。)

やり方はシンプル!
プリアンブル((texファイル中の\begin{dovument}よりも上の領域))に、編集中のtexファイルの場合は次のような記述があるはずです(これからtexファイルを作るという場合は追加してください)。

\usepackage{graphicx}

あるいは、[]の中に何かが入っているかもしれません。

\usepackage[hogehoge]{graphicx}

これを次のように書き換えるだけです。

\usepackage[draft]{graphicx}

あるいは、

\usepackage[hogehoge, draft]{graphicx}

これで画像を挿入し、ビルドしてみてください!
特に画像を大量に使うファイルだとかなり軽快になるはずです。

ちょこっと解説

graphicxパッケージを使うよ、というコマンドにdraftというオプションを加えました。
つまり下書きです。
画像を表示しない、けど画像を入れた際の配置を見たいときに使うオプションです。

完成版のPDFを出力する際や、画像をPDFで確認したい際には、[draft]の部分のみを削除して、画像が表示されるように元に戻すのをお忘れなく。

③ epsファイルを使わない

やはり画像関連です。
挿入している画像はepsファイルではありませんか?
これはepsファイルからPDFに組み込む際に画像に変換する処理が発生するため処理時間が長くなるようです。

そのため、画像はPDFやPNG、JPEGを使いましょう!
もしどうしても元画像がepsファイルしかない場合は、簡易的にはスクリーンショットでPNGなどに保存する方法が楽かと思います。

ぜひご検討を!

まとめ

いかがでしたでしょうか。
今回は、LaTeXのビルドが遅い問題をどうにかする案を3つご紹介しました。

  • ビルドの回数を1回にする
  • 画像の中身を表示しない
  • 画像にepsファイルを使わない

ただ、最後に完成版を作成する際にはビルド方法を変えたり、usepackageのオプションを削除することを忘れないようにしてください。

小さなストレスが、少しでも改善できたら幸いです!
それではまた。

© BriBoo 2023 All rights reserved.