请考虑以下LuaLaTeX
可编译代码。它假设将用小写希腊文写的句子转换为大写,但没有重音符号。它转换为大写,但大写字母中的重音符号仍然存在。此外,它使用了两种不同的方法,但都失败了。任何建议都值得赞赏。
% !TeX program = lualatex
\documentclass{article}
\usepackage[a4paper, total={180mm,257mm},left=15mm,top=20mm]{geometry}
\usepackage[no-math]{fontspec}
\defaultfontfeatures{Scale=MatchLowercase, Script=Greek}
\setmainfont{STIX Two Text}
\usepackage{polyglossia}
\setdefaultlanguage{greek}
\setotherlanguage{english}
\begin{document}
Μικρό Κείμενο για τον έλεγχο της μετατροπής των πεζών σε κεφαλαία
\MakeUppercase{Μικρό Κείμενο για τον έλεγχο της μετατροπής των πεζών σε κεφαλαία}
\let\acctonos\relax\MakeUppercase{Μικρό Κείμενο για τον έλεγχο της μετατροπής των πεζών σε κεφαλαία}
\end{document}
答案1
处理大小写映射的方式发生变化,使系统能够识别区域设置。目前,此功能设置为“自动检测”区域设置,babel
但不是polyglossia
:遗憾的是,目前还没有一个通用接口来访问这些数据。可以手动提供区域设置
\MakeUppercase[locale = el]{...}
但这是为了更多特别指定情况。您可以添加 的功能polyglossia
,但这确实依赖于内部数据结构:
% !TeX program = lualatex
\documentclass[12pt]{article}
\usepackage[a4paper, total={180mm,257mm},left=15mm,top=20mm]{geometry}
\usepackage[no-math]{fontspec}
\defaultfontfeatures{Scale=MatchLowercase, Script=Greek}\defaultfontfeatures[\rmfamily]{Scale=1.1}
\setmainfont{STIX Two Text}%\setsansfont{FiraSans}\setmonofont{Consolas}
\usepackage{polyglossia}
\setdefaultlanguage{greek}\setotherlanguage{english}
\makeatletter
\protected\def\@@text@case@aux@{\edef\reserved@a{\csuse{bcp47id}}}
\makeatother
\begin{document}
Μικρό Κείμενο για τον έλεγχο της μετατροπής των πεζών σε κεφαλαία
\MakeUppercase{Μικρό Κείμενο για τον έλεγχο της μετατροπής των πεζών σε κεφαλαία}
\let\acctonos\relax\MakeUppercase{Μικρό Κείμενο για τον έλεγχο της μετατροπής των πεζών σε κεφαλαία}
\end{document}
(目前有一个错误,expl3
这意味着你需要
\def\@@text@case@aux@@#1-#2\stop{#1}
\protected\def\@@text@case@aux@{%
\edef\reserved@a{\expandafter\expandafter\expandafter\expandafter
\expandafter\expandafter\expandafter
\@@text@case@aux@@\csname bcp47id\endcsname-\stop
}%
}
但这个问题将在明天修复。)
答案2
如果你可以使用巴别塔代替多语,您遇到的问题将自行消失,无需多言。
% !TeX program = lualatex
\documentclass{article}
\usepackage[a4paper, total={180mm,257mm}]{geometry}
\usepackage[no-math]{fontspec}
\defaultfontfeatures{Script=Greek} % is this needed?
\setmainfont{STIX Two Text} % select a suitable text font
%\usepackage{polyglossia}\setdefaultlanguage{greek}\setotherlanguage{english}
\usepackage[english,greek]{babel}
\begin{document}
Μικρό Κείμενο για τον έλεγχο της μετατροπής των πεζών σε κεφαλαία
\MakeUppercase{Μικρό Κείμενο για τον έλεγχο της μετατροπής των πεζών σε κεφαλαία}
\let\acctonos\relax
\MakeUppercase{Μικρό Κείμενο για τον έλεγχο της μετατροπής των πεζών σε κεφαλαία}
\end{document}