Having used LaTeX a lot, and having programmed a XSLT based publishing tool before discovering TeXmacs, I think I can help.
If you abstract all the prejudice and bigotry, the XML vs LaTeX debate just boils down to a few things:
XML can be validated. That means that you can automatically process a XML document to be sure it contains only a specified set of structuring elements (they call them tags in XML, you call them commands and environments in LaTeX).
The XML document structure is much more easy (generally) to parse and process automatically than the LaTeX document structure.
For SGML/XML folks, the main problem with LaTeX is that it allows the users to throw in just about anything in the document structure (including arcane and unparsable TeX wizardry). On the other hand, using a XML document format with a DTD restrains the user to a specific markup language, which is generally designed to allow only strutural markup. The point is in preventing people from doing the wrong thing in big documentation projects.
By the way, a DTD only define the markup language (the tags, and how they can be nested). In XML, the presentation is defined by a stylesheet, which can be CSS (only add some presentation info), XSL (can perform complex tranformations on the document structure), or something else.
What the XML folks here did not understand (no surprise, since they have not tried TeXmacs before flaming it) is that the user interface is so customizable that you can easily restrain the users to a specified markup language simply by not allowing them to input anything else.
Actually, you can (still) not prevent the user from putting legal structuring elements in illegal struture (invalid nesting) through copy-pasting, but:
you can design the stylesheet to make illegal structures visually obvious, and
since the TeXmacs document format is essentially (not exactly) Scheme (XML externalization will come soon), any real programmer can write a Scheme program to perform validation. Or if you know Perl, the document format is much more easily parsable than XML, so you could write validator in one week-end.
You do not want page breaks? TeXmacs has "papyrus" paper type... Do not want to see the page width? Use "automatic" paper type.
When you need something WYSIWYM, define a stylesheet for editing (that can make markup explicit, for example), which is different than the stylesheet for printing. Still, you can use full WYSIWYG when hunting typos or fine-tuning page breaking. In this kind of work, that is WYSIWYM that gets in the way.
WYSIWYM is a excuse, since you do not have the choice. With TeXmacs you can choose exactly how much you want to see.
In general, you do not need negative spaces if the typesetter does its job right and you know how to use it.
If you really want to use negative spaces, that is most likely for designing a logo (like C++). For normal uses (when negative space do not exceeds the preceding character) that is so simple that it is very hard to explain. Simply go try it.
Framemaker is not really WYSIWYG since it uses one view for the structured data and a different view for the typeset data. At least it worked that way last time I saw someone using it, two years ago. You can do that kind of thing using two views with different stylesheets in TeXmacs, but you are not forced to.
I would be very surprised to learn that FrameMaker provides the typesetting quality of TeXmacs (which, I recall, is better than TeX).
Once TeXmacs supports document transformations (give us 6 monthes), it will kick the ass off FrameMaker.
FrameMaker is an expensive piece of software (799$) coming from a Adode (remember Skyarlov?), while TeXmacs is GNU software coming with freedom.
LyX is a front end to LaTeX, TeXmacs implements its own typesetting algorithms, by reusing the best algorithms in TeX, and improving where TeX was not good enough.
For example TeXmacs has a global page breaking algorithm, and properly stacks lines with boxes which are taller than the base line height (while TeX puts too much interline space and require manual tweaking). And there is more.
LyX take a "What You See Is What You Mean" approach as an excuse for being unable to be truly WYSIWYG. They then go at great lengths to try to convince people that it is the RIGHT approach. On the other hand, TeXmacs is absolutely WYSIWYG, since the editor screen is drawn by the typesetting system using PostScript compatible primitives.
Also, TeXmacs is flabbergastingly extensible and customizable. All the user interface and keyboard bindings can be customized (on the fly or in the startup file) in Scheme, and you can very easily (much more easily than with LaTeX) define new styles (new packages in LaTeX parlance).
I could also mention that TeXmacs is already used as a user interface for several CAS, that developpers are working on a XSL compatible transformation system, on a Literate Programming system, on a collaborative (Wiki-like) web publishing tool, or I could speak of the high quality and modularity of the implementation, but I think that all this stuff is not really relevant to the casual user...
I am no LyX user. Actually, I tried it once but I found it so ugly that I came right back to AUC-TeX.
TeXmacs on the other hand is a constant aesthetic pleasure. I know that structured documents are not about good looking screens, but I really think that a beautiful tool is WAY more pleasurable to use than a ugly one.
However, I cannot see why you think that TeXmacs is only a tool for maths. if you look at the screenshots on the LyX site, what will you see? Math formulas.
Just have a look at these documents if you want to see how TeXmacs can be be used to typeset source code documentation.
Having used LaTeX a lot, and having programmed a XSLT based publishing tool before discovering TeXmacs, I think I can help.
If you abstract all the prejudice and bigotry, the XML vs LaTeX debate just boils down to a few things:
For SGML/XML folks, the main problem with LaTeX is that it allows the users to throw in just about anything in the document structure (including arcane and unparsable TeX wizardry). On the other hand, using a XML document format with a DTD restrains the user to a specific markup language, which is generally designed to allow only strutural markup. The point is in preventing people from doing the wrong thing in big documentation projects.
By the way, a DTD only define the markup language (the tags, and how they can be nested). In XML, the presentation is defined by a stylesheet, which can be CSS (only add some presentation info), XSL (can perform complex tranformations on the document structure), or something else.
What the XML folks here did not understand (no surprise, since they have not tried TeXmacs before flaming it) is that the user interface is so customizable that you can easily restrain the users to a specified markup language simply by not allowing them to input anything else.
Actually, you can (still) not prevent the user from putting legal structuring elements in illegal struture (invalid nesting) through copy-pasting, but:
- you can design the stylesheet to make illegal structures visually obvious, and
- since the TeXmacs document format is essentially (not exactly) Scheme (XML externalization will come soon), any real programmer can write a Scheme program to perform validation. Or if you know Perl, the document format is much more easily parsable than XML, so you could write validator in one week-end.
By the way, we would welcome such a contribution.So, what?
You do not want page breaks? TeXmacs has "papyrus" paper type... Do not want to see the page width? Use "automatic" paper type.
When you need something WYSIWYM, define a stylesheet for editing (that can make markup explicit, for example), which is different than the stylesheet for printing. Still, you can use full WYSIWYG when hunting typos or fine-tuning page breaking. In this kind of work, that is WYSIWYM that gets in the way.
WYSIWYM is a excuse, since you do not have the choice. With TeXmacs you can choose exactly how much you want to see.
Why use LyX since there is TeXmacs?
Yes Framemaker is great, but:
LyX is a front end to LaTeX, TeXmacs implements its own typesetting algorithms, by reusing the best algorithms in TeX, and improving where TeX was not good enough.
For example TeXmacs has a global page breaking algorithm, and properly stacks lines with boxes which are taller than the base line height (while TeX puts too much interline space and require manual tweaking). And there is more.
LyX take a "What You See Is What You Mean" approach as an excuse for being unable to be truly WYSIWYG. They then go at great lengths to try to convince people that it is the RIGHT approach. On the other hand, TeXmacs is absolutely WYSIWYG, since the editor screen is drawn by the typesetting system using PostScript compatible primitives.
Also, TeXmacs is flabbergastingly extensible and customizable. All the user interface and keyboard bindings can be customized (on the fly or in the startup file) in Scheme, and you can very easily (much more easily than with LaTeX) define new styles (new packages in LaTeX parlance).
I could also mention that TeXmacs is already used as a user interface for several CAS, that developpers are working on a XSL compatible transformation system, on a Literate Programming system, on a collaborative (Wiki-like) web publishing tool, or I could speak of the high quality and modularity of the implementation, but I think that all this stuff is not really relevant to the casual user...
I am no LyX user. Actually, I tried it once but I found it so ugly that I came right back to AUC-TeX.
TeXmacs on the other hand is a constant aesthetic pleasure. I know that structured documents are not about good looking screens, but I really think that a beautiful tool is WAY more pleasurable to use than a ugly one.
However, I cannot see why you think that TeXmacs is only a tool for maths. if you look at the screenshots on the LyX site, what will you see? Math formulas.
Just have a look at these documents if you want to see how TeXmacs can be be used to typeset source code documentation.