# Upright small greek via newtxmath without replacing the math font

I am trying to conform to the International Standard ISO 80000-2. The isomath package does a nice job, but it does not solve the problem of the missing upright/roman small Greek letters, needed for pi, Kronecker delta and the Levi-Civita symbol. This can be achieved in many ways, but usually the resulting Greek letters are clearly of a different font than their italics counterpart ones (I'm using the standard Computer Modern font).

The following code implements a very nice upright delta (all greek letters can be achieved in a similar fashion).

\documentclass{article}
\usepackage[libertine]{newtxmath}
\DeclareMathSymbol{\deltaup}{\mathord}{lettersA}{14}

\begin{document}
$\delta\deltaup$
\end{document}


That is, the above code declares the wanted macro \deltaup using the symbol font lettersA, which itself is loaded by newtxmath. This works correctly, but as an unwanted side effect, loading newtxmath replaces the used math font in the document, which I do not want to alter.

You can use the CBfonts by Claudio Beccari, that are based on the Computer Modern design.

\documentclass{article}
\usepackage[LGR,T1]{fontenc} % or OT1, if you prefer

\DeclareSymbolFont{upgreek}{LGR}{cmr}{m}{n}
\DeclareMathSymbol{\deltaup}{\mathord}{upgreek}{d}
\DeclareMathSymbol{\piup}{\mathord}{upgreek}{p}
\DeclareMathSymbol{\epsilonup}{\mathord}{upgreek}{e}

\begin{document}
$\delta\deltaup$

$\pi\piup$

$\varepsilon\epsilonup$
\end{document}


A less efficient solution that doesn't waste a math font family, is with textalpha:

\documentclass{article}
\usepackage{amsmath}
\usepackage{textalpha}

\newcommand{\deltaup}{\text{\textdelta}}
\newcommand{\epsilonup}{\text{\textepsilon}}
\newcommand{\piup}{\text{\textpi}}

\begin{document}
$\delta\deltaup$

$\pi\piup$

$\varepsilon\epsilonup$
\end{document}


The output is the same.

If you want to use the upright Greek used when \usepackage[libertine]{newtxmath} is loaded, then here's the trick

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\let\iftx@libertine\iftrue
\let\iftx@minion\iffalse
\def\ntxmath@scaled{s*[1.02]}
\makeatother
\DeclareSymbolFont{upgreek}{U}{ntxmia}{m}{it}
\SetSymbolFont{upgreek}{bold}{U}{ntxmia}{b}{it}
\DeclareMathSymbol{\deltaup}{\mathord}{upgreek}{14}
\DeclareMathSymbol{\varepsilonup}{\mathord}{upgreek}{34}
\DeclareMathSymbol{\piup}{\mathord}{upgreek}{25}

\begin{document}
$\delta\deltaup$

$\pi\piup$

$\varepsilon\varepsilonup$
\end{document}


In my opinion the result is decidedly worse.

• These solutions do not use the libertine font as requested. The pi looks fine, but the epsilon and especially the delta does not. – jmd_dk Sep 25 '14 at 22:17
• What do you mean? You said you wanted letters compatible with Computer Modern, which the NewTX aren't. – egreg Sep 25 '14 at 22:25
• @jmd_dk I added the trick you want. Personally I wouldn't use it. – egreg Sep 25 '14 at 22:40
• @egreg: I use the last trick you presented in my document, but how would you define all lowercase greek symbols with more\DeclareMathSymbol commands? I don't know where to look up the slot numbers you used here for mathord. Where do you get these from? – lblb Mar 24 '17 at 18:18
• @lblb You can use the fonttable` package for printing a table of the desired font. – egreg Mar 24 '17 at 18:30