\mbox
和宏\rule
具有多孔侧壁。也就是说,如果前面或后面的字符具有负侧边距,则多余的部分将渗透到框中。在几乎所有情况下,这都是可取的。MWE 说明了这一点:
\documentclass{article} % compile with lualatex
\usepackage{fontspec}
\begin{document}
\huge
f\par
f\rule{.8em}{.8em}\par
\mbox{f}\rule{.8em}{.8em}\par
f^^^^200c\rule{.8em}{.8em}
\end{document}
字符f
具有负右侧边界。它符合以下规则,并且当字符被框起来时,或者当在字符之间插入零宽度非连接符时,它也会符合以下规则(这就是我使用 lualatex 的原因)。
问题:是否存在“刚性”的规则或框,其侧壁不可穿透,以便字符不会突出到(或突出到)规则或框中?假设感兴趣的区域已知是一个普通的内联文本字符,而不是更复杂的字符。
在 lualatex 中,可以创建一个宏来测量下一个字符的侧边距,然后在其前面插入适当量的水平空间。但还需要知道前一个字符的侧边距,以便在其后插入空间;这并不明显。
编辑 1:可能不需要在编译时测量方位。因为我知道正在使用什么字体,并且知道字符方位(通过 FontForge),所以我可以为几个重要的字符创建一个方位列表。然后,框的一侧可能用于\@ifnextchar
检测以下方位。但如果字符在框之前,我不知道该怎么办。
另外:SE 拼写检查器认为“penetrate”应该是“penatrate”。