Hacker News new | ask | show | jobs
by JonSkeptic 4517 days ago
LaTeX was built to typeset documents. You have pages in documents and pagination is of critical importance in LaTeX. In the web you don't have pages, it's evolved to be seamless and scrollable. Natuarally, LaTeX was not designed for such an environment.

That doesn't mean that LaTeX is worthless on the web. The gluing algorithms that Knuth used for creating sentences and paragraphs do (for the most part) work, even in documents without pages. In all honesty, the web could benefit greatly from LaTeX, pagination aside.

I'm glad that the author seems to have a practical perspective on this: >We think LaTeX is still the best programming language to tell a computer how to place text on a page. But the TeX project started pre-web, in 1978, and its scope and function are tightly linked to the printed page, not the webpage.

He goes on to give an example of constructing a table in LaTex which requires (or assumes by default) a suggested location for LaTeX to place the table in the page; something which is currently nonsensical in all but a few web environments. Like the author, I also find CSS appealing for a potential "LaTeX" on the web solution.

However, LaTeX was designed from the very first to be the next standard in type setting and is a turing complete language. CSS is still under debate for being turing complete, and it lacks nearly all of the features that are iconic of LaTeX, except for the ability to format math equations ( and even then...).

I'm not sure what the next standard in typesetting will be, but it will be designed to be device agnostic (with book existing as a supported format), it will target the web and similar digital media, it will be turing complete, and it will be created specifically to fulfill each of those goals, not to have them retroactively attached in a ham-fisted way.

5 comments

"We think LaTeX is still the best programming language to tell a computer how to place text on a page."

No. The output might be beautiful, but the language is most certainly not. Awful to debug.

I consider a more modern language that compiles to LaTeX and leverage its rendering engine for paper docs (while giving you sufficient control over the output) and also gives you a nice web output more pragmatic and a nicer way to approach the problem.

Strongly agree. It's taboo to criticize TeX because of who wrote it, but let's be honest: from a usability perspective it's atrocious. Cryptic error messages, code that rivals assembler for readability ... hell even the directory layout makes no sense to me, and I've been using TeX daily for over ten years. I hold Knuth in high regard as a scientist, and there's no arguing that TeX is a technical masterpiece which revolutionized the field of mathematics--but this is not the typesetting language that's going to carry us through to the next century (I hope).
> Strongly agree. It's taboo to criticize TeX because of who wrote it,

I assume you're referring to Knuth, but it's important to distinguish between TeX and LaTeX (the latter was written by Leslie Lamport).

The distinction between TeX and LaTeX is actually relevant here.

> The distinction between TeX and LaTeX is actually relevant here.

I know very little about both. Could you elaborate on the relevance?

TeX is the low-level typesetting system and programming language. LaTeX is a set of macros on top of that that try to support a more semantic approach to document layout. If you see long command names that more or less spell out what they do, it's usually LaTeX. If you see short, cryptic abbreviated commands it's usually TeX.
And if you use either TeX or LaTeX instead of Lyx, you're a masochist.
"No. The output might be beautiful, but the language is most certainly not. Awful to debug."

Absolutely agree but, as far as I'm aware, this "more modern alternative" does not exist.

Lout is quite a bit saner but doesn't have much traction. It seems to be in "deep maintenance" mode now.
There's Patoline[^1], which is still in a somewhat early state, and its language is quite LaTeX-ish.

[^1]: http://patoline.com/index.html

What about this ? http://dlmf.nist.gov/LaTeXML/

Having some XML output seems to make it easier to add CSS rules ?

Combines the complexity of LaTeX with the hideousness of XML. Great.
A system that takes ideas from http://docs.racket-lang.org/scribble/ would be most welcome.
> I consider a more modern language that compiles to LaTeX and leverage its rendering engine for paper docs (while giving you sufficient control over the output) and also gives you a nice web output more pragmatic and a nicer way to approach the problem.

I'm currently looking for exactly such a solution. Have you found any?

Sidenote: Ideal would be a language that comes with either Word or E-Pub conversion tools (in order to migrate existing word documents over). I say E-Pub because there is a relatively nice migration path from Word to there: Get on a Mac, open the Word in Pages, export to E-Pub. Can also be used to get a sane xhtml output, since it's just a zipped folder with xhtml and some images.

yep... we're all ears to alternatives. i often have to publish technical works academically and i really think the current crop of non-LaTeX solutions produce painful results. but i'm up against "we all use MSWord™ because we all use MSWord™" and there will be no getting overworked academics to invest the energy in anything that doesn't look like the tools with which they are already familiar. so... for gawdsake, find me something which isn't LaTeX which produces good equations and good page positioning without crashing and -looks- like MSWord to the non-technical computer user. i've had no luck. (and my cobbled together web nightmare rtf2text, git merge, meta LaTeX rube-goldberg device is leaking oil rapidly)

oh, and it has to play well with EndNote™ too. -sigh-

Have you tried Lyx[1]? It might not be as straightforward as MS Word, but if you care about the way the page looks, aren't afraid of using writing a little bit of LaTeX by hand, it works great.

[1]: http://www.lyx.org/

yes indeed. and it's certainly worthy at the postdoc level. but (quote from the LyX site): "Can I read and write Word files? Yes, but not trivially, and you should not expect to be able to collaborate with someone using Word to edit your paper. You can import Word files, and you can export Word files, but going 'roundtrip' is not workable." ...it's that "round-trip" that is currently vital.

what i really would love to see is some stable fusion of LyX and a web-collaborative-writing program like 'Gobby' (http://gobby.0x539.de/trac/) ... google-docs has been tried, but folks got scared between google-wave suddenly dying and that whole issue of corporate leaking to sinister third parties and corporate scraping

"you should not expect to be able to collaborate with someone using Word to edit your paper"

This, this is death to every alternative I look at.

> but i'm up against "we all use MSWord™ because we all use MSWord™" and there will be no getting overworked academics to invest the energy in anything that doesn't look like the tools with which they are already familiar.

MSWord has the additional problem that it can't be used together with my favourite Version Control System.

This post, right here, is one reason I'm glad I'm not in academia any more. I added Sweave to my rube-goldberg device though, and it leaked much, much more.
Emacs with org-mode works very well this way.
Be careful what you wish for re. Turing completeness. One of the things we're discovering is that, when implemented properly, basic modern CSS (i.e. 2.1) parallelizes beautifully across multiple threads and cores for large speedups, with only a few exceptions in wide use, like floats. But if CSS hadn't been so declarative, we'd be stuck in the computing model of the 90's era it was designed in when implementing it.
Turing completelness does not mean that the execution paths are specified.

Or, in a simpler way, do you know Haskell?

"CSS is still under debate for being turing complete"

So far as I'm aware, that's not the case. CSS is not Turing complete, in terms of what it can calculate in a single calculation. It is Turing complete if you string those calculations together, feeding the output of the last into the input of the next, which can only be done with some external source of events, but that is a larger system than "CSS". A UTM run for up to 1000 steps is not Turing complete.

Turing completeness is arguably a bug, not a feature, when the goal is producing something quickly.

> In the web you don't have pages

It can be done. For example Google docs supports headers, footers, and footnotes, but you are still free to decide whether to use the "print layout" or more webpage-like seamless layout for both editing and publishing ("publish to the web").

Wouldn’t Turing-complete file formats be difficult to search because the output could have arbitrary syntax and the crawler would have to run the code. On the other hand, why not make use of faster machines.