2

I'm using XeTeX and the fontspec and unicode-math packages. In order to use a different math font for Greek letters, I do something like this, using the range option of \setmathfont:

\setmathfont[Path=/usr/share/texmf/fonts/opentype/public/tex-gyre-math/]{texgyretermes-math.otf} 
\setmathfont[range=\mathit/{greek,Greek},Path=/usr/share/texmf/fonts/opentype/public/tex-gyre/]{texgyretermes-regular.otf} 

Now, how could I change the font for only one Greek letter (say \phi) ?

Update

Based on @egreg's answer (which is deleted now), I tried the following code. The $\phi$ does not appear in the output. If I replace this line by the commented line, then $\phi$ appears in the output but it is not in regular font.

% !TeX program = XeLaTeX
% !Mode:: "TeX:UTF-8"
\documentclass[fontsize=12pt]{scrartcl}
\usepackage{amsmath,amssymb,amsfonts,amsthm}
\usepackage{unicode-math}
\usepackage{fontspec}
\setmonofont[Path=/usr/share/fonts/truetype/freefont/,Scale = 1.05]{FreeMonoBold.ttf} 
\setmainfont
[        Scale = 1.1,
     Extension = .otf,
   UprightFont = *-regular,
      BoldFont = *-bold,
    ItalicFont = *-italic,
BoldItalicFont = *-bolditalic,
]{xits}

\setmathfont[Path=/usr/share/texmf/fonts/opentype/public/tex-gyre-math/]{texgyretermes-math.otf} 
\setmathfont[range={\mitvarphi,\mitphi},Path=/usr/share/texmf/fonts/opentype/public/tex-gyre/]{texgyretermes-regular.otf}
% \setmathfont[range=\mathit/{varphi,phi},Path=/usr/share/texmf/fonts/opentype/public/tex-gyre/]{texgyretermes-regular.otf}
\setmathfont[range=\int,Path=/usr/share/texmf/fonts/opentype/public/tex-gyre-math/]{texgyretermes-math.otf}

\begin{document}

$\phi = \psi+1$. 

\end{document}

Second update

Since I use only three greek letters in my document, phi, mu and lambda, the following code works :

\setmathfont[Path=/usr/share/texmf/fonts/opentype/public/tex-gyre-math/]{texgyretermes-math.otf} 
\setmathfont[range=\mathit/{greek,Greek},Path=/usr/share/texmf/fonts/opentype/public/tex-gyre/]{texgyretermes-regular.otf} 
\setmathfont[range={\mitmu,\mitlambda},Path=/usr/share/texmf/fonts/opentype/public/tex-gyre-math/]{texgyretermes-math.otf} 
12
  • TeX Gyre Termes is not a math font, so it has no \mitphi and \mitvarphi.
    – egreg
    Jul 7, 2015 at 9:53
  • @egreg And why that does not work with the commented line instead ? Jul 7, 2015 at 9:58
  • @egreg I also tried range=\mathit/{"03D5} Jul 7, 2015 at 10:11
  • It's not at all clear what your aim is.
    – egreg
    Jul 7, 2015 at 10:27
  • 1
    Just a comment, you don't need to put in the Path for fonts installed in the texmf free. Also, this question is about unicode-math, not fontspec. But is this a question any more? Jul 7, 2015 at 11:38

1 Answer 1

2

In normal text, phi is only one glyph, and the font makes it upright, bold, italic, bold-italic. In math text, there are a dozen phi glyphs, and the boldness, italic is part of the glyph itself:

phi math

To have upright lower case Greek, use \setmathfont{Asana Math}[math-style=french], for example, and use \mitphi for italic phi.

\documentclass[12pt]{article}
\usepackage{xcolor}
\usepackage{unicode-math}
\setmathfont{Asana Math}[math-style=french,Colour=blue]
\setmathfont{Asana Math}[range={\mitphi},Colour=red]
\setmainfont{Noto Serif}

\begin{document}
abc xyz 
$๐›—๐œ™๐‹๐ž๐žฟ
\mupphi
\mupvarphi
\mbfphi
\mbfvarphi
\mitvarphi
\mitphi
\mbfitvarphi
\mbfitphi
\mbfsansvarphi
\mbfsansphi
\mbfitsansvarphi
\mbfitsansphi
$

$\phi \mu \lambda$
\end{document}

Use \AtBeginDocument{\renewcommand\mupphi{\mitphi}} to redefine upright phi as italic phi.

mupphi redefined

\documentclass[12pt]{article}
\usepackage{xcolor}
\usepackage{unicode-math}
\setmathfont{Asana Math}[math-style=french,Colour=blue]
\setmathfont{Asana Math}[range={\mitphi},Colour=red]
\setmainfont{Noto Serif}
\AtBeginDocument{\renewcommand\mupphi{\mitphi}}

\begin{document}
phi $\phi$, upright phi (now italic) $ \mupphi$, and the rest $ \mu \lambda$
\end{document}

To do the converse, italic lower case Greek with italic phi redefined as upright phi:

phi 2

\documentclass[12pt]{article}
\usepackage{xcolor}
\usepackage{unicode-math}
\setmathfont{Asana Math}[Colour=blue]
\setmathfont{Asana Math}[range={\mupphi},Colour=red]
\setmainfont{Noto Serif}
\AtBeginDocument{\renewcommand\mitphi{\mupphi}}

\begin{document}
phi $\phi$, italic phi (now upright) $ \mitphi$, and the rest $ \mu \lambda$
\end{document}

Or maybe even just use \mupphi wherever needed.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .