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