![在連字上組合標記(梵文)](https://rvso.com/image/266413/%E5%9C%A8%E9%80%A3%E5%AD%97%E4%B8%8A%E7%B5%84%E5%90%88%E6%A8%99%E8%A8%98%EF%BC%88%E6%A2%B5%E6%96%87%EF%BC%89.png)
我想用 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 上發布答案(或者他可能遇到了不同類型的問題),但他正在寫下他的觀察:
問題不在於
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
or tAMMllokAn
at字典):
% 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}