I would like to use the mathdesign package and the charter font in my beamer presentation. But when using

\usepackage[charter,cal=cmcal]{mathdesign}


I get the following warnings (sic!):

Package 'amssymb' shouldn't be used in conjonction with package mdbch
Package 'amsfonts' shouldn't be used in conjonction with package mdbch


I already found out that the beamer package is responsible for this since it loads amssymb and amsfonts. But does it really need them? What is the correct way to handle this or should I just ignore the warnings?

-
without specific experience, i'd guess that it's not a good idea to ignore these particular warnings. i suggest getting in touch with the author of beamer and request an option to omit loading these files. actually, it's only necessary to omit loading amssymb, since that's what loads amsfonts. –  barbara beeton Oct 12 '12 at 13:47
A year on, would you say you can safely ignore the warnings, or is it really necessary to use the hack below? –  nemarona Nov 10 '13 at 23:12

A simple hack is as follows

\RequirePackage{scrlfile}
\makeatletter
\AfterPackage{beamerbasemodes}{\beamer@amssymbfalse}
\makeatother
\documentclass{beamer}
\usefonttheme{professionalfonts}

\usepackage[charter,cal=cmcal]{mathdesign}
\renewcommand{\sfdefault}{\rmdefault}

\begin{document}
\begin{frame}
What will the font be? $\twoheadrightarrow$

\end{frame}
\end{document}


Explanation: beamerbasemodes sets the conditional to true and afterwards beamerbasefonts is loaded, which checks whether the conditional is true and, if so, it loads amssymb.

However there should be a noamssymb option also for beamer as there is for the beamerarticle package. Not providing it is an error, in my opinion. The existence of the conditional is meant for using it, but beamer doesn't and simply sets it to true.

-

I know, it is just a hack, but you could try

\expandafter\gdef\csname ver@amssymb.sty\endcsname{9999/12/31}
\expandafter\gdef\csname ver@amsfonts.sty\endcsname{9999/12/31}

\documentclass{beamer}

\global\expandafter\let\csname ver@amssymb.sty\endcsname\relax
\global\expandafter\let\csname ver@amsfonts.sty\endcsname\relax

\usepackage[charter,cal=cmcal]{mathdesign}


The first two lines make latex believe in having loaded the packages already. The next two lines just prevent mathdesign from assuming that the packages have been loaded.

-