当使用 beamer 编写幻灯片时,命令\usefonttheme{professionalfonts}
和\usefonttheme[onlymath]{serif}
很有用。
在 中texdoc beamer
,我引用:
...
onlymath
是选择除第一个选项之外的所有上述选项的快捷方式。回想一下,默认情况下,数学公式也是使用无衬线字母排版的。在大多数情况下,如果周围的文本使用无衬线排版,那么这是视觉上最令人愉悦且最易读的排版数学公式的方式。然而,在数学文本中,用于呈现变量的字体有时用于区分该变量的不同含义。在这种情况下,可能需要使用衬线字母排版数学文本。此外,如果您有很多数学文本,如果它的排版方式与人们通常阅读数学文本的方式相同:使用衬线字体,那么观众可能会更快地“解析”它。
但它们的行为有所不同,在排版粗体衬线数学时尤其明显。给出这个 MWE:
\documentclass{beamer}
\usepackage{bm}
% \usefonttheme{professionalfonts}
% \usefonttheme{serif}
% \usefonttheme[onlymath]{serif}
\title{Title}
\author{Author}
\institute{Institute}
\date{\today}
\begin{document}
\begin{frame}
\frametitle{title}
\[
1 + \bm{n} + 2 + n
\]
and\boldmath
\[
1 + n + 2 + n
\]\unboldmath
$1 + \bm{n} + 2 + n$ and \boldmath$1 + n + 2 + n$\unboldmath
\end{frame}
\end{document}
您可以使用 编译它xelatex
,并取消注释三行注释。请注意,我使用了bm
package 和\boldmath
和\unboldmath
命令。
问题:
\usefonttheme{professionalfonts}
它们到底起什么作用\usefonttheme[onlymath]{serif}
?我该如何更正确地使用它们?- 我应该先使用
\boldmath
然后使用\unboldmath
吗?使用bm
包和\bm
命令总是最好的选择吗?
我问这个问题是因为我想定义一个可以同时改变字体粗细和字体颜色的命令,就像(使用xparse
和xcolor
)
我怎样才能用更好的方法实现这一目标?\NewDocumentCommand{\textboldcolor}{o m}{% \IfNoValueTF{#1}{% \ifmmode% {\bm{{#2}}}% \else% {\bfseries{}\boldmath{}#2\unboldmath{}}% \fi% }{% \ifmmode% \textcolor{#1}{\bm{{#2}}}% \else% \textcolor{#1}{\bfseries{}\boldmath{}#2\unboldmath{}}% \fi% }% }
- 为什么这些示例选择了不同的字体? 编译
{serif}
和时[onlymath]{serif}
,输出以下警告:
为什么会发生这种情况?在 中LaTeX Font Warning: Font shape `TU/lmr/b/it' in size <10.95> not available (Font) Font shape `TU/lmr/b/sl' tried instead on input line 26. LaTeX Font Warning: Font shape `TU/lmr/b/it' in size <8> not available (Font) Font shape `TU/lmr/b/sl' tried instead on input line 26. LaTeX Font Warning: Font shape `TU/lmr/b/it' in size <6> not available (Font) Font shape `TU/lmr/b/sl' tried instead on input line 26.
{professionalfonts}
使用了 CMMIB10,但在 中{serif}
使用了 LMRoman***。为什么?
答案1
回答你的第一个问题:
Beamer 通常使用无衬线字体。由于无衬线数学字体并不多(在编写 Beamer 时可能更少),Beamer 使用一种技巧使其数学与无衬线文本相匹配:它不使用数学字体中的字符,而是使用斜体文本字体中的字母等。
将这些替换完全关闭即可
\usefonttheme{professionalfonts}
。例如,如果您使用带有专用数学字体的字体包,这将非常有用。如果
\usefonttheme[onlymath]{serif}
你没有完全关闭替换功能,一些字符将被替换为斜体衬线字体的字符