Quiero componer la combinación m̐llo en Devanagari con XeLaTeX. Cuando uso el código Unicode correcto, no hay ligadura de ls. Cuando coloco el candrabindu en la ligadura, la o no está conectada con la ligadura: ल्लँो.
¿Cómo puedo hacer que XeLaTeX coloque el candrabindu en la ligadura y mantenga la o en la posición correcta?
\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{sanskrit}
\setmainfont{Siddhanta}
\begin{document}
ल्ँलो
ल्लँो
\end{document}
Aquí hay un ejemplo de un libro de texto, cómo debería verse:
Respuesta1
Zdeněk Wagner, un texista checo, que no tiene suficientes puntos para publicar una respuesta en TeX.SX (o probablemente tenga otro tipo de problema), todavía está escribiendo sus observaciones:
El problema no está en
polyglossia
yLanguage
, estos comandos son correctos, el problema está en la carga de fuentes. Si no especifica la escritura explícitamente, se asume la escritura latina y, por lo tanto, los caracteres no latinos no pueden aparecer correctamente. Lo que falta es la especificación del script, tienes que escribir\setmainfont[Script=Devanagari]{Siddhanta}
Tu ejemplo está mal. Los tres caracteres, virama, candrabindu y o-matra, son vocales dependientes, no puedes combinar más de uno de ellos con una consonante. Si escribe ल् (con un virama), no puede agregar un candrabindu. Si no es un final de palabra, sólo puedes añadir otra consonante. Puedes hacer una conjunción (ligadura) con un candrabindu, es decir, ल्लँ, pero nunca debe ir seguido de ningún matra. En teoría, podrías agregar ओ independiente, pero no puedo imaginar cómo lo pronunciarías. Parece realmente extraño. Por supuesto, se puede nasalizar un matra, por ejemplo, ताँ, pero si se va a nasalizar o-matra o ii-matra, se usa anusvara (simplemente debido a la apariencia gráfica).
Hay un error de imprenta evidente en el libro de texto, la forma correcta es ताँल्लोकान्.
Pruebe el siguiente complemento para ver qué fuentes utiliza Firefox: https://addons.mozilla.org/en-us/firefox/addon/fontinfo/
Estoy agregando un ejemplo. La ligadura ll
no tiene su código Unicode en las tres fuentes, por lo que el resultado es correcto desde xelatex
(imagen de la izquierda; los tres casos) y una vez desde lualatex
(imagen de la derecha; la primera línea).
% 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}
Actualizar:podríamos usarluaotfload
paquete en lugar defontspec
paquete para obtener una forma correcta con lualatex
; Usé script=devanagari
en el cuerpo del documento entonces (escribí taaMMllokaan
o tAMMllokAn
enDiccionario):
% 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}