我使用 Tex 处理泰卢固语和英语。当单词带连字符时,连字符(显然在泰卢固语字体中找不到)会显示为未定义符号。我想将其字体更改为英语,希望它能正确显示。我对默认拉丁语集中的许多其他符号也这样做。
这就是我的 tex 文件中的序言。
\documentclass[12pt, a4paper, onecolumn]{book}
%\documentclass{memoir}
\usepackage{fontspec}
\setmainfont{Lohit Telugu}
\usepackage{polyglossia}
\setmainlanguage{telugu}
%The following is a workaround to substitute the font or default latin characterset
%with an English one, since none of the current Telugu fonts contains that set.
\setotherlanguage{english}
\newfontfamily{\TelSubstFont}[Ligatures=TeX]{Lucida Grande}
\newfontfamily{\TitleFont}{RaviPrakash}
\XeTeXinterchartokenstate=1
\newXeTeXintercharclass\TelSubst
\count255="0000
\loop\ifnum\count255<"007F
\XeTeXcharclass\count255=\TelSubst
\advance\count255 by 1
\repeat
\XeTeXinterchartoks 0 \TelSubst = {\begingroup\TelSubstFont}
\XeTeXinterchartoks 255 \TelSubst = {\begingroup\TelSubstFont}
\XeTeXinterchartoks \TelSubst 0 = {\endgroup}
\XeTeXinterchartoks \TelSubst 255 = {\endgroup}
输出如下:
答案1
恐怕连字符是在“interchartoken”程序执行的工作之后插入的。因此,如果字体没有连字符,您就无能为力了。
连字符不一定位于正常位置:
\setmainfont[HyphenChar={xyzt}]{Lohit Telugu}
将使位置上的字符U+xyzt
(四个或更多十六进制数字)成为用于连字符的字符。