Why is TeX still used? What are some good, modern alternatives?
tex.stackexchange.com
tex.stackexchange.com
The answer is not to find a TeX alternative. This will not be possible in Academia for a very long time. The answer is for someone to plunk down a million dollars to hire some full-time developers to fix it. Honestly, the TeX language is wonderful; it's the editors which are terrible. A TeX editor should...
[] seamlessly hide the compilation process
[] feature a modern debugging environment
[] make 99% of commands (including everything you can do in MS Word) discoverable within the editor, rather than sending the user to the internet or some pdf guide, and
[] robustly handle all modern image types
...without becoming an unstable WYSIWYG hybrid like LyX. The only thing about the language itself that might need to be changed is some standardization of common packages. I shouldn't need to download anything to get appendices and sub-figures to behave sensibly.
The amount of professor, post-doc, and grad student time wasted on TeX is staggering, and easily justifies paying for an overhaul...if only the government or some benefactor would step up.
The features you mention would be needed to put it in front of less geeky users but are far from the core issues. I'd love to see a language with better flow control and abstraction features put on top of the Tex engine that indeed produces beautiful output. Maybe LuaTex will be that.
LuaTeX does seem to be experimenting with some improvements in these areas though.
As for LuaTex I wasn't able to find any examples of actual markup written in it. I would expect that for the actual markup you'd want a language with a bigger and more flexible grammar so you could build DSLs. Ruby seems particularly good at that kind of stuff, but I'm biased there.
Incidentally I went looking for what pure TeX actually looks like as most people say TeX when they really mean LaTeX. Here's Knuth's TAOCP Volume I errata:
http://www-cs-faculty.stanford.edu/~uno/err1.textxt
Talk about Perl being line noise... I wonder if Knuth has ended up being the only person to actually write pure TeX.
My experience of using LaTeX compared to WYSIWYG is that it's easier to focus on the text in the editor instead of fighting with the UI interface but it then requires some chasing around package bugs and compile errors. In total it's clearly a net positive for me.
Writing pure TeX would seem to push the tradeoff quite a bit, having so much distracting stuff around the text that requires a totally different mindset than the text being written. It was probably designed for a world where typesetting was done as a final step before publication, potentially by someone else.
And no, Knuth is definitely not the only one using plain TeX. Yes, it is a niche.
Like a lot of things, if you're handed a finished product, it looks like random noise. If you could watch it being written, it pretty much makes perfect sense. It's a hideous syntax, and sometimes I still wake up in a cold sweat with long strings of '#' signs running taunting me from the corner of my eyes. But I can't say it was all that daunting to write, although I suspect my TeX code was highly non-idiomatic.
Ugh, and fonts and character sets. Do you still have to put in magic incantations like
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
to get working hyphenation with wacky characters such as æ, ø, and å?LuaTeX does seem to be experimenting with some improvements in these areas though.
About when I stopped paying attention to TeX and LaTeX many years ago (2002-ish?), there was some effort under way to rewrite all of TeX in Java. Did that go anywhere?
I'd say no. See http://extex.org/
OK. (As I said elsewhere...) When I said the language was fine, I meant that the language as a means for the user expressing an idea was fine, not that there aren't problems at a deeper level with the language. I'm a physicists, not a programmer. Nevertheless, the limitations of the given language could be massively ameliorated with a powerful editor.
>At least in LaTeX...
Sorry, I wasn't clear. I wasn't distinguishing between TeX and LaTeX. Everyone I know in Academia used LaTeX. I was just using TeX as a catch all to distinguish from other typesetting options.
> The features you mention would be needed to put it in front of less geeky users...
There's no reason I should have to go on the internet to find out how to use columns. Or sub figures. Or appendices. It should just work.
I'm not a less-geeky user who needs to be coddled (unless by "less geeky" you mean 99.99% of users). I just want to write up my research, and I don't want to have to think about typesetting theory.
I agree that those things should be easy to find. What I meant is that for the current user base those are nice to have but not essential. I have long since accumulated enough examples of the type of documents I write that I can quickly do the basic things just by copying them from somewhere else. I assume that people that write scientific articles already have working examples of two columns, sub figures and appendices that they just copy when they do a new article.
If you wanted to make LaTeX much more widely use then you'd need all the goodies you mentioned. But to even make those possible the environment under them needs to be much more consistent and robust than it is now. Something like LyX could work well if manual intervention in the typesetting wasn't so needed.
There are several editors for Tex&co that do on-the-fly compilation. Have you seen Kile's two panelled interface, for example?
feature a modern debugging environment
Well, this is a problem with the language: macro expansion is notoriously tricky to debug. I'd like to see work done on a static analyser for Tex.
robustly handle all modern image types
This is not a problem I have ever had. What are you thinking of? The only file types needing special handling in Luatex are Postscript and SVG; both convert painlessly to PDF, and the converter can be run automatically by Luatex.
Yes, I have two-panelled TeXworks open as we type. It's not seamless because I had to spend an hour fussing with it to set it up with my LaTeX distribution, and another 2 hours dealing with it when I needed to move from pdflatex to regular latex because the journal I was submitting to used some bizarre packages.
It's not that you can't eventually get it working, it's that you ever have to think about it at all.
>Well, this is a problem with the language: macro expansion is notoriously tricky to debug. I'd like to see work done on a static analyser for Tex.
Fine. When I said that the language was fine, I meant that the language as a means for the user expressing an idea was fine, not that there aren't problems at a deeper level with the language. I'm a physicists, not a programmer. Still, I can't imagine the debugging situation can't be greatly improved with the given language if actual people were employed to fix it.
>This is not a problem I have ever had. What are you thinking of? The only file types needing special handling in Luatex are Postscript and SVG; both convert painlessly to PDF, and the converter can be run automatically by Luatex.
I have had many, many headaches with getting images into a document. Last month, I spent 4 hours trying to solve one particular problem. Yes, maybe if I were deeply familiar with all the technical stuff surrounding TeX's relationship with images, I could have figured it out.
It should just work. I should type \includeimage{filename}, and it should just work.
TeXmacs is a true WYSIWYG scientific word processor. It's not a TeX/LaTeX GUI front-end. Rather, it has its own typesetter that produces quality comparable to TeX in real-time as you type.
TeX has a huge ecosystem built around it (Latex, Contex, many others). It's going to be very difficult replacing that.
Better build on what exists rather than replace it.
ftp://ftp.texmacs.org/pub/TeXmacs/macosx/qt/TeXmacs.dmg
Would it really take a $1M dollars to achieve a useful enough fix for TeX editing? And a better question, "is there are market for such an editor?"
What? What is the financial incentive of fixing ANY of the classical open source software?
Assuming you're actually interested in some kind of discussion rather than just trolling, see http://papers.ssrn.com/sol3/papers.cfm?abstract_id=908946, the same reference that's provided on the Wikipedia page for TeX if you'd bothered wondering where I got the information from, rather than just replying 'no' without any research.
The quote is: "TeX was designed with two main goals in mind: to allow anybody to produce high-quality books using a reasonable amount of effort, and to provide a system that would give exactly the same results on all computers, now and in the future."
A simple Google search for the statement above will reveal it's in almost every document ever produced on the topic of TeX, which suggests it may have been written by Donald Knuth himself.
And while many attempts have been made to flatten that curve with various tools, I'm hard pressed to find a compelling competitor to Microsoft Word or OpenOffice in terms of ease-of-use.
People in general are far more interested in the final result than the "beauty" of the steps to produce that result, especially when it comes to the written word.
Money have nothing to do with open source. Sure they help, but if a project is not followed it's not because of money incentives.
> LyX is a document processor that encourages an approach to writing based on the structure of your documents (WYSIWYM) and not simply their appearance (WYSIWYG).
I believe that description is aimed at former MS Word users who don't even know the WYM/G distinction exists, not as a definitive membership claim by LyX.
Personally, I don't want my editor to do anything with my source code except color code it, like turning the source code into into manipulable objects (or whatever you call that).
Honest question: What makes you say that? I've never completely understood why TeX is considered the best at handling mathematical notation. Personally, I've been very happy with the equation editor in Word 2010. I'll certainly acknowledge that there's likely better solutions than Word 2010, but before I invest substantial time learning something like TeX I'd like to understand exactly what it is I'm missing out on.
When people talk about TeX's mathematical typesetting abilities, they are often (from personal experience, as a math major currently in school) referring to having to typeset documents with many pages and upwards of 25% being math. It's much easier for me to type \int_0^\pi \sin (x) dx than it is for me to go click-click-click-click in Word. But besides that, when you're writing proofs, for example, and you have to keep referring to the same symbol, say sigma, over and over again, in LaTeX, you would simply write $\sigma$, but in Word, you would have to do Insert->Symbol or some nonsense. Several more seconds wasted, and that adds up when you have 100 occurrences of the character sigma in your document.
TeX has a learning curve, but it's not even actually that steep. Within 4 days of starting to use it I was already starting to grok it.
I think that a new generation of TeX based applications will show up in the next 10 years.
Edit: some links:
http://luatex.org/ - official site
http://en.wikipedia.org/wiki/LuaTeX - wikipedia
http://wiki.contextgarden.net/LuaTeX - LuaTeX is now also the base of ConTeXt, a LaTeX alternative
One thing I would like to see is proper static analysis tools for Luatex. Lua has tools like https://github.com/fab13n/metalua/tree/master/src/samples/me... but there's nothing of comparable sophistication for Tex, let alone code combining the two, which makes debugging needlessly hard.
With respect to catcode-changing code, you can model its possible execution paths: while you can construct example Tex code where you can't infer anything past this point without having complete information from before, in practice with, say a package, you do have example documents which the package is meant to work with, and you can use that in the static analysis.
I've thought about this a fair bit, at least in the context of typical Plain Tex, but not written much code. I should try and enough time for a proof of concept: there's a lot that could be built on it.
- You can reuse it everywhere, publish it on the web, print it
- It's easier to generate
- You can combine it with code much more easily
- Semantic tags in HTML5 (<article>, <section>) remove a big feature gap with LaTeX
- You can reuse your HTML skills for much more other topics.
I use LaTeX quite a bit, still use it for special goals (resumes, articles), but outside the scientific crowd, I don't think it is the best solution any more. I know the typography is better there than on most other software, but on that I rather wished browsers and HTML got better.
And example in action http://www.bramstein.com/projects/typeset/flatland/
https://github.com/bramstein/Hypher
It is quite small and fast, and mostly aimed at integration with other libraries, unlike Hyphenator.js (which comes with a partial DOM library.) An example integration can be seen in the Treesaver library (https://github.com/bramstein/treesaver/tree/hyphenation) where it is used to hyphenate magazine columns.
I've enjoyed it so much that I'm now using asciidoc for my github readme's and such, and will likely use it for future documentation-generation requirements (e.g. generating PDF and HTML versions of library developer guides and such). For those that need mathematical notation, it appears that asciidoc just uses passthrough blocks of LaTeX math notation (or direct MathML if you're so inclined)[2].
AFAIK, the vast majority of O'Reilly books pass through docbook at some point (many authors write in docbook directly, some portion of them use asciidoc like us), so if you look at any O'Reilly PDF ebook, chances are good it was generated from docbook (at least as an intermediate format).
For a little more control, you can feed the generated DocBook to something like Remko's DocBook kit (https://github.com/remko/docbook-kit), which downloads and runs the various document processors for converting to PDF in stages--with gnarly XML config files available for each stage. This can be helpful for trying to match a specific conference template, for instance.
If you try to use TeX as a programming language, you're going to be disappointed, as the OP seems to have been. The macros work well enough for saving typing by making simple substitutions, which is what most people use them for. But using them for anything more complicated is a bit of a black art. Somewhere I read that Leslie Lamport wrote out LaTeX in pseudo-code first and then translated it into macros. Knuth was impressed by what Lamport was able to do with a system which was not meant to be a general-purpose programming language.
In the end, I think Knuth was correct to make TeX's input focused on document entry and not on programming. I've never used it, but LuaTeX seems interesting because I think it's better to use an external language for programming rather than one embedded in a document layout format.
I spent months building an equation search engine for Springer's math/science corpus so I've experienced the pain and horror of parsing LaTeX first hand. HTML + Semantic MathML is so much easier to work with. Its easy to parse, it allows the author to easily convey scope and semantic information and it can handle resizable displays. It just needs better tooling (eg a sane macro language which outputs MathML).
Of course learning to typeset this kind of work in (La)TeX is not a walk in the park, but as a professor once told me it was easier (for a skilled operator, of course) to typeset a good, not to mention beautiful, critical edition with a Lnotype machine than with Word and similar software.
I do agree that TeX could be more "programmable", in the sense at least of integration with scripting languages; however, there still isn't a better tool and LaTeX 3/LuaTeX might indeed become a solution in the foreseeable future.
My major problem is that it does not handle animation and video well. Those are increasingly coming to be critical parts of presentations, and are the major thing pushing me towards OO.Presentation or PowerPoint or similar.
Also, DocBook documents can be validated automatically using DTDs or RelaxNG schema. (Yes, XML is full of buzzword bingo :).)
[1] Equations can be typeset with MathML, but since most software only supports presentation MathML this is not ideal.
For Natural Language Processing for the Working Programmer, we use the <oXygen/> XML editor, which really takes the pain out of writing DocBook documentation. It provides WYSIWYG mode that also renders inline or xincluded XML, such as SVG and MathML. I rarely switch back to the non-WYSIWYG mode, unless I want to reorder some elements quickly.
Using TeX to do the final typesetting in a DocBook workflow is quite old-fashioned. For years, I have used the XSL-FO stylesheet to create XSL-FO output. You can pass this to an XSL-FO typesetter, such as Apache FOP or RenderX.
This workflow has several advantages:
* You can easily tweak output by overriding templates.
* Commonly-used FO renderers render SVG and MathML. You can use one vector graphics format to create XHTML, ePub, and PDF/print output.
* Each step and output, except for the rendering step is XML and can be validated and transformed easily.
Second, it is the only system where I can expect a constant error rate. No feature is "done in no time", but can be solved in a rather constant time using Google and some TeX knowledge. In other systems, I am usually lost, because most of the stuff has not been tried or is not intended.
Also, it is actually quite fast in batch usage.
If you want to have a look at what can be done with TeX, have a look at the PGF documentation.
Also, don't mistake TeX with LaTeX, there are other TeX environments around that are better in certain regards.
As CSS3 support gets better and libraries like MathJAX brings beautiful math to HTML, I see less and less reason to stick with TeX.
One of the remaining issues I'm struggling with is margins which browsers unfortunately seem to have real problems with. However, if you can do with just default margins, MultiMarkdown -> HTML in your browser -> PDF works perfectly.
* Bibliography. The median article length in our field is 30+ pages, with reference lists of 60+ not uncommon. Maintaining these in Word/OO is a nightmare, even with (non-free) bibliography software. RefTeX allows me to find and insert citations in a matter of three keystrokes, and whenever I reshuffle the reference list I'm 100% sure it's in order (i.e. everything I cite in the text is in the references and there are no uncited references)
* We don't use math, but we do use a lot of tree-like diagrams. Drawing these by hand is a chore; using logical markup to get trees which need zero to very little tuning saves enormous amounts of time and frustration.
* Floats and numbered examples. TeX floats are notoriously unreliable, but seriously, are Word's any better? And it gets worse with numbered examples (and pictures in numbered examples). For instance, a frequent feature of linguistics papers is an interlinear gloss: two or three lines of elements that have to line up with each other. These involve tables or tab stops in a word processor, and are notoriously fragile (e. g. if your sentence doesn't fit on one line, you get horrible issues with breaking lines).
All this is in addition to the common advantages like keeping track of numbering. These are all things that can be done with a word processor, but usually require significant amounts of time and self-discipline.
A lot of people in our department use LaTeX; most are not of the "programming" type, and are not deeply "into" LaTeX, interacting with the very basics and using some googling and copy-pasting. They still get much more satisfactory results in a shorter amount of time than the Word people.
http://johnmacfarlane.net/pandoc/
Works quite well. If you known LaTeX, it allows you to customize your output template, while still composing in Markdown.
For that, I find the hierarchy macros of Latex much simpler to apprehend as well as lot of goodies: footnotes, references, hyperref, mathematic mode, bibliography management…
Also, and it's blocker for lot of my use cases, Latex is version control friendly. The WYSIWYG editors are not.
Changing fonts may become a PITA and I recommend to use the koma-script classes for that (btw, the whole system of packages and the build system are a mess), but at least people can't use Comic Sans.
But people don't know about styles, and their documents are ugly.
"If you ask a questions that harms the ego of any of our mods, your question will be summarily closed. Be advised that our mods identify with the technology at hand, so any criticism of the underlying technology will almost certianly be taken as a personal attack on our mods."
It's a cancer that affects all of the SE forums (and they _are_ forums).
Mathematics doesn't change as frequently as desktop publishing, so it's a good bet that the TeX (e.g. $\int_0^1 \tau \, d\tau$) is going to be around as long as people talk math online.
That said, I think there are much easier-to-use and less error-prone desktop publishing tools (e.g. Scribus) for less math-heavy domains, like magazine layout.
TeX, for me, tends to be articles, reports, and documents that I expect to use the same format again and again (or the format is provided, such as from IEEE).
That said, I never use TeX. It's too much work. Bean.app is more than I need.
Generally, it's easier to write logically structured text rather than physically structured text. Thus, instead of battling with physical layout people have a subtle incentive to try to let a computer automated some of that work for them in hope for productivity gains. Various text authoring tools and word processors can help with that to some extent.
The differences come into play as different software start cracking broke in different ways. Some people are never able to cross the border to something more complex and powerful and are thus forever limited to pixel-perfecting their MS Word layouts, equations, and formatting—quite complex and powerless in itself! Now, TeX has that power but comes with a steep learning curve and a significant load of archaic baggage. This means that, for people with certain inclination, it will be at some point be easier to battle with TeX than with other typesetting or text authoring programs.
TeX users don't probably drool its unlimited awesomeness. It just means that for many of them TeX is the best known tool for the job. If there ever is an another tool that allows them the power of TeX and yet comes with a good library of facades that shield them from the inevitable ugly innards it will probably win over many people over time. Nobody likes to write HTML/XML and MathML but think something like Markdown with cross-references, TeX-like equations, a good chaptering markup, and you're close.
Today I use XeTeX together with the swiss-knife memoir class and a huge preamble that I have built over the years. XeTeX is modern and lets you write your docs in UTF8 with ease. I have stopped writing a lot of commands by hand cause there are a lot of modern editors out there (TeXShop on the Mac, TeXworks/TeXnicCenter on Windows, Kile and a bunch of others in Linux.)
When you enter the TeX world you cannot go back cause you start to see typographical errors everywhere: wrong kerning, missing ligatures, wrong align in formulas, wrong page dimensions and others. As Don Knuth says: "I can't go to a restaurant and order food because I keep looking at the fonts on the menu."
The beauty of LaTeX (XeLaTeX in this case): http://nitens.org/taraborelli/latex
If you really want Tex quality without much work, one can just use Lyx, a gui application that uses Tex as the backend.
We need a simple, hot-key friendly outliner that persists to something very much like docbook. Then you'd transform to TeX when you need something printed, and to html if you want the same content on the web, and to some sort of braile engine if you want blind people to interact with it.
A major obstacle to better document production is the WYSIWYG is a bad but strong meme.
The fact that you can install a program called TeX on your computer is marginally irrelevant.
The question you want to ask is: after Knuth has solved to the best of his ability the general problem of computer typesetting, why hasn't anyone bridged his theory with the front-ends that everyone uses? My take is: the shiny tools that exist were good enough for most people to toy with.
I have written a few books using LaTex: in my experience way nicer than using a word processor.
I recently released a web editor for Markdown/LaTeX mix (http://notepag.es/introduction) using Showdown/Mathjax. Have found it very useful for quick technical docs (assignments at university primarily). Though it still needs some smoothing between markdown and tex.
Because, sometimes, someone gets something right and a lot of people build some exceptional infrastructure around it and then it lasts.
WYSIWYW >> WYSIWYG
modern alternatives?
nothing i can think of.
I hate trying to produce anything longer than a couple of pages in Word and get predictable results. But it is often the required document standard in academia those days.
Fortunately I discovered Scrivener, albeit not available on Linux. But I find it a great writing tool without having to code in TeX, which just isn't something i want to do anymore. :)
TBH, i've never used framemaker and their site makes me want to give it a try. TODO: give it a try.
I can respond here in sections:
I. My Background.
II. How to Use TeX.
III. What TeX is Good for.
IV. Warnings.
below:
I. My Background.
I was an early member of the TeX user's group (TUG) and have been a serious and happy TeX user for 15 years.
I use TeX itself just as Knuth wrote it and rarely have anything to do with LaTeX or any of the other extensions or preprocessors.
The TeX installation I use is ProTeX 1.2, which now is relatively old. From ProTeX 1.2, beyond TeX itself, I make heavy use of three more programs: (1) The screen preview program YAP (yet another previewer). (2) The program DVIPDFM.EXE for converting TeX output files with extension DVI (device independent file) to PDF. (3) The spell checker Aspell.
I type my input into my favorite, general-purpose, programmable editor KEdit. Nearly all my typing for anything goes into KEdit -- blog posts, e-mail, notes on cooking to car and house maintenance, programming in ASP.NET, Visual Basic .NET, C, PL/I, Fortran, Rexx, etc. And I use Aspell for essentially all my spell checking.
Point: My means of input to TeX is just this general purpose text editor. I do a lot of typing, use this editor heavily and have for 25 years, and, thus, have good facility with it. So, I minimize typing into anything else and am pleased that for TeX I can type just into this same text editor. In particular, for entering TeX I want nothing to do with any other tools for typing. I would consider converting to an editor better than KEdit, but I see no candidates.
I have a Ph.D. in applied math, and for me TeX is one of my most important professional tools. Why? A crucial reason is, for typing math TeX is well designed.
Since TeX has high quality in many respects, I also use it for nearly all my higher quality word processing -- letters, foils, technical documentation, business plans, etc.
II. How to Use TeX.
There is a book, Knuth's 'The TeXBook'. It is polished documentation, very carefully written to make first and easy things easy but still contains a lot of detail. Really you need a copy of the book and to read at least the easier parts cover to cover.
In its internal design as software, TeX makes heavy use of the idea of 'macros'. The main idea of the macros is just string substitution. The main use of the macros is just to replace some frequently used long patterns of typing with short patterns.
The macro language is powerful enough that TeX is really a programming language. Yes, the language supports arithmetic, string manipulations, if-then, loops, and reading and writing files.
The language also has an elegant 'architecture' of scope of names. So there is the nested and static scoping of what is typed in and also the nested and dynamic scoping as the macros execute. For this scoping, there is memory management with a push down stack with some enhancements.
So, a good TeX user will write some macros, and I have over 100 that I have used for years and write new ones occasionally. I have macros for tables of contents, automatic numbering of chapters, sections, tables, and figures, cross referencing, bibliographic entries, simple lists, ordered lists, and lists with bullet points, putting TeX annotation on figures, using some of the special math fonts from the AMS (American Mathematical Society), more in memory management, etc.
TeX has a concept 'verbatim' which means to produce output 'just as entered' and that might contain characters such as '$_%\' usually treated in special ways in TeX. I have several macros for verbatim, and some of these are good for listing source code and TeX macros.
To create a new document with TeX, I make use of the windows in Windows: So, I have one window with KEdit with the document I am creating, one window for the screen preview program YAP, and one window to run the TeX program itself. These three windows work well.
So, I type in my document, run TeX, and look at the output in YAP. The process works well.
If there is some tricky TeX usage in my document, then at the tricky part I repeatedly execute a fast loop of type, run TeX, and look at YAP.
TeX is so efficient that on a PC with a 1.8 GHz processor, usually TeX is done in less than two seconds, maybe less than the time it takes for me to get my finger off the Enter key.
I have enough experience with TeX that now I rarely have to look at my copy of 'The TeXBook'. E.g., my main collection of TeX macros are all in one directory and have documentation, and I have a KEdit macro that displays the directory of TeX macros so that I can easily check details. I have many examples of TeX usage, and for something tricky I've done before I just look at the old example.
Generally in my computer usage, I want to script things; TeX is easy to drive with scripts, and I do that.
Going back at least to Xerox PARC, there is a 'paradigm' of computer 'graphical user interface' (GUI) based heavily on buttons like on a kitchen appliance and a mouse for pushing the buttons. Microsoft's Word, Excel, and PowerPoint are based heavily on this paradigm. There are 'integrated development environments' (IDEs) for writing software that make heavy use of this paradigm. There are Web browsers, and now there is more with 'smart phones'.
GUIs have revolutionized computing: E.g., on the Internet GUI Web browsers are one of the main differences between the current Web which is changing the world and various 'bulletin board' systems that came before which changed little.
But GUIs have some problems; TeX is not based on GUIs, and I don't want it to be.
There is an old description: "With 'what you see is what you get' (WYSIWYG), what you see is all you've got.". To see the importance of the difference, with TeX your input is explicit, in text, in a file, and, if you wish, with some documentation of any tricky parts. E.g., my simplest verbatim macro has 54 lines of documentation and 7 lines of TeX code. So, with the 'explicitness', you know what you did, can copy it, use it again, document it, modify it, etc., and all such things are more difficult to worse with GUI WYSIWYG approaches.
III. What TeX is Good for.
No single piece of software is everything, and neither is TeX.
It is possible to look at TeX and wish for more.
So, just what is TeX and what is it good for?
The history is clear: For Knuth's series of books, 'The Art of Computer Programming', the publisher Addison-Wesley told Knuth that for his next edition they were going to use an approach to typesetting that would reduce the 'typesetting quality' of the results. So, Knuth wrote TeX so that he could do the 'typesetting' for his books himself and deliver to the publisher 'camera-ready' copy or perhaps just some files.
So, Knuth wrote TeX to let him write his books.
Knuth presented his work to the American Mathematical Society that quickly took TeX seriously. Why? For typing math, TeX is terrific, was much better than anything else, and mostly still is. Otherwise, the typesetting quality is about as high as typesetting gets.
So, TeX is also good for developing camera ready versions of papers in mathematics.
Quickly TeX became the international standard for word processing of more mathematical material in all of the more mathematical fields in science and engineering.
Since then, TeX has been used for the word processing for many books in mathematical fields.
TeX is good for such word processing: TeX was designed for such work and is heavily used for it.
Note: With TeX, Knuth was essentially looking backwards in time, not forward. So, he was writing software to automate, with high quality, what was old and solid but slow and expensive in manual typesetting for mathematics and to be printed on paper. So, he was not trying to do all of word processing, graphical design, interactive user interface, and software development for the future of information, computing, the Web, and civilization.
Notice the typesetting and 'graphical design' in Knuth's 'The Art of Computing' and 'The TeXBook' and in papers with a lot of mathematics:
(1) There isn't a lot of color; mostly it's just black and white.
(2) There fonts are not 'stylish' like can find in printed advertising.
(3) There are only a few tables and figures, and the figures are mostly simple line drawings, X-Y graphs, or photographs.
(4) The output is to be on paper and not 'interactive' or continually updated. That output can also be converted to PDF and still not be interactive.
(5) Typically the writing is by no more than a few authors so that the techniques for coordinating the work of many people on one large software development project are not relevant.
Net, the emphasis is on the technical content and not the typography, graphical design, GUIs, or large work groups.
So, now we know what TeX is good for.
IV. Warnings.
For the math, be well advised to stay with just Knuth's math fonts standard in TeX and the AMS fonts and symbols. Once you are staying with these math fonts, for the text just stay with Knuth's Computer Modern fonts that are standard in TeX and work well with the math fonts.
For developing your own high quality math fonts for TeX, that'd be a LOT of work. For using fonts for text other than Knuth's standard Computer Modern, it would be a lot of work to get them to work well with Knuth's math fonts.
If you are not doing math, then you can work to use fonts Helvetica, Bookman, Century School Book, etc. for your text, but then there will be some question just why you are using TeX.
If you are developing a Web page, then use HTML and whatever, maybe ASP.NET, that helps writing HTML. TeX and HTML have very different purposes.
If, compared with TeX, you want a lot more or something very different, then you will likely run into problems from limitations from the original intentions of TeX.
If you want something as good as TeX where TeX is good plus a lot more, then don't hold your breath while waiting for it.
If you want to write a better TeX yourself, then start with Knuth's voluminous, exemplary, polished, very finely detailed documentation in volumes A-E of 'Computers and Typesetting'. After reading that material, you may decide that you have better things to do than writing a better TeX.
Don't think that TeX and HTML compete: They are designed for very different purposes.
http://en.wikipedia.org/wiki/Stanford_Physics_Information_Re...
I guess what I'm trying to say is that their histories are interwoven, and despite being different technologies, they shared a common goal and worked together. It's possible philosophy of what a web browser is probably led to their divergence more than anything.
I'd say that the main difference is that TeX was looking backwards and HTML, forwards. Again, TeX was trying to computerize old, stable, slow, expensive, high quality manual typesetting for math, and HTML, at least now, is on the way to being the main way people view nearly all information and interact with computers. The emphasis on the 'typographic quality' of the results is very different: TeX goes for the highest quality, and HTML is to be quick and dirty.
Yes, both had smaller beginnings: For TeX, Knuth wanted to write his books. For HTML, Berners-Lee wanted a physics newsletter.
At this point there is a huge difference: TeX is solidly frozen, and HTML continues with changes as fast as Jeff Jaffe and the rest of computing can implement,
In the future, sure, HTML could replace TeX. For the very high quality paragraph setting, there's no fundamental reason HTML could not specify and implement that. For the math, similarly. There does need to be an 'executing language' (TeX is a programming language, maybe Turing machine equivalent, and not just static text), but JavaScript might suffice.
A big advantage would be that HTML now knows about all the characters in all the languages.
But such high interest in math is likely in conflict with reality!