soul の \hl 内で \discretionary を使用するにはどうすればいいですか?

soul の \hl 内で \discretionary を使用するにはどうすればいいですか?
\documentclass{article}
\usepackage{soul}
\usepackage{color}

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

上記はコンパイルできない。欠落している{挿入不適切な裁量リスト互換性のないリストはアンボックスできませんそして不適切な\prevdepthエラー。削除\hlまたは\discretionaryすべてのエラーを削除します。

\discretionarysoul のネストを許可するようにコードを修正するにはどうすればよいでしょうか\hl?


アップデート:

元のコマンドは soul のマクロ内では機能しないため、3 番目の引数だけを返すようにローカルで再定義したいと思います\discretionary。私はこの点までなんとか進みました:

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

ここに画像の説明を入力してください

ただし、強調表示されたテキストにスペースが含まれている場合は、依然としてエラーが発生します。 内の二重中括弧が原因だと思いますが、他の方法で のスコープ内で\hl{{…}}を再定義することはできませんでした。 コマンドを削除せずにテキストの強調表示を可能にする代替手段はありますか? 強調表示する必要があるコマンドを含むかなり長いテキストがありますが、最終バージョンでは強調表示が削除されます。 そのため、コマンドを削除するのではなく、強調表示の使用時にエラーが発生しないようにローカルで再定義するだけです。 3 番目の引数だけを返すだけで十分です。\discretionary\hl\discretionary\discretionary

関連情報