読者です 読者をやめる 読者になる 読者になる

粗大メモ置き場

個人用,たまーに来訪者を意識する雑記メモ

【卒論・修論】 分割Texファイルを単体でもコンパイルできるようにする(docmuteパッケージ)

メモ メモ-tex

みなさん卒論・修論書いてますか?
私はね,こないだフォルダを作りました。今回はファイル分割の話を少しします。

2016/12/27追記:\includeがうまく機能しない?→\inputを使う。

大規模な文ではソースを分割すべき

卒論修論になると数十から百ページ超の長い文章を書くことになるかと思われます。
こういう場合は複数のtexソースに分けてコンパイルするのがおすすめです。

普通のやり方ではmasterのtexファイルをコンパイルしてincludeされている分割ソースをそれぞれコンパイルしていきます。
ただ,これだと一つの章を作った場合にどのようになるのか確認することができません。

docmute パッケージを使う。

以下の記事を参考にしました。
d.hatena.ne.jp


masterファイルのプリアンブルに

\usepackage{docmute}

と書くことで,\documentclass~で始まる文書の外側を無視してくれます。
従って単体でもコンパイルできるように書きつつ,masterからのincludeを阻害しないようにすることができます。

docmute.styの導入

styファイルは以下のURLで取得できます。
ftp://ftp.u-aizu.ac.jp/pub/tex/CTAN/macros/latex/contrib/docmute/docmute.sty

これをディレクトリのpathのある所に置くか,以下の記事を参考に置けば完了です。
styファイルを置く場所・置いた後にすること - 粗大メモ置き場

実用的にはプリアンブルも\includeしてしまう

分割ソースも単体でコンパイルできるようにするには使用するパッケージやマクロなどの宣言をいちいち書き込む必要があります。
これではせっかく項目ごとに分けたのに非常に見づらくなってしまいます,
そこでプリアンブルは 「 preamble.tex 」などのソースにまとめてしまい,以下のように簡略化するのが良さそうです。

12/27訂正:\includeから\inputに変更。
両者のコマンドは改行するしない程度の違いがないはずですが,プリアンブルの挿入では\inputの方が良いようです。

\documentclass[fleqn]{jreport}
\input{preamble}

\begin{document}

本文

\end{document}

とりあえずこれで書き始めてみますか。

実際にぶち当たったバグ

・preamble.texにもろもろのパッケージなどを記述したはずなのに読んでくれるときと読んでくれない時があります。
・masterファイルがTexStudioによって開かれてるか否かで挙動が変わることもあります。謎。
・プリアンブルはinputの方が安定するというかincludeだとどうもうまく行かないようです。参考までに