0

I am writing my first very long document (thesis) and decided to try to keep things super organized to avoid future headaches. One thing I decided to do is to categorize the things in my preamble, then alphabetize them. (This is super helpfull when defining a lot of new commands, when you forget what you did.)

Anyway, trouble arose when I tried to alphabetize the packages.

First, here is the error message I got:

l.506 ...d{\iint}{\DOTSI\protect
\MultiIntegral{2}}

I undid my alphebatization, then experimented until I found that this error would be produced every time the package

mathabx

was placed below the package

mathtools

As long as they were the other way around, it was fine.

It may be relevant that I put all the packages in a single list, and it may be relevent what other packages I am using, so here is the list from my preamble.

\usepackage{
    amssymb,
    amsthm,
    amssymb,
    amsthm,
    array,
    enumitem,
    epigraph,
    epstopdf,
    graphicx,
    latexsym,
    mathrsfs,
    mathtools,
    mathabx,
    multirow,
    multicol,
    setspace,
    showlabels,
    stmaryrd,
    tikz,
    titlesec,
    varioref}

Something else interesting that happened, is that when I reordered the packages and put them like this, I no longer got an AUX error every time I tried to typeset after fixing an error, which had been happening for months.

RE: duplicate query. The packages I mentioned that cause this problem are not mentioned in the linked question, or in the article linked in the answer to the question.

j0equ1nn
  • 763
  • It depends on the packages you're taking into consideration. Most of the times, there is no interference. It depends which is defining what and when that definition interferes with another definition. Even the class can change what packages you use or shouldn't use. – Alenanno Jan 22 '16 at 18:37
  • As soon as a package makes important redefinitions of other commands provided by a package the order matters. There's no general rule -- it's just necessary to know what a package does. By the way \usepackage{foo,foobar,...} is possible but not recommended –  Jan 22 '16 at 18:37
  • Load order is important, but depends on the package(s) that you load. See, for example, Which packages should be loaded after hyperref instead of before? – Werner Jan 22 '16 at 18:38
  • it is impossible to say in general. If two packages both define \zzz then clearly at least one definition will be lost and you may or may not get an error, depending on how the definitions are made, there similarly can not be a general answer of which order to use: it depends which version of \zzz you want. – David Carlisle Jan 22 '16 at 18:39
  • not directed at the intent of the question, but if any package names are duplicated (as amssymb and amsthm are here), get rid of the duplicates. more relevant: i'd group all packages specifying fonts or symbols; you list several. more generally, grouping packages that address the same sort of topic is really more logical, in the long run, than an alphabetical list. for example, varioref and showlabels both deal with identifying cross references. – barbara beeton Jan 22 '16 at 18:56

0 Answers0