home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 4
/
FreshFish_May-June1994.bin
/
useful
/
dist
/
text
/
tex
/
pastex
/
macros
/
latex
/
nfss2
/
nfssfont.dtx
(
.txt
)
< prev
next >
Wrap
LaTeX Document
|
1993-08-05
|
15KB
|
347 lines
% \iffalse meta-comment
% Copyright (C) 1989--1993 by Frank Mittelbach, Rainer Schoepf.
% All rights reserved.
% This file is part of the NFSS2 (New Font Selection Scheme) package.
% This package 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.
% IMPORTANT NOTICE:
% For error reports in case of UNCHANGED versions see readme files.
% Please do not request updates from us directly. Distribution is
% done through Mail-Servers and TeX organizations.
% You are not allowed to change this file. You may however copy
% this file to a file with a different name and then change the copy
% if you obey the restrictions on file changes described in
% readme.mz.
% You are allowed to distribute this file under the condition that
% it is distributed together with all files mentioned in readme.mz8.
% If you receive only some of these files from someone, complain!
% You are NOT ALLOWED to distribute this file alone. You are NOT
% ALLOWED to take money for the distribution or use of either this
% file or a changed version, except for a nominal charge for copying
% etc.
% \fi
\def\fileversion{v2.0b}
\def\filedate{93/04/14}
\def\docdate {93/02/28}
% \CheckSum{1136}
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%% Digits \0\1\2\3\4\5\6\7\8\9
%% Exclamation \! Double quote \" Hash (number) \#
%% Dollar \$ Percent \% Ampersand \&
%% Acute accent \' Left paren \( Right paren \)
%% Asterisk \* Plus \+ Comma \,
%% Minus \- Point \. Solidus \/
%% Colon \: Semicolon \; Less than \<
%% Equals \= Greater than \> Question mark \?
%% Commercial at \@ Left bracket \[ Backslash \\
%% Right bracket \] Circumflex \^ Underscore \_
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
% \iffalse
% Copyright (C) 1993 Frank Mittelbach,
% all rights reserved.
% \fi
% \title{The program {\tt nfssfont}}
% \author{Frank Mittelbach}
% \date{\filedate}
% \MakeShortVerb\|
% \def\dst{{\csname mediumseries\endcsname\sc docstrip}}
% \def\NFSS{{\sf NFSS}}
% \setcounter{StandardModuleDepth}{1}
% \maketitle
% \section{Introduction}
% Within the \NFSS{} distribution there is a \LaTeX{} file
% \texttt{nfssfont.tex} which can be used to test new fonts, produce
% font tables showing all characters, etc. This is an addaption of a
% program originally written by Don Knuth. When you run this file
% through \LaTeX{} you will be asked to enter the name of the font to
% test. Your answer should be the external font name without any
% extension, e.g.\ \texttt{cmr10} (Computer Modern Roman 10pt) or
% \texttt{yinit} (Yannis Haralambous' Initial font). You are then
% requested to enter a command. Probably the most important one is
% |\table|, which will produce a font chart. To switch to a new test
% font, type |\init|; to finish the test, type |\bye|; and to learn
% about all the other possible tests type |\help|.
% Interfaces and code will probably change in the future. This is at
% the moment only a crude addaption of the test program for the
% Computer Modern fonts.
% \StopEventually{}
% \section{The code}
% A testbed for font evaluation (see The METAFONTbook, Appendix H)
% changed for \LaTeX{} with \NFSS.
% This program should get a complete rewrite some day. Any volunteer?
% \begin{macrocode}
%<*code>
\documentstyle{article} %FMi
\nofiles %FMi
\textwidth=470pt %FMi
\oddsidemargin=0pt %FMi
\textheight=1000pt %FMi
\def\sevenrm{\fontsize{7}{9pt}\rm} %FMi
\typeout{**********************************************}
\typeout{* NFSS font test program version <\fileversion>}
\typeout{*}
\typeout{* Follow the instructions}
\typeout{**********************************************}
\typeout{}
\tracinglostchars=0
\tolerance=1000
\raggedbottom
\parindent=0pt
%\newlinechar=`@ %FMi
\hyphenpenalty=200
\doublehyphendemerits=30000
% \end{macrocode}
%
% \begin{macrocode}
\newcount\m \newcount\n \newcount\p \newdimen\dim
\chardef\other=12
\def\today{\ifcase\month\or
January\or February\or March\or April\or May\or June\or
July\or August\or September\or October\or November\or December\fi
\space\number\day, \number\year}
\def\hours{\n=\time \divide\n 60
\m=-\n \multiply\m 60 \advance\m \time
\twodigits\n\twodigits\m}
\def\twodigits#1{\ifnum #1<10 0\fi \number#1}
\def\init{\message{^^JName of the font to test = }
\read-1 to\fontname \startfont
\message{Now type a test command (\string\help\space for help):}}
\def\startfont{\font\testfont=\fontname
\leftline{\sevenrm Test of \fontname\unskip\ on \today\ at \hours}
\medskip
\testfont \setbaselineskip
\ifdim\fontdimen6\testfont<10pt \rightskip=0pt plus 20pt
\else\rightskip=0pt plus 2em \fi
\spaceskip=\fontdimen2\testfont % space between words (\raggedright)
\xspaceskip=\fontdimen2\testfont \advance\xspaceskip
by\fontdimen7\testfont}
% \end{macrocode}
%
% \begin{macrocode}
{\catcode`\|=0 \catcode`\\=\other
|gdef|help{|message{%
\init switches to another font;^^J%
\end or \bye finishes the run;^^J%
\table prints the font layout in tabular format;^^J%
\text prints a sample text, assuming TeX text font conventions;^^J%
\sample combines \table and \text;^^J%
\mixture mixes a background character with a series of others;^^J%
\alternation interleaves a background character with a series;^^J%
\alphabet prints all lowercase letters within a given background;^^J%
\ALPHABET prints all uppercase letters within a given background;^^J%
\series prints a series of letters within a given background;^^J%
\lowers prints a comprehensive test of lowercase;^^J%
\uppers prints a comprehensive test of uppercase;^^J%
\digits prints a comprehensive test of numerals;^^J%
\math prints a comprehensive test of TeX math italic;^^J%
\names prints a text that mixes upper and lower case;^^J%
\punct prints a punctuation test;^^J%
\bigtest combines many of the above routines;^^J%
\help repeats this message;^^J%
and you can use ordinary TeX commands (e.g., to \input a file).}}}
\def\setbaselineskip{\setbox0=\hbox{\n=0
\loop\char\n \ifnum \n<255 \advance\n 1 \repeat}
\baselineskip=6pt \advance\baselineskip\ht0 \advance\baselineskip\dp0 }
% \end{macrocode}
%
% \begin{macrocode}
\def\setchar#1{{\escapechar-1\message{\string#1 character = }%
\def\do##1{\catcode`##1=\other}\dospecials
\read-1 to\next
\expandafter\finsetchar\next\next#1}}
\def\finsetchar#1#2\next#3{\global\chardef#3=`#1
\ifnum #3=`\# \global\chardef#3=#2 \fi}
\def\promptthree{\setchar\background
\setchar\starting \setchar\ending}
\def\mixture{\promptthree \domix\mixpattern}
\def\alternation{\promptthree \domix\altpattern}
\def\mixpattern{\0\1\0\0\1\1\0\0\0\1\1\1\0\1}
\def\altpattern{\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0}
\def\domix#1{\par\chardef\0=\background \n=\starting
\loop \chardef\1=\n #1\endgraf
\ifnum \n<\ending \advance\n 1 \repeat}
\def\!{\discretionary{\background}{\background}{\background}}
\def\series{\promptthree \!\doseries\starting\ending\par}
\def\doseries#1#2{\n=#1\loop\char\n\!\ifnum\n<#2\advance\n 1 \repeat}
\def\complower{\!\doseries{`a}{`z}\doseries{'31}{'34}\par}
\def\compupper{\!\doseries{`A}{`Z}\doseries{'35}{'37}\par}
\def\compdigs{\!\doseries{`0}{`9}\par}
\def\alphabet{\setchar\background\complower}
\def\ALPHABET{\setchar\background\compupper}
\def\lowers{\docomprehensive\complower{`a}{`z}{'31}{'34}}
\def\uppers{\docomprehensive\compupper{`A}{`Z}{'35}{'37}}
\def\digits{\docomprehensive\compdigs{`0}{`4}{`5}{`9}}
\def\docomprehensive#1#2#3#4#5{\par\chardef\background=#2
\loop{#1} \ifnum\background<#3\m=\background\advance\m 1
\chardef\background=\m \repeat \chardef\background=#4
\loop{#1} \ifnum\background<#5\m=\background\advance\m 1