`\documentclass[]{article}
\usepackage{xcoffins}
\usepackage{lipsum}
\ExplSyntaxOn
\NewCoffin\Roby_Text_Coffin
\NewCoffin\Roby_Line_Coffin
\tl_new:N \l_roby_text_tl
\NewDocumentCommand {\RobyUnderline}{O{0em}O{0.4pt}m}{
\tl_set:Nn \l_roby_text_tl {#3}
\SetHorizontalCoffin\Roby_Text_Coffin{
\l_roby_text_tl
}
\SetHorizontalCoffin\Roby_Line_Coffin{
\rule{\CoffinWidth\Roby_Text_Coffin}{#2}
}
\JoinCoffins\Roby_Line_Coffin[l,t]\Roby_Text_Coffin[l,b] (0pt,#1)
\TypesetCoffin\Roby_Line_Coffin\par
}
\ExplSyntaxOff
\begin{document}
\RobyUnderline[2pt][6pt]{\Huge ciao}
\lipsum
\end{document}`
Non credo mi complicherei così la vita, ma è tanto per ricordare che esistono i coffins! 🙂
Il primo argomento opzionale regola la distanza verticale fra testo e linea, il secondo regola lo spessore della linea.
Fran
EDIT: se volessi che la distanza fra linea e testo fosse sempre misurata a partire dalla linea di base, bisognerebbe fare un calcolo usando \CoffinDepth:` \JoinCoffins\Roby_Line_Coffin[l,t]\Roby_Text_Coffin[l,b] (0pt,-\CoffinDepth\Roby_Text_Coffin + #1)`