Berikut ini terjadi ketika seseorang mencoba menggunakan xparse di ConTeXt Mark IV (LuaTeX)
\input expl3-generic
\input xparse-generic
\starttext
\NewDocumentCommand\hello{om}
{
\IfNoValueTF{#1}
{Only #2}
{#1 and #2}
}
\hello{foo} \hello[bar]{foo}
\stoptext
Alih-alih "Hanya foo bar dan foo" muncul "@ traceoff@traceon Hanya foo @ traceoff@traceon bar dan foo".
file error.pdf
Kode mengharapkan @ memiliki huruf catcode. Jadi yang berikut ini berfungsi, tetapi saya tidak tahu berapa banyak xparse yang benar-benar berfungsi dalam konteks - ide definisi perintah dan sintaks sangat berbeda di sini.
~~~~
\input expl3-generic
\catcode \@=11
\input xparse-generic
\catcode
\@=12
\teks awal
Perintah Dokumen Baru\halo{om}
{
\IfNoValueTF{#1}
{Hanya 2}
{#1 dan #2}
}
\hello{foo} \hello[bar]{foo}
\stoptext
~~~~
xparse-generic
sangat banyak pengganti untuk perubahan yang akan datang: itu tidak diuji dengan TeX atau ConTeXt biasa, jadi saya tidak terkejut itu gagal di sini. Kami cenderung memiliki lebih banyak menetap begitu kami tiba di musim gugur.
Saya sangat senang ini bekerja sama sekali: untuk ConTeXt, saya kira kita mungkin harus menambahkan pengaturan lingkungan \start...
/ \stop...
.
Saya telah membaca tentang kompatibilitas dengan ConTeXt, jadi saya mengujinya jika ada semacam kode yang kompatibel-silang, karena MkIV memiliki penanganan idiomatisnya sendiri untuk argumen opsional ( \dosingleempty
, \dodoubleempty
, dll). Saya juga senang.
Hingga baru-baru ini, xparse
murni merupakan paket LaTeX2e. Kami akan menggabungkan sebagian besar menjadi expl3-generic
di musim gugur, di mana itu akan menjadi bagian dari penawaran platform-netral, tetapi tidak ada rencana untuk membuat idom lebih 'netral'. Tentu saja, ConTeXt masih menggunakan argumen tipe o
- dan m
- di main.
@JairoAdelRio Beberapa waktu lalu saya menulis semacam lapisan kompatibilitas untuk mengizinkan xparse
di Plain dan ConTeXt untuk paket scontents
(https://github.com/pablgonz/scontents). Mungkin Anda dapat mengambil beberapa ide (tidak yakin seberapa bagus ;-) dari sana.
Pada saat xparse
sepenuhnya dalam xparse.sty
, begitu banyak lapisan kompatibilitas mendefinisikan \ProvidesPackage
dan seterusnya. Saat ini akan jauh lebih mudah dengan xparse-generic
, tetapi ini kemungkinan akan berubah di rilis mendatang, jadi saya akan menunggu sebentar jika memungkinkan
Saya pikir poin @u-fischer benar, ditambah penggabungan-ke- expl3
akan datang harus membahas lebih banyak hal: Saya menutup.