unicode-math icon indicating copy to clipboard operation
unicode-math copied to clipboard

How to use regular sans-serif italic/upright greek letter in math mode?

Open Firestar-Reimu opened this issue 2 years ago • 8 comments

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

Firestar-Reimu avatar Aug 17 '23 08:08 Firestar-Reimu

Sans-serif italic/upright greek letters are not defined in Unicode.

stone-zeng avatar Aug 17 '23 08:08 stone-zeng

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}
Screenshot 2023-08-17 at 16 43 35

stone-zeng avatar Aug 17 '23 08:08 stone-zeng

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}

Firestar-Reimu avatar Aug 18 '23 00:08 Firestar-Reimu

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.

stone-zeng avatar Aug 18 '23 07:08 stone-zeng

No unicode-math issue here.

khaledhosny avatar Mar 31 '24 22:03 khaledhosny

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:

mathsf

I have made use of the Color attribute only for the purpose of illustration, of course.

HolgerGerhardt avatar Jul 15 '24 11:07 HolgerGerhardt

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}

Bildschirmfoto 2024-07-15 um 13 51 16

hvoss49 avatar Jul 15 '24 11:07 hvoss49

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}
mathsf-fira

HolgerGerhardt avatar Jul 15 '24 12:07 HolgerGerhardt