3

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?

  • 2
    Minion Pro, PT Sans and Arial do support kerning in cyrillic, Linux Libertine and Linux Biolinum too, but they miss the pair Т+а which might be worth a bug report. Free Sans also supports kerning in cyrillic, however with very moderate values. This might be worth a bug report too. DejaVu indeed doesn’t kern cyrillic and I couldn’t check Noto. Also, your examples are off by one. What should be Linux Biolinum is Noto, DejaVu Sans is Biolinum etc, so in the end you don’t even see MinionPro and what you think is Trebuchet, is in fact PT Sans. Trebuchet doesn’t kern cyrillic at all! – georgd Jul 22 '13 at 9:42
  • @georgd: Wow, thanks! I'm trying to understand how come I have a an offset. Isn't it strange that Minion Pro, PT Sans, Arial, Linux Libertine, Linux Biolinum -- don't support Ta in cyrillic? – Adobe Jul 22 '13 at 10:32
  • What if you set Script w/ Language to Cyrillic in \newfontfamily? – Khaled Hosny Jul 22 '13 at 11:01
  • @Adobe you misunderstood me there. It’s only Libertine and Biolinum that don’t kern Т+а – georgd Jul 22 '13 at 17:27
4

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.

  • Isn't it strange that in each font Ta in English has a kerning different from Ta in Russian? – Adobe Jul 22 '13 at 11:41
  • @Adobe Ask the font developers; I'm not an expert in Russian typography, maybe they use less kerning. – egreg Jul 22 '13 at 12:13
  • Free Sans should kern that combination too, but hardly noticeable. Perhaps this is an older version. It’s not that strange that cyrillic is kerned differently from latin. Given the more smallcap like shapes of many letters, it might need looser spacing than latin. – georgd Jul 22 '13 at 17:53
  • @georgd otfinfo -v returns Version 0412.2268 for Free Sans. Your remark about the less tight kerning makes much sense. – egreg Jul 22 '13 at 18:05
  • ok, I’m looking at the source file which tells me it’s revision 2294, so I suppose it’s newer than your 2268. – georgd Jul 22 '13 at 18:50

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.