カスタム環境内のすべてのテキストに下線(またはその他の書式)を付ける

カスタム環境内のすべてのテキストに下線(またはその他の書式)を付ける

すべてのテキストに下線が引かれるカスタム環境を定義しようとしています。underlineコマンドが入力に下線を引くことはわかっていますが、自分の環境でシームレスに動作させる方法がわかりません。

\documentclass{article}
\newenvironment{myenvironment}{\underline}{}
\begin{document}
Not underlined
\begin{myenvironment}
Only first character is underlined
\end{myenvironment}
\underline{Underlined correctly}
\end{document}

underline環境内のすべてのテキストに (または他のコマンド)を適用するにはどうすればよいですか?

それが重要であれば、xelatex 2015 を使用します。

答え1

探しているのはsoulutf8と ですenviron。ただし、下線を引くことについてもう一度考えてください。

\documentclass{article}
\usepackage{fontspec}
\usepackage{soulutf8,environ}

\NewEnviron{myenvironment}{\expandafter\ul\expandafter{\BODY}}

\begin{document}

Not underlined
\begin{myenvironment}
All words are underlined
All words are underlined
All words are underlined
All words are underlined
All words are underlined
\end{myenvironment}

\ul{Underlined correctly}

\end{document}

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

関連情報