CPS 300 (Fall 2011):
Introduction to Graduate Study

Course Information   People   Schedule   Resources
Advice   Tools


Document Editing using LaTeX

LaTeX is an excellent tool for high-quality typesetting of documents. It is available on all department computers and can be easily installed on most platforms. You can find many, many LaTeX resources on the web. Many LaTeX questions can simply be answered by googling. Here are some useful resources:

  • LaTeX Wikibook is a very reasonable online introduction.
  • Guide to LaTeX (4th Edition) (Tools and Techniques for Computer Typesetting), by Kopka and Daly.
    [[[This is Jun's favorite LaTeX reference. Very comprehensive and easy to look up things. Useful even if you already know LaTeX well.]]]
  • TUG, the TeX Users Group, has a compendium of useful resources.
    [[[Jun thinks it has way too much information that might overwhelm beginners.]]]
  • CTAN, the Comprehensive TeX Archive Network, is the place to find all sorts of incredibly useful packages.
    [[[Jun uses the following packages regularly (some of which come with a standard LaTeX installation):
    • times switches to Times font instead of the default Computer Modern font. Good trick to stay within page limits for submissions.
    • geometry provides a convenient alternative to setting the format of output pages, which is a lot more intuitive than the standard LaTeX method.
    • natbib gives you many more powerful ways to cite references than what LaTeX provides by default.
    • algorithm2e produces very professional-looking pseudo-code for algorithms.
    • epsfig allows you to include EPS figures in your documents.
    • amsmath, amssymb, amsthm are further enhancements made by the American Mathematical Society. Math never looks better!

You can edit LaTeX source (.tex) files using any plain-text editor. However, many editors offer more features:

  • Emacs is an extremely powerful and customizable editor that can run on almost any platform and even with only a text-terminal interface. Emacs has a built-in LaTeX mode that makes editing LaTeX easier. The AUCTeX package for Emacs adds even better support.
    [[[Jun uses Emacs because of it is super-customizable and works on any platform. If you want a feature, you can always code it up yourself (in elisp)!]]]
  • WinEdt is a small, good, and user-friendly LaTeX editor for Windows.
  • TeXnicCenter is a big and feature-rich IDE (integrated development environment) for LaTeX on Windows.
  • Kile is feature-rich LaTeX IDE like TeXnicCenter, but works in a Linux/KDE environment. [[[Thanks to Matt Matlock for suggesting the pointer.]]]

Other Options for Document Editing

  • Microsoft Word.
    [[[Jun uses Word occasionally, if the writing does not involve references or a lot of mathematics. Jun feels that versions of Word before 2007 had poor support for entering math and produced far inferior output than LaTeX (not only math but also plain text). Newer Word does a much better job at typesetting (just remember not to use compatibility mode!). Entering math is now much easier and arguably smoother than LaTeX: you can type most LaTeX math macros in the math mode, and it will be automatically converted into symbols with correct layouts. However, Word's built-in support for references is still inadequate.]]]

Reference Management using BibTeX

BibTeX (extension .bib) is a popular plain-text file format for storing bibliographic entries, mostly used in conjunction with LaTeX. BibTeX tools come with most LaTeX installations. As with LaTeX, you will find lots of resources about BibTeX on the web. Here are a few useful ones:

  • BibTeX.org has useful introductory tutorials.
  • Emacs has a built-in BibTeX mode, and AUCTeX adds even more support.
    [[[Jun uses Emacs plus some of his own customizations.]]]
  • A number of online databases provide references in BibTeX format: Another excellent source of BibTeX files would be your advisor and senior students in your group.
  • Here is a useful trick that allows you to switch between long and short forms of venue names in your document. This trick can be handy when you are trying to save space in your paper. Create two files long.bib and short.bib. In long.bib, define strings that expand to long names, e.g.:
        @string{proc={Proceedings of the}}
        @string{sigmod={{ACM} {SIGMOD} International Conference on Management of Data}}
    In short.bib, define the same strings to expand to short names instead, e.g.:
        @string{proc={Proc.\ of the}}
        @string{sigmod={{ACM} Conf.\ on Management of Data}}
    Your main BibTeX file, say paper.bib, should be written to use the strings defined in the above two files, e.g.:
          author    = {Badrish Chandramouli and
                       Christopher N. Bond and
                       Shivnath Babu and
                       Jun Yang},
          title     = {Query Suspend and Resume},
          booktitle = proc#{ 2007 }#sigmod,
          year      = {2007},
          pages     = {557--568},
    In your LaTeX document, you can control whether to show the long or the short version by switching between

Other Options for Reference Management

Last updated Sun Aug 21 13:59:13 EDT 2011