在連字上組合標記(梵文)

在連字上組合標記(梵文)

我想用 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

Zdeněk Wagner 是一名捷克 TeXist,他沒有足夠的積分在 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 MWE:lualatex

更新:我們可以使用luaotfload包而不是fontspec包以獲得正確的形式lualatex;然後我script=devanagari在文檔正文中使用了(我輸入了taaMMllokaanor tAMMllokAnat字典):

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

相關內容