我对泰米尔语中某些字符的吠陀符号表示法有疑问。下面我提供了四个案例来解释我的问题。第一行表示字母 gu,其中数字用于表示梵语中的某个辅音。换句话说,我试图用泰米尔字母书写梵语文本。第二行是相同的字母 gu,但底部带有吠陀重音。第三行是相同的字母 gu,带有不间断空格代码 U+00A0。如果仔细观察,数字 3 向右移动了。我的意图是数字 3 应该与第一个字母中的位置相同。但是,如果我使用字距,如第 4 行所示,我可以将数字 3 放在可接受的位置。
所以,问题就在这里。前三行可以写在映射文件中。例如,第一行可以写成 gu > U+0B95 U+0BC1 U+2083,前几行也是如此。但是,据我所知,字距不能写在映射文件中。我正在寻找一个可以写在映射文件中的解决方案。
我也可以给 gu 写一个新命令,如下所示
\newcommand{\tgua}{{\char"0B95}{\char"0BC1}{\char"0952}\kern-0.25em{\char"00A0}{\char"2083}}
但这意味着我必须在文本中将 gu_ 的每一个出现位置都改为 {\tgua},其中下划线 _ 是字母底部的横线。这不是一个优雅的解决方案。它扰乱了文本的可读性。可以编写一个外部程序,先将所有 ga_ 更改为 {\tgua},然后将其保存在中间程序中。但这是一个繁琐的过程。
我的程序是
\documentclass[letterpaper,12pt]{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\newcommand{\tamv}[1][1.20]{
\catcode`\^=12
\catcode`\~=12
\catcode`\_=12
\fontspec{Noto Sans Tamil}}
\begin{document}
{\tamv {\char"0B95}{\char"0BC1}{\char"2083}}
{\tamv {\char"0B95}{\char"0BC1}{\char"0952}{\char"2083}}
{\tamv {\char"0B95}{\char"0BC1}{\char"0952}{\char"00A0}{\char"2083}}
{\tamv {\char"0B95}{\char"0BC1}{\char"0952}\kern-0.25em{\char"00A0}{\char"2083}}
\end{document}
输出为