在 sbox 中修改字距

在 sbox 中修改字距

我尝试采用 Egreg 给出的解决方案,将罗马数字加上下划线(带上划线和下划线的罗马数字)。

然而,当我减少罗马数字的字距时,我遇到了一个问题(我发现这样看起来更美观)。上划线和下划线的宽度不正确,并且偏离了边距。

我不明白问题是什么原因造成的,因为盒子的宽度是根据字距调整的值进行修改的。

你知道如何解决这个问题吗?

这是我的 MWE:

\documentclass[12pt,a4paper]{article}
\usepackage{libertine}
\usepackage{microtype}
\usepackage[showframe]{geometry}

\newsavebox{\thebox}
\def\barroman#1{%
    \sbox{\thebox}{#1}%
    \dimen\thebox=\dimexpr\wd\thebox+0.5pt\relax%
    \makebox[\dimen\thebox]{%
        \rlap{%
            \vrule width\dimen\thebox%
            height 0.07ex%
            depth 0.02ex%
        }%
        \rlap{%
            \vrule width\dimen\thebox%
            height\dimexpr\ht\thebox+0.01ex\relax%
            depth\dimexpr-\ht\thebox+0.08ex\relax%
        }%
        \kern0.25pt#1\kern0.25pt%
    }%
}

\def\romnumwidth#1{%
    \sbox{\thebox}{#1}%
    \dimen\thebox=\dimexpr\wd\thebox%
    (\the\dimexpr\wd\thebox)%
}

\begin{document}
\Huge\noindent\kern0.25pt XI\\ 
\barroman{XI} \romnumwidth{XI}\\
\barroman{\textls[-30]{XI}} \romnumwidth{\textls[-30]{XI}}\\
\barroman{\textls[100]{XI}} \romnumwidth{\textls[100]{XI}}
\end{document}

在此处输入图片描述

相关内容