[Tex/LaTex] There is no bold text, italics in IEEEtran

boldfontsieeetran

I have a problem of non working \textbf, \bfseries commands (and almost all changing fontstyle commands) in russian document (in english, everything is okay) in \documentclass[conference,a4paper]{IEEEtran}.

What should I do?

Look at the screenshot. Almost all words in non-cyrillic variant are bold with analogical code (with T1 fontenc, btw ). But there is no bold text in cyrillic.

Also, Note that other commands like \textit \slshape don't work.

PS. The second little question. I have a russian babel, and the word 'Abstract' comes into "Аннотация". But there is no effect with 'Index Terms'. How to rename it into "Ключевые понятия" carefully? I can do it very dirty. I don't like it.

enter image description here

Here everything is okay. Everything expect sectionname is bold.
enter image description here

MWE:

\documentclass[conference,a4paper]{IEEEtran} 

\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel} 

\title{Исследование}

\begin{document}
\maketitle
\begin{abstract}
We propose ... \\
Мы предлагаем...
\end{abstract}
\begin{IEEEkeywords}
Broad band networks...\\ Сети...
\end{IEEEkeywords}

\section{Описание задачи}
\textbf{Сети} \textbf{Сети} \bfseries \textit{ \slshape Cети}
\end{document}

Best Answer

IEEEtran.cls is not designed to support languages requiring non-Latin script. It sets the default fonts to ptm, phv and pcr which are Adobe's Times, Helvetica and Courier. Almost certainly what you get in English are URW's clones of these fonts, utm, uhv and ucr.

However, these fonts don't support Cyrillic, so LaTeX is falling back to the defaults for the T2A encoding as the console output clearly shows:

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

This is the regular serif. Now what happens is that it obviously can't find bold Times Cyrillic either:

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

So it substitutes the regular weight instead. That is, it doesn't look for bold Computer Modern. It looks for bold Times and, not finding it, it looks for medium Times, which has already been substituted with medium Computer Modern.

Similar things happen for different shapes. For example,

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

This is because generally you don't want LaTeX to switch font families when it can't find a weight or shape. You want it to fall back to a medium weight or an upright shape. Normally, that's the right (least unexpected) thing to do.

Only, in this case, there is no medium upright Times Cyrillic, so it falls back eventually to Computer Modern anyway. And because it has tried substituting a different weight and shape before resorting to substituting a different font family, the weight and shape is always the same.

We can force the use of Computer Modern Cyrillic (which is what we're getting anyway) with

\renewcommand{\sfdefault}{cmss}
\renewcommand{\rmdefault}{cmr}
\renewcommand{\ttdefault}{cmt}

which permits the use of bold, italics etc.

Note, however, that the compiled PDF does not constitute the 'camera-ready' output mentioned in the console output because it does not use type 1 fonts. This is why you need to ask the journal or conference which fonts you should use.

The reason that Index Terms is not translated is because it is specific to the class and not translated by Babel. You can simply define it with

\def\IEEEkeywordsname{Ключевые понятия}

The other class-specific term is Proof. If you need this, substitute the appropriate Russian as follows.

\def\IEEEproofname{Proof}% substitute the Russian here

This gives us the following code

\documentclass[conference,a4paper,russian]{IEEEtran}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\def\IEEEkeywordsname{Ключевые понятия}
\def\IEEEproofname{Proof}% substitute the Russian here
\renewcommand{\sfdefault}{cmss}
\renewcommand{\rmdefault}{cmr}
\renewcommand{\ttdefault}{cmt}

\title{Исследование}

\begin{document}
\maketitle
\begin{abstract}
We propose ... \\
Мы предлагаем...
\end{abstract}
\begin{IEEEkeywords}
Broad band networks...\\ Сети...
\end{IEEEkeywords}

\section{Описание задачи}
\textbf{Сети} \textbf{Сети} \bfseries \textit{ \slshape Cети}
\end{document}

which produces

output

Note that if your paper also includes English, you should load the appropriate settings for Babel and switch to English when needed.

\documentclass[conference,a4paper,british,russian]{IEEEtran}

or

\documentclass[conference,a4paper,american,russian]{IEEEtran}

will make Russian the main language but permit switching to English when needed. See Babel's documentation for further details if you need this.