Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Introductory L TEX: DR Nicola Talbot

Download as pdf or txt
Download as pdf or txt
You are on page 1of 521

Introductory LATEX

Dr Nicola Talbot
nlct@cmp.uea.ac.uk

Centre for Staff and Educational Development

Next First Last Back Index


Course Summary

Course Summary
• Basic text, punctuation, accents and symbols.
• Simple font changing commands.
• Document classes, sectioning commands, and title pages.
• Centering and one-sided justification.
• Defining new commands.
• Converting to PostScript or Portable Document Format.
• Lists
• Tabulated material.
• Basic mathematics.
• Cross-referencing

Previous Next First Last Back Index 2


Course Summary

Course Summary
• Basic text, punctuation, accents and symbols.
• Simple font changing commands.
• Document classes, sectioning commands, and title pages.
• Centering and one-sided justification.
• Defining new commands.
• Converting to PostScript or Portable Document Format.
• Lists
• Tabulated material.
• Basic mathematics.
• Cross-referencing

Previous Next First Last Back Index 2


Course Summary

Course Summary
• Basic text, punctuation, accents and symbols.
• Simple font changing commands.
• Document classes, sectioning commands, and title pages.
• Centering and one-sided justification.
• Defining new commands.
• Converting to PostScript or Portable Document Format.
• Lists
• Tabulated material.
• Basic mathematics.
• Cross-referencing

Previous Next First Last Back Index 2


Course Summary

Course Summary
• Basic text, punctuation, accents and symbols.
• Simple font changing commands.
• Document classes, sectioning commands, and title pages.
• Centering and one-sided justification.
• Defining new commands.
• Converting to PostScript or Portable Document Format.
• Lists
• Tabulated material.
• Basic mathematics.
• Cross-referencing

Previous Next First Last Back Index 2


Course Summary

Course Summary
• Basic text, punctuation, accents and symbols.
• Simple font changing commands.
• Document classes, sectioning commands, and title pages.
• Centering and one-sided justification.
• Defining new commands.
• Converting to PostScript or Portable Document Format.
• Lists
• Tabulated material.
• Basic mathematics.
• Cross-referencing

Previous Next First Last Back Index 2


Course Summary

Course Summary
• Basic text, punctuation, accents and symbols.
• Simple font changing commands.
• Document classes, sectioning commands, and title pages.
• Centering and one-sided justification.
• Defining new commands.
• Converting to PostScript or Portable Document Format.
• Lists
• Tabulated material.
• Basic mathematics.
• Cross-referencing

Previous Next First Last Back Index 2


Course Summary

Course Summary
• Basic text, punctuation, accents and symbols.
• Simple font changing commands.
• Document classes, sectioning commands, and title pages.
• Centering and one-sided justification.
• Defining new commands.
• Converting to PostScript or Portable Document Format.
• Lists
• Tabulated material.
• Basic mathematics.
• Cross-referencing

Previous Next First Last Back Index 2


Course Summary

Course Summary
• Basic text, punctuation, accents and symbols.
• Simple font changing commands.
• Document classes, sectioning commands, and title pages.
• Centering and one-sided justification.
• Defining new commands.
• Converting to PostScript or Portable Document Format.
• Lists
• Tabulated material.
• Basic mathematics.
• Cross-referencing

Previous Next First Last Back Index 2


Course Summary

Course Summary
• Basic text, punctuation, accents and symbols.
• Simple font changing commands.
• Document classes, sectioning commands, and title pages.
• Centering and one-sided justification.
• Defining new commands.
• Converting to PostScript or Portable Document Format.
• Lists
• Tabulated material.
• Basic mathematics.
• Cross-referencing

Previous Next First Last Back Index 2


Course Summary

Course Summary
• Basic text, punctuation, accents and symbols.
• Simple font changing commands.
• Document classes, sectioning commands, and title pages.
• Centering and one-sided justification.
• Defining new commands.
• Converting to PostScript or Portable Document Format.
• Lists
• Tabulated material.
• Basic mathematics.
• Cross-referencing

Previous Next First Last Back Index 2


Course Summary

Course Summary Continued


• Packages
• Citations
• Lengths
• Boxes and minipages
• Incorporating images
• Figures and tables
• Creating slides
• Defining new environments
• Counters
• Writing packages and class files

Previous Next First Last Back Index 3


Course Summary

Course Summary Continued


• Packages
• Citations
• Lengths
• Boxes and minipages
• Incorporating images
• Figures and tables
• Creating slides
• Defining new environments
• Counters
• Writing packages and class files

Previous Next First Last Back Index 3


Course Summary

Course Summary Continued


• Packages
• Citations
• Lengths
• Boxes and minipages
• Incorporating images
• Figures and tables
• Creating slides
• Defining new environments
• Counters
• Writing packages and class files

Previous Next First Last Back Index 3


Course Summary

Course Summary Continued


• Packages
• Citations
• Lengths
• Boxes and minipages
• Incorporating images
• Figures and tables
• Creating slides
• Defining new environments
• Counters
• Writing packages and class files

Previous Next First Last Back Index 3


Course Summary

Course Summary Continued


• Packages
• Citations
• Lengths
• Boxes and minipages
• Incorporating images
• Figures and tables
• Creating slides
• Defining new environments
• Counters
• Writing packages and class files

Previous Next First Last Back Index 3


Course Summary

Course Summary Continued


• Packages
• Citations
• Lengths
• Boxes and minipages
• Incorporating images
• Figures and tables
• Creating slides
• Defining new environments
• Counters
• Writing packages and class files

Previous Next First Last Back Index 3


Course Summary

Course Summary Continued


• Packages
• Citations
• Lengths
• Boxes and minipages
• Incorporating images
• Figures and tables
• Creating slides
• Defining new environments
• Counters
• Writing packages and class files

Previous Next First Last Back Index 3


Course Summary

Course Summary Continued


• Packages
• Citations
• Lengths
• Boxes and minipages
• Incorporating images
• Figures and tables
• Creating slides
• Defining new environments
• Counters
• Writing packages and class files

Previous Next First Last Back Index 3


Course Summary

Course Summary Continued


• Packages
• Citations
• Lengths
• Boxes and minipages
• Incorporating images
• Figures and tables
• Creating slides
• Defining new environments
• Counters
• Writing packages and class files

Previous Next First Last Back Index 3


Course Summary

Course Summary Continued


• Packages
• Citations
• Lengths
• Boxes and minipages
• Incorporating images
• Figures and tables
• Creating slides
• Defining new environments
• Counters
• Writing packages and class files

Previous Next First Last Back Index 3


Course Summary

Course Materials
• Each participant should have been given a handout.
• In addition, the following material is available on the web:
– On-line version of the slides (HTML and PDF)
– Advice and solutions to the exercises
– Explanations to common errors
– Terminology so that you can check the definition of a keyword.
– PostScript version of the slides
These can be found at:
http://theoval.cmp.uea.ac.uk/˜nlct/latex/csed/csed.html

Previous Next First Last Back Index 4


Course Summary

Some Notes
• At the end of each topic there will be an exercise for you to do to
give you some practical experience with the topic.
• Be sure to read the instructions given in the handout, and pay
particular attention to any Notes.
• If you find yourself struggling, just do the parts of the exercises
marked e . If you’re speeding ahead, try doing the additional bits,
marked ! .
• If you skip ahead, please save your questions until everyone else
reaches that topic.

Previous Next First Last Back Index 5


Course Summary

Some Notes
• At the end of each topic there will be an exercise for you to do to
give you some practical experience with the topic.
• Be sure to read the instructions given in the handout, and pay
particular attention to any Notes.
• If you find yourself struggling, just do the parts of the exercises
marked e . If you’re speeding ahead, try doing the additional bits,
marked ! .
• If you skip ahead, please save your questions until everyone else
reaches that topic.

Previous Next First Last Back Index 5


Course Summary

Some Notes
• At the end of each topic there will be an exercise for you to do to
give you some practical experience with the topic.
• Be sure to read the instructions given in the handout, and pay
particular attention to any Notes.
• If you find yourself struggling, just do the parts of the exercises
marked e . If you’re speeding ahead, try doing the additional bits,
marked ! .
• If you skip ahead, please save your questions until everyone else
reaches that topic.

Previous Next First Last Back Index 5


Course Summary

Some Notes
• At the end of each topic there will be an exercise for you to do to
give you some practical experience with the topic.
• Be sure to read the instructions given in the handout, and pay
particular attention to any Notes.
• If you find yourself struggling, just do the parts of the exercises
marked e . If you’re speeding ahead, try doing the additional bits,
marked ! .
• If you skip ahead, please save your questions until everyone else
reaches that topic.

Previous Next First Last Back Index 5


Course Summary

Some More Notes


• Pay particular attention to Important information.
• Anything displayed like this indicates the type of thing you should
insert at that point.
• LATEX and UNIX are case-sensitive, so be sure to type commands
exactly as they appear in the handout.
• A triangle I indicates something to be typed in at the command
prompt. For example:
Ilatex filename
(Remember to press the return key at the end of the line.)

Previous Next First Last Back Index 6


Course Summary

Some More Notes


• Pay particular attention to Important information.
• Anything displayed like this indicates the type of thing you should
insert at that point.
• LATEX and UNIX are case-sensitive, so be sure to type commands
exactly as they appear in the handout.
• A triangle I indicates something to be typed in at the command
prompt. For example:
Ilatex filename
(Remember to press the return key at the end of the line.)

Previous Next First Last Back Index 6


Course Summary

Some More Notes


• Pay particular attention to Important information.
• Anything displayed like this indicates the type of thing you should
insert at that point.
• LATEX and UNIX are case-sensitive, so be sure to type commands
exactly as they appear in the handout.
• A triangle I indicates something to be typed in at the command
prompt. For example:
Ilatex filename
(Remember to press the return key at the end of the line.)

Previous Next First Last Back Index 6


Course Summary

Some More Notes


• Pay particular attention to Important information.
• Anything displayed like this indicates the type of thing you should
insert at that point.
• LATEX and UNIX are case-sensitive, so be sure to type commands
exactly as they appear in the handout.
• A triangle I indicates something to be typed in at the command
prompt. For example:
Ilatex filename
(Remember to press the return key at the end of the line.)

Previous Next First Last Back Index 6


LaTeX : A Typesetting Language

What is TEX?
• TEX is a typesetting language written by Donald Knuth.
• Original format of TEX called: “plain TEX”.
• Plain TEX easy for simple documents (without equations, chapters
etc).
• Otherwise very tricky.

Previous Next First Last Back Index 7


LaTeX : A Typesetting Language

What is LATEX?
• Leslie Lamport wrote a format of TEX called LATEX.
• Simple documents slightly harder to produce in LATEX than plain
TEX.
• Otherwise much easier to use.
• Since LATEX is a format of TEX, you may get TEX as well as LATEX
error messages.
• We will be using LATEX 2ε version.
• Old LATEX2.09 version very out of date.

Previous Next First Last Back Index 8


LaTeX : A Typesetting Language

Programming Languages
C

1. Write/edit source code in text file (e.g. HelloWorld.c)


2. Compile source code. (e.g. Igcc HelloWorld.c)
• If there are errors, return to Step 1.
• If successful, executable file created (e.g. HelloWorld.exe)
3. Run executable (e.g. IHelloWorld).

Java

1. Write/edit source code in text file (e.g. HelloWorld.java)


2. Compile source code. (e.g. Ijavac HelloWorld.java)
• If there are errors, return to Step 1.
• If successful, Java bytecode file created (e.g. HelloWorld)
3. Load Java bytecode into Java interpreter
(e.g. Ijava HelloWorld).

Previous Next First Last Back Index 9


LaTeX : A Typesetting Language

Programming Languages
C

1. Write/edit source code in text file (e.g. HelloWorld.c)


2. Compile source code. (e.g. Igcc HelloWorld.c)
• If there are errors, return to Step 1.
• If successful, executable file created (e.g. HelloWorld.exe)
3. Run executable (e.g. IHelloWorld).

Java

1. Write/edit source code in text file (e.g. HelloWorld.java)


2. Compile source code. (e.g. Ijavac HelloWorld.java)
• If there are errors, return to Step 1.
• If successful, Java bytecode file created (e.g. HelloWorld)
3. Load Java bytecode into Java interpreter
(e.g. Ijava HelloWorld).

Previous Next First Last Back Index 9


LaTeX : A Typesetting Language

Programming Languages
C

1. Write/edit source code in text file (e.g. HelloWorld.c)


2. Compile source code. (e.g. Igcc HelloWorld.c)
• If there are errors, return to Step 1.
• If successful, executable file created (e.g. HelloWorld.exe)
3. Run executable (e.g. IHelloWorld).

Java

1. Write/edit source code in text file (e.g. HelloWorld.java)


2. Compile source code. (e.g. Ijavac HelloWorld.java)
• If there are errors, return to Step 1.
• If successful, Java bytecode file created (e.g. HelloWorld)
3. Load Java bytecode into Java interpreter
(e.g. Ijava HelloWorld).

Previous Next First Last Back Index 9


LaTeX : A Typesetting Language

Programming Languages
C

1. Write/edit source code in text file (e.g. HelloWorld.c)


2. Compile source code. (e.g. Igcc HelloWorld.c)
• If there are errors, return to Step 1.
• If successful, executable file created (e.g. HelloWorld.exe)
3. Run executable (e.g. IHelloWorld).

Java

1. Write/edit source code in text file (e.g. HelloWorld.java)


2. Compile source code. (e.g. Ijavac HelloWorld.java)
• If there are errors, return to Step 1.
• If successful, Java bytecode file created (e.g. HelloWorld)
3. Load Java bytecode into Java interpreter
(e.g. Ijava HelloWorld).

Previous Next First Last Back Index 9


LaTeX : A Typesetting Language

Programming Languages
C

1. Write/edit source code in text file (e.g. HelloWorld.c)


2. Compile source code. (e.g. Igcc HelloWorld.c)
• If there are errors, return to Step 1.
• If successful, executable file created (e.g. HelloWorld.exe)
3. Run executable (e.g. IHelloWorld).

Java

1. Write/edit source code in text file (e.g. HelloWorld.java)


2. Compile source code. (e.g. Ijavac HelloWorld.java)
• If there are errors, return to Step 1.
• If successful, Java bytecode file created (e.g. HelloWorld)
3. Load Java bytecode into Java interpreter
(e.g. Ijava HelloWorld).

Previous Next First Last Back Index 9


LaTeX : A Typesetting Language

Programming Languages
C

1. Write/edit source code in text file (e.g. HelloWorld.c)


2. Compile source code. (e.g. Igcc HelloWorld.c)
• If there are errors, return to Step 1.
• If successful, executable file created (e.g. HelloWorld.exe)
3. Run executable (e.g. IHelloWorld).

Java

1. Write/edit source code in text file (e.g. HelloWorld.java)


2. Compile source code. (e.g. Ijavac HelloWorld.java)
• If there are errors, return to Step 1.
• If successful, Java bytecode file created (e.g. HelloWorld)
3. Load Java bytecode into Java interpreter
(e.g. Ijava HelloWorld).

Previous Next First Last Back Index 9


LaTeX : A Typesetting Language

Programming Languages
C

1. Write/edit source code in text file (e.g. HelloWorld.c)


2. Compile source code. (e.g. Igcc HelloWorld.c)
• If there are errors, return to Step 1.
• If successful, executable file created (e.g. HelloWorld.exe)
3. Run executable (e.g. IHelloWorld).

Java

1. Write/edit source code in text file (e.g. HelloWorld.java)


2. Compile source code. (e.g. Ijavac HelloWorld.java)
• If there are errors, return to Step 1.
• If successful, Java bytecode file created (e.g. HelloWorld)
3. Load Java bytecode into Java interpreter
(e.g. Ijava HelloWorld).

Previous Next First Last Back Index 9


LaTeX : A Typesetting Language

Programming Languages
C

1. Write/edit source code in text file (e.g. HelloWorld.c)


2. Compile source code. (e.g. Igcc HelloWorld.c)
• If there are errors, return to Step 1.
• If successful, executable file created (e.g. HelloWorld.exe)
3. Run executable (e.g. IHelloWorld).

Java

1. Write/edit source code in text file (e.g. HelloWorld.java)


2. Compile source code. (e.g. Ijavac HelloWorld.java)
• If there are errors, return to Step 1.
• If successful, Java bytecode file created (e.g. HelloWorld)
3. Load Java bytecode into Java interpreter
(e.g. Ijava HelloWorld).

Previous Next First Last Back Index 9


LaTeX : A Typesetting Language

Programming Languages
C

1. Write/edit source code in text file (e.g. HelloWorld.c)


2. Compile source code. (e.g. Igcc HelloWorld.c)
• If there are errors, return to Step 1.
• If successful, executable file created (e.g. HelloWorld.exe)
3. Run executable (e.g. IHelloWorld).

Java

1. Write/edit source code in text file (e.g. HelloWorld.java)


2. Compile source code. (e.g. Ijavac HelloWorld.java)
• If there are errors, return to Step 1.
• If successful, Java bytecode file created (e.g. HelloWorld)
3. Load Java bytecode into Java interpreter
(e.g. Ijava HelloWorld).

Previous Next First Last Back Index 9


LaTeX : A Typesetting Language

Programming Languages
C

1. Write/edit source code in text file (e.g. HelloWorld.c)


2. Compile source code. (e.g. Igcc HelloWorld.c)
• If there are errors, return to Step 1.
• If successful, executable file created (e.g. HelloWorld.exe)
3. Run executable (e.g. IHelloWorld).

Java

1. Write/edit source code in text file (e.g. HelloWorld.java)


2. Compile source code. (e.g. Ijavac HelloWorld.java)
• If there are errors, return to Step 1.
• If successful, Java bytecode file created (e.g. HelloWorld)
3. Load Java bytecode into Java interpreter
(e.g. Ijava HelloWorld).

Previous Next First Last Back Index 9


LaTeX : A Typesetting Language

Programming Languages
C

1. Write/edit source code in text file (e.g. HelloWorld.c)


2. Compile source code. (e.g. Igcc HelloWorld.c)
• If there are errors, return to Step 1.
• If successful, executable file created (e.g. HelloWorld.exe)
3. Run executable (e.g. IHelloWorld).

Java

1. Write/edit source code in text file (e.g. HelloWorld.java)


2. Compile source code. (e.g. Ijavac HelloWorld.java)
• If there are errors, return to Step 1.
• If successful, Java bytecode file created (e.g. HelloWorld)
3. Load Java bytecode into Java interpreter
(e.g. Ijava HelloWorld).

Previous Next First Last Back Index 9


LaTeX : A Typesetting Language

Programming Languages
C

1. Write/edit source code in text file (e.g. HelloWorld.c)


2. Compile source code. (e.g. Igcc HelloWorld.c)
• If there are errors, return to Step 1.
• If successful, executable file created (e.g. HelloWorld.exe)
3. Run executable (e.g. IHelloWorld).

Java

1. Write/edit source code in text file (e.g. HelloWorld.java)


2. Compile source code. (e.g. Ijavac HelloWorld.java)
• If there are errors, return to Step 1.
• If successful, Java bytecode file created (e.g. HelloWorld)
3. Load Java bytecode into Java interpreter
(e.g. Ijava HelloWorld).

Previous Next First Last Back Index 9


LaTeX : A Typesetting Language

LATEX
1. Write/edit source code in text file (e.g. HelloWorld.tex)
2. LATEX source code. (e.g. Ilatex HelloWorld.tex)
• If there are errors, return to Step 1.
• If successful, device independent file (DVI) created (e.g.
HelloWorld.dvi)
3. Load DVI file into DVI viewer (e.g. Ixdvi HelloWorld.dvi).

LATEX is NOT a word processor!

Previous Next First Last Back Index 10


LaTeX : A Typesetting Language

LATEX
1. Write/edit source code in text file (e.g. HelloWorld.tex)
2. LATEX source code. (e.g. Ilatex HelloWorld.tex)
• If there are errors, return to Step 1.
• If successful, device independent file (DVI) created (e.g.
HelloWorld.dvi)
3. Load DVI file into DVI viewer (e.g. Ixdvi HelloWorld.dvi).

LATEX is NOT a word processor!

Previous Next First Last Back Index 10


LaTeX : A Typesetting Language

Pros and Cons of LATEX


☞ Can only view your document once you have LATEXed your source
code.
._.
Can’t see how things appear while you type.
.^.
Tend to spend more time writing the actual text.
._.
Need to remember command names (or have book by you.)
.^.
Unless you are using a front-end.
._.
Tricky to start with
.^.
But once you get the hang of it, it becomes a lot easier to do
more complicated things.
.^.
Source code for large documents comparatively small compared
with word processors even if document contains many pictures.
Can easily transfer file onto disk — useful if co-authoring a
document.

Previous Next First Last Back Index 11


LaTeX : A Typesetting Language

Pros and Cons of LATEX


☞ Can only view your document once you have LATEXed your source
code.
._.
Can’t see how things appear while you type.
.^.
Tend to spend more time writing the actual text.
._.
Need to remember command names (or have book by you.)
.^.
Unless you are using a front-end.
._.
Tricky to start with
.^.
But once you get the hang of it, it becomes a lot easier to do
more complicated things.
.^.
Source code for large documents comparatively small compared
with word processors even if document contains many pictures.
Can easily transfer file onto disk — useful if co-authoring a
document.

Previous Next First Last Back Index 11


LaTeX : A Typesetting Language

Pros and Cons of LATEX


☞ Can only view your document once you have LATEXed your source
code.
._.
Can’t see how things appear while you type.
.^.
Tend to spend more time writing the actual text.
._.
Need to remember command names (or have book by you.)
.^.
Unless you are using a front-end.
._.
Tricky to start with
.^.
But once you get the hang of it, it becomes a lot easier to do
more complicated things.
.^.
Source code for large documents comparatively small compared
with word processors even if document contains many pictures.
Can easily transfer file onto disk — useful if co-authoring a
document.

Previous Next First Last Back Index 11


LaTeX : A Typesetting Language

Pros and Cons of LATEX


☞ Can only view your document once you have LATEXed your source
code.
._.
Can’t see how things appear while you type.
.^.
Tend to spend more time writing the actual text.
._.
Need to remember command names (or have book by you.)
.^.
Unless you are using a front-end.
._.
Tricky to start with
.^.
But once you get the hang of it, it becomes a lot easier to do
more complicated things.
.^.
Source code for large documents comparatively small compared
with word processors even if document contains many pictures.
Can easily transfer file onto disk — useful if co-authoring a
document.

Previous Next First Last Back Index 11


LaTeX : A Typesetting Language

Pros and Cons of LATEX


☞ Can only view your document once you have LATEXed your source
code.
._.
Can’t see how things appear while you type.
.^.
Tend to spend more time writing the actual text.
._.
Need to remember command names (or have book by you.)
.^.
Unless you are using a front-end.
._.
Tricky to start with
.^.
But once you get the hang of it, it becomes a lot easier to do
more complicated things.
.^.
Source code for large documents comparatively small compared
with word processors even if document contains many pictures.
Can easily transfer file onto disk — useful if co-authoring a
document.

Previous Next First Last Back Index 11


LaTeX : A Typesetting Language

Pros and Cons of LATEX


☞ Can only view your document once you have LATEXed your source
code.
._.
Can’t see how things appear while you type.
.^.
Tend to spend more time writing the actual text.
._.
Need to remember command names (or have book by you.)
.^.
Unless you are using a front-end.
._.
Tricky to start with
.^.
But once you get the hang of it, it becomes a lot easier to do
more complicated things.
.^.
Source code for large documents comparatively small compared
with word processors even if document contains many pictures.
Can easily transfer file onto disk — useful if co-authoring a
document.

Previous Next First Last Back Index 11


LaTeX : A Typesetting Language

Pros and Cons of LATEX


☞ Can only view your document once you have LATEXed your source
code.
._.
Can’t see how things appear while you type.
.^.
Tend to spend more time writing the actual text.
._.
Need to remember command names (or have book by you.)
.^.
Unless you are using a front-end.
._.
Tricky to start with
.^.
But once you get the hang of it, it becomes a lot easier to do
more complicated things.
.^.
Source code for large documents comparatively small compared
with word processors even if document contains many pictures.
Can easily transfer file onto disk — useful if co-authoring a
document.

Previous Next First Last Back Index 11


LaTeX : A Typesetting Language

Pros and Cons of LATEX


☞ Can only view your document once you have LATEXed your source
code.
._.
Can’t see how things appear while you type.
.^.
Tend to spend more time writing the actual text.
._.
Need to remember command names (or have book by you.)
.^.
Unless you are using a front-end.
._.
Tricky to start with
.^.
But once you get the hang of it, it becomes a lot easier to do
more complicated things.
.^.
Source code for large documents comparatively small compared
with word processors even if document contains many pictures.
Can easily transfer file onto disk — useful if co-authoring a
document.

Previous Next First Last Back Index 11


LaTeX : A Typesetting Language

Pros and Cons of LATEX cont.


.^.
Large documents don’t usually affect your typing speed (as long as
you have a decent text editor). With word processors the whole
document is constantly being reformatted as you type.
.^.
Automatically follows most laws of typography, particularly when
typesetting mathematics. Many word processors don’t do a very
good job typesetting equations.
.^.
Documents created using LATEX tend to have a more professional
look than those created using a word processor.
.^.
Free! (Although some front-ends, such as WinEdt, are shareware.)

Previous Next First Last Back Index 12


LaTeX : A Typesetting Language

Pros and Cons of LATEX cont.


.^.
Large documents don’t usually affect your typing speed (as long as
you have a decent text editor). With word processors the whole
document is constantly being reformatted as you type.
.^.
Automatically follows most laws of typography, particularly when
typesetting mathematics. Many word processors don’t do a very
good job typesetting equations.
.^.
Documents created using LATEX tend to have a more professional
look than those created using a word processor.
.^.
Free! (Although some front-ends, such as WinEdt, are shareware.)

Previous Next First Last Back Index 12


LaTeX : A Typesetting Language

Pros and Cons of LATEX cont.


.^.
Large documents don’t usually affect your typing speed (as long as
you have a decent text editor). With word processors the whole
document is constantly being reformatted as you type.
.^.
Automatically follows most laws of typography, particularly when
typesetting mathematics. Many word processors don’t do a very
good job typesetting equations.
.^.
Documents created using LATEX tend to have a more professional
look than those created using a word processor.
.^.
Free! (Although some front-ends, such as WinEdt, are shareware.)

Previous Next First Last Back Index 12


LaTeX : A Typesetting Language

Pros and Cons of LATEX cont.


.^.
Large documents don’t usually affect your typing speed (as long as
you have a decent text editor). With word processors the whole
document is constantly being reformatted as you type.
.^.
Automatically follows most laws of typography, particularly when
typesetting mathematics. Many word processors don’t do a very
good job typesetting equations.
.^.
Documents created using LATEX tend to have a more professional
look than those created using a word processor.
.^.
Free! (Although some front-ends, such as WinEdt, are shareware.)

Previous Next First Last Back Index 12


Using Exceed

Logging On
• We will be using Exceed.
• Exceed allows us to access UNIX computers from Windows NT.
• You should all have an ITCS username and password.
• To run Exceed, double-click on the icon Staff1.

Previous Next First Last Back Index 13


Using Exceed

Using UNIX
• UNIX is command line driven.
• Commands are typed in at the command prompt.
• Some simple commands:
ls lists the contents of the current directory.
mkdir makes a new directory. e.g.
Imkdir latex
will create a directory called latex.
cd change directory. e.g.
Icd latex
will change to the directory called latex.
cp copies a file to a new location. We will be using this command
in some of the exercises.
xedit runs the text editor for the X Window System.

Previous Next First Last Back Index 14


Using Exceed

Initialising Your Account


• To initialise your account so that you can use LATEX, you must
type the following commands at the command prompt:

Icd ~/.uea-options
Itouch tex
Ilogout

This will exit Exceed, so you will now have to run Exceed again.
• Once you have done this, you don’t need to do it again.

Previous Next First Last Back Index 15


Definitions

Special Characters
• The following 10 symbols have special meaning and should be
used with care:
% $ # & { } _ ^ ~ \
• The percent symbol % is a comment character. Everything from
the % symbol onwards until the end of the line will be ignored by
LATEX.

Some text % a comment. Some text


Input Output

• The other special characters will be discussed later.

Previous Next First Last Back Index 16


Definitions

Commands (Macros)
• Commands are available to specify how to format parts of the
document.
• Commands are either made up of a single special character (e.g. $)
or a backslash followed by a single symbol (e.g. \=) or a backslash
followed by one or more alphabetical characters (e.g. \today).
• Any spaces following a command name made up of alphabetical
characters are ignored. Notice the difference between

\oe œ
Input Output

and
\o e øe
Input Output

Previous Next First Last Back Index 17


Definitions

Commands (Macros)
• Commands are available to specify how to format parts of the
document.
• Commands are either made up of a single special character (e.g. $)
or a backslash followed by a single symbol (e.g. \=) or a backslash
followed by one or more alphabetical characters (e.g. \today).
• Any spaces following a command name made up of alphabetical
characters are ignored. Notice the difference between

\oe œ
Input Output

and
\o e øe
Input Output

Previous Next First Last Back Index 17


Definitions

