Latex3: xparseがConTeXtMkIVで機能しない

作成日 2020年06月18日  ·  7コメント  ·  ソース: latex3/latex3

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 

foob​​arとfooのみ」の代わりに「 traceoff @traceonバーとfoo」と表示されます。
errorfile.pdf

bug generic-mode xparse

全てのコメント7件

このコードでは、@に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マージでは、さらに多くのことに対処する必要があります。締めくくります。

このページは役に立ちましたか?
0 / 5 - 0 評価