\ExplSyntaxOn... \ExplSyntaxOff 内のテキスト引数でもスペースが無視されるのはなぜですか?

\ExplSyntaxOn... \ExplSyntaxOff 内のテキスト引数でもスペースが無視されるのはなぜですか?

回避策を見たことがある内部の空間を認識する\ExplSyntaxOn... \ExplSyntaxOffしかし、(LaTeX3) マクロの引数が間違いなくテキストを期待しているのに、なぜスペースが認識されないのか疑問に思います。たとえば、⟨text⟩⟨more text⟩のようになります。

\msg_new:nnnn { ⟨module⟩ } { ⟨message⟩ } { ⟨text⟩ } { ⟨more text⟩ }

答え1

スペースには無視のcatcodeが与えられているため、トークンはまったく作成されません。~通常のスペーストークンを作成するために使用します。

\msg_new:nnnn { ⟨module⟩ } { ⟨message⟩ } { ⟨text⟩ } { ⟨more ~ text⟩ }

代替案としては、何か他のことをすることですが、それが何であれ、\verbcatcode の変更を伴うため最上位レベルでは機能しますが別のコマンドの引数内では機能しないという点で同じ問題が発生する可能性があります。または、スペース トークンを削除するかしないかの複雑な事前スキャンが必要になるため、%行末で空白を非表示にする必要がある場合がありますが、L3 構文はこれを回避するように設計されています。

このコンテキストでは、~非改行可能なスペース構造を作成するアクティブな文字ではなく、単に、ドキュメント設定内のスペースからのようにスペース トークンを作成するスペース キャットコードを持つ文字であることに注意してください。

関連情報