top | item 1571516

What is LaTeX and Why You Should Care

135 points| s-phi-nl | 15 years ago |defmacro.org | reply

77 comments

order
[+] uggedal|15 years ago|reply
I procrastinated quite a bit when writing my master thesis by trying to make it as beautiful as possible. Take a look to see what's possible with LaTeX: http://www.duo.uio.no/sok/work.html?WORKID=81971&lang=en. The source is available here: http://bitbucket.org/uggedal/thesis
[+] asolove|15 years ago|reply
Would like to convey some belated but serious gratitude for this. When I was working on some heavy-duty LaTeX academic publishing a year or so ago, this was one of the few available resources for full source code of a serious, professional-looking, non-math document. I find it incredibly helpful and inspiring.

As a side note, I am always amazed at the playful-but-ugly aesthetics that are common in the TeX community. While talking about having a professional-level typesetting engine, TeX-related publications are frequently painfully ugly. It somewhat undermines the cause.

[+] tincholio|15 years ago|reply
Very nice layout. Not very "academic looking", but really nice to look at :)
[+] Tycho|15 years ago|reply
like the side notes. they make reading footnotes seem stressful by comparison.
[+] auxbuss|15 years ago|reply
The source link 500s. I'd like to see it.
[+] sophacles|15 years ago|reply
How appropriate, I just finished a paper today and submitted it for review. LaTeX is awesome and sucky at the same time. On the awesome side, you have structure separate from formatting. This comes with lots of benefits as mentioned in the article. It also allows you to use the concept of imports (or includes if you will), so you can have a well factored paper. It also allows you to do sane things like footnote, cite and reference diagrams and sources without a need for explicit number tracking -- just give everything a unique identifier that works for you. Finally if you do well enough with your structuring you can output not just different file formats like pdf or ps or whatnot, you can also output completely different styles. It is pretty simple to wrap your core with the trappings of IEEE style for one version and a book-like style for another.

On the sucky side, the toolchain is notoriously difficult and cryptic. For some reason you have to make multiple passes of various tools by hand (or with a makefile -- i reccommend http://code.google.com/p/latex-makefile/ it just works). The syntax can be a bit inconsistent. The worst is the errors tho, sometimes it is impossible to figure out why all your figures are showing up at the end of the document instead of in-place, or why all your references are failing to point at anything.

Overall tho, it is a fantastic system :)

[+] drunkpotato|15 years ago|reply
I've started using org-mode to write my papers, then convert to LaTeX. Not perfect, but I find it's more natural to write in org-mode and helps me focus on the content instead of drifting off onto the internet to research macros. (Now I can drift off to read HN instead, a vast improvement in non-productivity.)

I've started thinking of TeX as the assembly language of document formatting, LaTeX as C, and org-mode as... pick your favorite higher-level language here, I'll go with Python.

Not a perfect metaphor, but in terms of paper productivity it feels that way.

[+] petrilli|15 years ago|reply
You probably know, but the reason there are multiple passes is because once a page is typeset, you can't go back and "fix" it. TeX is very page-centric. So references, for example, aren't "knowable" until you've typeset all the pages. Then the next pass goes through and updates the forward references.

It could be done another way, but in the era that TeX was developed, it would have required more memory than was realistically available most of the time. I find that once I've run it twice, I can get away with single runs usually after that until I'm ready for the "definitive" version. Until then, I'm less concerned with whether the cross-reference is right, than whether there is a cross-reference in that location at all.