Commands (Macros)
• Commands are available to specify how to format parts of the
document.
• Commands are either made up of a single special character (e.g. $)
or a backslash followed by a single symbol (e.g. \=) or a backslash
followed by one or more alphabetical characters (e.g. \today).
• Any spaces following a command name made up of alphabetical
characters are ignored. Notice the difference between

\oe œ
Input Output

and
\o e øe
Input Output

Previous Next First Last Back Index 17


Definitions

Commands (Macros)
• Commands are available to specify how to format parts of the
document.
• Commands are either made up of a single special character (e.g. $)
or a backslash followed by a single symbol (e.g. \=) or a backslash
followed by one or more alphabetical characters (e.g. \today).
• Any spaces following a command name made up of alphabetical
characters are ignored. Notice the difference between

\oe œ
Input Output

and
\o e øe
Input Output

Previous Next First Last Back Index 17


Definitions

Commands (Macros)
• Commands are available to specify how to format parts of the
document.
• Commands are either made up of a single special character (e.g. $)
or a backslash followed by a single symbol (e.g. \=) or a backslash
followed by one or more alphabetical characters (e.g. \today).
• Any spaces following a command name made up of alphabetical
characters are ignored. Notice the difference between

\oe œ
Input Output

and
\o e øe
Input Output

Previous Next First Last Back Index 17


Definitions

Commands (Macros)
• Commands are available to specify how to format parts of the
document.
• Commands are either made up of a single special character (e.g. $)
or a backslash followed by a single symbol (e.g. \=) or a backslash
followed by one or more alphabetical characters (e.g. \today).
• Any spaces following a command name made up of alphabetical
characters are ignored. Notice the difference between

\oe œ
Input Output

and
\o e øe
Input Output

Previous Next First Last Back Index 17


Definitions

Grouping
• Segments of code may be grouped by placing it within { and }
• Most commands occurring within a group will be local to that
group.

Some text. {This Some text. This


text is \em within text is within a
a group.} Some more group. Some more
text. text.
Input Output

• A command may be grouped to avoid placing a space after it:

man{\oe}uvre manœuvre
Output
Input

Previous Next First Last Back Index 18


Definitions

Grouping
• Segments of code may be grouped by placing it within { and }
• Most commands occurring within a group will be local to that
group.

Some text. {This Some text. This


text is \em within text is within a
a group.} Some more group. Some more
text. text.
Input Output

• A command may be grouped to avoid placing a space after it:

man{\oe}uvre manœuvre
Output
Input

Previous Next First Last Back Index 18


Definitions

Grouping
• Segments of code may be grouped by placing it within { and }
• Most commands occurring within a group will be local to that
group.

Some text. {This Some text. This


text is \em within text is within a
a group.} Some more group. Some more
text. text.
Input Output

• A command may be grouped to avoid placing a space after it:

man{\oe}uvre manœuvre
Output
Input

Previous Next First Last Back Index 18


Definitions

Command Arguments
• Some commands take one or more arguments. For example, the
command \textbf takes one argument, and will typeset that
argument in a bold font.

\textbf{Some bold Some bold text


text} Output

Input

• Note that if the argument consists of more that one character, it


must be grouped using braces { }, if not, only the first object will
be taken as the argument:

\textbf Some bold Some bold text


text Output

Input

Previous Next First Last Back Index 19


Definitions

Command Arguments
• Some commands take one or more arguments. For example, the
command \textbf takes one argument, and will typeset that
argument in a bold font.

\textbf{Some bold Some bold text


text} Output

Input

• Note that if the argument consists of more that one character, it


must be grouped using braces { }, if not, only the first object will
be taken as the argument:

\textbf Some bold Some bold text


text Output

Input

Previous Next First Last Back Index 19


Definitions

Optional Arguments
• Some commands have optional arguments.
• Optional arguments are always enclosed in square brackets [ ]:

A new\\ line. A new


Input
line.
Output

A new\\[5mm] A new
line.
Input line.
Output

• Optional arguments almost always come before mandatory


arguments (although there are a few exceptions.)

Previous Next First Last Back Index 20


Definitions

Optional Arguments
• Some commands have optional arguments.
• Optional arguments are always enclosed in square brackets [ ]:

A new\\ line. A new


Input
line.
Output

A new\\[5mm] A new
line.
Input line.
Output

• Optional arguments almost always come before mandatory


arguments (although there are a few exceptions.)

Previous Next First Last Back Index 20


Definitions

Optional Arguments
• Some commands have optional arguments.
• Optional arguments are always enclosed in square brackets [ ]:

A new\\ line. A new


Input
line.
Output

A new\\[5mm] A new
line.
Input line.
Output

• Optional arguments almost always come before mandatory


arguments (although there are a few exceptions.)

Previous Next First Last Back Index 20


Definitions

Environments
• An environment is different to a command.
• \begin{name} indicates the beginning of an environment.
• \end{name} indicates the end of an environment.

• \begin{sffamily} Some sans-serif text.


Some sans-serif text. Output

\end{sffamily}
Input

• Environments form implicit grouping. Changes made within an


environment are usually local.
• Environments may also have optional or mandatory arguments.

Previous Next First Last Back Index 21


Definitions

Environments
• An environment is different to a command.
• \begin{name} indicates the beginning of an environment.
• \end{name} indicates the end of an environment.

• \begin{sffamily} Some sans-serif text.


Some sans-serif text. Output

\end{sffamily}
Input

• Environments form implicit grouping. Changes made within an


environment are usually local.
• Environments may also have optional or mandatory arguments.

Previous Next First Last Back Index 21


Definitions

Environments
• An environment is different to a command.
• \begin{name} indicates the beginning of an environment.
• \end{name} indicates the end of an environment.

• \begin{sffamily} Some sans-serif text.


Some sans-serif text. Output

\end{sffamily}
Input

• Environments form implicit grouping. Changes made within an


environment are usually local.
• Environments may also have optional or mandatory arguments.

Previous Next First Last Back Index 21


Definitions

Environments
• An environment is different to a command.
• \begin{name} indicates the beginning of an environment.
• \end{name} indicates the end of an environment.

• \begin{sffamily} Some sans-serif text.


Some sans-serif text. Output

\end{sffamily}
Input

• Environments form implicit grouping. Changes made within an


environment are usually local.
• Environments may also have optional or mandatory arguments.

Previous Next First Last Back Index 21


Definitions

Environments
• An environment is different to a command.
• \begin{name} indicates the beginning of an environment.
• \end{name} indicates the end of an environment.

• \begin{sffamily} Some sans-serif text.


Some sans-serif text. Output

\end{sffamily}
Input

• Environments form implicit grouping. Changes made within an


environment are usually local.
• Environments may also have optional or mandatory arguments.

Previous Next First Last Back Index 21


Definitions

Environments
• An environment is different to a command.
• \begin{name} indicates the beginning of an environment.
• \end{name} indicates the end of an environment.

• \begin{sffamily} Some sans-serif text.


Some sans-serif text. Output

\end{sffamily}
Input

• Environments form implicit grouping. Changes made within an


environment are usually local.
• Environments may also have optional or mandatory arguments.

Previous Next First Last Back Index 21


Spaces and Paragraph Breaks

Spaces
• Consecutive spaces are treated as one single space.

Some text. Some text.


Input Output

• CR-LF or tab characters are treated as a space.


• To force a space after a command, use \ :

\LaTeX\ is great! LATEX is great!


Input Output

• Also use \ after lowercase abbreviations:

e.g.\ like this. e.g. like this.


Input Output

Previous Next First Last Back Index 22


Spaces and Paragraph Breaks

Spaces
• Consecutive spaces are treated as one single space.

Some text. Some text.


Input Output

• CR-LF or tab characters are treated as a space.


• To force a space after a command, use \ :

\LaTeX\ is great! LATEX is great!


Input Output

• Also use \ after lowercase abbreviations:

e.g.\ like this. e.g. like this.


Input Output

Previous Next First Last Back Index 22


Spaces and Paragraph Breaks

Spaces
• Consecutive spaces are treated as one single space.

Some text. Some text.


Input Output

• CR-LF or tab characters are treated as a space.


• To force a space after a command, use \ :

\LaTeX\ is great! LATEX is great!


Input Output

• Also use \ after lowercase abbreviations:

e.g.\ like this. e.g. like this.


Input Output

Previous Next First Last Back Index 22


Spaces and Paragraph Breaks

Spaces
• Consecutive spaces are treated as one single space.

Some text. Some text.


Input Output

• CR-LF or tab characters are treated as a space.


• To force a space after a command, use \ :

\LaTeX\ is great! LATEX is great!


Input Output

• Also use \ after lowercase abbreviations:

e.g.\ like this. e.g. like this.


Input Output

Previous Next First Last Back Index 22


Spaces and Paragraph Breaks

Paragraphs
• Completely blank lines indicate the end of a paragraph.

Here is the first Here is the first


paragraph. paragraph.
This is the start
This is the start of the second para-
of the second graph.
paragraph. Output

Input

• A paragraph break can also be specified by the command \par

Previous Next First Last Back Index 23


Creating a Document

Creating a Document
• At the start of any LATEX 2ε file, you must have the command

\documentclass[options]{class}

which declares what class file to use. For example:


\documentclass[a4paper,12pt]{article}
• All the text that is actually contained in the document must be
enclosed in a document environment:
\begin{document}
specifies the start of the document, and
\end{document}
specifies the end of the document.

Previous Next First Last Back Index 24


Creating a Document

Creating a Document
• At the start of any LATEX 2ε file, you must have the command

\documentclass[options]{class}

which declares what class file to use. For example:


\documentclass[a4paper,12pt]{article}
• All the text that is actually contained in the document must be
enclosed in a document environment:
\begin{document}
specifies the start of the document, and
\end{document}
specifies the end of the document.

Previous Next First Last Back Index 24


Creating a Document

Creating a Document
All LATEX documents must have the following three lines:

\documentclass[a4paper,12pt]{article}

\begin{document}

\end{document}

Note that the text in blue may change, but the rest must occur exactly
as above.

Previous Next First Last Back Index 25


Creating a Document

Exercise 1 : Creating a Simple Document


(See Page 1)
• Open xedit, and type in the contents of Figure 1 on page 2 of the
handouts.
• Save your file as exercise1.tex.
• Go to the command window, and type:
Ilatex exercise1.tex
• If there were errors, a question mark (?) will appear. Type h for
help, Return to continue or x to quit. Go back to xedit to fix the
problem.
• To view the typeset document, type the following at the command
prompt:
Ixdvi exercise1.dvi

Previous Next First Last Back Index 26


Simple Font Changing Commands

Font Changing Commands


verses
Font Changing Declarations

A Font Changing Command is something that does not affect the


rest of the document. It effectively says: do this to the following
object. For example, \textbf{A} says: “make the following
object bold”, where the following object is the letter ‘A’.
A Font Changing Declaration is something that affects the
document from that point onwards. For example, \bfseries will
switch to a bold font from the point where it is declared, onwards.

Previous Next First Last Back Index 27


Simple Font Changing Commands

Font Changing Commands


verses
Font Changing Declarations

A Font Changing Command is something that does not affect the


rest of the document. It effectively says: do this to the following
object. For example, \textbf{A} says: “make the following
object bold”, where the following object is the letter ‘A’.
A Font Changing Declaration is something that affects the
document from that point onwards. For example, \bfseries will
switch to a bold font from the point where it is declared, onwards.

Previous Next First Last Back Index 27


Simple Font Changing Commands

Font Changing Commands


verses
Font Changing Declarations

A Font Changing Command is something that does not affect the


rest of the document. It effectively says: do this to the following
object. For example, \textbf{A} says: “make the following
object bold”, where the following object is the letter ‘A’.
A Font Changing Declaration is something that affects the
document from that point onwards. For example, \bfseries will
switch to a bold font from the point where it is declared, onwards.

Previous Next First Last Back Index 27


Simple Font Changing Commands

Font Changing Commands


verses
Font Changing Declarations

A Font Changing Command is something that does not affect the


rest of the document. It effectively says: do this to the following
object. For example, \textbf{A} says: “make the following
object bold”, where the following object is the letter ‘A’.
A Font Changing Declaration is something that affects the
document from that point onwards. For example, \bfseries will
switch to a bold font from the point where it is declared, onwards.

Previous Next First Last Back Index 27


Simple Font Changing Commands

Font Changing Commands


Command Sample Input Sample Output

z
\textrm{text} \textrm{Roman} Roman

Family
}|
\textsf{text} \textsf{Sans serif} Sans serif
\texttt{text} \texttt{typewriter} typewriter

{ z }| { z
Weight
\textmd{text} \textmd{medium} medium
\textbf{text} \textbf{bold} bold

\textup{text} \textup{upright} upright


\textit{text} \textit{italic} italic

Shape
}|
\textsl{text} \textsl{slanted} slanted
\textsc{text} \textsc{Small Caps} Small Caps
\emph{text} \emph{emphasized} emphasized

{
\textnormal{text} \textnormal{default} default

Previous Next First Last Back Index 28


Simple Font Changing Commands

Font Changing Declarations


Declaration Sample Input Sample Output

z
\rmfamily \rmfamily Roman Roman

Family
}|
\sffamily \sffamily Sans serif Sans serif
\ttfamily \ttfamily typewriter typewriter

{ z }| { z
Weight
\mdseries \mdseries medium medium
\bfseries \bfseries bold bold
\upshape \upshape upright upright
\itshape \itshape italic italic

Shape
}|
\slshape \slshape slanted slanted
\scshape \scshape Small Caps Small Caps
\em \em emphasized emphasized

