我尝试用 ascii 字母排版俄文字符,因此我参考了latex_cyrillic。可以运行,但部分标题失败。如何解决?
\documentclass{article}
\usepackage[OT2,OT1]{fontenc}
\newcommand\cyr{%
\renewcommand\rmdefault{wncyr}%
\renewcommand\sfdefault{wncyss}%
\renewcommand\encodingdefault{OT2}%
\normalfont
\selectfont}
\DeclareTextFontCommand{\textcyr}{\cyr}
\def\Eob{\char3}
\def\eob{\char11}
\def\cpr{\char126}
\def\cdpr{\char127}
\def\Cpr{\char94}
\def\Cdpr{\char95}
\begin{document}
\section{{\cyr L{ya}punov} theorem}
{\cyr Poslednee dokazatel\cpr stvo mozhno obobshchit\cpr
sleduyushchim zamechaniem, kotoroe nam eshche prigodit\mbox{}sya.}
\end{document}
答案1
定义\cyr
为强健的命令:
\DeclareRobustCommand\cyr{%
\renewcommand\rmdefault{wncyr}%
\renewcommand\sfdefault{wncyss}%
\renewcommand\encodingdefault{OT2}%
\normalfont
\selectfont}
顺便说一句,你的定义如
\def\Eob{\char3}
是错误的。使用
\chardef\Eob=3
(更有效率)或
\newcommand\Eob{\symbol{3}}
无论如何,它们都不是必需的:输入e1
(小写) 或E1
(大写) 即可得到“e oborotnoye”。同样,软符号是p1
或P1
,硬符号是p2
或。和P2
之间的分隔符更方便的方法是。t
s
\/
\documentclass{article}
\usepackage[OT2,OT1]{fontenc}
\DeclareRobustCommand\cyr{%
\renewcommand\rmdefault{wncyr}%
\renewcommand\sfdefault{wncyss}%
\renewcommand\encodingdefault{OT2}%
\normalfont
\selectfont}
\DeclareTextFontCommand{\textcyr}{\cyr}
\newcommand\Eob{\symbol{3}} % or \chardef\Eob=3
\newcommand\eob{\symbol{11}}
\newcommand\cpr{\symbol{126}}
\newcommand\cdpr{\symbol{127}}
\newcommand\Cpr{\symbol{94}}
\newcommand\Cdpr{\symbol{95}}
\begin{document}
\section{{\cyr Lyapunov} theorem}
{\cyr Poslednee dokazatelp1stvo mozhno obobshchitp1sleduyushchim
zamechaniem, kotoroe nam eshche prigodit\/sya.}
{\cyr \Eob\eob\Cpr\cpr\Cdpr\cdpr}
{\cyr E1e1P1p1P2p2}
\end{document}
有什么问题?由于 ,粗体属性不被认可\normalfont
。
您可以使用以下方法解决此问题
\makeatletter
\DeclareRobustCommand\cyr{%
\fontfamily{wncy\ifnum\pdfstrcmp{\f@family}{\sfdefault}=0 ss\else r\fi}%
\fontencoding{OT2}%
\selectfont}
\makeatother
一个更为强大的解决方案是将华盛顿大学字体定义为属于OT2 编码中的字体系列cmr
。cmss
\documentclass{article}
\usepackage[OT2,OT1]{fontenc}
\DeclareFontFamily{OT2}{cmr}{\hyphenchar\font45 }
\DeclareFontShape{OT2}{cmr}{m}{n}{<->wncyr10}{}
\DeclareFontShape{OT2}{cmr}{m}{it}{<->wncyi10}{}
\DeclareFontShape{OT2}{cmr}{m}{sc}{<->wncysc10}{}
\DeclareFontShape{OT2}{cmr}{b}{n}{<->wncyb10}{}
\DeclareFontShape{OT2}{cmr}{bx}{n}{<->ssub*wncyr/b/n}{}
\DeclareFontFamily{OT2}{cmss}{\hyphenchar\font45 }
\DeclareFontShape{OT2}{cmss}{m}{n}{<->wncyss10}{}
\DeclareRobustCommand\cyr{\fontencoding{OT2}\selectfont}
\DeclareTextFontCommand{\textcyr}{\cyr}
\newcommand\Eob{\symbol{3}} % or \chardef\Eob=3
\newcommand\eob{\symbol{11}}
\newcommand\cpr{\symbol{126}}
\newcommand\cdpr{\symbol{127}}
\newcommand\Cpr{\symbol{94}}
\newcommand\Cdpr{\symbol{95}}
\begin{document}
\section{{\cyr Lyapunov} theorem}
{\cyr Poslednee dokazatelp1stvo mozhno obobshchitp1sleduyushchim
zamechaniem, kotoroe nam eshche prigodit\/sya.}
{\cyr \Eob\eob\Cpr\cpr\Cdpr\cdpr}
{\cyr E1e1P1p1P2p2}
{\sffamily Abcdef\cyr Abcdef}
\end{document}
如您所见,所有字体属性均受尊重(只要 OT2 编码中的相应字体可用)。