TeX Live 2014
latex-community.org
latex-community.org
The core pain of LaTeX may be summarized in only two words: poor composability. Anything (package) can break anything else. The environments offered by many package cannot be composed.
To top it off, almost no-one has an understanding of the underlying semantics of LaTeX. Few people even know how LaTeX macros work (and I'll include myself in that). LaTeX lives off cut and paste more than PHP and Javascript ever did. This is made more tragic by the fact that the people using LaTeX (in many cases academics, not script kiddies) should know better.
I really think there is a market in providing a clean replacement to LaTeX by the way. Seen the prevalence of LaTeX in large institutions, it wouldn't be hard to get them to pay for a better solution if you could get the users on your side.
LaTeX is not only very extensible, but also, in my experience, very stable. Even typesetting hundreds of pages filled with figures (both rasterized images and vector graphics made with TikZ, which is wonderful by the way), equations, tables, references and stuff, just works.
I do agree on the error messages though. However, so far a search on tex.sx have solved everything. Sure, spending 30 minutes on a bug only to discover a misplaced closing bracket sucks, but to me, that's a tradeoff I can live with.
If anything should ever replace (La)TeX, my bet would be something like Markdown. However, I think it'll take a while... LaTeX has a HUGE community and a large array of packages written for all sorts of features.
I think the original author's points have merit: for example, the error messages are horrid, and in my case it's certainly not helped by adding another layer of indirection. But, I also fully agree with you: it's still better than everything else!
\left(\int some stuff \\
some stuff on a new line\right)
and have the parentheses, like, resize the way they would without the line-break.I don't think that Markdown is a viable replacement for LaTeX. The benefits of LaTeX over TeX are convenient font management, cross references, bibliographic databases, etc (although, if you can do without "convenient font management", TeX with eplain will get you most of what you want LaTeX for). The benefits of TeX are page layout and typography. Neither of these really fit Markdown. TeX on its own isn't much heavier than Markdown.
It would be interesting if some of these lightweight alternatives --- pandoc, org-mode, etc --- would target TeX and handle the LaTeX functionality themselves. It would obviously be more work, but it might lead to something self-contained and distinct.
(La)TeX gets the same treatment as Vim is getting right now with Neovim [1]. A full refractoring to make code from the 80s readable by a larger group, make it faster (some kind of JIT compiler would be nice) and just cleaner in every way.
Xetex is a rewrite that supports Unicode and TTF/OTF fonts.
Luatex is a rewrite that supports Unicode and TTF/OTF fonts and is scriptable in Lua.
Can anyone give me an order-of-magnitude estimate for how much it would cost to make an "enterprise-quality" version of LaTeX? Something with the same powers, but say, the ability to use columns without reading web forums, with packages that don't conflict, and with human-readable errors.
Macros are local to the environment where they're created, so you can get around a lot of cut and paste by using \newcommand judiciously at the top of your \begin{proof} or \begin{itemize} (etc.)
I think, in the eyes of many of its users, Scientific Workplace is the paid "replacement" for LaTeX. I know a lot of people like Lyx too.
Latex is a set of Tex macros that turns Tex into something more similar to a Markup language where one does mark up headings for headings etc.
While Tex is exceptional in its quality, robustness and beauty (it is probably one of the oldes software pieces still in wide use), Latex has a lot more dark corners as user norswap points out.
Latex enables average users to use Tex without having to think about how to lay out a document. Latex makes a lot of good choices in Layout (and a few bad ones too).
Nevertheless -- and that continues to amaze me -- Latex and its documentclasses continue to be the only viable choice for scientific typesetting by PhD students who just don't have the time to learn plain Tex.
There are a few Tex-based alternatives (Context for example) that could be considered equal, but Latex seems to offer a reasonable experience.
In the WYSIWYG realm, there is hardly viable competition. Word or LibreOffice/OpenOffice, Docbook/XSLT/XML:FO, etc. Most of them produce inferior results or provide an inferior user experience.
I have heard countless stories of people who opted to not use Latex for their thesis/drafts, and the pain is unspeakable. A friend realized - when turning in his thesis - that page numbering was off on odd pages in the copy he meant to turn in last minute (was there on the draft printed out 3 hours before). A lecturer had his PhD dissertation published by its subtitle because by accident it vanished during the title. Countless How-to-write-your-thesis guides of the early 2000s adviced to not write more than 20 pages within the same document of a popular word processor since it was known to easily crash then. And have I mentioned how much more painful handling citations is in most word processors? Bibtex et. al is not comfortable, but I would prefer it to most other solutions on the market. The manual for a product at a company where I worked at had odd page numbers in serif fonts and even in sans serif fonts. It was produced not with a consumer word processor but with a "professional" tool. An XSL:FO based report generator that I once had to use produced horrible typesetting (and made the machine swap while formatting that textual output, 4GB of RAM were not enough). And changing things was nightmarish.
I wonder what the future of Tex and Latex is, but I do not see serious competition on the horizon, especially not in areas, where people have to get things done.
My best bet is, that the haskell folks will be able to provide an alternative in a few years, the diagrams library has already taken on Metafont and pandoc has been proven to be great for parsing text markup. The meta language of the diagrams library has shown that Haskell is actually suitable and expressive for drawing and arranging items. Until then, Tex will rule the world of outstanding scientific typesetting for the average scientist.
One of Latex's Building blocks, Metafont, a domain specific language for curve definition (as in fonts) is already implemented in Haskell, and it does not look anything like what people expect Haskell to look like, its part of the diagrams library [1]
http://projects.haskell.org/diagrams/doc/metafont.html
What would be next is probably to port the layout algorithm for paragraphs (the rubber and boxes stuff). This could then be used within a framework for page layout.
As a big conceptional change it would probably mean that one separates the Macro stuff from the markup. As writing the plain text within a haskell sourcefile is probably not what one wants (Strings, quoting, etc.).
[1] The diagrams library by itself has resemblances to the immensly powerful Tikz package.
Pollen is intriguing[1,2], but way too early to say anything about. If TeX or LaTeX are going to be displaced any time soon, it's going to be because of textbooks published on the web (caveat: unfounded speculation on my part, but read on). I'm sure it's possible to embed a dynamic simulation into a pdf, for example, but nothing like what can be put online. And LaTeX isn't designed to produce websites.
[1]: http://mbutterick.github.io/pollen/doc/
[2]: https://news.ycombinator.com/item?id=7822057 (HN submission)
The power of TeX is that it is a powerful and beautiful type setter. Something like a website was not on the horizon.
For Online-Documentation the best option for me is Sphinx at the moment. It is extendible and still a clean markup, slightly more powerful than markdown but does not get into the way.
It is no coincidence that it uses Latex for generating its PDFs. Sadly its not possible then to polish the printable output in the same way as you would be able in tex or latex.
I used LyX as a student http://www.lyx.org/. It was a great way to quickly generate a LaTeX document and then fiddle around with it at the end. That was the 1.5 version, they're now on 2.1 which looks much more polished.
Dunno about that, I've worked with both commercial research code (which has developed a second life as a mission critical commercial project) and academic research code. It's almost all absolutely dreadful for generally good reasons.
I'm writing up my PhD at the moment. I was going to finish it in markdown and then move it over to msword with pandoc. A couple of days of messing around with xrefs and such like and I'm very happy to see that it's in LaTeX now, and that LaTex much to my surprise is still the best environment in which to prepare a thesis.
Here is the thing. I treat LaTeX (mostly) like markdown. I use the environments to write my text, include my maths, add my figures, and compile with the target journal's sty file. Done. For my thesis, I applied my university's thesis style guide.
Now, there are all sort of clever packages that do various things - however, rarely is that my job to source and apply. The publisher of your document should be doing that.
I agree with the underlying problem - the package design can cause problems, but you can usually work around them. It is after all just a collection of contributions mostly from academics hacking to add some feature they need.
As to 'people using LaTeX should know better', I would argue that they do know better - but contributing back to one of many tools they use that is already doing what they need is probably low on their priority list. Remember, their responsibility isn't to work on typesetting projects, but to be able to typeset their research for publications. Most will do what it takes to get that done - which is probably where all those nightmarish packages come from.
- I have found that learning how to write simple macros can simplify writing LaTeX significantly. If you dislike how you have to write the same five invocations in every figure, just make that a macro. \newcommand is easy enough to learn. Treat your LaTeX like you treat any other programming task. Build abstractions, refactor.
- I recently switched from pdflatex to lualatex. Now I can write "macros" in Lua. This finally enables me to write complex stuff, like a LaTeX environment that converts markdown to LaTeX, or some fancy table editing stuff. I can now bring to bear my regular programming skills on LaTeX code!
- There are a few data formats that convert cleanly to LaTeX. I actually write my documents in org-mode, which is then converted to LaTeX. While this sounds like a recipe for disaster, it actually works great because of two properties: One, you can always write plain LaTeX inline in your org-mode stuff, which will be copied verbatim into the resulting document. Two, the resulting LaTeX code is clean enough to just switch over to using that in case something catastrophic happens to org-mode.
- There actually is one very viable alternative to LaTeX: HTML. HTML5 and CSS3 in particular introduced very comprehensive support for paged media and there are a few excellent HTML-PDF exporters available out there. Just imagine how much cooler it is to write plain HTML, and take care of all the formatting in CSS. This also enables the use of preprocessors like Markdown, and Javascript for programmatic content (like MathJax for equations). This really works, and it works today. The effort to write beautiful documents remains high though, on a similar level to writing beautiful LaTeX documents.
There is no built-in capability to make common constructs, for instance a simple LaTeX \newcommand{\stdbasis}{E}.
This has been the cause of text extraction being a nightmare for TeX PDFs, glad it's finally fixed, even if it took 16 years!
It is even bigger than all of the Web browsers, which can perform all the tasks as Tex and many other once.
Web browsers cannot perform all tasks of TeX, starting with page breaks.