使用 isomath 技巧来获得直立的希腊字母 pi 几乎总是可以正常工作,但在 amsthm 定理环境中则不行。
\documentclass{amsart}
\newtheorem{theorem}{Theorem}[section]
\usepackage[greek, english]{babel}
\let\mathpi\pi{}
\renewcommand{\pi}{\text{\textrm{\greektext{p}}}}
\begin{document}
\begin{theorem} \pi \end{theorem}
not the same as $\pi$.
\end{document}
如何强制 pi 在环境内相同?
答案1
您可以执行以下操作:
\documentclass{amsart}
\usepackage{bm}
\usepackage{pdftexcmds}
\usepackage{textgreek}
\newtheorem{theorem}{Theorem}[section]
\makeatletter
\DeclareRobustCommand{\cpi}{%
\textnormal{%
\ifnum\pdf@strcmp{\math@version}{bold}=\z@\bfseries\fi
\textpi
}%
}
\makeatother
\begin{document}
\begin{theorem}
$\cpi$
\end{theorem}
That's the same as $\cpi$. Also $\bm{\cpi}$.
\end{document}
我不会重新定义\pi
。
答案2
默认字体没有直立的小写希腊字母。该包根据选项upgreek
从Euler
数学字体或提供这些字母。我定义了(实际上,,...)。Adobe Symbol
\uppi
\upalpha
\upbeta
答案3
在 中unicode-math
,直立 π 可用作\uppi
(与 兼容\upgreek
)、\muppi
或\symup{pi}
。(请参阅此处的几个示例。) 几个与旧版 NFSS 兼容的软件包也提供了\uppi
,包括\usepackage[lcgreek]{stix}
和upgreek
。\mathrm{\pi}
命令也可能是可以接受的。