我使用的字体对带变音符号的字母支持有限。我希望使用 latex 中的功能(我在 ubuntu 上使用 xetex)来提供我缺少的字形。
我的字体有用于字母上方点的预制字形(如ȯ
),但没有用于字母下方点的预制字形(如ḍ
)。我知道我可以使用在广告下生成一个点,\d{d}
但是预制字形中的点的尺寸比 latex 手动放置在下方的点的尺寸大得多。如果两个变音符号都出现在同一个单词中,这会产生不好的外观。
我是否可以告诉 latex 将点的大小增加一些量,而不会影响字母的大小?理想情况下,我希望能够做类似的事情,\bigger_dot_under{d}
而不是 \d{d}
其中\bigger_dot_under{}
以某种方式定义为 的 2 倍或 3 倍\d{}
,或以绝对 mm/em 度量、点大小或 HUGE/Large 术语表示
答案1
我重新设计了解决方案,使其更加简洁。在此过程中,我将其简化为一个名为的例程\underdot
。有两个参数需要调整:\dotscale
哪个是下点的大小,\offset
哪个是点顶部开始的位置到字母底部的距离。该例程考虑了下行字母。
\documentclass{article}
\usepackage{scalerel}
\usepackage{lipsum}
\newlength\dotscale
\newlength\offset
\newsavebox\newdotbox
\newsavebox\letterbox
\dotscale=.3ex % DOTSIZE<---CAN CHANGE THESE
\offset=.25ex % BELOW-BASELINE GAP ABOVE DOT
\def\newdot{\scalerel*{.}{\rule[-\dotscale]{1ex}{\dotscale}}}
\newcommand*\underdot[1]{%
\sbox{\letterbox}{#1}%
\sbox{\newdotbox}{\raisebox{-\dp\letterbox}{\raisebox{-\offset}{\newdot}}}%
\usebox{\letterbox}%
\hspace{-.5\wd\letterbox}%
\hspace{-.5\wd\newdotbox}%
\usebox{\newdotbox}%
\hspace{-.5\wd\newdotbox}%
\hspace{.5\wd\letterbox}%
}
\begin{document}
d\d{d}
\dotscale=.15ex\underdot{d}%
\dotscale=.4ex\underdot{t}%
\dotscale=.5ex\underdot{a}
p\d{p}
\dotscale=.4ex\underdot{p}%
\dotscale=.5ex\underdot{q}%
\dotscale=.15ex\underdot{g}
\lipsum[4]
\end{document}