These are the notes for lecture 11 Mark -- Today's fortune: Sherry [Thomas Sheridan] is dull, naturally dull; but it must have taken him a great deal of pains to become what we now see him. Such an excess of stupidity, sir, is not in Nature. -- Samuel JohnsonTitle: Math 481/581 Lecture 11: LaTeX Part II
This continues the discussion of LaTeX. In this part, we'll cover running LaTeX, viewing and printing LaTeX documents, TeX resources on the WWW, and the basics of typesetting mathematical formulae.
Writing documents in LaTeX versus TeX is a lot like programming in C versus Matlab. Like C, TeX gives you a lot more flexibility than Matlab (or LaTeX). On the other hand, some things are much easier in LaTeX. For example, TeX provides no means for automatic equation numbering and referencing these numbers.
I won't say any more about it, but remember two things:
If you are going to be something other than an occasional LaTeX user, you will definitely want to buy a reference book on the subject. Here are a couple that should be available in the ASUA bookstore (2nd floor):
Subject | Title |
---|---|
TeX | The TeX Book by Donald Knuth |
TeX | The Joy of TeX |
LaTeX | LaTeX: A Document Preparation System by Leslie Lamport |
LaTeX | The LaTeX Companion |
Once you are ready to test out your LaTeX code, you need to process
it using the latex command. Assuming that your file is called
file.tex
(you should use the .tex
suffix
for all LaTeX source files), you'd use something like:
> latex file.tex [... diagnostic output ...] >
setup tetex
on the u.arizona.edu
system before you can run
LaTeX.
file.dvi
in your CWD. DVI files act as
an intermediary between the LaTeX source code and a printer-specific
data format. DVI files are binary files -- remember this if you need
to FTP a DVI file.
There are many kinds of printers, and, in general, each type of printer uses a different method of encoding the sorts of graphics produced by LaTeX (LaTeX requires graphics output because the mathematical symbols it produces are not part of the standard ASCII character set). PostScript printers speak PostScript, HP printers speak PCL, and Epson dot-matrix printers have their own special format. LaTeX includes a number of special programs that convert DVI files into formats that printers can deal with directly.
Why have the DVI file at all? There are at least two reasons. First, there is a program that can display a DVI file on your screen. This is useful because it lets you see a preview of what the printed output will look like without actually having to print it. We'll look at this in more detail in a moment.
Second, DVI files are portable (even more portable than LaTeX source code). You can give someone a DVI file and they can preview it or print it without having to possess your LaTeX source code (there are a number of situations in which this is desirable). Without the DVI file, you would either have to make your source available or be prepared to provide copies of your document in every conceivable printer format.
Now that you have a DVI file, there are two or three things that you can do with it. Assuming that you are running LaTeX on a UNIX system and are in the midst of an X-windows session, you can use the xdvi program to view the DVI file with:
> xdvi file.dviA window will pop up and show you the first page of the "final product". You can control the document scaling and switch between pages using the buttons on the right side of the window. Clicking a mouse button on a visible part of the document brings up a temporary zoom of the area surrounding the mouse pointer. If you make changes to your LaTeX code and rerun latex on your file, the xdvi window will be updated the next time you click a mouse button in the window; ie, it isn't necessary to explicitly reload the modified DVI file.
You can also convert the DVI file to a format suitable for printing (you cannot directly print a DVI file by itself). If you want to generate a PostScript version of your document, you can use the dvips program like so:
> dvips -o file.ps file.dvi [... diagnostic output ...]Here, the filename following the
-o
option determines
the output filename. If you want to create an HP-PCL version, you
can use the dvilj command:
> dvilj file.dvi [... diagnostic output ...]In this case, you'll end up with
file.lj
in your CWD.
Why do you need the -o
option for dvips? Well,
you don't, necessarily; however, oftentimes dvips will be
configured to send its output directly to a printer unless you
explicitly redirect the output to a file, as above. In other words,
typing "dvips file.dvi" will not generate "file.ps" -- it will
instead send your document to the printer (this is the case for Math
department machines).
If you do create a PostScript file and want to print it out, you can normally do so by using either the lpr or lp commands. The command you use depends on whether your system is set up for Berkeley printing or System V printing. If you aren't sure, you should ask your system administrator for assistance. At the Math department, we use Berkeley printing and so you'll use the lpr command:
> lpr file.ps
Many UNIX systems expect either plain ASCII text or PostScript. Sending PCL or other binary data to a PostScript printer will likely fail. Or cause several hundred pages of gibberish to emerge from the printer. Remember: CCIT charges by the page. On your shiny new CatCard. The point is that you need to know what type of data the printer is expecting. All UNIX print queues in Math department labs will handle ASCII text or PostScript.
Now the important part: where does the thing physically print out? The answer depends on where you printed it from. Here is a table to help you navigate a few local systems:
Print from | Printout appears |
---|---|
Math 225 | Math 225 NW |
Math 226 | Math 226 SW |
Math 514 | Math 514 |
ame2.math.arizona.edu | Math 514 |
u.arizona.edu | CCIT -- Speedway and Mountain |
If your system uses Berkeley printing, there are a couple of other handy commands to know about. First, the lpq command shows the status of the default print queue:
> lpq Rank Owner Job Files Total Size 1st hays 1 (standard input) 5 bytes 2nd hays 2 (standard input) 7 bytesThis command shows all print jobs currently in the queue. The other interesting command is lprm which you can use to remove (your) print jobs from the queue. To use it, first run lpq and note the job ID (third column) of the job you'd like to cancel. To, for example, cancel job number 2, type:
> lprm 2 dfA002Aa05940 dequeued cfA002Aa05940 dequeued > lpq Rank Owner Job Files Total Size 1st hays 1 (standard input) 7 bytesTo cancel all of your print jobs, you can do "lprm -".
To be concrete, suppose you have the following LaTeX code:
1: \documentclass{article} 2: 3: \begin{document} 4: 5: \begin{itemize} 6: \item This is the first item. 7: \item Item \#2 8: \begin{enumerate} 9: \item This is the first enumerated item. 10: \end{itemize} 11: 12: \end{document}The problem with this code is that I've forgotten the innermost
\end{enumerate}
. When you run LaTeX on this code,
you'll get something like:
> latex errs.tex This is TeX, Version 3.14159 (C version 6.1) (errs.tex LaTeX2e <1996/06/01> Hyphenation patterns for english, german, loaded. (/usr/lib/texmf/texmf/tex/latex/base/article.cls Document Class: article 1996/05/26 v1.3r Standard LaTeX document class (/usr/lib/texmf/texmf/tex/latex/base/size10.clo)) No file errs.aux. * ! LaTeX Error: \begin{enumerate} on input line 8 ended by \end{itemize}. See the LaTeX manual or LaTeX Companion for explanation. Type HThe lines marked with a "*" are the important ones. The first such line gives the biggest clue -- in this case, LaTeX can tell you exactly what it is confused about. Most often, this will not be the case. The second *'ed line tells you the line number at which latex became confused. In our example, line 9 is thefor immediate help. ... * l.10 \end{itemize} * ?
\end{itemize}
command that should have been a
\end{enumerate}
. LaTeX errors occur on of before the
line specified by the "l.NNN" line -- never after.
The last *'ed line is LaTeX's "?" prompt. There are normally two things you can do at the "?" prompt:
RETURN
. LaTeX will immediately
exit.
RETURN
key. LaTeX will (attempt) to
continue processing.
Every now and again you will get the (TeX) prompt
*The recommended thing to do here is type
CTRL-D
.
Lamport's LaTeX book gives detailed descriptions of most commonly encountered error messages. For the most part, such descriptions aren't too useful because you're still faced with the task of locating the source of the error and correcting it. The best rule of thumb I can give is to start at the designated line number and work your way backwards until you've got it.
At the bottom of this page is a list of links to relevant LaTeX information; in particular, the link to the Comprehensive TeX Archive Network (CTAN) is a central repository for all things TeX. The CTAN address is:
If you are interested in getting LaTeX running on your Windows
machine at home, go to the top-level of the archive and proceed to
systems/win32/miktex
. Miktex is a nice version of LaTeX
for Win32 systems (ie, Win95, Win98, and WinNT).
You may also want to grab a copy of ghostscript to preview PostScript files. The Aladdin Ghostscript page is at
Ghostscript lets you view Postscript files on your screen; it also lets you convert PostScript to other formats for printing.
If you have something other than Win32 or UNIX at home (eg, Mac, DOS, OS/2, etc), the CTAN probably has a distribution of LaTeX that will run on your machine. Ghostscript runs on most platforms, too.
If you buy a book on LaTeX, it should contain tables of all of these symbols.