[Tex/LaTex] Define particle names to use upright greek letters in math mode

fontsgreekitalicmath-mode

Currently I have my electron neutrino & beta particle marco defined as

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

So that it works in math mode, text mode, and with mhchem. However this gives an italic nu and betas, which seems wrong since we don't italicize protons (p or p^{+}, or neutrons (n).

How would I change this to give me non-italic greek letters? The closes question I can find on this is Force upright Greek letters with isomath, but that uses DeclareMathSymbol and has some notes about getting it to work with T1 vs OT1 fonts and seems to overwrite the default \nu and \beta, which I don't want to do since I need the normal versions for other things.

So, how do I alter the above definitions to give me non-italic greek in math mode using \ensuremath?

Bonus points if someone can tell me if this is the correct typesetting of neutrinos and beta particles.

Edit: I would really like an answer using Latin Modern, since it is listed as supporting every European alphabet.

Best Answer

As others have said in their answers there are a number of packages that provide upright Greek letters, e.g., upgreek, textgreek, kpfonts, fourier, newtxmath, ... which one to choose is in my eyes mainly a design question: which one fits best to the document's main font?

Since in chemistry upright Greek letters are used in a number of different places (particle symbols such as in your question, IUPAC names, ...) the chemgreek package defines a number of mappings for those different packages to macros \chemalpha, \chembeta, etc. (48 in total) and also allows to define own mappings. It does not load any of those packages so the choice is still up to the user. The advantage is that chemmacros (or other chemistry packages like mhchem) can simply use the \chem<letter> commands internally and the corresponding output will match the choice made by the user.

This can be used to define particle macros yourself:

\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}

enter image description here