连字符上的组合标记(天城文)

连字符上的组合标记(天城文)

我想使用 XeLaTeX 排版梵文中的 m̐llo 组合。当我使用正确的 Unicode ल्ँलो 时,ls 没有连字符。当我将 candrabindu 放在连字符上时,o 与连字符没有连接:ल्लँो。

我怎样才能让 XeLaTeX 将 candrabindu 放在连字符上,并且让 o 处于正确的位置?

\documentclass{article}

\usepackage{fontspec}
\usepackage{polyglossia}

\setmainlanguage{sanskrit}
\setmainfont{Siddhanta}

\begin{document}
ल्ँलो

ल्लँो
\end{document}

以下是教科书中的一个例子,它应该是这样的: 在此处输入图片描述

答案1

捷克 TeXist Zdeněk Wagner 没有足够的积分在 TeX.SX 上发表答案(或者他可能遇到了不同类型的问题),但是,他写下了他的观察结果:

  1. 问题不在于polyglossiaLanguage,这些命令是正确的,问题在于字体加载。如果您没有明确指定脚本,则会假定拉丁脚本,因此非拉丁字符无法正确显示。缺少的是脚本规范,您必须编写

    \setmainfont[Script=Devanagari]{Siddhanta}

  2. 你举的例子是错误的。virama、candrabindu 和 o-matra 这三个字符都是从属元音,你不能用辅音组合它们中的多个。如果你输入 ल्(带有 virama),你不能添加 candrabindu。如果它不是单词的结尾,你只能添加另一个辅音。你可以用 candrabindu 组成连字符(连字),即 ल्लँ,但它后面绝不能跟任何 matra。理论上,你可以添加独立的 ओ,但我无法想象你会如何发音。它看起来真的很奇怪。当然,你可以将 matra 鼻化,例如 ताँ,但如果要将 o-matra 或 ii-matra 鼻化,则使用 anusvara(仅仅是因为图形外观)。

  3. 教科书中有一个明显的印刷错误,正确的形式是ताँल्लोकान्。

  4. 尝试以下插件来查看 Firefox 使用哪些字体: https://addons.mozilla.org/en-us/firefox/addon/fontinfo/


我添加了一个例子。连字ll在这三种字体中都没有其 Unicode 代码,因此从xelatex(左图;所有三种情况)得出的结果是正确的,从lualatex(右图;第一行)得出的结果也正确。

% run: xelatex mal-chandas.tex
\documentclass[a4paper]{article}
\pagestyle{empty}
\usepackage{fontspec}
\begin{document}
\def\maltext{ताँल्लोकान्\par}
% http://svayambhava.blogspot.cz/p/siddhanta-devanagariunicode-open-type.html
\setmainfont[Script=Devanagari]{Siddhanta} \maltext
\setmainfont[Script=Devanagari]{Chandas} \maltext
\setmainfont[Script=Devanagari]{Sanskrit2003} \maltext
\end{document}

mwe: xelatex 母语:lualatex

更新:我们可以使用luaotfload包而不是fontspec包来获得正确的形式;我在文档主体中lualatex使用(我输入或在script=devanagaritaaMMllokaantAMMllokAn词典):

% run: lualatex mal-siddhanta.tex
\documentclass[a4paper]{article}
\pagestyle{empty}
\usepackage{luaotfload}
\begin{document}
% http://svayambhava.blogspot.cz/p/siddhanta-devanagariunicode-open-type.html
% taaMMllokaan at Lexilogos
\font\malfont=Siddhanta:script=devanagari \malfont ताँल्लोकान्
\end{document}

相关内容