When compiled, the following code works perfectly.

\setmainfont{CMU Serif}
абц АБЦ \textsc{абц} \textit{абц} \textsl{абц}

abc ABC \textsc{abc} \textit{abc} \textsl{abc}

However, if I change english to serbian


then I get the warning

LaTeX Font Warning: Font shape `EU1/CMUSerif(2)/m/sc' undefined
(Font)              using `EU1/CMUSerif(2)/m/n' instead on input line 8.

and small caps do not show correctly. How can I get small caps working in serbian documents (using both Cyrillic and Latin script)?

EDIT: I noticed that if I use


small caps work correctly, and the problem shows up only if I use


which is the default option.

  • Do small caps make sense in Cyrillic texts?
    – egreg
    Oct 10, 2015 at 18:00
  • Why not? I need to achieve the following effect Cyrillic Small Caps Oct 10, 2015 at 18:23
  • Even the Paratype fonts don't have small caps for Cyrillic
    – egreg
    Oct 10, 2015 at 19:59
  • It seems that CMU Serif font that I use here does support Cyrillic small caps, since everything displays correctly when the language is set to english. output.pdf Oct 10, 2015 at 20:14
  • I suppose it's a problem on the font side, because without polyglossia and fontspec only, declaring the font with \setmainfont[Script=Cyrillic,Language=Serbian]{CMU Serif} shows the same problem with \textsc. No problem if Language is set to Russian.
    – egreg
    Oct 10, 2015 at 20:28

1 Answer 1


I found a solution that works. Since the problem is in the Language/Script combination, I temporary switch to the default language for all small caps.

\setmainfont{CMU Serif}[SmallCapsFont={CMU Serif},

If there are any better solutions, please describe them.

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.