What is LaTeX and Why You Should Care
defmacro.org
defmacro.org
http://www.duo.uio.no/sok/work.html?WORKID=81971&fid=407...
Update: ... and now it works, finally :-)
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.
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 :)
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.
Another gcc analogy is a dependence on a third-party library whose API keeps changing. Then you'd have to run gcc once to regenerate the library, and once on the client using the library.
Peeling that back a level, the analogy is between files like libfoo.a and foo_defs.h (for gcc) and files like section1.aux and document.bbl (for latex).
On the other hand, it does support currying of macros!
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.
http://orgmode.org/manual/LaTeX_002fPDF-export-commands.html
> Not perfect, but I find it's more natural to write in org-mode
Do you have any specifics on the problems you faced? I produced my master thesis entirely using orgmode without any problem. (defined custom latex class, with different kind of ToC etc, not that difficult)Org-mode is great for structural editing and tables, and simplifies some aspects of LaTeX (images, for sure). I still find myself "dropping down" into LaTeX. I don't think it's an inherent weakness in org-mode, it's just that now I keep track of org-mode and LaTeX commands.
> I've started thinking of TeX as the assembly language of document formatting
I remember having read a Knuth interview saying exactly that's what he intended TeX to be. He was also surprised that everyone settled for LaTeX instead of creating their own TeX dialect designed specifically for their own needs.I did use LaTeX to take notes all through college and it has certainly helped ingrain it well into my muscle memory.
Additionally, Markdown is far less threatening to technophobe collaborators. I've successfully written grant applications with clinicians using Markdown in an etherpad document (free hosted version at http://piratepad.net/), which I later converted to LaTeX/pdf for submission. They would never have put up with writing lists or headings in straight LaTeX.
EDIT:I should have stated that pandoc is a nice tool for conversion between a bunch of formats including Markdown, Latex, Html, s5, reST, RTF, epub and a few others. In response to the comments below about conversion to word always sucking, pandoc provides the least sucky attempt I've found so far.
My main TeX annoyance is tables, but I don't think anyone has come up with a decent way of expressing them in a textual manner.
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).pdfMy 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.
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.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?
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]
Is learning LaTeX anywhere near as useful to a professional developer as say learning vim or emacs?
I would say no (even though I use latex nearly every single day).
On the other hand, it is indispensable if you're doing maths or anything that involves lots of formulas, citations, footnotes and what not, because it decouples the structure of the document from the formatting.
For the most part, you're only typing stuff like this:
\section{A Section}
A call to {\tt open()} will {\bf return} an integer, which represents a {\emph file descriptor}.\cite{man-open}
Easy mode, plus bibtex is a godsend when you have more than a handful of references.
Latex is required knowledge if you need to create highly structured documents with fine tuned positioning of equations, such as dissertations, math/engineering books, etc.
It is also very useful, but hard to use, if you want to typeset general books, music, etc.
For the needs of software documentation, I think XML is a better fit, because you can convert it as needed to other formats, including Latex.
It does explain why the typesetting is so bad, though. Figures are especially atrocious, and there are pixellation issues and routine font problems throughout.
It's better in Word 2007/2010, but still doesn't seem to be all the way there.
Even for math-free text, TeX does a better job of hyphenating and line-breaking. The TeX algorithm specifically tries have low variability in line-to-line fill density. Word does not care, which can result in a loose line between two tight lines, causing horizontal stripes in a block of text.
For much more, including ligatures, kerning, and transparency, see:
http://nitens.org/taraborelli/latex
My point above is his point #7.
It's just not on by default which is a shame.
I've heard that Word doesn't play as well with the text layout component as the component authors would prefer. It's possible that this will improve in the future.
As for TeX vs Word, that's a great question. I know that the authors of Word's text layout engine are familiar with Knuth's dead-tree works on typography, but beyond that, I don't know.
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...
jreese@mach ~/.../resume » latex2rtf -o JohnReese.rtf JohnReese.tex
JohnReese.tex:4 Package/option 'oneside' unknown.
JohnReese.tex:89 Unknown command '\fontfamily'
JohnReese.tex:90 Unknown command '\selectfont'
...
Source: http://files.leetcode.net/resume/JohnReese.texPDF: http://files.leetcode.net/resume/JohnReese.pdf
RTF: http://files.leetcode.net/resume/JohnReese.rtf
If you can tell me how to fix that (I know squat about LaTeX and it's associated toolchain), I'll buy you a beer/coffee/cupcake.
It's amazing to see people getting enthused (again!) about LaTeX.