How to use regular sans-serif italic/upright greek letter in math mode?
Description
Unicode-math does not support sans-serif italic/upright greek letter
Add info or delete as appropriate:
- Relevant for XeTeX Yes
- Relevant for LuaTeX Yes
- Issue tracker has been searched for similar issues? Yes
- Links to <tex.stackexchange.com> discussion if appropriate https://tex.stackexchange.com/questions/693724/how-to-use-sans-serif-italic-greek-letter-in-math-mode?noredirect=1#comment1721669_693724
Minimal example demonstrating the issue
\documentclass{article}
\usepackage{unicode-math}
\setmathfont{texgyrepagella-math.otf}% filename only please!
\begin{document}
\[
\alpha \mathsf{\alpha}
\]
\end{document}
You can try STIX Two Math, still do not support
Further details
https://mirrors.zju.edu.cn/CTAN/macros/unicodetex/latex/unicode-math/unimath-symbols.pdf
Sans-serif italic/upright greek letters are not defined in Unicode.
Some fonts may support these letters alternatively. For XITS, you can use ss02 to load the sans-serif version:
\documentclass{article}
\usepackage{unicode-math}
\setmathfont[StylisticSet=2]{XITSMath-Regular.otf}
\begin{document}
\[ \alpha + \beta + \Gamma \]
\end{document}
What can I do if I want some greek letters be sans-serif but a lot more others don't?
For example:
$$ X^\mu_\nu = X^{\mu\rho} \eta_{\rho_\nu} = \mathsf{X \eta} $$
X^\mu_\nu = X^{\mu\rho} \eta_{\rho_\nu} = \mathsf{X \eta}
It's clearly impossible to use a glyph that doesn't exist in a font, unless you modify the font and add the things you need.
No unicode-math issue here.
What can I do if I want some greek letters be sans-serif but a lot more others don't?
For example:
X^\mu_\nu = X^{\mu\rho} \eta_{\rho_\nu} = \mathsf{X \eta}
Here is a suggestion that relies on the XITS Math fonts and makes use of StylisticSet = 2, as @stone-zeng suggested:
% !TeX program = xelatex
\documentclass{article}
\usepackage[mathsf=sym]{unicode-math}
\setmathfont{XITSMath-Regular.otf}[BoldFont = XITSMath-Bold.otf]
\newcommand{\mitsanseta}{%
\textit{%
\fontspec{XITSMath-Regular.otf}[
StylisticSet = 2,
Color = red
]%
\miteta%
}%
}
\newcommand{\msanseta}{%
\textit{%
\fontspec{XITSMath-Regular.otf}[
StylisticSet = 2,
Color = blue
]%
\mupeta%
}%
}
\begin{document}
\[ X^\mu_\nu = X^{\mu\rho} \eta_{\rho_\nu} = \mathsf{X \eta \msanseta} \mathsfit{X \eta \mitsanseta} \mathsfup{X \eta \msanseta} \mathbfsf{X \eta} \mathbfsfit{X \eta} \]
\boldmath
\[ X^\mu_\nu = X^{\mu\rho} \eta_{\rho_\nu} = \mathsf{X \eta \msanseta} \mathsfit{X \eta \mitsanseta} \mathsfup{X \eta \msanseta} \mathbfsf{X \eta} \mathbfsfit{X \eta} \]
\end{document}
Result:
I have made use of the Color attribute only for the purpose of illustration, of course.
You can use FiraSans:
\documentclass{article}
\usepackage{firamath-otf}
\newcommand{\mitsanseta}{%
\textit{%
\fontspec{FiraMath-Regular.otf}[
StylisticSet = 2,
Color = red
]%
\miteta%
}%
}
\newcommand{\msanseta}{%
\textit{%
\fontspec{FiraMath-Regular.otf}[
StylisticSet = 2,
Color = blue
]%
\mupeta%
}%
}
\begin{document}
\[ X^\mu_\nu = X^{\mu\rho} \eta_{\rho_\nu} = \mathsf{X \eta \msanseta}
\mathsfit{X \eta }\mitsanseta \mathsfup{X \eta \msanseta} \mathbfsf{X \eta}
\mathbfsfit{X \eta} \]
\boldmath
\[ X^\mu_\nu = X^{\mu\rho} \eta_{\rho_\nu} = \mathsf{X \eta \msanseta}
\mathsfit{X \eta}\mitsanseta \mathsfup{X \eta \msanseta}
\mathbfsf{X \eta} \mathbfsfit{X \eta} \]
\end{document}
You can use FiraSans:
Sure, but @Firestar-Reimu wants math to be serif in general and only select symbols to be sans-serif:
What can I do if I want some greek letters be sans-serif but a lot more others don't?
It is true, though, that one take the upright sans-serif glyphs out of many different math (or even text fonts) that include Greek letters. For instance,
% !TeX program = xelatex
\documentclass{article}
\usepackage{xcolor}
\usepackage[mathsf=text]{unicode-math}
\setmainfont{XITS-Regular.otf}[
ItalicFont = XITS-Italic.otf,
BoldFont = XITS-Bold.otf,
BoldItalicFont = XITS-BoldItalic.otf,
]
\setsansfont{FiraSans-Regular.otf}[
ItalicFont = FiraSans-Italic.otf,
BoldFont = FiraSans-Bold.otf,
BoldItalicFont = FiraSans-BoldItalic.otf,
Scale = 0.9,
]
\setmonofont{FiraMono-Regular.otf}[
BoldFont = FiraMono-Bold.otf,
Scale = 0.9,
]
\setmathfont{XITSMath-Regular.otf}[BoldFont = XITSMath-Bold.otf]
\setmathfontface{\mathsf}{FiraMath-Regular.otf}[
BoldFont = FiraMath-Bold.otf,
Color = cyan
]
% FiraMath-Bold.otf is NOT included in CTAN; it must be downloaded from
% https://github.com/firamath/firamath/releases/tag/v0.4-beta-3.
\setmathfont{FiraMath-Regular.otf}[
BoldFont = FiraMath-Bold.otf,
range = {sfup, sfit->it},
Color = teal,
]
\setmathfont{FiraMath-Bold.otf}[
range = {bfsfup->up, bfsfit->it},
Color = orange,
]
\newcommand{\mitsanseta}{%
\textit{%
\fontspec{FiraMath-Regular.otf}[
Color = red
]%
\miteta%
}%
}
\newcommand{\msanseta}{%
\textup{%
\fontspec{FiraMath-Regular.otf}[
Color = blue
]%
\mupeta%
}%
}
\AtBeginDocument{%
\renewcommand{\mbfsanseta}{%
\textbf{%
\fontspec{FiraMath-Bold.otf}[
Color = green
]%
\mupeta%
}%
}%
\renewcommand{\mbfitsanseta}{%
\textbf{%
\fontspec{FiraMath-Bold.otf}[
Color = magenta
]%
\miteta%
}%
}%
}
\begin{document}
Test \texttt{\textbackslash mathversion[normal]}:
\[
X^\mu_\nu = X^{\mu\rho} \eta_{\rho_\nu} =
\mathsf{X \eta \msanseta} \mathsfit{X \eta \mitsanseta} \mathsfup{X \eta \msanseta} \mathbfsf{X \eta \mbfsanseta} \mathbfsfit{X \eta \mbfitsanseta}
\]
\bfseries\boldmath
Test \texttt{\textbackslash mathversion[bold]}/\texttt{\textbackslash boldmath}:
\[
X^\mu_\nu = X^{\mu\rho} \eta_{\rho_\nu} =
\mathsf{X \eta \msanseta} \mathsfit{X \eta \mitsanseta} \mathsfup{X \eta \msanseta} \mathbfsf{X \eta \mbfsanseta} \mathbfsfit{X \eta \mbfitsanseta}
\]
\end{document}