LaTeX

LaTeXを使ったレポート作成のあれこれ①

とりあえず注意書き…

  • 経験がまだまだ浅い人が覚書程度で書きます
  • すでに環境構築が終わっている人向けです
  • 重めのレポートを対象とします
  • 間違っている箇所もあると思うので、見つけたら指摘してください…

プリアンブル

私がレポートを書く際にプリアンブル部に書いているのは以下のもの(正確にはプリアンブルではないはず)

\documentclass[11pt]{jsarticle}

\usepackage[dvipdfmx]{graphicx}
\usepackage[subrefformat=parens]{subcaption}
\usepackage{amsmath}
\usepackage{multirow}
\usepackage{float}
\usepackage{url}

\title{タイトル}
\author{著者}
\date{年月日}

documentclassやtitle関連は割愛。

使用してるpackageについて簡単に解説…

graphicx画像の取り込み
subcaption関連のある複数の図にそれぞれキャプションをつける
amsmathalign環境で数式を書く
multirow表の縦方向連結
float図の強制配置
url参考文献でURLを書く

大雑把にこんな感じ。multirowは正直複雑な表を作ることでもない限り使わないけど、ごくまれに使うことがあるので一応いつも書いている。

sectionごとにファイルを分ける

ページ数が増えてくると、コンパイルに費やす時間が増えて作業効率が低下してしまう。そこで、sectionごとにtexファイルを作成してコンパイル時間を減らすとよい。例えば、\begin{document}~\end{document}の間に以下のように書く。

%main.tex
\begin{document}

\section{セクション1}
\input{section1.tex}

\section{セクション2}
\input{section2.tex}

\section{セクション3}
\input{section3.tex}

\end{document}

各セクションに対応するtexファイルを作成し、inputコマンドで埋め込む。main.texと同じフォルダにsection1.texなどを置いているなら上のように書けばよいし、そうではないなら絶対パスを書けばよい。

コンパイル時間を減らすことが目的であったが、このままでは何も変わらない。では、上のように書いてなぜコンパイル時間短縮につながるかというと、「このセクションは今は書き換えていないからコンパイルしなくていい…」といったときにinputの行をコメントアウトすることで、コンパイルをしなくてすむから。もちろん、出力されるpdfファイルにはコメントアウトしたセクションは表示されないが、すべてのセクションを書き終えた後にコメントアウトした箇所を元に戻してコンパイルすれば効率がいい。

次に、各セクションに対応するtexファイルについて見る。例えば、こんな感じで書く。

%section1.tex
\subsection{サブセクション1}
%ここに本文などを書く

\subsection{サブセクション2}

\subsection{サブセクション3}

注意するのは、main.texのようにプリアンブルを書かないことと、\begin{document}などを書かないこと。書いてしまうとコンパイルエラーになる。

—–2020年4月30日追記—–

公開してすぐにもっといい分割方法を紹介してもらえたので、今更ですが追記しておきます。ちなみにまだ使ったことないです…。

docmuteというパッケージがあるようで、main.texのプリアンブル部に

\usepackage{docmute}

を記述すると、sectionごとに用意したtexファイル(section1.texやsection2.texなど)にプリアンブルを書いてもコンパイルできるとのことです。紹介してもらえたリンクを以下に載せておきます。

https://zrbabbler.hatenablog.com/entry/20150906/1441509908

ところでこれの何が嬉しいかというと、レポート作成時にエディタにmain.tex以外に執筆している子ファイルも開いていると思います。docmuteパッケージを使わない方法でコンパイルする場合、書き換えた子ファイルのコンパイルをするために、わざわざ毎回main.texのウィンドウに切り替えてコンパイルするのは面倒です。docmuteパッケージを使えば、子ファイルにもプリアンブルの記述があるために、ウィンドウを切り替えずともコンパイルが可能となり嬉しくなれます。

フォルダを分ける

1つのフォルダにtexファイル、画像etc…を混ぜこぜで管理すると、includegraphicsコマンドで画像ファイルを取り込む際に絶対パスを書かなくてよいという利点がある。しかし、画像の数が増えたり測定データが増えたりすると管理しにくくなってしまう。そこで、フォルダをいくつか用意(tex関連、画像関連、測定データetc…)すると、ぱっと見たときに分かりやすくてよい。以下のような構造が個人的には良いと思う。

だが、フォルダを分けることでincludegraphicsコマンドなどのファイルを取り込むコマンドを使う場合に絶対パスを書かなければならなくなるというデメリットが発生する。画像の取り込み毎に絶対パスを書くのは面倒であるし、texファイル自体も見にくくなる。そこで、各セクションのtexファイルの先頭に次のコマンドを書くと便利。

\def\path{画像フォルダの絶対パス}

これは\pathと書いた場所に画像フォルダの絶対パスを埋め込むようなものである(文字列の置換)。つまり、画像を取り込むとき

\includegraphics[]{\path ファイル名}

と書けばよい。絶対パスを書く手間がだいぶ減ったと思う。

まとめ

いかがでしたか?

次は参照\refあたりについて書きます。書いたらURL載せるのでお願いしますm(_ _)m

ABOUT ME
POM_AK
ガバガバで動けばヨシ!程度のプログラムを書きます