编辑:写这篇文章的时候,我以为这是 amsmath 的选择。现在我才意识到这是 Knuth 的选择。
什么时候决定 amsmath 将实部符号表示为大写花体变体 R 而不是 Re?(虚部也是同样的问题)。
此事的动机是什么?
我认为底线看起来更好,更易读。
后者不是更常见吗?为什么 amsmath 希望作者不断重新定义后者?\Re
和\Im
很方便,但返回的是前者。
答案1
\Re
在knuth 中是\Im
这样定义的:plain.tex
\mathchardef\Re="023C
\mathchardef\Im="023D
这意味着它们是“普通”字符(0
),它们出现在数学符号字体(2
= cmsy
)中,并且位于(十六进制)位置3C
和3D
该字体中。
这些定义最初与所有其他单一符号名称一起被纳入amstex
,从那时起amsmath
,一直保持不变。
答案2
它没有回答问题why
,但我的回答表明了如何得到你想要得到的东西。
选项 1(推荐)
\documentclass[preview,border=12pt,12pt]{standalone}% change it back to your own document class
\usepackage{physics}
\begin{document}
$\!
\begin{aligned}
z &= a + b i\\
\Re(z) &= a\\
\Im{z} &= b
\end{aligned}
$
\end{document}
选项 2
\documentclass[preview,border=12pt,12pt,varwidth]{standalone}
\usepackage{amsmath}
\begin{document}
If $z=a+bi$ then\\ $\operatorname{Re}(z)=a$ and $\operatorname{Im}(z)=b$.
\end{document}
选项 3
\documentclass[preview,border=12pt,12pt,varwidth]{standalone}
\usepackage{amsmath,amssymb}
\begin{document}
If $z=a+bi$ then\\ $\operatorname{\mathbb{R}e}\{z\}=a$ and $\operatorname{\mathbb{I}m}\{z\}=b$.
\end{document}
答案3
fontmath.ltx
这些是包含 LaTeX 基本数学设置的文件中的相关行:
\DeclareSymbolFont{symbols}{OMS}{cmsy}{m}{n}
\DeclareMathSymbol{\Re}{\mathord}{symbols}{"3C}
\DeclareMathSymbol{\Im}{\mathord}{symbols}{"3D}
这是中的相应部分plain.tex
:
\font\tensy=cmsy10 % math symbols
\font\sevensy=cmsy7
\font\fivesy=cmsy5
\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
\mathchardef\Re="023C
\mathchardef\Im="023D
因此,这两个定义完全指向相同字体中的相同符号(当使用默认的 Computer Modern 字体时)。这早于amsmath
,因为等效定义已经在 LaTeX 2.09 中(它只是从 Plain TeX 复制了数学设置)。
原因很简单:Knuth 喜欢这种符号。
amsmath
当加载时,将其改为“Re”和“Im”并不困难:
\renewcommand{\Re}{\operatorname{Re}}
\renewcommand{\Im}{\operatorname{Im}}
这样做的好处是,如果出版商更喜欢 ℜ 和 ℑ,他们只需注释掉重新定义即可。这些符号没有什么神圣之处:人们可能喜欢它们,也可能不喜欢它们(我不喜欢)。