Is Latex Still Worth Learning?
Bocaj asks: "I have start back to college and have to write a few technical papers. Right now it's mostly physics, but I'm a CS major and there will be many more papers to come. I've tried all of the office suites with little luck in getting them to format complex formulas correctly. I'm trying to learn Latex, but I am wondering if I should. Is Latex still the defacto standard for this kind of stuff? What about SGML or XML? What is everyone else using?"
Physics still uses LaTeX quite a bit; for astronomy, it's the standard. Once you get used to it, you will find that it's much easier to use, and especially for formatting data -- you can reformat a LaTeX data table with sed&awk in seconds.
If you look around, many of the journals accept the LaTeX source -- I know that ApJ does, and I believe APS does. But you'll also notice that submissions to the NSF can be done in DVI format, as well. Many people still use it, and many still require it.
But, hey, if you don't like it, use something else and then convert it to LaTeX later. But I guarantee that if you start using it, you'll love it. I can't stand WYSIWIG word processors anymore, mainly because I can't be guaranteed of reproducible results.
At work, we use latex all the time for its ability to typeset the mathematical formulas, as well as its ability to keep track of the references for us. An added bonus is the ability to set up your own formatting commands, and have it make an index for you.
I also personally use it at home, for the ability to define commands and environments, and the ease of rearranging content. (I keep everything in relatively small files, and include those to build up the document I want. Very convenient to rearrange by just changing where the include command is.)
One thing I have to say makes it a lot more worth it at home (I use OS X there) is the application TeXShop, which makes typesetting and viewing the output much easier. I'd recommend using this (or an equivelant program on other platforms) to make the paper creation process go much easier.
It is because of expectations like this that I require graduate and undergraduate students write up assignments in LaTeX for my scientific computing course.
Curmudgeon Gamer: Not happy
LaTeX actually has quite a low learning curve, for the usual applications. I've gotten by for ten years with nothing but the first Lamport book and the occasional google search.
You will definitely find yourself typing much less boilerplate than with an SGML descendant. I don't know of other plain-text formats, which to my mind is crucial.
Also, the huge number of tools for working with LaTeX, DVI, and PostScript files means there's virtually always a solution to your current problem.
TeX and LaTeX do have some disadvantages for the serious typesetting hobbyist, but for writing academic papers, I firmly believe that there is absolutely no substitute.
If you want the power of Latex but don't want to have the hassle of learning to write raw Latex, then you could always go for a GUI wrapper around it. Lyx is probably the best for Latex (and I would hate to go and use anything else for generating large cross-referenced documents), but if you are also interested in generating TeX then TeXmacs may well fill the bill.
The only Good System is a Sound System
/joeyo
2^5
/joeyo
2^5
I almost marked this down as trolling flamebiat, but then got bored and figured, okay, I'll bite.
This is pure uninformed drivel. TeX is an extraordinarily powerful typesetting language. Not "page processing," but complete typesetting. Think books, not webpages.
Okay, now that is a good troll. I needed the laugh, thanks!
By taking the same content, and changing the package name ("style sheet" for those whose world ends at the edge of the web browser), I get a journal article instead of a book. Or a set of overhead slides instead of a book. Or <whatever> instead of a book.
And they all still suck when compared to LaTeX.
I don't know what flavor crack you have to smoke to say that it's "reaching end of life." I haven't yet found a document-related problem that TeX/LaTeX can't solve, but I've found plenty that make HTML and whatnot just curl up in a whimpering ball. And every time I print a document using LaTeX, my colleagues look at it and say, "DAMN, now I understand why you think Word bites... this is {gorgeous,simple,amazing,powerful}..."
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
While I still grapple with language idiosyncracies of LaTeX from time to time, the reason I keep coming back is that it produces the best quality output for mathematics-laden documents.
WYSIWYG systems I've hated, especially when it comes time to learn yet another gui-based equation editor with yet another set of key mappings that is not like the default emacs set I have hardwired into my brain from writing code. After you learn a few of the basics in LaTeX, like $$ \int_0^\infty \alpha_i(x) dx = 5 $$ will produce a definite integral from 0 to infinity of greek alpha with an "i" subscript there's no going back.
Besides being free (speech & beer), I have LaTeX source files from 17 years ago that still produces nice looking documents on todays computers even after changing hardware, OSes, etc. There were popular word processing systems available back then were such files would be next to worthless.
That kind of timelessness in the age of planned product upgrades and binary proprietary formats impresses me.
If you want to do version control or searching of document, then having its native format in ASCII text permits the use of CVS and grep and doesn't obligate you to buy some product to see your document.
For the future, I'd like to see something like DocBook takeoff, but it's just not there yet, AFAICT.
When someone gets a MathML parser to render as nicely as DEK's code, then I'll consider moving from LaTeX.
"Provided by the management for your protection."
As for previous comments saying that LaTeX is not extensible and that the formatting and content are not separate, that is bunk. You can write your own macros, people have written image drawing programs (for diagram generation) in LaTeX, and anything else imaginable. The formatting is done for you 99%. You just specify where paragraphs, sections, whatever start, and LaTeX takes care of the rest.
The only capacity in which SGML or XML (including MathML) is used to publish scientific content (i.e., containing lots of equations and document structions such as sections, theorems, proofs, etc.) is to first write the LaTeX, then to use latex2html (or a similar program). Seriously, it is totally impractical to write MathML yourself. take a look at some sample code if you want. It is designed to be output by a computer program such as LaTeX.
The learning curve on LaTeX is pretty low. Just google around for stuff, and it will be easy to find what you are looking for (usually). Start with the following references (there is *no* need to ever buy a book on LaTeX):
- Text Processing using LaTeX
- Help on LaTeX
- The Comprehensive LaTeX Symbol List
but google is your best bet. I usually just type "latexOn Linux, I would agree with you. But on other platforms, Framemaker is a serious package that scales much better than Word.
No, I don't trust in god. He'll have to pay up front, like everybody else.
I work as a org which publishes quite a bit of things and we use latex as a back-end typesteer and PDF creation system from all kinds of input.
:)
For instance, our invoicing system produces a large latex file from a database and then uses Tex to crreate the invoices. I also did a long report by using an XSL stylesheet (wchi I could send you) to convert some XML stuff into Latex. This rocks. The first thing my boss said when she pages through the document was "This look eally professional" Latex output really just looks more pleasing to the eye than Word or some other typesetting things.
I also used this XML markup typesetting thing to mark up my GF's PhD thesis and the result was actually quite awesome. There some tweaking to be done but not more than normal. And none of the Microsoft-Worde-screws-you-with-image-placement shit that all her friends had to cope with. (This these was in Immunology so had loads of Microscope slides). In the end we did all the microscope stuff on glossy paper and rest on normal paper anyways so the image palcement, which IS sometimes a pain, did not matter too much. Btw, what the hell is it with Word that places an image so that only the little left part of the corner is actually visible on a page. Why on earth is this the normal, default behaviour??!!
That said, recently I have moved our system to XSL, in particular, FOP. There are two reasons for this
First, Latex sucks with some international characters. We have a system where people can apply for membership on the web and they use all kinds of weirdo character which sort of necessitates unicode. Every once in a while my invoice thingie croaks because some member from some country in Norhern Europe has a funny accent or something on his name and the end stages dies.
Secondly, the, the difference in meta-characters is a pain to use, if someone uses a / in his company name I have to worry. and so forth. This is easier to handle in XML/HTML. The whole business of metacaharacters and the impedance mismatch this causes between stages of a publishing pipeline can be a serious headache. Our system produces text by exporting XML and using the XML to produce Tex. The meaning of a or a \ in an input string can get prety damn confusing.
The third reason is more compelling. Our secretarial staff sometimes needs to update the templates from which we generate EMails. It is mucho easier to do this with a simple subset of HTML (which is what we use) because all of them know the syntax sort of and the other technical guy can help them much easier. I wrote a Java program to process this into XSL:FO and pump it all through FOP while looking up the embedded fields in Lotus Notes. THis works just beautiful, nor problems so far, and quite frankly, the amount of code to manipulate XML in JAva or any other language is muuuuuch more than that to manipulate Tex. A lot of the common metacharacter issues are automatically taken care of, for instance.
Lastly, if you are doing complicated things such as this, Latex's philosophy of "leave the page formatting to me" jsut does not cut it. You can get it right, but it is extremely sensitive to small changes that breaks everything. XSL:FO handles this much better.
I might also add that FOP uses the latex typesetting algorithm. Other XSL:FO rendering tools, RenderX in particular, does not and the output from FOP simply looks better. The output from RenderX looks awful.
I hope that helps. Yes, it is being used in a business setting to produce all kinds of things from papers to invoices with tables and letterheads and whatnot. I might also add that we use these tools because we a a very cost-conscious nonprofit and use Linux for all our servers where a script that happesn to be a Lotus script program outputs fields into a xML file that is used by a PYthon program to convert the output to Tex and then uses Tex to format simply works
There is also a XML syntax frontend for Latex AFAIK. If you are really interested I can only reco
The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
Admittedly, bibtex (Latex's bibliography subsystem) is a bitch at first, but there is an extra package called jurabib, originally designed for supporting the awkward quoting/bib style of German law texts, but later expanded to handle about any style on the planet, as far as I can see.
Latex is old and weird, and it has its quirks, but it works best for me.
What makes LaTeX so powerful is, IMHO, not just its ease of use but also its delivery format. You _could_ export to HTML if you so wanted, or you could typeset it as PDF, PS, DVI, or distribute the file as plain LaTeX. The PDF option is my personal favourite, and it's important, too, because it doesn't depend on what fonts the user has installed, works cross- platform, and looks good.
That's enough to make me a happy LaTeX user. Also, if you might enter academia, many academic journals require submissions in LaTeX/TeX format.
LaTeX is also very easy to learn with a simple LaTeX book. Get some LaTeX reference book, virtually any such book, and start typing away-- you'll pick it up in a couple of hours.
My wife got a M.S. from Virginia Tech in Math and was required to submit her master's paper in LaTeX. She used lyx for some of the writing but did the rest by hand. So, I know some schools (at least in 2001) required you to learn it.
Personally, I would use Koffice if I needed to create LaTeX papers. The creator of Klyx (a KDE version of lyx) was one of the core developers on the KWord team, and Klyx was abandoned to support work on Kword. If you know a thing or two about LaTeX you start to notice that KWord feels very "LaTeX like." You can still save documents as LaTeX.
My 2 cents.
I Do C++
I had the chance to be associated with a CS research group as a freshman. Everyone there used LaTeX so I just kind of picked it up with help from those guys. Sure it took me A LOT longer to write those first few papers, but now it is my preferred way to do things. Four years later I can say that learning LaTeX was one of the best things that I have ever done. Sure it is great for math, but I use it for almost anything. Why you ask? Well, using div2ps I can generate postscript...using pdflatex I can generate pdf...and using latex2html I can generate html. It is very handy to have one base format that nicely generates ps, pdf, and html. And it automates easily with a Makefile.
That said LaTeX isn't without its faults. The good does outweigh the bad though. It is great to have automagic numbering of your figures, sections, citations, equations, etc. Doing things like that with other office suites is possible, but generally doesn't work well. In fact, I know one professor who uses MS Word exclusively for everything but writing papers because LaTeX is just so much easier when it comes to labelling and referencing figures, equations, citations, etc. There is nothing that can touch the ease of use provided by LaTeX in that arena. When you have to submit papers in a required style it is very easy to apply a style file instead of worrying about violating the style requirements using another office suite. Need an index or table of contents? Very easy in LaTeX. That is considered an advanced user's problem in other office suites. The one problem that I had with LaTeX at the start was that it doesn't place my figures exactly where I would like them. This is true. I have since learned to not care so much. The figures appear close enough to where I want them. Others may complain about white space. I see that as a moot point. There are many ways to control your white space and make things look just right. You just have to invest the time to learn the commands. I did my resume in LaTeX. White space is super important so that it looks good and allows me to cram as many things on it as possible. No problem in LaTeX. It would have been a nightmare in MS Word (that may be b/c I don't use MS Word, but I still think it would have been a nightmare for someone who knows Word).
The learning curve can be quite steep though. I would recommend... A Guide to LATEX: Document Preparation for Beginners and Advanced Users (3rd Edition) by Helmut Kopka, Patrick W. Daly (ISBN: 0201398257). This probably isn't a great book for beginners, but it is decent for beginners and is the reference book that I still use (I would probably only consider myself an intermediate user if that helps you gauge the level of the book). Between google, CTAN, and this book I haven't had much trouble at all making LaTeX do what I needed it to do.
There are a lot of really crappy things about LaTeX, but it is definitely the standard. All the journals and conferences I've submitted to assume you are preparing your document in LaTeX, and give you style files to set everything up correctly. citeseer , as far as I know, can only automatically get information from LaTeX-generated PS and PDF files.
- There's a special version of TeX called Omega which does 16-bit Unicode. It can even do Sanskrit. Some critics say it doesn't cut the cake, however.
- There's also Unicode support for LaTeX.
UlrikDatabase engine for analyzed or annotated text
I'll take it you've never used CVS, and are not just Trolling.
CVS is largely line/text oriented. There are capabilities in it to handle binary, but they're incompatible with most front-end tools (wincvs, cvsweb, jcvs are ones I've used) and they are by default turned to an 'off' position. This means that typically CVS just notes the change and keeps a copy of each revision. You can move back to an old version, but you can't diff two versions intelligibly.
I believe I've read somewhere that Subversion (the currently 0.5 project which is designed to replace and improve on CVS) is geared toward some improvements on binary-handling, among the other things that are needed (directory moves). But for now, sticking doc files into CVS accomplishes nothing more than archiving old versions with a hefty size/storage penalty once docs get to be several megs in size.
To be honest, a binary version control system is troublesome, since diff and merge and other features become problematic or impossible. That's an advantage that text formatting tools like LaTeX or tagged-text (html, xml) have over binary (or undocumented proprietary) file formats.
For those that really need doc versioning tools, there's SourceSafe. Microsoft knows the file formats, so Microsoft can do version control intelligibly. God help all that take off down that path, though. Proprietary version control plus proprietary file formats... (shudders) brings to mind the line from Monty Python: "Water tarts distributin' swords is no basis for a system of government".