パッケージの衝突

! LaTeX Error: Option clash for package X は、同じパッケージが 異なるオプションで 2 回読み込まれた という意味です。たいていは、あなたの \usepackage より前に、別のものが(あなたのオプション無しで)すでに X を読み込んでいたため。パッケージは 1 度しか読み込めません

なぜ起きるか

パッケージは 1 回しか読み込まれません。だから \usepackage[opt]{X} が、X がすでに(クラスや別のパッケージ、または別オプションの早い \usepackage{X} によって)読み込まれた に来ると、オプションが食い違って「Option clash」になります。典型例:あるパッケージが xcolor をオプション無しで引き込んだあとに、あなたが \usepackage[table]{xcolor} と書く、というパターンです。

対処

  • \PassOptionsToPackage{opt}{X} を、X が読み込まれる (プリアンブル冒頭、または X を引き込むパッケージより前)に書く——最初の読み込み時にオプションが効く。
  • 同じパッケージは 1 回の \usepackage にまとめ、自動で読み込まれるより 早く 読む。
  • 読込順を整理する:オプション付きで読みたいパッケージを、それを引き込むものより先に。
latex
% X が読まれる前に(プリアンブル冒頭)/ before X loads, at the very top
\PassOptionsToPackage{table}{xcolor}
\documentclass{article}
% 以降どこかで \usepackage{xcolor} されても table が効く
% (table applies even if something else loads xcolor later)

その他の衝突

オプションの衝突以外にも、同じものを再定義する非互換なパッケージ どうしの衝突があります。たとえば hyperref は多くのパッケージと干渉しやすく、できるだけ最後に近い位置で読み込む のが定石です。各パッケージの README やログのヒントに従い、読込順や互換オプションで調整しましょう。