Muktamsiddham
梵字と云えば今昔文字鏡あるいは梵字鏡が定番であるがデーバナーガリーコードに梵字のフォントを当てはめた表題のフォントが結構いいのである。opentypeの機能によって合字などが完璧に表現できる。
xelatexではpolyglossiaが使えるので文字鏡を使ったときのように新たにマクロを組む必要はない。
まず、処理系をxelatexにして、プリアンブル(上側の入力欄)に以下の行を追加する。
1 2 3 4 5 6 7 8 9 |
\usepackage{polyglossia} \def\maketildeletter{\catcode`\~=11 }%"~"を文字として使用 \def\maketildeactive{\catcode`\~=13 }%"~"をマクロとして使用 %velthuis-sanskritという変換規則でデーバナーガリーに転写しフォントをMuktamsiddhamに \newfontfamily\muktam[Script=Devanagari,Mapping=velthuis-sanskrit]{Muktamsiddham.otf} %"~"の処理をしてmktmを定義 \def\mktm{\maketildeletter\muktam \aftergroup\maketildeactive} |
転写規則はkyoto-harvard方式と似ているが、違いは大文字で表された文字などである。母音と子音を列挙すれば
1 2 3 4 5 6 7 8 |
a A i I u U e ai o au .m .h .r .R .l .L k kh g gh "n c ch j jh ~n .t .th .d .dh .n t th d dh n p ph b bh m y r l v "s .s s h |
である。文字鏡の梵字はすべての合字をグリフとして用意していたが、デーバナーガリーフォントは合字規則を持っているので上記のアルファベットをずらずらと書くだけでフォント自体が合字を作ってくれるのである。例えば、
1 |
{\mktm kkhaggi"nkua/hrI.h} |
などと書く。般若心経なら
1 |
{\mktm praj~naapaaramitaah.rdayasuutram} |
、請車輅真言なら
1 |
{\mktm nama.hstryadvikanA.mtathAgatanA.mo.mvajrognyakar.sayasvAhA} |
ただ、これは横書き専用の文字なので縦書きに使うには少し工夫がいる。
xetexの縦書きは文字を90度回転させているだけなので同じように回転させればよい。
一文字回転させるマクロは
1 2 |
\newcommand*\hinv[1]{\rotatebox[origin=B]{90}{% \raisebox{-0.38em}{\makebox[1em][c]{#1}}}} |
これで縦書き中の文字の上下方向を揃えることができる。但し、文章を縦に並べるには1文字ずつ回転させなければならない。そこで文章の中の1文字ずつを回転させるマクロを組む。
1 2 3 4 5 6 7 |
\makeatletter \newcount\TestCnt \def\HinV{\@ifnextchar[{\@HinV}{\@HinV[]}} \def\@HinV[#1]#2{\leavevmode\TestCnt=\z@ \@for\member:=#2\do{\advance\TestCnt\@ne\relax% {#1\hinv{\member}}\xtxHanGlue}} \makeatother |
使い方は
1 |
\HinV[\mktm]{pra,j~naa,paa,ra,mi,taa,h.r,da,ya,suu,tra,m} |
1文字ずつに区切るのは自分の仕事である。
コメント
Muktamsiddham — コメントはまだありません
HTML tags allowed in your comment: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">