# ntheorem and mathdesign are incompatible

I want to use mathdesign fonts (namely bitstream-charter) and I also want to use the ntheorem package. However, it looks like ntheorem tries to load amssymb which is incompatible with mathdesign (it redefines all the relevant symbols itself). How can I fix this?

Here is a MWE, although the order doesn't matter, it breaks both ways round. It also breaks with the thmmarks option instead of amsmath option

\documentclass{article}
\usepackage[amsmath]{ntheorem}
\usepackage[bitstream-charter]{mathdesign}
\begin{document}
Foo
\end{document}

-
Perhaps a matter of the load sequence. A minimal example might be helpful. – Thorsten Donig Jan 16 '11 at 13:43
No, ntheorem doesn't try to load amssymb at all. – Leo Liu Jan 16 '11 at 17:14

\documentclass{article}
\usepackage{amsmath}
\usepackage[amsmath]{ntheorem}
\usepackage[bitstream-charter]{mathdesign}
\begin{document}
Foo
\end{document}


I think.

-
Now, why does this work, when the error I was getting before was the mathdesign warning that it was incompatible with amssymb? – Seamus Jan 17 '11 at 10:53
ntheorem is really compatible with amssymb, while mathdesign isn't. The [amsmath] option makes ntheorem to be compatiible with amsmath, but does not load amsmath --- this is the problem here. – Leo Liu Jan 17 '11 at 11:12
I'm still getting these errors in my main document: Package mathdesign/mdbch Warning: Package 'amssymb' shouldn't be used in conjonction with package mdbch, on input line 138. Package mathdesign/mdbch Warning: Package 'amsfonts' shouldn't be used in conjonction with package mdbch, on input line 138. – Seamus Jan 17 '11 at 11:40
The test code in answer works fine for me. Maybe you should check your other code or update the latest packages. – Leo Liu Jan 17 '11 at 14:06
An additional explanation: Do not use amssymb or amsfonts in your document, if you have already use mathdesign. Maybe ntheorem does not concern the problem here. – Leo Liu Jan 18 '11 at 5:47

Saying \expandafter\def\csname ver@amssymb.sty\endcsname{9999/12/31 prevent loading} should trick LaTeX into believing there's an infinitely new version of amssymb already loaded, hence preventing any \usepackage{amssymb} from having any effect (beyond possibly parameter clashes).

-