This answer comes following discussion in the comments to the question, to which I refer the reader. I pointed out that my solution at Upright Greek font fitting to Computer Modern works directly at unslanting a font (it is based on Bruno's answer at Shear transform a "box"). I show there how to apply it to greek letter forms, but noted that it only applies to pdflates, whereas the OP had lualatex invocations in the preamble.
The OP then tells me that the \unslant
method works in lua as well (halle-lua-jah), but that the underlying \slantbox
has a problem accepting the color of tikz
nodes. That was news to me, since \slantbox
accepts color just fine as part of a \textcolor
argument, or following a \color
declaration.
I then came across a pgf bug report, https://sourceforge.net/p/pgf/bugs/362/, that would seem to be related to the problem. Since I can't solve that problem myself, I looked for a workaround.
Heiko's answer at How to save the current colour shows a cool technique of \colorlet{slantcolor}{.}
to save the current color (before going into the \mbox
, and then I just re-issued a \color{slantcolor}
inside the \foobox
. That seemed to fix the problem.
To recap, the \unslant
method allows existing italic letters to be made upright in the same font design, and the \colorlet
fix allows this solution to work with colored tikz
nodes. The overall approach works with pdflatex and lualatex.
\documentclass{article}
%\usepackage[utf8]{luainputenc}
\usepackage[T1]{fontenc}
\usepackage{siunitx}
\usepackage{sansmathfonts}
\usepackage[scaled=0.95]{helvet}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{tikz}
\usepackage{scalerel}
\newsavebox{\foobox}
\newcommand{\slantbox}[2][0]{\colorlet{slantcolor}{.}\mbox{%
\sbox{\foobox}{\color{slantcolor}#2}%
\hskip\wd\foobox
\pdfsave
\pdfsetmatrix{1 0 #1 1}%
\llap{\usebox{\foobox}}%
\pdfrestore
}}
\newcommand\unslant[2][-.2]{%
\mkern1mu%
\ThisStyle{\slantbox[#1]{$\SavedStyle#2$}}%
\mkern-1mu%
}
\newcommand\upmu{\unslant\mu}
\begin{document}
Upright greek in math mode: $\mathrm{\mu}$, $\upmu$,
\begin{tikzpicture}
\node[color=red,] {$\upmu$$\mu$};
\end{tikzpicture}
\end{document}
\documentclass{article}
\usepackage{amsmath}
\usepackage[math-style=literal]{unicode-math}
\setmathfont{XITSMath}
\setmathfont[range=up/{greek,Greek}]{FiraMath-Regular.otf}
\begin{document}
\[ \mupGamma(\mupvarphi,\muptheta)=\mupbeta \]
\[ \Gamma(\varphi,\theta) =\beta \]
\end{document}
Best Answer
It seems to me that your problem stems from the fact that the
arev
package implements lowercase greek as italic only without providing any upright alternatives. Arev itself as a typeface does have upright lowercase greek glyphs available: http://tavmjong.free.fr/FONTS/Adding to that, the µ character that many keyboards have is not the greek mu, it is the micro* symbol, which the
arev
package also sets in italic (which it never should be. A greek mu is useful as italic and upright, the micro symbol as unit prefix should always be used upright anyway...)If you can, switching to XeLaTeX would allow to use typefaces that are installed on the computer, which would give you access to the upright greek of Arev. In pdfLaTeX, another hacky solution would be to get the greek mu glyph from a Arev sample PDF and insert it as a vector graphic. Maybe someone else has an easier way though.
* micro vs. mu
The micro symbol, e.g. for microhenry µH, is based on the greek mu, but is an independent unicode character. In some fonts, they look slightly different:
(this is set in Linux Libertine)
Insert both micro and mu (
µμ
) here to check yourself.Finally, this comment by timothymctim (Siunitx's \micro symbol has serif) proposed to use
phv
(Adobe Helvetica), which looks acceptable to me:This MWE will typeset the correct micro symbol (µ) instead of the greek letter mu. For an example of
siunitx
's different...-micro
-settings, see this answer.Note that I changed
inputenc
's[utf8x]
to[utf8]
, because[utf8x]
changes the keyboard µ micro symbol to a italic greek mu ...