Pernikahan Lisp dan LaTeX - sudahkah itu dilakukan?

9

Saya suka LaTeX, tetapi saya menemukan sistem makro dan logikanya kompleks dan lemah. bahasa seperti Schem / Lisp / Clojure sangat bagus di makro. Saya membayangkan seluruh dokumen yang ditulis dalam bahasa keluarga lisp, yang, ketika dijalankan, akan memancarkan kode LaTeX dan menghasilkan dokumen. Apakah ini pernah dilakukan sebelumnya? Ada tautan?

Pekerjaan
sumber
2
Ya, pencarian Google cepat mengungkapkan Lisp-Augmented TeX. Mungkin ada lusinan lainnya. Sistem makro LaTeX sebenarnya cukup kuat, meskipun tidak lemah. Anda dapat membangun sendiri, menyalin desain paket XML-in-Lisp.
Macneil
2
Perhatikan ada tex stackexchange
Robert Anton Reese
Omong-omong, LaTeX memberi penghormatan kepada Lisp dengan memanggil versi alternatif dari operator yang melakukan sesuatu yang sedikit berbeda dengan *sufiks. Lisp memiliki letdan let*dan seterusnya, LaTeX memiliki \sectiondan \section*.
Kaz

Jawaban:

13

Racket melakukan hal itu di Scribble , sistem dokumentasinya. Sekarang ada ribuan halaman dokumentasi yang ditulis dalam sistem ini, dan ini sangat hidup. Perhatikan secara khusus sintaks yang digunakan, yang membuat banyak perintah hibrid seperti itu melalui-spitting-out-text sangat kompak .

Namun, perlu diketahui bahwa sementara makro digunakan seperti biasa dalam kode Lisp / Skema apa pun, mereka bukan titik pusat dari ini. Fungsinya baik-baik saja untuk sebagian besar hal - mereka hanya menghabiskan teks dan menghasilkan teks. LaTeX (atau lebih umum TeX) kebetulan telah memilih semacam strategi evaluasi berbasis makro tingkat rendah yang sesuai dengan beberapa kasus.

Eli Barzilay
sumber
Jadi ... komentar Anda tentang makro - apakah Anda mengatakan bahwa Python sama baiknya dengan Lisps dalam memancarkan Lateks?
Pekerjaan
Nah, IMO Lisps lebih baik daripada Python karena makro (antara lain) - jadi anggap saja untuk memancarkan lateks, Python tidak menderita masalah baru dibandingkan dengan lisps ...
Eli Barzilay
@ Eli Apa yang Anda maksud dengan "masalah baru"?
Mark C
1
Mark C: dalam kedua kasus (Lisp atau Python) sistem seperti ini sedang menulis kode yang menghasilkan (la) kode tex. Tidak ada alasan khusus bahwa seseorang akan lebih baik daripada yang lain selain dari klaim biasa bahwa Lispers akan memiliki bahasa mereka yang lebih baik dan sebaliknya. Dalam hal itu, tidak ada masalah baru di kedua sisi.
Eli Barzilay
Oh, terima kasih sudah menjawab. Saya salah membaca bahwa "dibandingkan dengan" berarti Lisps memiliki masalah dalam melakukan pekerjaan ini. Ngomong-ngomong, Anda memerlukan "@" untuk mengirim pemberitahuan. (Anda akan mendapatkannya karena ini adalah jawaban Anda.)
Mark C