XeTeXKerning for slanted Greek in TeX Gyre Termes Math

Information and discussion about XeTeX, an alternative for pdfTeX based on e-Tex
Post Reply
user49915
Posts: 81
Joined: Wed Apr 17, 2019 12:51 pm

Kerning for slanted Greek in TeX Gyre Termes Math

Post by user49915 »

Continuing https://tex.stackexchange.com/questions ... h-lualatex, http://tex.stackexchange.com/questions/ ... s-of-sigma and http://latex.org/forum/viewtopic.php?t=32442 (which demonstrate the issues for specific letters),the kerning around the slanted Greek letters in the `TeX Gyre Termes Math` font turned out to leave much to be desired in general.

Here is an example of problems:

Code: Select all

\RequirePackage{ifthen}
\RequirePackage{ifxetex,ifluatex}
\newif\ifxetexorluatex
\ifxetex
  \xetexorluatextrue
\else
  \ifluatex
    \xetexorluatextrue
  \else
    \xetexorluatexfalse
  \fi
\fi
\documentclass{article}
\ifxetexorluatex
\tracinglostchars=2
\usepackage{fontspec}%% needed only for xelatex.
\usepackage[american,british,french,norsk,german,ngerman]{babel} % warning: last language option will be chosen for fixed text of environments like example or definition (in svmono)
\usepackage{mathtools}%%% loads amsmath internally
\mathtoolsset{mathic=true} %%% See http://tex.stackexchange.com/a/3496
\usepackage{amssymb}
\usepackage[math-style=ISO]{unicode-math}
\setmainfont[Ligatures=TeX]{TeX Gyre Termes}
\setsansfont{TeX Gyre Heros}[Scale=0.88]%%% Somewhat ok.
\setmonofont{TeX Gyre Cursor}%%% No explicit turning on ligatures for the monospaced font.
\setmathfont[Ligatures=TeX]{TeX Gyre Termes Math}
\setmathfont[Ligatures=TeX,range={\setminus}]{Asana Math}%%% Set difference
\setmathfont[Ligatures=TeX,Extension=.otf,range={"2982},BoldFont=XITSMath-Bold]{XITSMath-Regular}%%% Z notation type colon ⦂ (U+2982). (Big tall oblong ⫿ also exists in XITS, but is slightly smaller in STIX.)
\setmathfont[Ligatures=TeX,Extension=.otf,range={"2AFF}]{STIX-Regular}%%% Big tall oblong ⫿ (U+2AFF). Slightly smaller than in XITS.
\else
\usepackage[T2A,T1]{fontenc}%%% The fontenc package is explicitly loaded with the T2A,T1 argument simply to avoid the warning of babel about missing T2A in the log. As for the order of loading, David Carlisle says in https://tex.stackexchange.com/questions/241452/generating-a-template/241479#241479 that fontenc produces information needed by inputenc (which, however, delays processing till the beginning of the document, which makes the order of these two packages irrelevant). Moreover, in the examples in the documentation of newtx fontenc is always loaded before newtx.
\usepackage[utf8]{inputenc} % Native LaTeX umlaut support
\usepackage[american,british,french,norsk,german,ngerman]{babel} % warning: last language option will be chosen for fixed text of environments like example or definition (in svmono)
\usepackage{newtxtext}% Load it after babel according to Michael Sharpe's newtx manual from Dec 14, 2017.
\usepackage[slantedGreek]{newtxmath}%% Should be loaded after the text font according to its manual. The default uppercase Greek letters should be slanted according to the Springer manual.
\usepackage{courier}
\usepackage{mathtools}%%% loads amsmath internally
\mathtoolsset{mathic=true} %%% See https://tex.stackexchange.com/a/3496
\fi
\usepackage[babel=true,verbose=errors]{microtype}%%% Microtype documentation says it determines the best settings itself, depending on the compiler and the driver.
\begin{document}
\(\Delta(\sigma)\)

\(\tau_0, \tau_1, \dotsc, \tau_9, \tau_i, \tau_j, \tau_k, \tau_{\mathrm{k}}, \tau_n, \tau_{i+1}, \tau_{i-1}\)

\(\pi_0, \pi_1, \dotsc, \pi_9, \pi_i, \pi_j, \pi_k, \pi_{\mathrm{k}}, \pi_n, \pi_{i+1}, \pi_{i-1}\)

\(\sigma_0, \sigma_1, \dotsc, \sigma_9, \sigma_i, \sigma_j, \sigma_k, \sigma_{\mathrm{k}}, \sigma_n, \sigma_{i+1}, \sigma_{i-1}\)
\end{document}
The output produced by `pdflatex` has a nice kerning:
compiled with pdflatex
compiled with pdflatex
pdflatex.png (71.87 KiB) Viewed 14324 times
But the outputs produced by {xe|lua}latex have insufficient kerning:
compiled with xelatex
compiled with xelatex
xelatex.png (77.51 KiB) Viewed 14324 times
compiled with lualatex
compiled with lualatex
lualatex.png (76.87 KiB) Viewed 14324 times
The amount of space is way too large around the parentheses as well as between the normalsize symbol such as π,σ, or τ and its subscript. In fact, the subscript is often closer to the subsequent comma than to the preceding letter, whereas this should be the other way round.

One could probably adjust the kernings on a letter-by-letter basis as described in the postings cited above. Has anyone done this dirty work perhaps so far for all of the slanted Greek from TeX Gyre Termes Math, or would we be doomed to reinvent the wheel? Is there some microtype-based solution, perhaps? If nothing else works, can we switch to another math font family, provided it is Times-like, is available for free, and can be harmonically accompanied by a matching Times-like font for the main text, an Arial/Helvetica-like font for the sans-emphasized (or symbol) text, and a Courier-like font for the monospaced text?

Crossposts: http://golatex.de/viewtopic,p,106262.html and http://texwelt.de/wissen/fragen/24700/k ... ermes-math.

Recommended reading 2024:

LaTeXguide.org • LaTeX-Cookbook.net • TikZ.org
LaTeX Beginner's Guide LaTeX Cookbook LaTeX TikZ graphics
Post Reply