我想在演示文稿中使用该mathdesign
包和字体。但是当使用charter
beamer
\usepackage[charter,cal=cmcal]{mathdesign}
我收到以下警告(原文如此!):
Package 'amssymb' shouldn't be used in conjonction with package mdbch
Package 'amsfonts' shouldn't be used in conjonction with package mdbch
我已经发现该beamer
包对此负责,因为它会加载amssymb
和amsfonts
。但它真的需要它们吗?处理这个问题的正确方法是什么,或者我应该忽略警告吗?
答案1
一个简单的 hack 如下
\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}
解释:beamerbasemodes
将条件设置为真,然后beamerbasefonts
加载,检查条件是否为真,如果是,则加载amssymb
。
然而应该noamssymb
也是选项,因为包beamer
中有beamerarticle
。在我看来,不提供它是一个错误。条件的存在是为了使用它,但beamer
没有,只是将它设置为 true。
答案2
我知道,这只是一个技巧,但你可以尝试一下
\expandafter\gdef\csname [email protected]\endcsname{9999/12/31}
\expandafter\gdef\csname [email protected]\endcsname{9999/12/31}
\documentclass{beamer}
\global\expandafter\let\csname [email protected]\endcsname\relax
\global\expandafter\let\csname [email protected]\endcsname\relax
\usepackage[charter,cal=cmcal]{mathdesign}
前两行让 latex 相信已经加载了包。接下来的两行只是防止mathdesign
假设包已经加载。