在 LuaLaTeX 中,无法将希腊小写字母转换为不带重音符号的大写字母。我该怎么做?

在 LuaLaTeX 中,无法将希腊小写字母转换为不带重音符号的大写字母。我该怎么做?

请考虑以下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}

相关内容