Well, not a best solution because there are lot of work around, but maybe someone will find it useful:
(1) In folder texmfs\install\fonts\type1\public\cm-super
there are .pfb
fonts that are used when you compile with pdfLaTeX
.
(2) Convert them in .otf
format using FortForge or some other application. (For the best results copy and extract .afm
files from texmfs\install\fonts\afm\public\cm-super
into same folder where the .pfb
files are). For this example I used only upright sfrm*.pfb
and bold sfbx*.pfb
fonts. Now I have fonts SFRM0500.otf
, SFRM0600.otf
... etc.
(3) If generated .otf
fonts are in the same folder where your .tex
file is, use the next code:
\documentclass[oneside,final,14pt]{extreport}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{russian}
\setotherlanguage{english}
\setmainfont[%
Extension = {.otf},
BoldFont = {SFBX1000},
UprightFont = {SFRM1000},
UprightFeatures={
SizeFeatures={
{Size={-6.0},Font=SFRM0500},
{Size={6.0-7.0},Font=SFRM0600},
{Size={7.0-8.0},Font=SFRM0700},
{Size={8.0-9.0},Font=SFRM0800},
{Size={9.0-10.0},Font=SFRM0900},
{Size={10.0-10.95},Font=SFRM1000},
{Size={10.95-12.0},Font=SFRM1095},
{Size={12.0-14.4},Font=SFRM1200},
{Size={14.4-17.28},Font=SFRM1440},
{Size={17.28-20.74},Font=SFRM1728},
{Size={20.74-24.88},Font=SFRM2074},
{Size={24.88-29.86},Font=SFRM2488},
{Size={29.86-35.38},Font=SFRM2986},
{Size={35.83-},Font=SFRM3583},
},
},
BoldFeatures={
SizeFeatures={
{Size={-6.0},Font=SFBX0500},
{Size={6.0-7.0},Font=SFBX0600},
{Size={7.0-8.0},Font=SFBX0700},
{Size={8.0-9.0},Font=SFBX0800},
{Size={9.0-10.0},Font=SFBX0900},
{Size={10.0-10.95},Font=SFBX1000},
{Size={10.95-12.0},Font=SFBX1095},
{Size={12.0-14.4},Font=SFBX1200},
{Size={14.4-17.28},Font=SFBX1440},
{Size={17.28-20.74},Font=SFBX1728},
{Size={20.74-24.88},Font=SFBX2074},
{Size={24.88-29.86},Font=SFBX2488},
{Size={29.86-35.38},Font=SFBX2986},
{Size={35.83-},Font=SFBX3583},
},
}
]
{SFRM1000}
\begin{document}
\chapter{Глава}
\section{Секция}
Текст.
\end{document}
Of course, one will have to create all fonts (italic, smallcaps,...) for the best solution. I've used just upright and bold to show how this can be done. Result:

(4) However, I would not recommend this solution, because it use a lot of resources, plus the generated .otf
fonts on this way will miss a lot of features; probably there is an easier way. Maybe someday someone create a font package similar to the Latin Modern that will have a Cyrillic letters in different optical sizes.