[Tex/LaTex] Cyrillic ttf/otf font with kerning support

cyrillicfontskerningxetex

I'm looking for a cyrillic ttf/otf font with kerning support. Here's a sample XeLaTeX document:

\documentclass{article}

\usepackage{fontspec} % enagles loading of OpenType fonts
\usepackage{polyglossia} % support for languages

% fonts:
\defaultfontfeatures{Scale=MatchLowercase,Mapping=tex-text} % without this XeLaTeX won't turn "--" into dashes

% Russian/English document:
\usepackage{xecyr}
\newfontfamily\cyrillicfont{NotoSans}

\setmainlanguage{russian} % \setdefaultlanguage{russian} is obsolete and not needed
\setotherlanguage[variant=american]{english}

\setlength{\parindent}{0pt}
\setcounter{secnumdepth}{-1}

\usepackage[dvipsnames]{xcolor}
\usepackage{titlesec}
\titleformat{\section}[block]{\color{Blue}\Large\bfseries}{}{1em}{}

\begin{document}

\section{Sans-serif}

\setmainfont{NotoSans}
\newfontfamily\cyrillicfont{NotoSans}
\textbf{NotoSans}:\\
\underline{Ta}ble? \\
\underline{Та}блица?
\medskip

\setmainfont{Linux Biolinum O}
\newfontfamily\cyrillicfont{Linux Biolinum O}
\textbf{Linux Biolinum O}: \\
\underline{Ta}ble? \\
\underline{Та}блица?
\medskip

\setmainfont{DejaVu Sans}
\newfontfamily\cyrillicfont{DejaVu Sans}
\textbf{DejaVu Sans}: \\
\underline{Ta}ble? \\
\underline{Та}блица?
\medskip

\setmainfont{Arial}
\newfontfamily\cyrillicfont{Arial}
\textbf{Arial}: \\
\underline{Ta}ble? \\
\underline{Та}блица?
\medskip

\setmainfont{PT Sans}
\newfontfamily\cyrillicfont{PT Sans}
\textbf{PT Sans}: \\
\underline{Ta}ble? \\
\underline{Та}блица?
\medskip

\setmainfont{Trebuchet MS}
\newfontfamily\cyrillicfont{Trebuchet MS}
\textbf{Trebouchet MS}: \\
\underline{Ta}ble? \\
\underline{Та}блица?
\medskip

\setmainfont{FreeSans}
\newfontfamily\cyrillicfont{FreeSans}
\textbf{FreeSans}: \\
\underline{Ta}ble? \\
\underline{Та}блица?
\medskip


\section{Serif}

\setmainfont{Linux Libertine O}
\newfontfamily\cyrillicfont{Linux Libertine O}
\textbf{Linux Libertine O}: \\
\underline{Ta}ble? \\
\underline{Та}блица?
\medskip


\setmainfont{DejaVu Serif}
\newfontfamily\cyrillicfont{DejaVu Serif}
\textbf{DejaVu Serif}: \\
\underline{Ta}ble? \\
\underline{Та}блица?
\medskip

\setmainfont{Minion Pro}
\newfontfamily\cyrillicfont{Minion Pro}
\textbf{Minion Pro}: \\
\underline{Ta}ble? \\
\underline{Та}блица?
\medskip


\end{document}

And the result is:

enter image description here

So it looks like only Trebouchet MS support kerning in Russian. How could it be? Do I do something wrong?

Best Answer

Here is my test:

\documentclass{article}
\usepackage[a4paper,margin=1cm]{geometry}

\usepackage{fontspec} % enagles loading of OpenType fonts
\usepackage{polyglossia} % support for languages
\setmainlanguage{russian}

% default font to keep fontspec happy
\setmainfont{PT Sans}
\newfontfamily\cyrillicfont{PT Sans}

\setlength{\parindent}{0pt}
\setcounter{secnumdepth}{-1}

\newcommand{\testTa}[1]{%
   \par\let\cyrillicfont\relax
   \newfontfamily\cyrillicfont{#1}\cyrillicfont
   #1 (\fontname\font)\par
   \sbox0{Та}Kerned width=\the\wd0\par
   \sbox0{\mbox{Т}\mbox{а}}Unkerned width=\the\wd0\par
   Та\par
   \mbox{Т}\mbox{а}\par\medskip}


\begin{document}

\section{Sans serif}

\testTa{Linux Biolinum O}

\testTa{DejaVu Sans}

\testTa{Arial}

\testTa{PT Sans}

\testTa{FreeSans}

\section{Serif}

\testTa{Linux Libertine O}

\testTa{DejaVu Serif}

\testTa{Minion Pro}

\end{document}

enter image description here

You see that Arial and PT Sans kern, among the sans serif fonts. For the serif ones, a kern is applied with Minion Pro.

A further test (not shown) with Trebuchet MS tells that this font doesn't kern that pair. One should test other character pairs in order to have more significant results.

Related Question