Make greek letters behave like normal letters in math mode - default italic and responsive to mathrm

Imho there is no chance for a generic solution in legacy tex. There are always some small differences between the math font packages.

Regarding a pxfonts specific solution: Imho it is not impossible but it would be time consuming to set it up. In legacy tex the greek symbols are spread around: Some uppercase upright greek chars in OT1, some italic upper + lowercase in OML, the rest must probably be pulled from LGR, in the case of the pxfonts from the special font provided by the package. If you really cared only about \mathrm you could probably do something like this:

\documentclass{article}
\usepackage{amsmath}
\usepackage{pxfonts}
\let\deltait\delta

\makeatletter
\renewcommand\delta
 {%
   \ifnum\fam=0 \deltaup\else \deltait\fi
 }

\begin{document}

\begin{equation}
\delta \mathrm{\delta} 
\end{equation}

\end{document}

But it wouldn't expand to \mathbf and so I don't consider it a real solution.

But with xelatex/lualatex and unicode-math your example works fine (I changed the \Omega to \ohm in the \SI-argument):

\documentclass{article}

\usepackage[math-style=ISO]{unicode-math}
\setmainfont{TeX Gyre Pagella}
\setmathfont{TeX Gyre Pagella Math}
\usepackage{siunitx}

\begin{document}
\begin{equation}
    \Phi_{\symrm{\delta}} = \SI{42}{\micro\ohm} \cdot \delta_{\symrm{\Phi}} 
\end{equation}
\begin{equation}
P_{\symrm{d}} = \SI{42}{\nano\ampere} \cdot d_{\symrm{P}}
\end{equation}
\end{document}

enter image description here


You mentioned working with pxfonts and having tried pxgreeks. The only missing thing is that pxgreeks leaves the lowercase Greek letters of type mathord as done by package pxfonts. The uppercase Greek letters are already of variable type and you only need to use alphabet \mathfrak (sic) to get the upright variants.

Thus it is only a matter of modifying the mathcodes of the lowercase Greek letters to be of variable family. Here is how to do it for legacy engine pdftex:

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage{pxfonts}
\usepackage[ISO]{pxgreeks}
\usepackage{siunitx}

% make all lowercase Greek of "variable family"
% pdftex engine only.
% uppercase Greek are already of "variable family"
% from pxgreeks package.
\makeatletter
\@tfor\@tempa:=
\alpha \beta \gamma \delta \epsilon \zeta \eta \theta \iota \kappa \lambda \mu
\nu \xi \pi \rho \sigma \tau \upsilon \phi \chi \psi \omega \varepsilon
\vartheta \varpi \varrho \varsigma \varphi  
\do {% for some reason, must proceed in two steps
      \count255 \numexpr\@tempa+"7000\relax
      \expandafter\mathchardef\@tempa \count255 }
\makeatother


\begin{document}\thispagestyle{empty}
% slanted lowercase and uppercase Greek
\begin{equation}
    \Phi_{\delta} = \SI{42}{\micro\ohm} \cdot \delta_{\Phi} 
\end{equation}  

% use \mathfrak (sic) to get uppercase Greek...

\begin{equation}
    \Phi_{\mathfrak{\delta}} = \SI{42}{\micro\Omega} \cdot \delta_{\mathfrak{\Phi}} 
\end{equation}  

\begin{equation}
P_{\mathrm{d}} = \SI{42}{\nano\ampere} \cdot d_{\mathrm{P}} 
\end{equation}  

Use \string\mathfrak\space to get uppercase Greek !


$\Gamma \Delta
  \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi \Omega \alpha \beta \gamma
  \delta \epsilon \zeta \eta \theta \iota \kappa \lambda \mu \nu \xi \pi \rho
  \sigma \tau \upsilon \phi \chi \psi \omega \varepsilon \vartheta \varpi
  \varrho \varsigma \varphi $

$\mathfrak {\Gamma \Delta
  \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi \Omega \alpha \beta \gamma
  \delta \epsilon \zeta \eta \theta \iota \kappa \lambda \mu \nu \xi \pi \rho
  \sigma \tau \upsilon \phi \chi \psi \omega \varepsilon \vartheta \varpi
  \varrho \varsigma \varphi }$

\end{document}

Result:

italic and upright greek letters