1

I am using both \mathscr and \mathcal to different meanings and expecting different characters to appear.

I recently switched to XeTeX and started using new fonts (TeX Gyre Pagella in this example) with the packages fontspec and unicode-math. As suggested by the answer to this question, I override \mathcal and \mathscr with characters coming from a different font (XITS-math).

Unfortunately this has the effect of mangling the setting of a (seemingly) unrelated math symbol : the nth root.

\documentclass{minimal} \usepackage{fontspec} \usepackage{unicode-math} \setmainfont{TeX Gyre Pagella} \setmathfont{TeX Gyre Pagella Math} % Math font overrides ---- \setmathfont[range={\mathcal,\mathbfcal}, StylisticSet=1,Extension=.otf,BoldFont=*bold]{xits-math} \setmathfont[range=\mathscr,Extension=.otf,BoldFont=*bold]{xits-math} \begin{document} Some math letters: \[ \mathbb{C} \mathcal{C} \mathscr{C} \mathfrak{C} \] Here's a big $n$-th root: \[ F_k(x,y,z) = \sqrt[n]{\sum_{i=1}^{k} f_i^n} \,. \] \end{document} 

This code produces the following result: Mangled nth root All Cs are different, but the n is too close from the radical symbol (√).

Commenting out the math font overrides yield the correct result for the nth root (but \mathcal and \mathscr now produce identical characters): correct nth root

My questions are then

  • Why does overriding \mathscr and \mathcal affects the setting of the nth root ?
  • How can I avoid this problem ? (or do I have to change fonts ?)
4
  • 1
    while waiting for experts you can use \sqrt[n\;] to improve the looks... Commented Oct 26, 2017 at 13:43
  • \setmathfont overwrites the math fontdimens, and the one from xits are not suitable for pagella. There is no good solution for this problem, see e.g. tex.stackexchange.com/a/375243/2388. Commented Oct 26, 2017 at 14:02
  • @UlrikeFischer is it theoretically envisionable that unicode-math avoids overriding math fontdimens not relevant for \mathcal, \mathscr range? Commented Oct 26, 2017 at 15:05
  • This particular situation will be fixed in the next version of unicode-math. (Assuming that the first maths font loaded is the one that drives the majority of the formatting.) Commented Jan 3, 2018 at 6:53

1 Answer 1

3

Edit

Imho with a current unicode-math (2/2018) this is no longer needed.

=====

It looks as if it could work if you reset the fontdimens:

\documentclass{article} \usepackage{fontspec} \usepackage{unicode-math} \setmainfont{TeX Gyre Pagella} \setmathfont{TeX Gyre Pagella Math} \ExplSyntaxOn %store the values \int_step_inline:nnnn {1}{1}{65}{\tl_set:cx{l_tmp_fontdimen_#1_tl}{\the\fontdimen #1 \l__um_font }} \ExplSyntaxOff % Math font overrides ---- \setmathfont[range={\mathcal,\mathbfcal}, StylisticSet=1,Extension=.otf,BoldFont=*bold]{xits-math} \setmathfont[range=\mathscr,Extension=.otf,BoldFont=*bold]{xits-math} \ExplSyntaxOn %restore the values \int_step_inline:nnnn {1}{1}{65}{\fontdimen #1 \l__um_font =\tl_use:c{ l_tmp_fontdimen_#1_tl}} \ExplSyntaxOff \begin{document} Some math letters: \[ \mathbb{C} \mathcal{C} \mathscr{C} \mathfrak{C} \] Here's a big $n$-th root: \[ F_k(x,y,z) = \sqrt[n]{\sum_{i=1}^{k} f_i^n} \,. \] \end{document} 

But this is quite experimental ... and only tested with xelatex. (And probably they are still wrong for the other math styles).

enter image description here

2
  • This seems to work, thanks ! Additionally LuaLaTeX did not have this problem, so another solution could be using LuaLaTeX instead of XeTeX Commented Oct 26, 2017 at 15:48
  • 1
    The root is defined differently in both engines but with lualatex you can get similar problems. See e.g. tex.stackexchange.com/a/364328/2388. Commented Oct 26, 2017 at 16:03

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.