¿Cómo tener una línea de salto de texto subrayada en la tabla?

¿Cómo tener una línea de salto de texto subrayada en la tabla?

Tengo un texto largo en una tabla que se combina a partir de dos comandos con un espacio intermedio que debe estar subrayado. ¿Cómo puedo hacer que se ajuste mientras está subrayado?

El siguiente ejemplo muestra el comportamiento con \underline, \uline y \ul.

Ejemplo:

\documentclass{article}

\usepackage{tabularx}
\usepackage{soul}
\usepackage[normalem]{ulem}

\newcommand{\texta}{{Short text from some command.}}
\newcommand{\textb} {{Long text from some other command. This text should be broken on line end and not overflow.}}

\soulregister{\texta}{0}
\soulregister{\textb}{0}

\begin{document}
\begin{tabularx}{\textwidth}{|l|X|}
    \hline
    nothing & \texta\ \textb \\
    \hline
    underline & \underline{\texta\ \textb} \\ % Overflows
    \hline
    uline & \uline{\texta\ \textb} \\ % Overflows
    \hline
    ul & \ul{\texta\ \textb} \\ % Breaks line, but does not underline. Space is ignored.
    \hline

\end{tabularx}
\end{document}

Salida de ejemplo que muestra celdas desbordadas

Respuesta1

El \ulcomando del soulpaquete realmente funciona. Pero tienes dos problemas en la forma en que lo usas.

1) Su texto no estará subrayado debido al nivel adicional de llaves en las definiciones de \textay \textb. Comience quitando estos aparatos ortopédicos:

\newcommand{\texta}{Short text from some command.}
\newcommand{\textb}{Long text from some other command. This text should be broken on line end and not overflow.}

2) Deberías ampliar el argumento de \ul:

\edef\myulcmd{\noexpand\ul{\unexpanded\expandafter{\texta}\space\unexpanded\expandafter{\textb}}}%
\myulcmd

información relacionada