Lisp ve LaTeX'in evliliği - yapıldı mı?


9

Seviyorum LaTeXama makro sistemini ve mantığını hem karmaşık hem de zayıf buluyorum. Schem / Lisp / Clojure gibi diller makrolarda çok iyidir. Belgenin tamamının lisp aile dilinde yazıldığını ve bu çalışıldığında LaTeX kodu yayacağını ve bir belge üreteceğini hayal ediyorum. Bu daha önce yapıldı mı? Bağlantı var mı?


2
Evet, hızlı bir Google araması Lisp-Augmented TeX'i ortaya çıkarır. Muhtemelen onlarca kişi var. LaTeX makro sistemi kalbin zayıflığı için olmasa da aslında oldukça güçlüdür. Lisp'de XML paketlerinin tasarımını kopyalayarak kendinizinkini oluşturabilirsiniz.
Macneil


Bu arada, LaTeX bir sonekle biraz farklı bir şey yapan operatörlerin alternatif sürümlerini çağırarak Lisp'e saygı gösterir *. Lisp sahiptir letve let*vb, LaTeX vardır \sectionve \section*.
Kaz

Yanıtlar:


13

Raket , dokümantasyon sistemi Scribble'da tam olarak bunu yapar . Şimdi bu sistemde binlerce belge sayfası var ve çok canlı. Özellikle kullanılan bu sözdizimi komutlarının birçoğunu spitting-out-out-text yoluyla çok kullanışlı hale getiren sözdizimine dikkat edin .

Bununla birlikte, makrolar herhangi bir Lisp / Scheme kodunda her zamanki gibi kullanılırken, bunların merkezi bir nokta olmadığını unutmayın. Fonksiyonlar çoğu şey için iyidir - sadece metin tüketir ve metin üretir. LaTeX (veya daha genel olarak TeX), bazı durumlara uyan bir tür düşük seviyeli makro tabanlı değerlendirme stratejisi seçmiştir.


Yani ... makrolar hakkındaki yorumunuz - Python'un Lateks yayarken Lisps kadar iyi olduğunu mu söylüyorsunuz?
Meslek

IMO Lisps, makrolar (diğer şeylerin yanı sıra) nedeniyle Python'dan daha iyi - bu yüzden diyelim ki lateks yaymak için Python, lisps'lere kıyasla herhangi bir yeni sorundan muzdarip değil ...
Eli Barzilay

@Eli "Yeni problemler" ile ne demek istiyorsun?
Mark C

1
Mark C: her iki durumda da (Lisp veya Python) böyle bir sistem (la) tex kodu üreten kod yazıyor. Lispers'in dillerinin daha iyi olacağına dair olağan iddiasından başka birinin daha iyi olması için özel bir neden yoktur. Bu anlamda her iki tarafta da yeni bir sorun yok.
Eli Barzilay

Cevap verdiğiniz için teşekkürler. Ben "karşılaştırıldığında" Lisps bu işi yaparken sorunları olduğunu yanlış okudum. Bu arada, bir bildirim göndermek için "@" işaretine ihtiyacınız vardır. (Bir tane alırsınız çünkü bu sizin cevabınızdır.)
Mark C
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.