1

I have a Russian Cyrillic word within an English LaTeX document, and I have the texlive-full TeX distribution installed to process it. The Russian word should be in bold text, but it is too faint. The English font is "Tex Gyre Schola" which seems bolder than average to my eyes, and so I would like the Cyrillic word to come in bolder for a better match to the English font.

My document is being generated with pdftex or pdflatex (? I'm not sure what the difference is). Also, The Preamble has had some adjustments to accommodate the Russian word.

--adding "T2A" in the options:

\usepackage[T2A,T1]{fontenc}  

--making sure this is a UTF8 encoding:

\usepackage[utf8]{inputenc}

--using the babel package and adding "russian" within the options

\usepackage[russian,english]{babel} 

and within the body of the English document, I implement the Russian word as follows

\foreignlanguage{russian}{русское слово} %% русское слово = my russian word %% 

to make the Russian word bold, I've tried prefixing the Russian word with:

{\bfseries русское слово}

and

{\textbf{русское слово}}

but the Russian word does not get any bolder.

Is there an easy way to fix this problem?

2
  • 1
    This picture (click) is what I get with \foreignlanguage{russian}{\textbf{русское слово} русское слово} (with English text for comparison). – egreg Jul 4 '20 at 17:20
  • 1
    The easiest solution is to remove fontenc and inputenc and add a line like \babelfont{rm}{DejaVu Serif}. Then compile with LuaLaTeX or XeLaTeX. This loads fontspec and a modern font that supports both languages. – Davislor Jul 5 '20 at 1:36
3

Without a MWE, we can’t reproduce this problem. However, you say that you’re using the font tgschola. This does not support Cyrillic, so if you check the log, you’re probably getting a message similar to:

LaTeX Font Warning: Font shape `T2A/qcs/b/n' undefined
(Font)              using `T2A/qcs/m/n' instead on input line 23.

This tells you that no T2A version of TeX Gyre Schola (family qcs) Bold (series b, shape n) exists, so it fell back to the medium weight of Computer Modern.

The solution is to choose a Cyrillic font to supplement TeX Gyre Schola. Since this is a clone of URW’s version of New Century Schoolbook, you might use Century or Century Schoolbook if you have it on your system. A free font based on Century is Old Standard, although this is slightly lighter than TeX Gyre Schola. Here, I went with DejaVu Serif.

You might also just use a font that supports both Cyrillic and Latin as your main font.

In the Modern Toolchain

I recommend using modern fonts and Unicode when you can, and legacy 8-bit fonts when you have to. Some publishers unfortunately still require authors to use them.

You can declare substitute fonts for Russian with \babelfont[russian]{rm}, \babelfont[russian]{sf}, and \babelfont[russian]{tt}. You could also just pick a font that contains Cyrillic. (Such as older versions of TeX Gyre Schola itself! See below.)

Be sure to declare \tracinglostchars=2 to warn you if you are trying to display glyphs the current font does not contain! Without this, TeX will silently omit any Cyrillic letters if you have the wrong language selected, with just a warning message buried in the .log file.

With Legacy Fonts

If you need PDFLaTeX compatibility, you can declare a Cyrillic substitute font for your font families. The selection of fonts packaged as T2A from CTAN is very limited (unless you want to take a TrueType or OpenType font and convert it yourself). Here, I chose Tempora, which is based on Times.

You can use \substitutefont{T2A}{\rmdefault}{...} and \substitutefont{T2A}{\sfdefault}{...} from substitutefont to declare these substitutions.

The Code

\tracinglostchars=2 % Warn if a glyph is missing from the current font.
\documentclass[russian, english]{article}
\usepackage{iftex}

\ifTUTeX
  \usepackage{babel}
  \usepackage{fontspec}
  \defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX }
  
  \babelfont{rm}
            [Ligatures=Common]{TeX Gyre Schola}
  \babelfont[russian]{rm}
            {DejaVu Serif}
\else
  \usepackage[T2A,T1]{fontenc}
  \usepackage{babel}
  \usepackage{substitutefont}
  \usepackage{tempora}
  \usepackage{tgschola}
  \substitutefont{T2A}{\rmdefault}{Tempora-TLF}
\fi

\babeltags{russian=russian} % Adds \textrussian, \begin{russian}, etc.

\begin{document}
  English text and \textrussian{русские}.
  
  \textbf{In bold, \textrussian{русское слово}.}
\end{document}

Output with LuaLaTeX (Cyrillic in DejaVu Serif):

DejaVu Serif Sample

Compiled with PDFLaTeX, you get Cyrillic in Tempora:

Tempora font sample

Using Older Versions of TeX Gyre Schola

Strangely, version 1.103 of TeX Gyre Schola did contain a Cyrillic alphabet, which has been removed from version 2.005. If you specify the older version with something like

\babelfont{rm}
          [Ligatures = Common,
           Path=fonts/,% Must contain version 1.103 of the font files.
           UprightFont=*-regular,
           BoldFont=*-bold,
           ItalicFont=*-italic,
           BoldItalicFont=*-bolditalic,
           Extension=.otf
          ]{texgyreschola}

This will work in LuaLaTeX or XeLaTeX.

1
  • I used your information to correct my font problem, using the DejaVuSerif-TLF font for T2A encoding and TeX-Gyre-Schola for T1 encoding. They are a perfect match! I suppose it was reverting to the faint computer modern for T2A encoding, as you had said – user12711 Jul 8 '20 at 2:02

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.