<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.luatex.org/index.php?action=history&amp;feed=atom&amp;title=Explore_the_internal_font_table</id>
	<title>Explore the internal font table - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.luatex.org/index.php?action=history&amp;feed=atom&amp;title=Explore_the_internal_font_table"/>
	<link rel="alternate" type="text/html" href="https://wiki.luatex.org/index.php?title=Explore_the_internal_font_table&amp;action=history"/>
	<updated>2026-05-31T07:52:32Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://wiki.luatex.org/index.php?title=Explore_the_internal_font_table&amp;diff=17&amp;oldid=prev</id>
		<title>Patrick: Copied from the old bluwiki.com luatex wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.luatex.org/index.php?title=Explore_the_internal_font_table&amp;diff=17&amp;oldid=prev"/>
		<updated>2010-12-07T21:11:34Z</updated>

		<summary type="html">&lt;p&gt;Copied from the old bluwiki.com luatex wiki&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Explore an internal font table =&lt;br /&gt;
&lt;br /&gt;
Let us define a macro&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
\def\studyfont#1{\directlua0{&lt;br /&gt;
function printtable (ind,tableau,prof)&lt;br /&gt;
local k,l&lt;br /&gt;
texio.write_nl(string.rep(&amp;quot;...&amp;quot;,prof) .. ind .. &amp;quot; -&amp;gt; {&amp;quot;)&lt;br /&gt;
prof=prof+1&lt;br /&gt;
for k,l in pairs(tableau) do &lt;br /&gt;
if (type(l)==&amp;quot;table&amp;quot;) then&lt;br /&gt;
printtable(k,l,prof)&lt;br /&gt;
else&lt;br /&gt;
texio.write_nl(string.rep(&amp;quot;...&amp;quot;,prof) .. k .. &amp;quot; -&amp;gt; &amp;quot; .. tostring(l))&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
texio.write_nl(string.rep(&amp;quot;...&amp;quot;,prof-1) .. &amp;quot;}&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for i,f in font.each() do&lt;br /&gt;
  if (f.name==&amp;quot;#1&amp;quot;) then&lt;br /&gt;
    printtable(&amp;quot;#1&amp;quot;,f,0)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and apply it to &amp;lt;tt&amp;gt;cmr10&amp;lt;/tt&amp;gt; for example. (The &amp;lt;tt&amp;gt;font.each()&amp;lt;/tt&amp;gt; has been added by Taco in checkout 573.) Here is what we get:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmr10 -&amp;gt; {&lt;br /&gt;
...checksum -&amp;gt; 1274110073&lt;br /&gt;
...type -&amp;gt; real&lt;br /&gt;
...characters -&amp;gt; {&lt;br /&gt;
......1 -&amp;gt; {&lt;br /&gt;
.........italic -&amp;gt; 0&lt;br /&gt;
.........height -&amp;gt; 447828&lt;br /&gt;
.........depth -&amp;gt; 0&lt;br /&gt;
.........used -&amp;gt; false&lt;br /&gt;
.........width -&amp;gt; 546135&lt;br /&gt;
......}&lt;br /&gt;
......2 -&amp;gt; {&lt;br /&gt;
.........italic -&amp;gt; 0&lt;br /&gt;
.........height -&amp;gt; 447828&lt;br /&gt;
.........depth -&amp;gt; 0&lt;br /&gt;
.........used -&amp;gt; false&lt;br /&gt;
.........width -&amp;gt; 509726&lt;br /&gt;
......}&lt;br /&gt;
......3 -&amp;gt; {&lt;br /&gt;
.........italic -&amp;gt; 0&lt;br /&gt;
.........height -&amp;gt; 447828&lt;br /&gt;
.........depth -&amp;gt; 0&lt;br /&gt;
.........used -&amp;gt; false&lt;br /&gt;
.........width -&amp;gt; 455111&lt;br /&gt;
......}&lt;br /&gt;
......4 -&amp;gt; {&lt;br /&gt;
.........italic -&amp;gt; 0&lt;br /&gt;
.........height -&amp;gt; 447828&lt;br /&gt;
.........depth -&amp;gt; 0&lt;br /&gt;
.........used -&amp;gt; false&lt;br /&gt;
.........width -&amp;gt; 436908&lt;br /&gt;
......}&lt;br /&gt;
......5 -&amp;gt; {&lt;br /&gt;
.........italic -&amp;gt; 0&lt;br /&gt;
.........height -&amp;gt; 447828&lt;br /&gt;
.........depth -&amp;gt; 0&lt;br /&gt;
.........used -&amp;gt; false&lt;br /&gt;
.........width -&amp;gt; 491521&lt;br /&gt;
......}&lt;br /&gt;
......6 -&amp;gt; {&lt;br /&gt;
.........italic -&amp;gt; 0&lt;br /&gt;
.........height -&amp;gt; 447828&lt;br /&gt;
.........depth -&amp;gt; 0&lt;br /&gt;
.........used -&amp;gt; false&lt;br /&gt;
.........width -&amp;gt; 473316&lt;br /&gt;
......}&lt;br /&gt;
......7 -&amp;gt; {&lt;br /&gt;
.........italic -&amp;gt; 0&lt;br /&gt;
.........height -&amp;gt; 447828&lt;br /&gt;
.........depth -&amp;gt; 0&lt;br /&gt;
.........used -&amp;gt; false&lt;br /&gt;
.........width -&amp;gt; 509726&lt;br /&gt;
......}&lt;br /&gt;
......8 -&amp;gt; {&lt;br /&gt;
.........italic -&amp;gt; 0&lt;br /&gt;
.........height -&amp;gt; 447828&lt;br /&gt;
.........depth -&amp;gt; 0&lt;br /&gt;
.........used -&amp;gt; false&lt;br /&gt;
.........width -&amp;gt; 473316&lt;br /&gt;
......}&lt;br /&gt;
......9 -&amp;gt; {&lt;br /&gt;
.........italic -&amp;gt; 0&lt;br /&gt;
.........height -&amp;gt; 447828&lt;br /&gt;
.........depth -&amp;gt; 0&lt;br /&gt;
.........used -&amp;gt; false&lt;br /&gt;
.........width -&amp;gt; 509726&lt;br /&gt;
......}&lt;br /&gt;
......10 -&amp;gt; {&lt;br /&gt;
.........italic -&amp;gt; 0&lt;br /&gt;
.........height -&amp;gt; 447828&lt;br /&gt;
.........depth -&amp;gt; 0&lt;br /&gt;
.........used -&amp;gt; false&lt;br /&gt;
.........width -&amp;gt; 473316&lt;br /&gt;
......}&lt;br /&gt;
......11 -&amp;gt; {&lt;br /&gt;
.........kerns -&amp;gt; {&lt;br /&gt;
............63 -&amp;gt; 50973&lt;br /&gt;
............93 -&amp;gt; 50973&lt;br /&gt;
............39 -&amp;gt; 50973&lt;br /&gt;
............33 -&amp;gt; 50973&lt;br /&gt;
............41 -&amp;gt; 50973&lt;br /&gt;
.........}&lt;br /&gt;
.........italic -&amp;gt; 50973&lt;br /&gt;
.........ligatures -&amp;gt; {&lt;br /&gt;
............105 -&amp;gt; {&lt;br /&gt;
...............char -&amp;gt; 14&lt;br /&gt;
...............type -&amp;gt; 0&lt;br /&gt;
............}&lt;br /&gt;
............108 -&amp;gt; {&lt;br /&gt;
...............char -&amp;gt; 15&lt;br /&gt;
...............type -&amp;gt; 0&lt;br /&gt;
............}&lt;br /&gt;
.........}&lt;br /&gt;
.........height -&amp;gt; 455111&lt;br /&gt;
.........depth -&amp;gt; 0&lt;br /&gt;
.........used -&amp;gt; false&lt;br /&gt;
.........width -&amp;gt; 382295&lt;br /&gt;
......}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Glyph 11, namely the &amp;quot;ff&amp;quot; ligature has several kernings as well as two ligatures: one with i and one with l.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...another 1095 lines...&lt;br /&gt;
&lt;br /&gt;
......127 -&amp;gt; {&lt;br /&gt;
.........italic -&amp;gt; 0&lt;br /&gt;
.........height -&amp;gt; 437688&lt;br /&gt;
.........depth -&amp;gt; 0&lt;br /&gt;
.........used -&amp;gt; false&lt;br /&gt;
.........width -&amp;gt; 327681&lt;br /&gt;
......}&lt;br /&gt;
......0 -&amp;gt; {&lt;br /&gt;
.........italic -&amp;gt; 0&lt;br /&gt;
.........height -&amp;gt; 447828&lt;br /&gt;
.........depth -&amp;gt; 0&lt;br /&gt;
.........used -&amp;gt; false&lt;br /&gt;
.........width -&amp;gt; 409601&lt;br /&gt;
......}&lt;br /&gt;
...}&lt;br /&gt;
...parameters -&amp;gt; {&lt;br /&gt;
......x_height -&amp;gt; 282168&lt;br /&gt;
......space_stretch -&amp;gt; 109226&lt;br /&gt;
......extra_space -&amp;gt; 0&lt;br /&gt;
......space -&amp;gt; 218453&lt;br /&gt;
......quad -&amp;gt; 655361&lt;br /&gt;
......space_shrink -&amp;gt; 72818&lt;br /&gt;
......slant -&amp;gt; 0&lt;br /&gt;
...}&lt;br /&gt;
...embedding -&amp;gt; unknown&lt;br /&gt;
...encodingbytes -&amp;gt; 0&lt;br /&gt;
...direction -&amp;gt; -1&lt;br /&gt;
...name -&amp;gt; cmr10&lt;br /&gt;
...size -&amp;gt; 655360&lt;br /&gt;
...used -&amp;gt; false&lt;br /&gt;
...format -&amp;gt; unknown&lt;br /&gt;
...designsize -&amp;gt; 655360&lt;br /&gt;
...area -&amp;gt; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to explore the internal font table you have just defined but not yet used, then do not forget to write a &amp;lt;tt&amp;gt;\relax&amp;lt;/tt&amp;gt; after the font definition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
\font\x=something&lt;br /&gt;
\studyfont{something}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will NOT WORK. But:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
\font\x=something\relax&lt;br /&gt;
\studyfont{something}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will work. (Thanks Taco for the hint!)&lt;/div&gt;</summary>
		<author><name>Patrick</name></author>
		
	</entry>
</feed>