Latex3: xparse tidak berfungsi di ConTeXt MkIV

Dibuat pada 18 Jun 2020  ·  7Komentar  ·  Sumber: latex3/latex3

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

bug generic-mode xparse

Semua 7 komentar

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.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat