在数学模式下定义粒子名称以使用直立的希腊字母

在数学模式下定义粒子名称以使用直立的希腊字母

目前,我的电子中微子和β粒子宏定义为

\newcommand{\eneutrino}{\ensuremath{\nu_e}}
\newcommand{\belectron}{\ensuremath{\beta^{-}}}
\newcommand{\bpositron}{\ensuremath{\beta^{+}}}

这样它就可以在数学模式、文本模式和 mhchem 中工作。然而,这给出了斜体 nu 和 betas,这似乎是错误的,因为我们没有将质子 (p 或 p^{+},或中子 (n) 斜体化。

我该如何改变它才能给我非斜体的希腊字母?我能找到的最接近的问题是使用 isomath 强制直立希腊字母,但它使用了 DeclareMathSymbol 并有一些关于使其与 T1 与 OT1 字体一起使用的说明,并且似乎覆盖了默认的 \nu 和 \beta,我不想这样做,因为我需要普通版本来做其他事情。

那么,如何使用 \ensuremath 改变上述定义以便在数学模式下为我提供非斜体希腊语?

如果有人能告诉我这是否是中微子和β粒子的正确排版,我将获得加分。

编辑:我真的很想要一个使用拉丁现代字母的答案,因为它被列为支持每个欧洲字母。

答案1

正如其他人在回答中所说的那样,有许多包提供直立的希腊字母,例如,,,,,,upgreek......在我看来,选择哪一个主要是一个设计问题:哪一个最适合文档的主字体?textgreekkpfontsfouriernewtxmath

由于在化学中直立希腊字母用于许多不同的地方(如您问题中的粒子符号、IUPAC 名称等),该chemgreek包为这些不同的包定义了许多到宏\chemalpha\chembeta等的映射(总共 48 个),还允许定义自己的映射。它不会加载任何这些包,因此选择权仍然取决于用户。优点是chemmacros(或其他化学包,如mhchem)可以简单地\chem<letter>在内部使用这些命令,相应的输出将与用户的选择相匹配。

这可以用来自己定义粒子宏:

\documentclass{article}
\usepackage[T1]{fontenc}

% three different packages for demonstration purposes:
\usepackage{upgreek}
\usepackage{textgreek}
\usepackage{kpfonts}

\usepackage{chemmacros}[2014/01/24]% loads `chemgreek'

% just to overwrite kpfonts as default font:
\usepackage{lmodern}

% define the particles; the second argument is placed in`chemformula's \chcpd
% command
% the negative space before the `e' should be chosen depending on the actual
% choice:
\NewChemParticle{\eneutrino}{\chemnu_{$\!\!e$}}
\NewChemParticle{\belectron}{\chembeta-}
\NewChemParticle{\bpositron}{\chembeta+}

\newcommand*\pkg[1]{\textsf{#1}}

\begin{document}

\selectchemgreekmapping{upgreek}
\pkg{upgreek}: \eneutrino\ \belectron\ \bpositron

\selectchemgreekmapping{textgreek}
\pkg{textgreek}: \eneutrino\ \belectron\ \bpositron

\selectchemgreekmapping{kpfonts}
\pkg{kpfonts}: \eneutrino\ \belectron\ \bpositron

\end{document}

在此处输入图片描述

答案2

你可以使用这个包上希腊语(LaTeX 包中“was”的一部分,其中“was”是 Walter A. Schmidt... 的缩写),它提供数学模式宏\upalpha\upbeta等等。

\usepackage[Symbol]{upgreek}
\newcommand{\eneutrino}{\ensuremath{\upnu_e}}
\newcommand{\belectron}{\ensuremath{\upbeta^{-}}}
\newcommand{\bpositron}{\ensuremath{\upbeta^{+}}}

这个软件包gensymb也是由 Walter Schmidt 开发的,它提供了非常相似的功能,也许可以满足您的需求。

附录该包还有另一种方法textgreek

\documentclass{article}
\usepackage{amsmath,xspace,textgreek}
\newcommand{\eneutrino}{\ensuremath{\text{\textnu}_e}\xspace}
\newcommand{\belectron}{\ensuremath{\text{\textbeta}^{-}}\xspace}
\newcommand{\bpositron}{\ensuremath{\text{\textbeta}^{+}}\xspace}
\begin{document}
$\nu$ $\beta$ \eneutrino \belectron \bpositron \textbeta\ \textnu
\end{document}

在此处输入图片描述

第二附录另一个选择是使用kpfonts包,它提供了倾斜和直立的希腊字母(尽管我认为\nu和之间的区别\othernu很小)。如果您选择这种方式,我建议\othernu通过插入负的细空格将下标 e 紧贴到字符上\!

\documentclass{article}
\usepackage{xspace,kpfonts}
\newcommand{\eneutrino}{\ensuremath{\othernu_{\!e}}\xspace}
\newcommand{\belectron}{\ensuremath{\otherbeta^{-}}\xspace}
\newcommand{\bpositron}{\ensuremath{\otherbeta^{+}}\xspace}
\begin{document}
$\nu$ $\othernu$ $\beta$ $\otherbeta$

\eneutrino \belectron \bpositron 
\end{document}

在此处输入图片描述

答案3

这是编译三个文件所获得结果的比较。第一行是正常的斜体希腊字母,第二行是相应的直立字母。很容易看出,第一种情况下的结果是值得怀疑的,因为直立字母取自欧拉字体,而后一种情况下的字母与整体设计融为一体。对于非常有限的用途,upgreek可以选择:\nu例如,但\beta完全不同。

默认设置为upgreek

\documentclass{article}
\usepackage{upgreek}
\begin{document}
$\alpha\beta\gamma\nu$

$\upalpha\upbeta\upgamma\upnu$
\end{document}

在此处输入图片描述


fourier

\documentclass{article}
\usepackage{fourier}
\begin{document}
$\alpha\beta\gamma\nu$

$\otheralpha\otherbeta\othergamma\othernu$
\end{document}

在此处输入图片描述


kpfonts

\documentclass{article}
\usepackage{kpfonts}
\begin{document}
$\alpha\beta\gamma\nu$

$\alphaup\betaup\gammaup\nuup$
\end{document}

在此处输入图片描述

相关内容