如何根据文本宽度绘制 \hrule?

如何根据文本宽度绘制 \hrule?

我有一个\divider命令,它可以绘制一个粗线和一个细线来实现我想要的风格:

\newcommand{\divider}[1]{%
    \vskip-2pt %
    {%
        \color{black}%
        \hrule%
    }%
    \nointerlineskip%
    \noindent%
    {%
        \color{black}%
        \hrule width #1 height 1pt%
    }%
    \vskip5pt%
}

结果: 例子

由于我使用的是非固定宽度字体,因此我希望它采用一个参数来让它知道粗线的长度。例如,\divider{SKILLS}将根据我当前的字体的“SKILLS”的宽度绘制一条粗线。

我该怎么做?这是 的正确用法吗\widthof

尝试#1

\widthof我尝试从包中使用calc如下方法:

\divider{\widthof{SKILLS}}

但这不起作用,即使我在后面添加了“pt”#1

答案1

在此处输入图片描述

\documentclass{article}
\usepackage{xcolor}
\usepackage{calc}
\newcommand{\divider}[1]{%
    \vskip-2pt %
    {%
        \color{black}%
        \hrule%
    }%
    \nointerlineskip%
    \noindent%
    {%
        \color{black}%
        \hrule width #1 height 1pt%
    }%
    \vskip5pt%
}

\newlength{\mywidth}
\newcommand{\myheading}[1]{\noindent #1%
                           \smallskip%
                           \setlength{\mywidth}{\widthof{#1}}%
                           \divider{\mywidth}}

\begin{document}

\myheading{SKILLS}

\myheading{LENGTHY TEXT THAT NEEDS A WIDER LINE}

\end{document}

相关内容