かすみん日記

暇なときに何か喋ります

【LaTeX】同じstyを複数 \usepackage する

\usepackage コマンドで同じパッケージを何度も読み込むと、2回目以降の重複する \usepackage は自動でパスされる。

じゃあ別に何回 \usepackage 書いてても大丈夫なのかというと、パッケージにoptionを渡すときは気をつけなければならない。

例えば、次のようなとき。

タイプセットが通る例:

% platex -> dvipdfmx
\documentclass{jsarticle}

% \usepackage{graphicx}
\usepackage[dvipdfmx]{graphicx} % これだけ読み込まれる
\usepackage[dvipdfmx]{graphicx}
\usepackage{graphicx}
\usepackage{graphicx}

\begin{document}
  \includegraphics{image.pdf}
\end{document}

タイプセットが通らない例:

% platex -> dvipdfmx
\documentclass{jsarticle}

\usepackage{graphicx} % これだけ読み込まれる
\usepackage[dvipdfmx]{graphicx}
\usepackage[dvipdfmx]{graphicx}
\usepackage{graphicx}
\usepackage{graphicx}

\begin{document}
  \includegraphics{image.pdf}
\end{document}

2つ目の例では、 graphicx にドライバが指定されていないので、エラーが出る。

感想

重複して読み込んでたら、どんどん上書きされていくと思ってたけど、2つ目以降はパスされるんだな。

パスされるなら無駄な読み込みをする時間もかからないし、別に重複して書いてても良さそう。 (複数人のtex文書まとめるときとか、それぞれのプリアンブルをただコピペしてくるだけでいい。)

もちろん、optionには注意しなければならないが。

参考

tex.stackexchange.com