是否可以在 p 下方放置一个点?我指的是 ḥ 中的点。据我所知,这个字符不在 unicode 中(应该在 Latin Extended Supplemental 中,看表格),因此我的问题来了:
是否有可能生成非unicode的符号?
顺便说一句,我正在使用 LuaLaTeX 进行编译,并使用 fontspec 编译 EBGaramond 字体
\documentclass{article}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\begin{document}
\d{p}
\d{o}
\d{g}
\d{n}
\end{document}
答案1
如果字体设计师没有为字符设置锚点,则组合字符有时需要一些帮助。
\documentclass{article}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\DeclareRobustCommand{\pdb}{%
p\llap{^^^^0323\kern0.4\fontcharwd\font`p}%
}
\DeclareRobustCommand{\gdb}{%
g\llap{\lower0.9\fontchardp\font`g\hbox{^^^^0323\kern0.5\fontcharwd\font`g}}%
}
\begin{document}
\pdb\d{o}\gdb\d{n}
\end{document}
这里,组合字符 U+0323 COMBINING DOT BELOW 被单独放置在零宽度框中,因此它不会组合。在末尾添加了合适的字距,使字符向左移动。
恐怕调整量必须根据字体来计算。
如果要将 p 下方的点向下移动,请使用 的定义\gdb
作为模板。
答案2
答案3
有一个组合下方点 (U+0323)字符,但它在 EB Garamond 中看起来不太好(它适用于 H,但不适用于 P)。但是,您可以调整字距以使其适合 P 字母:
%!TEX program = lualatex
\documentclass{article}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\newcommand{\mydoT}[1]{#1\kern -.2em \char"0323\relax}
\begin{document}
\Huge
p\char"0323\relax
p\kern -.2em \char"0323\relax
\mydoT{p}
\end{document}
答案4
您可以使用原始字体将点放在 p 下方\vtop
。您可以将点放置\kern
在相对于 p 字符的任意位置。我的宏将点放在 p 的字干下方(在 Computer Modern 中)。当您使用其他字体时,可能需要进行一些修改。
\def\dotp{\leavevmode\vtop{\offinterlineskip\hbox{p}\kern.07em\hbox{.}}}
Test: pa\dotp a