diff options
Diffstat (limited to 'Master/texmf-dist/tex/plain/base/fontchart.tex')
-rw-r--r-- | Master/texmf-dist/tex/plain/base/fontchart.tex | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/plain/base/fontchart.tex b/Master/texmf-dist/tex/plain/base/fontchart.tex new file mode 100644 index 00000000000..6acc6211551 --- /dev/null +++ b/Master/texmf-dist/tex/plain/base/fontchart.tex @@ -0,0 +1,89 @@ +% make a (fairly large) font chart + +\newlinechar=`@ +\message{@Name of the font to chart = } +\read-1 to \fontname + +\font\f=\fontname at .75in +\f + +% Here's the best way I know to discover character height and depth +% when they are possibly negative. +\fontdimen5\f=-10000pt % a new (rather small) xheight +\textfont0=\f +\newdimen\h \newdimen\d % will be set to the character's height, depth +\def\htdp#1{\setbox0=\hbox{\char#1}\h=-\ht0 + \setbox0=\hbox{\accent#1\char#1}\advance\h\ht0 \advance\h-10000pt + \setbox0=\null \wd0=-10000pt % in case the character has a charlist! + \setbox0=\hbox{$\mathaccent#1{\box0}$}% + \d=\ht0 \advance\d-10000pt \advance\d-\h} + +% (By the way, my previous best was this: +% \textfont15=\f % use family "F +% \fontdimen8\tenex=0pt % set defaultrulethickness zero +% \setbox1=\null \ht1=-10000pt \setbox2=\null \dp3=-10000pt +% \newdimen\d \newdimen\h \newcount\n +% \n=#1 \advance\n"F00 +% \setbox0=\hbox{$\radical\n{\copy1}$} +% \d=\dp0 \advance\d-5000pt \advance\d\d %\showthe\d +% \setbox0=\hbox{$\radical\n{\copy2}$} +% \h=\ht0 \advance\h-5000pt \advance\h-.5\d +% \ifdim\h>0pt \h=.5\h \fi +% ....very tricky! But it works only when height+depth is positive.) + +\tracinglostchars=0 +\nopagenumbers + +\def\testrow#1#2{\setbox0=\hbox{\penalty1\def\\{\char'#1#2}% + \\0\\1\\2\\3\\4\\5\\6\\7\global\chardef\p=\lastpenalty}} % p=1 if none there + +\raggedbottom +\baselineskip=1in +\topskip=.75in +\newdimen\w \w=.75in +\headline={\vtop{\hbox{\tt\fontname\unskip, page \folio\hfil} + \kern-.75in\unitsdigits}\hss} +\footline={\unitsdigits\hss} +\def\unitsdigits{\hbox{\kern.3in \tt + \hbox to\w{\ \ 0\hss}% + \hbox to\w{\ \ 1\hss}% + \hbox to\w{\ \ 2\hss}% + \hbox to\w{\ \ 3\hss}% + \hbox to\w{\ \ 4\hss}% + \hbox to\w{\ \ 5\hss}% + \hbox to\w{\ \ 6\hss}% + \hbox to\w{\ \ 7\hss}}} + +\def\row#1#2{\testrow#1#2% +\ifnum\p=0\hbox{\hbox to.3in{\tt#1#2\hfil}% + \mod#1#20\mod#1#21\mod#1#22\mod#1#23\mod#1#24\mod#1#25\mod#1#26\mod#1#27% + \hbox to.3in{\tt\hfil#1#2}}\fi} + +\newdimen\pixel \pixel=.00333333in +\def\mod#1#2#3{\chardef\c='#1#2#3 \htdp\c + \setbox0=\hbox{\penalty1\c\global\chardef\p=\lastpenalty}% + \ifnum\p=1 \hbox to\w{}\else + \setbox2=\hbox{\c\/}% + \hbox to\w{\kern-\pixel \vrule width\pixel height\h depth\d + \copy\leftbox\copy0\copy\rightbox + \vrule width\pixel height\h depth\d \kern-\pixel \kern-\wd0 + \raise\h\vbox{\hrule height\pixel width\wd0}\kern-\wd0 + \lower\d\vbox{\hrule height0pt depth\pixel width\wd0}\kern-\wd0 + \ifdim\wd2>\wd0 \kern\wd2\raise\h\copy\icbox \fi + \hss}\fi} + +\newbox\leftbox % marking the baseline at the left +\setbox\leftbox=\hbox{\kern-\pixel\vrule width\pixel height4pt + \vrule height0pt depth\pixel width4pt \kern-4pt} +\newbox\rightbox % marking the baseline at the right +\setbox\rightbox=\hbox{\kern-4pt\vrule height0pt depth\pixel width4pt + \vrule width\pixel height4pt \kern-\pixel} +\newbox\icbox % the mark of an italic correction +\setbox\icbox=\hbox{\kern-4pt\vrule height\pixel width4pt depth0pt + \vrule width\pixel depth4pt} + +\row00 \row01 \row02 \row03 \row04 \row05 \row06 \row07 +\row10 \row11 \row12 \row13 \row14 \row15 \row16 \row17 +\row20 \row21 \row22 \row23 \row24 \row25 \row26 \row27 +\row30 \row31 \row32 \row33 \row34 \row35 \row36 \row37 +\bye |