外语新命令

外语新命令

我开始学习俄语,我需要在 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”略有不同,但我认为“更像西里尔文”。

使用默认西里尔字体输出

在此处输入图片描述

使用华盛顿大学字体的输出

在此处输入图片描述

相关内容