在字母下添加两个变音点

在字母下添加两个变音点

我正在编写一个包含一些音译波斯语、乌尔都语和阿拉伯语的词汇表。与之前的出版物一致,我有时需要在字母下使用两个变音点,例如szt。我尝试用 来解决这个问题\ooalign,灵感来自这里给出的答案。我现在可以在这些字母下方放置两个点,但问题是字母之间的间距不再令人愉快。MWE:

\documentclass{article}
\usepackage[utf8]{inputenc}

\begin{document}

\newcommand{\dd}[1]{%
    \ooalign{#1\cr\hfil\raisebox{-.5ex}{..}\hfil}%
    }

\Huge{%
\d{H}\={a}fi\dd{z}, Shams-ud-D\={\i}n Mu\d{h}ammad

Other examp\dd{l}e.%
}

\end{document}

得出:

例如两个变音点

我该如何修复字母间距?

答案1

\ooalign不是合适的工具。

\documentclass{article}

\DeclareRobustCcommand{\dd}[1]{%
  \vtop{%
    \offinterlineskip
    \ialign{%
      ##\cr % template
      #1\cr % top line
      \noalign{\vspace{0.25ex}}% space
      \hidewidth.\kern-0.1em.\hidewidth\cr % dots
    }%
  }%
}

\begin{document}

\d{H}\={a}fi\dd{z}, Shams-ud-D\={\i}n Mu\d{h}ammad

Other examp\dd{l}e.

\end{document}

在此处输入图片描述

答案2

模仿简单的定义\d效果很好。

\makeatletter
\newcommand{\dd}[1]{{\o@lign{\relax#1\crcr \hidewidth\ltx@sh@ft{-1ex}.\kern-.1em.\hidewidth}}}
\makeatother

{\Huge
    \d{H}\={a}fi\dd{z}, Shams-ud-D\={\i}n Mu\d{h}ammad

    Other examp\dd{l}e.%
}

输出

另外,请注意,它\Huge不带参数,但它是一个字体切换命令。

答案3

完全不同的方法:为什么不简单地使用 Unicode 的 U+0323 COMBINING DOT BELOW 和 U+0324 COMBINING DIAERESIS BELOW?

哈菲兹,沙姆斯乌德丁·穆罕默德

其他例子

答案4

对代码进行非常简单的修改:

    \documentclass{article}
    \usepackage[utf8]{inputenc}

    \begin{document}

    \newcommand{\dd}[1]{%
     \ooalign{#1\cr\hfil\raisebox{-.5ex}{\clap{..}}\hfil}%
        }

    \Huge{%
    \d{H}\={a}fi\dd{z}, Shams-ud-D\={\i}n Mu\d{h}ammad

    Other examp\dd{l}e.%
    }

    \end{document} 

在此处输入图片描述

相关内容