目前,我的电子中微子和β粒子宏定义为
\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
......在我看来,选择哪一个主要是一个设计问题:哪一个最适合文档的主字体?textgreek
kpfonts
fourier
newtxmath
由于在化学中直立希腊字母用于许多不同的地方(如您问题中的粒子符号、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}