我遇到了在俄语文档中(英文文档中一切正常)命令(以及几乎所有更改字体样式的命令)不起作用的\textbf
问题。\bfseries
\documentclass[conference,a4paper]{IEEEtran}
我应该怎么办?
看看截图。几乎所有非西里尔文变体中的单词都使用类比代码加粗(顺便说一下,使用 T1 fontenc)。但是西里尔文中没有加粗文本。
另请注意,其他命令(例如) \textit \slshape
不起作用。
PS。第二个小问题。我有一个俄语 babel,单词“Abstract”变成了“Аннотация”。但是“Index Terms”没有效果。如何小心地将其重命名为“Ключевые понятия”?我可以做得很脏。我不喜欢这样。
一切正常。除 sectionname 外,其他内容均以粗体显示。
梅威瑟:
\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}
答案1
IEEEtran.cls
不支持需要非拉丁文字的语言。它将默认字体设置为 和,ptm
即Adobe 的 Times、Helvetica 和 Courier。几乎可以肯定,您在英语中看到的是 URW 对这些字体的克隆,和。phv
pcr
utm
uhv
ucr
但是,这些字体不支持西里尔文,因此 LaTeX 恢复为T2A
编码的默认设置,如控制台输出清楚显示的那样:
LaTeX Font Warning: Font shape `T2A/ptm/m/n' undefined
(Font) using `T2A/cmr/m/n' instead on input line 105.
这是常规衬线。现在发生的事情是,它显然也找不到粗体 Times Cyrillic:
LaTeX Font Warning: Font shape `T2A/ptm/bx/n' undefined
(Font) using `T2A/ptm/m/n' instead on input line 121.
因此它用常规粗细来代替。也就是说,它不寻找粗体 Computer Modern。它寻找粗体 Times,如果找不到,它就寻找中等粗细的 Times,而后者已经被中等粗细的 Computer Modern 代替。
不同形状的情况也类似。例如,
LaTeX Font Warning: Font shape `T2A/ptm/m/it' undefined
(Font) using `T2A/ptm/m/n' instead on input line 121.
这是因为,通常您不希望 LaTeX 在找不到粗细或形状时切换字体系列。您希望它恢复到中等粗细或直立形状。通常,这是正确的(最不意外的)做法。
只是,在这种情况下,没有中等直立 Times Cyrillic,所以它最终还是会回到 Computer Modern。而且,由于在诉诸替换不同的字体系列之前,它曾尝试替换不同的粗细和形状,所以粗细和形状始终相同。
我们可以强制使用计算机现代西里尔字母(无论如何我们都会得到这个字母),
\renewcommand{\sfdefault}{cmss}
\renewcommand{\rmdefault}{cmr}
\renewcommand{\ttdefault}{cmt}
允许使用粗体、斜体等。
但请注意,编译后的 PDF 并不构成控制台输出中提到的“照相就绪”输出,因为它不使用 1 型字体。这就是为什么您需要向期刊或会议询问您应该使用哪种字体的原因。
之所以Index Terms
没有翻译,是因为它特定于类,并且不会被 Babel 翻译。你可以简单地用以下方式定义它:
\def\IEEEkeywordsname{Ключевые понятия}
另一个特定于类的术语是Proof
。如果您需要它,请按如下方式替换适当的俄语。
\def\IEEEproofname{Proof}% substitute the Russian here
这给了我们下面的代码
\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}
产生
请注意,如果您的论文还包含英文,您应该加载 Babel 的适当设置并在需要时切换到英文。
\documentclass[conference,a4paper,british,russian]{IEEEtran}
或者
\documentclass[conference,a4paper,american,russian]{IEEEtran}
将俄语设为主要语言,但允许在需要时切换到英语。如果您需要此功能,请参阅 Babel 的文档以了解更多详细信息。
答案2
您可以使用与 Times 兼容的西里尔字体,称为 Tempora。您只需补充适合小写字母的定义(IEEEtran 使用这种字体,但对西里尔字母来说意义不大)。
使用标准babel
方法更改固定标签。
\documentclass[conference,a4paper]{IEEEtran}
\usepackage[T2A]{fontenc}
\usepackage[russian]{babel}
\usepackage{tempora}
\LoadFontDefinitionFile{T2A}{Tempora-TLF}
\DeclareFontShape{T2A}{Tempora-TLF}{m}{sc}{
<-> ssub * Tempora-TLF/m/n
}{}
\setlocalecaption{russian}{IEEEkeywords}{Ключевые понятия}
\title{Исследование}
\begin{document}
\maketitle
\begin{abstract}
We propose ... \\
Мы предлагаем...
\end{abstract}
\begin{IEEEkeywords}
Broad band networks...\\ Сети...
\end{IEEEkeywords}
\section{Описание задачи}
\textbf{Сети} \textbf{Сети} \bfseries \textit{Cети}
\end{document}
答案3
添加此代码
\def\keywords{\normalfont%
% IEEE uses the term (in bold italics) "Index Terms" now.
\if@twocolumn%
\@IEEEabskeysecsize\bfseries\textit{Index Terms}---\,\relax%
}
并使用\textbf{text}
。它对我有用。