57

I want to draw some coloured circles, so I loaded tikz in my preamble. However, now xcolor is telling me that it has an "option clash". How should I fix this?

\documentclass{article}
\usepackage{tikz}
\usepackage[table]{xcolor}

\begin{document}
Hello world.
\end{document}

The error message is this:

! LaTeX Error: Option clash for package xcolor.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.4 

The package xcolor has already been loaded with options:
  []
There has now been an attempt to load it with options
  [table]
Adding the global options:
  ,table
to your \documentclass declaration may fix this.
Try typing  <return>  to proceed.
doncherry
  • 54,637
Ariel
  • 1,569
  • 1
  • 12
  • 27

2 Answers2

81

Load xcolor before tikz:

\usepackage[table]{xcolor}
\usepackage{tikz}

The problem is that pgf/tikz already loads xcolor so loading it again with a new package option triggers the error message.

Another option is to pass the table option to the class and not to the xcolor package. Then the packages can be loaded in any order:

\documentclass[table]{article}
\usepackage{xcolor}
\usepackage{tikz}

or

\documentclass[table]{article}
\usepackage{tikz}
\usepackage{xcolor}
doncherry
  • 54,637
Gonzalo Medina
  • 505,128
  • 3
    @Gonzalo-Medina Can any options for any package be passed to the document class? – Ariel Apr 11 '12 at 01:35
  • 2
    @Ariel: no, not every option for every package can be passed as a class option; it depends on how the option was declared in the package. – Gonzalo Medina Apr 11 '12 at 01:46
  • 6
    @GonzaloMedina Every option passed to the class is "global", so that it's tried with every loaded package. If the package knows it, it's applied; otherwise it's ignored. A package doesn't distinguish between global and local options (those which are passed in \usepackage). However, it's not a good idea to indiscriminately pass package options as global options. In this case it may be a good solution. – egreg Apr 11 '12 at 06:40
  • 1
    @egreg: yes, I know that; my comment was addressing cases like \documentclass[T1]{report} \usepackage{fontenc} in which the option will be ignored. – Gonzalo Medina Apr 11 '12 at 16:19
28

Add \PassOptionsToPackage{table}{xcolor} before \documentclass[10pt]{article} and remove the line \usepackage[table]{xcolor}.