通过计算文本的长度创建垂直线

通过计算文本的长度创建垂直线

第 1 行:“Someeeeeeeee Textttttttttttt”(使用自定义字体,斜体,字体大小为 24)vspace(10mm)

第 2 行:“Someeee Textttt” 这应该位于第一行下方,相对于上方的文本。

垂直间距(10mm)

第 3 行:此处需要一条水平线,具有预定义的颜色和粗细。就像下划线一样。第 2 行对象(垂直线)的大小应为第 2 行文本长度的 40%

即输出:

[某些文本]

垂直间距(10mm)

[Someeee Textttt] <- 这将位于第一行文本下方的中心

垂直间距(10mm)

________ <- 此行应为 [Someeee Textttttt] 长度的 40% 并位于上方文本的中心。

答案1

您似乎混淆了水平和垂直。

这是你想要的吗?

\documentclass{article}
\usepackage{lmodern}

\newlength{\titlerulewidth}

\begin{document}

\begin{center}
\fontsize{24}{30}\itshape
Someeeeeeeee Textttttttttttt

\vspace{10mm}

\fontsize{18}{24}\itshape
\settowidth{\titlerulewidth}{Someeee Textttt}

Someeee Textttt

\vspace{10mm}

\rule{0.4\titlerulewidth}{2pt}
\end{center}

\end{document}

在此处输入图片描述

答案2

编辑以将流程转换为宏。我还添加了一个\strut,以便下行字符的存在不会改变下划线的深度。

\documentclass{article}
\usepackage{stackengine,xcolor}
\newsavebox\tmpbox
\newcommand\foo[1]{%
  \savebox\tmpbox{\Huge\strut#1}%
  \stackunder[10mm]{\usebox{\tmpbox}}{\textcolor{red}{\rule{5pt}{.4\wd\tmpbox}}}
}
\begin{document}
\foo{Some Text} and \foo{My Longer Text}
\end{document}

在此处输入图片描述

如果想要一条水平线,那么上述代码的修复很简单......反转参数\rule

\documentclass{article}
\usepackage{stackengine,xcolor}
\newsavebox\tmpbox
\newcommand\foo[1]{%
  \savebox\tmpbox{\Huge\strut#1}%
  \stackunder[10mm]{\usebox{\tmpbox}}{\textcolor{red}{\rule{.4\wd\tmpbox}{5pt}}}
}
\begin{document}
\foo{Some Text} and \foo{My Longer Text}
\end{document}

在此处输入图片描述

相关内容