\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
\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}