Defina un subrayado con contorno blanco que permita líneas de corte y separación de palabras

Defina un subrayado con contorno blanco que permita líneas de corte y separación de palabras

Defino un subrayado (basado en el siguiente sitio:https://alexwlchan.net/2017/10/latex-underlines/).

Este fue mi código inicial:

\usepackage{ulem}
\renewcommand{\ULdepth}{1.8pt}
\contourlength{0.8pt}
\newcommand{\myuline}[1]{%
  \uline{\phantom{#1}}%
  \llap{\contour{white}{#1}}%
}

El problema con el código es que no permite saltos de línea ni separaciones si subrayo mucho texto. Investigué un poco y descubrí que ese \phantompodría \contourser el problema, así que lo reemplazo \phantomcon \textcolorblanco y agrego lo siguiente (para permitir líneas de ruptura de contorno):

\usepackage{ulem}
\renewcommand{\ULdepth}{1.8pt}
\contourlength{0.8pt}

% contour each word to allow linebreaks
\RequirePackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\MIR}{m}
 {
  \seq_set_split:Nnn \l_tmpa_seq { ~ } { #1 }
  \seq_map_inline:Nn \l_tmpa_seq { \contour{white}{##1} ~ } \unskip
 }
\ExplSyntaxOff

% define underline
\newcommand{\myuline}[1]{%
  \uline{\textcolor{white}{#1}}%
  \llap{\contour{white}{#1}}%
}

pero esto no solucionó mi problema, y ​​ahora me di cuenta que eso \llapno permite saltos de línea ni separación de palabras tampoco... entonces, no sé cómo puedo solucionar el problema. Por favor ayuda.

Respuesta1

Modificando lo que tienes, puedes usar lo siguiente

\usepackage{contour}
\usepackage[normalem]{ulem}
\renewcommand{\ULdepth}{1.8pt}
\contourlength{0.8pt}

\newcommand{\myuline}[1]{%
  \uline{\phantom{#1}}%
  \llap{\contour{white}{#1}}%
}

% myuline on each word to allow linebreaks
\RequirePackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\myulineX}{m}
 {
  \seq_set_split:Nnn \l_tmpa_seq { ~ } { #1 }
  \seq_map_inline:Nn \l_tmpa_seq { \myuline{##1} ~ } \unskip
 }
\ExplSyntaxOff

Luego puede obtener los bonitos subrayados de alexwlchan que desee y también hacer que funcionen a través de saltos de línea. Úselo como:

\myulineX{Now the \texttt{myulineX} text will have nice underlines that avoid
  descenders, and also don't cause issues with line-breaking.}

Llegar:

ejemplo

Sin embargo, los subrayados no continúan en los espacios entre palabras. Si eso es un problema, no sé cómo solucionarlo (ver también el comentarioaquíen el mismo sentido, creo).

información relacionada