4

1. Important boundary conditions

  1. pdflatex should be used. No xelatex please.
  2. The font should not be completely different from Computer Modern, Times New Roman, Stix.
  3. Stix2 is a completely differently looking font.

Why?

  • Because manuscripts upon submission to Physical Review journals are compiled by pdflatex.
  • Because many people never heard of xelatex

2. Actual question

I need to use the STIX math italic (second row) and math bold italic (third row) in the same text. I found that the distinction for all small greek letters except lambda is visible enough. The shape of lambda seems to be inconsistent (too thin). Since I have both typefaces in the same text, the two lambdas can hardly be distinguished. What could be the solution in this case?

enter image description here

3. Description of the figure.

  • It is generated with Adobe Illustrator. To the best of my knowledge, the stix package provides the first row (upright text) for the text mode and 2nd and 3rd rows for the math mode.
  • Rows 4 and 5 illustrate proper visual differences between a) the upright font (1) and the serif-less upright font (4) and b) the italic font (2) and the serif-less slanted font.
  • Row 3 illustrates the problematic bold italic font. To the right, I superimposed the bold italic over the italic font to demonstrate the tiny difference for lambda.

4. Copy-pastable latex code

Currently, I am defining the serif-less bold italic small greek math letters

\documentclass{article}
\usepackage{amsmath}
\usepackage{stix}
\usepackage{bm}
\DeclareMathSymbol{\alphaSF}{\mathalpha}{arrows2}{"0B}
\DeclareMathSymbol{\lambdaSF}{\mathalpha}{arrows2}{"15}

\newcommand{\lambdaBold}{{\bm{\lambdaSF}}}
\newcommand{\alphaBold}{{\bm \alphaSF}}
\begin{document}
\begin{align*}
  \alpha&=\lambda\\
  \bm{\alpha}&=\bm{\lambda}\\
  \alphaBold&=\lambdaBold
 \end{align*} 
\end{document}

and using them instead of bold italic, but serif-less fonts stand out too much. enter image description here

  • You've mentioned what rows 2 and 3 are supposed to be about. But what are rows 1, 4, and 5 supposed to demonstrate? How do you load the Stix text and math fonts? Do you load the mathalpha and bm packages? Please be explicit, and don't assume that everyone somehow simply "knows" what you're doing. – Mico Jun 25 at 9:38
  • Also, regarding notation, it may not be fully clear to your readers that italic and bold italic are used for different things, or to expect that they can reliably tell the difference between the two styles (not just for lambda, but also for the other letters. It may be clear to you, but for someone else an italic beta and a bold italic beta may just look like two betas). If you use different meanings, use different symbols, or things like primes and subscripts. – Marijn Jun 25 at 10:05
  • @Marijn Using different letters is hardly an option. It is common in my field to denote vectors/matrices in bold math face and their components/absolute values in standard math face. Departing from this convention means even more confusion for the reader. – yarchik Jun 25 at 10:13
  • @yarchik The situation improves if you load stix2 instead. – egreg Jun 25 at 10:15
  • So, is your main issue that the bold sans-serif math greek letters, in both slanted and upright styles, have strokes that are sufficiently thick, whereas that's not the case with bold serif math greek letters? – Mico Jun 25 at 10:15
4

Consider the following screenshot. In the upper half, the math-mode greek letters are shown first in normal, i.e., slanted and non-bold, form, followed by bold, upright, and bold-upright, for the XITS Math math font. The normal and bold slanted variants of \lambda do look very similar.

In the lower half, the same set of four math-greek letters is shown, but now for the Stix Two Math math font. You'll notice right away that the regular and bold slanted-lambda glyphs look quite different.

enter image description here

\documentclass{article}
\usepackage{unicode-math}
\newcommand\blurb{\alpha\beta\gamma\delta\epsilon\zeta\eta%
                  \theta\iota\kappa\lambda\mu\nu\xi\pi\rho%
                  \sigma\tau\upsilon\phi\chi\psi\omega}
\begin{document}
\obeylines
\setmainfont{XITS}
\setmathfont{XITS Math}
XITS Math glyphs
$\blurb$
$\symbf{\blurb}$
$\symup{\blurb}$
$\symbfup{\blurb}$

\bigskip
\setmainfont{Stix Two Text}
\setmathfont{Stix Two Math}
Stix Two Math glyphs
$\blurb$
$\symbf{\blurb}$
$\symup{\blurb}$
$\symbfup{\blurb}$
\end{document}
| improve this answer | |
  • 1
    Indeed, stix two has much better glyphs. Do you know, by the way if stix2 is a part of standard TexLive distribution. It is a very important question to me, because my collaborators would not use xelatex nor will they agree to manually install packages. I am bound to pdflatex. – yarchik Jun 25 at 10:58
  • 1
    @yarchik - Indeed, stix2 is part of the full TeXLive distribution and is usable under pdfLaTeX. E.g., give \documentclass{article} \usepackage{amsmath} \usepackage{stix2} \begin{document} $\lambda \quad \boldsymbol{\lambda}$ \end{document} a try. Note that you should use \boldsymbol, not \bm, with the math-greek letters of the stix2 package. – Mico Jun 25 at 11:05
  • Last question, sorry for disturbing. What is wrong with using bm, isn't it falls back to \boldsymbol ? – yarchik Jun 25 at 11:12
  • @yarchik - By all means, do replace \boldsymbol{\lambda} with \bm{\lambda} in the preceding minimalist example and see what you get; I will venture a guess that it's not what you expect. I honestly don't know why \bm isn't quite right with stix and stix2. – Mico Jun 25 at 11:22
3

There is no need to load bm with stix; the fonts come with bold letters that works with the standard \mathversion{bold} and \boldsymbol from amsmath.

With PDFLaTeX, you can load a bold sans-serif math alphabet with isomath. There are several options, including Computer Modern Bold and Arev.

\documentclass{article}
\usepackage{iftex}

\ifTUTeX
  \usepackage{unicode-math}
  \setmainfont{XITS}[Scale=1.0]
  \setmathfont{XITS Math}[Scale=MatchLowercase] % Also loads STIX Math Bold.
\else
  \usepackage{amsmath}
  \usepackage{stix}
  % sfdefault=zavm is Arev. sfdefault=cmbr is Computer Modern Bright.
  \usepackage[sfdefault=cmbr]{isomath} % For \mathsfbfit

  \newcommand{\mbfitsansalpha}{\mathsfbfit{\alpha}}
  \newcommand{\mbfitsanslambda}{\mathsfbfit{\lambda}}
\fi

\pagestyle{empty} % For convenient cropping of the MWE.

\begin{document}
\begin{align*}
  \alpha              &= \lambda \\
  \boldsymbol{\alpha} &= \boldsymbol{\lambda} \\
  \mbfitsansalpha     &= \mbfitsanslambda
 \end{align*} 
\end{document}

Compiled with PDFLaTeX, this gives:

Legacy font Output

With unicode-math, this is even simpler: the package supports both \symbfit and \symbfsfit alphabets out of the box. The XITS Math font by Khaled Hosny additionally comes in a bold version.

The same MWE compiled with LuaLaTeX or XeLaTeX produces:

XITS Math Sample

The range= option of unicode-math allows you to substitute the sans-serif math alphabet from any other math or Greek font. Here is an example of how to substitute the Greek sans-serif italic alphabet from STIX Two Math.

Unfortunately, as of 2020, range= is not compatible with math versions, so you would have problems with \boldsymbol. I therefore switch to \symbfit.

\documentclass{article}

\usepackage{unicode-math}
\defaultfontfeatures{Scale=MatchLowercase}
\setmainfont{XITS}[Scale=1.0]
\setmathfont{XITS Math}
\setmathfont{STIX Two Math}[range=bfsfit/{Greek,greek}]

\pagestyle{empty} % For convenient cropping of the MWE.

\begin{document}
\begin{align*}
  \alpha              &= \lambda \\
  \symbfit{\alpha}    &= \symbfit{\lambda} \\
  \symbfsfit{\alpha}  &= \symbfsfit{\lambda}
 \end{align*} 
\end{document}

XITS/STIX Two sample

You're more likely to want to substitute a different bold italic lambda (𝝀) symbol here, though, with range=\mbfitlambda. This example adds a bit of FakeBold to this one symbol:

\documentclass{article}

\usepackage{unicode-math}
\defaultfontfeatures{Scale=MatchLowercase}
\setmainfont{XITS}[Scale=1.0]
\setmathfont{XITS Math}
\setmathfont{XITS Math}[range=\mbfitlambda, FakeBold=1.1]

\pagestyle{empty} % For convenient cropping of the MWE.

\begin{document}
\begin{align*}
  \alpha              &= \lambda \\
  \symbfit{\alpha}    &= \symbfit{\lambda} \\
  \symbfsfit{\alpha}  &= \symbfsfit{\lambda}
 \end{align*} 
\end{document}

XITS FakeBold sample

If you genuinely care about portability between isomath and unicode-math, \mathbfit works in both packages if you give unicode-math the option bfit=sym, but the equivalent of \symbfsfit in unicode-math is \mathsfbfit in isomath.

| improve this answer | |
  • Aha, I did not know about the existence of isomath. But why do you borrow sfbf from Computer Modern Bright if STIX has these glyphs already? – yarchik Jun 25 at 11:11
  • @yarchik The legacy 8-bit package does not. The OpenType Unicode math font does. – Davislor Jun 25 at 11:11
  • I see, thank you! – yarchik Jun 25 at 11:14
  • @yarchik You can also select the Greek letters from any LGR-encoded text font with isomath, but that’s less likely to be useful for mathematical sans-serif. – Davislor Jun 25 at 11:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.