如何通过 XeTeX 生成 vedic、anudatta 和 udatta。此链接中的代码提供了
http://mirrors.ctan.org/language/devanagari/velthuis/doc/generic/velthuis/xetex-examples.tex
正常的梵语编译可以工作,但是如果使用类似的命令编译吠陀重音,则不起作用。
- 有人知道如何使用 XeTeX 排版吠陀咒语或文本吗?
\documentclass[12pt]{article}
\usepackage{ifxetex}
\RequireXeTeX
\usepackage{fontspec}
\newcommand\dn{\catcode`\~=12
\fontspec[Script=Devanagari,Mapping=velthuis-sanskrit]{Nakula}}
\let\origlabelitemi\labelitemi
\renewcommand\labelitemi{{\normalfont\origlabelitemi}}
\parindent=0pt
\begin{document}
\section{Examples}
{\dn
\begin{center}
\setlength{\fboxrule}{2pt}
\framebox[3.2cm][s]{.o ga.ne"saaya nama.h}
\end{center}
}
\end{document}
上述命令对于非吠陀梵语来说非常有效,但是一旦我开始使用 udatta 和 anudatta,它根本不起作用。
像这样的命令:
- \dn\dnveda _{a} 在天城文中运行良好,但在这里似乎不起作用。
答案1
我对天城文和梵文一无所知;但这里有一个例子,是我首先通过不带第二行进行编译,然后从 PDF 中复制并粘贴获得的。
% Requires font Nakula by John Smith,
% see http://bombay.indology.info/software/fonts/devanagari/index.html
\documentclass[12pt]{article}
\usepackage{ifxetex}
\RequireXeTeX
\usepackage{fontspec}
\newfontfamily{\sanskritfont}[Script=Devanagari,Mapping=velthuis-sanskrit]{Nakula}
\newcommand\dn{\catcode`\~=12 \sanskritfont}
\newfontfamily{\directsanskrit}[Script=Devanagari]{Nakula}
\begin{document}
{\dn .o ga.ne"saaya nama.h}
{\directsanskrit ॐ गणेशाय नमः}
\end{document}
据我所见,这两条线是相同的。
线条
\newfontfamily{\sanskritfont}[Script=Devanagari,Mapping=velthuis-sanskrit]{Nakula}
\newcommand\dn{\catcode`\~=12 \sanskritfont}
和你的一样
\newcommand\dn{\catcode`\~=12
\fontspec[Script=Devanagari,Mapping=velthuis-sanskrit]{Nakula}}
但更有效地使用 XeTeX。
答案2
注意:我不懂印地语,也读不懂这篇文章。
如果我以纯 Unicode 输入文本,我总是会得到吠陀重音符号。据我所知,以下代码给出了带有重音符号的内容。
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
\documentclass[12pt]{article}
\usepackage{fontspec,xltxtra,xunicode}
\setmainfont[Script=Devanagari,Mapping=velthuis-sanskrit]{Nakula}
\begin{document}
दि॒पदे॑ । शं चतु॑षपदे
\end{document}
如果您想更改天城体字体,只需交换选项Nakula
。Arial Unicode MS
并且Code2000
有看似正确的输出(尽管Code2000
重音符号与元音标记重叠)。Devanagari MT
,但是,对我来说不能正常工作。
您可以在以下位置找到吠陀口音:
虽然我不知道你所说的“Deergha Swarita”是什么意思,发布的图片,我怀疑它可能是 U+1CDA(VEDIC TONE DOUBLE SVARITA),而我的任何字体中都没有这个符号。
答案3
对于打字的问题:看来,吠陀重音在标准键盘布局上不可用。
剩下的就是:(a)从字符映射表中直接输入单个字符(例如,BabelMap);(b)通过文本编辑器几乎直接输入,可以键入unicode值,然后按Alt-X将其转换为字形(例如,LibreOffice Writer;BabelPad);(c)编写自定义键盘(取决于操作系统);(d)在xelatex中映射字体(这里使用一个虚构的词,GoogleTrans目前报告其含义为black powder
):
根据实际使用的词语,可能需要对排版进行细微的调整。
(这种映射还意味着也可以通过 lualatex 中的 lua 代码直接进行操作。)
实验表明,此类 Latex 宏\newcommand\myaccenta{\symbol{^^^^0951}}
在排版阶段被视为多余的框并会干扰字母成形机制。
此外,还有一个有趣的消息:该软件包的修订和更新skt
似乎正在进行中。(在 TeX 中输入梵文)
映射示例的代码:
\documentclass[12pt]{article}
\usepackage{xcolor}
\usepackage{fontspec}
\setmainfont[Script=Devanagari,Mapping=vedic,Scale=1.5]{Noto Serif Devanagari}
\newfontface\translitd[Mapping=devanagari-to-iastb,Scale=1.1,Colour=red]{Noto Sans}% This is for the IAST-based transliteration only.
\newfontfamily\englishfont{Noto Serif}
\usepackage{polyglossia}
\setdefaultlanguage{hindi}
\setotherlanguages{english}
\begin{document}
\section{\textenglish{Mapping}}
\textenglish{Test text:} कालेमूनि {\translitd कालेमूनि}
\vspace{12pt}
\begin{tabular}{ccccc}
,, & कालेमूनि,, & कालेमू,,नि & काले,,मूनि & का,,लेमूनि \\
\end{tabular}
\vspace{12pt}
\begin{tabular}{ccccc}
.. & कालेमूनि.. & कालेमू..नि & काले..मूनि & का..लेमूनि \\
\end{tabular}
\vspace{12pt}
\begin{tabular}{ccccc}
(( & कालेमूनि(( & कालेमू((नि & काले((मूनि & का((लेमूनि \\
\end{tabular}
\vspace{12pt}
\begin{tabular}{ccccc}
)) & कालेमूनि)) & कालेमू))नि & काले))मूनि & का))लेमूनि \\
\end{tabular}
का,,ले..मू((नि))
\end{document}
文件.map
(将转换为.tec
以下格式teckit_compile
):
; TECkit mapping for TeX input conventions <-> Unicode characters
LHSName "vedic" ;
RHSName "UNICODE"
pass(Unicode)
; ligatures from Knuth's original CMR fonts
U+002D U+002D <> U+2013 ; -- -> en dash
U+002D U+002D U+002D <> U+2014 ; --- -> em dash
U+0027 <> U+2019 ; ' -> right single quote
U+0027 U+0027 <> U+201D ; '' -> right double quote
U+0022 > U+201D ; " -> right double quote
U+0060 <> U+2018 ; ` -> left single quote
U+0060 U+0060 <> U+201C ; `` -> left double quote
U+0021 U+0060 <> U+00A1 ; !` -> inverted exclam
U+003F U+0060 <> U+00BF ; ?` -> inverted question
; additions supported in T1 encoding
;;U+002C U+002C <> U+201E ; ,, -> DOUBLE LOW-9 QUOTATION MARK
U+003C U+003C <> U+00AB ; << -> LEFT POINTING GUILLEMET
U+003E U+003E <> U+00BB ; >> -> RIGHT POINTING GUILLEMET
; Here are the Vedic accents
U+002C U+002C <> U+0951; ॑ ,,
U+002E U+002E <> U+0952; ॒ ..
U+0028 U+0028 <> U+0953; ॓ ((
U+0029 U+0029 <> U+0954; ॔ ))
映射的关键是选择易于输入且不太可能在文本其他地方使用的字符组合。在本例中,双逗号 ,、双点 .. 双左括号 (( 和双右括号 ))。但如果需要,也可以使用其他字符。
另外,字体设计师设计了字体,包括标记。以下是随机示例: