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?
9
*
sufiks. Lisp memilikilet
danlet*
dan seterusnya, LaTeX memiliki\section
dan\section*
.Jawaban:
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.
sumber