我开始学习俄语,我需要在 LaTeX 中写俄语。我知道这个\foreignlanguage{russian}{text}
功能。但是我如何创建一个新命令,这样我只需要输入\rl{text}
?
\documentclass{article}
\usepackage[OT2, T1]{fontenc}
\usepackage[russian, english]{babel}
\begin{document}
\newcommand{\rl}[1] {\foreignlanguage{russian}{}}
\rl{This should be russian}
\end{document}
答案1
主要问题是你没有告诉 TeX什么用西里尔字母排版:你的定义最终丢弃了参数并且没有用俄语排版任何内容。
你需要
\newcommand{\rl}[1]{\foreignlanguage{russian}{#1}}
where#1
代表\rl
调用时跟随着的参数的内容。
由于 TeX 是一种宏扩展语言,
\newcommand{\rl}{\foreignlanguage{russian}}
可以,因为当 TeX 看到 时\rl{Russkii0 yazyk}
,它会\rl
用替换\foreignlanguage{russian}
。但可能第一种方法更容易理解。
但是,如果您打算使用默认的 Computer Modern 字体,最好对\cyrillictext
(切换到俄语时调用的内部宏)的工作方式进行更改。问题是cmr
编码 OT2 中的字体系列与仅作为位图提供的字体相关联。AMS 也分发了一种非常相似的字体,即 Type1。我建议的更改如下
\documentclass{article}
\usepackage[OT2, T1]{fontenc}
\usepackage[russian, english]{babel}
%% Let's patch \cyrillictext so that it uses
%% the Washington University fonts
\usepackage{xpatch}
\xpatchcmd{\cyrillictext}
{\selectfont}
{\fontfamily{wncyr}\selectfont}
{}{}
\let\cyr\cyrillictext
\newcommand{\rl}[1] {\foreignlanguage{russian}{#1}}
\begin{document}
\rl{Russkii0 yazyk}
\end{document}
输出结果的比较应该能说明一切。在第一张图片中,你看到的是像素化的字体。第二个例子中的“ka”和“ya”略有不同,但我认为“更像西里尔文”。