LoginSignup
2
0

More than 1 year has passed since last update.

「inputコマンドを利用して.texファイルを分割している文書」をVSCodeのLaTeX Workshopでうまくコンパイル(タイプセット)出来なかったのを解決した。

Posted at

はじめに

論文を書くのに $\LaTeX$ を使いますが、エディタは TeXShop を使っていました。
多少不満があったところ、VSCode + LaTeX Workshop (+ latexmk) が良さそうだと思い乗り換えようとしたんですが、タイトルの通りつまずき、検索してもなかなか対処法が見つからず、試してみた方法が当たりだったのでメモしておきます。

ちなみに VSCode + LaTeX Workshop (+ latexmk) の環境構築自体で主に参考にしたサイトです。
VSCode で最高の LaTeX 環境を作る
VS Code で LaTeX の執筆環境を整える

この記事は環境構築がほぼ出来た後でうまくいっていない人を対象にしています。

先に結論

メイン以外の .tex ファイルをサブディレクトリに入れるようにする。

環境

macOS Big Sur: 11.3.1
Visual Studio Code:1.56.2
LaTeX Workshop:8.18.0

現象

次のようなディレクトリ構造と内容の文書があったとします。
(僕はlatexmkrcをここに置いてますが、ホームディレクトリに置く方法とかもあるので今は無視して大丈夫です。latexmk は内部で uplatex というコマンドを実行する設定にしています。)

test-document/
├─ latexmkrc
├─ main.tex
└─ sub.tex
main.tex
\documentclass[12pt,a4j]{ujreport}

\begin{document}

ここは main.tex です。

\input{sub}

\end{document}
sub.tex
ここは sub.tex です。

この状態で LaTeX Workshop に Build させると、
uplatex main.tex だけでなく
uplatex sub.tex まで実行してしまいます。

sub.texには\begin{document} \end{document}が無いので当然エラーが出て、Build のたびに邪魔くさいです。

対処法

メイン以外の .tex ファイルをサブディレクトリに入れるようにします。

test-document/
├─ latexmkrc
├─ main.tex
└─ input/
   └─ sub.tex
main.tex
\documentclass[12pt,a4j]{ujreport}

\begin{document}

ここは main.tex です。

% ディレクトリ移動に応じて書き換える。
\input{input/sub}

\end{document}
input/sub.tex
ここは sub.tex です。

すると LaTeX Workshop の Build で
uplatex main.tex
のみが実行されるようになり、無駄なエラーが無くなります。

おわりに

この方法に気付くまで数時間掛かってしまいました…
ディレクトリ構造を変えずに済む方法を知ってる方がいたら是非コメントで教えてください。
ちょっとつまずきましたが、VSCode + LaTeX Workshop の環境はかなり快適です。
まだの方はぜひ試してみては。

追伸

\usepackage[draft]{graphicx}
<参考 LaTexの使い方 (中級編)>

とすると画像を枠だけで表示するようになってコンパイルが爆速になります。
文章の編集中におすすめです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0