\MakeUppercase
仅适用Ukrainian
于XeLaTeX
\documentclass{book}
\usepackage{titlesec}
\usepackage[english,russian,ukrainian]{babel}
\usepackage{xecyr}
\usepackage{textcase}
\setmainfont[
Ligatures=TeX,
Extension=.otf,
BoldFont=cmunbx,
ItalicFont=cmunti,
BoldItalicFont=cmunbi,
]{cmunrm}
\begin{document}
\noindent
\selectlanguage{english}
\MakeUppercase{\chaptertitlename}\\
\selectlanguage{russian}
\MakeUppercase{\chaptertitlename}\\
\selectlanguage{ukrainian}
\MakeUppercase{\chaptertitlename}\\
\MakeTextUppercase{\chaptertitlename}\\
\end{document}
当我添加序言时
\usepackage[T2A,T1]{fontenc}
\MakeUppercase
开始。我应该使用fontenc
吗XeLaTeX
?或者它是 的一个错误,babel
或者其他什么?
答案1
俄语模块babel
已更新以用于 XeLaTeX,但乌克兰语模块尚未更新。
拥有 Polyglossia 技能,你就比较幸运了。
\documentclass{book}
\usepackage{polyglossia}
\usepackage{fontspec}
\usepackage{textcase}
\usepackage{titlesec}
\setmainlanguage{ukrainian}
\setotherlanguage{english}
\setotherlanguage{russian}
\setmainfont[
Ligatures=TeX,
Extension=.otf,
BoldFont=cmunbx,
ItalicFont=cmunti,
BoldItalicFont=cmunbi,
]{cmunrm}
\begin{document}
\noindent
\selectlanguage{english}
\MakeUppercase{\chaptertitlename}
\selectlanguage{russian}
\MakeUppercase{\chaptertitlename}
\selectlanguage{ukrainian}
\MakeUppercase{\chaptertitlename}
\MakeTextUppercase{\chaptertitlename}
\end{document}
答案2
“传统” LaTeX 中西里尔字母的大小写映射由 定义fontenc
。不幸的是,只有在加载一些“已知”编码时才会定义它们,这些编码的列表是硬编码的,不包括 EU1。但它们可以强制使用,例如:
\usepackage[T2A,EU1]{fontenc} % or X2,LCY..
MWE 似乎有效,但我不确定这个解决方案是否足够通用。是的,babel
您必须使用(很可能还有其他基于 LICR 的软件包)fontenc
。