Are there any alternatives that have solved this problem?
Are there any alternatives that have solved this problem?
Probably doesn't hurt to adopt his style of reuse. Which is not necessarily to "link" to a full blown library of macros for purposes, but to pick and choose some that you wish to use. Possibly even just redefining them yourself.
Perhaps this means we should be trying to do simpler stuff, but I'm pretty sure that's impossible in the conference driven world I found myself in.
My main thought is that as you bring in more and more libraries to accomplish things, you start bringing in more and more sets of assumptions about the underlying abstraction and these don't always hold. Somewhat ironically, I think of paper layout now as an optimization problem, akin to how TeX thinks of paragraph layout. That is, it will be somewhat iterative. No getting around that.
So, I sadly don't have any prescriptive advice. Just the observation that the simpler papers out there of Knuth's are quite a bit easier to read in source than many of the ones I have ever authored.
Esp. ANT would have been a fantastic improvement.
[1] https://web.archive.org/web/20090310012257/http://ant.berlio... [2] http://sourceforge.net/projects/ant.berlios/ [3] https://news.ycombinator.com/item?id=6668551
To start gaining traction though, it should migrate from darcs to git, and move their own repo to github. It would enable people to contribute more easily, as well as bug reporting and editing the documentation.
The tarball is still there, though.
pmeunier (https://news.ycombinator.com/user?id=pmeunier), one of the authors, discusses this a bit at https://news.ycombinator.com/item?id=8026930 (though without, I think, committing to any definitive answer).
TeX is not a programming language, it's two programming languages. These languages have a self modifying syntax and is parsed with state machines that can be changed. Changing the syntax into something meaningful other is yet quite impossible. It's meant not meant to be able to read markdown or xml.
These Languages are so odd even division of two variables is non-trivial, yet both are truing complete and servly limited, a classic turing tar pit, even division of two variables is nontrivial.
The hole TeX thing is a huge state machine, and uses imperative paradigms, while declaratives would have been much nicer.
All that leads to a horrible, monkey patching coding style.
On the internals there are other horrible things: Unicode was known when it was invented, font formats are a mess (even with XeTeX; I think I can't have another mapping for my the cursive style of a font then for regular. Good thing is the very verbose documentation for fontspec does mention "mapping" twice)
If does follow imperative paradigms, as it does, the programming language part is essential if you want to do anything meaningful with it. If exotic task you never need in typesetting, such as multiplication, is hard to implement, something is wrong. And IMO that is why LaTeX is so odd and hackish.
Context is much better, tough.
And, by the way, the unfortunalty dead ANT uses a nice Haskell like language and is still a typesetting DSL.
http://sourceforge.net/projects/ant.berlios/ https://web.archive.org/web/20090310012257/http://ant.berlio...
They are hardly programming languages.
Knuth: So TeX is a programming language but I had to put in those features kicking and screaming.Yes, certainly, but you said (https://news.ycombinator.com/item?id=8615643):
> TeX is not a programming language.
rather than "TeX is not intended to be a programming language." It is nit-picking to be sure, but I think that, if the creator of a language (especially one who knows his stuff as Knuth does) says that it is a programming language, then it is.
Another appeal to (a lesser) authority—the TeX Users Group (https://www.tug.org/whatis.html):
In summary, TeX is a special-purpose programming language that is the centerpiece of a typesetting system that produces publication quality mathematics (and surrounding text), available to and usable by individuals.
… and an appeal to the fact that people have written programs in it: http://stackoverflow.com/a/1931289.(P.S. To "so, is XSLT a programming language because of, say, http://www.unidex.com/turing/utm.htm ?" I say "sure, why not?" What is the point of excluding something from being a programming language?)
Certainly not, not even latin-1 was existing when TeX was created.
Perhaps some dyslexia lead someone to believe they were invented in the same year? :-)
Personally I'm a fan of markdown->latex->pdf using pandoc, although figure/table/equation numbering is still a bit of a hack (though there's wip plugins for them, or you can cheat with some embedded latex)
https://github.com/speedata/publisher
manual:
http://speedata.github.io/publisher/manual/index.html
built on top of (Lua)TeX.
A lot of latex2e packages are using latex3 in the background (for example fontspec).
I don't want a new language, myself, because new languages are much more difficult to migrate to. Personally, I just want an implementation that knows how to produce good error messages despite LaTeX's macro implementation. By the time TeX sees the results of the LaTeX macros, it loses the context for producing meaningful diagnostics.