请注意,我实际上并没有打算写任何东西,例如俄语散文或任何俄语单词。只是,在纸上,我一直习惯用大写罗马字母表示集合,用手写字母表示集合的集合,并在需要时用大写西里尔字母表示集合的集合的集合。是否有一些我可以加载的包,允许我(在 LaTeX 数学模式下)排版西里尔字母,就像我排版希腊字母一样?即 $\Zhe$ 产生大写的 zhe。谢谢!
答案1
如果你只使用几个西里尔字母,并且只使用文本大小,最简单的方法是说
\usepackage[T2A,T1]{fontenc}
\newcommand{\Zhe}{\mbox{\usefont{T2A}{\rmdefault}{m}{n}\CYRZH}}
如果您还需要下标或上标中的它们,可以使用以下\mathchoice
方法获取它们:
\usepackage[T2A,T1]{fontenc}
\makeatletter
\def\easycyrsymbol#1{\mathord{\mathchoice
{\mbox{\fontsize\tf@size\z@\usefont{T2A}{\rmdefault}{m}{n}#1}}
{\mbox{\fontsize\tf@size\z@\usefont{T2A}{\rmdefault}{m}{n}#1}}
{\mbox{\fontsize\sf@size\z@\usefont{T2A}{\rmdefault}{m}{n}#1}}
{\mbox{\fontsize\ssf@size\z@\usefont{T2A}{\rmdefault}{m}{n}#1}}
}}
\makeatother
\newcommand{\Ze}{\easycyrsymbol{\CYRZ}}
这使得 \Ze 有各种尺寸可供选择。
使用的命名很简单:只需在字母的英文音译前面添加\cyr
或 即可。例如,小写的“shcha”是,大写的是。这称为字符的 LICR(LaTeX 内部字符表示)。\CYR
\cyrshch
\CYRSHCH
另一种解决方案,如果你需要整个曲目,又不想浪费太多资源,那么很有用
\usepackage[T2A,T1]{fontenc}
\DeclareSymbolFont{cyrillic}{T2A}{cmr}{m}{n}
\DeclareMathSymbol{\Sha}{\mathalpha}{cyrillic}{216}
因为 Sha 在 T2A 编码中处于该位置;这可以从文件中的定义中推断出来t2aenc.def
。通过使用一些魔法,我们可以直接使用字符的 LICR 名称:
\usepackage[T2A,T1]{fontenc}
\DeclareSymbolFont{cyrillic}{T2A}{cmr}{m}{n}
\def\makecyrsymbol#1#2{%
\begingroup\edef\temp{\endgroup
\noexpand\DeclareMathSymbol{\noexpand#1}
{\noexpand\mathalpha}{cyrillic}%
{\expandafter\expandafter\expandafter
\calccyr\expandafter\meaning\csname T2A\string#2\endcsname\end}}%
\temp}
\expandafter\def\expandafter\calccyr\string\char#1\end{#1}
\makecyrsymbol\Zhe\CYRZH
该命令\makecyrsymbol
有两个参数:第一个是符号的所需名称,第二个是西里尔字母的内部 LaTeX 名称。通过最后一行,我们将 \Zhe 定义为所有大小的数学命令。
此\usepackage[T2A,T1]{fontenc}
行对于将文档的主编码重置为 是必需的T1
;如果您的语言是英语,因此不需要重音字母,请使用OT1
,而不是T1
。我已将此行作为四个解决方案的前缀:选择您喜欢的一个。
答案2
可能有更好的方法可以做到这一点,但至少这里有一方式。据我所知,所需的字形都在 STIX 字体中,并且unicode 数学包可用于在数学中使用 STIX 字体。问题是的作者unicode-math
似乎没有考虑到(轻松)使用任意字形的可能性。经过一番挖掘和实验,得到了以下代码。希望unicode-math
(或fontspec
)的作者之一能停下来清理一下!
以下是代码(的想法):
\documentclass{standalone}
\usepackage{unicode-math}
\setmathfont{xits-math.otf}
\ExplSyntaxOn
\newcommand{\mathcyrillic}[2]{%
\chardef#1=#2
\um_set_mathcode:nnnn{#1}{\mathalpha}{\um_symfont_tl}{#2}}
\ExplSyntaxOff
\mathcyrillic{\Tse}{"0426}
\mathcyrillic{\Che}{"0427}
\mathcyrillic{\Sha}{"0428}
\begin{document}
\(\Sha \Che \Tse\)
\end{document}
显然,你必须填写字母表中其余的所需字符。你可以在以下网址获取西里尔字母的 Unicode 编号:这个维基百科页面。数字是十六进制的,因此需要在前面加上双引号:"
。
结果:
注意事项:您需要一种带有字形的字体(STIX 非常全面),并且您需要使用 XeLaTeX 或 LuaLaTeX 才能使该unicode-math
包正常工作。