![Сочетание знака над лигатурой (деванагари)](https://rvso.com/image/266413/%D0%A1%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B7%D0%BD%D0%B0%D0%BA%D0%B0%20%D0%BD%D0%B0%D0%B4%20%D0%BB%D0%B8%D0%B3%D0%B0%D1%82%D1%83%D1%80%D0%BE%D0%B9%20(%D0%B4%D0%B5%D0%B2%D0%B0%D0%BD%D0%B0%D0%B3%D0%B0%D1%80%D0%B8).png)
Я хочу набрать комбинацию 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 (или у него, вероятно, проблемы другого рода), тем не менее, пишет свои наблюдения:
Проблема не в
polyglossia
иLanguage
, эти команды верны, проблема в загрузке шрифта. Если вы не укажете скрипт явно, будет принят латинский шрифт, и, таким образом, нелатинские символы не смогут отображаться правильно. Отсутствует спецификация скрипта, вам нужно написать\setmainfont[Script=Devanagari]{Siddhanta}
Ваш пример неверен. Все три символа, virama, candrabindu и o-matra, являются зависимыми гласными, вы не можете объединить более одного из них с согласной. Если вы набираете ल् (с virama), вы не можете добавить candrabindu. Если это не конец слова, вы можете добавить только другую согласную. Вы можете сделать конъюнкцию (лигатуру) с candrabindu, то есть ल्लँ, но за ней никогда не должна следовать никакая matra. Теоретически вы можете добавить независимую ओ, но я не могу себе представить, как вы это произнесете. Это выглядит действительно странно. Конечно, вы можете назализовать matra, например ताँ, но если o-matra или ii-matra должны быть назализованы, используется anusvara (просто из-за графического вида).
В учебнике очевидная опечатка, правильная форма — ताँल्लोकान्.
Попробуйте следующее дополнение, чтобы узнать, какие шрифты использует 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}
Обновлять:Мы могли бы использовать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}