[Tex/LaTex] Cyrillic font for XeLaTeX in OS X

cyrillicfontsmacxetex

I'm switching to XeLaTeX and have a problem choosing a Cyrillic (Russian) font for the document. If I try just

\documentclass[a4paper,12pt]{report}     

\usepackage{polyglossia}
\setdefaultlanguage{russian}

\begin{document}
Hi! Привет!
\end{document}

an error is thrown:

Package polyglossia Error: The current roman font does not contain the Cyrillic script!

As far as I understand I must explicitly specify a font. Unfortunately I know close to nothing about fonts and I have no guidelines imposed to follow. What is a recommended Cyrillic font in OS X? Some kind of rule of thumb to set and forget about.

Best Answer

The good news is that there are lots and lots of opentype font families that provide a full Cyrillic alphabet and are easy to use with XeLaTeX (and LuaLaTeX). The bad news is that you may have to spend some time choosing which font family best suits your needs. MacOS X provides quite a few such font families; it's also fairly easy to download and activate additional fonts -- high-quality and free of charge -- that may suit your needs better than the ones that come pre-installed with MacOS X.

The main font-related package you should become familiar is called fontspec. It provides the command \setmainfont, and many more.

MacOSX provides an application called FontBook. FontBook provides a convenient (though slow) method for inspecting all installed fonts for various features, including whether cyrillic characters are included in a given font.

Here's an entirely non-representative sample of font families that feature cyrillic characters. Some fonts should already be installed on your system, while others (e.g., EB Garamond and XITS) may need to be downloaded and activated first.

enter image description here

%% !TEX TS-program = xelatex
\documentclass[a4paper,12pt]{report}     
\usepackage{fontspec}
\setmainfont{lmroman10-regular.otf}
\usepackage{polyglossia}
\setdefaultlanguage{russian}
\newcommand\hi{Hi! Привет!\newline}

\begin{document}\pagestyle{empty}
\noindent Some serif fonts\newline
\noindent%
\setmainfont{Garamond Premier Pro}\hi
\setmainfont{EB Garamond} \hi
\setmainfont{Arno Pro} \hi
\setmainfont{XITS} \hi
\setmainfont{Cambria} \hi
\setmainfont{Minion Pro} \hi

\bigskip\noindent%
\setmainfont{lmroman10-regular.otf}%
Some sans-serif fonts\newline
\setmainfont{Calibri} \hi
\setmainfont{Arial}\hi
\setmainfont{Myriad Pro} \hi
\end{document}
Related Question