数学模式下的不同字体系列

数学模式下的不同字体系列

我会在数学模式下使用两种不同的字体。我个人的目标是达到下图所示的结果(我从一个意大利网站上截取的)。在这张图片中,使用的是 computer modern sans serif(在数学模式下,仅在“Definizione”和“Esempi”环境中),而不是文本字体,即 serif computer modern。

sans 仅用于“definizione”和“esempi”环境

因此,我将创建一个新环境,例如“示例”,其中使用计算机现代无衬线字体(在数学和文本模式下)。PS 我已经知道如何使用更改文本和数学模式下的主字体

\DeclareSymbolFont

等等,但我不知道如何将两种不同的字体系列一起使用。

你能帮助我吗?

谢谢。

答案1

LaTeX 有一个数学版本的概念,请参阅fntguide.pdf

通常,仅提供两个数学版本,分别是normalbold。但是,您可以使用 设置一个新的版本\DeclareMathVersion。然后,使用 引入新的符号字体\DeclareSymbolFont,并通过 将其设置为使用,\SetSymbolFont其第二个参数指定数学版本。类似的命令对数学字母表执行相同的操作。然后,您可以使用 命令\mathversion切换到新版本。

请注意,它最初会继承当前的默认字体,因此您只需指定需要更改的字体。

下面的示例借用了一些代码来mathpazo.sty更改中的几种字体\mathversion{mymath},然后设置了一个包含数学版本开关的示例环境。

示例输出

\documentclass{article}

\DeclareMathVersion{mymath}
\DeclareSymbolFont{myletters}{OML}{zplm}{m}{it}
\SetSymbolFont{letters}{mymath}{OML}{zplm}{m}{it}
\DeclareSymbolFont{myoperators}{OT1}{pplx}{m}{n}
\SetSymbolFont{operators}{mymath}{OT1}{pplx}{m}{n}

\newenvironment{Exx}{\mathversion{mymath}\bigbreak\noindent\textbf{Example}\par}{\par\noindent\textit{End Example}\par\bigbreak}

\begin{document}

Test \( x + y = \int_0^3 f(t)\,dt \).

\begin{Exx}
  Test \( x + y = \int_0^3 f(t)\,dt \).
\end{Exx}

Test \( x + y = \int_0^3 f(t)\,dt \).

\end{document}

类似地,可以提供具有无衬线字体的版本:

示例输出

\documentclass{article}

\DeclareMathVersion{sfmath}
\DeclareSymbolFont{sfletters}{OT1}{cmss}{m}{sl}
\SetSymbolFont{letters}{sfmath}{OT1}{cmss}{m}{sl}
\DeclareSymbolFont{sfoperators}{OT1}{cmss}{m}{n}
\SetSymbolFont{operators}{sfmath}{OT1}{cmss}{m}{n}
\SetMathAlphabet\mathit{sfmath}{OT1}{cmss}{m}{sl}
\SetMathAlphabet\mathrm{sfmath}{OT1}{cmss}{m}{n}

\newenvironment{Exx}{\sffamily\mathversion{sfmath}\bigbreak\noindent\textbf{Example}\par}{\par\noindent\textsl{End Example}\par\bigbreak}

\begin{document}

Test \( x + y = \int_0^3 f(t)\,dt \) and \( \tan t = \frac{\sin
t}{\cos t} \).

\begin{Exx}
  Test \( x + y = \int_0^3 f(t)\,dt \) and \( \tan t = \frac{\sin
  t}{\cos t} \).
\end{Exx}

Test \( x + y = \int_0^3 f(t)\,dt \) and \( \tan t = \frac{\sin
t}{\cos t} \).

\end{document}

但请注意,希腊符号会出现问题,因为这些符号不在所需的位置cmss

相关内容