{
\normalfont \normalfont default default

Previous Next First Last Back Index 29


Simple Font Changing Commands

Font Changing Examples

1. \em Some emphasized text. Some emphasized text.


Input Output

2. Some \emph{emphasized} Some emphasized text.


text. Output

Input

3. \sffamily Some Some slanted text.


\textsl{slanted} text. Output

Input

Previous Next First Last Back Index 30


Simple Font Changing Commands

Font Changing Examples

4. \scshape Some more Some more text.


\upshape text. Output

Input

5. \itshape Some Some emphasized text.


\emph{emphasized} text. Output

Input

6. {\bfseries Some Some bold text.


bold} text. Output

Input

Previous Next First Last Back Index 31


Simple Font Changing Commands

Font Changing Environments


• An environment can also be used to change the font locally.
• The name of the environment is the same as the declaration,
without the preceding \.
• Example:
Some normal text. Some normal text. Some
\begin{bfseries} bold text. Back to
Some bold text. normal text.
\end{bfseries} Output

Back to normal text.


Input

Previous Next First Last Back Index 32


Simple Font Changing Commands

Changing the Font Size


Declaration Environment Sample
\tiny tiny tiny text

\scriptsize scriptsize script sized text

\footnotesize footnotesize footnote sized text

\small small small text


\normalsize normalsize normal sized text
\large large large text
\Large Large even larger
\LARGE LARGE larger still
\huge huge huge
\Huge Huge really huge
Previous Next First Last Back Index 33
Simple Font Changing Commands

Font Size Changing Examples

1. Some normal sized text. Some normal sized


{\small Some small text. Some small
text.} Normal again. text. Normal again.

Input Output

2. Some \textbf{\large Some large bold


large bold} text. text.
Input Output

Previous Next First Last Back Index 34


Simple Font Changing Commands

Font Size Changing Examples

4. \begin{footnotesize} Some text.


Some text. Output

\end{footnotesize}
Input

5. Some normal text. Some normal text.


\begin{tiny} Some tiny italic text. Back
\itshape to normal.
Some tiny italic text. Output

\end{tiny}
Back to normal.
Input

Previous Next First Last Back Index 35


Simple Font Changing Commands

Exercise 2 : Fonts (Page 2)

• Go back to the file you created in Exercise 1.


• Typeset the first paragraph in a large sans serif font, keeping the
second paragraph in normal size Roman font.
• Emphasize the word “Footnotes” in the second paragraph, and
then change the entire paragraph to italic.

Previous Next First Last Back Index 36


Punctuation, Accents and Symbols

Symbols
Remember the special characters? What if you actually want those
characters to appear? And what about other symbols not on your
keyboard?

\% % \textasciicircum ˆ \P ¶ \ldots ...


\$ $ \textasciitilde ˜ \S § \textbar |
\# # \textbackslash \ \yen U \textgreater >
\& & \copyright
c \i ı \textless <
\{ { \textregistered
r \j  \textbullet •
TM
\} } \texttrademark \ddag ‡ \pounds £
\ \textvisiblespace \dag †

Previous Next First Last Back Index 37


Punctuation, Accents and Symbols

Examples of Symbols

1. \pounds 43.50 £43.50


Input Output

2. A, B \& C A, B & C
Input Output

3. As she opened the As she opened the


door, she saw \ldots door, she saw . . .
Input Output

Previous Next First Last Back Index 38


Punctuation, Accents and Symbols

Punctuation Symbols
• Standard punctuation characters can be entered as normal: , .
; : ? !
• Some symbols are obtained through a particular combination of
characters.
Foreign
Quotes Dashes
Punctation
‘ ‘ - - hyphen ?‘ ¿
’ ’ -- – en dash !‘ ¡
‘‘ “ --- — em dash
’’ ” $-$ − minus
• A thin space \, can be used to separate a single quote from a
double quote. For example, ’\,’’ produces ’ ”

Previous Next First Last Back Index 39


Punctuation, Accents and Symbols

Examples

1. See pages 23--30 See pages 23–30


Input Output

2. She opened the box --- She opened the


the twenty-second box — the twenty-
one --- and second one — and
fainted in surprise. fainted in surprise.
Input Output

3. ‘‘She said to me: “She said to me: ‘is


‘is that it?’\,’’ that it?’ ”
Input Output

Previous Next First Last Back Index 40


Punctuation, Accents and Symbols

Accents

The accent commands place the required accent over or under the
specified character.

Example Example
Definition Input Output Definition Input Output
\’{object} \’{c} ć \={object} \={c} c̄
\‘{object} \‘{c} c̀ \.{object} \.{c} ċ
\^{object} \^{c} ĉ \~{object} \~{c} c̃
\"{object} \"{c} c̈ \v{object} \v{c} č
\u{object} \u{c} c̆ \H{object} \H{c} c̋
\t{object} \t{cc} cc \c{object} \c{c} ç
\d{object} \d{c} c. \b{object} \b{c} c
¯

Previous Next First Last Back Index 41


Punctuation, Accents and Symbols

Example of Words with Accents

1. Caf\’e Café
Input Output

2. R\^ole Rôle
Input Output

3. P\^at\’e Pâté
Input Output

4. Na\"{\i}ve Naı̈ve
Input Output

Note the use of the dotless i.

Previous Next First Last Back Index 42


Punctuation, Accents and Symbols

Ligatures

\AE Æ \ae æ \OE Œ \oe œ

fi fi ffi ffi fl fl ffl ffl

Foreign Symbols

\AA Å \aa å \L L \l l
\O Ø \o ø \SS SS \ss ß

Previous Next First Last Back Index 43


Punctuation, Accents and Symbols

Examples of Words Containing Ligatures

1. Man{\oe}uvre Manœuvre
Input Output

2. {\AE}olian Æolian
Input Output

3. {\OE}sophagus Œsophagus
Input Output

4. fluffier fluffier
Input Output

Previous Next First Last Back Index 44


Punctuation, Accents and Symbols

Exercise 3 : Punctuation, Accents and Symbols


(Page 4)
Create a LATEX document that will produce the output shown in
Figure 2 on page 5 of the handouts.
Note the following:
• Accent commands take one argument which must be the
character you want the accent over.
• If you want an accent over an i use a dotless i.
• Remember to either group a command that produces a ligature,
or place a space after it.

Previous Next First Last Back Index 45


Class files, sectioning commands, and title pages

Document Classes
• As we have already seen, the document class is specified using the
command:
\documentclass[option-list]{class}
• There are many class files available. The standard ones are:
article report book slides letter
• Which class file should I use?
☞ What kind of document do you want to write?
☞ Do you need an abstract? (article or report class)
☞ Do you want only sections (article class), or do you need
chapters as well (report or book class)?

Previous Next First Last Back Index 46


Class files, sectioning commands, and title pages

Document Classes
• As we have already seen, the document class is specified using the
command:
\documentclass[option-list]{class}
• There are many class files available. The standard ones are:
article report book slides letter

• Which class file should I use?


☞ What kind of document do you want to write?
☞ Do you need an abstract? (article or report class)
☞ Do you want only sections (article class), or do you need
chapters as well (report or book class)?

Previous Next First Last Back Index 46


Class files, sectioning commands, and title pages

Document Classes
• As we have already seen, the document class is specified using the
command:
\documentclass[option-list]{class}
• There are many class files available. The standard ones are:
article report book slides letter
• Which class file should I use?
☞ What kind of document do you want to write?
☞ Do you need an abstract? (article or report class)
☞ Do you want only sections (article class), or do you need
chapters as well (report or book class)?

Previous Next First Last Back Index 46


Class files, sectioning commands, and title pages

Document Classes
• As we have already seen, the document class is specified using the
command:
\documentclass[option-list]{class}
• There are many class files available. The standard ones are:
article report book slides letter
• Which class file should I use?
☞ What kind of document do you want to write?
☞ Do you need an abstract? (article or report class)
☞ Do you want only sections (article class), or do you need
chapters as well (report or book class)?

Previous Next First Last Back Index 46


Class files, sectioning commands, and title pages

Document Classes
• As we have already seen, the document class is specified using the
command:
\documentclass[option-list]{class}
• There are many class files available. The standard ones are:
article report book slides letter
• Which class file should I use?
☞ What kind of document do you want to write?
☞ Do you need an abstract? (article or report class)
☞ Do you want only sections (article class), or do you need
chapters as well (report or book class)?

Previous Next First Last Back Index 46


Class files, sectioning commands, and title pages

Document Classes
• As we have already seen, the document class is specified using the
command:
\documentclass[option-list]{class}
• There are many class files available. The standard ones are:
article report book slides letter
• Which class file should I use?
☞ What kind of document do you want to write?
☞ Do you need an abstract? (article or report class)
☞ Do you want only sections (article class), or do you need
chapters as well (report or book class)?

Previous Next First Last Back Index 46


Class files, sectioning commands, and title pages

Standard Class File Options


Some of the more common options:
onecolumn Format document in one column format
twocolumn Format document in two column format
titlepage Make the title page appear on a separate page
notitlepage Make the title appear at the top of the first page of the doc-
ument
oneside Format the document for one-sided printing
twoside Format the document for two-sided printing
portrait Format the document in portrait orientation
landscape Format the document in landscape orientation
10pt Make the normal font be 10pt
11pt Make the normal font be 11pt
12pt Make the normal font be 12pt

Previous Next First Last Back Index 47


Class files, sectioning commands, and title pages

Standard Sectioning Commands

\part[short title]{Title} \subsubsection[short title]{Title}


\chapter[short title]{Title} \paragraph[short title]{Title}
\section[short title]{Title} \subparagraph[short title]{Title}
\subsection[short title]{Title}
• Some of these commands may not be available in certain class
files.
• All parts, chapters and sections, sub-sections and sub-sub-sections
will be numbered automatically.
• \paragraph and \subparagraph are usually defined to have
running unnumbered headings, but this can be changed.

Previous Next First Last Back Index 48


Class files, sectioning commands, and title pages

Examples of Sectioning Commands

1. \section{Introduction} 1 Introduction
\LaTeX\ documents
are\ldots LATEX documents are. . .
Output
Input

2. \subsection{Macros} 1.1 Macros


Macros\ldots
Macros. . .
Input
Output

3. \section*{Unnumbered Unnumbered
Sections}
Sections
Input
Output

Previous Next First Last Back Index 49


Class files, sectioning commands, and title pages

Abstract
• Some class files such as article and report define an abstract
environment.
• Example:

\begin{abstract} Abstract
This is the body of This is the body
the abstract. of the abstract. The
The format depends format depends on
on the class the class file you use.
file you use. Output

\end{abstract}
Input

Previous Next First Last Back Index 50


Class files, sectioning commands, and title pages

Title Page
• To create a title page, you first need to store information using
the commands:
\author{Author Names}
\title{Document Title}
\date{Date}
• The information is then displayed using the command:
\maketitle

Previous Next First Last Back Index 51


Class files, sectioning commands, and title pages

Example Title Page

\author{N.L.C. Talbot} Introductory


\title{Introductory
\LaTeX} LATEX
\date{November 2003}

N.L.C. Talbot
\maketitle
Input
November 2003
Output

Previous Next First Last Back Index 52


Class files, sectioning commands, and title pages

Appendices

• To switch to appendices, use the command:


\appendix
at the start of the appendices.
• Continue to use \chapter or \section commands, depending on
the class file.

Previous Next First Last Back Index 53


Class files, sectioning commands, and title pages

Example

% This is the 4th section 4 Conclusions


\section{Conclusions}
Here are the conclusions. Here are the conclusions.

\appendix A Tables
\section{Tables}
This is the first appendix. This is the first appendix.

\section{Proofs}
This is the second
B Proofs
appendix. This is the second ap-
Input pendix.
Output

Previous Next First Last Back Index 54


Class files, sectioning commands, and title pages

Table of Contents
• The table of contents can be produced using the command:
\tableofcontents
• The sectioning commands write information to the table of
contents file (.toc).
• Next time you LATEX your document, the table of contents file will
be read, and the contents page will be generated.
• If you have a particularly long chapter or section title, you can use
the optional argument of the sectioning command to specify a
shorter title for the contents.
• The \tableofcontents command is usually placed after the
\maketitle command.

Previous Next First Last Back Index 55


Class files, sectioning commands, and title pages

Table of Contents
• The table of contents can be produced using the command:
\tableofcontents
• The sectioning commands write information to the table of
contents file (.toc).
• Next time you LATEX your document, the table of contents file will
be read, and the contents page will be generated.
• If you have a particularly long chapter or section title, you can use
the optional argument of the sectioning command to specify a
shorter title for the contents.
• The \tableofcontents command is usually placed after the
\maketitle command.

Previous Next First Last Back Index 55


Class files, sectioning commands, and title pages

Table of Contents
• The table of contents can be produced using the command:
\tableofcontents
• The sectioning commands write information to the table of
contents file (.toc).
• Next time you LATEX your document, the table of contents file will
be read, and the contents page will be generated.
• If you have a particularly long chapter or section title, you can use
the optional argument of the sectioning command to specify a
shorter title for the contents.
• The \tableofcontents command is usually placed after the
\maketitle command.

Previous Next First Last Back Index 55


Class files, sectioning commands, and title pages

Table of Contents
• The table of contents can be produced using the command:
\tableofcontents
• The sectioning commands write information to the table of
contents file (.toc).
• Next time you LATEX your document, the table of contents file will
be read, and the contents page will be generated.
• If you have a particularly long chapter or section title, you can use
the optional argument of the sectioning command to specify a
shorter title for the contents.
• The \tableofcontents command is usually placed after the
\maketitle command.

Previous Next First Last Back Index 55


Class files, sectioning commands, and title pages

Table of Contents
• The table of contents can be produced using the command:
\tableofcontents
• The sectioning commands write information to the table of
contents file (.toc).
• Next time you LATEX your document, the table of contents file will
be read, and the contents page will be generated.
• If you have a particularly long chapter or section title, you can use
the optional argument of the sectioning command to specify a
shorter title for the contents.
• The \tableofcontents command is usually placed after the
\maketitle command.

Previous Next First Last Back Index 55


Class files, sectioning commands, and title pages

Page Styles
• Page numbers appear automatically
• By default, in the article class file the page numbers appear
centred in the footer.
• The page style (how headers and footers appear) can be changed
using the command:
\pagestyle{style}
• The most common styles are: plain, empty and headings.
• The style for the current page only can be set using:

\thispagestyle{style}

Previous Next First Last Back Index 56


Class files, sectioning commands, and title pages

Page Styles
• Page numbers appear automatically
• By default, in the article class file the page numbers appear
centred in the footer.
• The page style (how headers and footers appear) can be changed
using the command:
\pagestyle{style}
• The most common styles are: plain, empty and headings.
• The style for the current page only can be set using:

\thispagestyle{style}

Previous Next First Last Back Index 56


Class files, sectioning commands, and title pages

Page Styles
• Page numbers appear automatically
• By default, in the article class file the page numbers appear
centred in the footer.
• The page style (how headers and footers appear) can be changed
using the command:
\pagestyle{style}
• The most common styles are: plain, empty and headings.
• The style for the current page only can be set using:

\thispagestyle{style}

Previous Next First Last Back Index 56


Class files, sectioning commands, and title pages

Page Styles
• Page numbers appear automatically
• By default, in the article class file the page numbers appear
centred in the footer.
• The page style (how headers and footers appear) can be changed
using the command:
\pagestyle{style}
• The most common styles are: plain, empty and headings.
• The style for the current page only can be set using:

\thispagestyle{style}

Previous Next First Last Back Index 56


Class files, sectioning commands, and title pages

Page Styles
• Page numbers appear automatically
• By default, in the article class file the page numbers appear
centred in the footer.
• The page style (how headers and footers appear) can be changed
using the command:
\pagestyle{style}
• The most common styles are: plain, empty and headings.
• The style for the current page only can be set using:

\thispagestyle{style}

Previous Next First Last Back Index 56


Class files, sectioning commands, and title pages

Page Numbering Styles


• Page numbers are displayed in Arabic by default.
• The format can be changed using:
\pagenumbering{style}
• Standard styles are: arabic, roman, Roman, alph and Alph.
• \pagenumbering will also reset the page number back to one.
• Standard practice is to use lowercase Roman numbering for the
front matter, and arabic numbering for the main matter. Example:
\maketitle
\pagenumbering{roman}
\tableofcontents % Front matter
\begin{abstract} ... \end{abstract}
\chapter{Introduction} % Start of main matter
\pagenumbering{arabic}

Previous Next First Last Back Index 57


Class files, sectioning commands, and title pages

Page Numbering Styles


• Page numbers are displayed in Arabic by default.
• The format can be changed using:
\pagenumbering{style}
• Standard styles are: arabic, roman, Roman, alph and Alph.
• \pagenumbering will also reset the page number back to one.
• Standard practice is to use lowercase Roman numbering for the
front matter, and arabic numbering for the main matter. Example:
\maketitle
\pagenumbering{roman}
\tableofcontents % Front matter
\begin{abstract} ... \end{abstract}
\chapter{Introduction} % Start of main matter
\pagenumbering{arabic}

Previous Next First Last Back Index 57


Class files, sectioning commands, and title pages

Page Numbering Styles


• Page numbers are displayed in Arabic by default.
• The format can be changed using:
\pagenumbering{style}
• Standard styles are: arabic, roman, Roman, alph and Alph.
• \pagenumbering will also reset the page number back to one.
• Standard practice is to use lowercase Roman numbering for the
front matter, and arabic numbering for the main matter. Example:
\maketitle
\pagenumbering{roman}
\tableofcontents % Front matter
\begin{abstract} ... \end{abstract}
\chapter{Introduction} % Start of main matter
\pagenumbering{arabic}

Previous Next First Last Back Index 57


Class files, sectioning commands, and title pages

Page Numbering Styles


• Page numbers are displayed in Arabic by default.
• The format can be changed using:
\pagenumbering{style}
• Standard styles are: arabic, roman, Roman, alph and Alph.
• \pagenumbering will also reset the page number back to one.
• Standard practice is to use lowercase Roman numbering for the
front matter, and arabic numbering for the main matter. Example:
\maketitle
\pagenumbering{roman}
\tableofcontents % Front matter
\begin{abstract} ... \end{abstract}
\chapter{Introduction} % Start of main matter
\pagenumbering{arabic}

Previous Next First Last Back Index 57


Class files, sectioning commands, and title pages

Page Numbering Styles


• Page numbers are displayed in Arabic by default.
• The format can be changed using:
\pagenumbering{style}
• Standard styles are: arabic, roman, Roman, alph and Alph.
• \pagenumbering will also reset the page number back to one.
• Standard practice is to use lowercase Roman numbering for the
front matter, and arabic numbering for the main matter. Example:
\maketitle
\pagenumbering{roman}
\tableofcontents % Front matter
\begin{abstract} ... \end{abstract}
\chapter{Introduction} % Start of main matter
\pagenumbering{arabic}

Previous Next First Last Back Index 57


Class files, sectioning commands, and title pages

Exercise 4 : Sectioning Commands etc (Page 6)


• Copy over the file sectioning.tex:
Icp /home/sys/gcc/insecure/sectioning.tex .
Load the file sectioning.tex into xedit, and find the line that
says:
% CHAPTER : Introduction
On the following line, insert the line
\chapter{Introduction}
• Go through the rest of the file, and insert the appropriate
sectioning commands.
• Use \maketitle to make the title information appear.
• Make the table of contents appear, by placing the command
\tableofcontents at the place where you want it to appear.

Previous Next First Last Back Index 58


Formatting

Paragraph Formatting

By default, paragraphs are fully justified, however the justification can


be changed, either by a declaration, or an environment.

Declaration \raggedright \raggedleft \centering


Environment flushleft flushright center

Previous Next First Last Back Index 59


Formatting

Examples (environments)

1.

\begin{flushright} Some right justified


Some right text.
justified text. Output

\end{flushright}
Input

2. \begin{center} Some more text,


Some more text, this time it is
this time it is centred. centred.
\end{center} Output

Input

Previous Next First Last Back Index 60


Formatting

Examples (declarations)
The justification declarations must be applied to whole paragraphs.
1. Justification applied to entire paragraph:

{\raggedleft Some right Some right justified


justified text.\par} text.
Input Output

2. Paragraph break has been omitted, causing the text to be


formatted according to the justification in effect at the start of the
paragraph:

{\raggedleft Some right Some right justified


justified text.} text.
Input Output

Previous Next First Last Back Index 61


Formatting

Centering a Single Line of Text


There is also a command to centre a single line of text:

\centerline{text}

Example:

\centerline{Some centred text}


Input

Some centred text


Input

Previous Next First Last Back Index 62


Formatting

New Lines
• To force a new line: \\[length] or \newline

• Line one\\ Line one


Line two\\[20pt] Line two
Line three
Input
Line three
Output

• \begin{flushright} Line one


Line one\\ Line two
Line two\\[20pt]
Line three
Line three
\end{flushright}
Output

Input

Previous Next First Last Back Index 63


Formatting

Line breaks
• To break a line but keeping the text fully justified use:
\linebreak[n]

• A short fully A short fully justi-


justified paragraph. fied paragraph.
Input Output

• A short \linebreak fully A short


justified paragraph. fully justified
Input
paragraph.
Output

Previous Next First Last Back Index 64


Formatting

Preventing Line breaks


• To prevent a line break use: \nolinebreak[n]

• A short fully A short fully justified


justified paragraph. paragraph.
Input Output

• A short fully A short fully justi-


justified\nolinebreak\ fied paragraph.
paragraph. Output

Input

Previous Next First Last Back Index 65


Formatting

Unbreakable Spaces
Alternatively, use a tilde ~ to produce a space that can not be broken
by a new line. For example:

Numbers such as the 3 Numbers such as the 3 in Example


in Example 3, should 3, should never occur at the start
never occur at the of a new line.
start of a new line. Output

Input

Numbers such as the 3 Numbers such as the 3 in Exam-


in Example~3, should ple 3, should never occur at the
never occur at the start of a new line.
start of a new line. Output

Input

Previous Next First Last Back Index 66


Formatting

Page Breaks
• To force a ragged page break, use:
\newpage
• To force a vertically justified page break, use:
\pagebreak[n]
• To prevent a page break, use:
\nopagebreak[n]
• To force a page break, and process all unprocessed floats, use:
\clearpage

Previous Next First Last Back Index 67


Formatting

Exercise 5 : Paragraph Formatting (Page 7)

• Reproduce the output shown in Figure 3 on page 7 of the


handouts.
• Consider whether to use declarations or environments or the
\centerline command.

Previous Next First Last Back Index 68


Defining new commands

Defining New Commands


• To define a new command use:
\newcommand{cmd-name}[nargs][default]{text}
• cmd-name is the name of the new command (remember the
backslash)
• nargs is the numbers of arguments the new command takes
(default 0)
• default is the default value for the first argument should an
optional argument be required
• text is what LATEX should do every time it encounters this
command.
• Existing commands can be redefined using \renewcommand
instead of \newcommand, but never redefine a command whose
existing meaning is unknown to you.

Previous Next First Last Back Index 69


Defining new commands

Defining New Commands


• To define a new command use:
\newcommand{cmd-name}[nargs][default]{text}
• cmd-name is the name of the new command (remember the
backslash)
• nargs is the numbers of arguments the new command takes
(default 0)
• default is the default value for the first argument should an
optional argument be required
• text is what LATEX should do every time it encounters this
command.
• Existing commands can be redefined using \renewcommand
instead of \newcommand, but never redefine a command whose
existing meaning is unknown to you.

Previous Next First Last Back Index 69


Defining new commands

Defining New Commands


• To define a new command use:
\newcommand{cmd-name}[nargs][default]{text}
• cmd-name is the name of the new command (remember the
backslash)
• nargs is the numbers of arguments the new command takes
(default 0)
• default is the default value for the first argument should an
optional argument be required
• text is what LATEX should do every time it encounters this
command.
• Existing commands can be redefined using \renewcommand
instead of \newcommand, but never redefine a command whose
existing meaning is unknown to you.

Previous Next First Last Back Index 69


Defining new commands

Defining New Commands


• To define a new command use:
\newcommand{cmd-name}[nargs][default]{text}
• cmd-name is the name of the new command (remember the
backslash)
• nargs is the numbers of arguments the new command takes
(default 0)
• default is the default value for the first argument should an
optional argument be required
• text is what LATEX should do every time it encounters this
command.
• Existing commands can be redefined using \renewcommand
instead of \newcommand, but never redefine a command whose
existing meaning is unknown to you.

Previous Next First Last Back Index 69


Defining new commands

Defining New Commands


• To define a new command use:
\newcommand{cmd-name}[nargs][default]{text}
• cmd-name is the name of the new command (remember the
backslash)
• nargs is the numbers of arguments the new command takes
(default 0)
• default is the default value for the first argument should an
optional argument be required
• text is what LATEX should do every time it encounters this
command.
• Existing commands can be redefined using \renewcommand
instead of \newcommand, but never redefine a command whose
existing meaning is unknown to you.

Previous Next First Last Back Index 69


Defining new commands

Defining New Commands


• To define a new command use:
\newcommand{cmd-name}[nargs][default]{text}
• cmd-name is the name of the new command (remember the
backslash)
• nargs is the numbers of arguments the new command takes
(default 0)
• default is the default value for the first argument should an
optional argument be required
• text is what LATEX should do every time it encounters this
command.
• Existing commands can be redefined using \renewcommand
instead of \newcommand, but never redefine a command whose
existing meaning is unknown to you.

Previous Next First Last Back Index 69


Defining new commands

Why Define New Commands?


• To reduce lengthy typing:

\newcommand{\introLaTeX}{% The Introductory LATEX


\emph{Introductory \LaTeX}} course is run by CSED. . .
Output

The \introLaTeX\ course


is run by CSED\ldots
Input

Previous Next First Last Back Index 70


Defining new commands

Why Define New Commands?


• To ensure consistency:

\newcommand{\envname}[1]{% The abstract envi-


\textsf{#1}} ronment. . .
Output

The \envname{abstract}
environment\ldots
Input

Previous Next First Last Back Index 71


Defining new commands

Examples

% First define the new command The price is £2.50.


\newcommand{\price}[2]{\pounds #1.#2}
Output
% Now you can use it
The price is \price{2}{50}.
Input

\newcommand{\cost}[2][17.5]{% The cost is £100 excl.


The cost is \pounds #2 excl.\ VAT VAT @ 17.5%.
@ #1\%} The cost is £50 excl.
% VAT @ 0.0%
\cost{100}.\\ Output
\cost[0.0]{50}
Input

Previous Next First Last Back Index 72


Defining new commands

Exercise 6 : Defining New Commands (Page 8)

• Create a new document called exercise6.tex.


• Define the command \timeofday (in the preamble). This
command should take two parameters, the first is the hour and
the second is the number of minutes passed the hour. For
example, the command \timeofday{10}{25} should produce the
output: 10:25.
• Create the output shown in Figure 4 on page 8 where the time is
produced using the \timeofday command.
• Once you have done this, change the definition of the command
so that the time is displayed in bold and the hours and minutes
are separated with a dash instead of a colon (e.g. 10-25).

Previous Next First Last Back Index 73


Alternative Output Formats

PostScript
• DVI files can be converted to PostScript using dvips:
Idvips -o filename.ps filename.dvi
• The PostScript file can either be sent directly to a PostScript
printer, or can be loaded into ghostview where you can preview it
and send it to a non-PostScript printer.
• If you use dvips you can:
☞ Use the pstricks package and create some very fancy graphics.
☞ Incorporate PostScript commands into your document.
☞ Use the psutils suite:
– Rearrange pages (psbook)
– Print multiple logical pages on a single sheet (psnup)
– Convert, e.g., US letter documents to A4 paper (psresize)

Previous Next First Last Back Index 74


Alternative Output Formats

PostScript
• DVI files can be converted to PostScript using dvips:
Idvips -o filename.ps filename.dvi
• The PostScript file can either be sent directly to a PostScript
printer, or can be loaded into ghostview where you can preview it
and send it to a non-PostScript printer.
• If you use dvips you can:
☞ Use the pstricks package and create some very fancy graphics.
☞ Incorporate PostScript commands into your document.
☞ Use the psutils suite:
– Rearrange pages (psbook)
– Print multiple logical pages on a single sheet (psnup)
– Convert, e.g., US letter documents to A4 paper (psresize)

Previous Next First Last Back Index 74


Alternative Output Formats

PostScript
• DVI files can be converted to PostScript using dvips:
Idvips -o filename.ps filename.dvi
• The PostScript file can either be sent directly to a PostScript
printer, or can be loaded into ghostview where you can preview it
and send it to a non-PostScript printer.
• If you use dvips you can:
☞ Use the pstricks package and create some very fancy graphics.
☞ Incorporate PostScript commands into your document.
☞ Use the psutils suite:
– Rearrange pages (psbook)
– Print multiple logical pages on a single sheet (psnup)
– Convert, e.g., US letter documents to A4 paper (psresize)

Previous Next First Last Back Index 74


Alternative Output Formats

PostScript
• DVI files can be converted to PostScript using dvips:
Idvips -o filename.ps filename.dvi
• The PostScript file can either be sent directly to a PostScript
printer, or can be loaded into ghostview where you can preview it
and send it to a non-PostScript printer.
• If you use dvips you can:
☞ Use the pstricks package and create some very fancy graphics.
☞ Incorporate PostScript commands into your document.
☞ Use the psutils suite:
– Rearrange pages (psbook)
– Print multiple logical pages on a single sheet (psnup)
– Convert, e.g., US letter documents to A4 paper (psresize)

Previous Next First Last Back Index 74


Alternative Output Formats

PostScript
• DVI files can be converted to PostScript using dvips:
Idvips -o filename.ps filename.dvi
• The PostScript file can either be sent directly to a PostScript
printer, or can be loaded into ghostview where you can preview it
and send it to a non-PostScript printer.
• If you use dvips you can:
☞ Use the pstricks package and create some very fancy graphics.
☞ Incorporate PostScript commands into your document.
☞ Use the psutils suite:
– Rearrange pages (psbook)
– Print multiple logical pages on a single sheet (psnup)
– Convert, e.g., US letter documents to A4 paper (psresize)

Previous Next First Last Back Index 74


Alternative Output Formats

PostScript
• DVI files can be converted to PostScript using dvips:
Idvips -o filename.ps filename.dvi
• The PostScript file can either be sent directly to a PostScript
printer, or can be loaded into ghostview where you can preview it
and send it to a non-PostScript printer.
• If you use dvips you can:
☞ Use the pstricks package and create some very fancy graphics.
☞ Incorporate PostScript commands into your document.
☞ Use the psutils suite:
– Rearrange pages (psbook)
– Print multiple logical pages on a single sheet (psnup)
– Convert, e.g., US letter documents to A4 paper (psresize)

Previous Next First Last Back Index 74


Alternative Output Formats

PostScript
• DVI files can be converted to PostScript using dvips:
Idvips -o filename.ps filename.dvi
• The PostScript file can either be sent directly to a PostScript
printer, or can be loaded into ghostview where you can preview it
and send it to a non-PostScript printer.
• If you use dvips you can:
☞ Use the pstricks package and create some very fancy graphics.
☞ Incorporate PostScript commands into your document.
☞ Use the psutils suite:
– Rearrange pages (psbook)
– Print multiple logical pages on a single sheet (psnup)
– Convert, e.g., US letter documents to A4 paper (psresize)

Previous Next First Last Back Index 74


Alternative Output Formats

PostScript
• DVI files can be converted to PostScript using dvips:
Idvips -o filename.ps filename.dvi
• The PostScript file can either be sent directly to a PostScript
printer, or can be loaded into ghostview where you can preview it
and send it to a non-PostScript printer.
• If you use dvips you can:
☞ Use the pstricks package and create some very fancy graphics.
☞ Incorporate PostScript commands into your document.
☞ Use the psutils suite:
– Rearrange pages (psbook)
– Print multiple logical pages on a single sheet (psnup)
– Convert, e.g., US letter documents to A4 paper (psresize)

Previous Next First Last Back Index 74


Alternative Output Formats

PostScript
• DVI files can be converted to PostScript using dvips:
Idvips -o filename.ps filename.dvi
• The PostScript file can either be sent directly to a PostScript
printer, or can be loaded into ghostview where you can preview it
and send it to a non-PostScript printer.
• If you use dvips you can:
☞ Use the pstricks package and create some very fancy graphics.
☞ Incorporate PostScript commands into your document.
☞ Use the psutils suite:
– Rearrange pages (psbook)
– Print multiple logical pages on a single sheet (psnup)
– Convert, e.g., US letter documents to A4 paper (psresize)

Previous Next First Last Back Index 74


Alternative Output Formats

Portable Document Format (PDF)


• The proliferation of the world wide web has encouraged many
authors to create PDF documents which can be viewed in Adobe’s
Acrobat Reader.
• PostScript files can be converted to PDF using ps2pdf.
• Alternatively, PDF output can be obtained from LATEX documents
using PDFLATEX instead of LATEX.
Ipdflatex filename
• You can have hyperlinks, both internal and external.
• You can access Adobe Acrobat menu functions. For example:
Summary
See “The LATEX Web Companion” [4, chapter 2] for more details

Previous Next First Last Back Index 75


Alternative Output Formats

PostScript and PDF Output


If you use either dvips or PDFLATEX, you can:
• Include PostScript, PDF or PNG images in your document.
• Have colour
• Use PostScript fonts
te
ta

• tcefler or resize text.


ro

Previous Next First Last Back Index 76


Alternative Output Formats

Exercise 7 (Page 8)
• Try converting the document that you modified in Exercise 4
(sectioning.tex) into a PostScript file.
Idvips -o sectioning.ps sectioning
• Now view it using ghostview:

Ighostview sectioning.ps
• Try using PDFLATEX to generate a PDF version of this document:

Ipdflatex sectioning.tex

You can view it using xpdf:

Ixpdf sectioning.pdf

Previous Next First Last Back Index 77


Lists

List Making Environments


The itemize environment produces an unordered list.

\begin{itemize} • The first item


\item The first item • The second item
\item The second item
• The third item
\item The third item
Output
\end{itemize}
Input

Previous Next First Last Back Index 78


Lists

Nested itemize environments


Up to four itemize environments may be nested:

\begin{itemize} • The first item


\item The first item – First item of nested list
\begin{itemize} – Second item of nested
\item First item list
of nested list
• The second item
\item Second item
Output
of nested list
\end{itemize}
\item The second item
\end{itemize}
Input

Previous Next First Last Back Index 79


Lists

Numbered Lists
The enumerate environment produces an ordered list.

\begin{enumerate}
1. The first item
\item The first item
\item The second item 2. The second item
\item The third item 3. The third item
\end{enumerate} Output

Input

Previous Next First Last Back Index 80


Lists

Nested enumerate environments


Up to four enumerate environments may be nested:

\begin{enumerate}
1. The first item
\item The first item
(a) First item of nested list
\begin{enumerate}
\item First item (b) Second item of nested
of nested list list
\item Second item 2. The second item
of nested list Output

\end{enumerate}
\item The second item
\end{enumerate}
Input

Previous Next First Last Back Index 81


Lists

Nested itemize and enumerate environments


itemize and enumerate environments may be nested:

\begin{enumerate}
1. The first item
\item The first item
• First item of nested list
\begin{itemize}
\item First item • Second item of nested
of nested list list
\item Second item 2. The second item
of nested list Output

\end{itemize}
\item The second item
\end{enumerate}
Input

Previous Next First Last Back Index 82


Lists

Description

\begin{description} Cabbage A large round


\item[Cabbage] A large green vegetable
round green vegetable Brussel sprout A small
\item[Brussel sprout] A round green vegetable
small round
Output
green vegetable
\end{description}
Input

Previous Next First Last Back Index 83


Lists

Exercise 8 : Lists (Page 9)

• Create a document that produces the output shown in Figure 5 on


page 9 of the handouts.
• You will need to use nested enumerate environments
e Start with a simple list:
1. Animal
2. Vegetable
3. Mineral
and add to it.
! Convert the enumerate environments to itemize environments, and
redefine the item labels.

Previous Next First Last Back Index 84


Tabulated Material

Tabulated Material
• Material can be aligned in rows and columns using the tabular
environment:
\begin{tabular}{column specifiers}
Each column is specified by one of the following letters: l (left
aligned) c (centred) or r (right aligned).
Examples:
1. \begin{tabular}{ccc}
Three columns, all centred.
2. \begin{tabular}{lr}
Two columns, the first left justified, the second right justified.

• Within the tabular environment:


– The special character & moves to the next column.
– The new line command \\ is used to move on to the next row.

Previous Next First Last Back Index 85


Tabulated Material

Tabulated Material
• Material can be aligned in rows and columns using the tabular
environment:
\begin{tabular}{column specifiers}
Each column is specified by one of the following letters: l (left
aligned) c (centred) or r (right aligned).
Examples:
1. \begin{tabular}{ccc}
Three columns, all centred.
2. \begin{tabular}{lr}
Two columns, the first left justified, the second right justified.

• Within the tabular environment:


– The special character & moves to the next column.
– The new line command \\ is used to move on to the next row.

Previous Next First Last Back Index 85


Tabulated Material

Tabulated Material
• Material can be aligned in rows and columns using the tabular
environment:
\begin{tabular}{column specifiers}
Each column is specified by one of the following letters: l (left
aligned) c (centred) or r (right aligned).
Examples:
1. \begin{tabular}{ccc}
Three columns, all centred.
2. \begin{tabular}{lr}
Two columns, the first left justified, the second right justified.

• Within the tabular environment:


– The special character & moves to the next column.
– The new line command \\ is used to move on to the next row.

Previous Next First Last Back Index 85


Tabulated Material

Tabulated Material
• Material can be aligned in rows and columns using the tabular
environment:
\begin{tabular}{column specifiers}
Each column is specified by one of the following letters: l (left
aligned) c (centred) or r (right aligned).
Examples:
1. \begin{tabular}{ccc}
Three columns, all centred.
2. \begin{tabular}{lr}
Two columns, the first left justified, the second right justified.
• Within the tabular environment:
– The special character & moves to the next column.
– The new line command \\ is used to move on to the next row.

Previous Next First Last Back Index 85


Tabulated Material

Tabulated Material
• Material can be aligned in rows and columns using the tabular
environment:
\begin{tabular}{column specifiers}
Each column is specified by one of the following letters: l (left
aligned) c (centred) or r (right aligned).
Examples:
1. \begin{tabular}{ccc}
Three columns, all centred.
2. \begin{tabular}{lr}
Two columns, the first left justified, the second right justified.
• Within the tabular environment:
– The special character & moves to the next column.
– The new line command \\ is used to move on to the next row.

Previous Next First Last Back Index 85


Tabulated Material

Simple Example
• This example has only 2 columns
• So each row can have no more than 1 &
• Column 1 is left justified, column 2 is centred.

\begin{tabular}{lc} Item Cost


Item & Cost\\
CD £11.75
CD & \pounds 11.75\\
Video & \pounds 14.10\\ Video £14.10
Total & \pounds 25.85 Total £25.85
\end{tabular}
Output

Input

Be careful not to confuse l (ell) with 1 (one)!

Previous Next First Last Back Index 86


Tabulated Material

Adding Horizontal and Vertical Lines

• Vertical lines are specified in the tabular environment argument


using the vertical bar character |
\begin{tabular}{|l|c|}
• Horizontal lines:
– Spanning all columns:
\hline
– Spanning from column n to m:
\cline{n-m}

• \hline and \cline can only be used at the start of a row.

Previous Next First Last Back Index 87


Tabulated Material

Adding Horizontal and Vertical Lines

• Vertical lines are specified in the tabular environment argument


using the vertical bar character |
\begin{tabular}{|l|c|}
• Horizontal lines:
– Spanning all columns:
\hline
– Spanning from column n to m:
\cline{n-m}

• \hline and \cline can only be used at the start of a row.

Previous Next First Last Back Index 87


Tabulated Material

Adding Horizontal and Vertical Lines

• Vertical lines are specified in the tabular environment argument


using the vertical bar character |
\begin{tabular}{|l|c|}
• Horizontal lines:
– Spanning all columns:
\hline
– Spanning from column n to m:
\cline{n-m}

• \hline and \cline can only be used at the start of a row.

Previous Next First Last Back Index 87


Tabulated Material

Adding Horizontal and Vertical Lines

• Vertical lines are specified in the tabular environment argument


using the vertical bar character |
\begin{tabular}{|l|c|}
• Horizontal lines:
– Spanning all columns:
\hline
– Spanning from column n to m:
\cline{n-m}
• \hline and \cline can only be used at the start of a row.

Previous Next First Last Back Index 87


Tabulated Material

Example

Our simple example can be modified:

\begin{tabular}{|l|c|}
\hline Item Cost
Item & Cost\\ CD £11.75
\hline\hline
Video £14.10
CD & \pounds 11.75\\
Video & \pounds 14.10\\ Total £25.85
\hline Output

Total & \pounds 25.85\\


\hline
\end{tabular}
Input

Previous Next First Last Back Index 88


Tabulated Material

Spanning Columns
• An entry can span several columns:
\multicolumn{cols}{align}{text}
• cols is the number of columns to be spanned.
• align is the alignment for this entry. This can only contain one
alignment letter (e.g. c), but can also contain vertical bar
specifiers.
• text The text for this entry.
• Can also be used to change the specification for a single column.

Previous Next First Last Back Index 89


Tabulated Material

\begin{tabular}{|l|cc|}\hline
& \multicolumn{2}{c|}{Cost}\\
Item & ex VAT & inc VAT (@17.5\%)\\\hline\hline
CD & \pounds 10.00 & \pounds 11.75\\
Video & \pounds 12.00 & \pounds 14.10\\\hline
\multicolumn{1}{l|}{Total} & \pounds 22.00 &
\pounds 25.85\\\cline{2-3}
\end{tabular}
Input

Cost
Item ex VAT inc VAT (@17.5%)
CD £10.00 £11.75
Video £12.00 £14.10
Total £22.00 £25.85

Output

Previous Next First Last Back Index 90


Tabulated Material

Exercise 9 : Tabulated Material (Page 10)

• When creating tables, it’s best to start with a simple table, and
then add to it.
e Try creating the output shown in Figure 6 on page 10
! Try creating the output shown in Figure 7 on page 10.

• The table is created using just one tabular environment. The lines
Equipment Expenditure and Travel Expenditure span all 5
columns.
• Once you’ve finished it, centre the table, using the \centerline
command.

Previous Next First Last Back Index 91


Basic Mathematics

Basic Mathematics
• TEX has two modes:
1. Text mode
2. Maths mode
• So far we have only been using text mode.
• All maths must be placed in maths mode, as the fonts and
spacing are different.
– Text mode: y-c=mx
– Maths mode: y − c = mx
• There are two types of maths: in-line maths and displayed maths

Previous Next First Last Back Index 92


Basic Mathematics

In-Line Mathematics
• In-line maths occurs within a line of text.
P
• Symbols such as are small so that it doesn’t take up to much
space.
• Can be broken across a line.
• For in-line maths, use the math environment:
\begin{math}
...
\end{math}
• Shorthand notation: \( ... \)
• Even shorter notation: $ ...$
Another special character!

Previous Next First Last Back Index 93


Basic Mathematics

In-Line Mathematics
• In-line maths occurs within a line of text.
P
• Symbols such as are small so that it doesn’t take up to much
space.
• Can be broken across a line.
• For in-line maths, use the math environment:
\begin{math}
...
\end{math}
• Shorthand notation: \( ... \)
• Even shorter notation: $ ...$
Another special character!

Previous Next First Last Back Index 93


Basic Mathematics

In-Line Mathematics
• In-line maths occurs within a line of text.
P
• Symbols such as are small so that it doesn’t take up to much
space.
• Can be broken across a line.
• For in-line maths, use the math environment:
\begin{math}
...
\end{math}
• Shorthand notation: \( ... \)
• Even shorter notation: $ ...$
Another special character!

Previous Next First Last Back Index 93


Basic Mathematics

In-Line Mathematics
• In-line maths occurs within a line of text.
P
• Symbols such as are small so that it doesn’t take up to much
space.
• Can be broken across a line.
• For in-line maths, use the math environment:
\begin{math}
...
\end{math}
• Shorthand notation: \( ... \)
• Even shorter notation: $ ...$
Another special character!

Previous Next First Last Back Index 93


Basic Mathematics

In-Line Mathematics
• In-line maths occurs within a line of text.
P
• Symbols such as are small so that it doesn’t take up to much
space.
• Can be broken across a line.
• For in-line maths, use the math environment:
\begin{math}
...
\end{math}
• Shorthand notation: \( ... \)
• Even shorter notation: $ ...$
Another special character!

Previous Next First Last Back Index 93


Basic Mathematics

In-Line Mathematics
• In-line maths occurs within a line of text.
P
• Symbols such as are small so that it doesn’t take up to much
space.
• Can be broken across a line.
• For in-line maths, use the math environment:
\begin{math}
...
\end{math}
• Shorthand notation: \( ... \)
• Even shorter notation: $ ...$
Another special character!

Previous Next First Last Back Index 93


Basic Mathematics

Examples

I can refer to the variable $x$, or the


formula \(y = m x + c\).
Input

I can refer to the variable x, or the formula y = mx + c.


Output

The $i$th element of the vector $\vec{a}$ has the value


$2i$ for $i = 1 \ldots m$.
Input

The ith element of the vector ~a has the value 2i for i = 1 . . . m.


Output

Previous Next First Last Back Index 94


Basic Mathematics

Displayed Mathematics
• Displayed maths is placed on a line of its own so that it stands out
better.
X
• Symbols such as are larger.
• Lots of different environments go into displayed math mode.
• Basic ones:
1. The displaymath environment displays a single unnumbered
line of maths.
\begin{displaymath} ... \end{displaymath}
Shorthand: \[ ... \]
2. The equation environment displays a single numbered line of
maths.
\begin{equation} ... \end{equation}

Previous Next First Last Back Index 95


Basic Mathematics

Displayed Mathematics
• Displayed maths is placed on a line of its own so that it stands out
better.
X
• Symbols such as are larger.
• Lots of different environments go into displayed math mode.
• Basic ones:
1. The displaymath environment displays a single unnumbered
line of maths.
\begin{displaymath} ... \end{displaymath}
Shorthand: \[ ... \]
2. The equation environment displays a single numbered line of
maths.
\begin{equation} ... \end{equation}

Previous Next First Last Back Index 95


Basic Mathematics

Displayed Mathematics
• Displayed maths is placed on a line of its own so that it stands out
better.
X
• Symbols such as are larger.
• Lots of different environments go into displayed math mode.
• Basic ones:
1. The displaymath environment displays a single unnumbered
line of maths.
\begin{displaymath} ... \end{displaymath}
Shorthand: \[ ... \]
2. The equation environment displays a single numbered line of
maths.
\begin{equation} ... \end{equation}

Previous Next First Last Back Index 95


Basic Mathematics

Displayed Mathematics
• Displayed maths is placed on a line of its own so that it stands out
better.
X
• Symbols such as are larger.
• Lots of different environments go into displayed math mode.
• Basic ones:
1. The displaymath environment displays a single unnumbered
line of maths.
\begin{displaymath} ... \end{displaymath}
Shorthand: \[ ... \]
2. The equation environment displays a single numbered line of
maths.
\begin{equation} ... \end{equation}

Previous Next First Last Back Index 95


Basic Mathematics

Displayed Mathematics
• Displayed maths is placed on a line of its own so that it stands out
better.
X
• Symbols such as are larger.
• Lots of different environments go into displayed math mode.
• Basic ones:
1. The displaymath environment displays a single unnumbered
line of maths.
\begin{displaymath} ... \end{displaymath}
Shorthand: \[ ... \]
2. The equation environment displays a single numbered line of
maths.
\begin{equation} ... \end{equation}

Previous Next First Last Back Index 95


Basic Mathematics

Displayed Mathematics
• Displayed maths is placed on a line of its own so that it stands out
better.
X
• Symbols such as are larger.
• Lots of different environments go into displayed math mode.
• Basic ones:
1. The displaymath environment displays a single unnumbered
line of maths.
\begin{displaymath} ... \end{displaymath}
Shorthand: \[ ... \]
2. The equation environment displays a single numbered line of
maths.
\begin{equation} ... \end{equation}

Previous Next First Last Back Index 95


Basic Mathematics

Examples

The function The function


\begin{displaymath}
f (x) = 4x + 1
f(x) = 4x + 1
\end{displaymath} is linear
is linear Output

Input

The function The function


\begin{equation}
f (x) = 4x + 1 (1)
f(x) = 4x + 1
\end{equation} is linear
is linear Output

Input

Previous Next First Last Back Index 96


Basic Mathematics

Subscripts and Superscripts


• Subscripts are created using the command: \sb{subscript}
– Shorthand: {subscript}
– Example: $a\sb{0}$ or $a {0}$ or $a 0$ all produce: a0

• Superscripts are created using the command \sp{superscript}


– Shorthand: ^{superscript}
– Example: $x\sp{2}$ or $x^{2}$ or $x^2$ all produce: x2

• Subscripts and superscripts can be combined.


Example: $a 0^2$ produces a20

Previous Next First Last Back Index 97


Basic Mathematics

Subscripts and Superscripts


• Subscripts are created using the command: \sb{subscript}
– Shorthand: {subscript}
– Example: $a\sb{0}$ or $a {0}$ or $a 0$ all produce: a0

• Superscripts are created using the command \sp{superscript}


– Shorthand: ^{superscript}
– Example: $x\sp{2}$ or $x^{2}$ or $x^2$ all produce: x2

• Subscripts and superscripts can be combined.


Example: $a 0^2$ produces a20

Previous Next First Last Back Index 97


Basic Mathematics

Subscripts and Superscripts


• Subscripts are created using the command: \sb{subscript}
– Shorthand: {subscript}
– Example: $a\sb{0}$ or $a {0}$ or $a 0$ all produce: a0

• Superscripts are created using the command \sp{superscript}


– Shorthand: ^{superscript}
– Example: $x\sp{2}$ or $x^{2}$ or $x^2$ all produce: x2

• Subscripts and superscripts can be combined.


Example: $a 0^2$ produces a20

Previous Next First Last Back Index 97


Basic Mathematics

Subscripts and Superscripts


• Subscripts are created using the command: \sb{subscript}
– Shorthand: {subscript}
– Example: $a\sb{0}$ or $a {0}$ or $a 0$ all produce: a0
• Superscripts are created using the command \sp{superscript}
– Shorthand: ^{superscript}
– Example: $x\sp{2}$ or $x^{2}$ or $x^2$ all produce: x2

• Subscripts and superscripts can be combined.


Example: $a 0^2$ produces a20

Previous Next First Last Back Index 97


Basic Mathematics

Subscripts and Superscripts


• Subscripts are created using the command: \sb{subscript}
– Shorthand: {subscript}
– Example: $a\sb{0}$ or $a {0}$ or $a 0$ all produce: a0
• Superscripts are created using the command \sp{superscript}
– Shorthand: ^{superscript}
– Example: $x\sp{2}$ or $x^{2}$ or $x^2$ all produce: x2

• Subscripts and superscripts can be combined.


Example: $a 0^2$ produces a20

Previous Next First Last Back Index 97


Basic Mathematics

Subscripts and Superscripts


• Subscripts are created using the command: \sb{subscript}
– Shorthand: {subscript}
– Example: $a\sb{0}$ or $a {0}$ or $a 0$ all produce: a0
• Superscripts are created using the command \sp{superscript}
– Shorthand: ^{superscript}
– Example: $x\sp{2}$ or $x^{2}$ or $x^2$ all produce: x2

• Subscripts and superscripts can be combined.


Example: $a 0^2$ produces a20

Previous Next First Last Back Index 97


Basic Mathematics

Subscripts and Superscripts


• Subscripts are created using the command: \sb{subscript}
– Shorthand: {subscript}
– Example: $a\sb{0}$ or $a {0}$ or $a 0$ all produce: a0
• Superscripts are created using the command \sp{superscript}
– Shorthand: ^{superscript}
– Example: $x\sp{2}$ or $x^{2}$ or $x^2$ all produce: x2
• Subscripts and superscripts can be combined.
Example: $a 0^2$ produces a20

Previous Next First Last Back Index 97


Basic Mathematics

Examples
A quadratic function:
\[f(x) = a_0 + a_1 x + a_2 x^2\]
Input

A quadratic function:

f (x) = a0 + a1 x + a2 x2
Output

Compare $a_b^c$ with $a_{b^c}$.


Input

Compare acb with abc .


Output

Previous Next First Last Back Index 98


Basic Mathematics

Fractions and Square Roots


• Fractions are produced using:
\frac{numerator}{denominator}
• Roots are produced using:
\sqrt[n]{maths}
• Example:
\begin{displaymath}
f(x_1, x_2) = x_1^2 √
2 x2
3
a
+ e^{x_2} + f (x1 , x2 ) = x1 +e + √
1 + x2
\frac{\sqrt[3]{a}}%
Output
{1+\sqrt{x_2}}
\end{displaymath}
Input

Previous Next First Last Back Index 99


Basic Mathematics

Function Names
\arccos \arcsin \arctan \arg \cos \cosh
\cot \coth \csc \deg \det \dim
\exp \gcd \hom \inf \ker \lg
\lim \liminf \limsup \ln \log \max
\min \Pr \sec \sin \sinh \sup
\tan \tanh
Wrong: $log x$ logx
Correct: $\log x$ log x
Commands in blue indicate commands that can take a limit which can
be specified using the command.

Previous Next First Last Back Index 100


Basic Mathematics

Examples

\begin{displaymath}
\exp(ix) = \sin(x) + i\cos(x)
exp(ix) = sin(x)+i cos(x)
\end{displaymath}
Output
Input

\begin{displaymath}
\lim_{x \rightarrow 0} f(x)
lim f (x)
\end{displaymath} x→0

Input Output

Previous Next First Last Back Index 101


Basic Mathematics

Lower Case Greek Letters


\alpha α \beta β \gamma γ
\delta δ \epsilon  \varepsilon ε
\zeta ζ \eta η \theta θ
\vartheta ϑ \iota ι \kappa κ
\lambda λ \mu µ \nu ν
\xi ξ \pi π \varpi $
\rho ρ \varrho % \sigma σ
\varsigma ς \tau τ \upsilon υ
\phi φ \varphi ϕ \chi χ
\psi ψ \omega ω

Previous Next First Last Back Index 102


Basic Mathematics

Upper Case Greek Letters


\Gamma Γ \Delta ∆ \Theta Θ
\Lambda Λ \Xi Ξ \Pi Π
\Sigma Σ \Upsilon Υ \Phi Φ
\Psi Ψ \Omega Ω
Example:

\begin{displaymath}
e^{i\theta} = \cos\theta
eiθ = cos θ + i sin θ
+ i\sin\theta
Output
\end{displaymath}
Input

Previous Next First Last Back Index 103


Basic Mathematics

Symbols with Two Sizes


The following symbols have different sizes depending on whether they
are in displayed maths or in-line maths:

T \ S [ J K
\bigcap \bigcup \bigodot
N O L M F G
\bigotimes \bigoplus \bigsqcup
U ] W _ V ^
\biguplus \bigvee \bigwedge
a Z I
` R H
\coprod \int \oint
Q Y P X
\prod \sum

Previous Next First Last Back Index 104


Basic Mathematics

Examples

\begin{displaymath}
f(x) = \sum_{i=0}^{n} n
X
\alpha_i x^i f (x) = αi xi
i=0
\end{displaymath}
Output
Input

Pn i
In text : In text : f (x) = i=0 αi x
\begin{math} Output
f(x) = \sum_{i=0}^n
\alpha_i x^i
\end{math}
Input

Previous Next First Last Back Index 105


Basic Mathematics

Exercise 10 : Basic Mathematics (Page 11)

e Produce the output shown in Figure 8 on page 11 of the handouts.

! – Produce the output shown in Figure 9 on page 11 of the


handouts.
– Remember to typeset the f (x), f and x in the text in maths
mode.
Try making the equation a numbered equation.

Previous Next First Last Back Index 106


Arrays and Delimiters

Delimiters
• Placing brackets around a tall object in maths mode, such as
fractions, does not look right if you use normal sized brackets. For
example:

\begin{displaymath}
1
(\frac{1}{1+x}) ( )
1+x
\end{displaymath}
Output
Input

• Under such circumstances, it is better to use the commands:


\leftdelimiter and \rightdelimiter
• Note that you must always have matching \left and \right
commands, although the delimiters used may be different.

Previous Next First Last Back Index 107


Arrays and Delimiters

Delimiters
• Placing brackets around a tall object in maths mode, such as
fractions, does not look right if you use normal sized brackets. For
example:

\begin{displaymath}
1
(\frac{1}{1+x}) ( )
1+x
\end{displaymath}
Output
Input

• Under such circumstances, it is better to use the commands:


\leftdelimiter and \rightdelimiter
• Note that you must always have matching \left and \right
commands, although the delimiters used may be different.

Previous Next First Last Back Index 107


Arrays and Delimiters

Delimiters
• Placing brackets around a tall object in maths mode, such as
fractions, does not look right if you use normal sized brackets. For
example:

\begin{displaymath}
1
(\frac{1}{1+x}) ( )
1+x
\end{displaymath}
Output
Input

• Under such circumstances, it is better to use the commands:


\leftdelimiter and \rightdelimiter
• Note that you must always have matching \left and \right
commands, although the delimiters used may be different.

Previous Next First Last Back Index 107


Arrays and Delimiters

Delimiters

( ( ) ) [ [ ] ]
\{ { \} } | | \| k
/ / \backslash \ \langle h \rangle i
\lfloor b \rfloor c \lceil d \rceil e
\uparrow ↑ \downarrow ↓ \Uparrow ⇑ \Downarrow ⇓
\updownarrow l \Updownarrow m

If you want one of the delimiters to be invisible, use a . (full stop) as


the delimiter.

Previous Next First Last Back Index 108


Arrays and Delimiters

Examples

\begin{displaymath}  
\left( 1
\frac{1}{1+x} 1+x
\right) Output

\end{displaymath}
Input

\begin{displaymath}
1
\left|
1 + x
\frac{1}{1+x}
\right| Output

\end{displaymath}
Input

Previous Next First Last Back Index 109


Arrays and Delimiters

Arrays
• Arrays can be created using the array environment.
• Similar to the tabular environment, but must be in maths mode.
• Elements are arranged in rows and columns to form mathematical
structures such as vectors and matrices.

Previous Next First Last Back Index 110


Arrays and Delimiters

\begin{displaymath}
\begin{array}{cc}
0 1
0 & 1 \\
2 & 3 2 3
\end{array} Output
\end{displaymath}
Input

\begin{displaymath}
\left (  
0 1
\begin{array}{cc}  
0 & 1 \\ 2 3
2 & 3
Output
\end{array}
\right )
\end{displaymath}
Input

Previous Next First Last Back Index 111


Arrays and Delimiters

Delimiters Don’t Need to Match

\begin{displaymath}
\left[  
0 1 
\begin{array}{cc} 
0 & 1 \\ 2 3 
2 & 3 Output
\end{array}
\right\}
\end{displaymath}
Input

Previous Next First Last Back Index 112


Arrays and Delimiters

Example Using Invisible Delimiter

\begin{displaymath}
f(x) = 
 0 x≤0
\left \{ f (x) =
 1 x>0
\begin{array}{cl}
0 & x \leq 0 \\ Output
1 & x > 0
\end{array}
\right .
\end{displaymath}
Input

Previous Next First Last Back Index 113


Arrays and Delimiters

Exercise 11 : Arrays (Page 12)

e Create the output shown in Figure 10 on page 12 of the handouts.

! – Create the output shown in Figure 11 on page 12 of the


handouts.
– You will need the following commands:

\cdots ···
..
\vdots .
..
\ddots .
\neq 6=

Previous Next First Last Back Index 114


Multiline Formulae

Multiline Formulæ
• The displaymath and equation environments only allow one line of
mathematics.
• The eqnarray environment allows multiple equations to be aligned.
• The eqnarray environment has three columns: the first is right
aligned, the second is centrally aligned and the third is left aligned.
• Each line is numbered in the eqnarray environment.
• The eqnarray* environment is unnumbered.
• To suppress line numbering in the eqnarray, use the command
\nonumber on the appropriate line.

Previous Next First Last Back Index 115


Multiline Formulae

Multiline Formulæ
• The displaymath and equation environments only allow one line of
mathematics.
• The eqnarray environment allows multiple equations to be aligned.
• The eqnarray environment has three columns: the first is right
aligned, the second is centrally aligned and the third is left aligned.
• Each line is numbered in the eqnarray environment.
• The eqnarray* environment is unnumbered.
• To suppress line numbering in the eqnarray, use the command
\nonumber on the appropriate line.

Previous Next First Last Back Index 115


Multiline Formulae

Multiline Formulæ
• The displaymath and equation environments only allow one line of
mathematics.
• The eqnarray environment allows multiple equations to be aligned.
• The eqnarray environment has three columns: the first is right
aligned, the second is centrally aligned and the third is left aligned.
• Each line is numbered in the eqnarray environment.
• The eqnarray* environment is unnumbered.
• To suppress line numbering in the eqnarray, use the command
\nonumber on the appropriate line.

Previous Next First Last Back Index 115


Multiline Formulae

Multiline Formulæ
• The displaymath and equation environments only allow one line of
mathematics.
• The eqnarray environment allows multiple equations to be aligned.
• The eqnarray environment has three columns: the first is right
aligned, the second is centrally aligned and the third is left aligned.
• Each line is numbered in the eqnarray environment.
• The eqnarray* environment is unnumbered.
• To suppress line numbering in the eqnarray, use the command
\nonumber on the appropriate line.

Previous Next First Last Back Index 115


Multiline Formulae

Multiline Formulæ
• The displaymath and equation environments only allow one line of
mathematics.
• The eqnarray environment allows multiple equations to be aligned.
• The eqnarray environment has three columns: the first is right
aligned, the second is centrally aligned and the third is left aligned.
• Each line is numbered in the eqnarray environment.
• The eqnarray* environment is unnumbered.
• To suppress line numbering in the eqnarray, use the command
\nonumber on the appropriate line.

Previous Next First Last Back Index 115


Multiline Formulae

Multiline Formulæ
• The displaymath and equation environments only allow one line of
mathematics.
• The eqnarray environment allows multiple equations to be aligned.
• The eqnarray environment has three columns: the first is right
aligned, the second is centrally aligned and the third is left aligned.
• Each line is numbered in the eqnarray environment.
• The eqnarray* environment is unnumbered.
• To suppress line numbering in the eqnarray, use the command
\nonumber on the appropriate line.

Previous Next First Last Back Index 115


Multiline Formulae

\begin{eqnarray}
\ln(f(x)) & = & x^2 + \frac{1}{x+3}\\
f(x) & = & \exp \left ( x^2
+ \frac{1}{x+3} \right )
\end{eqnarray}
Input

1
ln(f (x)) = x2 + (2)
x+3
 
1
f (x) = exp x2 + (3)
x+3
Output

Previous Next First Last Back Index 116


Multiline Formulae

\begin{eqnarray}
\ln(f(x)) & = & x^2 + \frac{1}{x+3} \nonumber\\
f(x) & = & \exp \left ( x^2
+ \frac{1}{x+3} \right )
\end{eqnarray}
Input

1
ln(f (x)) = x2 +
x+3
 
1
f (x) = exp x2 + (4)
x+3
Output

Previous Next First Last Back Index 117


Multiline Formulae

Exercise 12 : Multiline Formulæ (Page 13)

e Produce the output shown in Figure 12 on page 13 of the


handouts.
! Produce the output shown in Figure 13 on page 13 of the
handouts.
– You will need the following commands:
\approx ≈ \pm ±
\partial ∂ \leq ≤
\varepsilon ε

Previous Next First Last Back Index 118


Cross-Referencing

Cross-Referencing
• Assign a textual label using \label{string}
Example:
\section{Introduction}
\label{sec:intro}
Example:
\begin{equation}
E = mc^2
\label{eqn:einstein}
\end{equation}

• Refer to the object using \ref{string}.


• Refer to the page that the object is on using \pageref{string}.

Previous Next First Last Back Index 119


Cross-Referencing

Cross-Referencing
• Assign a textual label using \label{string}
Example:
\section{Introduction}
\label{sec:intro}
Example:
\begin{equation}
E = mc^2
\label{eqn:einstein}
\end{equation}

• Refer to the object using \ref{string}.


• Refer to the page that the object is on using \pageref{string}.

Previous Next First Last Back Index 119


Cross-Referencing

Cross-Referencing
• Assign a textual label using \label{string}
Example:
\section{Introduction}
\label{sec:intro}
Example:
\begin{equation}
E = mc^2
\label{eqn:einstein}
\end{equation}

• Refer to the object using \ref{string}.


• Refer to the page that the object is on using \pageref{string}.

Previous Next First Last Back Index 119


Cross-Referencing

Cross-Referencing
• Assign a textual label using \label{string}
Example:
\section{Introduction}
\label{sec:intro}
Example:
\begin{equation}
E = mc^2
\label{eqn:einstein}
\end{equation}
• Refer to the object using \ref{string}.
• Refer to the page that the object is on using \pageref{string}.

Previous Next First Last Back Index 119


Cross-Referencing

Cross-Referencing
• Assign a textual label using \label{string}
Example:
\section{Introduction}
\label{sec:intro}
Example:
\begin{equation}
E = mc^2
\label{eqn:einstein}
\end{equation}
• Refer to the object using \ref{string}.
• Refer to the page that the object is on using \pageref{string}.

Previous Next First Last Back Index 119


Cross-Referencing

Examples

\section{Introduction} 1 Introduction
\label{sec:intro} . . . See Section 1 for
\ldots a brief introduction.
See Section~\ref{sec:intro} Output

for a brief introduction.


Input

See subsection~\ref{sec:ex} See subsection 2.3


for examples. for examples.
2.3 Examples
\subsection{Examples}
Output
\label{sec:ex}
Input

Previous Next First Last Back Index 120


Cross-Referencing

Examples
See Appendix~\ref{apd:tables} See Appendix A for
for tables\ldots tables. . .
\appendix
\section{Tables}\label{apd:tables} A Tables
Output
Input

\begin{equation}
\label{eqn:Emc} E = mc2 (5)
E = mc^2
. . . See Equation 5 on
\end{equation}
page 253.
\ldots
Output
See Equation~\ref{eqn:Emc}
on page~\pageref{eqn:Emc}.
Input

Previous Next First Last Back Index 121


Cross-Referencing

Exercise 13 (Page 14)


• Reproduce the document shown in Figure 14 on page 14 of the
handouts using \label and \ref. You will need to remember
how to:
– create sections
– emphasize text
– create numbered equations
– have in-line mathematics
! Also try inserting an extra section between the introductory
section and the section on Bayes’ Theorem, and try inserting
another equation, to see how LATEX automatically updates the
cross-references.
• Try adding a title and table of contents

Previous Next First Last Back Index 122


Packages

Packages
• Packages are files with the extension .sty
• Packages can redefine existing commands, or provide new
commands.
• To include a package in your document:

\usepackage[options]{package-name}

• This command can only be used in the preamble.

Previous Next First Last Back Index 123


Packages

Packages
• Packages are files with the extension .sty
• Packages can redefine existing commands, or provide new
commands.
• To include a package in your document:

\usepackage[options]{package-name}

• This command can only be used in the preamble.

Previous Next First Last Back Index 123


Packages

Packages
• Packages are files with the extension .sty
• Packages can redefine existing commands, or provide new
commands.
• To include a package in your document:

\usepackage[options]{package-name}

• This command can only be used in the preamble.

Previous Next First Last Back Index 123


Packages

Packages
• Packages are files with the extension .sty
• Packages can redefine existing commands, or provide new
commands.
• To include a package in your document:

\usepackage[options]{package-name}

• This command can only be used in the preamble.

Previous Next First Last Back Index 123


Packages

Examples
• The babel package redefines names such as “Chapter” to another
language.
• ukdate redefines \today, as does datetime.
• xr defines a new command

\externaldocument{filename}

allowing you to refer to labels defined in another document.


• varioref defines the command \vref which works much like \ref
but also adds the page number, e.g. Fig~\vref{fig:ex} can
produce: “Fig 2 on page 42”, or “Fig 2 on the following page” or
simply “Fig 2”.

Previous Next First Last Back Index 124


Packages

Examples
• The babel package redefines names such as “Chapter” to another
language.
• ukdate redefines \today, as does datetime.
• xr defines a new command

\externaldocument{filename}

allowing you to refer to labels defined in another document.


• varioref defines the command \vref which works much like \ref
but also adds the page number, e.g. Fig~\vref{fig:ex} can
produce: “Fig 2 on page 42”, or “Fig 2 on the following page” or
simply “Fig 2”.

Previous Next First Last Back Index 124


Packages

Examples
• The babel package redefines names such as “Chapter” to another
language.
• ukdate redefines \today, as does datetime.
• xr defines a new command

\externaldocument{filename}

allowing you to refer to labels defined in another document.


• varioref defines the command \vref which works much like \ref
but also adds the page number, e.g. Fig~\vref{fig:ex} can
produce: “Fig 2 on page 42”, or “Fig 2 on the following page” or
simply “Fig 2”.

Previous Next First Last Back Index 124


Packages

Examples
• The babel package redefines names such as “Chapter” to another
language.
• ukdate redefines \today, as does datetime.
• xr defines a new command

\externaldocument{filename}

allowing you to refer to labels defined in another document.


• varioref defines the command \vref which works much like \ref
but also adds the page number, e.g. Fig~\vref{fig:ex} can
produce: “Fig 2 on page 42”, or “Fig 2 on the following page” or
simply “Fig 2”.

Previous Next First Last Back Index 124


Packages

Examples cont.
• hyperref defines commands that allows you to have active links in your
document if used in combination with PDFLATEX. E.g.

\href{http://www.tex.ac.uk/}{% the TEX Archive


the \TeX\ Archive} Output

Input

• ifpdf defines the conditional \ifpdf which can be used to determine


whether LATEX or PDFLATEX is being used. E.g.

\ifpdf A PDFLATEX document


A PDF\LaTeX\ document Output
\else
A \LaTeX\ document
\fi
Input

Previous Next First Last Back Index 125


Packages

Examples cont.
• hyperref defines commands that allows you to have active links in your
document if used in combination with PDFLATEX. E.g.

\href{http://www.tex.ac.uk/}{% the TEX Archive


the \TeX\ Archive} Output

Input

• ifpdf defines the conditional \ifpdf which can be used to determine


whether LATEX or PDFLATEX is being used. E.g.

\ifpdf A PDFLATEX document


A PDF\LaTeX\ document Output
\else
A \LaTeX\ document
\fi
Input

Previous Next First Last Back Index 125


Packages

Example

\documentclass[a4paper]{article} October 4, 2004


\begin{document} Output

\today
\end{document}
Input

\documentclass[a4paper]{article} Mon 4th Oct, 2004


\usepackage[short]{datetime} Output

\begin{document}
\today
\end{document}
Input

Previous Next First Last Back Index 126


Packages

Example

\documentclass[a4paper]{article} October 4, 2004


\begin{document} Output

\today
\end{document}
Input

\documentclass[a4paper]{article} Mon 4th Oct, 2004


\usepackage[short]{datetime} Output

\begin{document}
\today
\end{document}
Input

Previous Next First Last Back Index 126


Packages

Self-Extracting Documentation
• Packages not currently on your TEX installation can be
downloaded from the TEX archive.
• Increasingly packages are bundled up with their documentation in
a file with the extension .dtx
• The package should also come with a driver or installation script
(.ins)
• The documentation can usually be obtained by LATEXing the .dtx
file. For example:
Ilatex datetime.dtx
• The package can be extracted by LATEXing the installation script.
For example:
Ilatex datetime.ins

Previous Next First Last Back Index 127


Packages

Self-Extracting Documentation
• Packages not currently on your TEX installation can be
downloaded from the TEX archive.
• Increasingly packages are bundled up with their documentation in
a file with the extension .dtx
• The package should also come with a driver or installation script
(.ins)
• The documentation can usually be obtained by LATEXing the .dtx
file. For example:
Ilatex datetime.dtx
• The package can be extracted by LATEXing the installation script.
For example:
Ilatex datetime.ins

Previous Next First Last Back Index 127


Packages

Self-Extracting Documentation
• Packages not currently on your TEX installation can be
downloaded from the TEX archive.
• Increasingly packages are bundled up with their documentation in
a file with the extension .dtx
• The package should also come with a driver or installation script
(.ins)
• The documentation can usually be obtained by LATEXing the .dtx
file. For example:
Ilatex datetime.dtx
• The package can be extracted by LATEXing the installation script.
For example:
Ilatex datetime.ins

Previous Next First Last Back Index 127


Packages

Self-Extracting Documentation
• Packages not currently on your TEX installation can be
downloaded from the TEX archive.
• Increasingly packages are bundled up with their documentation in
a file with the extension .dtx
• The package should also come with a driver or installation script
(.ins)
• The documentation can usually be obtained by LATEXing the .dtx
file. For example:
Ilatex datetime.dtx
• The package can be extracted by LATEXing the installation script.
For example:
Ilatex datetime.ins

Previous Next First Last Back Index 127


Packages

Self-Extracting Documentation
• Packages not currently on your TEX installation can be
downloaded from the TEX archive.
• Increasingly packages are bundled up with their documentation in
a file with the extension .dtx
• The package should also come with a driver or installation script
(.ins)
• The documentation can usually be obtained by LATEXing the .dtx
file. For example:
Ilatex datetime.dtx
• The package can be extracted by LATEXing the installation script.
For example:
Ilatex datetime.ins

Previous Next First Last Back Index 127


Packages

Exercise 14 (Page 15)


• Go back to the file sectioning.tex you edited in Exercise 4
– Use the babel package. There are many language options
available just list the contents of the babel directory:
Ils /sw4/teTeX/texmf/tex/generic/babel/
The options have the same name as the .sty files.
• Or go back to the document you created in Exercise 13.
– Use the hyperref package to make the cross-references active,
and use PDFLATEX instead of LATEX to produce a PDF file.
! If you want to try extracting documentation and code from a
.dtx file, you can copy the datetime package over:
Icp /home/sys/gcc/insecure/datetime.* .

Previous Next First Last Back Index 128


Citations

Citations
• thebibliography environment
\begin{thebibliography}{2}

\bibitem{clarke83} G. M. Clarke and D. Cooke.


\emph{A basic course in statistics}.
Chapman and Hall, 2nd edition, 1983.

\bibitem{goossens93} M. Goossens and F. Mittelbach.


\emph{The \LaTeX\ companion}.
Addison-Wesley, 1993.

\end{thebibliography}
• Use \cite[text]{key-list} to cite a reference in the bibliography

Previous Next First Last Back Index 129


Citations

Example

See Goossens \emph{et See Goossens et al. [1]


al.}~\cite{goossens93} ...
\ldots
References
\begin{thebibliography}{1} [1] M. Goossens and
\bibitem{goossens93} F. Mittelbach. The
M. Goossens and LATEX companion.
F. Mittelbach. Addison-Wesley,
\emph{The \LaTeX\ 1993.
companion}. Output

Addison-Wesley, 1993.
\end{thebibliography}
Input

Previous Next First Last Back Index 130


Citations

BibTEX

Use BibTEX to automatically generate thebibliography environment.


• Large database (.bib) containing many references.
• BibTEX will only include those that are cited in the document.
• Entries sorted.
• Entries consistently formatted.

Previous Next First Last Back Index 131


Citations

Bibliography Database (.bib)


@entry type{keyword,
field = "text",
..
.
field = "text"
}
@book{kreyszig88,
author = "Kreyszig, Erwin",
title = "Advanced Engineering Mathematics",
publisher = "Wiley",
edition = "6th",
year = 1988
}

Previous Next First Last Back Index 132


Citations

Author Format
Authors should be entered in one of the following formats:

• forenames von surname

• von surname, forenames

• von surname, jr, forenames

Examples:
Entry Output (“abbrv” style)
"Alex Thomas von Neumann" A.T. von Neumann
"John Chris {Smith Jones}" J.C. Smith Jones
"van de Klee, Mary-Jane" M.-J. van de Klee
"Smith, Jr, Fred John" F.J. Smith, Jr
"Maria {\uppercase{d}e La} Cruz" M. De La Cruz
Compare last example with:
"Maria De La Cruz" M. D. L. Cruz (Incorrect!)

Previous Next First Last Back Index 133


Citations

Author Format
Authors should be entered in one of the following formats:

• forenames von surname

• von surname, forenames

• von surname, jr, forenames

Examples:
Entry Output (“abbrv” style)
"Alex Thomas von Neumann" A.T. von Neumann
"John Chris {Smith Jones}" J.C. Smith Jones
"van de Klee, Mary-Jane" M.-J. van de Klee
"Smith, Jr, Fred John" F.J. Smith, Jr
"Maria {\uppercase{d}e La} Cruz" M. De La Cruz
Compare last example with:
"Maria De La Cruz" M. D. L. Cruz (Incorrect!)

Previous Next First Last Back Index 133


Citations

Author Format
Authors should be entered in one of the following formats:

• forenames von surname

• von surname, forenames

• von surname, jr, forenames

Examples:
Entry Output (“abbrv” style)
"Alex Thomas von Neumann" A.T. von Neumann
"John Chris {Smith Jones}" J.C. Smith Jones
"van de Klee, Mary-Jane" M.-J. van de Klee
"Smith, Jr, Fred John" F.J. Smith, Jr
"Maria {\uppercase{d}e La} Cruz" M. De La Cruz
Compare last example with:
"Maria De La Cruz" M. D. L. Cruz (Incorrect!)

Previous Next First Last Back Index 133


Citations

Author Format
Authors should be entered in one of the following formats:

• forenames von surname

• von surname, forenames

• von surname, jr, forenames

Examples:
Entry Output (“abbrv” style)
"Alex Thomas von Neumann" A.T. von Neumann
"John Chris {Smith Jones}" J.C. Smith Jones
"van de Klee, Mary-Jane" M.-J. van de Klee
"Smith, Jr, Fred John" F.J. Smith, Jr
"Maria {\uppercase{d}e La} Cruz" M. De La Cruz
Compare last example with:
"Maria De La Cruz" M. D. L. Cruz (Incorrect!)

Previous Next First Last Back Index 133


Citations

Author Format
Authors should be entered in one of the following formats:

• forenames von surname

• von surname, forenames

• von surname, jr, forenames

Examples:
Entry Output (“abbrv” style)
"Alex Thomas von Neumann" A.T. von Neumann
"John Chris {Smith Jones}" J.C. Smith Jones
"van de Klee, Mary-Jane" M.-J. van de Klee
"Smith, Jr, Fred John" F.J. Smith, Jr
"Maria {\uppercase{d}e La} Cruz" M. De La Cruz
Compare last example with:
"Maria De La Cruz" M. D. L. Cruz (Incorrect!)

Previous Next First Last Back Index 133


Citations

Author Format
Authors should be entered in one of the following formats:

• forenames von surname

• von surname, forenames

• von surname, jr, forenames

Examples:
Entry Output (“abbrv” style)
"Alex Thomas von Neumann" A.T. von Neumann
"John Chris {Smith Jones}" J.C. Smith Jones
"van de Klee, Mary-Jane" M.-J. van de Klee
"Smith, Jr, Fred John" F.J. Smith, Jr
"Maria {\uppercase{d}e La} Cruz" M. De La Cruz
Compare last example with:
"Maria De La Cruz" M. D. L. Cruz (Incorrect!)

Previous Next First Last Back Index 133


Citations

Author Format
Authors should be entered in one of the following formats:

• forenames von surname

• von surname, forenames

• von surname, jr, forenames

Examples:
Entry Output (“abbrv” style)
"Alex Thomas von Neumann" A.T. von Neumann
"John Chris {Smith Jones}" J.C. Smith Jones
"van de Klee, Mary-Jane" M.-J. van de Klee
"Smith, Jr, Fred John" F.J. Smith, Jr
"Maria {\uppercase{d}e La} Cruz" M. De La Cruz
Compare last example with:
"Maria De La Cruz" M. D. L. Cruz (Incorrect!)

Previous Next First Last Back Index 133


Citations

Multiple Authors
Multiple authors should be separated by the keyword and

@book{goossens97,
author = "Goossens, Michel and Rahtz, Sebastian and
Mittelbach, Frank",
title = "The \LaTeX\ graphics companion: illustrating
documents with \TeX\ and {PostScript}",
publisher = "Addison Wesley Longman, Inc",
year = 1997
}

Previous Next First Last Back Index 134


Citations

Month Entries
• Bibliography styles always have three-letter abbreviations for
months: jan, feb, mar, . . .
• Always use these abbreviations for consistency.
@inproceedings{talbot97,
author = "Talbot, Nicola and Cawley, Gavin",
title = "A fast index assignment algorithm for
robust vector quantisation of image data",
booktitle = "Proceedings of the I.E.E.E. International
Conference on Image Processing",
address = "Santa Barbara, California, USA",
month = oct,
year = 1997
}

Previous Next First Last Back Index 135


Citations

Example (incollection)
@incollection{wainwright,
author = "Wainwright, Robert B.",
title = "Hazards from {Northern} Native Foods",
booktitle = "\emph{Clostridium botulinum}: Ecology and
Control in Foods",
chapter = 12,
pages = "305--322",
editor = "Hauschild, Andreas H. W. and Dodds,
Karen L.",
publisher = "Marcel Dekker, Inc",
year = 1993
}

Previous Next First Last Back Index 136


Citations

Declaring Databases and Bibliography Style


In your LATEX source code (.tex):
• Declare the bibliography style:
\bibliographystyle{style-name}
Common Styles:
plain Entries sorted alphabetically with numeric labels.
unsrt Entries printed in order of citation with numeric labels.
alpha Entries sorted alphabetically with labels formed from au-
thor’s name and year of publication.
abbrv Entries sorted alphabetically with first name, month and
journal names abbreviated.
• Declare the bibliography database:
\bibliography{name}

Previous Next First Last Back Index 137


Citations

Declaring Databases and Bibliography Style


In your LATEX source code (.tex):
• Declare the bibliography style:
\bibliographystyle{style-name}
Common Styles:
plain Entries sorted alphabetically with numeric labels.
unsrt Entries printed in order of citation with numeric labels.
alpha Entries sorted alphabetically with labels formed from au-
thor’s name and year of publication.
abbrv Entries sorted alphabetically with first name, month and
journal names abbreviated.
• Declare the bibliography database:
\bibliography{name}

Previous Next First Last Back Index 137


Citations

Declaring Databases and Bibliography Style


In your LATEX source code (.tex):
• Declare the bibliography style:
\bibliographystyle{style-name}
Common Styles:
plain Entries sorted alphabetically with numeric labels.
unsrt Entries printed in order of citation with numeric labels.
alpha Entries sorted alphabetically with labels formed from au-
thor’s name and year of publication.
abbrv Entries sorted alphabetically with first name, month and
journal names abbreviated.
• Declare the bibliography database:
\bibliography{name}

Previous Next First Last Back Index 137


Citations

Example
In filename.tex (where database.bib contains the bibliography
database):
This is the document \ldots

\bibliographystyle{plain}
\bibliography{database}
Input

At the command prompt:


Ilatex filename
Ibibtex filename
Ilatex filename
Ilatex filename

Previous Next First Last Back Index 138


Citations

LATEX/BibTEX Process

LATEX
.tex - .aux .bib .bst

BibTEX

?
LATEX
.bbl

Previous Next First Last Back Index 139


Citations

\bibliographystyle{plain}
[1] Gavin C. Cawley and Nicola L. C. Talbot. A fast index assignment
algorithm for vector quantization over noisy transmission channels.
I.E.E. Electronic Letters, 32(15):1343–1344, July 1996.

[2] Erwin Kreyszig. Advanced Engineering Mathematics. Wiley, 6th


edition, 1988.

[3] Nicola L. C. Talbot and Gavin C. Cawley. A quadratic index assignment


algorithm for vector quantisation over noisy transmission channels. In
Proceedings of the Institute of Acoustics Autumn Conference on
Speech and Hearing, volume 18, pages 195–199, November 1996.

[4] Nicola L. C. Talbot and Gavin C. Cawley. A fast index assignment


algorithm for robust vector quantisation of image data. In Proceedings
of the I.E.E.E. International Conference on Image Processing, Santa
Barbara, California, USA, October 1997.

Previous Next First Last Back Index 140


Citations

\bibliographystyle{alpha}
[CT96 ] Gavin C. Cawley and Nicola L. C. Talbot. A fast index assignment
algorithm for vector quantization over noisy transmission channels.
I.E.E. Electronic Letters, 32(15):1343–1344, July 1996.
[Kre88] Erwin Kreyszig. Advanced Engineering Mathematics. Wiley, 6th
edition, 1988.
[TC96 ] Nicola L. C. Talbot and Gavin C. Cawley. A quadratic index
assignment algorithm for vector quantisation over noisy
transmission channels. In Proceedings of the Institute of Acoustics
Autumn Conference on Speech and Hearing, volume 18, pages
195–199, November 1996.
[TC97 ] Nicola L. C. Talbot and Gavin C. Cawley. A fast index assignment
algorithm for robust vector quantisation of image data. In
Proceedings of the I.E.E.E. International Conference on Image
Processing, Santa Barbara, California, USA, October 1997.

Previous Next First Last Back Index 141


Citations

\bibliographystyle{ieeetr}
[1] E. Kreyszig, Advanced Engineering Mathematics. Wiley, 6th ed., 1988.

[2] N. L. C. Talbot and G. C. Cawley, “A quadratic index assignment


algorithm for vector quantisation over noisy transmission channels,” in
Proceedings of the Institute of Acoustics Autumn Conference on
Speech and Hearing, vol. 18, pp. 195–199, Nov. 1996.

[3] G. C. Cawley and N. L. C. Talbot, “A fast index assignment algorithm


for vector quantization over noisy transmission channels,” I.E.E.
Electronic Letters, vol. 32, pp. 1343–1344, July 1996.

[4] N. L. C. Talbot and G. C. Cawley, “A fast index assignment algorithm


for robust vector quantisation of image data,” in Proceedings of the
I.E.E.E. International Conference on Image Processing, (Santa Barbara,
California, USA), Oct. 1997.

Previous Next First Last Back Index 142


Citations

\bibliographystyle{acm}
[1] Cawley, G. C., and Talbot, N. L. C. A fast index assignment
algorithm for vector quantization over noisy transmission channels.
I.E.E. Electronic Letters 32, 15 (July 1996), 1343–1344.

[2] Kreyszig, E. Advanced Engineering Mathematics, 6th ed. Wiley,


1988.

[3] Talbot, N. L. C., and Cawley, G. C. A quadratic index


assignment algorithm for vector quantisation over noisy transmission
channels. In Proceedings of the Institute of Acoustics Autumn
Conference on Speech and Hearing (Nov. 1996), vol. 18, pp. 195–199.

[4] Talbot, N. L. C., and Cawley, G. C. A fast index assignment


algorithm for robust vector quantisation of image data. In Proceedings
of the I.E.E.E. International Conference on Image Processing (Santa
Barbara, California, USA, Oct. 1997).

Previous Next First Last Back Index 143


Citations

\bibliographystyle{apalike}
This style file requires the apalike package.
Cawley, G. C. and Talbot, N. L. C. (1996) A fast index assignment
algorithm for vector quantization over noisy transmission channels.
I.E.E. Electronic Letters, 32(15):1343–1344.

Kreyszig, E. (1988) Advanced Engineering Mathematics. Wiley, 6th edition.

Talbot, N. L. C. and Cawley, G. C. (1996). A quadratic index assignment


algorithm for vector quantisation over noisy transmission channels. In
Proceedings of the Institute of Acoustics Autumn Conference on
Speech and Hearing, volume 18, pages 195–199.

Talbot, N. L. C. and Cawley, G. C. (1997). A fast index assignment


algorithm for robust vector quantisation of image data. In Proceedings
of the I.E.E.E. International Conference on Image Processing, Santa
Barbara, California, USA.

Previous Next First Last Back Index 144


Citations

Customising a BiBTeX Style


• If you want a BibTEX style file (.bst) that is slightly different
from one that already exists, you can try copying the existing file
to a new name and make minor modifications.
• Drawback: BibTEX is a low level language and is not for the
faint-hearted!
• Consider using makebst instead. The file makebst.tex is an
interactive TEX/LATEX script that can be used to create a
customised .bst file. Simply type:
Ilatex makebst
at the command prompt, and follow the instructions.

Previous Next First Last Back Index 145


Citations

Customising a BiBTeX Style


• If you want a BibTEX style file (.bst) that is slightly different
from one that already exists, you can try copying the existing file
to a new name and make minor modifications.
• Drawback: BibTEX is a low level language and is not for the
faint-hearted!
• Consider using makebst instead. The file makebst.tex is an
interactive TEX/LATEX script that can be used to create a
customised .bst file. Simply type:
Ilatex makebst
at the command prompt, and follow the instructions.

Previous Next First Last Back Index 145


Citations

Customising a BiBTeX Style


• If you want a BibTEX style file (.bst) that is slightly different
from one that already exists, you can try copying the existing file
to a new name and make minor modifications.
• Drawback: BibTEX is a low level language and is not for the
faint-hearted!
• Consider using makebst instead. The file makebst.tex is an
interactive TEX/LATEX script that can be used to create a
customised .bst file. Simply type:
Ilatex makebst
at the command prompt, and follow the instructions.

Previous Next First Last Back Index 145


Citations

Exercise 15 (Page 16)


• Produce a BibTEX database that contains the references shown in
Figure 15 on page 17 of the handouts, and create the document
shown in that figure.
• Try changing the bibliography style so that the entries are printed
in order of citation. (You need the unsrt style for this). Try other
styles, such as alpha, abbrv and acm, to see the differences
between styles.
• If you have a number of citations, such as [3,2,4], you might
prefer to have it printed as a range, such as [2–4], instead. There
is a package called citesort that redefines the \cite command
that will do this. Try using this package with the unsrt
bibliography style.
! If you are feeling adventurous, try creating your own customised
bibliography style using makebst.

Previous Next First Last Back Index 146


Lengths

Lengths
• LATEX has commands that represent lengths, such as \textwidth.
• There are two types of lengths: rigid and rubber.
• A rigid length is a fixed length, such as 4in.
• A rubber length is a length with a certain amount of elasticity, for
example: 2in plus 0.1in minus 0.1in.
A rubber length is a way of telling LATEX your preferred length, and
the amount of deviation from that length which you are prepared
to put up with.
• Most LATEX lengths are rigid lengths.

Previous Next First Last Back Index 147


Lengths

Lengths
• LATEX has commands that represent lengths, such as \textwidth.
• There are two types of lengths: rigid and rubber.
• A rigid length is a fixed length, such as 4in.
• A rubber length is a length with a certain amount of elasticity, for
example: 2in plus 0.1in minus 0.1in.
A rubber length is a way of telling LATEX your preferred length, and
the amount of deviation from that length which you are prepared
to put up with.
• Most LATEX lengths are rigid lengths.

Previous Next First Last Back Index 147


Lengths

Lengths
• LATEX has commands that represent lengths, such as \textwidth.
• There are two types of lengths: rigid and rubber.
• A rigid length is a fixed length, such as 4in.
• A rubber length is a length with a certain amount of elasticity, for
example: 2in plus 0.1in minus 0.1in.
A rubber length is a way of telling LATEX your preferred length, and
the amount of deviation from that length which you are prepared
to put up with.
• Most LATEX lengths are rigid lengths.

Previous Next First Last Back Index 147


Lengths

Lengths
• LATEX has commands that represent lengths, such as \textwidth.
• There are two types of lengths: rigid and rubber.
• A rigid length is a fixed length, such as 4in.
• A rubber length is a length with a certain amount of elasticity, for
example: 2in plus 0.1in minus 0.1in.
A rubber length is a way of telling LATEX your preferred length, and
the amount of deviation from that length which you are prepared
to put up with.
• Most LATEX lengths are rigid lengths.

Previous Next First Last Back Index 147


Lengths

Lengths
• LATEX has commands that represent lengths, such as \textwidth.
• There are two types of lengths: rigid and rubber.
• A rigid length is a fixed length, such as 4in.
• A rubber length is a length with a certain amount of elasticity, for
example: 2in plus 0.1in minus 0.1in.
A rubber length is a way of telling LATEX your preferred length, and
the amount of deviation from that length which you are prepared
to put up with.
• Most LATEX lengths are rigid lengths.

Previous Next First Last Back Index 147


Lengths

Lengths
• LATEX has commands that represent lengths, such as \textwidth.
• There are two types of lengths: rigid and rubber.
• A rigid length is a fixed length, such as 4in.
• A rubber length is a length with a certain amount of elasticity, for
example: 2in plus 0.1in minus 0.1in.
A rubber length is a way of telling LATEX your preferred length, and
the amount of deviation from that length which you are prepared
to put up with.
• Most LATEX lengths are rigid lengths.

Previous Next First Last Back Index 147


Lengths

Common Units

1
pt Point ( 72.27 in)
1
bp Big point, or PostScript point ( 72 in)
mm Millimetre (2.845pt)
cm Centimetre (28.45pt)
in Inch (25.4mm)
ex Height of lowercase x in current font
em Width of capital M in current font

Previous Next First Last Back Index 148


Lengths

Changing Lengths
• A length can be assigned a new value using the command:

\setlength{cmd}{length}

For example:
\setlength{\textwidth}{6in}
• A length can be incremented using the command:

\addtolength{cmd}{length}

so to make the text width 1in wider than it was previously, do:
\addtolength{\textwidth}{1in}

Previous Next First Last Back Index 149


Lengths

Changing Lengths
• A length can be assigned a new value using the command:

\setlength{cmd}{length}

For example:
\setlength{\textwidth}{6in}
• A length can be incremented using the command:

\addtolength{cmd}{length}

so to make the text width 1in wider than it was previously, do:
\addtolength{\textwidth}{1in}

Previous Next First Last Back Index 149


Lengths

Changing Lengths
• A length can be assigned a new value using the command:

\setlength{cmd}{length}

For example:
\setlength{\textwidth}{6in}
• A length can be incremented using the command:

\addtolength{cmd}{length}

so to make the text width 1in wider than it was previously, do:
\addtolength{\textwidth}{1in}

Previous Next First Last Back Index 149


Lengths

Changing Lengths
• A length can be assigned a new value using the command:

\setlength{cmd}{length}

For example:
\setlength{\textwidth}{6in}
• A length can be incremented using the command:

\addtolength{cmd}{length}

so to make the text width 1in wider than it was previously, do:
\addtolength{\textwidth}{1in}

Previous Next First Last Back Index 149


Lengths

Lengths
• There are three more commands that can change a length, and
they are:
\settowidth{cmd}{text}
\settoheight{cmd}{text}
\settodepth{cmd}{text}
These set the length cmd to the width, height or depth of the
text. Note that the actual text itself is not displayed.
• To create a new length:
\newlengthcmd
• To display the value of a length:
\thecmd

Previous Next First Last Back Index 150


Lengths

Lengths
• There are three more commands that can change a length, and
they are:
\settowidth{cmd}{text}
\settoheight{cmd}{text}
\settodepth{cmd}{text}
These set the length cmd to the width, height or depth of the
text. Note that the actual text itself is not displayed.
• To create a new length:
\newlengthcmd
• To display the value of a length:
\thecmd

Previous Next First Last Back Index 150


Lengths

Lengths
• There are three more commands that can change a length, and
they are:
\settowidth{cmd}{text}
\settoheight{cmd}{text}
\settodepth{cmd}{text}
These set the length cmd to the width, height or depth of the
text. Note that the actual text itself is not displayed.
• To create a new length:
\newlengthcmd
• To display the value of a length:
\thecmd

Previous Next First Last Back Index 150


Lengths

Example

% define new length Width=22.50005pt.


\newlength\mylen Output

% set it to the width of the text


\settowidth{\mylen}{Hello}
% Display the value
Width=\the\mylen.
Input

Previous Next First Last Back Index 151


Lengths

Layout Lengths

1 one inch + \hoffset


2 one inch + \voffset
3 \oddsidemargin
4 \topmargin
5 \headheight
6 \headsep
7 \textheight
8 \textwidth
9 \marginparsep
10 \marginparwidth
11 \footskip

(Diagram generated using the


layout package)

Previous Next First Last Back Index 152


Lengths

Exercise 16 (Page 17)


• Go back to the document you created in Exercise 1
• Change the paragraph indentation (\parindent) to 0pt
• Change the gap between paragraphs (\parskip) to 3ex.

Previous Next First Last Back Index 153


Boxes and Minipages

Boxes
• Everything on a page can be broken down into boxes.
• Each box has an associated width, height and depth.

y a
• The simplest form of box is a single letter

height height

depth
width width
• More complicated boxes are made up of smaller boxes.
• Example: The phrase “cabbages and peas” is made up of 15
boxes: c a b b a g e s a n d p e a s
• Between the boxes is “glue”.
• The job of the typesetter is to fix the boxes together according to
typographical rules.

Previous Next First Last Back Index 154


Boxes and Minipages

Boxes
• Everything on a page can be broken down into boxes.
• Each box has an associated width, height and depth.

y a
• The simplest form of box is a single letter

height height

depth
width width
• More complicated boxes are made up of smaller boxes.
• Example: The phrase “cabbages and peas” is made up of 15
boxes: c a b b a g e s a n d p e a s
• Between the boxes is “glue”.
• The job of the typesetter is to fix the boxes together according to
typographical rules.

Previous Next First Last Back Index 154


Boxes and Minipages

Boxes
• Everything on a page can be broken down into boxes.
• Each box has an associated width, height and depth.

y a
• The simplest form of box is a single letter

height height

depth
width width
• More complicated boxes are made up of smaller boxes.
• Example: The phrase “cabbages and peas” is made up of 15
boxes: c a b b a g e s a n d p e a s
• Between the boxes is “glue”.
• The job of the typesetter is to fix the boxes together according to
typographical rules.

Previous Next First Last Back Index 154


Boxes and Minipages

Boxes
• Everything on a page can be broken down into boxes.
• Each box has an associated width, height and depth.

y a
• The simplest form of box is a single letter

height height

depth
width width
• More complicated boxes are made up of smaller boxes.
• Example: The phrase “cabbages and peas” is made up of 15
boxes: c a b b a g e s a n d p e a s
• Between the boxes is “glue”.
• The job of the typesetter is to fix the boxes together according to
typographical rules.

Previous Next First Last Back Index 154


Boxes and Minipages

Boxes
• Everything on a page can be broken down into boxes.
• Each box has an associated width, height and depth.

y a
• The simplest form of box is a single letter

height height

depth
width width
• More complicated boxes are made up of smaller boxes.
• Example: The phrase “cabbages and peas” is made up of 15
boxes: c a b b a g e s a n d p e a s
• Between the boxes is “glue”.
• The job of the typesetter is to fix the boxes together according to
typographical rules.

Previous Next First Last Back Index 154


Boxes and Minipages

Boxes
• Everything on a page can be broken down into boxes.
• Each box has an associated width, height and depth.

y a
• The simplest form of box is a single letter

height height

depth
width width
• More complicated boxes are made up of smaller boxes.
• Example: The phrase “cabbages and peas” is made up of 15
boxes: c a b b a g e s a n d p e a s
• Between the boxes is “glue”.
• The job of the typesetter is to fix the boxes together according to
typographical rules.

Previous Next First Last Back Index 154


Boxes and Minipages

Boxes
• Everything on a page can be broken down into boxes.
• Each box has an associated width, height and depth.

y a
• The simplest form of box is a single letter

height height

depth
width width
• More complicated boxes are made up of smaller boxes.
• Example: The phrase “cabbages and peas” is made up of 15
boxes: c a b b a g e s a n d p e a s
• Between the boxes is “glue”.
• The job of the typesetter is to fix the boxes together according to
typographical rules.

Previous Next First Last Back Index 154


Boxes and Minipages

Boxes

• Boxes are treated as a single object.


• They can occur in the middle of a line.
• They can never be broken across a line.
• They can be vertically aligned.
• You have already used some boxes.

Previous Next First Last Back Index 155


Boxes and Minipages

Boxes

• Boxes are treated as a single object.


• They can occur in the middle of a line.
• They can never be broken across a line.
• They can be vertically aligned.
• You have already used some boxes.

Previous Next First Last Back Index 155


Boxes and Minipages

Boxes

• Boxes are treated as a single object.


• They can occur in the middle of a line.
• They can never be broken across a line.
• They can be vertically aligned.
• You have already used some boxes.

Previous Next First Last Back Index 155


Boxes and Minipages

Boxes

• Boxes are treated as a single object.


• They can occur in the middle of a line.
• They can never be broken across a line.
• They can be vertically aligned.
• You have already used some boxes.

Previous Next First Last Back Index 155


Boxes and Minipages

Boxes

• Boxes are treated as a single object.


• They can occur in the middle of a line.
• They can never be broken across a line.
• They can be vertically aligned.
• You have already used some boxes.

Previous Next First Last Back Index 155


Boxes and Minipages

Example of a Box: The tabular Environment


Baseline
\begin{tabular}[c]{l}line 1\\line 2\\line 3\end{tabular}
\begin{tabular}[b]{l}line 1\\line 2\\line 3\end{tabular}
\begin{tabular}[t]{l}line 1\\line 2\\line 3\end{tabular}
Input

line 1
line 1 line 2
Baseline line 2 line 3 line 1
line 3 line 2
line 3

Output

Previous Next First Last Back Index 156


Boxes and Minipages

Basic Types of Boxes


• \mbox{contents}
Simplest type of box.
– Prevents text inside it from being broken across a line
– Provides normal text inside a maths environment.
– Dimensions of the box automatically computed to fit the
contents of the box.

• \makebox[width][alignment]{contents}
Like \mbox, but you can specify the width of the box, and how
the text is justified within it: left, right or centred.

Previous Next First Last Back Index 157


Boxes and Minipages

Basic Types of Boxes


• \mbox{contents}
Simplest type of box.
– Prevents text inside it from being broken across a line
– Provides normal text inside a maths environment.
– Dimensions of the box automatically computed to fit the
contents of the box.

• \makebox[width][alignment]{contents}
Like \mbox, but you can specify the width of the box, and how
the text is justified within it: left, right or centred.

Previous Next First Last Back Index 157


Boxes and Minipages

Basic Types of Boxes


• \mbox{contents}
Simplest type of box.
– Prevents text inside it from being broken across a line
– Provides normal text inside a maths environment.
– Dimensions of the box automatically computed to fit the
contents of the box.

• \makebox[width][alignment]{contents}
Like \mbox, but you can specify the width of the box, and how
the text is justified within it: left, right or centred.

Previous Next First Last Back Index 157


Boxes and Minipages

Basic Types of Boxes


• \mbox{contents}
Simplest type of box.
– Prevents text inside it from being broken across a line
– Provides normal text inside a maths environment.
– Dimensions of the box automatically computed to fit the
contents of the box.

• \makebox[width][alignment]{contents}
Like \mbox, but you can specify the width of the box, and how
the text is justified within it: left, right or centred.

Previous Next First Last Back Index 157


Boxes and Minipages

Basic Types of Boxes


• \mbox{contents}
Simplest type of box.
– Prevents text inside it from being broken across a line
– Provides normal text inside a maths environment.
– Dimensions of the box automatically computed to fit the
contents of the box.
• \makebox[width][alignment]{contents}
Like \mbox, but you can specify the width of the box, and how
the text is justified within it: left, right or centred.

Previous Next First Last Back Index 157


Boxes and Minipages

Examples using \mbox


\begin{displaymath}
y = x \mbox{ and }
y = x and z = x + y
z = x + y
\end{displaymath} Output

Input

Now some in-line Now some in-line x =


$x = 1, \ldots, n$ maths. 1, . . . , n maths.
Input Output

Now some in-line Now some in-line


\mbox{$x = 1, \ldots, n$} x = 1, . . . , n maths.
maths. Output

Input

Previous Next First Last Back Index 158


Boxes and Minipages

Examples using \makebox

Here is \makebox[1in][r]{\em a 1in} box


Input

Here is a 1in box


Output

\makebox[0pt][l]{/////}Hello!
Input

Hello!
/////
Input

Previous Next First Last Back Index 159


Boxes and Minipages

Boxes with Frames


\fbox and \framebox : These are the same as \mbox and \makebox,
but they put a rectangular frame around the box.

Here is a \fbox{box}
Input

Here is a box

Output

Here is \framebox[1in][r]{\em a 1in} box


Input

Here is a 1in box

Output

Previous Next First Last Back Index 160


Boxes and Minipages

Lengths Associated with \fbox and \framebox


• \fboxsep : This is the gap between the frame and the contents
of the box. For example:

\setlength{\fboxsep}{10pt}
Some Text
\fbox{Some Text}
• \fboxrule : This is the width of the frame. For example:

\setlength{\fboxrule}{4pt}
Some Text
\fbox{Some Text}

Previous Next First Last Back Index 161


Boxes and Minipages

Lengths Associated with \fbox and \framebox


• \fboxsep : This is the gap between the frame and the contents
of the box. For example:

\setlength{\fboxsep}{10pt}
Some Text
\fbox{Some Text}
• \fboxrule : This is the width of the frame. For example:

\setlength{\fboxrule}{4pt}
Some Text
\fbox{Some Text}

Previous Next First Last Back Index 161


Boxes and Minipages

Lengths Associated with \fbox and \framebox


• \fboxsep : This is the gap between the frame and the contents
of the box. For example:

\setlength{\fboxsep}{10pt}
Some Text
\fbox{Some Text}
• \fboxrule : This is the width of the frame. For example:

\setlength{\fboxrule}{4pt}
Some Text
\fbox{Some Text}

Previous Next First Last Back Index 161


Boxes and Minipages

Lengths Associated with \fbox and \framebox


• \fboxsep : This is the gap between the frame and the contents
of the box. For example:

\setlength{\fboxsep}{10pt}
Some Text
\fbox{Some Text}
• \fboxrule : This is the width of the frame. For example:

\setlength{\fboxrule}{4pt}
Some Text
\fbox{Some Text}

Previous Next First Last Back Index 161


Boxes and Minipages

fancybox package
The fancybox package provides four commands, analogous to \fbox:

Input Output

\ovalbox{An oval frame} An oval frame 

\Ovalbox{A thicker oval frame} A thicker oval frame 

\doublebox{A double frame} A double frame

A shadow frame
\shadowbox{A shadow frame}

Previous Next First Last Back Index 162


Boxes and Minipages

fancybox package
The fancybox package provides four commands, analogous to \fbox:

Input Output

\ovalbox{An oval frame} An oval frame 

\Ovalbox{A thicker oval frame} A thicker oval frame 

\doublebox{A double frame} A double frame

A shadow frame
\shadowbox{A shadow frame}

Previous Next First Last Back Index 162


Boxes and Minipages

fancybox package
The fancybox package provides four commands, analogous to \fbox:

Input Output

\ovalbox{An oval frame} An oval frame 

\Ovalbox{A thicker oval frame} A thicker oval frame 

\doublebox{A double frame} A double frame

A shadow frame
\shadowbox{A shadow frame}

Previous Next First Last Back Index 162


Boxes and Minipages

fancybox package
The fancybox package provides four commands, analogous to \fbox:

Input Output

\ovalbox{An oval frame} An oval frame 

\Ovalbox{A thicker oval frame} A thicker oval frame 

\doublebox{A double frame} A double frame

A shadow frame
\shadowbox{A shadow frame}

Previous Next First Last Back Index 162


Boxes and Minipages

fancybox package
The fancybox package provides four commands, analogous to \fbox:

Input Output

\ovalbox{An oval frame} An oval frame 

\Ovalbox{A thicker oval frame} A thicker oval frame 

\doublebox{A double frame} A double frame

A shadow frame
\shadowbox{A shadow frame}

Previous Next First Last Back Index 162


Boxes and Minipages

Examples

Here is a \ovalbox{box}
Input


Here is a box 
Output

Here is \ovalbox{\makebox[1in][r]{\em a 1in}}


box
Input


Here is  a 1in box
Output

Previous Next First Last Back Index 163


Boxes and Minipages

Examples

Here is a \Ovalbox{box}
Input


Here is a box 
Output

Here is \Ovalbox{\makebox[1in][r]{\em a 1in}}


box
Input


Here is  a 1in box
Output

Previous Next First Last Back Index 164


Boxes and Minipages

Examples

Here is a \doublebox{box}
Input

Here is a box

Output

Here is \doublebox{\makebox[1in][r]{\em a 1in}}


box
Input

Here is a 1in box

Output

Previous Next First Last Back Index 165


Boxes and Minipages

Examples

Here is a \shadowbox{box}
Input

box
Here is a
Output

Here is \shadowbox{\makebox[1in][r]{\em a 1in}}


box
Input

a 1in
Here is box
Output

Previous Next First Last Back Index 166


Boxes and Minipages

Typesetting a Paragraph Inside a Box

\parbox[alignment][height]{width}{contents of box}

For example:
A paragraph within a box : \parbox{0.75in}{This box is
three quarters of an inch wide} so there!
Input

This box is
three quar-
A paragraph within a box : so there!
ters of an
inch wide
Output

Previous Next First Last Back Index 167


Boxes and Minipages

The minipage Environment


\begin{minipage}[alignment][height]{width}

Some text. \begin{minipage}{0.4\textwidth} The width of this


minipage is 0.4 times the width of the text
body\footnote{Note we can also have a footnote}.
\end{minipage} Some more text.
Input

The width of this minipage


is 0.4 times the width of the
a
Some text. text body . Some more text.
a Note we can also have a
footnote

Output

Previous Next First Last Back Index 168


Boxes and Minipages

The shapepar Package (\diamondpar)


With the
shapepar pack-
age, you can create
some rather fancy effects.
There are four predefined paragraph
shapes: diamond, square, heart and nut
shaped. It is possible to define other
shapes using \shapepar.
The argument must be
a whole para-
graph.

\diamondpar{With the ... }

Previous Next First Last Back Index 169


Boxes and Minipages

The shapepar Package (\squarepar)

With the shapepar package,


you can create some rather
fancy effects. There are four
predefined paragraph shapes:
diamond, square, heart and
nut shaped. It is possible
to define other shapes using
\shapepar. The argument
must be a whole paragraph.

\squarepar{With the ... }

Previous Next First Last Back Index 170


Boxes and Minipages

The shapepar Package (\heartpar)

With the shapepar


package, you can create some rather
fancy effects. There are four pre-
defined paragraph shapes: diamond,
square, heart and nut shaped. It
is possible to define other shapes
using \shapepar. The ar-
gument must be a
whole paragraph.

\heartpar{With the ... }

Previous Next First Last Back Index 171


Boxes and Minipages

The shapepar Package (\heartpar)

With the shapepar pack-


age, you can create some
rather fancy effects. There
are four predefined
paragraph shapes:
diamond, square, heart
and nut shaped. It
is possible to define
other shapes using \shapepar.
The argument must be
a whole paragraph.

\shapepar\nutshape{With the ... }

Previous Next First Last Back Index 172


Boxes and Minipages

Raising and Lowering Boxes

• Boxes can be raised or lowered


• Syntax: \raisebox{lift}[depth][height]{contents}

some text \raisebox{2ex}{some raised}


\raisebox{-1ex}{some lowered}
Input

some raised
some text some lowered
Output

Previous Next First Last Back Index 173


Boxes and Minipages

Rules
• A rule is a rectangular blob of ink
• Syntax: \rule[lift]{width}{height}

Some text
\rule{0.5in}{10pt}
\rule[-3pt]{0.5in}{10pt}
some text.
Input

Some text some text.


Output

Previous Next First Last Back Index 174


Boxes and Minipages

Example

This example uses \settowidth, \makebox and \rule:

\newlength\mylen
\settowidth{\mylen}{Some Text}%
\makebox[0pt][l]{\rule[0.5ex]{\mylen}{1pt}}%
Some Text
Input

Some Text
Output

That’s a bit fiddly. Time to define a new command!

Previous Next First Last Back Index 175


Boxes and Minipages

Example

This example uses \settowidth, \makebox and \rule:

\newlength\mylen
\settowidth{\mylen}{Some Text}%
\makebox[0pt][l]{\rule[0.5ex]{\mylen}{1pt}}%
Some Text
Input

Some Text
Output

That’s a bit fiddly. Time to define a new command!

Previous Next First Last Back Index 175


Boxes and Minipages

Example

\newlength\mylen
\newcommand{\strikethrough}[1]{%
\settowidth{\mylen}{#1}%
\makebox[0pt][l]{\rule[0.5ex]{\mylen}{1pt}}%
#1}

\strikethrough{Some More Text}


Input

Some More Text


Output

This example won’t allow for line breaks. Better to use ulem package.

Previous Next First Last Back Index 176


Boxes and Minipages

Example

\newlength\mylen
\newcommand{\strikethrough}[1]{%
\settowidth{\mylen}{#1}%
\makebox[0pt][l]{\rule[0.5ex]{\mylen}{1pt}}%
#1}

\strikethrough{Some More Text}


Input

Some More Text


Output

This example won’t allow for line breaks. Better to use ulem package.

Previous Next First Last Back Index 176


Boxes and Minipages

Struts
A zero width rule is called a strut:

\fbox{text}
\fbox{\rule[-10pt]{0pt}{20pt}text}
text\rule{1in}{0pt}text
Input

text text text text

Output

Previous Next First Last Back Index 177


Boxes and Minipages

Saveboxes

• A savebox allows you to save some typeset text for later use.
• Define new savebox: \newsavebox{cmd}.
• To save text to a savebox:
– command:
\sbox{cmd}{text}
– lrbox environment:
\begin{lrbox}{cmd}
text
\end{lrbox}

• To display the contents of a savebox: \usebox{cmd}

Previous Next First Last Back Index 178


Boxes and Minipages

Saveboxes

• A savebox allows you to save some typeset text for later use.
• Define new savebox: \newsavebox{cmd}.
• To save text to a savebox:
– command:
\sbox{cmd}{text}
– lrbox environment:
\begin{lrbox}{cmd}
text
\end{lrbox}

• To display the contents of a savebox: \usebox{cmd}

Previous Next First Last Back Index 178


Boxes and Minipages

Saveboxes

• A savebox allows you to save some typeset text for later use.
• Define new savebox: \newsavebox{cmd}.
• To save text to a savebox:
– command:
\sbox{cmd}{text}
– lrbox environment:
\begin{lrbox}{cmd}
text
\end{lrbox}

• To display the contents of a savebox: \usebox{cmd}

Previous Next First Last Back Index 178


Boxes and Minipages

Saveboxes

• A savebox allows you to save some typeset text for later use.
• Define new savebox: \newsavebox{cmd}.
• To save text to a savebox:
– command:
\sbox{cmd}{text}
– lrbox environment:
\begin{lrbox}{cmd}
text
\end{lrbox}

• To display the contents of a savebox: \usebox{cmd}

Previous Next First Last Back Index 178


Boxes and Minipages

Saveboxes

• A savebox allows you to save some typeset text for later use.
• Define new savebox: \newsavebox{cmd}.
• To save text to a savebox:
– command:
\sbox{cmd}{text}
– lrbox environment:
\begin{lrbox}{cmd}
text
\end{lrbox}
• To display the contents of a savebox: \usebox{cmd}

Previous Next First Last Back Index 178


Boxes and Minipages

Example Using \sbox

\newsavebox{\mysbox}
\sbox{\mysbox}{Some interesting text}

\usebox{\mysbox}\\
\fbox{\usebox{\mysbox}}\\
\Ovalbox{\usebox{\mysbox}}
Input

Some interesting text


Some interesting text
 
Some interesting text
 
Output

Previous Next First Last Back Index 179


Boxes and Minipages

Example Using lrbox

\newsavebox{\mysbox}
\begin{lrbox}{\mysbox}
Some more interesting text.
\end{lrbox}

\usebox{\mysbox}\\
\fbox{\usebox{\mysbox}}
Input

Some more interesting text.


Some more interesting text.

Output

Previous Next First Last Back Index 180


Boxes and Minipages

Macros verses Saveboxes


Using a macro (or command):

\newcommand{\sometext}{Some text} Some text.


Some text.
\sometext.\\ Some text.
\sffamily \sometext.\\ Output

\ttfamily \sometext.
Input

TEX has to work out how to typeset “Some text” three times.

Previous Next First Last Back Index 181


Boxes and Minipages

Macros verses Saveboxes


Using a savebox:

\newsavebox{\mysbox} Some text.


\sbox{\mysbox}{Some text} Some text.
Some text.
\usebox{\mysbox}.\\ Output

\sffamily \usebox{\mysbox}.\\
\ttfamily \usebox{\mysbox}.
Input

TEX only has to work out how to typeset “Some text” once.

Previous Next First Last Back Index 182


Boxes and Minipages

Exercise 17 (Page 19)

e Try reproducing the output shown in Figure 17 on Page 19 of the


handout.
! Try reproducing the output shown in Figure 18 on Page 19 of the
handout.
• Try changing the vertical alignment of the minipage.
• Try experimenting with footnotes insides and outside of the
minipage environment.
• Try using a \parbox instead of a minipage.
• Try experimenting with different frames around the minipage.

Previous Next First Last Back Index 183


Incorporating Images

Incorporating Images
• It is possible to generate images using LATEX picture drawing
commands. The pstricks or pgf set of packages can create very
complex graphics, however most people find this too complicated.
• A more convenient approach is to create the image using a
graphics application, and import it into your LATEX document using
the command:

\includegraphics[options]{filename}

which is defined in the graphicx package.


• Acceptable file types depend on the driver you are using.
Commonly accepted file types are PS or EPS (with dvips) and
PDF or PNG (with PDFLATEX).

Previous Next First Last Back Index 184


Incorporating Images

Incorporating Images
• It is possible to generate images using LATEX picture drawing
commands. The pstricks or pgf set of packages can create very
complex graphics, however most people find this too complicated.
• A more convenient approach is to create the image using a
graphics application, and import it into your LATEX document using
the command:

\includegraphics[options]{filename}

which is defined in the graphicx package.


• Acceptable file types depend on the driver you are using.
Commonly accepted file types are PS or EPS (with dvips) and
PDF or PNG (with PDFLATEX).

Previous Next First Last Back Index 184


Incorporating Images

Incorporating Images
• It is possible to generate images using LATEX picture drawing
commands. The pstricks or pgf set of packages can create very
complex graphics, however most people find this too complicated.
• A more convenient approach is to create the image using a
graphics application, and import it into your LATEX document using
the command:

\includegraphics[options]{filename}

which is defined in the graphicx package.


• Acceptable file types depend on the driver you are using.
Commonly accepted file types are PS or EPS (with dvips) and
PDF or PNG (with PDFLATEX).

Previous Next First Last Back Index 184


Incorporating Images

Syntax
\includegraphics[options]{filename}
Some of the more common options are:
angle=x rotate the picture by x◦
width=len scale the picture so that the width is len.
height=len scale the picture so that the height is len.
scale=x scale the picture.
trim=lx by rx ty trim the picture so that the bottom left co-
ordinate is (lx, by) and the top right co-
ordinate is (rx, ty).
draft don’t display the image, just draw the bound-
ing box with the filename inside.

Previous Next First Last Back Index 185


Incorporating Images

An Example
• You don’t need to specify the extension.

\includegraphics[angle=90,width=1in]{shapes}
Input

Output

• If LATEX it uses shapes.ps, if PDFLATEX it uses shapes.pdf.

Previous Next First Last Back Index 186


Incorporating Images

Other graphicx Commands


• \rotatebox{angle}{text}
Rotate text by angle.
• \scalebox{h scale}[v scale]{text}
Rescales text.
• \reflectbox{text}
Reflect text
• \resizebox{h length}{v length}{text}
Resizes text so that it has width is h length and height v length.
An exclaimation mark ! can be used to maintain the aspect ratio
if only one length is specified.

Previous Next First Last Back Index 187


Incorporating Images

Examples

xt
te
e
m
So
\rotatebox{45}{Some text}
Input Output

\scalebox{1.5}{Some text} Some text


Input Output

\reflectbox{Some text} txet emoS


Input Output

Previous Next First Last Back Index 188


Incorporating Images

Examples

\resizebox{6mm}{1cm}{Some
text}
Some text Output

Input

\resizebox{6mm}{!}{Some Some text

text} Output

Input

Previous Next First Last Back Index 189


Incorporating Images

Exercise 18 (Page 21)


• Copy the file shapes.ps (or shapes.pdf if you want to use
PDFLATEX) to your directory:
Icp /home/sys/gcc/insecure/shapes.ps .
and include it in a document.
• Try to centre the image, using \centerline.
• Try putting a frame around it.
• Try scaling and rotating it.
• Try passing the option draft to the graphicx package and see
what happens.

Previous Next First Last Back Index 190


Figures and Tables

Figures and Tables


• Figures and Tables are floats — they are floated to the nearest
convenient location according to certain typographical rules.
• A figure or table has a caption and an associated number.
Captions are produced using the command:
\caption[short caption]{caption text}
• LATEX handles numbering automatically. Floats can be
cross-referenced using \label and \ref.
• Figures are created using the figure environment.
• Tables are created using the table environment.
• figure and table environments can not have a page break in them.

Previous Next First Last Back Index 191


Figures and Tables

Figures and Tables


• Figures and Tables are floats — they are floated to the nearest
convenient location according to certain typographical rules.
• A figure or table has a caption and an associated number.
Captions are produced using the command:
\caption[short caption]{caption text}
• LATEX handles numbering automatically. Floats can be
cross-referenced using \label and \ref.
• Figures are created using the figure environment.
• Tables are created using the table environment.
• figure and table environments can not have a page break in them.

Previous Next First Last Back Index 191


Figures and Tables

Figures and Tables


• Figures and Tables are floats — they are floated to the nearest
convenient location according to certain typographical rules.
• A figure or table has a caption and an associated number.
Captions are produced using the command:
\caption[short caption]{caption text}
• LATEX handles numbering automatically. Floats can be
cross-referenced using \label and \ref.
• Figures are created using the figure environment.
• Tables are created using the table environment.
• figure and table environments can not have a page break in them.

Previous Next First Last Back Index 191


Figures and Tables

Figures and Tables


• Figures and Tables are floats — they are floated to the nearest
convenient location according to certain typographical rules.
• A figure or table has a caption and an associated number.
Captions are produced using the command:
\caption[short caption]{caption text}
• LATEX handles numbering automatically. Floats can be
cross-referenced using \label and \ref.
• Figures are created using the figure environment.
• Tables are created using the table environment.
• figure and table environments can not have a page break in them.

Previous Next First Last Back Index 191


Figures and Tables

Figures and Tables


• Figures and Tables are floats — they are floated to the nearest
convenient location according to certain typographical rules.
• A figure or table has a caption and an associated number.
Captions are produced using the command:
\caption[short caption]{caption text}
• LATEX handles numbering automatically. Floats can be
cross-referenced using \label and \ref.
• Figures are created using the figure environment.
• Tables are created using the table environment.
• figure and table environments can not have a page break in them.

Previous Next First Last Back Index 191


Figures and Tables

Figures and Tables


• Figures and Tables are floats — they are floated to the nearest
convenient location according to certain typographical rules.
• A figure or table has a caption and an associated number.
Captions are produced using the command:
\caption[short caption]{caption text}
• LATEX handles numbering automatically. Floats can be
cross-referenced using \label and \ref.
• Figures are created using the figure environment.
• Tables are created using the table environment.
• figure and table environments can not have a page break in them.

Previous Next First Last Back Index 191


Figures and Tables

An Example Figure
\begin{figure}[tbh]
\centerline{\includegraphics[height=1.25cm]{shapes.ps}}
\caption{Some shapes}
\label{fig:shapes}
\end{figure}
Input

Figure 1: Some shapes

Output

Previous Next First Last Back Index 192


Figures and Tables

An Example Table
\begin{table}[tbh]
\caption{An example table}
\label{tab:example} Table 1: An example table
\vspace{10pt}
A B
\centerline{
\begin{tabular}{l|ll} I 0.5 1.0
& A & B\\\hline II 12 14
I & 0.5 & 1.0\\
II & 12 & 14 Output

\end{tabular}
}
\end{table}
Input

Previous Next First Last Back Index 193


Figures and Tables

Adjacent Figures
Two figures can be placed side by side in one figure environment:
\begin{figure}[tbh]
\begin{minipage}{0.4\textwidth}
\centerline{\includegraphics{circle.ps}}
\caption{A Circle}\label{fig:circ}
\end{minipage}
\begin{minipage}{0.5\textwidth}
\centerline{\includegraphics{rectangle.ps}}
\caption{A Rectangle}\label{fig:rect}
\end{minipage}
\end{figure}

Figure~\ref{fig:circ} shows a circle.


Figure~\ref{fig:rect} shows a rectangle.
Input

Previous Next First Last Back Index 194


Figures and Tables

Adjacent Figures

Figure 2: A Circle Figure 3: A Rectangle

Figure 2 shows a circle. Figure 3 shows a rectangle.


Output

Previous Next First Last Back Index 195


Figures and Tables

Subfigures
Subfigures can be created using the command \subfigure[caption]{contents}
which is defined in the package subfigure.

\begin{figure}[tbh]
\centering \subfigure[A Circle]{\label{fig:circle}%
\includegraphics[height=1in,clip]{circle.ps}}
\hspace{0.5in}
\subfigure[A Rectangle]{\label{fig:rectangle}%
\includegraphics[height=1in,clip]{rectangle.ps}}

\caption{(a) A Circle, (b) A Rectangle}


\label{fig:subfigex}
\end{figure}
Figure~\ref{fig:circle} shows a circle,
Figure~\ref{fig:rectangle} shows a rectangle.
Input

Previous Next First Last Back Index 196


Figures and Tables

(a) A Circle (b) A Rectangle

Figure 4: (a) A Circle, (b) A Rectangle

Figure 4(a) shows a circle, Figure 4(b) shows a rectangle.


Output

Previous Next First Last Back Index 197


Figures and Tables

List of Figures/Tables
• A list of figures can be produced using the command:
\listoffigures
• A list of tables can be produced using the command:
\listoftables
• These commands should be placed at the start of the document,
after the table of contents.
• The document should be LATEXed twice to ensure that the list of
figures and list of tables are up-to-date.

Previous Next First Last Back Index 198


Figures and Tables

List of Figures/Tables
• A list of figures can be produced using the command:
\listoffigures
• A list of tables can be produced using the command:
\listoftables
• These commands should be placed at the start of the document,
after the table of contents.
• The document should be LATEXed twice to ensure that the list of
figures and list of tables are up-to-date.

Previous Next First Last Back Index 198


Figures and Tables

List of Figures/Tables
• A list of figures can be produced using the command:
\listoffigures
• A list of tables can be produced using the command:
\listoftables
• These commands should be placed at the start of the document,
after the table of contents.
• The document should be LATEXed twice to ensure that the list of
figures and list of tables are up-to-date.

Previous Next First Last Back Index 198


Figures and Tables

List of Figures/Tables
• A list of figures can be produced using the command:
\listoffigures
• A list of tables can be produced using the command:
\listoftables
• These commands should be placed at the start of the document,
after the table of contents.
• The document should be LATEXed twice to ensure that the list of
figures and list of tables are up-to-date.

Previous Next First Last Back Index 198


Figures and Tables

Exercise 19 (Page 21)

• Copy the files circle.ps, rectangle.ps and shapes.ps to your


directory (or circle.pdf, rectangle.pdf and shapes.pdf).
Icp /home/sys/gcc/insecure/circle.ps .
Icp /home/sys/gcc/insecure/rectangle.ps .
• Make a document that contains Figures 19 and 20 and Table 11
in the handout.
• Add a list of figures and list of tables at the start of the document.

Previous Next First Last Back Index 199


Creating Slides

Creating Slides using LATEX


• There are a number of class files available to produce slides.
• The simplest is slides
• There are far more advanced packages, such as beamer and
prosper, which produce very professional looking presentations.
• We will be looking at the seminar class file.

Previous Next First Last Back Index 200


Creating Slides

The seminar Package


• Each slide is contained in a slide (landscape) or slide* (portrait)
environment.
• To change the page layout to portrait, use the option portrait:
\documentclass[portrait]{seminar}
• To use A4 paper, instead of the default US letter, use the sem-a4
package.
• To display only the landscape or only portrait slides, use the
command \landscapeonly or \portraitonly in the preamble.

Previous Next First Last Back Index 201


Creating Slides

Title Slides

As with the other class files we have looked at, we can use the \title, \author,
\date and \maketitle commands.

\title{\LARGE Introductory \LaTeX}


\author{Dr N.L.C. Talbot\\
\mdseries\slshape for\\
\mdseries\slshape UEA Centre for Staff and Educational
Development}
\date{}

\begin{slide}
\maketitle
\end{slide}
Input

Previous Next First Last Back Index 202


Creating Slides

Notes

• Any text that appears outside a slide or slide* environment will be


treated as a note.
• You can specify only slides or only notes (e.g. if you want to print
the slides on transparencies and the notes on paper):
– \documentclass[slidesonly]{seminar}
– \documentclass[notesonly]{seminar}
• A set of slides, and their corresponding notes can be turned into
an article (for handouts, say) by using the article option:

\documentclass[article]{seminar}

Previous Next First Last Back Index 203


Creating Slides

Notes

• Any text that appears outside a slide or slide* environment will be


treated as a note.
• You can specify only slides or only notes (e.g. if you want to print
the slides on transparencies and the notes on paper):
– \documentclass[slidesonly]{seminar}
– \documentclass[notesonly]{seminar}

• A set of slides, and their corresponding notes can be turned into


an article (for handouts, say) by using the article option:

\documentclass[article]{seminar}

Previous Next First Last Back Index 203


Creating Slides

Notes

• Any text that appears outside a slide or slide* environment will be


treated as a note.
• You can specify only slides or only notes (e.g. if you want to print
the slides on transparencies and the notes on paper):
– \documentclass[slidesonly]{seminar}
– \documentclass[notesonly]{seminar}
• A set of slides, and their corresponding notes can be turned into
an article (for handouts, say) by using the article option:

\documentclass[article]{seminar}

Previous Next First Last Back Index 203


Creating Slides

Slide Frames
• Slide frames can be changed using the \slideframe{style}
command. There are two standard styles:
– none (no frame)
– plain (plain rectangle).

• The fancybox package defines the additional styles:


– shadow
– double
– oval
– Oval.
• Example: \slideframe{none}

Previous Next First Last Back Index 204


Creating Slides

Slide Frames
• Slide frames can be changed using the \slideframe{style}
command. There are two standard styles:
– none (no frame)
– plain (plain rectangle).
• The fancybox package defines the additional styles:
– shadow
– double
– oval
– Oval.

• Example: \slideframe{none}

Previous Next First Last Back Index 204


Creating Slides

Slide Frames
• Slide frames can be changed using the \slideframe{style}
command. There are two standard styles:
– none (no frame)
– plain (plain rectangle).
• The fancybox package defines the additional styles:
– shadow
– double
– oval
– Oval.
• Example: \slideframe{none}

Previous Next First Last Back Index 204


Creating Slides

Slide Frames
• Slide frames can be changed using the \slideframe{style}
command. There are two standard style:
– none (no frame)
– plain (plain rectangle).
• The fancybox package defines the additional frames:
– shadow
– double
– oval
– Oval.
• Example: \slideframe{plain}

Previous Next First Last Back Index 205


Creating Slides
' $

Slide Frames
• Slide frames can be changed using the \slideframe{style}
command. There are two standard style:
– none (no frame)
– plain (plain rectangle).
• The fancybox package defines the additional frames:
– shadow
– double
– oval
– Oval.
• Example: \slideframe{Oval}

& %
Previous Next First Last Back Index 206
Creating Slides

Slide Frames
• Slide frames can be changed using the \slideframe{style}
command. There are two standard style:
– none (no frame)
– plain (plain rectangle).
• The fancybox package defines the additional frames:
– shadow
– double
– oval
– Oval.
• Example: \slideframe{shadow}

Previous Next First Last Back Index 207


Creating Slides

Slide Frames
• Slide frames can be changed using the \slideframe{style}
command. There are two standard style:
– none (no frame)
– plain (plain rectangle).
• The fancybox package defines the additional frames:
– shadow
– double
– oval
– Oval.
• Example: \slideframe{double}

Previous Next First Last Back Index 208


Creating Slides

Defining New Page Styles


• The seminar class file allows new page styles to be defined using
the command:

\newpagestyle{name}{header}{footer}

• Example:
\newpagestyle{csedlatex}{}{%
\textsc{Introductory \LaTeX}\hfill\thepage}

\pagestyle{csedlatex}

Previous Next First Last Back Index 209


Creating Slides

Exercise 20 (Page 22)


• Try to produce some of the slides used during this course.
• Try experimenting with different slide frames, and different page
styles.
• Try including some notes about the slides.
• Try using the article option.
• With the article option, the slide caption is displayed according
to the style specified by the command \slidestyle{style}.
Available options are: empty, left, bottom. Try experimenting
with the slide style.

Previous Next First Last Back Index 210


New Environments

Defining New Environments


New environments can be defined using:

\newenvironment{env-name}[n][default]{begin-code}{end-code}

\newenvironment{bfitemize}% • First item


{\begin{bfseries}\begin{itemize}}% • Second item
{\end{itemize}\end{bfseries}}
Output

\begin{bfitemize}
\item First item
\item Second item
\end{bfitemize}
Input

Previous Next First Last Back Index 211


New Environments

Example Environment with Arguments

\newsavebox{\fminibox}

\newenvironment{fminipage}[2][c]%
{\begin{lrbox}{\fminibox}\begin{minipage}[#1]{#2}}%
{\end{minipage}\end{lrbox}%
\shadowbox{\usebox{\fminibox}}}
Input

\begin{fminipage}{1.5in}
Some text in a 1.5 inch
Some text in a 1.5
framed minipage
inch framed minipage
\end{fminipage}
Output

Input

Previous Next First Last Back Index 212


New Environments

Exercise 21 (Page 23)


• Create an environment called exercise that draws a horizontal line at
the start and at the end of the environment. So, for example, the
following code:
\begin{exercise}
Some text.
\end{exercise}
would produce the following output:

Some text.

• Note that if the environment is preceded by a paragraph break, there


will be a small space at the start of the horizontal line caused by
paragraph indentation, this can be suppressed using \noindent.

Previous Next First Last Back Index 213


Counters

Counters

• Counters contain integers that can be incremented or


decremented.
• We have already used commands that have associated counters:
\chapter, \section, \footnote, \caption.
• We have also used environments that use counters: equation,
enumerate.
• To define a new counter:
\newcounter{ctr-name}[outer-ctr]
For example: \newcounter{exercise}.
• To reset the counter every time another counter is incremented:
\newcounter{exercise}[chapter]

Previous Next First Last Back Index 214


Counters

Counters

• Counters contain integers that can be incremented or


decremented.
• We have already used commands that have associated counters:
\chapter, \section, \footnote, \caption.
• We have also used environments that use counters: equation,
enumerate.
• To define a new counter:
\newcounter{ctr-name}[outer-ctr]
For example: \newcounter{exercise}.
• To reset the counter every time another counter is incremented:
\newcounter{exercise}[chapter]

Previous Next First Last Back Index 214


Counters

Counters

• Counters contain integers that can be incremented or


decremented.
• We have already used commands that have associated counters:
\chapter, \section, \footnote, \caption.
• We have also used environments that use counters: equation,
enumerate.
• To define a new counter:
\newcounter{ctr-name}[outer-ctr]
For example: \newcounter{exercise}.
• To reset the counter every time another counter is incremented:
\newcounter{exercise}[chapter]

Previous Next First Last Back Index 214


Counters

Counters

• Counters contain integers that can be incremented or


decremented.
• We have already used commands that have associated counters:
\chapter, \section, \footnote, \caption.
• We have also used environments that use counters: equation,
enumerate.
• To define a new counter:
\newcounter{ctr-name}[outer-ctr]
For example: \newcounter{exercise}.
• To reset the counter every time another counter is incremented:
\newcounter{exercise}[chapter]

Previous Next First Last Back Index 214


Counters

Counters

• Counters contain integers that can be incremented or


decremented.
• We have already used commands that have associated counters:
\chapter, \section, \footnote, \caption.
• We have also used environments that use counters: equation,
enumerate.
• To define a new counter:
\newcounter{ctr-name}[outer-ctr]
For example: \newcounter{exercise}.
• To reset the counter every time another counter is incremented:
\newcounter{exercise}[chapter]

Previous Next First Last Back Index 214


Counters

Changing the Value of a Counter

• \stepcounter{ctr} increment the counter by 1.


• \refstepcounter{ctr} as above, but allows you to reference the
counter using \ref and \label.
• \setcounter{ctr}{value} set the counter to value
• \addtocounter{ctr}{value} add value to the counter
• \value{ctr} This command produces the value for use in the
value part of \setcounter and \addtocounter commands.

Previous Next First Last Back Index 215


Counters

Displaying the Value of a Counter

• The command \thectr prints a representation of the value


associated with ctr. Examples:
– \thepage displays the value of the page counter.
– \thesection displays the value of the section counter.
– \theslide displays the value of the slide counter.

This is slide number This is slide number


\theslide 216
Input Output

• By default \thectr will display the counter as an Arabic number.


• \thectr can be defined using \renewcommand so that it uses a
different format.

Previous Next First Last Back Index 216


Counters

Displaying the Value of a Counter

• The command \thectr prints a representation of the value


associated with ctr. Examples:
– \thepage displays the value of the page counter.
– \thesection displays the value of the section counter.
– \theslide displays the value of the slide counter.

This is slide number This is slide number


\theslide 216
Input Output

• By default \thectr will display the counter as an Arabic number.


• \thectr can be defined using \renewcommand so that it uses a
different format.

Previous Next First Last Back Index 216


Counters

Displaying the Value of a Counter

• The command \thectr prints a representation of the value


associated with ctr. Examples:
– \thepage displays the value of the page counter.
– \thesection displays the value of the section counter.
– \theslide displays the value of the slide counter.

This is slide number This is slide number


\theslide 216
Input Output

• By default \thectr will display the counter as an Arabic number.


• \thectr can be defined using \renewcommand so that it uses a
different format.

Previous Next First Last Back Index 216


Counters

Displaying the Value of a Counter

• The command \thectr prints a representation of the value


associated with ctr. Examples:
– \thepage displays the value of the page counter.
– \thesection displays the value of the section counter.
– \theslide displays the value of the slide counter.

This is slide number This is slide number


\theslide 216
Input Output

• By default \thectr will display the counter as an Arabic number.


• \thectr can be defined using \renewcommand so that it uses a
different format.

Previous Next First Last Back Index 216


Counters

Displaying the Value of a Counter

• The command \thectr prints a representation of the value


associated with ctr. Examples:
– \thepage displays the value of the page counter.
– \thesection displays the value of the section counter.
– \theslide displays the value of the slide counter.

This is slide number This is slide number


\theslide 216
Input Output

• By default \thectr will display the counter as an Arabic number.


• \thectr can be defined using \renewcommand so that it uses a
different format.

Previous Next First Last Back Index 216


Counters

Displaying the Value of a Counter

• The command \thectr prints a representation of the value


associated with ctr. Examples:
– \thepage displays the value of the page counter.
– \thesection displays the value of the section counter.
– \theslide displays the value of the slide counter.

This is slide number This is slide number


\theslide 216
Input Output

• By default \thectr will display the counter as an Arabic number.


• \thectr can be defined using \renewcommand so that it uses a
different format.

Previous Next First Last Back Index 216


Counters

Standard Counter Formats


• \arabic{ctr} print ctr as an arabic numeral
• \roman{ctr} print ctr as a lowercase roman numeral
• \Roman{ctr} print ctr as an uppercase Roman numeral
• \alph{ctr} print ctr as a lowercase letter (value of counter must
be less than 26)
• \Alph{ctr} print ctr as an uppercase letter (value of counter must
be less than 26)
• \fnsymbol{ctr} print ctr as a footnote symbol. (This command
may only be used in maths mode)
These commands should only go in the definition of \thectr

Previous Next First Last Back Index 217


Counters

Examples

• \thechaper displays the value of the chapter counter.


• \renewcommand{\thechapter}{\Roman{chapter}}
redefines \thechapter so that it displays the chapter number as
an uppercase Roman numeral.
• \renewcommand{\thefootnote}{\alph{footnote}}
will display the footnote counter as a lowercase letter.
• \newcounter{lemma}[section]
defines a new counter called lemma that will be reset at the start
of each section.
• \renewcommand{\thelemma}{\thesection.\arabic{lemma}}
If the section number is 4 and the lemma number is 3, \thelemma
will display 4.3

Previous Next First Last Back Index 218


Counters

Examples

• \thechaper displays the value of the chapter counter.


• \renewcommand{\thechapter}{\Roman{chapter}}
redefines \thechapter so that it displays the chapter number as
an uppercase Roman numeral.
• \renewcommand{\thefootnote}{\alph{footnote}}
will display the footnote counter as a lowercase letter.
• \newcounter{lemma}[section]
defines a new counter called lemma that will be reset at the start
of each section.
• \renewcommand{\thelemma}{\thesection.\arabic{lemma}}
If the section number is 4 and the lemma number is 3, \thelemma
will display 4.3

Previous Next First Last Back Index 218


Counters

Examples

• \thechaper displays the value of the chapter counter.


• \renewcommand{\thechapter}{\Roman{chapter}}
redefines \thechapter so that it displays the chapter number as
an uppercase Roman numeral.
• \renewcommand{\thefootnote}{\alph{footnote}}
will display the footnote counter as a lowercase letter.
• \newcounter{lemma}[section]
defines a new counter called lemma that will be reset at the start
of each section.
• \renewcommand{\thelemma}{\thesection.\arabic{lemma}}
If the section number is 4 and the lemma number is 3, \thelemma
will display 4.3

Previous Next First Last Back Index 218


Counters

Examples

• \thechaper displays the value of the chapter counter.


• \renewcommand{\thechapter}{\Roman{chapter}}
redefines \thechapter so that it displays the chapter number as
an uppercase Roman numeral.
• \renewcommand{\thefootnote}{\alph{footnote}}
will display the footnote counter as a lowercase letter.
• \newcounter{lemma}[section]
defines a new counter called lemma that will be reset at the start
of each section.
• \renewcommand{\thelemma}{\thesection.\arabic{lemma}}
If the section number is 4 and the lemma number is 3, \thelemma
will display 4.3

Previous Next First Last Back Index 218


Counters

Examples

• \thechaper displays the value of the chapter counter.


• \renewcommand{\thechapter}{\Roman{chapter}}
redefines \thechapter so that it displays the chapter number as
an uppercase Roman numeral.
• \renewcommand{\thefootnote}{\alph{footnote}}
will display the footnote counter as a lowercase letter.
• \newcounter{lemma}[section]
defines a new counter called lemma that will be reset at the start
of each section.
• \renewcommand{\thelemma}{\thesection.\arabic{lemma}}
If the section number is 4 and the lemma number is 3, \thelemma
will display 4.3

Previous Next First Last Back Index 218


Counters

Additional Counter Formats (datetime Package)


The datetime package also provides the following commands for
displaying the value of a counter:

\ordinal{counter} Display the value of counter as an


ordinal
\ordinalstring{counter} Display the value of counter as an
ordinal written out in full
\Ordinalstring{counter} As above, but with the initial letters
in uppercase
\numberstring{counter} Display the value of counter as a
string
\Numberstring{counter} As above but with the initial letter
in uppercase

Previous Next First Last Back Index 219


Counters

Examples

\ordinal{slide} 220th
Input Output

\ordinalstring{slide} two hundred and twentieth


Input Output

\Ordinalstring{slide} Two Hundred and Twentieth


Input Output

\numberstring{slide} two hundred and twenty


Input Output

\Numberstring{slide} Two Hundred and Twenty


Input Output

Previous Next First Last Back Index 220


Counters

Additional Counter Formats (datetime Package v2.4)


Version 2.4 of the datetime package also provides the following
commands for displaying the value of a counter:

\binary{counter} Display the value of counter as a bi-


nary number
\octal{counter} Display the value of counter as an
octal number
\hexadecimal{counter} Display the value of counter as a
hexadecimal number
\aaalph{counter} Display the value of counter in the
form: a . . . z aa . . . zz aaa . . .
\abalph{counter} Display the value of counter in the
form: a . . . z aa ab . . . az ba bb . . .

Previous Next First Last Back Index 221


Counters

Examples

\binary{slide} 11011110
Input Output

\octal{slide} 336
Input Output

\hexadecimal{slide} de
Input Output

\aaalph{slide} nnnnnnnnn
Input Output

\abalph{slide} hn
Input Output

Previous Next First Last Back Index 222


Counters

Enumeration Counters
Up to four nested enumerate environments are permitted. Each level
has an associated counter:
Counter Representation Default Example
enumi \theenumi \arabic{enumi} 1
\labelenumi \theenumi. 1.
enumii \theenumii \alph{enumii} a
\labelenumii \theenumii) a)
enumiii \theenumiii \roman{enumiii} i
\labelenumiii \theenumiii. i.
enumiv \theenumiv \Alph{enumiv} A
\labelenumiv \theenumiv. A.

Previous Next First Last Back Index 223


Counters

Changing enumerate Counter Format

\renewcommand{\theenumi}{\Roman{enumi}}
Input

\begin{enumerate}
I. First item
\item\label{itm:first} First item
\item Second item II. Second item
\end{enumerate} Item I . . .
Item~\ref{itm:first} \ldots
Output

Input

Previous Next First Last Back Index 224


Counters

Changing enumerate Label

\renewcommand{\labelenumi}{\#\theenumi}
Input

\begin{enumerate}
#1 First item
\item\label{itm:first} First item
\item Second item #2 Second item
\end{enumerate} Item 1 . . .
Item~\ref{itm:first} \ldots
Output

Input

Previous Next First Last Back Index 225


Counters

Changing enumerate Format

\renewcommand{\theenumi}{\Numberstring{enumi}}
\renewcommand{\labelenumi}{\theenumi:}
Input

\begin{enumerate}
One: First item
\item\label{itm:first} First item
\item Second item Two: Second item
\end{enumerate} Item One . . .
Item~\ref{itm:first} \ldots
Output

Input

Previous Next First Last Back Index 226


Counters

Exercise 22 (Page 24)


• Modify the environment you created in Exercise 21 so that for example,
the following code:
\begin{exercise}
Some text.
\end{exercise}
would produce the following output:

Exercise 1
Some text.

• The value of the counter will need to be incremented at the start of


each exercise.
• Try referencing it using \label and \ref.

Previous Next First Last Back Index 227


Conditionals

Conditionals
• As with all programming languages, TEX has conditionals.
• TEX conditionals are of the form:
\iftype . . . \else . . . \fi
• We have already encountered a conditional (ifpdf package):
\ifpdf . . . \else . . . \fi
• The \ifcase command is similar to the switch statement found
in some languages such as C. Example:
\ifcase\month \or Jan\or Feb\or Mar\or Apr\or May\or
Jun\or Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi

Previous Next First Last Back Index 228


Conditionals

Conditionals
• As with all programming languages, TEX has conditionals.
• TEX conditionals are of the form:
\iftype . . . \else . . . \fi
• We have already encountered a conditional (ifpdf package):
\ifpdf . . . \else . . . \fi
• The \ifcase command is similar to the switch statement found
in some languages such as C. Example:
\ifcase\month \or Jan\or Feb\or Mar\or Apr\or May\or
Jun\or Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi

Previous Next First Last Back Index 228


Conditionals

Conditionals
• As with all programming languages, TEX has conditionals.
• TEX conditionals are of the form:
\iftype . . . \else . . . \fi
• We have already encountered a conditional (ifpdf package):
\ifpdf . . . \else . . . \fi
• The \ifcase command is similar to the switch statement found
in some languages such as C. Example:
\ifcase\month \or Jan\or Feb\or Mar\or Apr\or May\or
Jun\or Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi

Previous Next First Last Back Index 228


Conditionals

Conditionals
• As with all programming languages, TEX has conditionals.
• TEX conditionals are of the form:
\iftype . . . \else . . . \fi
• We have already encountered a conditional (ifpdf package):
\ifpdf . . . \else . . . \fi
• The \ifcase command is similar to the switch statement found
in some languages such as C. Example:
\ifcase\month \or Jan\or Feb\or Mar\or Apr\or May\or
Jun\or Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi

Previous Next First Last Back Index 228


Conditionals

Example (\ifpdf and \pdfinfo)


• \ifpdf is quite often used in conjunction with \pdfinfo.
• The \pdfinfo command is only defined in PDFLATEX not LATEX.
\ifpdf
\pdfinfo{
/Title (A Sample Document)
/Author (Nicola Talbot)
/CreationDate (D:20040930140000)
/ModDate (D:\pdfdate)
/Subject (LaTeX Example)
}
\fi

Previous Next First Last Back Index 229


Conditionals

The ifthen Package


• The ifthen package (provided by Leslie Lamport and extended by
David Carlisle) defines the conditional commands
– \ifthenelse{test}{then text}{else text}
– \whiledo{test}{do text}

• The argument test is a boolean statement.


• If test is true, then text or do text will be executed.
• If test is false, else text is executed, or in the case of \whiledo,
the loop is terminated.
• Easier to use than TEX conditionals.

Previous Next First Last Back Index 230


Conditionals

The ifthen Package


• The ifthen package (provided by Leslie Lamport and extended by
David Carlisle) defines the conditional commands
– \ifthenelse{test}{then text}{else text}
– \whiledo{test}{do text}
• The argument test is a boolean statement.
• If test is true, then text or do text will be executed.
• If test is false, else text is executed, or in the case of \whiledo,
the loop is terminated.
• Easier to use than TEX conditionals.

Previous Next First Last Back Index 230


Conditionals

The ifthen Package


• The ifthen package (provided by Leslie Lamport and extended by
David Carlisle) defines the conditional commands
– \ifthenelse{test}{then text}{else text}
– \whiledo{test}{do text}

• The argument test is a boolean statement.


• If test is true, then text or do text will be executed.
• If test is false, else text is executed, or in the case of \whiledo,
the loop is terminated.
• Easier to use than TEX conditionals.

Previous Next First Last Back Index 230


Conditionals

The ifthen Package


• The ifthen package (provided by Leslie Lamport and extended by
David Carlisle) defines the conditional commands
– \ifthenelse{test}{then text}{else text}
– \whiledo{test}{do text}
• The argument test is a boolean statement.
• If test is true, then text or do text will be executed.
• If test is false, else text is executed, or in the case of \whiledo,
the loop is terminated.
• Easier to use than TEX conditionals.

Previous Next First Last Back Index 230


Conditionals

The ifthen Package


• The ifthen package (provided by Leslie Lamport and extended by
David Carlisle) defines the conditional commands
– \ifthenelse{test}{then text}{else text}
– \whiledo{test}{do text}
• The argument test is a boolean statement.
• If test is true, then text or do text will be executed.
• If test is false, else text is executed, or in the case of \whiledo,
the loop is terminated.
• Easier to use than TEX conditionals.

Previous Next First Last Back Index 230


Conditionals

Boolean Operations
• Boolean variables can be defined using the command:

\newboolean{name}

where name (no backslash) is the name of the new variable.


• The variable can be assigned a value using

\setboolean{name}{value}

where name is the name of the boolean variable and value is either
true or false.
• The value of a boolean variable can be tested using

\boolean{name}

Previous Next First Last Back Index 231


Conditionals

Boolean Operations
• Boolean variables can be defined using the command:

\newboolean{name}

where name (no backslash) is the name of the new variable.


• The variable can be assigned a value using

\setboolean{name}{value}

where name is the name of the boolean variable and value is either
true or false.
• The value of a boolean variable can be tested using

\boolean{name}

Previous Next First Last Back Index 231


Conditionals

Boolean Operations
• Boolean variables can be defined using the command:

\newboolean{name}

where name (no backslash) is the name of the new variable.


• The variable can be assigned a value using

\setboolean{name}{value}

where name is the name of the boolean variable and value is either
true or false.
• The value of a boolean variable can be tested using

\boolean{name}

Previous Next First Last Back Index 231


Conditionals

Example
• Suppose I have to teach the same course to two separate classes.
The majority of the notes will be the same, with minor differences
regarding dates and times.
• Suppose one class is on Fridays at 9:00am and the other is on
Mondays at 10:00am.
• Define a boolean variable:
\newboolean{friday}
• Specify whether or not this variable is true. e.g.:
\setboolean{friday}{true}
• Can now use \ifthenelse and \boolean:
Classes are on
\ifthenelse{\boolean{friday}}{Fridays}{Mondays} at
\ifthenelse{\boolean{friday}}{9:00am}{10:00am}.

Previous Next First Last Back Index 232


Conditionals

Example
• All the TEX conditionals, such as \ifpdf have equivalent boolean
variables, such as pdf.
• Better to use \ifthenelse instead of the lower-level \ifpdf etc.
• Our earlier example can now be written:

\ifthenelse{\boolean{pdf}}{% A PDFLATEX docu-


A PDF\LaTeX\ document ment
}{% Output

A \LaTeX\ document
}
Input

Previous Next First Last Back Index 233


Conditionals

Testing Text
• To test whether two strings are equal, use:
\equal{string 1}{string 2}

• Example:
The work is written in
\ifthenelse{\equal{\lang}{English}}
{English} {another language}
If the command \lang has been defined to be English, the following
output will appear:
The work is written in English.
Output

If \lang has been defined as something else:


The work is written in another language.
Output

Previous Next First Last Back Index 234


Conditionals

Testing Numbers
• Two numbers can be compared using <, = and >
• The value of a counter can be compared using \value{name}
• Example:
This
\ifthenelse{\value{page}=42}{is}{isn’t}
my favourite page.
• To test whether a number is odd or even use
\isodd{value}
• Example:
This page is an
\ifthenelse{\isodd{page}}{odd}{even}
numbered page.

Previous Next First Last Back Index 235


Conditionals

\whiledo example

\newcounter{lines}
\whiledo{\value{lines}<6}
{I will hand my homework in on time.\par
\stepcounter{lines}}
Input

I will hand my homework in on time.


I will hand my homework in on time.
I will hand my homework in on time.
I will hand my homework in on time.
I will hand my homework in on time.
I will hand my homework in on time.
Output

Previous Next First Last Back Index 236


Conditionals

Testing Lengths
• Lengths can be tested using
\lengthtest{relation}
• Example:
This page is in
\ifthenelse{\lengthtest{\paperwidth > \paperheight}}
{landscape} {portrait}
Input

This page is in portrait


Input

Previous Next First Last Back Index 237


Writing Packages and Class Files

Writing a LATEX Package


• Filename should have .sty extension.
• All LATEX 2ε packages should start with the line
\NeedsTeXFormat{LaTeX2e}
• You must specify the name of the package using the command
\ProvidesPackage{name}[version]
For example, if your file is called, say example.sty, then you
must have the line
\ProvidesPackage{example}
You can also specify the version in the optional argument:
\ProvidesPackage{example}[2004/05/21 v1.0 (A.N. Other)]

• The last line of the file should have the command \endinput

Previous Next First Last Back Index 238


Writing Packages and Class Files

Writing a LATEX Package


• Filename should have .sty extension.
• All LATEX 2ε packages should start with the line
\NeedsTeXFormat{LaTeX2e}
• You must specify the name of the package using the command
\ProvidesPackage{name}[version]
For example, if your file is called, say example.sty, then you
must have the line
\ProvidesPackage{example}
You can also specify the version in the optional argument:
\ProvidesPackage{example}[2004/05/21 v1.0 (A.N. Other)]

• The last line of the file should have the command \endinput

Previous Next First Last Back Index 238


Writing Packages and Class Files

Writing a LATEX Package


• Filename should have .sty extension.
• All LATEX 2ε packages should start with the line
\NeedsTeXFormat{LaTeX2e}
• You must specify the name of the package using the command
\ProvidesPackage{name}[version]
For example, if your file is called, say example.sty, then you
must have the line
\ProvidesPackage{example}
You can also specify the version in the optional argument:
\ProvidesPackage{example}[2004/05/21 v1.0 (A.N. Other)]

• The last line of the file should have the command \endinput

Previous Next First Last Back Index 238


Writing Packages and Class Files

Writing a LATEX Package


• Filename should have .sty extension.
• All LATEX 2ε packages should start with the line
\NeedsTeXFormat{LaTeX2e}
• You must specify the name of the package using the command
\ProvidesPackage{name}[version]
For example, if your file is called, say example.sty, then you
must have the line
\ProvidesPackage{example}
You can also specify the version in the optional argument:
\ProvidesPackage{example}[2004/05/21 v1.0 (A.N. Other)]

• The last line of the file should have the command \endinput

Previous Next First Last Back Index 238


Writing Packages and Class Files

Writing a LATEX Package


• Filename should have .sty extension.
• All LATEX 2ε packages should start with the line
\NeedsTeXFormat{LaTeX2e}
• You must specify the name of the package using the command
\ProvidesPackage{name}[version]
For example, if your file is called, say example.sty, then you
must have the line
\ProvidesPackage{example}
You can also specify the version in the optional argument:
\ProvidesPackage{example}[2004/05/21 v1.0 (A.N. Other)]

• The last line of the file should have the command \endinput

Previous Next First Last Back Index 238


Writing Packages and Class Files

Writing a LATEX Package


• Filename should have .sty extension.
• All LATEX 2ε packages should start with the line
\NeedsTeXFormat{LaTeX2e}
• You must specify the name of the package using the command
\ProvidesPackage{name}[version]
For example, if your file is called, say example.sty, then you
must have the line
\ProvidesPackage{example}
You can also specify the version in the optional argument:
\ProvidesPackage{example}[2004/05/21 v1.0 (A.N. Other)]

• The last line of the file should have the command \endinput

Previous Next First Last Back Index 238


Writing Packages and Class Files

Example
This is a very simple package. It redefines \today to produce the date
in the form 21/5/2004.

\NeedsTeXFormat{LaTeX2e}

\ProvidesPackage{vardate}[2004/05/21 v1.0 (N.L.C. Talbot)]

\renewcommand{\today}{\the\day/\the\month/\the\year}

\endinput
vardate.sty

Previous Next First Last Back Index 239


Writing Packages and Class Files

Package Options
• We have already come across packages that can have options passed to
them (e.g. graphicx)
• Options can be defined using

\DeclareOption{option}{code}

where option is the option name and code is what LATEX should do if
this option is specified.
• The default action for any option not defined is given by

\DeclareOption*{code}

Within code, the following commands may be used:


\CurrentOption name of current option
\OptionNotUsed Marks this option as being unprocessed.

Previous Next First Last Back Index 240


Writing Packages and Class Files

Package Options
• We have already come across packages that can have options passed to
them (e.g. graphicx)
• Options can be defined using

\DeclareOption{option}{code}

where option is the option name and code is what LATEX should do if
this option is specified.
• The default action for any option not defined is given by

\DeclareOption*{code}

Within code, the following commands may be used:


\CurrentOption name of current option
\OptionNotUsed Marks this option as being unprocessed.

Previous Next First Last Back Index 240


Writing Packages and Class Files

Package Options
• We have already come across packages that can have options passed to
them (e.g. graphicx)
• Options can be defined using

\DeclareOption{option}{code}

where option is the option name and code is what LATEX should do if
this option is specified.
• The default action for any option not defined is given by

\DeclareOption*{code}

Within code, the following commands may be used:


\CurrentOption name of current option
\OptionNotUsed Marks this option as being unprocessed.

Previous Next First Last Back Index 240


Writing Packages and Class Files

Package Options
• The options are then processed using the commands
\ExecuteOptions{options} list of default options
\ProcessOptions process in order defined
\ProcessOptions* process in order specified.
• It is also possible to pass options to another package using

\PassOptionsToPackage{option list}{package name}

• The named package must later be loaded using

\RequirePackage{package name}

Previous Next First Last Back Index 241


Writing Packages and Class Files

Package Options
• The options are then processed using the commands
\ExecuteOptions{options} list of default options
\ProcessOptions process in order defined
\ProcessOptions* process in order specified.
• It is also possible to pass options to another package using

\PassOptionsToPackage{option list}{package name}

• The named package must later be loaded using

\RequirePackage{package name}

Previous Next First Last Back Index 241


Writing Packages and Class Files

Package Options
• The options are then processed using the commands
\ExecuteOptions{options} list of default options
\ProcessOptions process in order defined
\ProcessOptions* process in order specified.
• It is also possible to pass options to another package using

\PassOptionsToPackage{option list}{package name}

• The named package must later be loaded using

\RequirePackage{package name}

Previous Next First Last Back Index 241


Writing Packages and Class Files

Extending the datetime Package — vardate.sty


\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{vardate}

\RequirePackage{ifthen}

\newboolean{dashdate}

\DeclareOption{dashdate}{\setboolean{dashdate}{true}}
\DeclareOption{nodashdate}{\setboolean{dashdate}{false}}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{datetime}}

\ExecuteOptions{dashdate}
\ProcessOptions

\RequirePackage{datetime}

\newdateformat{dashdate}{\THEDAY-\THEMONTH-\THEYEAR}
\ifthenelse{\boolean{dashdate}}{\dashdate}{}
\endinput

Previous Next First Last Back Index 242


Writing Packages and Class Files

Extending the datetime Package — vardate.sty


\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{vardate}

\RequirePackage{ifthen}

\newboolean{dashdate}

\DeclareOption{dashdate}{\setboolean{dashdate}{true}}
\DeclareOption{nodashdate}{\setboolean{dashdate}{false}}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{datetime}}

\ExecuteOptions{dashdate}
\ProcessOptions

\RequirePackage{datetime}

\newdateformat{dashdate}{\THEDAY-\THEMONTH-\THEYEAR}
\ifthenelse{\boolean{dashdate}}{\dashdate}{}
\endinput

Previous Next First Last Back Index 242


Writing Packages and Class Files

Extending the datetime Package — vardate.sty


\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{vardate}

\RequirePackage{ifthen}

\newboolean{dashdate}

\DeclareOption{dashdate}{\setboolean{dashdate}{true}}
\DeclareOption{nodashdate}{\setboolean{dashdate}{false}}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{datetime}}

\ExecuteOptions{dashdate}
\ProcessOptions

\RequirePackage{datetime}

\newdateformat{dashdate}{\THEDAY-\THEMONTH-\THEYEAR}
\ifthenelse{\boolean{dashdate}}{\dashdate}{}
\endinput

Previous Next First Last Back Index 242


Writing Packages and Class Files

Extending the datetime Package — vardate.sty


\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{vardate}

\RequirePackage{ifthen}

\newboolean{dashdate}

\DeclareOption{dashdate}{\setboolean{dashdate}{true}}
\DeclareOption{nodashdate}{\setboolean{dashdate}{false}}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{datetime}}

\ExecuteOptions{dashdate}
\ProcessOptions

\RequirePackage{datetime}

\newdateformat{dashdate}{\THEDAY-\THEMONTH-\THEYEAR}
\ifthenelse{\boolean{dashdate}}{\dashdate}{}
\endinput

Previous Next First Last Back Index 242


Writing Packages and Class Files

Extending the datetime Package — vardate.sty


\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{vardate}

\RequirePackage{ifthen}

\newboolean{dashdate}

\DeclareOption{dashdate}{\setboolean{dashdate}{true}}
\DeclareOption{nodashdate}{\setboolean{dashdate}{false}}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{datetime}}

\ExecuteOptions{dashdate}
\ProcessOptions

\RequirePackage{datetime}

\newdateformat{dashdate}{\THEDAY-\THEMONTH-\THEYEAR}
\ifthenelse{\boolean{dashdate}}{\dashdate}{}
\endinput

Previous Next First Last Back Index 242


Writing Packages and Class Files

Extending the datetime Package — vardate.sty


\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{vardate}

\RequirePackage{ifthen}

\newboolean{dashdate}

\DeclareOption{dashdate}{\setboolean{dashdate}{true}}
\DeclareOption{nodashdate}{\setboolean{dashdate}{false}}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{datetime}}

\ExecuteOptions{dashdate}
\ProcessOptions

\RequirePackage{datetime}

\newdateformat{dashdate}{\THEDAY-\THEMONTH-\THEYEAR}
\ifthenelse{\boolean{dashdate}}{\dashdate}{}
\endinput

Previous Next First Last Back Index 242


Writing Packages and Class Files

Extending the datetime Package — vardate.sty


\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{vardate}

\RequirePackage{ifthen}

\newboolean{dashdate}

\DeclareOption{dashdate}{\setboolean{dashdate}{true}}
\DeclareOption{nodashdate}{\setboolean{dashdate}{false}}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{datetime}}

\ExecuteOptions{dashdate}
\ProcessOptions

\RequirePackage{datetime}

\newdateformat{dashdate}{\THEDAY-\THEMONTH-\THEYEAR}
\ifthenelse{\boolean{dashdate}}{\dashdate}{}
\endinput

Previous Next First Last Back Index 242


Writing Packages and Class Files

Extending the datetime Package — vardate.sty


\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{vardate}

\RequirePackage{ifthen}

\newboolean{dashdate}

\DeclareOption{dashdate}{\setboolean{dashdate}{true}}
\DeclareOption{nodashdate}{\setboolean{dashdate}{false}}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{datetime}}

\ExecuteOptions{dashdate}
\ProcessOptions

\RequirePackage{datetime}

\newdateformat{dashdate}{\THEDAY-\THEMONTH-\THEYEAR}
\ifthenelse{\boolean{dashdate}}{\dashdate}{}
\endinput

Previous Next First Last Back Index 242


Writing Packages and Class Files

Extending the datetime Package — vardate.sty


\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{vardate}

\RequirePackage{ifthen}

\newboolean{dashdate}

\DeclareOption{dashdate}{\setboolean{dashdate}{true}}
\DeclareOption{nodashdate}{\setboolean{dashdate}{false}}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{datetime}}

\ExecuteOptions{dashdate}
\ProcessOptions

\RequirePackage{datetime}

\newdateformat{dashdate}{\THEDAY-\THEMONTH-\THEYEAR}
\ifthenelse{\boolean{dashdate}}{\dashdate}{}
\endinput

Previous Next First Last Back Index 242


Writing Packages and Class Files

Extending the datetime Package — vardate.sty


\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{vardate}

\RequirePackage{ifthen}

\newboolean{dashdate}

\DeclareOption{dashdate}{\setboolean{dashdate}{true}}
\DeclareOption{nodashdate}{\setboolean{dashdate}{false}}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{datetime}}

\ExecuteOptions{dashdate}
\ProcessOptions

\RequirePackage{datetime}

\newdateformat{dashdate}{\THEDAY-\THEMONTH-\THEYEAR}
\ifthenelse{\boolean{dashdate}}{\dashdate}{}
\endinput

Previous Next First Last Back Index 242


Writing Packages and Class Files

Extending the datetime Package — vardate.sty


\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{vardate}

\RequirePackage{ifthen}

\newboolean{dashdate}

\DeclareOption{dashdate}{\setboolean{dashdate}{true}}
\DeclareOption{nodashdate}{\setboolean{dashdate}{false}}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{datetime}}

\ExecuteOptions{dashdate}
\ProcessOptions

\RequirePackage{datetime}

\newdateformat{dashdate}{\THEDAY-\THEMONTH-\THEYEAR}
\ifthenelse{\boolean{dashdate}}{\dashdate}{}
\endinput

Previous Next First Last Back Index 242


Writing Packages and Class Files

Extending the datetime Package — vardate.sty


\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{vardate}

\RequirePackage{ifthen}

\newboolean{dashdate}

\DeclareOption{dashdate}{\setboolean{dashdate}{true}}
\DeclareOption{nodashdate}{\setboolean{dashdate}{false}}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{datetime}}

\ExecuteOptions{dashdate}
\ProcessOptions

\RequirePackage{datetime}

\newdateformat{dashdate}{\THEDAY-\THEMONTH-\THEYEAR}
\ifthenelse{\boolean{dashdate}}{\dashdate}{}
\endinput

Previous Next First Last Back Index 242


Writing Packages and Class Files

Extending the datetime Package — vardate.sty


\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{vardate}

\RequirePackage{ifthen}

\newboolean{dashdate}

\DeclareOption{dashdate}{\setboolean{dashdate}{true}}
\DeclareOption{nodashdate}{\setboolean{dashdate}{false}}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{datetime}}

\ExecuteOptions{dashdate}
\ProcessOptions

\RequirePackage{datetime}

\newdateformat{dashdate}{\THEDAY-\THEMONTH-\THEYEAR}
\ifthenelse{\boolean{dashdate}}{\dashdate}{}
\endinput

Previous Next First Last Back Index 242


Writing Packages and Class Files

Writing Class Files


Writing a class file is very similar to writing a package, except:
• Use \ProvidesClass instead of \ProvidesPackage
• Use the command

\PassOptionsToClass{options}{class name}

to pass options to the named class. This class file should later be
loaded using

\LoadClass{class name}

Previous Next First Last Back Index 243


Writing Packages and Class Files

Extending the report Class File — myrep.cls


\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{myrep}

\DeclareOption*{\PassOptionsToClass{report}}

\ProcessOptions
\LoadClass{report}
\RequirePackage[margins=1in]{geometry}

\renewcommand{\thechapter}{\Roman{chapter}}
\endinput

Previous Next First Last Back Index 244


Writing Packages and Class Files

@ Commands
• The @ character behaves differently depending whether it is in a
class or package (.cls/.sty) file or whether it is in the document
(.tex) file.
• In a .tex file, @ is treated as a symbol. The symbol can not occur
within a command name.
E.g. \c@page will produce: @ ¸ page.
• In a .cls or .sty file, @ is treated as a letter. The letter can
occur within a command name.
E.g. \c@page is a command name (an internal representation of
the page counter.)
• Commands containing the @ symbol are internal commands, and
should only be used in a class or package file.

Previous Next First Last Back Index 245


Writing Packages and Class Files

@ Commands
• The @ character behaves differently depending whether it is in a
class or package (.cls/.sty) file or whether it is in the document
(.tex) file.
• In a .tex file, @ is treated as a symbol. The symbol can not occur
within a command name.
E.g. \c@page will produce: @ ¸ page.
• In a .cls or .sty file, @ is treated as a letter. The letter can
occur within a command name.
E.g. \c@page is a command name (an internal representation of
the page counter.)
• Commands containing the @ symbol are internal commands, and
should only be used in a class or package file.

Previous Next First Last Back Index 245


Writing Packages and Class Files

@ Commands
• The @ character behaves differently depending whether it is in a
class or package (.cls/.sty) file or whether it is in the document
(.tex) file.
• In a .tex file, @ is treated as a symbol. The symbol can not occur
within a command name.
E.g. \c@page will produce: @ ¸ page.
• In a .cls or .sty file, @ is treated as a letter. The letter can
occur within a command name.
E.g. \c@page is a command name (an internal representation of
the page counter.)
• Commands containing the @ symbol are internal commands, and
should only be used in a class or package file.

Previous Next First Last Back Index 245


Writing Packages and Class Files

@ Commands
• The @ character behaves differently depending whether it is in a
class or package (.cls/.sty) file or whether it is in the document
(.tex) file.
• In a .tex file, @ is treated as a symbol. The symbol can not occur
within a command name.
E.g. \c@page will produce: @ ¸ page.
• In a .cls or .sty file, @ is treated as a letter. The letter can
occur within a command name.
E.g. \c@page is a command name (an internal representation of
the page counter.)
• Commands containing the @ symbol are internal commands, and
should only be used in a class or package file.

Previous Next First Last Back Index 245


Writing Packages and Class Files

Redefining Page Styles


• The command \pagestyle{style} calls the command \ps@style,
and it is this command that redefines the header and footer.
• The headers and footers given by the commands: \@oddhead,
\@evenhead, \@oddfoot and \@evenfoot. It is these commands
that need to be redefined to change the headers and footers.
• Example: define a new page style called, say, example:
\newcommand{\ps@example}{%
\renewcommand{\@oddhead}{}
\renewcommand{\@evenhead}{}
\renewcommand{\@oddfoot}{\hfill-\thepage-\hfill}
\renewcommand{\@evenfoot}{\hfill-\thepage-\hfill}
}

Previous Next First Last Back Index 246


Writing Packages and Class Files

Redefining Page Styles


• The command \pagestyle{style} calls the command \ps@style,
and it is this command that redefines the header and footer.
• The headers and footers given by the commands: \@oddhead,
\@evenhead, \@oddfoot and \@evenfoot. It is these commands
that need to be redefined to change the headers and footers.
• Example: define a new page style called, say, example:
\newcommand{\ps@example}{%
\renewcommand{\@oddhead}{}
\renewcommand{\@evenhead}{}
\renewcommand{\@oddfoot}{\hfill-\thepage-\hfill}
\renewcommand{\@evenfoot}{\hfill-\thepage-\hfill}
}

Previous Next First Last Back Index 246


Writing Packages and Class Files

Redefining Page Styles


• The command \pagestyle{style} calls the command \ps@style,
and it is this command that redefines the header and footer.
• The headers and footers given by the commands: \@oddhead,
\@evenhead, \@oddfoot and \@evenfoot. It is these commands
that need to be redefined to change the headers and footers.
• Example: define a new page style called, say, example:
\newcommand{\ps@example}{%
\renewcommand{\@oddhead}{}
\renewcommand{\@evenhead}{}
\renewcommand{\@oddfoot}{\hfill-\thepage-\hfill}
\renewcommand{\@evenfoot}{\hfill-\thepage-\hfill}
}

Previous Next First Last Back Index 246


Writing Packages and Class Files

Changing the Section Headings


Sections, subsections etc headings can be changed by redefining \section,
\subsection etc. These commands should use the command
\@startsection{type}{level}{indent}{before}{after}{style}
to format the heading.
type The sectioning type. (section, subsection etc)
level A number representing the sectioning level
indent A length, specifying indentation from the left margin
before The absolute value of this length gives the vertical distance before
heading. If the value is negative, the first paragraph will not be
indented.
after The absolute value of this length gives the vertical distance after
heading. If negative, running heading used.
style Declarations for setting the style (e.g. \bfseries)

Previous Next First Last Back Index 247


Writing Packages and Class Files

Example
Suppose you want to change the section headings so that they appear
in a large italic font, you could do something like:
\renewcommand{\section}{\@startsection
{section}% % the name
{1}% % the level
{0mm}% % the indent
{-\baselineskip}% % the before skip
{0.5\baselineskip}% % the after skip
{\normalfont\large\itshape}} % the style

Previous Next First Last Back Index 248


Writing Packages and Class Files

Changing Chapter Headings


If you are using the report class file, or something similar, you can
modify the chapter headings by redefining:
• \@makechapterhead for numbered chapters (produced using
\chapter)
• \@makeschapterhead for unnumbered chapters (produced using
\chapter*)
If you want to modify the part headings, you need to redefine:
• \@part for numbered parts (produced using \part)
• \@spart for unnumbered parts (produced using \part*)
The easiest way to do this is copy the code from the class file, and
modify the appropriate formatting commands.

Previous Next First Last Back Index 249


Writing Packages and Class Files

Example
This example changes the numbered chapter headings so that a line appears above
and below the heading, and the heading itself appears in small capitals.
\renewcommand{\@makechapterhead}[1]{%
\vspace*{50\p@}%
{\parindent \z@ \raggedright \normalfont
\hrule % horizontal line
\vspace{5pt}% % add some vertical space
\ifnum \c@secnumdepth >\m@ne
\huge\scshape \@chapapp\space \thechapter % Chapter followed by number
\par\nobreak
\vskip 20\p@
\fi
\interlinepenalty\@M
\Huge \scshape #1\par % chapter title
\vspace{5pt}% % add some vertical space
\hrule % horizontal rule
\nobreak
\vskip 40\p@
}}

Previous Next First Last Back Index 250


Writing Packages and Class Files

Exercise 24 (Page 26)


• Write a class file that loads the report class file and that:
– modifies the chapter headings so that a line appears above and
below the heading and the heading appears in small capitals
centred.
– modifies the section headings so that they appear in a large
sans-serif font.
• Modify the document you used in Exercise 4 so that it uses your
new class file instead of the report class file.

Previous Next First Last Back Index 251


Bibliography

References
[1] “A Guide to LATEX 2ε : document preparation for beginners and
advanced users”, Helmut Kopka and Patrick W. Daly,
Addison-Wesley (1995).
[2] “The LATEX Companion”, Michel Goossens, Frank Mittelbach and
Alexander Samarin (Addison-Wesley, 1994).
[3] “The LATEX Graphics Companion”, Michel Goossens, Sebastian
Rahtz and Frank Mittelbach, Addison-Wesley (1997).
[4] “The LATEX Web Companion”, Michel Goossens and Sebastian
Rahtz, Addison-Wesley (1999).

Previous Next First Last Back Index 252


Web Sites

Web Sites

• TEX archive site: http://www.tex.ac.uk/


• These slides are available at:
http://theoval.cmp.uea.ac.uk/~nlct/latex/csed/csed.html

Previous Next First Last Back Index 253


Index
A
B
Index C
D
E
¡ 107 = 462 F
G
" 109 \= 63–68, 109
H
’ 107 ¿ 107 I
\’ 109 @ 493–496 J
K
’’ 107 \@evenfoot 497–499
L
( 231 \@evenhead 497–499 M
\( 198–203 \@makechapterhead 502 N
O
) 231 \@makeschapterhead 502
P
\) 198–203 \@oddfoot 497–499 Q
\, 107 \@oddhead 497–499 R
S
- 107 \@part 502
T
-- 107 \@spart 502 U
--- 107 \@startsection 500 V
W
. 231 [ 231
X
\. 109 \[ 205–210 Y
/ 231 \# 105 Z

Previous Next First Last Back Index 254


Index
A
B
$ 63–68, 198–203 \] 205–210 C
\$ 105 ] 231 D
E
% 62 \‘ 109 F
\% 105 ‘ 107 G
& 183–188 ‘‘ 107 H
\& 105 I
J
\\ 148, 183–187 A K
212–218, 221 \AA 111 L
\ 105 \aa 111 M
N
^ 212–218 \aaalph 439 O
\^ 109 \abalph 439 P
~ 151 abstract environment 123, 138–142 Q
\~ 109 R
\addtocounter 424
S
\| 231 \addtolength 308–311 T
| 189–192, 231 \AE 111 U
> 462 \ae 111 V
W
< 462 \Alph 431 X
\{ 105, 231 \alph 431–436 Y
\} 105, 231 \alpha 223 Z

Previous Next First Last Back Index 254


Index
A
B
\appendix 126 BibTEX 275, 291, 297–300 C
\approx 246 \bigcap 225 D
E
\arabic 431–436 \bigcup 225 F
\arccos 221 \bigodot 225 G
\arcsin 221 \bigoplus 225 H
\bigotimes 225 I
\arctan 221
J
\arg 221 \bigsqcup 225 K
array environment 233 \biguplus 225 L
\author 124, 403 \bigvee 225 M
N
\bigwedge 225 O
B \binary 439 P
\b 109 \boolean 456–459, 478–490 Q
R
\backslash 231
S
\begin 77–82 C T
\beta 223 \c 109 U
\bfseries 92–95, 97, 500 \caption 384–389, 419–423 V
W
\bibliography 287–289 \cdots 237 X
\bibliographystyle 287–289, center environment 144 Y
292–296 \centering 144 Z

Previous Next First Last Back Index 254


Index
A
B
\centerline 147, 153, 196 \dag 105 C
\chapter 121, 126, 138–142, 419– \dashdate 478–490 D
E
423, 502 \date 124, 403 F
\chapter* 502 \ddag 105 G
\chi 223 \ddots 237 H
I
\cite 273, 300 \DeclareOption 472–474, 478–490
J
\clearpage 152 \DeclareOption* 472–474, 478– K
\cline 189–192 490, 492 L
\coprod 225 \deg 221 M
N
\copyright 105 \Delta 224 O
\cos 221 \delta 223 P
\cosh 221 \det 221 Q
\cot 221 R
\diamondpar 354
S
\coth 221 \dim 221 T
\csc 221 displaymath environment 205–210, U
\CurrentOption 472–474, 478–490 228–230, 238–243 V
W
document environment 88, 89, 265, X
D 266 Y
\d 109 \documentclass 88–90, 114–119, Z

Previous Next First Last Back Index 254


Index
A
B
402, 404–406 \eta 223 C
\doublebox 343–347 \ExecuteOptions 475–490 D
E
\Downarrow 231 exercise environment 418 F
\downarrow 231 \exp 221 G
\externaldocument 259–262 H
I
E
J
\else 263, 264, 446–449 F K
\em 97 \fbox 338–347 L
\emph 96 \fboxrule 339–342 M
N
\end 77–82 \fboxsep 339–342 O
\endinput 465–470, 478–490, 492 ffi 111 P
enumerate environment 178–180, ffl 111 Q
R
182, 419–423, 441–444 \fi 263, 264, 446–449
S
\epsilon 223 fi 111 T
eqnarray environment 238–243 figure environment 384–389, 392 U
eqnarray* environment 238–243 fl 111 V
W
\equal 461 flushleft environment 144 X
equation environment 205–210, 238– flushright environment 144 Y
243, 247–251, 419–423 \fnsymbol 431 Z

Previous Next First Last Back Index 254


Index
A
B
\footnote 419–423 \hline 189–192 C
footnotesize environment 101 \hoffset 316 D
E
\footnotesize 101 \hom 221 F
\footskip 316 \href 263, 264 G
\frac 220, 228–230 Huge environment 101 H
I
\framebox 338–342 \Huge 101
J
huge environment 101 K
G \huge 101 L
\Gamma 224 M
N
\gamma 223 I O
\gcd 221 \i 105 P
\ifcase 446–449 Q
R
H \ifpdf 263, 264, 446–450, 460
S
\H 109 \ifthenelse 451–455, 459, 460, T
\headheight 316 478–490 U
\headsep 316 \includegraphics 375–378 V
W
\heartpar 356, 357 \inf 221 X
\hexadecimal 439 \int 225 Y
\hfill 497–499 \iota 223 Z

Previous Next First Last Back Index 254


Index
A
B
\isodd 462 \labelenumiv 441 C
itemize environment 176, 177, 180, \Lambda 224 D
E
182 \lambda 223 F
\itshape 97 \landscapeonly 402 G
\langle 231 H
J LARGE environment 101 I
\j 105 J
\LARGE 101 K
K Large environment 101 L
\Large 101 M
\kappa 223 N
\ker 221 large environment 101 O
\large 101 P
L \LaTeX 83–86, 263, 264 Q
\lceil 231 R
\L 111 S
\l 111 \ldots 105 T
\label 247–251, 254, 384–389, \left 228–230 U
424, 445 \lengthtest 464 V
W
\labelenumi 441 \leq 246 X
\labelenumii 441 \lfloor 231 Y
\labelenumiii 441 \lg 221 Z

Previous Next First Last Back Index 254


Index
A
B
\lim 221 \max 221 C
\liminf 221 \mbox 331–336, 338 D
E
\limsup 221 \mdseries 97 F
\linebreak 149 \min 221 G
\listoffigures 396–399 minipage environment 353, 374 H
I
\listoftables 396–399 minipages environment 12–21
J
\ln 221 \month 446–449 K
\LoadClass 491, 492 \mu 223 L
\log 221 \multicolumn 194 M
N
lrbox environment 365–369, 371 O
N P
M \NeedsTeXFormat 465–470, 478– Q
R
\makebox 331–335, 337, 338, 360– 490, 492
S
363 \neq 237 T
\maketitle 124, 128–132, 138– \newboolean 456–458, 478–490 U
143, 403 \newcommand 154–159, 362, 363, V
W
\marginparsep 316 497–499 X
\marginparwidth 316 \newcounter 419–423, 432–436 Y
math environment 198–203 \newdateformat 478–490 Z

Previous Next First Last Back Index 254


Index
A
B
\newenvironment 416 \O 111 C
\newlength 312–314, 360–363 \o 111 D
E
\newline 148 \octal 439 F
\newpage 152 \oddsidemargin 316 G
\newpagestyle 414 \OE 111 H
I
\newsavebox 365–369 \oe 111
J
\noindent 418 \oint 225 K
\nolinebreak 150 \Omega 224 L
\nonumber 238–243 \omega 223 M
N
\nopagebreak 152 \OptionNotUsed 472–474 O
\normalfont 97 \or 446–449 P
normalsize environment 101 \ordinal 437 Q
\normalsize 101 \Ordinalstring 437 R
S
\nu 223 \ordinalstring 437 T
\Numberstring 437 \Ovalbox 343–347 U
\numberstring 437 \ovalbox 343–347 V
W
\nutshape 357 X
P Y
O \P 105 Z

Previous Next First Last Back Index 254


Index
A
B
\pagebreak 152 \Phi 224 C
\pagenumbering 138–142 \phi 223 D
E
\pageref 247–251 \Pi 224 F
\pagestyle 133–137, 497–499 \pi 223 G
\par 87 \pm 246 H
\portraitonly 402 I
\paragraph 121
J
\parbox 352, 374 \pounds 105 K
\parindent 317 \Pr 221 L
\parskip 317 \ProcessOptions 475–490, 492 M
\ProcessOptions* 475–477 N
\part 121, 502 O
\part* 502 \prod 225 P
\partial 246 \ProvidesClass 491, 492 Q
\PassOptionsToClass 491 \ProvidesPackage 465–470, 478– R
S
\PassOptionsToClass{report} 491
T
492 \Psi 224 U
\PassOptionsToPackage 475–490 \psi 223 V
W
\pdfinfo 450 Q X
PDFLATEX 173–175, 263, 264, 272, Y
375–377, 379, 383, 450 R Z

Previous Next First Last Back Index 254


Index
A
B
\raggedleft 144 \rotatebox 380 C
\raggedright 144 \rule 359–363 D
E
\raisebox 358 F
\rangle 231 S G
\rceil 231 \S 105 H
I
\ref 247–251, 254, 259–262, 384– \sb 212–218 J
389, 424, 445 \sbox 365–370 K
\reflectbox 380 \scalebox 380 L
\refstepcounter 424 scriptsize environment 101 M
N
\renewcommand 154–159, 425–430, \scriptsize 101 O
432–436, 492, 497–499 \scshape 97 P
\RequirePackage 475–490, 492 \sec 221 Q
\resizebox 380 R
\section 121, 126, 247–251, 419–
S
\rfloor 231 423, 500 T
\rho 223 \setboolean 456–458, 478–490 U
\right 228–230 \setcounter 424 V
W
\rmfamily 97 \setlength 308–311, 339–342 X
\Roman 431–436, 492 \settodepth 312–314 Y
\roman 431 \settoheight 312–314 Z

Previous Next First Last Back Index 254


Index
A
B
\settowidth 312–314, 360–363 \SS 111 C
sffamily environment 77–82 \ss 111 D
E
\sffamily 97 \stepcounter 424 F
\shadowbox 343–347 \strikethrough 362, 363 G
\shapepar 354–357 \subfigure 394 H
I
\Sigma 224 \subparagraph 121
J
\sigma 223 \subsection 121, 500 K
\sin 221 \subsubsection 121 L
\sinh 221 \sum 225 M
N
slide environment 402, 404–406 \sup 221 O
slide* environment 402, 404–406 P
\slideframe 407–409 T Q
\slidestyle 415 R
\t 109
S
\slshape 97 table environment 384–389 T
small environment 101 \tableofcontents 128–132, 138– U
\small 101 143 V
W
\sp 212–218 tabular environment 183–187, 189– X
\sqrt 220 192, 196, 233, 330 Y
\squarepar 355 \tan 221 Z

Previous Next First Last Back Index 254


Index
A
B
\tanh 221 \textsl 96 C
\tau 223 \texttrademark 105 D
E
\TeX 263, 264 \texttt 96 F
\textasciicircum 105 \textup 96 G
\textasciitilde 105 \textvisiblespace 105 H
I
\textbackslash 105 \textwidth 301–306, 308–311, 316
J
\textbar 105 \the 312–314 K
\textbf 72, 73, 92–96 thebibliography environment 273, L
\textbullet 105 275 M
N
\textgreater 105 \thechaper 432–436 O
\textheight 316 \thechapter 432–436, 492 P
\textit 96 \THEDAY 478–490 Q
\textless 105 \theenumi 441 R
S
\textmd 96 \theenumii 441 T
\textnormal 96 \theenumiii 441 U
\textregistered 105 \theenumiv 441 V
W
\textrm 96 \thefootnote 432–436 X
\textsc 96 \thelemma 432–436 Y
\textsf 96 \THEMONTH 478–490 Z

Previous Next First Last Back Index 254


Index
A
B
\thepage 425–430, 497–499 \Updownarrow 231 C
\thesection 425–430, 432–436 \updownarrow 231 D
E
\theslide 425–430 \uppercase 277–283 F
\Theta 224 \upshape 97 G
\theta 223 \Upsilon 224 H
I
\THEYEAR 478–490 \upsilon 223
J
\thispagestyle 133–137 \usebox 365–369 K
tiny environment 101 \usepackage 255–258, 265, 266 L
\tiny 101 M
N
\title 124, 403 V O
\today 63–68, 259–262, 265, 266, \v 109 P
471 \value 424, 462 Q
\topmargin 316 R
\varepsilon 223, 246
S
\ttfamily 97 \varphi 223 T
\varpi 223 U
U \varrho 223 V
W
\u 109 \varsigma 223 X
\Uparrow 231 \vartheta 223 Y
\uparrow 231 \vdots 237 Z

Previous Next First Last Back Index 254


Index
A
B
\voffset 316 \xi 223 C
\vref 259–262 D
E
Y F
W
\yen 105 G
\whiledo 451–455, 463 H
I
X Z J
\Xi 224 \zeta 223 K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z

Previous Next First Last Back Index 254

You might also like