I like LaTeX
, but I find its macro system and logic both complex and weak.
languages such as Schem/Lisp/Clojure are very good at macros. I imagine the entire document written in a lisp family language, which, when run, would emit LaTeX code and produce a document. Has this been done before? Any links?
1 Answer
Racket does exactly that in Scribble, its documentation system. There are now thousands of documentation pages written in this system, and it's very much alive. Note specifically the syntax that is used, which makes lots of such hybrid commands via-spitting-out-text very conveniet.
Note, however, that while macros are used as usual in any Lisp/Scheme code, they are not a central point of this. Functions are just fine for most things -- they just happen to consume text and produce text. LaTeX (or more generally TeX) happens to have chosen a kind of low-level macro based evaluation strategy that fits some cases.
-
So ... your comment on macros - are you saying that Python is just as good as Lisps at emitting Latex?– JobJul 10, 2011 at 13:32
-
Well, IMO Lisps are better than Python because of macros (among other things) -- so let's just say that for emitting latex, Python doesn't suffer from any new problems compared to lisps... Jul 11, 2011 at 17:56
-
-
1Mark C: in both cases (a Lisp or Python) a system like this is writing code that generates (la)tex code. There's no particular reason that one would be better than the other other than the usual claim that Lispers will have that their language is better and vice versa. In that sense, there are no new problems on either side. Jul 26, 2011 at 1:49
-
Oh, thanks for answering. I misread that "compared to" means Lisps have problems doing this job. By the way, you need an "@" to send a notification. (You'll get one because this is your answer.)– Mark CJul 29, 2011 at 4:14
*
suffix. Lisp haslet
andlet*
and so on, LaTeX has\section
and\section*
.