6

I need to use the T2A encoding along with babel to include some Russian names in an English-language document. However, including

\usepackage[T1,T2A]{fontenc}

in the preamble makes all the text fonts, including English, lighter in weight, as in the following:

\documentclass[12pt]{article}    
\usepackage{lipsum}    
\usepackage{times}

\usepackage[T1,T2A]{fontenc}
%\usepackage[T1]{fontenc}

\begin{document}
\Large    
\lipsum[1]
\end{document}

Lighter weight characters when T2A is used, too.

Compare the preceding output with that from when I use T1 encoding alone:

\documentclass[12pt]{article}    
\usepackage{lipsum}    
\usepackage{times}

%\usepackage[T1,T2A]{fontenc}
\usepackage[T1]{fontenc}

\begin{document}
\Large    
\lipsum[1]
\end{document}

Heavier weight with just T1 encoding

This heavier-weight is what I see when I don't use fontenc at all.

Questions:

  1. Why does the T2A encoding cause this?
  2. What is the remedy — so that the weight will be the same as normally, when fontenc is not used at all?

Composite solution:

The following was suggested by @Davislor's answer (https://tex.stackexchange.com/a/494900/13492) along with the discussion of Tempora-TLF in https://tex.stackexcange.com/questions/473057/russian-language-bold-font-problem-with-newtxtext.

\documentclass[12pt]{article}    
\usepackage{lipsum}

\usepackage[T2A,T1]{fontenc}
\usepackage[russian,main=english]{babel}    
\usepackage{substitutefont}
\substitutefont{T2A}{\rmdefault}{Tempora-TLF}

\usepackage[lucidasmallscale]{lucidabr}

\begin{document}
\Large  
\noindent The names are{ \Russian Алекс\'{а}ндров}, {\Russian Т\'{и}хонов}, and {\Russian Урыс\'{o}н}. 
\lipsum[1]    
\end{document}

Tempora-TLF as T2A fonts.

Notice that I'm using now Lucida Bright fonts (the ones my actual, book-length document employs), and even for that the font weight of the Russian names matches that of the surrounding English text — even though the Tempora-TLF fonts were intended for use with others.

  • 2
    I can't answer why the T2A encoding causes this effect, but it's a fact that the "lighter" font is Computer Modern, not Times. As far as I know, nobody has ever created a TeX-compatible Cyrillic font using T2 encoding.*except* for the one compatible with CM. Also, I believe that the times package has been superseded, but others can address that more authoritatively. – barbara beeton Jun 9 at 1:27
  • @barbarabeeton: In my actual document, I'll be using Lucida Bright fonts (\usepackage{lucidabr}), and exactly the same issue occurs with them. – murray Jun 9 at 2:41
  • @murray Unfortunately, Lucida Bright doesn’t support Cyrillic. – Davislor Jun 9 at 4:16
  • @barbarabeeton There are a few other T2A fonts (ctan.org/topic/font-cyrillic), including: Tempora (Times), Heuristica (Utopia), DejaVu, Gentium and Libertine. There’s also the substitutefont package, which could be used to select Tempora as the replacement for Times, or Heuristica for Lucida Bright. – Davislor Jun 9 at 8:56
  • 1
    @Davislor -- Thanks for the information. Since I was at least partly responsible for the original Cyrillic fonts created for TeX use (see the amsfonts documentation), I'm glad to learn there are alternatives for the T2A encoding. – barbara beeton Jun 9 at 13:46
10

In the Modern Toolchain

To answer your second question first, here is what I recommend. If possible, replace fontenc with fontspec and use a modern TrueType or OpenType font.

\documentclass[12pt]{article}    
\usepackage{babel}
\usepackage{fontspec}
\usepackage[paperwidth=11cm]{geometry} % To fit into the allowed width.

\babelprovide[main, import=en]{english}
\babelprovide[import=ru]{russian}

\setmainfont{Times New Roman}

\begin{document}
\Large
Fyodor Dostoevsky (\foreignlanguage{russian}{Фёдор Достоевский}) and
Alexander Pushkin (\foreignlanguage{russian}{Александр Пушкин}).
\end{document}

Times New Roman sample

As you can see, that sample uses Times rather than Computer Modern and loads Russian hyphenation patterns. \babelprovide[import] converts the font encoding for you. Either choose a font that supports Cyrillic, or use \babelfont to change fonts.

Depending on how useful the hyphenation patterns are to you, you might even be able to drop the babel package, and just type in Cyrillic letters. Another method of loading a different font for a different script, which doesn’t require markup in the document body, is ucharclasses, but this doesn’t hyphenate. Also consider \usepackage{microtype} in LuaLaTeX to dramatically cut down on the amount of hyphenation your document needs.

In the Legacy Toolchain

If you cannot change to LuaLaTeX or XeLaTeX, you will need to actually fix problem 1. That’s simple. The last encoding you give to fontenc becomes the default encoding. The Times font (ptm*) does not come in T2A, so LaTeX falls back to Computer Modern. PDFLaTeX gives me the following error message on your first MWE:

LaTeX Font Warning: Font shape `T2A/ptm/m/n' undefined
(Font)              using `T2A/cmr/m/n' instead on input line 8.

In this case, you want to use only a few Russian names. So, you want to load English as the main language, Russian as a second language, and use babel to switch between the encodings of these two languages. One legacy font based on Times that covers Cyrillic is Tempora.

\documentclass[12pt]{article}    
\usepackage[X2, T1]{fontenc}
\usepackage{textcomp}
\usepackage{tempora}
\usepackage[russian, main=english]{babel}
\usepackage[paperwidth=11cm]{geometry} % To fit into the allowed width.

\begin{document}
\Large
Fyodor Dostoevsky (\foreignlanguage{russian}{Фёдор Достоевский}) and
Alexander Pushkin (\foreignlanguage{russian}{Александр Пушкин}).
\end{document}

Tempora sample

In order to use a font family with an encoding that it does not support, you would need to switch fonts whenever you switch languages. You can do this with the substitutefont package (or by declaring a new \textrussian command that changes both the language and the \fontfamily). E.g.:

\usepackage{tempora}
\usepackage{times}
\usepackage{substitutefont}

\substitutefont{T2A}{\familydefault}{Tempora-TLF}

There are not many fonts that support T2A, and nearly all are extensions of an existing font. These include Computer Modern Unicode, Tempora (Times), Heuristica (Utopia), DejaVu, Libertine and Gentium.

  • Using the option order T2A, T1 to fontenc solves the problem of the main, English, font being made too light — even with lucidabr. Alas, because Lucida bright fonts are heavier than many others, still the bit of Cyrillic will have a noticeably lighter weight. – murray Jun 9 at 14:33
  • I do want to continue to use the "legacy" toolchain, with Type 1 fonts. Your solution for that, to use tempora, led me to tex.stackexcange.com/questions/473057/… and to using \substitutefont{T2A}{\rmdefault}{Tempora-TLF}. For the very occasional mention of Russian names in Cyrillic characters, this gives, to my eye, satisfactory results even with Lucida Bright as the main text font. (For the sake of completeness, I'm going to amend my question to show this) – murray Jun 9 at 14:36
  • @murray I don’t have Lucida Bright on my system to check, but you might also try out Heuristica or DejaVu Serif as the substitute font. – Davislor Jun 9 at 20:52
  • 1
    @Davislor A good answer must always have a medal. :-) – Sebastiano Jun 15 at 21:27
  • 1
    @Sebastiano Thank you! Much appreciated. – Davislor Jun 15 at 21:33

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.