如何创建以反斜杠为前导的西里尔字符的别名?

如何创建以反斜杠为前导的西里尔字符的别名?

RUN: xelatex book.tex

\documentclass[a5paper,12pt]{book}
\usepackage[X2,T2A,OT2]{fontenc}
\usepackage[english,russian]{babel}
\usepackage{marvosym}
\usepackage{fontspec}
\usepackage{xunicode,xltxtra,url,parskip}
\usepackage[usenames,dvipsnames]{xcolor}

\usepackage{supertabular}           
\usepackage{titlesec}
\newpagestyle{mystyle}{\setfoot[\thepage][][]{}{}{\thepage}}
\pagestyle{mystyle}

% \defaultfontfeatures{Mapping=tex-text}
% \setmainfont{OldStandard}[
%              Extension=.otf,
%              UprightFont=*-Regular,
%              ItalicFont=*-Italic,
%              BoldItalicFont =*-BoldItalic,
%              BoldFont=*-Bold
% ]
\newcommand{\И}{{\fontencoding{X2}\selectfont\CYRII}} % І
\newcommand{\и}{{\fontencoding{X2}\selectfont\cyrii}} % і
\newcommand{\Е}{{\fontencoding{X2}\selectfont\CYRYAT}} % Ѣ
\newcommand{\е}{{\fontencoding{X2}\selectfont\cyryat}} % ѣ
\newcommand{\Ф}{{\fontencoding{X2}\selectfont\CYROTLD}} % Ө
\newcommand{\ф}{{\fontencoding{X2}\selectfont\cyrotld}} % ө
\newcommand{\Ы}{{\fontencoding{X2}\selectfont\CYRIZH}} % Ѵ
\newcommand{\ы}{{\fontencoding{X2}\selectfont\cyrizh}} % ѵ

\usepackage[absolute]{textpos}
\begin{document}

\И \и \Е \е \Ф \ф \Ы \ы         % IT WORKS with trailing space!
Нар\еч\ие                       % Нарѣчіе, ERROR: Undefined control sequence.

\end{document}

为什么别名 , 等在没有尾随空格的情况下不起作用?是否可以创建此类别名?

答案1

你正在寻找并发症。这是一个工作版本,假如您使用具有所需字形的字体。

\documentclass[a5paper,12pt]{book}
\usepackage[english,russian]{babel}
\usepackage{fontspec}

\setmainfont{OldStandard}[
  Extension=.otf,
  UprightFont=*-Regular,
  ItalicFont=*-Italic,
  BoldItalicFont =*-BoldItalic,
  BoldFont=*-Bold
]

\begin{document}

И и Е е Ф ф Ы ы 

Наречие

Нарѣчіе

\end{document}

在此处输入图片描述

可以使用该包fontenc,但在非常特殊的情况下。不要加载xunicode也不xltxtra

如果你无法轻松输入古文字,你可以这样做

\newcommand{\И}{І}

但后面应该有一个空格,除非你更改了类别代码И(这可能很危险)。如果你喜欢大胆一点,

\newcommand{\И}{І} \catcode`И=12

(其他角色也类似)可能会这么做。

我更喜欢另一种方法,即定义\?查找以下字符并采取适当操作。该列表可轻松扩展到其他组合。

\documentclass[a5paper,12pt]{book}
\usepackage[english,russian]{babel}
\usepackage{fontspec}

\setmainfont{OldStandard}[
  Extension=.otf,
  UprightFont=*-Regular,
  ItalicFont=*-Italic,
  BoldItalicFont =*-BoldItalic,
  BoldFont=*-Bold
]

\ExplSyntaxOn
\NewDocumentCommand{\?}{m}
 {
  \str_case:nnF { #1 }
   {
    {И}{І} {и}{і}
    {Е}{Ѣ} {е}{ѣ}
    {Ф}{Ѳ} {ф}{ѳ}
    {Ы}{Ѵ} {ы}{ѵ}
   }
   {??}
 }
\ExplSyntaxOff

\begin{document}

\?И\?и\?Е\?е\?Ф\?ф\?Ы\?ы

Наречие

Нарѣчіе

Нар\?еч\?ие

\end{document}

在此处输入图片描述

相关内容