使用 unicode-math 将 pi 重新定义为 uppi

使用 unicode-math 将 pi 重新定义为 uppi

我想使用unicode-mathISO 样式的字体来编写公式。但是,我想使用\pi而不是\uppi来创建直立的 pi。不幸的是,我用 重新定义\renewcommand不起作用。

\pi我怎样才能重新定义给出直立 pi的含义,math-style=ISO同时保留bold-style=ISO其余字母?

目前我有以下 MWE:

\documentclass{article}

\usepackage[T1]{fontenc}

% Mathematics
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}

% Font
\usepackage{fontspec}
\usepackage[math-style=ISO,bold-style=ISO]{unicode-math}
\setmathfont{Latin Modern Math}
\renewcommand{\pi}{\uppi} % doesn't work

\begin{document}
  \begin{align}
    \alpha \beta \Alpha \Beta\\
    \pi \uppi % these commands should show the same glyph
  \end{align}
\end{document}

答案1

在范围特征修复之前,您可以使用间接重定义:

\documentclass{article}
% Mathematics
\usepackage{amsmath}

% Font
\usepackage{fontspec}
\usepackage[math-style=ISO,bold-style=ISO]{unicode-math}
\setmathfont{Latin Modern Math}

\AtBeginDocument{%
  \let\umathpi\pi
  \renewcommand\pi{\symup\umathpi}%
}

\begin{document}

\begin{gather}
\alpha \beta \Alpha \Beta
\\
\pi \uppi \mitpi
\end{gather}

\end{document}

在此处输入图片描述

笔记

  1. 我不建议这样做;最好将\cpi“常数 pi”定义为\newcommand{\cpi}{\symup{\pi}}

  2. 加载amssymbamsfonts无用的,因为所有符号和字体都已由unicode-math

  3. 不要fontencfontspec/一起加载unicode-math,除非你有很好的理由

  4. 切勿使用minimal类(参见为什么要避免使用最小类?

相关内容