ConTeXt Mark IV(LuaTeX)でxparseを使おうとすると、次のようになります。
\input expl3-generic
\input xparse-generic
\starttext
\NewDocumentCommand\hello{om}
{
\IfNoValueTF{#1}
{Only #2}
{#1 and #2}
}
\hello{foo} \hello[bar]{foo}
\stoptext
「 foobarとfooのみ」の代わりに「 traceoff @traceonバーとfoo」と表示されます。
errorfile.pdf
このコードでは、@にcatcode文字が含まれている必要があります。 したがって、以下は機能しますが、コンテキストで実際にどの程度のxparseが機能するかはわかりません。ここでは、コマンド定義と構文の考え方がまったく異なります。
~~~~
\ input expl3-generic
\ catcode \@=11
\input xparse-generic
\catcode
\ @ = 12
\ starttext
NewDocumentCommand \ hello {om}
{{
\ IfNoValueTF {#1}
{#2のみ}
{#1と#2}
}
\ hello {foo} \ hello [bar] {foo}
\ stoptext
~~~~
xparse-generic
は、今後の変更のプレースホルダーです。プレーンなTeXまたはConTeXtでテストされていないため、ここで失敗するのは驚きではありません。 秋になると、それはもっと落ち着くでしょう。
これが機能することを非常に嬉しく思います。ConTeXtの場合、 \start...
/ \stop...
環境のセットアップを追加する必要があるかもしれません。
ConTeXtとの互換性について読んだので、何らかの相互互換性のあるコードがある場合に備えてテストしています。MkIVにはオプションの引数( \dosingleempty
、 \dodoubleempty
独自の慣用的な処理があるためです。 、 NS)。 私も嬉しいです。
最近まで、 xparse
は純粋にLaTeX2eパッケージでした。 秋にはそのほとんどをexpl3-generic
に統合する予定であり、その時点でプラットフォームに依存しないサービスの一部になりますが、idomをより「中立」にする計画はありません。 もちろん、コンテキストがまだ使用していますo
と- m
メインで型の引数を。
@JairoAdelRio少し前に、 scontents
パッケージ(https://github.com/pablgonz/scontents)のPlainとConTeXtの両方でxparse
を許可するための互換性レイヤーを作成しました。 たぶんあなたはそこからいくつかのアイデアをとることができます(それらがどれほど優れているかはわかりません;-)。
当時、 xparse
は完全にxparse.sty
に含まれていたため、互換性レイヤーの多くは\ProvidesPackage
などを定義しています。 最近はxparse-generic
方がはるかに簡単ですが、これは将来のリリースで変更される可能性が高いので、可能であれば少し待ちます
@ u-fischerの主張は正しいと思います。さらに、今後のexpl3
マージでは、さらに多くのことに対処する必要があります。締めくくります。