![重新定义数学模式字体命令(例如 \mathrm 和 \mathit)以使用不同字体的最干净的方法是什么?](https://linux22.com/image/280917/%E9%87%8D%E6%96%B0%E5%AE%9A%E4%B9%89%E6%95%B0%E5%AD%A6%E6%A8%A1%E5%BC%8F%E5%AD%97%E4%BD%93%E5%91%BD%E4%BB%A4%EF%BC%88%E4%BE%8B%E5%A6%82%20%5Cmathrm%20%E5%92%8C%20%5Cmathit%EF%BC%89%E4%BB%A5%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E5%AD%97%E4%BD%93%E7%9A%84%E6%9C%80%E5%B9%B2%E5%87%80%E7%9A%84%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
\mathrm
重新定义数学模式字体命令(例如和)的最干净的方法是什么\mathit
?
我希望其他一切不受影响;例如,也许我喜欢使用它mathptmx
并且我想保留它的\mathnormal
,但我想更改\mathrm
并mathit
使用不同的字体。
\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}