![程序包 inputenc 错误:Unicode 字符 Κ (U+039A) 多音希腊文和拉丁文混合](https://linux22.com/image/422416/%E7%A8%8B%E5%BA%8F%E5%8C%85%20inputenc%20%E9%94%99%E8%AF%AF%EF%BC%9AUnicode%20%E5%AD%97%E7%AC%A6%20%CE%9A%20(U%2B039A)%20%E5%A4%9A%E9%9F%B3%E5%B8%8C%E8%85%8A%E6%96%87%E5%92%8C%E6%8B%89%E4%B8%81%E6%96%87%E6%B7%B7%E5%90%88.png)
当我编译包含多音调希腊文的文本时,我遇到了几个 Unicode 错误,这些文本中混杂了多音调字符。我不想手动声明所有 de 字符。LaTeX 有没有办法像我的文本编辑器一样理解多音调希腊文并进行渲染?
\documentclass{article}
\usepackage[utf8]{inputenc}
\begin{document}
text text texttext text text
text text texttext text text
Κατάλογος etc. text text text
text text text text text text
\end{document}
在过去的一个小时里,我花了一些时间研究其他问题,但目前没有任何效果,使用 babel 或 utf8x 等等。我想避免在环境中使用这段文本,因为它分布在所有的文本中……
答案1
在 LuaLaTeX 中
LuaLaTeX 中的包babel
可以让您自动检测您正在输入的脚本,并相应地切换您使用的字体和连字符模式。
默认字体不支持希腊语,因此您需要选择一种支持的字体。
\documentclass[italian]{article}
\tracinglostchars=2
\usepackage{babel}
\usepackage[default]{fontsetup} % Load New Computer Modern
\babelprovide[import, onchar=ids fonts]{greek}
\begin{document}
text text texttext text text
text text texttext text text
Κατάλογος etc. text text text
text text text text text text
\end{document}
有些字体(例如 Computer Modern Unicode 系列)需要Script=Greek
OpenType 功能才能正确显示实际的希腊语单词。对于这些字体,您需要设置
\babelfont{rm}[Ligatures=Common]{CMU Serif}
\babelfont{sf}[Ligatures=Common]{CMU Sans}
\babelfont{tt}{CMU Typewriter Text}
每当您更改语言时,这将设置Script=
和字体功能。Language=
在 PDFTeX 中
在旧版引擎中,您别无选择,只能使用 8 位字体。您还需要手动标记语言。该\textgreek
命令是执行此操作的最便携方式,并且输入起来也比 更短\foreignlangugae{greek.polutoniko}{Κατάλογος}
。
\documentclass[italian]{article}
\tracinglostchars=2
\usepackage[LGR,T1]{fontenc} % Enable Greek encoding, but set Cork as the default.
\usepackage[utf8]{inputenc} % The default since 2018
\usepackage[greek.polutonic, main=italian]{babel}
\begin{document}
text text texttext text text
text text texttext text text
\textgreek{Κατάλογος} etc. text text text
text text text text text text
\end{document}
请注意,根据手册,如果您设置了\documentclass[italian]
,您还应该提供babel
选项main=italian
。否则,babel
将首先加载意大利语,并将主要语言设置为最后加载的希腊语。我犯了同样的错误,到处都是τεξτ。
您还可以加载\usepackage{textalpha}
以便能够在文本模式下使用\textalpha
、\textBeta
等,或者\usepackage{alphabeta}
能够\alpha
在文本模式和数学模式下使用等。