[+] rbonvall|15 years ago|reply
After using (and writting) several ugly Makefiles for compiling LaTeX, I discovered rubber (http://www.pps.jussieu.fr/~beffara/soft/rubber/) and never looked back. It is packaged at least in the standard Ubuntu and Fedora repos.

I use the following Makefile wrapper around it:

    DOC = memoria

    all:
            rubber --pdf $(DOC)
    clean:
            rubber --pdf --clean $(DOC)

    .PHONY: all clean
It handles biblography, knows how many times recompile and discovers dependencies.
[+] scott_s|15 years ago|reply
I took a look at the Makefile, and I'm not entirely comfortable using it while not knowing exactly what it's doing. I normally don't require to know and have control over everything, but with Latex, the less unknowns I have, the better I feel.

This is what I've been using, inherited from a colleague/committee member/friend:

  PAPER = paper_name
  SECTIONS = $(PAPER) abstract introduction design results conclusions

  default: $(PAPER).pdf

  $(PAPER).bbl: $(PAPER).bib
          pdflatex $(PAPER).tex
          bibtex $(PAPER)

  $(PAPER).pdf: $(PAPER).bbl $(foreach SECTION,$(SECTIONS),$(SECTION).tex)
          pdflatex $(PAPER).tex
          pdflatex $(PAPER).tex
          pdflatex $(PAPER).tex

  clean:
          -rm -f *~
          -rm -f $(PAPER).aux $(PAPER).log $(PAPER).out $(PAPER).bbl $(PAPER).blg
          -rm -f $(PAPER).idx $(PAPER).ilg $(PAPER).ind $(PAPER).dvi $(PAPER).toc
          -rm -f $(PAPER).pdf
[+] joegaudet|15 years ago|reply
For a remedy to the "sucky side" if you have a mac + TextMate, it all _just works_. You do everything you would normally do, and then hit cmd + R which will run the typesetter.

My buddy during my undergrad used LaTeX, at the time the thought of debugging my documents seemed insane (though he could do some amazing ninja stuff like rebuilding his graphs in matlab and importing them on build). Since starting my masters, I've taken it up, and yes it is awesome.

[+] tome|15 years ago|reply
You can do "imports", and you can also factor anything that's repeated into macros. The problem is that the lack of namespaces and weird scoping rules are so antiquated that it's painful to use when I know many programming languages that do the job far better.

On the other hand, it does support currying of macros!

[+] jessriedel|15 years ago|reply
It always blows my mind that someone (a philanthropist or the government) hasn't just thrown down a few million bucks to make a truly user friendly version of LaTeX. The amount of grad student and professor time wasted dealing with the flaws in LaTeX is mind-boggling.

Or am I naive in this cost estimate? Does anyone know roughly how much money and developer time went into the currently best editors, like TeXShop and TeXnicCenter?

[+] jff|15 years ago|reply
Speaking as a grad student who has been reading a lot of papers/theses lately, we can tell if you used LaTeX or Word, and if you used Word we mock you for your ugly fonts and amateurish layout.
[+] smackfu|15 years ago|reply
Grad students mocking people? Now that's something new.
[+] nimrody|15 years ago|reply
Most research papers typeset using LaTeX use ugly fonts as well -- the computer modern fonts. In fact, when it comes to presenting equations, even major publications use these ugly CM fonts. They usually use Times Roman for the text itself. The mismatch is horrible.

There is a reason why there are people specializing in book design. And LaTeX specifically encourages ignoring presentation.

[But overall, I agree. Word documents tend to look even worse, unless formatted carefully]

[+] dpritchett|15 years ago|reply
I only wrote one thesis and I did it in Word. Most of my publishing since then has been in WordPress.

Is learning LaTeX anywhere near as useful to a professional developer as say learning vim or emacs?

[+] serichsen|15 years ago|reply
Sadly, some publishers actually expect Word documents. The same publishers then have all kinds of problems where they need considerable help from the authors to get the layout right.
[+] blahedo|15 years ago|reply
Including, embarassingly, the magazine of SIGCSE (the ACM SIG for CS education). I was going to submit something a year or two ago, couldn't find the LaTeX stylesheet, and sent an email to the editor---who breezily responded that Word was required, and that their authors didn't really complain about this. Self-fulfilling: I decided it was more trouble than it was worth and published it elsewhere, so although I have complained, I'm not one of their authors!

It does explain why the typesetting is so bad, though. Figures are especially atrocious, and there are pixellation issues and routine font problems throughout.

[+] cstross|15 years ago|reply
For a gentle start, it's worth looking at LyX -- http://www.lyx.org/ -- a structured document processor that generates LaTeX output. Available for *IX/Mac/Windows, with more features than you can shake a stick at -- and it's open source, so you can try it for free.
[+] scott_s|15 years ago|reply
This is a good place to put the best explanation I've yet found for how Latex's figure placement algorithm works: http://people.cs.uu.nl/piet/floats/node1.html
[+] Splines|15 years ago|reply
FWIW, Word's text layout engine is as sophisticated as LaTeX. IMO, there's just a large layer of other "stuff" that ends up on top of it that usually results in your typical looking Word document.

It's better in Word 2007/2010, but still doesn't seem to be all the way there.

[+] nuclear_eclipse|15 years ago|reply
> Once I create a LaTeX document I can easily convert it to any format I am interested in, including XHTML and Microsoft Word Document.

Am I the only one who finds it impossible to convert a LaTeX document into a Word document without it looking like total crap? What am I missing? I build my resume with LaTeX, and have tried multiple times to get a proper Word document for all those idiots that don't like PDFs, and every time it looks like such crap that I break down and send them a plain text version instead...

[+] skymt|15 years ago|reply
Depending on your definition of "total crap", you might find LaTeX2rtf gives you acceptable output with minimal manual tweaking. It works for me, though I'm far from a type snob.
[+] elasticdog|15 years ago|reply
On a Mac, the MacTex suite simplifies things pretty well [1]. I typically write my documents in Vim, and then render them to PDFs with TeXShop. It installs all of the standard TeXLive stuff, so if command-line LaTeX is where you're comfortable, that works too.

[1] http://www.tug.org/mactex/2009/

[+] helmut_hed|15 years ago|reply
Technology changes all the time but there are a few arguments that never seem to die... WYSIWIG vs. doc prep languages like TeX (or Scribe, remember that?) was a hot topic even back in the 80's, with similar arguments being made. Everything old is new again.

It's amazing to see people getting enthused (again!) about LaTeX.

[+] rhettinger|15 years ago|reply
This article had remarkably little content or analysis. Essentially the only point made was that LaTeX markup can separate content from presentation.
[+] eegilbert|15 years ago|reply
Did he just make fun of a PNAS paper?