Как сделать так, чтобы в таблице была подчеркнутая строка переноса текста?

Как сделать так, чтобы в таблице была подчеркнутая строка переноса текста?

У меня есть длинный текст в таблице, который состоит из двух команд с пробелом между ними, который нужно подчеркнуть. Как сделать так, чтобы он переносился, будучи подчеркнутым?

В примере ниже показано поведение с \underline, \uline и \ul.

Пример:

\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}

Пример вывода, показывающий переполненные ячейки

решение1

Команда \ulиз soulпакета на самом деле работает. Но у вас есть две проблемы в том, как вы ее используете.

1) Ваш текст не будет подчеркнут из-за дополнительного уровня скобок в определениях \textaи \textb. Начните с удаления этих скобок:

\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) Вам следует расширить аргумент \ul:

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

Связанный контент