2470 lines
96 KiB
Plaintext
2470 lines
96 KiB
Plaintext
The teTeX HOWTO: The Linux-teTeX Local Guide
|
||
Robert Kiesling
|
||
v3.7, 9 November 1998
|
||
|
||
This document covers the basic installation and usage of the teTeX TeX
|
||
and LaTeX implementation under the major U.S. Linux distributions, and
|
||
auxiliary packages like Ghostscript. Contents of the teTeX HOWTO: The
|
||
Linux-teTeX Local Guide are Copyright (C) 1997, 1998 by Robert A.
|
||
Kiesling. The exact terms of copying are given in the introduction
|
||
and the appendices. Registered trademarks are the property of their
|
||
respective owners. Please send all complaints, suggestions, errata,
|
||
and any miscellany to kiesling@ix.netcom.com, so I can keep this docu
|
||
ment as complete and up to date as possible.
|
||
______________________________________________________________________
|
||
|
||
Table of Contents
|
||
|
||
|
||
|
||
1. Introduction.
|
||
|
||
1.1 Copyright.
|
||
1.2 Software described in this document.
|
||
1.2.1 teTeX.
|
||
1.2.2 Text editors.
|
||
1.2.3 dvips.
|
||
1.2.4 Fonts.
|
||
|
||
2. Using teTeX.
|
||
|
||
2.1 Printing the documentation.
|
||
|
||
3. TeX commands.
|
||
|
||
3.1 Command overview.
|
||
3.2 Font commands.
|
||
3.3 Paragraph styles and dimensions.
|
||
3.3.1 Tolerances. (What are those black rectangles after every line?)
|
||
3.4 Page layout.
|
||
3.5 Page numbers, headers, and footers.
|
||
3.6 Titles and macros.
|
||
|
||
4. LaTeX commands.
|
||
|
||
4.1 Document structure.
|
||
4.2 Characters and type styles.
|
||
4.3 Margins and line spacing.
|
||
4.4 Document classes.
|
||
4.4.1 Articles and reports.
|
||
4.4.2 Letters.
|
||
|
||
5. LaTeX extension packages and other resources.
|
||
|
||
6. Mixing text and graphics with
|
||
dvips.
|
||
6.1 What if my printer isn't supported?
|
||
|
||
7. Using Postscript fonts.
|
||
|
||
8. Appendix A: CTAN site list.
|
||
|
||
9. Appendix B: Installing the CTAN teTeX distribution.
|
||
|
||
9.1 Installing the binary distribution.
|
||
9.1.1 Minimal installation.
|
||
9.1.2 Complete installation.
|
||
9.2 Base system configuration.
|
||
9.3 Installing the CTAN source distribution.
|
||
9.4 Post-installation configuration details.
|
||
|
||
10. Appendix C: Distribution and Copyright.
|
||
|
||
10.1 Distribution.
|
||
10.2 GNU GENERAL PUBLIC LICENSE
|
||
10.3 How to Apply These Terms to Your New Programs
|
||
|
||
|
||
______________________________________________________________________
|
||
|
||
1. Introduction.
|
||
|
||
|
||
|
||
1.1. Copyright.
|
||
|
||
The teTeX-HOWTO is copyright (C) 1997, 1998 by Robert Kiesling.
|
||
Permission is granted to make and distribute verbatim copies of this
|
||
manual provided that the copyright notice and this permission notice
|
||
are preserved on all copies.
|
||
|
||
Permission is granted to copy and distribute modified versions of this
|
||
manual under the conditions for verbatim copying, provided also that
|
||
the sections entitled, ``Distribution,'' and, ``GNU General Public
|
||
License,'' are included exactly as in the original, and provided that
|
||
the entire resulting derived work is distributed under the terms of a
|
||
permission notice identical to this one.
|
||
|
||
Permission is granted to copy and distribute translations of this
|
||
manual into another language, under the above conditions for modified
|
||
versions. except that the sections entitled, ``Distribution,'' and,
|
||
``GNU General Public License,'' may be included in a translation
|
||
approved by the Free Software Foundation instead of in the original
|
||
English. Please refer to Section ``Distribution and Copyright'' for
|
||
terms of copying.
|
||
|
||
|
||
1.2. Software described in this document.
|
||
|
||
TeX handles only the formatting part of the document preparation.
|
||
Generating output from TeX is like compiling source code into object
|
||
code, which still needs to be linked. You prepare an input file with
|
||
a text editor----what most people think of as ``word processing''---
|
||
and format the input file document with TeX to produce a device-
|
||
independent output file, called a .dvi file.
|
||
|
||
You also need a program or two to translate TeX's .dvi output for your
|
||
screen and printer. These programs are collectively known as
|
||
``dviware.'' For example, TeX itself only makes requests for fonts.
|
||
It is up to the .dvi output translator to provide the actual font for
|
||
the output regardless of whether the medium is a video screen or
|
||
paper. This extra step may seem overly complicated, but the
|
||
abstraction allows documents to display the same on different devices
|
||
with little or no change to the original document.
|
||
|
||
|
||
|
||
1.2.1. teTeX.
|
||
|
||
TeX is implemented for practically every serious computer system in
|
||
the world---and quite a few ``non-serious'' ones---so implementors
|
||
must provide the installation facilities for all of them. This
|
||
accounts in part for teTeX's complexity, in addition to the inherent
|
||
complexity of any TeX installation. It also accounts for the fact
|
||
that installing the system yourself is a significant task, and unless
|
||
you are already familiar with TeX, it is easy to get lost in the
|
||
numerous executable programs, TeX files, documentation, and fonts.
|
||
|
||
Fortunately, teTeX is part of the GNU/Linux distribution. You can
|
||
install the package much more easily using GNU/Linux installation
|
||
tools. You may already have teTeX installed on your system. If so,
|
||
you can skip ahead to Section ``Using teTeX''.
|
||
|
||
However, if you want to install the package, the archives necessary
|
||
for a workable teTeX installation are on the CTAN archive network.
|
||
There is a list of these sites in Section ``CTAN site list''.
|
||
|
||
CTAN is the Comprehensive TeX Archive Network, a series of anonymous
|
||
FTP sites that archive TeX programs, macros, fonts, and documentation.
|
||
In the course of using TeX you'll probably become familiar with at
|
||
least one CTAN site. In this document, a pathname like
|
||
~CTAN/contrib/pstricks means ``look in the directory contrib/pstricks
|
||
of your nearest CTAN site.''
|
||
|
||
The installation of the generic teTeX distribution described in
|
||
Section ``Installing the CTAN teTeX distribution'' concentrates on the
|
||
Intel versions of Linux. Installing teTeX on other hardware should
|
||
require only substituting the appropriate executable program archive
|
||
in the installation process.
|
||
|
||
In addition to the executable programs, the distribution includes all
|
||
of the TeX and LaTeX package, metafont and its sources, bibtex,
|
||
makeindex, and all of the documentation... more than 4 megabytes'
|
||
worth. The documentation covers everything you will forseeably need
|
||
to know to get started. So, you should install all of the documents.
|
||
Not only will you eventually read them, the documents themselves
|
||
provide many examples of ``live'' TeX and LaTeX code.
|
||
|
||
TeX was written by Professor Donald Knuth of Stanford University. It
|
||
is a lower-level typesetting language for all of the higher-level
|
||
packages like LaTeX. Essentially, LaTeX is a set of TeX macros that
|
||
provide convenient, predefined document formats for end users. If you
|
||
like the formats provided by LaTeX, you may never need to learn bare-
|
||
bones TeX programming. The difference between the two languages is
|
||
like the difference between assembly language and C. You can have the
|
||
speed and flexibility of TeX, or the convenience of LaTeX.
|
||
|
||
By the way, the letters of the word ``TeX'' are Greek, tau-epsilon-
|
||
chi. It is not a fraternity, but the root of the Greek word, techne,
|
||
which means art and/or science. ``TeX'' is not pronounced like the
|
||
first syllable in ``Texas.'' The chi has no English equivalent, but
|
||
TeX is generally pronounced so that it rhymes with ``yecch,'' to use
|
||
Professor Knuth's example from The TeXBook, which is one of the
|
||
standard TeX references. When writing, ``TeX,'' on character devices,
|
||
always use the standard capitalization, or the \TeX{} macro in
|
||
typesetting.
|
||
|
||
|
||
1.2.2. Text editors.
|
||
|
||
Any of the editors that work under Linux---jed, joe, jove, vi, vim,
|
||
stevie, Emacs, and microemacs---will work to prepare a TeX input file,
|
||
as long as the editor reads and writes plain-vanilla ASCII text. My
|
||
preference is GNU Emacs. There are several reasons for this:
|
||
|
||
· You can format, preview and print documents with Emacs's TeX and
|
||
LaTeX modes.
|
||
|
||
· Emacs can automatically insert TeX-style, ``curly quotes,'' as you
|
||
type, rather than the "ASCII-vanilla" kind.
|
||
|
||
· Emacs has integrated support for Texinfo, a hypertext documentation
|
||
system.
|
||
|
||
· Emacs is widely supported. Versions 19.34 and later, for example,
|
||
are included in the major U.S. Linux distributions. The most
|
||
recent version from the GNU archives is 20.3.
|
||
|
||
· Emacs does everything except butter the toast in the morning.
|
||
|
||
· Emacs is free.
|
||
|
||
|
||
|
||
1.2.3. dvips .
|
||
|
||
Tomas Rokicki's dvips generates Postscript from a .dvi file. In
|
||
addition, it runs Metafont if necessary to generate the bit mapped
|
||
fonts it needs or uses Postscript fonts for the output. It can also
|
||
crop and resize pages and perform graphics translations from
|
||
instructions in a TeX or LaTeX file,
|
||
|
||
The dvips program is part of the teTeX distribution. It is discussed
|
||
fully in Section ``Mixing text and graphics with <tt>dvips</tt>''
|
||
|
||
|
||
1.2.4. Fonts.
|
||
|
||
Much of TeX's, and therefore LaTeX's, complexity, arises from its
|
||
implementation of various font systems, and the way these fonts are
|
||
specified. A major improvement of LaTeX 2e over its predecessor was
|
||
the way users specify fonts, the former New Font Selection Scheme.
|
||
They're discussed in Section ``Characters and type styles'', Section
|
||
``TeX Font Commands'', and Section ``Using Postscript fonts''.)
|
||
|
||
teTeX comes distributed with about a dozen standard fonts preloaded,
|
||
which is enough to get you started. Also provided are the font
|
||
metrics descriptions, in .tfm (TeX font metric) files. To generate
|
||
the other fonts that you need, it is simply a matter of installing the
|
||
metafont sources. teTeX's .dvi utilities will invoke metafont
|
||
automatically and generate the Computer Modern fonts you need.
|
||
|
||
|
||
2. Using teTeX.
|
||
|
||
Theoretically, at least, everything is installed correctly and is
|
||
ready to run. teTeX is a very large software package. As with any
|
||
complex software package, you'll want to start by learning teTeX
|
||
slowly, instead of being overwhelmed by its complexity.
|
||
|
||
At the same time, we want the software to do something useful. So
|
||
instead of watching TeX typeset
|
||
|
||
``Hello, World!''
|
||
|
||
|
||
as Professor Knuth suggests, we'll produce a couple of teTeX's own
|
||
documents in order to test it.
|
||
|
||
|
||
2.1. Printing the documentation.
|
||
|
||
You should be logged in as root the first few times you run teTeX. If
|
||
you aren't, Metafont may not be able to create the necessary
|
||
directories for its fonts. The texconfig program includes an option
|
||
to make the font directories world-writable, but if you're working on
|
||
a multi-user system, security considerations may make this option
|
||
impractical or undesirable.
|
||
|
||
In either instance, if you don't have the appropriate permissions to
|
||
write to the directories where the fonts are stored, Metafont will
|
||
complain loudly because it can't make the directories. You won't see
|
||
any output because you have a bunch of zero-length font characters.
|
||
This is no problem. Simply log out, re-login as root, and repeat the
|
||
offending operation.
|
||
|
||
The nice thing about teTeX is that, if you blow it, no real harm is
|
||
done. It's not like a compiler, where, say, you will trash the root
|
||
partition if a pointer goes astray. What, you haven't read the teTeX
|
||
manual yet? Of course you haven't. It's still in the distribution,
|
||
in source code form, waiting to be output.
|
||
|
||
So, without further delay, you will want to read the teTeX manual.
|
||
It's located in the directory
|
||
|
||
/usr/lib/teTeX/texmf/doc/tetex.
|
||
|
||
|
||
|
||
The LaTeX source for the manual is called TETEXDOC.tex. (The .tex
|
||
extension is used for both TeX and LaTeX files. Some editors, like
|
||
Emacs, can tell the difference.) There is also a file TETEXDOC.dvi
|
||
included with the distribution, which you might want to keep in a safe
|
||
place---say, another directory ---in case you want to test your .dvi
|
||
drivers later. With that out of the way, type
|
||
|
||
latex TETEXDOC.tex
|
||
|
||
|
||
LaTeX will print several warnings. The first,
|
||
|
||
LaTeX Warning: Label(s) may have changed. Rerun to get the
|
||
cross-references right.
|
||
|
||
|
||
is standard. It's common to build a document's Table of Contents by
|
||
LaTeXing the document twice. So, repeat the command. The other warn
|
||
ings can be safely ignored. They simply are informing you that some
|
||
of the FTP paths mentioned in the documentation are too wide for their
|
||
alloted spaces. Sections ``Paragraph styles and dimensions'' and
|
||
``Tolerances'' describe horizontal spacing in more detail.
|
||
|
||
teTeX will have generated several files from TETEXDOC.tex. The one
|
||
that we're interested in is TETEXDOC.dvi. This is the device-
|
||
independent output which you can send either to the screen or the
|
||
printer. If you're running teTeX under the X Windows System, you can
|
||
preview the document with xdvi.
|
||
|
||
For the present, let's assume that you have a HP LaserJet II. You
|
||
would give the command
|
||
|
||
dvilj2 TETEXDOC.dvi
|
||
|
||
|
||
which writes a PCL output file from TETEXDOC.dvi, including soft fonts
|
||
which will be downloaded to the LaserJet. This is not a feature of
|
||
TeX or LaTeX, but a feature provided by dvilj2. Other .dvi drivers
|
||
provide features that are relevant to the devices they support.
|
||
dvilj2 tries to fill the font requests which were made in the original
|
||
LaTeX document with the the closest equivalents available on the sys
|
||
tem. In the case of a plain text document like TETEXDOC.tex, there
|
||
isn't much difficulty. All of the fonts requested by TETEXDOC.tex
|
||
will be generated by metafont, which is automatically invoked by
|
||
dvilj2, if the fonts aren't already present. (If you're running
|
||
dvilj2 for the first time, the program may need to generate all of the
|
||
fonts.) There are several options that control font generation via
|
||
dvilj2. They're outlined in the manual page. At this point, you
|
||
shouldn't need to operate metafont directly. If you do, then some
|
||
thing has gone awry with your installation. All of the .dvi drivers
|
||
will invoke metafont directly via the kpathsea path-searching
|
||
library---the discussion of which is beyond the scope of this docu
|
||
ment---and you don't need to do any more work with metafont for the
|
||
present---all of the metafont sources for the Computer Modern font
|
||
library are provided.
|
||
|
||
|
||
You can print TETEXDOC.lj with the command
|
||
|
||
lpr TETEXDOC.lj
|
||
|
||
|
||
You may also need to install a printer filter that understands PCL.
|
||
|
||
The nine-page teTeX Guide provides some useful information for further
|
||
configuring your system, some of which I have mentioned, much that
|
||
this document doesn't cover.
|
||
|
||
Some of the information in the next section I haven't been able to
|
||
test, because I have a non-Postscript HP Deskjet 400 color ink jet
|
||
printer connected to the computer's parallel port. However, not
|
||
owning a Postscript printer is no barrier to printing text and
|
||
graphics from your text documents. Ghostscript is available in most
|
||
Linux distributions and it could already be installed on your system.
|
||
|
||
|
||
3. TeX commands.
|
||
|
||
Preparing documents for TeX typesetting is easy. Make sure there's a
|
||
blank line between the paragraphs of a plain text file, and run file
|
||
through the TeX program with the command
|
||
|
||
tex your_text_file
|
||
|
||
|
||
The result will be a file of the same base name and the extension
|
||
.dvi. TeX formats the text in 10-point, Computer Modern Roman, sin
|
||
gle-spaced, with justified left and right margins. If you receive
|
||
error messages from special characters like dollar signs, escape them
|
||
with a backslash character, \, and run TeX on the file again. You
|
||
should be able to process the resulting file with the .dvi file trans
|
||
lator of your choice (see above) to get printed output.
|
||
|
||
One peculiarity of TeX input is that you must use opening and closing
|
||
quotes, which are denoted in the input file with the grave accent and
|
||
single quote characters. Emacs' TeX mode does this for you
|
||
automatically.
|
||
|
||
"These are ASCII-type quotes."
|
||
``These are `TeX-style' quotes.''
|
||
|
||
|
||
|
||
3.1. Command overview.
|
||
|
||
Commands in TeX start with a backslash (``\''). For example, the
|
||
command to change the spacing between lines is
|
||
|
||
\baselineskip=24pt
|
||
|
||
|
||
|
||
The baseline is the bottom of the characters on a line, not counting
|
||
descenders. The distance between the baseline of one line and the
|
||
next is the \baselineskip, and is assigned a value of 24 points.
|
||
|
||
Measurements or dimensions in TeX are often given in the following
|
||
units:
|
||
|
||
|
||
|
||
pt % Point 1/72 in.
|
||
pc % Pica: 12 pt.
|
||
in % Inch: 72.27 pt.
|
||
cm % Centimeter: 2.54 cm = 1 in.
|
||
mm % Millimeter: 10 mm = 1 cm.
|
||
|
||
|
||
|
||
Some commands do not take assignments. For example:
|
||
|
||
\smallskip % Approximately 3 pt.
|
||
\medskip % Two \smallskips.
|
||
\bigskip % Two \medskips.
|
||
|
||
|
||
|
||
A \smallskip inserts a 3 pt. vertical space in the document. The
|
||
measurements are approximate because TeX needs to adjust the
|
||
dimensions for page breaks, section headings, and other units of
|
||
vertical space. This is true for horizontal spacing as well.
|
||
|
||
\hsize=6.5in
|
||
|
||
|
||
This command sets the line length to a width of 6.5 inches. TeX tries
|
||
to fill the line by adjusting the spacing between words, and some let
|
||
ters. If TeX cannot fill a line to within its tolerances, it produces
|
||
a warning message, and adjusts the horizontal spacing within the line
|
||
as best it can. Formatting tolerances are discussed in Section ``Tol
|
||
erances''.
|
||
|
||
There are many other commands that specify horizontal and vertical
|
||
dimensions and tolerances, and the most commonly use commands are
|
||
described below.
|
||
|
||
|
||
3.2. Font commands.
|
||
|
||
In TeX, the default font is 10 pt. Computer Modern Roman. To specify
|
||
a typeface, like italic, bold, or monospaced, use the following
|
||
commands.
|
||
|
||
\rm % Roman (the default).
|
||
\it % Italics.
|
||
\bf % Bold.
|
||
\tt % Monospaced (teletype).
|
||
\sl % Oblique (slanted).
|
||
|
||
|
||
The commands change the typeface where they appear in the text, as in
|
||
this example.
|
||
|
||
This text is Roman, \it and this text is italic. \bf This text is
|
||
bold, and \rm this text is in Roman again.
|
||
|
||
|
||
|
||
To specify a font for your document, use the\font command.
|
||
|
||
\font\romantwelve=cmr12
|
||
|
||
|
||
This creates the font command \romantwelve, which, when used in the
|
||
text, changes the font to Computer Modern Roman, 12 point.
|
||
|
||
|
||
\romantwelve
|
||
This is the Computer Modern Roman font at 12 points.
|
||
|
||
|
||
For information about the fonts in the teTeX distribution look at the
|
||
file:
|
||
|
||
/usr/lib/teTeX/texmf/doc/fonts/fontname/fontname.dvi
|
||
|
||
|
||
|
||
If you want to print a sample of a font, TeX the file
|
||
|
||
/usr/lib/teTeX/texmf/tex/plain/base/fontchart.tex
|
||
|
||
|
||
and fill in the name of the font you want to print at the prompt.
|
||
|
||
You can also change the size of a font to get different effects. Font
|
||
magnification is exponential, and specified with the scaled \magstep
|
||
command, which is placed after the font specification.
|
||
|
||
\font\sfmedium=cmss12 scaled \magstep 1
|
||
|
||
|
||
This command will give you a sans serif font that is 120 percent the
|
||
size of the 12-point Computer Modern sans serif font. Fonts can be
|
||
magnified in steps from 0 to 5. Each step provides and additional 120
|
||
percent magnification.
|
||
|
||
|
||
3.3. Paragraph styles and dimensions.
|
||
|
||
As mentioned above, TeX typesets text in 10-point Computer Modern
|
||
Roman by default. The length of a line is the value of \hsize, which
|
||
defaults to 6.5 in. If you want to change the value of \hsize to 5.5
|
||
in. for example, use this command.
|
||
|
||
\hsize=5.5in
|
||
|
||
|
||
|
||
In TeX a dimension is an adjustable unit of length, either horizontal
|
||
or vertical. The amount by which a dimension can be increased or
|
||
decreased can be specified in its definition. Closely related to a
|
||
dimension is a skip, which is a dimension that is placed in one of
|
||
TeX's internal registers. Skips are defined with the \newskip
|
||
command. The \smallskip dimension, as defined by TeX is:
|
||
|
||
\newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt
|
||
|
||
|
||
The \smallskip command is shorthand for:
|
||
|
||
\vskip\smallskipamount
|
||
|
||
|
||
|
||
There are a number of dimensions that control the page layout. They
|
||
are summarized in Section ``Page layout''.
|
||
|
||
TeX formats paragraphs with justified left and right margins. If you
|
||
want the text to be left justified only, use this command:
|
||
|
||
\raggedright
|
||
|
||
To typeset a line that is justified to the right margin, use the
|
||
\rightline command:
|
||
|
||
\rightline{This is the line to be typeset.}
|
||
|
||
|
||
|
||
The \line command typesets the text of its argument to fill the entire
|
||
line.
|
||
|
||
\line{This text will be spaced to fit the entire line.}
|
||
|
||
|
||
|
||
The \hfil command adds space to fill out the line where it occurs.
|
||
So, for example, the \rightline command is equivalent to:
|
||
|
||
\line{\hfilThis line will be right justified.}
|
||
|
||
|
||
|
||
To typeset a line that is centered, use the \centerline command.
|
||
|
||
\centerline{This is the line to be centered.}
|
||
|
||
|
||
|
||
To change the left margin, set the value of \hoffset, as in this
|
||
example:
|
||
|
||
\hoffset=1.5in
|
||
|
||
|
||
|
||
The \parindent command specifies the amount that the first line of
|
||
every paragraph is indented.
|
||
|
||
\parindent=.5in
|
||
|
||
|
||
|
||
Two other dimensions, \leftskip and \rightskip, will indent the right
|
||
and left margins, respectively, of the paragraphs that come after
|
||
them.
|
||
|
||
\leftskip=.5in
|
||
\rightskip=.5in
|
||
|
||
|
||
The control word \narrower is equivalent to:
|
||
|
||
\leftskip=\parindent
|
||
\rightskip=\parindent
|
||
|
||
|
||
That is, \narrower narrows the paragraph margins by the value of
|
||
\parindent
|
||
|
||
As mentioned in the previous section, the \baselineskip specifies the
|
||
distance between lines. The default is 12 pt. To approximate double-
|
||
spaced text, use the following command.
|
||
|
||
\baselineskip=\baselineskip*1.6
|
||
|
||
|
||
|
||
The \parskip command specifies the distance in addition to
|
||
\baselineskip between paragraphs. By default, no extra space is
|
||
added, but the distance between paragraphs can stretch as much as 1
|
||
pt. to fill the page correctly. To put a blank line between
|
||
paragraphs, use this command:
|
||
|
||
\parskip=\baselineskip
|
||
|
||
|
||
|
||
3.3.1. Tolerances. (What are those black rectangles after every
|
||
line?)
|
||
|
||
TeX normally formats text to strict tolerances. If, for some reason,
|
||
text cannot be formatted to within those tolerances, TeX produces a
|
||
warning message and formats the text the best it can. If the text
|
||
must be stretched too much to fit the line, TeX warns you that the
|
||
\hbox is underfull. Text that must be squeezed to fit in the line
|
||
produces an overfull \hbox warning.
|
||
|
||
For each overfull \hbox, TeX places a slug, a black rectangle, after
|
||
the line. The slug indicates that the line could not be formatted to
|
||
within the specifications set by the \hbadness parameter.
|
||
|
||
The fit of the text within its specified dimensions is measured by its
|
||
badness, which is a number between 0 and 10000. A badness of 0 is a
|
||
perfect fit, and a badness of 10000 means that the line probably will
|
||
never fit. The default value of \hbadness is 1000. If you set
|
||
\hbadness to 10000, TeX does not report underfull lines.
|
||
|
||
Sometimes TeX allows a line to extend past the right margin. This is
|
||
an aesthetic decision on the part of TeX's author. The amount is
|
||
determined by the \hfuzz parameter, which defaults to 0.1 pt. If the
|
||
text does not fit within the line, the \tolerance parameter determines
|
||
how TeX will handle the overfull \hbox. The default value of
|
||
\tolerance is 200. Setting \tolerance to 1000 suppresses overfull
|
||
\hbox warnings and the printing of slugs.
|
||
|
||
|
||
3.4. Page layout.
|
||
|
||
In addition to the left margin and line length dimensions that are
|
||
described in the previous section, TeX also lets you specify top and
|
||
bottom margins, and vertical spacing.
|
||
|
||
Like the \hsize and \hoffset dimensions described in the previous
|
||
section, TeX also provides the \vsize and \voffset commands. The
|
||
default for \vsize is 8.9 in., and \voffset defaults to 0.
|
||
|
||
Normally, teTeX places the beginning of the first line of text 1 in.
|
||
below the top of the paper and 1 in. from the left edge. You can
|
||
start the text closer to the top of the page with the command:
|
||
|
||
\voffset=-0.5in
|
||
|
||
|
||
|
||
If you want to add vertical space in a document, the commands
|
||
\smallskip, \medskip, and \bigskip will add approximately 3, 6, and 12
|
||
points of blank vertical space. These measurements are approximate;
|
||
TeX will adjust them by as much as 1 pt. so the page is filled
|
||
correctly.
|
||
|
||
The \vfill command adds an adjustable vertical space between
|
||
paragraphs on a page. It is infinitely stretchable, so it will add
|
||
vertical space to fill as much of the rest of the page as possible.
|
||
If you want to specify a dimension, use \vskip as in:
|
||
|
||
\vskip 10pt
|
||
|
||
|
||
|
||
The commands \hss and \vss are similar to \hfil and \vfill, but they
|
||
provide dimensions that are infinitely shrinkable as well as
|
||
infinitely stretchable.
|
||
|
||
The \vskip and \vfill commands produce flexible lengths. They do not
|
||
add space where no text exists; for example, at the top of a page.
|
||
Use \vglue if you want to add an absolute space.
|
||
|
||
TeX fills the \vsize dimension with as much text as possible before it
|
||
starts a new page. To force a page break, use the \vfill \eject
|
||
sequence. If \vfill is not used, the text before the \break will be
|
||
spaced to fill the page.
|
||
|
||
If you want TeX to be more flexible about its vertical page sizing,
|
||
place the \raggedbottom command in your document. TeX will then
|
||
adjust the bottom margin of each page slightly to make vertical
|
||
spacing more consistent.
|
||
|
||
|
||
3.5. Page numbers, headers, and footers.
|
||
|
||
teTeX by default places the page number at the bottom center of the
|
||
page. If you want to change the location and style of the page
|
||
number, you can specify alternate headers and footers by changing
|
||
definitions of \headline and \footline. The default value for
|
||
\footline contains the \folio command, which prints the page number.
|
||
The default value for \headline is \hfil, so a blank line is printed.
|
||
|
||
The \pageno command is a synonym for TeX's internal page counter. You
|
||
can change the page number by changing the value of \pageno. If
|
||
\pageno is negative, the numbers are printed as Roman numerals.
|
||
|
||
\pageno=10
|
||
\pageno=-1
|
||
|
||
|
||
|
||
The command \nopagenumbers is shorthand for:
|
||
|
||
\headline={\hfil}
|
||
\footline={\hfil}
|
||
|
||
|
||
|
||
The default footline also contains the font command \tenrm, which sets
|
||
the page number's font to 10-point Roman. If you want to print the
|
||
page number in 12-point Roman, for example, you would first define a
|
||
12-point Roman font, and use that in the definition of \footline.
|
||
Font commands are discussed in Section ``Font commands''.
|
||
|
||
\font\twelvrm=cmr12
|
||
\footline={\hss\twelvrm\folio\hss}
|
||
|
||
|
||
|
||
You can put a rule, a horizontal line, at the top of each page by
|
||
redefining \headline as:
|
||
|
||
|
||
\headline={\hrulefill}
|
||
|
||
|
||
|
||
To specify different headers for even and odd pages use the
|
||
\ifoddcommand, which has the form:
|
||
|
||
\ifodd[condition][true-action]\else[false-action
|
||
|
||
|
||
An example \headline that uses different headers for even and odd
|
||
pages would be:
|
||
|
||
\headline={\ifodd\pageno odd-page-header \else even-page-header}
|
||
|
||
|
||
The \ifodd statement uses the first argument if the page number is
|
||
odd, and the second argument otherwise.
|
||
|
||
|
||
3.6. Titles and macros.
|
||
|
||
TeX provides only the \beginsection macro for section headings. It
|
||
leaves a space above its argument, prints the text of the heading in
|
||
bold type, adds a \smallskip after the text of the heading, and starts
|
||
the next paragraph with no indent.
|
||
|
||
The LaTeX chapter and section commands described below add section
|
||
numbering, and will print the section names and numbers in the page
|
||
headings, and automatically add the sections to the Table of Contents.
|
||
|
||
In plain TeX, you must write these functions yourself. The \def
|
||
command allows you to define new commands. Suppose you want to print
|
||
a chapter title. First you define the font that you want to use. A
|
||
large, sans serif font for chapter titles would be defined like this:
|
||
|
||
\font\chapterfontsans=cmss12 scaled \magstep 4
|
||
|
||
|
||
You can use the \chapterfontsans command anywhere you want to switch
|
||
to this font, which is approximately 24 points in height. However, in
|
||
this example, it will be used primarily in the command \chaptertitle
|
||
sans. Here is its definition:
|
||
|
||
\def\chaptertitlesans#1{\hbox{}\bigskip\bigskip
|
||
\noindent{\leftline{\chapterfontsans#1}}
|
||
\par\bigskip\bigskip\noindent}
|
||
|
||
|
||
The first line, \hbox{}\bigskip, anchors a 12-point space at the top
|
||
of the page by placing an empty \hbox{} there. The line with the
|
||
chapter title is not indented, nor is the paragraph which immediately
|
||
follows it. If you place a blank line between the \sschaptertitle
|
||
macro and the next paragraph, the final \noindent applies to the blank
|
||
line, not the text of the following paragraph. To format correctly,
|
||
use the \sschaptertitle as in this example:
|
||
|
||
The #1 statement in the definition is replaced by the first argument
|
||
to \chaptertitlesans; that is, the title of the chapter. Parameters
|
||
TeX definitions are declared with #1, #2, #3, and so on. An example
|
||
usage of \chaptertitlesans would be:
|
||
|
||
|
||
|
||
\chaptertitlesans{Chapter 1}
|
||
This is the starting text of the first paragraph of the chapter.
|
||
The paragraph will not be indented. The chapter's title is
|
||
"Chapter 1."
|
||
|
||
|
||
|
||
4. LaTeX commands.
|
||
|
||
|
||
4.1. Document structure.
|
||
|
||
Documents formatted for LaTeX have a few more rules, but with complex
|
||
documents, LaTeX can greatly simplify the formatting process.
|
||
|
||
Essentially, LaTeX is a document markup language which tries to
|
||
separate the output style from the document's logical content. For
|
||
example, formatting a section heading with TeX would require
|
||
specifying 36 points of white space above the heading, then the
|
||
heading itself set in bold, 24-point type, then copying the heading
|
||
text and page number to the Table of Contents, then leaving 24 points
|
||
of white space after the heading. By contrast, LaTeX has the
|
||
\section{} command, which does all of the work for you. If you need
|
||
to change the format of the section headings throughout your document,
|
||
you can change the definition of \section{} instead of the text in the
|
||
document. You can see where this would save hours of reformatting for
|
||
documents of more than a dozen pages in length.
|
||
|
||
All LaTeX documents have three sections: a preamble, the body text,
|
||
and a postamble. These terms are standard jargon and are widely used
|
||
by TeXperts.
|
||
|
||
The preamble, at a minimum, specifies the type of document to be
|
||
produced---the document class---and a statement which signals the
|
||
beginning of the document's body text. For example:
|
||
|
||
\documentclass{article}
|
||
\begin{document}
|
||
|
||
|
||
The document's postamble is usually very simple. Except in special
|
||
ized cases, it contains only the statement:
|
||
|
||
\end{document}
|
||
|
||
|
||
Note the \begin{document} and \end{document} pairing. In LaTeX, this
|
||
is called an environment. All text must appear within an environment,
|
||
and many commands are effective only in the environments in which
|
||
they're called. The document environment is the only instance where
|
||
LaTeX enforces this convention, however. That is, it's the only envi
|
||
ronment that is required in a document. (An exception is letter
|
||
class, which also requires you to declare \begin{letter} and
|
||
\end{letter}. See the section ``Letters''.) However, many formatting
|
||
features are specified as environments. They're described in the fol
|
||
lowing sections.
|
||
|
||
The document classes can be called with arguments. For example,
|
||
instead of the default, 10-point type used as the base point size, as
|
||
in the previous example, we could have specified
|
||
|
||
\documentclass[12pt]{article}
|
||
|
||
|
||
|
||
to produce the document using 12 points as the base point size. The
|
||
document class, article, makes the necessary adjustments.
|
||
|
||
There are a few document classes which are commonly used. They're
|
||
described below. The report class is similar to article class, but
|
||
produces a title page and starts each section on a new page. The
|
||
letter class includes special definitions for addresses, salutations,
|
||
and closings, a few of which are described below.
|
||
|
||
You can include canned LaTeX code, commonly known as a package, with
|
||
the \usepackage{} command.
|
||
|
||
\usepackage{fancyhdr}
|
||
|
||
|
||
The command above would include the LaTeX style file fancyhdr.sty from
|
||
one of the TEXINPUTS directories, which you and teTeX specified during
|
||
installation and setup processes.
|
||
|
||
|
||
\documentclass{article}
|
||
\usepackage{fancyhdr}
|
||
\begin{document}
|
||
|
||
|
||
|
||
Note that the \usepackage{} declarations are given before the
|
||
\begin{document} statement; that is, in the document preamble.
|
||
|
||
fancyhdr.sty extends the \pagestyle{} command so that you can create
|
||
custom headers and footers. Most LaTeX document classes provide
|
||
headers and footers of the following standard page styles:
|
||
|
||
\pagestyle{plain} % default pages style -- page number centered at
|
||
% the bottom of the page.
|
||
\pagestyle{empty} % no headers or footers
|
||
\pagestyle{headings} % print section number and page number at the
|
||
% top of the page.
|
||
\pagestyle{myheadings} % print custom information in the page heading.
|
||
|
||
|
||
Everything on a line to the right of the percent sign is a comment.
|
||
|
||
The \pagestyle{} command doesn't take effect until the following page.
|
||
To change the headers and footers on the current page, use the command
|
||
|
||
\thispagestyle{the_pagestyle}
|
||
|
||
|
||
|
||
4.2. Characters and type styles.
|
||
|
||
Character styles are partially a function of the fonts specified in
|
||
the document. However, bold and italic character emphasis should be
|
||
available for every font present on the system. Underlining, too, can
|
||
be used, though its formatting presents special problems. See section
|
||
``LaTeX extension packages and other resources'', below.
|
||
|
||
You can specify text to be emphasized in several ways. The most
|
||
portable is the \em command. All text within its scope is italicized
|
||
by default. For example:
|
||
|
||
This word will be {\em emphasized.}
|
||
|
||
|
||
|
||
If you have italicized text that runs into text which is not itali
|
||
cized, you can specify an italic correction factor to be used. The
|
||
command for this is \/; that is, a backslash and a forward slash.
|
||
|
||
This example {\em will\/} print correctly.
|
||
|
||
This example will {\em not} print correctly.
|
||
|
||
|
||
Slightly less portable, but still acceptable in situations where
|
||
they're used singly, are the commands \it, \bf, and \tt, which specify
|
||
that the characters within their scope be printed using italic, bold,
|
||
and monospaced (teletype) typefaces, respectively.
|
||
|
||
{\tt This text will be printed monospaced,}
|
||
{\it this text will be italic,} and
|
||
{\bf this text will be bold\dots} all in one paragraph.
|
||
|
||
|
||
The command \dots prints a series of three periods for ellipses, which
|
||
will not break across a line.
|
||
|
||
The most recent version of LaTeX, which is what you have, includes
|
||
commands which account for instances where one emphasis command would
|
||
supersede another.
|
||
|
||
This is {\it not {\bf bold italic!}}
|
||
|
||
|
||
What happens is that teTeX formats the text with the italic typeface
|
||
until it encounters the \bf command, at which point it switches to
|
||
boldface type.
|
||
|
||
To get around this, the NFSS scheme of selecting font shapes requires
|
||
three parameters for each typeface: shape, series, and family. Not
|
||
all font sets will include all of these styles. LaTeX will print a
|
||
warning, however, if it needs to substitute another font.
|
||
|
||
You can specify the following font shapes:
|
||
|
||
\textup{text} % upright shape (the default)
|
||
\textit{text} % italic
|
||
\textsl{text} % slanted
|
||
\textsc{text} % small caps
|
||
|
||
|
||
These are the two series that most fonts have:
|
||
|
||
\textmd{text} % medium series (the default)
|
||
\textbf{text} % boldface series.
|
||
|
||
|
||
There are generally three families of type available.
|
||
|
||
\textrm{text} % Roman (the default)
|
||
\textsf{text} % sans serif
|
||
\texttt{text} % typewriter (monospaced, Courier-like)
|
||
|
||
|
||
Setting font styles using these parameters, you can combine effects.
|
||
|
||
\texttt{\textit{This example likely will result in a font
|
||
substitution, because many fonts don't include a typewriter italic
|
||
typeface.}}
|
||
|
||
|
||
The font family defaults to Computer Modern, which is a bit-mapped
|
||
font. Other font families are usually Postscript-format Type 1 fonts.
|
||
See section ``Using PostScript fonts'' for details on how to specify
|
||
them.
|
||
|
||
There are also many forms of accents and special characters which are
|
||
available for typesetting. This is only a few of them. (Try
|
||
typesetting these on your own printer.)
|
||
|
||
\'{o} \`{e} \^{o} \"{u} \={o} \c{c} `? `!
|
||
\copyright \pounds \dag
|
||
|
||
|
||
Finally, there are characters which are used as meta- or escape char
|
||
acters in TeX and LaTeX. One of them, the dollar sign, is mentioned
|
||
above. The complete set of meta characters, which need to be escaped
|
||
with a backslash to be used literally, is:
|
||
|
||
# $ % & _ { }
|
||
|
||
|
||
|
||
There are also different alphabets available, like Greek and Cyrillic.
|
||
LaTeX provides many facilities for setting non-English text, which are
|
||
covered by some of the other references mentioned here
|
||
|
||
|
||
4.3. Margins and line spacing.
|
||
|
||
|
||
Changing margins in a TeX or LaTeX document is not a straightforward
|
||
task. A lot depends on the relative indent of the text you're trying
|
||
to adjust the margin for. The placement of the margin-changing
|
||
command is also significant.
|
||
|
||
For document-wide changes to LaTeX documents, the \evensidemargin and
|
||
\oddsidemargin commands are available. They affect the left-hand
|
||
margins of the even-numbered and odd-numbered pages, respectively.
|
||
For example,
|
||
|
||
\evensidemargin=1in
|
||
\oddsidemargin=1in
|
||
|
||
|
||
adds on inch to the left-hand margin of the even and odd pages in
|
||
addition to the standard one-inch, left-hand margin. These commands
|
||
affect the entire document and will shift the entire body of the text
|
||
right and left across a page, regardless of any local indent, so
|
||
they're safe to use with LaTeX environments like verse and list.
|
||
|
||
Below is a set of margin-changing macros which I wrote. They have a
|
||
different effect than the commands mentioned above. Because they use
|
||
plain TeX commands, they're not guaranteed to honor the margins of any
|
||
LaTeX environments which may be in effect, but you can place them
|
||
anywhere in a document and change the margins from that point on.
|
||
|
||
|
||
|
||
%% margins.sty -- v. 0.1 by Robert Kiesling
|
||
%% Copies of this code may be freely distributed in verbatim form.
|
||
%%
|
||
%% Some elementary plain TeX margin-changing commands. Lengths are
|
||
%% in inches:
|
||
%% \leftmargin{1} %% sets the document's left margin in 1 inch.
|
||
%% \leftindent{1} %% sets the following paragraphs' indent in
|
||
%% 1 inch.
|
||
%% \rightindent{1} %% sets the following paragraphs' right margins
|
||
%% %% in 1 inch.
|
||
%% \llength{3} %% sets the following lines' lengths to 3 inches.
|
||
%%
|
||
\message{Margins macros...}
|
||
\def\lmargin#1{\hoffset = #1 in}
|
||
\def\lindent#1{\leftskip = #1 in}
|
||
\def\rindent#1{\rightskip = #1 in}
|
||
\def\llength#1{\hsize = #1 in}
|
||
%%
|
||
%% (End of margins macros.}
|
||
|
||
|
||
Place this code in a file called margins.sty in your local $TEXINPUTS
|
||
directory. The commands are explained in the commented section of the
|
||
file. To include them in a document, use the command
|
||
|
||
\usepackage{margins}
|
||
|
||
|
||
in the document preamble.
|
||
|
||
While we're on the subject, if you don't want the right margin to be
|
||
justified, which is the default, you can tell LaTeX to use ragged
|
||
right margins by giving the command:
|
||
|
||
\raggedright
|
||
|
||
|
||
|
||
Setting line spacing also has its complexities.
|
||
|
||
The baselineskip measurement is the distance between lines of text.
|
||
It is given as an absolute measurement. For example,
|
||
|
||
\baselineskip=24pt
|
||
|
||
|
||
or even better:
|
||
|
||
\setlength{\baselineskip}{24pt}
|
||
|
||
|
||
The difference between the two forms is that setlength will respect
|
||
any scoping rules that may be in effect when you use the command.
|
||
|
||
The problem with using baselineskip is that it also affects the
|
||
distance between section headings, footnotes, and the like. You need
|
||
to take care that baselineskip is correct for whatever text elements
|
||
you're formatting. There are, however, LaTeX macro packages, like
|
||
setspace.sty, which will help you in these circumstances. See section
|
||
``LaTeX extension packages and other resources''.
|
||
|
||
|
||
4.4. Document classes.
|
||
|
||
LaTeX provides document classes which provide standardized formats for
|
||
documents. They provide environments to format lists, quotations,
|
||
footnotes, and other text elements. Commonly used document classes
|
||
are covered in the following sections.
|
||
|
||
|
||
4.4.1. Articles and reports.
|
||
|
||
As mentioned above, the article class and the report class are
|
||
similar. The main differences are that the report class creates a
|
||
title page by default and begins each section on a new page. Mostly,
|
||
though, the two document classes are similar.
|
||
|
||
To create titles, abstracts, and bylines in these document classes,
|
||
you can type, for example,
|
||
|
||
\title{The Breeding Habits of Cacti}
|
||
\author{John Q. Public}
|
||
\abstract{Description of how common desert cacti search
|
||
for appropriate watering holes to perform their breeding
|
||
rituals.}
|
||
|
||
|
||
in the document preamble. Then, the command
|
||
|
||
\maketitle
|
||
|
||
|
||
given at the start of the text, will generate either a title page in
|
||
the report class, or the title and abstract at the top of the first
|
||
page, in the article class.
|
||
|
||
Sections can be defined with commands that include the following:
|
||
|
||
\section
|
||
\subsection
|
||
\subsubsection
|
||
|
||
|
||
These commands will produce the standard, numbered sections used in
|
||
technical documents. For unnumbered sections, use
|
||
|
||
\section*
|
||
\subsection*
|
||
\subsubsection*
|
||
|
||
|
||
and so on.
|
||
|
||
LaTeX provides many environments for formatting displayed material.
|
||
You can include quoted text with the quotation environment.
|
||
|
||
\begin{quotation}
|
||
Start of paragraph to be quoted...
|
||
|
||
... end of paragraph.
|
||
\end{quotation}
|
||
|
||
|
||
For shorter quotes, you can use the quote environment.
|
||
|
||
To format verse, use the verse environment.
|
||
|
||
\begin{verse}
|
||
Because I could not stop for death\\
|
||
He kindly stopped for me
|
||
\end{verse}
|
||
|
||
Notice that you must use the double backslashes to break lines in the
|
||
correct places. Otherwise, LaTeX fills the lines in a verse environ
|
||
ment, just like any other environment.
|
||
|
||
Lists come in several flavors. To format a bulleted list, the list
|
||
environment is used:
|
||
|
||
\begin{list}
|
||
\item
|
||
This is the first item of the list.
|
||
\item
|
||
This is the second item of the list...
|
||
\item
|
||
... and so on.
|
||
\end{list}
|
||
|
||
|
||
|
||
A numbered list uses the enumerate environment:
|
||
|
||
\begin{enumerate}
|
||
\item
|
||
Item No. 1.
|
||
\item
|
||
Item No. 2.
|
||
\item
|
||
\dots
|
||
\end{enumerate}
|
||
|
||
|
||
|
||
A descriptive list uses the description environment.
|
||
|
||
\begin{description}
|
||
\item{Oven} Dirty, needs new burner.
|
||
\item{Refrigerator} Dirty. Sorry.
|
||
\item{Sink and drainboard} Stained, drippy, cold water faucet.
|
||
\end{description}
|
||
|
||
|
||
|
||
4.4.2. Letters.
|
||
|
||
The letter class uses special definitions to format business letters.
|
||
|
||
The letter environment takes one argument, the address of the letter's
|
||
addressee. The address command, which must appear in the document
|
||
preamble, defines the return address. The signature command defines
|
||
the sender's name as it appears after the closing.
|
||
|
||
The LaTeX source of a simple business letter might look like this.
|
||
|
||
|
||
|
||
\documentclass[12pt]{letter}
|
||
\signature{John Q. Public}
|
||
\address{123 Main St.\\Los Angeles, CA. 96005\\Tel: 123/456-7890}
|
||
\begin{document}
|
||
\begin{letter}{ACME Brick Co.\\100 Ash St.\\San Diego, CA 96403}
|
||
\opening{Dear Sir/Madam:}
|
||
|
||
With regard to one of your bricks that I found on my living room
|
||
carpet surrounded by shards of my broken front window...
|
||
|
||
(Remainder of the body of the letter.)
|
||
|
||
\closing{Sincerely,}
|
||
|
||
\end{letter}
|
||
\end{document}
|
||
|
||
|
||
Note that the addresses include double backslashes, which specify
|
||
where the line breaks should occur.
|
||
|
||
|
||
5. LaTeX extension packages and other resources.
|
||
|
||
We mentioned above that using underlining as a form of text emphasis
|
||
presents special problems. Actually, TeX has no problem underlining
|
||
text, because it is a convention of mathematical typesetting. In
|
||
LaTeX, you can underline words with the command:
|
||
|
||
\underline{text to be underlined}
|
||
|
||
|
||
The problem is that underlining will not break across lines, and, in
|
||
some circumstances, underlining can be uneven. However, there is a
|
||
LaTeX macro package, ready-made, that makes underlining the default
|
||
mode of text emphasis. It's called ulem.sty, and is one of the many
|
||
contributed LaTeX packages that are freely available via the Internet.
|
||
|
||
To use ulem.sty, include the command:
|
||
|
||
\usepackage{ulem}
|
||
|
||
|
||
in the document preamble.
|
||
|
||
The packages which are available for LaTeX include:
|
||
|
||
ifthen
|
||
Include conditional statements in your documents.
|
||
|
||
initials
|
||
Defines a font for initial dropped capitals.
|
||
|
||
sanskrit
|
||
Font and preprocessor for producing documents in Sanskrit.
|
||
|
||
recipe
|
||
A LaTeX2e class to typeset recipes.
|
||
|
||
refman
|
||
Variant report and article styles.
|
||
|
||
To make the path given in the Catalogue into a fully-qualified URL,
|
||
concatenate the path to the host name URL and top-level path of the
|
||
CTAN archive you wish to contact. For example, the top-level CTAN
|
||
directory of the site ftp.tex.ac.uk is ctan/tex-archive. The complete
|
||
URL of the directory of the refman package would be:
|
||
|
||
ftp://ftp.tex.ac.uk/ctan/tex-archive/ +
|
||
macros/latex/contrib/supported/refman =
|
||
|
||
ftp://ftp.tex.ac.uk/ctan/tex-archive/macros/latex/contrib/supported/refman/
|
||
|
||
|
||
Some packages have more than one file, so only the path to the pack
|
||
age's directory is given.
|
||
|
||
When you have the URL in hand, you can retrieve the package from one
|
||
of the CTAN archive sites listed in section ``Appendix A''. You can
|
||
download a complete list of the archive's contents as the file
|
||
FILES.byname, in the archive's top-level directory. You can also
|
||
search the archive on line for a keyword with the ftp command
|
||
|
||
quote site index <keyword>
|
||
|
||
|
||
|
||
6. Mixing text and graphics with dvips .
|
||
|
||
In general, this section applies to any TeX or LaTeX document which
|
||
mixes text and graphics. teTeX, like most other TeX distributions, is
|
||
configured to request Computer Modern fonts by default. When printing
|
||
documents with Type 1 scalable fonts or graphics, font and graphics
|
||
imaging is the job of dvips. dvips can use either Computer Modern bit
|
||
mapped fonts or Type 1 scalable fonts, or any combination of the two.
|
||
First, let's concentrate on printing and previewing some graphics.
|
||
|
||
You will probably want to follow this procedure any time a LaTeX
|
||
source document has the statement
|
||
|
||
|
||
\includepackage{graphics}
|
||
|
||
|
||
in the document preamble. This statement tells LaTeX to include the
|
||
text of the graphics.sty package in the source document. There are
|
||
other commands to perform graphics operations, and the statements in
|
||
plain-TeX documents may not clue you in whether you need to use dvips.
|
||
The difference will be apparent in the output, though, when the docu
|
||
ment is printed with missing figures and other graphics.
|
||
|
||
So, for now, we'll concentrate on printing documents which use the
|
||
LaTeX graphics.sty package. You might want to take a look at the
|
||
original TeX input. It isn't included in the teTeX distribution, but
|
||
it is available at
|
||
|
||
~CTAN/macros/latex/packages/graphics/grfguide.tex.
|
||
|
||
|
||
What the teTeX distribution does include is the .dvi output file, and
|
||
it is already TeXed for you. There is a reason for this, and it has
|
||
to do with the necessity of including Type 1 fonts in the output in
|
||
order for the document to print properly. If you want to LaTeX
|
||
grfguide.tex, see the next section. For now, however, we'll work on
|
||
getting usable output using dvips.
|
||
|
||
The file grfguide.dvi is located in the directory
|
||
|
||
texmf/doc/latex/graphics
|
||
|
||
The first step in outputting grfguide.dvi is to translate it to
|
||
Postscript. The program dvips is used for this. It does just exactly
|
||
what its name implies. There are many options available for invoking
|
||
dvips, but the simplest (nearly) form is
|
||
|
||
dvips -f -r <grfguide.dvi >grfguide.ps
|
||
|
||
|
||
The -f command switch tells dvips to operate as a filter, reading from
|
||
standard input and writing to standard output. dvips output can be
|
||
configured so its output defaults to lpr.
|
||
|
||
If you can print Postscript directly to your printer via lpr, you can
|
||
simply type
|
||
|
||
dvips -r grfguide.dvi
|
||
|
||
|
||
The -r option tells dvips to output the pages in reverse order so they
|
||
stack correctly when they exit a printer. Use it or not, as appropri
|
||
ate for your output device.
|
||
|
||
Depending on whether you still have the fonts that dvilj2 generated
|
||
from the last document, dvips and metafont may or may not need to
|
||
create new fonts needed by grfguide.dvi. Eventually, though, dvips
|
||
will output a list of the pages translated to Postscript, and you will
|
||
have your Postscript output ready to be rendered on whatever output
|
||
device you have available.
|
||
|
||
If you're lucky (and rich), then you have a Postscript-capable printer
|
||
already and will be able to print grfguide.ps directly. You can
|
||
either spool the output to the printer using lpr. If for some reason
|
||
your printer software doesn't work right with Postscript files, you
|
||
can, in a pinch, simply dump the file to printer, with
|
||
|
||
cat grfguide.ps >/dev/lp0
|
||
|
||
|
||
or whichever port your printer is attached to, though this is not rec
|
||
ommended for everyday use.
|
||
|
||
If you want or need to invoke Ghostscript manually, this is the
|
||
standard procedure for its operation. The first thing you want to do
|
||
is invoke Ghostscript to view its command line arguments, like this:
|
||
|
||
gs -help | less
|
||
|
||
|
||
You'll see a list of supported output devices and sundry other com
|
||
mands. Pick the output device which most nearly matches your printer.
|
||
I generally produce black-and-white text and use the cdjmono driver,
|
||
which drives a color Deskjet in monochrome (black and white) mode.
|
||
|
||
The command line I would use is:
|
||
|
||
gs -dNOPAUSE -sDEVICE=cdjmono -sOutputFile=/tmp/gs.out grfguide.ps -c quit
|
||
|
||
|
||
This will produce my HP-compatible output in the /tmp directory. It's
|
||
a good idea to use a directory like /tmp, because gs can be particular
|
||
about access permissions, and you can't (and shouldn't) always count
|
||
on being logged in as root to perform these steps. Now you can print
|
||
the file:
|
||
|
||
lpr /tmp/gs.out
|
||
|
||
Obviously, this can all go into a shell script. On my system, I have
|
||
two simple scripts written, pv and pr, which simply outputs the
|
||
Postscript file either to the display or the printer. Screen preview
|
||
ing is possible without X, but it's far from ideal. So, it's defi
|
||
nitely worth the effort to install XFree86 to view the output on the
|
||
screen..
|
||
|
||
The order of commands in a gs command line is significant, because
|
||
some of the options tell Ghostscript to look for pieces of Postscript
|
||
code from its library.
|
||
|
||
The important thing to remember is that grfguide.dvi makes requests
|
||
for both Computer Modern bit mapped and Type 1 scaled fonts. If you
|
||
can mix scalable and bit mapped fonts in a document, you're well on
|
||
the way to becoming a TeXpert.
|
||
|
||
|
||
6.1. What if my printer isn't supported?
|
||
|
||
The teTeX distribution comes with only a limited selection of DVI
|
||
output drivers: dvips, drivers for Hewlett Packard LaserJets, and
|
||
nothing else. You have two options if you have a printer which isn't
|
||
LaserJet-compatible: You can use dvips and Ghostscript, which I would
|
||
recommend anyway, for reasons already mentioned, or you can
|
||
investigate other dviware sources.
|
||
|
||
A limited number of DVI drivers have been ported to Linux and are
|
||
available as pre-built binaries. They are located in the Linux
|
||
archives at ftp://sunsite.unc.edu/pub/Linux/apps/tex/dvi/.
|
||
|
||
The master dviware libraries are maintained at the University of Utah
|
||
archives. If you can't find a DVI driver there that supports your
|
||
printer, chances are that it doesn't exist. You can also write your
|
||
own DVI driver using the templates available there. The library's URL
|
||
is ftp://ftp.math.utah.edu/pub/tex/dvi/.
|
||
|
||
|
||
7. Using Postscript fonts.
|
||
|
||
|
||
It used to be that public domain, Type 1 fonts were much poorer
|
||
quality than Computer Modern bit mapped fonts. This situation has
|
||
improved in the last several years, though, but matching the fonts is
|
||
up to you. Having several different font systems on one machine can
|
||
seem redundant and an unnecessary waste of disk space. And the
|
||
Computer Modern fonts can seem, well, a little too formal to be
|
||
suitable for everyday use. It reminds me sometimes of bringing out
|
||
the good China to feed the dog. At least you don't need to spend a
|
||
bundle on professional quality fonts any longer.
|
||
|
||
One of the major improvements of LaTeX2e over its predecessor was the
|
||
inclusion of the New Font Selection Scheme. (It's now called PSNFSS.)
|
||
Formerly, TeX authors would specify fonts with commands like
|
||
|
||
\font=bodyroman = cmr10 scaled \magstep 1
|
||
|
||
|
||
|
||
which provides precision but requires the skills of a type designer
|
||
and mathematician to make good use of. Also, it's not very portable.
|
||
If another system didn't have the font cmr10 (this is TeX nomenclature
|
||
for Computer Modern Roman, 10 point, with the default medium stroke
|
||
weight), somebody would have to re-code the fonts specifications for
|
||
the entire document. PSNFSS, however, allows you specify fonts by
|
||
family (Computer Modern, URW Nimbus, Helvetica, Utopia, and so forth),
|
||
weight (light, medium, bold), orientation (upright or oblique), face
|
||
(Roman, Italic), and base point size. (See the section ``Characters
|
||
and type styles'' for a description of the commands to specify
|
||
typefaces.) Many fonts are packaged as families. For example, a
|
||
Roman-type font may come packaged with a sans serif font, like
|
||
Helvetica, and a monospaced font, like Courier. You, as the author of
|
||
a LaTeX document, can specify an entire font family with one command.
|
||
|
||
There are, as I said, several high-quality font sets available in the
|
||
public domain. One of them is Adobe Utopia. Another is Bitstream
|
||
Charter. Both are commercial quality fonts which have been donated to
|
||
the public domain.
|
||
|
||
These happen to be two of my favorites. If you look around one of the
|
||
CTAN sites, you will find these and other fonts archived there. There
|
||
are enough fonts around that you'll be able to design documents the
|
||
way you want them to look, and not just English text, either. TeX was
|
||
originally designed for mathematical typesetting, so there is a full
|
||
range of mathematical fonts available, as well as Cyrillic, Greek,
|
||
Kana, and other alphabets too numerous to mention.
|
||
|
||
The important thing to look for is files which have either the .pfa or
|
||
.pfb extension. They indicate that these are the scalable fonts
|
||
themselves, not simply the metrics files. Type 1 fonts use .pfm
|
||
metric files, as opposed to the .tfm metric files which bit mapped
|
||
fonts use. The two font sets I mentioned above are included in teTeX
|
||
distributions, as well as separately.
|
||
|
||
What I said above, concerning the ease of font selection under PSNFSS,
|
||
is true in this instance. If we want to use the Charter fonts in our
|
||
document instead of Computer Modern bit mapped, all that is necessary
|
||
is include the LaTeX statement
|
||
|
||
\renewcommand{\familydefault}{bch}
|
||
|
||
|
||
in the document preamble, where ``bch'' is the common designation for
|
||
Bitstream Charter. The Charter fonts reside in the directory
|
||
|
||
/usr/lib/teTeX/texmf/fonts/type1/bitstrea/charter
|
||
|
||
|
||
|
||
There you'll see the .pfb files of the Charter fonts: bchb8a.pfb for
|
||
Charter Bold, bchr8a.pfb for Charter Roman, bchbi8a.pfb for Charter
|
||
Bold Italic. The ``8a'' in the font names indicates the character
|
||
encoding. At this point you shouldn't need to worry much about them,
|
||
because the encodings mostly differ for 8-bit characters, which have
|
||
numeric values above 128 decimal. They mostly define accents and non-
|
||
English characters. The Type 1 font encodings generally work well for
|
||
Western alphabets because they conform to the ISO 8859 standards for
|
||
international character sets, so this is an added benefit of using
|
||
them.
|
||
|
||
To typeset a document which has Charter fonts selected, you would give
|
||
the command
|
||
|
||
pslatex document.tex
|
||
|
||
|
||
pslatex is a variant of teTeX's standard latex command which defines
|
||
the directories where the Type 1 fonts are, as well as some additional
|
||
LaTeX code to load. You'll see the notice screen for pslatex followed
|
||
by the status output of the TeX job itself. In a moment, you'll have
|
||
a .dvi file which includes the Charter font requests. You can then
|
||
print the file with dvips, and gs if necessary.
|
||
|
||
Installing a Type 1 font set is not difficult, as long as you follow a
|
||
few basic steps. You should unpack the fonts in a subdirectory of the
|
||
/usr/lib/teTeX/texmf/fonts/type1 directory, where your other Type 1
|
||
fonts are located, and then run texhash to let the directory search
|
||
routines know that the fonts have been added. Then you need to add
|
||
the font descriptions to the file psfonts.map so dvips knows they're
|
||
on the system. The format of the psfonts.map file is covered in a
|
||
couple different places in the references mentioned above. Again,
|
||
remember to run the texhash program to update the teTeX directory
|
||
database.
|
||
|
||
It is definitely an advantage to use the X Windows System with
|
||
teTeX--- XFree86 under Linux---because it allows for superior document
|
||
previewing. It's not required, but in general, anything that allows
|
||
for easier screen previewing is going to benefit your work, in terms
|
||
of the quality of the output. However, there is a tradeoff with speed
|
||
of editing, which is much quicker on character-mode displays.
|
||
|
||
|
||
8. Appendix A: CTAN site list.
|
||
|
||
This is the text of the file CTAN.sites, which is available in the
|
||
top-level directory of each CTAN archive or mirror site.
|
||
|
||
|
||
|
||
In order to reduce network load, it is recommended that you use the
|
||
Comprehensive TeX Archive Network (CTAN) host which is located in the
|
||
closest network proximity to your site. Alternatively, you may wish to
|
||
obtain a copy of the CTAN via CD-ROM (see help/CTAN.cdrom for details).
|
||
|
||
Known mirrors of the CTAN reside on (alphabetically):
|
||
cis.utovrm.it (Italia) /TeX
|
||
ctan.unsw.edu.au (NSW, Australia) /tex-archive
|
||
dongpo.math.ncu.edu.tw (Taiwan) /tex-archive
|
||
ftp.belnet.be (Belgium) /packages/TeX
|
||
ftp.ccu.edu.tw (Taiwan) /pub/tex
|
||
ftp.cdrom.com (West coast, USA) /pub/tex/ctan
|
||
ftp.comp.hkbu.edu.hk (Hong Kong) /pub/TeX/CTAN
|
||
ftp.cs.rmit.edu.au (Australia) /tex-archive
|
||
ftp.cs.ruu.nl (The Netherlands) /pub/tex-archive
|
||
ftp.cstug.cz (The Czech Republic) /pub/tex/CTAN
|
||
ftp.duke.edu (North Carolina, USA) /tex-archive
|
||
ftp.funet.fi (Finland) /pub/TeX/CTAN
|
||
ftp.gwdg.de (Deutschland) /pub/dante
|
||
ftp.jussieu.fr (France) /pub4/TeX/CTAN
|
||
ftp.kreonet.re.kr (Korea) /pub/CTAN
|
||
ftp.loria.fr (France) /pub/unix/tex/ctan
|
||
ftp.mpi-sb.mpg.de (Deutschland) /pub/tex/mirror/ftp.dante.de
|
||
ftp.nada.kth.se (Sweden) /pub/tex/ctan-mirror
|
||
ftp.oleane.net (France) /pub/mirrors/CTAN/
|
||
ftp.rediris.es (Espa\~na) /mirror/tex-archive
|
||
ftp.rge.com (New York, USA) /pub/tex
|
||
ftp.riken.go.jp (Japan) /pub/tex-archive
|
||
ftp.tu-chemnitz.de (Deutschland) /pub/tex
|
||
ftp.u-aizu.ac.jp (Japan) /pub/tex/CTAN
|
||
ftp.uni-augsburg.de (Deutschland) /tex-archive
|
||
ftp.uni-bielefeld.de (Deutschland) /pub/tex
|
||
ftp.unina.it (Italia) /pub/TeX
|
||
ftp.uni-stuttgart.de (Deutschland) /tex-archive (/pub/tex)
|
||
ftp.univie.ac.at (\"Osterreich) /packages/tex
|
||
ftp.ut.ee (Estonia) /tex-archive
|
||
ftpserver.nus.sg (Singapore) /pub/zi/TeX
|
||
src.doc.ic.ac.uk (England) /packages/tex/uk-tex
|
||
sunsite.auc.dk (Denmark) /pub/tex/ctan
|
||
sunsite.cnlab-switch.ch (Switzerland) /mirror/tex
|
||
sunsite.icm.edu.pl (Poland) /pub/CTAN
|
||
sunsite.unc.edu (North Carolina, USA) /pub/packages/TeX
|
||
wuarchive.wustl.edu (Missouri, USA) /packages/TeX
|
||
|
||
Known partial mirrors of the CTAN reside on (alphabetically):
|
||
ftp.adfa.oz.au (Australia) /pub/tex/ctan
|
||
ftp.fcu.edu.tw (Taiwan) /pub2/tex
|
||
ftp.germany.eu.net (Deutschland) /pub/packages/TeX
|
||
ftp.gust.org.pl (Poland) /pub/TeX
|
||
ftp.jaist.ac.jp (Japan) /pub/TeX/tex-archive
|
||
ftp.uu.net (Virginia, USA) /pub/text-processing/TeX
|
||
nic.switch.ch (Switzerland) /mirror/tex
|
||
sunsite.dsi.unimi.it (Italia) /pub/TeX
|
||
sunsite.snu.ac.kr (Korea) /shortcut/CTAN
|
||
|
||
Please send updates to this list to <ctan@urz.uni-heidelberg.de>.
|
||
|
||
The participating hosts in the Comprehensive TeX Archive Network are:
|
||
ftp.dante.de (Deutschland)
|
||
-- anonymous ftp /tex-archive (/pub/tex /pub/archive)
|
||
-- gopher on node gopher.dante.de
|
||
-- e-mail via ftpmail@dante.de
|
||
-- World Wide Web access on www.dante.de
|
||
-- Administrator: <ftpmaint@dante.de>
|
||
|
||
ftp.tex.ac.uk (England)
|
||
-- anonymous ftp /tex-archive (/pub/tex /pub/archive)
|
||
-- gopher on node gopher.tex.ac.uk
|
||
-- NFS mountable from nfs.tex.ac.uk:/public/ctan/tex-archive
|
||
-- World Wide Web access on www.tex.ac.uk
|
||
-- Administrator: <ctan-uk@tex.ac.uk>
|
||
|
||
|
||
|
||
9. Appendix B: Installing the CTAN teTeX distribution.
|
||
|
||
The generic, teTeX distribution isn't any harder to install than the
|
||
Linux packages. See section ``Generic CTAN distribution'', below.
|
||
|
||
You should consider installing the generic teTeX distribution from the
|
||
CTAN archives if:
|
||
|
||
· Your system isn't based on one of the standard Linux distributions.
|
||
|
||
· You don't have root privileges on your system.
|
||
|
||
· You want or need to have the very latest version of teTeX, or
|
||
LaTeX.
|
||
|
||
· You don't have enough disk space available for a full installation.
|
||
|
||
· You want to install teTeX somewhere instead of the /usr file
|
||
system.
|
||
|
||
· You would like to share your teTeX installation with other UNIX
|
||
variants or platforms on a network. In this case, you should
|
||
strongly consider installing from the source distribution. See
|
||
section ``Installing the source distribution'', below.
|
||
|
||
· You want the latest versions of teTeX's public domain Type 1 fonts,
|
||
which are significantly better than the fonts included in earlier
|
||
releases.
|
||
|
||
A complete installation of the binary distribution requires 40-50 Mb
|
||
of disk space, and building the distribution from the source code
|
||
takes about 75 Mb, so you should make sure that the disk space is
|
||
available before you start. You don't need to have the GCC compiler
|
||
or the X Windows System installed (although X certainly helps because
|
||
it is much easier to preview documents on-screen). All you need is an
|
||
editor that is capable of producing plain ASCII, text (see section 2).
|
||
What could be simpler?
|
||
|
||
You can retrieve the files from one of the CTAN archives listed in
|
||
section ``Appendix A''. In the examples below, the files were
|
||
retrieved from the CTAN archive at ftp.tex.ac.uk.
|
||
|
||
|
||
9.1. Installing the binary distribution.
|
||
|
||
|
||
|
||
9.1.1. Minimal installation.
|
||
|
||
|
||
First, FTP to ftp.tex.ac.uk and cd to the directory
|
||
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/
|
||
|
||
|
||
Retrieve the files
|
||
|
||
INSTALL.bin
|
||
install.sh
|
||
|
||
|
||
and place them in the top-level directory where you want to install
|
||
teTeX, for example, /var/teTeX if you plan to install teTeX in the
|
||
/var file system.
|
||
|
||
Print out the INSTALL.bin file. Keep this file handy, because it
|
||
describes how to install a minimal teTeX installation. The minimal
|
||
installation requires only 10-15 MB of disk space, but it is
|
||
recommended that you install the complete teTeX package if at all
|
||
possible. For a minimum installation, you'll need the files
|
||
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/base/latex-base.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/base/tetex-base.tar.gz
|
||
|
||
|
||
You'll also need one of two archives which contain the executable
|
||
teTeX programs. Retrieve the archive file
|
||
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/binaries/i386-linux.tar.gz
|
||
|
||
|
||
if your system uses the Linux ELF shared libraries, ld.so of at least
|
||
version 1.73, and clibs of at least version 5.09. If it doesn't,
|
||
retrieve the archive
|
||
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/binaries/i386-linuxaout.tar.gz
|
||
|
||
|
||
which is compiled for systems that use the older, a.out-format static
|
||
libraries.
|
||
|
||
Then, following the instructions in the file INSTALL.bin, execute the
|
||
command
|
||
|
||
sh ./install.sh
|
||
|
||
|
||
while in the top-level teTeX installation directory. (Make sure that
|
||
the teTeX archives are located there, too.) After a few moments, the
|
||
installation program will warn you that you are missing some of the
|
||
teTeX packages. However, if you're planning only a minimal teTeX
|
||
installation, you should ignore the warnings and proceed. To config
|
||
ure the basic teTeX system, see section ``Base system configuration'',
|
||
below.
|
||
|
||
To install the remaining packages, see the next section.
|
||
|
||
|
||
9.1.2. Complete installation.
|
||
|
||
To perform a complete teTeX installation, retrieve the archive files
|
||
listed in the previous section, as well as the following files:
|
||
|
||
|
||
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/doc/ams-doc.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/doc/bibtex-doc.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/doc/eplain-doc.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/doc/fonts-doc.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/doc/general-doc.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/doc/generic-doc.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/doc/latex-doc.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/doc/makeindex-doc.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/doc/metapost-doc.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/doc/programs-doc.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/fonts/ams-fonts.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/fonts/dc-fonts.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/fonts/ec-fonts.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/fonts/misc-fonts.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/fonts/postscript-fonts.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/fonts/sauter-fonts.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/amstex.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/bibtex.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/eplain.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/latex-extra.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/metapost.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/pictex.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/pstricks.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/texdraw.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/xypic.tar.gz
|
||
|
||
|
||
All of these files should be placed in the top-level directory where
|
||
you want teTeX to reside. As with the minimal installation, execute
|
||
the command
|
||
|
||
sh ./install.sh
|
||
|
||
|
||
|
||
9.2. Base system configuration.
|
||
|
||
The install.sh script, after determining which teTeX archive series
|
||
are present, will present you with a menu of options. The only
|
||
setting you need to make at this point is to set the top-level
|
||
directory where you want teTeX installed, by selecting the ``D''
|
||
option. You must, of course, choose a directory in whose parent
|
||
directory you have write permissions. For example, if you are
|
||
installing teTeX in your home directory, you would specify the teTeX
|
||
installation directory as
|
||
|
||
/home/john.q.public/teTeX
|
||
|
||
|
||
and, after returning to the main menu, select ``I'' to proceed with
|
||
the installation. Note that the directory must not exist already: the
|
||
install.sh script must be able to create it.
|
||
|
||
An option which you should consider enabling, is setting an
|
||
alternative directory for generated fonts. Even if you plan to use
|
||
only Postscript-format, Type 1 scalable fonts, occasionally you'll
|
||
process a file that requires the Computer Modern fonts. Enabling this
|
||
option requires that you enter the directory to use. You must have
|
||
write permissions for the parent directory. Following the example
|
||
above, you could specify
|
||
|
||
/home/john.q.public/texfonts
|
||
|
||
|
||
or, if you want the generated fonts to be accessible by all users on
|
||
the system, specify a directory like
|
||
/var/texfonts
|
||
|
||
|
||
I would recommend that you not, however, use the default /var/tmp/tex
|
||
fonts directory for this option, because the generated fonts could be
|
||
deleted after the next reboot, and the fonts will need to be generated
|
||
again the next time they're needed.
|
||
|
||
After you've selected the option ``I'', and install.sh has installed
|
||
the archives, set various permissions, and generated its links and
|
||
format files, the program will exit with a message telling you to add
|
||
the teTeX binary directory to your $PATH environment variable, and the
|
||
directories where the man pages and info files reside to your $MANPATH
|
||
and $INFOPATH environment variables. For example, add the statements
|
||
|
||
export PATH=$PATH:"/home/john.q.public/teTeX/bin"
|
||
export MANPATH=$MANPATH":/home/john.q.public/teTeX/man"
|
||
export INFOPATH$=INFOPATH":/home/john.q.public/teTeX/info"
|
||
|
||
|
||
to your ~/.bash_profile if you use bash as your shell, or to your
|
||
~/.profile if you use another shell for logins.
|
||
|
||
Log out, and then log in again, so the environment variables are
|
||
registered. Then, run the command
|
||
|
||
texconfig confall
|
||
|
||
|
||
to insure that the installation is correct.
|
||
|
||
Next, you can configure teTeX for you specific hardware. See section
|
||
``Post-installation configuration details'', below.
|
||
|
||
|
||
9.3. Installing the CTAN source distribution.
|
||
|
||
To install teTeX V. 0.4 from the source code, ftp to a CTAN site like
|
||
ftp://ftp.tex.ac.uk and retrieve the files
|
||
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/INSTALL.src
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/sources/README.texmf-src
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/sources/teTeX-lib-0.4pl8.tar.gz
|
||
ctan/tex-archive/systems/unix/teTeX/distrib/sources/teTeX-src-0.4pl7.tar.gz
|
||
|
||
|
||
|
||
Read over the instructions in INSTALL.src, then su to root and unpack
|
||
the files in a directory for which you have read-write-execute
|
||
permissions.
|
||
|
||
Remember to use the p argument to tar, and also remember to unset the
|
||
noclobber option of bash. You can do this with the counterintuitive
|
||
command
|
||
|
||
set +o noclobber
|
||
|
||
|
||
Note that the argument +o to set unsets a variable, just exactly back
|
||
wards from what you might expect.
|
||
|
||
The file teTeX-lib-0.4pl8.tar.gz will create the directory ./teTeX.
|
||
The file teTeX-src-0.4pl7.tar.gz will create the directory teTeX-
|
||
src-0.4 Print out the file INSTALL.src and keep it nearby for the
|
||
following steps. cd to the ./teTeX-src-0.4 directory, and, per the
|
||
instructions in the INSTALL.src file, edit ./Makefile. You need to
|
||
set the TETEXDIR variable to the absolute path of the parent teTeX
|
||
directory. This will be the subdirectory teTeX of the directory where
|
||
you unpacked the source and library archives. For example, if you
|
||
unpacked the archives in your home directory, you would set TETEXDIR
|
||
to
|
||
|
||
/home/john.q.public/teTeX
|
||
|
||
|
||
The rest of the Makefile options are pretty generic. With GCC version
|
||
2.7.2 and later, you should not need to make any further adjustments
|
||
unless you have a non-standard compiler and library setup, or want the
|
||
compiler to perform some further optimizations, or for some other rea
|
||
son. Check that the USE_DIALOG, USE_NCURSES, and HAVE_NCURSES vari
|
||
ables are set correctly for your system, because the dialog program
|
||
needs the ncurses library to be installed. A ncurses library is
|
||
included in the source distribution, so the default values in the
|
||
Makefile should work fine. If you can't get ncurses to compile or
|
||
link, texconfig can also be run from the command line.
|
||
|
||
If you've done everything correctly up to this point, you should be
|
||
able to type make world in the top-level source directory, and relax
|
||
until the teTeX executables are built. This can take a few hours.
|
||
|
||
After the build has completed, set the environment variables $PATH,
|
||
$MANPATH, and $INFOPATH to include the teTeX directories. The
|
||
statements which would be added to the file ~/.bash_profile, in the
|
||
example, above, would be
|
||
|
||
export PATH=$PATH":/home/john.q.public/teTeX/bin/i386-linux"
|
||
export MANPATH=$MANPATH":/home/john.q.public/teTeX/man"
|
||
export INFOPATH=$INFOPATH":/home/john.q.public/teTeX/info"
|
||
|
||
|
||
The $PATH variable is different in the source distribution than in the
|
||
binary distribution. Note that here the path to the binaries is
|
||
teTeX/bin/i386-linux instead of simply teTeX/bin as in the binary dis
|
||
tribution.
|
||
|
||
At this point you can run texconfig confall to ensure that the paths
|
||
have been set correctly, and then proceed to configure teTeX as in the
|
||
binary distribution. See the section ``Post-installation
|
||
configuration details'', below.
|
||
|
||
|
||
9.4. Post-installation configuration details.
|
||
|
||
The first thing you want to do is look at Thomas Esser's README file.
|
||
It contains a lot of hints on how to configure teTeX for your output
|
||
device (i.e., printer). The README file is located in the directory
|
||
|
||
/usr/lib/teTeX/texmf/doc/tetex
|
||
|
||
|
||
Read the file over with the command (the path in the following exam
|
||
ples is that of the Slackware distribution):
|
||
|
||
less /usr/lib/teTeX/texmf/doc/tetex/README
|
||
|
||
|
||
or, print it out with the command
|
||
|
||
cat /usr/lib/teTeX/texmf/doc/tetex/README >/dev/lp0
|
||
|
||
|
||
|
||
assuming that your printer is connected to /dev/lp0. Substitute the
|
||
device driver file that your printer is connected to, as appropriate.
|
||
|
||
Or, better still, print it using the lpr command:
|
||
|
||
lpr /usr/lib/teTeX/texmf/doc/tetex/README
|
||
|
||
|
||
You should have installed the printer daemon that is included with
|
||
your distribution of Linux. If not, do that now, per the instructions
|
||
that come with the package.
|
||
|
||
Print out the teTeX-FAQ. Keep the FAQ handy because it contains useful
|
||
hints for configuring teTeX's output drivers for your printer. We'll
|
||
get to that in a moment. In more recent releases of teTeX, the teTeX-
|
||
FAQ is viewable via the texconfig utility.
|
||
|
||
Next, you want to define a directory to store your own TeX format
|
||
files. teTeX searches the directories listed by the $TEXINPUTS
|
||
environment variable for local TeX input files:
|
||
|
||
export TEXINPUTS=".:~/texinputs:"
|
||
|
||
|
||
to the system-wide /etc/profile file. Individual users can set their
|
||
own local $TEXINPUTS directory, by adding the line in their ~/.profile
|
||
or ~/.bash_profile if bash is the default shell. The $TEXINPUTS envi
|
||
ronment variable tells teTeX to look for users' individual TeX style
|
||
files in the ~/texinputs directories under each user's home directory.
|
||
It is critical that a colon appear before and after this directory.
|
||
teTeX is going to append its own directory searches to your own. You
|
||
want to have teTeX search the local format files first, so it uses the
|
||
local versions of any of the standard files you have edited.
|
||
|
||
Add the /usr/lib/teTeX/bin directory to the system-wide path if you're
|
||
installing teTeX as root. Again, if you're installing a personal copy
|
||
of teTeX, add the directory where the teTeX binaries are located to
|
||
the front your $PATH with the following line in your ~/.profile or
|
||
~/.bash_profile:
|
||
|
||
export PATH="~/tetex/bin:"$PATH
|
||
|
||
|
||
Now, log in as root and run texconfig per the instructions in the
|
||
teTeX-FAQ and choose the printer that is attached to your system.
|
||
Make sure that you configure teTeX for both the correct printer and
|
||
printer resolution.
|
||
|
||
Finally, run the texhash program. This ensures that teTeX's internal
|
||
database is up to date. The database is actually a ls-lR file. You
|
||
must run texhash every time you change the system configuration, or
|
||
teTeX will not be able to locate your changes.
|
||
|
||
|
||
10. Appendix C: Distribution and Copyright.
|
||
|
||
|
||
10.1. Distribution.
|
||
|
||
teTeX is free software; this means everyone is free to use the
|
||
software and free to redistribute it on certain conditions. The
|
||
package is not in the public domain. It is copyrighted and there are
|
||
restrictions on its distribution, but these restrictions are designed
|
||
to permit everything that a good cooperating citizen would want to do.
|
||
What is not allowed is to try to prevent others from further sharing
|
||
any version of free software that they might get from you. The
|
||
precise conditions are found in the GNU General Public License that
|
||
comes with many of the software packages and also appears following
|
||
this section.
|
||
|
||
One way to get a copy of the package is from someone else who has it.
|
||
You need not ask for our permission to do so, or tell any one else;
|
||
just copy it. If you have access to the Internet, you can get the
|
||
latest distribution versions by anonymous FTP. See the chapter
|
||
``Sources'' for more information.
|
||
|
||
You may also receive the software when you buy a computer. Computer
|
||
manufacturers are free to distribute copies on the same terms that
|
||
apply to everyone else. These terms require them to give you the full
|
||
sources, including whatever changes they may have made, and to permit
|
||
you to redistribute these packages received from them under the usual
|
||
terms of the General Public License. In other words, the program must
|
||
be free for you when you get it, not just free for the manufacturer.
|
||
|
||
You can also order copies of GNU software from the Free Software
|
||
Foundation on CD-ROM. This is a convenient and reliable way to get a
|
||
copy; it is also a good way to help fund our work. (The Foundation
|
||
has always received most of its funds in this way.) An order form is
|
||
included many distribution, and on our web site in
|
||
http://www.gnu.ai.mit.edu/order/order.html. For further information,
|
||
write to
|
||
|
||
|
||
Free Software Foundation
|
||
59 Temple Place, Suite 330
|
||
Boston, MA 02111-1307 USA
|
||
USA
|
||
|
||
|
||
|
||
The income from distribution fees goes to support the foundation's
|
||
purpose: the development of new free software, and improvements to our
|
||
existing programs.
|
||
|
||
If you use GNU software at your workplace, please suggest that the
|
||
company make a donation. If company policy is unsympathetic to the
|
||
idea of donating to charity, you might instead suggest ordering a CD-
|
||
ROM from the Foundation occasionally, or subscribing to periodic
|
||
updates.
|
||
|
||
|
||
10.2. GNU GENERAL PUBLIC LICENSE
|
||
|
||
|
||
Version 2, June 1991
|
||
|
||
Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple
|
||
Place, Suite 330, Boston, MA 02111-1307 USA
|
||
|
||
Everyone is permitted to copy and distribute verbatim copies of this
|
||
license document, but changing it is not allowed.
|
||
|
||
Preamble.
|
||
|
||
The licenses for most software are designed to take away your freedom
|
||
to share and change it. By contrast, the GNU General Public License
|
||
is intended to guarantee your freedom to share and change free
|
||
software---to make sure the software is free for all its users. This
|
||
General Public License applies to most of the Free Software
|
||
Foundation's software and to any other program whose authors commit to
|
||
using it. (Some other Free Software Foundation software is covered by
|
||
the GNU Library General Public License instead.) You can apply it to
|
||
your programs, too.
|
||
|
||
When we speak of free software, we are referring to freedom, not
|
||
price. Our General Public Licenses are designed to make sure that you
|
||
have the freedom to distribute copies of free software (and charge for
|
||
this service if you wish), that you receive source code or can get it
|
||
if you want it, that you can change the software or use pieces of it
|
||
in new free programs; and that you know you can do these things.
|
||
|
||
To protect your rights, we need to make restrictions that forbid
|
||
anyone to deny you these rights or to ask you to surrender the rights.
|
||
These restrictions translate to certain responsibilities for you if
|
||
you distribute copies of the software, or if you modify it.
|
||
|
||
For example, if you distribute copies of such a program, whether
|
||
gratis or for a fee, you must give the recipients all the rights that
|
||
you have. You must make sure that they, too, receive or can get the
|
||
source code. And you must show them these terms so they know their
|
||
rights.
|
||
|
||
We protect your rights with two steps: (1) copyright the software, and
|
||
(2) offer you this license which gives you legal permission to copy,
|
||
distribute and/or modify the software.
|
||
|
||
Also, for each author's protection and ours, we want to make certain
|
||
that everyone understands that there is no warranty for this free
|
||
software. If the software is modified by someone else and passed on,
|
||
we want its recipients to know that what they have is not the
|
||
original, so that any problems introduced by others will not reflect
|
||
on the original authors' reputations.
|
||
|
||
Finally, any free program is threatened constantly by software
|
||
patents. We wish to avoid the danger that redistributors of a free
|
||
program will individually obtain patent licenses, in effect making the
|
||
program proprietary. To prevent this, we have made it clear that any
|
||
patent must be licensed for everyone's free use or not licensed at
|
||
all.
|
||
|
||
The precise terms and conditions for copying, distribution and
|
||
modification follow.
|
||
|
||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||
|
||
|
||
· This License applies to any program or other work which contains a
|
||
notice placed by the copyright holder saying it may be distributed
|
||
under the terms of this General Public License. The ``Program''
|
||
below, refers to any such program or work, and a ``work based on
|
||
the Program'' means either the Program or any derivative work under
|
||
copyright law: that is to say, a work containing the Program or a
|
||
portion of it, either verbatim or with modifications and/or
|
||
translated into another language. (Hereinafter, translation is
|
||
included without limitation in the term,``modification.'') Each
|
||
licensee is addressed as ``you.''
|
||
|
||
Activities other than copying, distribution and modification are
|
||
not covered by this License; they are outside its scope. The act
|
||
of running the Program is not restricted, and the output from the
|
||
Program is covered only if its contents constitute a work based on
|
||
the Program (independent of having been made by running the
|
||
Program). Whether that is true depends on what the Program does.
|
||
|
||
· You may copy and distribute verbatim copies of the Program's source
|
||
code as you receive it, in any medium, provided that you
|
||
conspicuously and appropriately publish on each copy an appropriate
|
||
copyright notice and disclaimer of warranty; keep intact all the
|
||
notices that refer to this License and to the absence of any
|
||
warranty; and give any other recipients of the Program a copy of
|
||
this License along with the Program.
|
||
|
||
You may charge a fee for the physical act of transferring a copy,
|
||
and you may at your option offer warranty protection in exchange
|
||
for a fee.
|
||
|
||
· You may modify your copy or copies of the Program or any portion of
|
||
it, thus forming a work based on the Program, and copy and
|
||
distribute such modifications or work under the terms of Section 1
|
||
above, provided that you also meet all of these conditions:
|
||
|
||
1. You must cause the modified files to carry prominent notices
|
||
stating that you changed the files and the date of any change.
|
||
|
||
2. You must cause any work that you distribute or publish, that in
|
||
whole or in part contains or is derived from the Program or any
|
||
part thereof, to be licensed as a whole at no charge to all third
|
||
parties under the terms of this License.
|
||
|
||
3. If the modified program normally reads commands interactively
|
||
when run, you must cause it, when started running for such
|
||
interactive use in the most ordinary way, to print or display an
|
||
announcement including an appropriate copyright notice and a notice
|
||
that there is no warranty (or else, saying that you provide a
|
||
warranty) and that users may redistribute the program under these
|
||
conditions, and telling the user how to view a copy of this
|
||
License. (Exception: if the Program itself is interactive but does
|
||
not normally print such an announcement, your work based on the
|
||
Program is not required to print an announcement.)
|
||
|
||
These requirements apply to the modified work as a whole. If
|
||
identifiable sections of that work are not derived from the
|
||
Program, and can be reasonably considered independent and separate
|
||
works in themselves, then this License, and its terms, do not apply
|
||
to those sections when you distribute them as separate works. But
|
||
when you distribute the same sections as part of a whole which is a
|
||
work based on the Program, the distribution of the whole must be on
|
||
the terms of this License, whose permissions for other licensees
|
||
extend to the entire whole, and thus to each and every part
|
||
regardless of who wrote it.
|
||
|
||
Thus, it is not the intent of this section to claim rights or
|
||
contest your rights to work written entirely by you; rather, the
|
||
intent is to exercise the right to control the distribution of
|
||
derivative or collective works based on the Program.
|
||
|
||
In addition, mere aggregation of another work not based on the
|
||
Program with the Program (or with a work based on the Program) on a
|
||
volume of a storage or distribution medium does not bring the other
|
||
work under the scope of this License.
|
||
|
||
· You may copy and distribute the Program (or a work based on it,
|
||
under Section 2) in object code or executable form under the terms
|
||
of Sections 1 and 2 above provided that you also do one of the
|
||
following:
|
||
|
||
1. Accompany it with the complete corresponding machine-readable
|
||
source code, which must be distributed under the terms of Sections
|
||
1 and 2 above on a medium customarily used for software
|
||
interchange; or,
|
||
|
||
2. Accompany it with a written offer, valid for at least three
|
||
years, to give any third party, for a charge no more than your cost
|
||
of physically performing source distribution, a complete machine-
|
||
readable copy of the corresponding source code, to be distributed
|
||
under the terms of Sections 1 and 2 above on a medium customarily
|
||
used for software interchange; or,
|
||
|
||
3. Accompany it with the information you received as to the offer
|
||
to distribute corresponding source code. (This alternative is
|
||
allowed only for noncommercial distribution and only if you
|
||
received the program in object code or executable form with such an
|
||
offer, in accord with Subsection b above.)
|
||
|
||
The source code for a work means the preferred form of the work for
|
||
making modifications to it. For an executable work, complete
|
||
source code means all the source code for all modules it contains,
|
||
plus any associated interface definition files, plus the scripts
|
||
used to control compilation and installation of the executable.
|
||
However, as a special exception, the source code distributed need
|
||
not include anything that is normally distributed (in either source
|
||
or binary form) with the major components (compiler, kernel, and so
|
||
on) of the operating system on which the executable runs, unless
|
||
that component itself accompanies the executable.
|
||
|
||
If distribution of executable or object code is made by offering
|
||
access to copy from a designated place, then offering equivalent
|
||
access to copy the source code from the same place counts as
|
||
distribution of the source code, even though third parties are not
|
||
compelled to copy the source along with the object code.
|
||
|
||
· You may not copy, modify, sublicense, or distribute the Program
|
||
except as expressly provided under this License. Any attempt
|
||
otherwise to copy, modify, sublicense or distribute the Program is
|
||
void, and will automatically terminate your rights under this
|
||
License. However, parties who have received copies, or rights,
|
||
from you under this License will not have their licenses terminated
|
||
so long as such parties remain in full compliance.
|
||
|
||
· You are not required to accept this License, since you have not
|
||
signed it. However, nothing else grants you permission to modify
|
||
or distribute the Program or its derivative works. These actions
|
||
are prohibited by law if you do not accept this License.
|
||
Therefore, by modifying or distributing the Program (or any work
|
||
based on the Program), you indicate your acceptance of this License
|
||
to do so, and all its terms and conditions for copying,
|
||
distributing or modifying the Program or works based on it.
|
||
|
||
· Each time you redistribute the Program (or any work based on the
|
||
Program), the recipient automatically receives a license from the
|
||
original licensor to copy, distribute or modify the Program subject
|
||
to these terms and conditions. You may not impose any further
|
||
restrictions on the recipients' exercise of the rights granted
|
||
herein. You are not responsible for enforcing compliance by third
|
||
parties to this License.
|
||
|
||
· If, as a consequence of a court judgment or allegation of patent
|
||
infringement or for any other reason (not limited to patent
|
||
issues), conditions are imposed on you (whether by court order,
|
||
agreement or otherwise) that contradict the conditions of this
|
||
License, they do not excuse you from the conditions of this
|
||
License. If you cannot distribute so as to satisfy simultaneously
|
||
your obligations under this License and any other pertinent
|
||
obligations, then as a consequence you may not distribute the
|
||
Program at all. For example, if a patent license would not permit
|
||
royalty-free redistribution of the Program by all those who receive
|
||
copies directly or indirectly through you, then the only way you
|
||
could satisfy both it and this License would be to refrain entirely
|
||
from distribution of the Program.
|
||
|
||
If any portion of this section is held invalid or unenforceable
|
||
under any particular circumstance, the balance of the section is
|
||
intended to apply and the section as a whole is intended to apply
|
||
in other circumstances.
|
||
|
||
It is not the purpose of this section to induce you to infringe any
|
||
patents or other property right claims or to contest validity of
|
||
any such claims; this section has the sole purpose of protecting
|
||
the integrity of the free software distribution system, which is
|
||
implemented by public license practices. Many people have made
|
||
generous contributions to the wide range of software distributed
|
||
through that system in reliance on consistent application of that
|
||
system; it is up to the author/donor to decide if he or she is
|
||
willing to distribute software through any other system and a
|
||
licensee cannot impose that choice.
|
||
|
||
This section is intended to make thoroughly clear what is believed
|
||
to be a consequence of the rest of this License.
|
||
|
||
· If the distribution and/or use of the Program is restricted in
|
||
certain countries either by patents or by copyrighted interfaces,
|
||
the original copyright holder who places the Program under this
|
||
License may add an explicit geographical distribution limitation
|
||
excluding those countries, so that distribution is permitted only
|
||
in or among countries not thus excluded. In such case, this
|
||
License incorporates the limitation as if written in the body of
|
||
this License.
|
||
|
||
· The Free Software Foundation may publish revised and/or new
|
||
versions of the General Public License from time to time. Such new
|
||
versions will be similar in spirit to the present version, but may
|
||
differ in detail to address new problems or concerns.
|
||
|
||
Each version is given a distinguishing version number. If the
|
||
Program specifies a version number of this License which applies to
|
||
it and ``any later version,'' you have the option of following the
|
||
terms and conditions either of that version or of any later version
|
||
published by the Free Software Foundation. If the Program does not
|
||
specify a version number of this License, you may choose any
|
||
version ever published by the Free Software Foundation.
|
||
|
||
· If you wish to incorporate parts of the Program into other free
|
||
programs whose distribution conditions are different, write to the
|
||
author to ask for permission. For software which is copyrighted by
|
||
the Free Software Foundation, write to the Free Software
|
||
Foundation; we sometimes make exceptions for this. Our decision
|
||
will be guided by the two goals of preserving the free status of
|
||
all derivatives of our free software and of promoting the sharing
|
||
and reuse of software generally.
|
||
|
||
NO WARRANTY
|
||
|
||
· BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
|
||
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
|
||
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
|
||
AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY
|
||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
|
||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||
FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
|
||
PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE
|
||
DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR
|
||
OR CORRECTION.
|
||
|
||
· IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
|
||
MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
|
||
LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
|
||
INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
|
||
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
|
||
OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
|
||
OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
|
||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||
|
||
END OF TERMS AND CONDITIONS
|
||
|
||
|
||
10.3. How to Apply These Terms to Your New Programs
|
||
|
||
If you develop a new program, and you want it to be of the greatest
|
||
possible use to the public, the best way to achieve this is to make it
|
||
free software which everyone can redistribute and change under these
|
||
terms.
|
||
|
||
To do so, attach the following notices to the program. It is safest
|
||
to attach them to the start of each source file to most effectively
|
||
convey the exclusion of warranty; and each file should have at least
|
||
the ``copyright'' line and a pointer to where the full notice is
|
||
found.
|
||
|
||
|
||
[one line to give the program's name and an idea of what it does.
|
||
Copyright (C) 19[yy] [name of author]
|
||
|
||
This program is free software; you can redistribute it and/or
|
||
modify it under the terms of the GNU General Public License
|
||
as published by the Free Software Foundation; either version 2
|
||
of the License, or (at your option) any later version.
|
||
|
||
This program is distributed in the hope that it will be useful,
|
||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
GNU General Public License for more details.
|
||
|
||
You should have received a copy of the GNU General Public License along
|
||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||
59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||
|
||
|
||
|
||
Also add information on how to contact you by electronic and paper
|
||
mail.
|
||
|
||
If the program is interactive, make it output a short notice like this
|
||
when it starts in an interactive mode:
|
||
|
||
|
||
Gnomovision version 69, Copyright (C) 19[yy] [name of author]
|
||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
|
||
type `show w'. This is free software, and you are welcome
|
||
to redistribute it under certain conditions; type `show c'
|
||
for details.
|
||
|
||
|
||
|
||
The hypothetical commands ``show w'' and ``show c'' should show the
|
||
appropriate parts of the General Public License. Of course, the
|
||
commands you use may be called something other than ``show w'' and
|
||
``show c''; they could even be mouse-clicks or menu items---whatever
|
||
suits your program.
|
||
|
||
|
||
You should also get your employer (if you work as a programmer) or
|
||
your school, if any, to sign a ``copyright disclaimer'' for the
|
||
program, if necessary. Here is a sample; alter the names:
|
||
|
||
|
||
Yoyodyne, Inc., hereby disclaims all copyright
|
||
interest in the program `Gnomovision'
|
||
(which makes passes at compilers) written
|
||
by James Hacker.
|
||
|
||
[signature of Ty Coon] 1 April 1989
|
||
Ty Coon, President of Vice
|
||
|
||
|
||
|
||
This General Public License does not permit incorporating your program
|
||
into proprietary programs. If your program is a subroutine library,
|
||
you may consider it more useful to permit linking proprietary
|
||
applications with the library. If this is what you want to do, use
|
||
the GNU Library General Public License instead of this License.
|
||
|
||
|
||
|