Como usar \discricionário dentro do \hl do soul?

Como usar \discricionário dentro do \hl do soul?
\documentclass{article}
\usepackage{soul}
\usepackage{color}

\begin{document}
    Some \hl{te\discretionary{-}{-}{-}xt}.
\end{document}

O acima não compila devido aFaltando { inserido,Lista discricionária inadequada,Lista incompatível não pode ser desembaladae\prevprofundidade imprópriaerros. Removendo \hlou \discretionaryremove todos os erros.

Como posso corrigir o código para permitir o aninhamento do \discretionarysoul \hl?


Atualizar:

Gostaria de redefinir localmente \discretionarypara retornar apenas o terceiro argumento, pois o comando original não funcionaria nas macros do soul. Consegui chegar até aqui:

\documentclass{article}

\usepackage{soul}
\usepackage[usenames,dvipsnames]{xcolor}%\usepackage{color}

%https://tex.stackexchange.com/a/139500:
\soulregister\cite7
\soulregister\ref7
\soulregister\pageref7

\def\highlightcolor{yellow}
\DeclareRobustCommand{\hlc}[2][\highlightcolor]{{\sethlcolor{#1}\hl{{\renewcommand*\discretionary[3]{\mbox{####3}}#2}}}}

\begin{document}
    \hlc{Some,te\discretionary{-}{-}{-}xt}.
\end{document}

insira a descrição da imagem aqui

No entanto, isso ainda gera erro se o texto destacado contiver espaços. Acho que é causado por colchetes duplos em \hl{{…}}, mas não consegui redefinir o escopo de \discretionarywithin \hlde outras maneiras. Existem algumas alternativas para permitir o realce de texto sem remover \discretionarycomandos? Tenho trechos de texto bastante longos contendo esses comandos que preciso destacar, mas na versão final o realce deve ser removido. Portanto, não quero remover \discretionarycomandos, mas apenas redefini-los localmente para algo que não cause erros quando o realce estiver em uso. Retornar apenas o terceiro argumento seria suficiente para mim.

informação relacionada