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
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.
Best Answer
For the underscore, the following works:
However, it is a bit crazy and unstable. If you want to use it only for short texts (not spanning multiple paragraphs), the following would be better. (It doesn't work in the above example, since there we span multiple pagraphs. In real, it will throw an error if you put odd number of
_
in one paragraph.)You can use the same ideas for the star. The problem is, that
\section*{Text}
will suddenly stop working. Variant 1:Variant 2:
If you don't use math at all, just use
^
instead of*
and it should be ok.How does it work: The primitive macro
\catcode
makes_
\active
so that we can define it as any other command.In Variant 1, we define it to (1) start a group (2) start italic text (3) add italic correction to the end of the italic text (4) make the one next
_
end the group we started. By the end of the group, the re-definition of_
is forgotten so another_
will again start an italic text.The Variant 2 is even simpler: When
_
is found, a second_
is looked for, end everything inbetween is put into\textit
.The
\protected
directive makes sure that_
is written as_
in the auxiliary files, which is necessary for it to behave correctly.