重新定义数学模式字体命令(例如 \mathrm 和 \mathit)以使用不同字体的最干净的方法是什么?

重新定义数学模式字体命令(例如 \mathrm 和 \mathit)以使用不同字体的最干净的方法是什么?

\mathrm重新定义数学模式字体命令(例如和)的最干净的方法是什么\mathit

我希望其他一切不受影响;例如,也许我喜欢使用它mathptmx并且我想保留它的\mathnormal,但我想更改\mathrmmathit使用不同的字体。

\documentclass{article}
\usepackage{mathptmx}


\begin{document}

Some text.

Some formula: \(abc = de/f \quad[\mathrm{var}, \mathit{val}]\)

\(\mathnormal{abc = de/f}\)

var, \textit{val}

\(\mathrm{var}, \mathit{val}\)

% Bitstream Charter
{\fontfamily{bch}\fontseries{m}\fontshape{n}\selectfont  var,
 \fontfamily{bch}\fontseries{m}\fontshape{it}\selectfont val}

% Linux Biolinum
{\fontfamily{LinuxBiolinumT-OsF}\fontseries{m}\fontshape{n}\selectfont  var,
 \fontfamily{LinuxBiolinumT-OsF}\fontseries{m}\fontshape{it}\selectfont val}

% Linux Libertine
{\fontfamily{LinuxLibertineT-OsF}\fontseries{m}\fontshape{n}\selectfont  var,
 \fontfamily{LinuxLibertineT-OsF}\fontseries{m}\fontshape{it}\selectfont val}

\end{document}

答案1

只需重新定义宏\mathrm\mathit使用不同的字体:界面是

\DeclareMathAlphabet{<encoding>}{<family>}{<series>}{<shape>}

您还可以补充不同数学版本的字体:也可以说

\SetMathAlphabet{bold}{<encoding>}{<family>}{<series>}{<shape>}

\boldmath用于定义在(或)上下文中使用的字体\mathversion{bold}

下面是一个例子。但请注意,使用 Charter 表示\mathrm\mathit是印刷上的错误。以下是我的说法的视觉证据。

\documentclass{article}
\usepackage{mathptmx}
\DeclareMathAlphabet{\mathrm}{OT1}{bch}{m}{n}
\DeclareMathAlphabet{\mathit}{OT1}{bch}{m}{it}

\begin{document}

Some text.

Some formula: \(abc = de/f \quad[\mathrm{var}, \mathit{val}]\)

Some formula: \(\mathit{abc}=\mathit{de}/\mathit{f}\)

\end{document}

在此处输入图片描述

相反,\DeclareMathAlphabet可以定义一个不会吞噬数学家族的替代品:

 \usepackage{amsmath}
 \newcommand{\mathcharter}[1][\encodingdefault]{%
   \text{\usefont{#1}{bch}{m}{n}#2}%
 }

并将其用作

\mathcharter{abc}

甚至

\mathcharter[T1]{l'Hôpital}

相关内容