如何在不改变字母大小的情况下有选择地增加变音符号/重音符号的大小

如何在不改变字母大小的情况下有选择地增加变音符号/重音符号的大小

我使用的字体对带变音符号的字母支持有限。我希望使用 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}

在此处输入图片描述

相关内容