Сочетание знака над лигатурой (деванагари)

Сочетание знака над лигатурой (деванагари)

Я хочу набрать комбинацию m̐llo в деванагари с помощью XeLaTeX. Когда я использую правильный Unicode ल्ँलो, лигатуры ls нет. Когда я помещаю candrabindu на лигатуру, o не соединяется с лигатурой: ल्लँो.

Как мне заставить XeLaTeX поместить чандрабинду на лигатуру и сохранить правильное положение буквы «о»?

\documentclass{article}

\usepackage{fontspec}
\usepackage{polyglossia}

\setmainlanguage{sanskrit}
\setmainfont{Siddhanta}

\begin{document}
ल्ँलो

ल्लँो
\end{document}

Вот пример из учебника, как это должно выглядеть: введите описание изображения здесь

решение1

Зденек Вагнер, чешский TeXист, у которого недостаточно баллов, чтобы опубликовать ответ на TeX.SX (или у него, вероятно, проблемы другого рода), тем не менее, пишет свои наблюдения:

  1. Проблема не в polyglossiaи Language, эти команды верны, проблема в загрузке шрифта. Если вы не укажете скрипт явно, будет принят латинский шрифт, и, таким образом, нелатинские символы не смогут отображаться правильно. Отсутствует спецификация скрипта, вам нужно написать

    \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: кселатекс mwe: луалатекс

Обновлять:Мы могли бы использоватьluaotfloadпакет вместоfontspecпакет для получения правильной формы с lualatex; я использовал script=devanagariв теле документа тогда (я набрал taaMMllokaanили tAMMllokAnвЛексилогос):

% 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}

Связанный контент