![T1 字体编码、beamer 和 mathrm](https://linux22.com/image/432771/T1%20%E5%AD%97%E4%BD%93%E7%BC%96%E7%A0%81%E3%80%81beamer%20%E5%92%8C%20mathrm.png)
Beamer 使用无衬线字体来排版数学。虽然我喜欢它的美感,但在数学环境中,我发现大写字母 I 和大写字母 Pi 如果没有衬线,阅读起来会困难得多。如果没有 T1 编码,我可以写出\mathrm{\Pi}
逃避的方法。然而,使用 T1 编码时,Pi 被排版为 ´´。
我知道这个问题与这个问题,但我正在寻找不同的答案。具体来说,我不希望用衬线字体替换所有数学,只希望替换那一个字符。这能以某种方式实现吗?
\documentclass{beamer}
\usepackage[T1]{fontenc}
\let\oldPi\Pi
\renewcommand{\Pi}{\mathrm{\oldPi}}
\begin{document}
\begin{frame}
$\Pi$
\end{frame}
\end{document}
答案1
在这里,我声明了一个\oldmathrm
要使用的数学字母表OT1
。然后我可以访问它进行\Pi
重新定义。
\documentclass{beamer}
\DeclareMathAlphabet{\oldmathrm}{OT1}{cmr}{m}{n}
\usepackage[T1]{fontenc}
\let\oldPi\Pi
\renewcommand{\Pi}{\oldmathrm{\oldPi}}
\begin{document}
\begin{frame}
$\Gamma\Pi$
\end{frame}
\end{document}
如果您想要访问 sans\Pi
和rm
版本,则不要使用\renewcommand\Pi
,而只需在文档中使用\Pi
和即可。\oldmathrm{\Pi}
另一种方法,我不确定哪种方法更可取(即使用更少的资源)是仅声明一个符号字体,然后使用该字体中的插槽 5 \Pi
:
\documentclass{beamer}
\DeclareSymbolFont{oldrm}{OT1}{cmr}{m}{n}
\DeclareMathSymbol{\Pi}{\mathord}{oldrm}{"5}
\usepackage[T1]{fontenc}
\begin{document}
\begin{frame}
$\Sigma\Pi$
\end{frame}
\end{document}