From ProgSoc Wiki

Jump to: navigation, search

TFM 2011 is a ProgSoc project to update TFM, a ProgSoc compendium.



A prospective Table of Contents is being maintained on the wiki.

Quick Start

The LaTeX sources and build system are stored in a Subversion repository available to ProgSoc members. To build TFM for yourself:

$ svn checkout svn+ssh://
$ cd tfm2010
$ make

Then open tfm.pdf.

Mailing List

A mailing list for general TFM development discussion has been setup, please feel free to subscribe.

Working with Subversion

Preferred workflow

  1. Make your changes
  2. Verify that your repository is up-to-date ("svn update")
  3. Add any new files ("svn add")
  4. Verify that you're about to commit what you want to commit ("svn status" and "svn diff")
  5. Commit your changes ("svn commit").


Subversion ships a set of command-line tools for manipulating the repository. Fortunately SVN is very similar to CVS in its command-line interface, so it should be very familiar if you've used that tool.

Updating your working copy

Update your checked-out version with the latest version on the server:

$ svn update

Or use the shortcut:

$ svn up

Adding files

$ svn add <pathname>

You can specify multiple pathnames. If you specify a directory the directory and all its contents will be added.

Verifying your changes

$ svn status

This will give you a list of files which are going to be added ("A"), files which have been modified ("M"), files which are not stored in SVN ("?"), and so forth. It's a good idea to run this command before you commit changes, particularly when you're adding new files.

$ svn diff

"svn diff" shows a complete diff between your working version and the most recent version you checked out. You can also diff specific files ("svn diff <filename>").

Checking in your changes

$ svn commit

Or use the shortcut:

$ svn ci

Your editor will start, and you will be asked to enter a brief description of your changes. Please put some thought into this description.

You can also use the -m flag to specify your description on the command line without using an editor. For example, 'svn commit -m "Removed FTP chapter"'.


RapidSVN is a graphical interface for Subversion that runs on Linux. You can install rapidsvn on your Debian or Ubuntu desktop with:

# apt-get install rapidsvn


TortoiseSVN is a graphical interface for Subversion that runs on Windows. It's a shell extension which modifies the file explorer providing extra options on context-menus. Find out more and download via the TortoiseSVN web-site.

Working with LaTeX

Understanding the build process

TFM uses make for managing PDF generation. Check out this article on Writing Rules for make in order to get a grip on what's occurring in the TFM Makefile.

Converting an image to PDF

In Gimp, greyscale your image, then save it as an EPS file. Then, at the command line, type:

$ ps2pdf -dEPSCrop input.eps output.pdf

replacing 'input' and 'output' with the relevant filenames.

Personal tools