summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/fntproof/fntproof-doc.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-12-02 18:04:55 +0000
committerKarl Berry <karl@freefriends.org>2010-12-02 18:04:55 +0000
commitd4d9bd877f2a73e809752b7047f015940ca249f5 (patch)
treefcdd9e85650ae3fa0fc024dd85e98614e20ad32a /Master/texmf-dist/doc/generic/fntproof/fntproof-doc.tex
parentec2695953d651111268fe88a6c24cf02fc3750df (diff)
new generic package fntproof 1.0 (1dec10)
git-svn-id: svn://tug.org/texlive/trunk@20638 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/generic/fntproof/fntproof-doc.tex')
-rw-r--r--Master/texmf-dist/doc/generic/fntproof/fntproof-doc.tex578
1 files changed, 578 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/fntproof/fntproof-doc.tex b/Master/texmf-dist/doc/generic/fntproof/fntproof-doc.tex
new file mode 100644
index 00000000000..5937314c075
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/fntproof/fntproof-doc.tex
@@ -0,0 +1,578 @@
+\documentclass[draft]{article}
+\usepackage{mflogo}
+\addtolength\textwidth{.5in}
+\addtolength\oddsidemargin{-.25in}
+\usepackage{verbatim}
+\newcommand\prog[1]{\texttt{#1}}
+\newcommand\file[1]{\texttt{#1}}
+\newcommand\env[1]{\texttt{#1}}
+\renewcommand\"{\verb"}
+
+\newcommand\meta[1]{$\langle$\textit{#1}$\rangle$}
+\title{How to use \file{fntproof.tex}\\ and \file{testfont.tex}}
+\author{Dan Luecking\thanks{\copyright 2010
+ by Daniel H. Luecking. This software is public domain. If you make any
+ changes to this document, please remove or modify this copyright notice
+ before distributing your version, preferably with a different name.
+ This documents version 1.0 of \file{fntproof}}}
+
+\begin{document}
+
+\maketitle
+
+\begin{abstract}
+ The macro file \file{fntproof.tex} is a noninteractive version of
+ D.~E.~Knuth's \file{testfont.tex}. Instead of prompting for font names
+ and commands, the user supplies them on the command line, or in a file.
+\end{abstract}
+
+
+\section{Introduction}
+
+I used to often run \prog{tex} on \file{testfont.tex}, which prompts for
+a font name and prompts for a command. Often, after ending the session,
+I would want to run almost the same command on almost the same font and
+would have to type almost everything over again, or else deal with my
+\prog{tex} program's rather primitive line recall/editing mechanism.
+
+Since I run \prog{tex} in a command shell which has better command line
+recall and rather better line editing capabilities than my \prog{tex}
+has, I wrote \file{fntproof.tex} to give me the same capabilities as
+\file{testfont.tex}, but allow me to specify the font and the commands
+on the command line.
+
+This is the documentation of \file{fntproof}. Since \file{testfont.tex}
+has no documentation outside of ``The \MF book'', I am also also
+documenting it. The reader is assumed to have some minimal knowledge of
+plain \TeX{}, especially the ``\"\font"'' command.
+
+Apart from the fact that \file{fntproof} can read the fontname from the
+command line, there are few differences between \file{testfont.tex} and
+\file{fntproof.tex}:
+
+\begin{itemize}
+ \item In \file{testfont}, the \"\init" command prompts for a fontname,
+ while \file{fntproof} arranges to read one typed on the command
+ line or in a file.
+
+ \item In \file{testfont}, \"\mixture", \"\alternation" and \"\series"
+ issue three prompts, while in \file{fntproof} they read three
+ arguments.
+
+ \item In \file{testfont}, \"\alphabet" and \"\ALPHABET" issue a
+ prompt, while in \file{fntproof} they read an argument.
+
+ \item In a \LaTeX{} document, \file{testfont} redefines the \"\table"
+ command, destroying the \env{table} environment, while
+ \file{fntproof} tries to detect \LaTeX{} and leave \"\table"
+ alone. The command \"\fonttable" then takes the place of
+ \file{testfont}'s \"\table" command.
+
+ \item In \file{testfont}, the primitive \TeX{} command \"\fontname" is
+ also overwritten, while \file{fntproof} uses a different
+ internal name for the same purpose. This require a couple of
+ other minor differences to be discussed later.
+
+ \item There are a few useful commands added.
+\end{itemize}
+
+Like \file{testfont}, \file{fntproof} can print a table of the font's
+characters and a bit of sample text and run other tests. It has
+noninteractive versions of all the interactive commands allowed by
+\file{testfont}.
+
+
+\section{Example command lines}\label{examples}
+
+\begin{itemize}
+ \item Produce sample text of cmr10:
+\begin{verbatim}
+ tex fntproof cmr10 \text\bye
+\end{verbatim}
+
+ \item Produce a table of cmr10 and sample text of cmti10 (pdf output).
+ Note the use of ``\"\init"'' to change to the new font:
+\begin{verbatim}
+ pdftex fntproof cmr10 \table \init cmti10 \text\bye
+\end{verbatim}
+
+ \item Produce a table and a test of digits for cmr10, only a table for
+ cmti10 at 12pt:
+\begin{verbatim}
+ tex fntproof cmr10 \table\digits\init{cmti10 at 12pt}\table\bye
+\end{verbatim}
+
+ \item Obtain a list of available commands and their meanings
+\begin{verbatim}
+ pdftex fntproof \help \end
+\end{verbatim}
+\end{itemize}
+
+Your command line interpreter may require you to quote or escape
+backslashes or other of its special characters in these examples. I am
+able to run all of these as-is in a command window under Windows XP
+using TeX Live 2008--2010. Of course the output appears in
+\file{fntproof.dvi} or \file{fntproof.pdf}.
+
+
+\section{The commands}
+
+A font can be specified by its TFM filename followed by a space (or a
+line end). Font filenames are allowed to contain most of \TeX{}'s
+special characters when \file{fntproof} is used. However, they cannot
+contain spaces or other whitespace characters, and they cannot begin
+with a left brace~(\"{"). There are even more limitations on the TFM
+filename typed at \file{textfont}'s prompt, as most special
+\TeX{} characters cause some problem or other.
+
+A command applies to the font most recently specified. The following
+commands are available. They are the same as those provided by the
+interactive version, \file{testfont.tex}, except they do not prompt for
+input, but require any arguments to follow the command.
+
+\begin{itemize}
+ \item \"\sample" \"\table" \"\text"\\
+ \"\sample" produces a table and some sample text; \"\table" produces
+ only the table, \"\text" only the text.
+
+ \item \"\mixture"\\
+ This takes three characters as arguments. The first character
+ (the ``background'') is mixed among all the characters from the
+ second argument to the third. For example, ``\"\mixture Xaz"'' produces
+\begin{verbatim}
+ XaXXaaXXXaaaXa
+ XbXXbbXXXbbbXb
+ ...
+\end{verbatim}
+ and so on, until z.
+
+ \item \"\alternation"\\
+ This is like \"\mixture", except ``\"\alternation Xaz"''
+ produces lines like
+\begin{verbatim}
+ XaXaXaXaXaXaXaXaX
+ XbXbXbXbXbXbXbXbX
+ ...
+\end{verbatim}
+ and so on.
+
+ \item \"\series"\\
+ Like the previous two it takes 3 arguments, but produces a
+ single line containing all the characters in the sequence. Thus,
+ ``\"\series Xaz"'' produces
+\begin{verbatim}
+ XaXbXcXdXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwXxXyXzX
+\end{verbatim}
+
+ \item \"\alphabet" \"\ALPHABET"\\
+ These take one character as argument. It is the ``background''
+ and is mixed among all the lowercase, respectively uppercase
+ letters. So ``\"\ALPHABET x"'' is almost like
+ ``\"\series xAZ"'', but also includes the characters \AE, \OE,
+ and \O, while ``\"\alphabet X"'' is like ``\"\series Xaz"'', but
+ also includes \ae, \oe, \o, and \ss.
+
+ \item \"\lowers" \"\uppers" \"\digits" \"\names"
+ \"\punct"\\
+ These perform comprehensive tests of lowercase, uppercase,
+ digits, names and punctuation. For example, \"\lowers" is
+ like
+\begin{verbatim}
+ \alphabet a \alphabet b ...
+\end{verbatim}
+
+ and \"\digits" is like
+\begin{verbatim}
+ \series 009 \series 109 \series 209 ...
+\end{verbatim}
+
+ \item \"\bigtest" \"\math"\\
+ \"\bigtest" includes (more or less) all the previous
+ commands. \"\math" produces a large set of tests of math
+ (the font should be a math alphabetic font like cmmi10).
+
+ \item \"\help" \"\init" \"\noinit"\\
+ \"\help" produces a summary of available commands on the screen.
+
+ \"\init" prepares for the next font. In \file{testfont}, it
+ issues a prompt for a fontname and need not be invoke for the
+ first font, which is prompted for immediately after input.
+ In \file{fntproof}, it reads the following fontname, and it need
+ not be used before the first font (see the examples in
+ section~\ref{examples}), unless the filename begins with a
+ \TeX{} special character.
+
+ \"\noinit" turns off this automatic initialization. Use it when
+ you want some text before the first font test, or if you want
+ the current font to be used. Its syntax differs between
+ \file{fntproof} and \file{testfont}, see below.
+\end{itemize}
+
+Note: In \file{fntproof}, \"\init" examines the first following
+nonspace character. If that is a left brace (i.e., ``\"{"'')
+\"\init" assumes the font name is contained between that left brace
+and the first matching right brace~(``\"}"'').
+Multi-part font specifications (such as ``\"cmr10 at 12pt"'') must be
+enclosed in braces, and this \emph{must} be preceded by \"\init".
+
+For the commands that take character arguments, the actual characters
+might not be printed, especially in symbol fonts. Instead, the glyphs in
+the corresponding positions will appear. Most printable ASCII characters
+can be used in the argument, but not ``\"{"'', ``\"}"'', ``\"\"'' or space. In
+place of a literal character one can supply a numerical position in the
+font. This command:
+\begin{verbatim}
+ \mixture X{#97}{#122}
+\end{verbatim}
+has the same effect as this one:
+\begin{verbatim}
+ \mixture Xaz
+\end{verbatim}
+The numeric part of the argument (everything after after the \"#") can
+be (probably) any valid \TeX{} number. Your command line interpreter may
+require you to escape or ``quote'' the double quote marks which are used
+in \TeX{} for hexadecimal, the single quote marks used for octal or the
+back quote used in character code notation.
+
+A numerical argument must be enclosed in braces: a ``\"#"'' not in braces
+(or alone in braces) will be taken literally. For example,
+\begin{verbatim}
+ \mixture #120az
+\end{verbatim}
+would read ``\"#"'', ``\"1"'' and ``\"2"'' as the arguments and the rest,
+``\"0az"'', as plain \TeX{} code (i.e., characters to be printed).
+
+It should be noted that the implementation of \"\series" does not
+allow any ligatures or kerns between adjacent characters. This is also
+true of the commands based on \"\series": \"\alphabet", \"\ALPHABET",
+\"\lowers", \"\uppers", and \"\digits". It is true for both
+\file{testfont} and \file{fntproof}, which use the same internal
+implementation. If one wants to test these properties of a font, one
+must type in ones own text (see the following section).
+
+Another limitation: in the ``\"\alphabet"'' and ``\"ALPHABET"''
+commands, if the font has an encoding other than OT1, then the
+characters \ae, \oe, \o, \ss, \AE, \OE, and \O{} may not appear as
+advertised, since the implementation accesses them by position
+number. For PostScript fonts, a black box may appear where these
+characters should be.
+
+In addition to the commands listed, which are common to \file{fntproof}
+and \file{testfont}, \file{fntproof} supplies the following extra
+commands, not available in \file{testfont}.
+
+\begin{itemize}
+\item \"\initcurrentfont"\\
+ Use this to perform the functions of \"\init" on the current font.
+ This would normally be preceded by commands selecting the desired
+ font. See section~\ref{latex} for a \LaTeX{} example.
+
+\item \"\noinit"\\
+ In \file{testfont}, the only way to use this is to say
+ \"\let\noinit=!" \emph{before} inputting \file{testfont.tex}. This
+ cancels the immediate prompt for a font filename. But in
+ \file{fntproof}, ``\"\noinit"'' can also be used immediately
+ \emph{after} inputting \file{fntproof}. Either use cancels
+ \file{fntproof}'s assumption that the first following word is the
+ name of the font to be selected. This allows ordinary text to be
+ inserted before selecting a font. After this, the command \"\init"
+ allows a font to be specified.
+
+\item \"\headersfalse" \"\headerstrue" \"\theheader"\\
+ A side effect of the \"\init" command (including one implicitly
+ invoked by a font name following the input of \file{fntproof}) is
+ the printing of a single header line similar to the following:
+\begin{verbatim}
+ Test of cmti10 on July 31 at 1244
+\end{verbatim}
+ Use ``\"\headersfalse"'' to force the omission of all such headers
+ for any subsequent font. Use ``\"\headerstrue"'' to resume the
+ default behavior. In any circumstance, the header text can be
+ printed using ``\"\theheader"''.
+
+\item \"\thisfont" \"\getthisfont"\\
+ The macro ``\"\thisfont"'' produces the name of the font most
+ recently specified by an explicit or implicit \"\init" or by
+ \"\initcurrentfont". If no such initialization was done,
+ ``\"\getthisfont"'' will cause \"\thisfont" to be defined to the
+ text produced by the command sequence \"\fontname\font" (i.e., the
+ tfm filename of the current font---plus any ``\texttt{scaled}'' or
+ ``\texttt{at}'' clause).
+
+\item \"\fonttable"\\
+ As already mentioned, this is the alternative to \"\table" that must
+ be used in \LaTeX{}. It can also be used in plain \TeX{}.
+
+\end{itemize}
+
+
+\section{Other \TeX{} commands}
+
+\TeX{} commands besides the above can be inserted at any point except
+between \"\init" and the next fontname. No guarantee is given that they
+they will have the expected effect. Text will be printed in the whatever
+font is current. No text should be typed between ``\file{fntproof}'' and
+the first fontname or else it will be mistaken for a font (but see
+\"\noinit" above and examples of its use below).
+
+If the command line does not end in \"\end" or \"\bye", \TeX{} will wait
+for more input in its usual way, with a ``\texttt{*}'' prompt. If additional
+commands from the above list are entered (except \"\init"), they will be
+applied to the previously named font. Moreover, a new font name can be
+entered (after \"\init"). Of course, any plain \TeX{} commands can be
+entered. The session can be ended by entering \"\end" or \"\bye".
+
+
+\section{Use as a macro file}
+
+Like \file{testfont.tex}, \file{fntproof.tex} allows the commands to be
+used in a file rather than interactively, or on the command line. One
+can do this by writing ``\"\let\noinit=!"'' before inputting
+\file{testfont} or \file{fntproof}. This is somewhat more useful for
+\file{fntproof} than for \file{testfont} as \emph{all} the \file{fntproof}
+commands are noninteractive.
+
+Unlike \file{testfont}, \file{fntproof} also allows you to simply type
+``\"\noinit"'' \emph{immediately after} inputting it, for the same
+effect. For example, with \file{testfont} one would initialize the font
+oneself and then issue commands:
+\begin{verbatim}
+ \let\noinit=! \input testfont
+ Ordinary text in default font.
+ \def\fontname{cmti10}\startfont \table \text \bye
+\end{verbatim}
+Note that ``initializing a font'' after \file{testfont} is loaded
+amounts to defining \"\fontname" and then using the \"\startfont"
+command. The above example will produce a table and sample text of
+cmti10. Note that \"\startfont" alone will not work. If both steps are
+omitted, the \"\table" command will build a table of the current font,
+but certain preparatory steps will not be taken and some commands (but
+not \"\table") will produce errors.
+
+The corresponding \file{fntproof} method would be the following. Note
+that this could also be typed on the command line (all on one line)
+after the tex command (in that case the ``\"\input"'' would be omitted):
+\begin{verbatim}
+ \input fntproof \noinit
+ Ordinary text in default font.
+ \init cmti10 \table \text \bye
+\end{verbatim}
+Note that \file{testfont.tex} causes the \TeX{} primitive command
+\"\fontname" to be redefined. The macros in \file{fntproof} do not do
+this, but instead use \"\thisfont" for the same internal purposes as
+\file{testfont} uses \"\fontname".
+
+If one wanted to initialize a font immediately (with no intervening
+text in some other font), even this \"\noinit" hack is unnecessary:
+\begin{verbatim}
+ \input fntproof cmr10 \table \text \bye
+\end{verbatim}
+This would perform the auto-\"\init" on cmr10. In this case, any
+\"\headersfalse" command would have to be put just before the font name.
+Otherwise, it need only come before the next \"\init" command.
+
+In \file{testfont}, a command like \"\mixture" would produce three
+prompts to get the character or numeric arguments. For the corresponding
+\file{fntproof} commands, these arguments must be supplied and no
+interactive prompt occurs. One can get around these interactive prompts
+in \file{testfont}, but it is rather inconvenient:
+
+\begin{itemize}
+\item with \file{testfont}:
+\begin{verbatim}
+\let\noinit! \input testfont
+Some text in default font. Here is a mixture in cmti:
+\chardef\background`X
+\chardef\starting`a
+\chardef\ending`z
+\def\fontname{cmti10}\startfont
+\domix\mixpattern% \altpattern for the effect of \alternation
+\bye
+\end{verbatim}
+
+\item with \file{fntproof}:
+\begin{verbatim}
+\input fntproof \noinit
+Some text in default font. Here is a mixture in cmti:
+\init cmti10 \mixture Xaz \bye
+\end{verbatim}
+\end{itemize}
+
+For completeness, here are the other ways to avoid the interactive
+prompt when using \file{testfont} (right), compared to each of the
+\file{fntproof} commands (left).
+
+\begin{itemize}
+ \item \"\series Xaz" $\Rightarrow$ \"\chardef\background`X\!\doseries{`a}{`z}\par"
+ \item \"\alphabet X" $\Rightarrow$ \"\chardef\background`X\complower"
+ \item \"\ALPHABET X" $\Rightarrow$ \"\chardef\background`X\compupper"
+\end{itemize}
+
+In the \"\doseries" command, the arguments can be numbers:
+\"\doseries{97}{122}" is the same as \"\doseries{`a}{`z}". You can use
+numbers in the \"\chardef" commands. For example
+``\"\chardef\background88 "'' is the same as ``\"\chardef\background `X"''.
+Note: a space (or end-of-line) after explicit digits is almost
+mandatory to terminate the number before any following macros are
+expanded.
+
+Instead of ``\"\init" \meta{tfmname}'', one can use normal font
+selection commands, followed by ``\"\initcurrentfont"'', and then the
+testing commands (e.g., \"\fonttable", \"\text"). For example,
+\begin{verbatim}
+ \input fntproof
+ \font\x=cmdunh10 at 12pt \x
+ \initcurrentfont \table \text \bye
+\end{verbatim}
+See the next section for an example in \LaTeX{}. To do this with
+\file{testfont} would require the following incantations:
+\begin{verbatim}
+ \let\originalfontname\fontname
+ \let \noinit=!
+ \input testfont
+ \font\x=cmdunh10 at 12pt \x
+ \edef\fontname{\originalfontname\font}%
+ \startfont \table \text \bye
+\end{verbatim}
+
+Note that \"\init", \"\initcurrentfont" and some of the testing commands
+change some \TeX{} parameters. This could affect the typesetting of the
+rest of the document, so it might be wise to enclose a session of font
+testing in a group, if your document contains other material.
+
+Note also that the mere loading of \file{fntproof} or \file{testfont}
+invokes the following settings:
+\begin{verbatim}
+ \tracinglostchars=0
+ \tolerance=1000
+ \raggedbottom
+ \parindent=0pt
+ \hyphenpenalty=200
+ \doublehyphendemerits=30000
+\end{verbatim}
+These are suitable for the running of tests on fonts. If the rest of
+your document needs different parameters, it is your responsibility to
+reset these afterward. There are also numerous internal macros used by
+both \file{testfont} and \file{fntproof} that are not protected by
+having \texttt{@} in there name. This is another reason to input the
+macro file and use the testing macros inside a group.
+
+Finally, \file{testfont} turns off page numbering (in plain \TeX) when loaded.
+
+
+\section{Use with \LaTeX{}}\label{latex}
+
+In \LaTeX{}, printable text has to come after \"\begin{document}" so a
+minimal command line could be (typed without pressing [Enter] or [Return]):
+\begin{verbatim}
+ latex fntproof \noinit \documentclass{article}\begin{document}
+ \init cmr10 \fonttable \end{document}
+\end{verbatim}
+
+Thus with \LaTeX{}, \file{fntproof} might better be used in a file. Note
+also that \"\fonttable" is used instead of \"\table" to avoid destroying
+\LaTeX{}'s table environment. For example,
+\begin{verbatim}
+ \documentclass[12pt]{article}
+ \begin{document}
+ \input fntproof
+ \fontencoding{T1}\fontfamily{bch}\selectfont
+ \initcurrentfont
+ \fonttable
+ \end{document}
+\end{verbatim}
+This would produce a table of the Bitstream Charter font..
+
+The above font selection commands ultimately load the TFM file
+\texttt{bchr8t} magnified to \texttt{12pt}. Thus, the header
+text actually looks something like this:
+\begin{verbatim}
+ Test of bchr8t at 12.0pt on October 7, 2010 at 1649
+\end{verbatim}
+Moreover, ``\"\thisfont"'' will acquire the definition ``\texttt{bchr8t
+at 12.0pt}''.
+
+I have not tested \file{testfont.tex} much in \LaTeX{}. After the
+\"\let\noinit=!" hack, inputting \file{testfont} causes an
+error because \"\nopagenumbers" is undefined. Then the command
+\"\table", \"\text", or \"\sample" cause an error because \"\sevenrm" is
+undefined, but otherwise proceed correctly.
+
+
+\section{History}
+
+ 2009/05/05 -- first version\\
+ 2009/07/31 -- add \"\noinit", \"\ifheaders", \"\theheader"\\
+ 2009/11/12 -- revised documentation (comments)\\
+ 2010/01/03 -- further documentation revisions\\
+ 2010/10/11 -- documentation moved to separate file, added
+ \"\initcurrentfont" and \"\getthisfont".
+
+\bigskip
+
+\section{Appendix}
+
+The output of \file{fntproof}'s \"\help" command:
+\begin{verbatim}
+=== Main commands ==============
+\init switches to another font;
+\end or \bye finishes the run;
+\table prints the font layout in tabular format;
+\fonttable must be used instead of \table in LaTeX;
+ \text prints a sample text, assuming TeX text font conventions;
+\sample combines \table and \text;
+\mixture mixes a background character with a series of others;
+\alternation interleaves a background character with a series;
+\alphabet prints all lowercase letters within a given background
+\ALPHABET prints all uppercase letters within a given background
+\series prints a series of letters within a given background;
+\lowers prints a comprehensive test of lowercase;
+\uppers prints a comprehensive test of uppercase;
+\digits prints a comprehensive test of numerals;
+\math prints a comprehensive test of TeX math italic;
+\names prints a text that mixes upper and lower case;
+\punct prints a punctuation test;
+\bigtest combines many of the above routines;
+\help repeats this message;
+and you can use ordinary TeX commands (e.g., to \input a file).
+=== More commands ==============
+\noinit turns off automatic initialization of the first word as a font;
+\headersfalse \headerstrue turn off/resume printing of header text;
+\theheader print the header text;
+\thisfont print the name of font specified by \init;
+\getthisfont define \thisfont to be the current font;
+==================================
+\end{verbatim}
+
+\bigskip
+\filbreak
+\noindent The output of \file{testfont}'s \"\help" command:
+\begin{verbatim}
+\init switches to another font;
+\end or \bye finishes the run;
+\table prints the font layout in tabular format;
+\text prints a sample text, assuming TeX text font conventions;
+\sample combines \table and \text;
+\mixture mixes a background character with a series of others;
+\alternation interleaves a background character with a series;
+\alphabet prints all lowercase letters within a given backgroun
+\ALPHABET prints all uppercase letters within a given backgroun
+\series prints a series of letters within a given background;
+\lowers prints a comprehensive test of lowercase;
+\uppers prints a comprehensive test of uppercase;
+\digits prints a comprehensive test of numerals;
+\math prints a comprehensive test of TeX math italic;
+\names prints a text that mixes upper and lower case;
+\punct prints a punctuation test;
+\bigtest combines many of the above routines;
+\help repeats this message;
+and you can use ordinary TeX commands (e.g., to \input a file).
+\end{verbatim}
+
+\bigskip
+\filbreak
+\noindent Knuth's original \file{testfont.tex} comment:\\
+\texttt{\% A testbed for font evaluation (see The METAFONTbook, Appendix H)}
+
+\end{document}
+