This file is indexed.

/usr/share/doc/xgridfit/html/index.html is in xgridfit-doc 2.3-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>Xgridfit</title>
    <link rel="stylesheet" href="oeg.css" media="screen" type="text/css"/>
    <link rel="stylesheet" href="parchment.css" media="screen" type="text/css"
      title="parchment"/>
    <link rel="alternate stylesheet" href="legible.css" media="screen"
      type="text/css" title="legible"/>
    <style type="text/css" media="print"> @import "oeg.print.css"; </style>
    <meta name="AUTHOR" content="Peter S. Baker"/>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  </head>
  <body>
    <div id="jumplist">
      <a href="http://sourceforge.net"><img
      src=""
      width="125" height="37" border="0" alt="SourceForge.net Logo" /></a>
      <a href="http://sourceforge.net/projects/xgridfit">Project Page</a>
      <a href="http://sourceforge.net/project/showfiles.php?group_id=159705">Download (v. 2.3, 4 June 2011)</a>
      <a href="http://xgridfit.cvs.sourceforge.net/xgridfit/xgridfit/">CVS repository</a>
      <a href="https://lists.sourceforge.net/lists/listinfo/xgridfit-users">Mailing list</a>
      <hr/>
      <h1>Documentation:</h1>
      <a href="tutorial1.html">Tutorial 1: Gentium's period</a>
      <a href="tutorial2.html">Tutorial 2: Gentium's <i>o</i></a>
      <a href="tutorial3.html">Tutorial 3: Revising auto-instructions</a>
      <a href="install.html">Installing Xgridfit</a>
      <a href="invoke.html">Running Xgridfit</a>
      <a href="structure.html">File Structure</a>
      <a href="merge-mode.html">Merge-mode</a>
      <a href="schema.html">Using the Schema</a>
      <a href="trans-to-1.html">Updating Xgridfit programs</a>
      <a href="xinclude.html">Managing Large Projects</a>
      <a href="debug.html">Debugging with FontForge</a>
      <a href="types.html">Number Types</a>
      <a href="expressions.html">Expressions</a>
      <a href="variables.html">Variables</a>
      <a href="if.html">Conditionals and Loops</a>
      <a href="functions.html">Functions, Macros, Glyphs</a>
      <a href="arithmetic.html">Arithmetic Elements</a>
      <a href="low-level.html">Low-Level Elements</a>
      <a href="points.html">Points</a>
      <a href="cvt.html">Control Values</a>
      <a href="graphics.html">Graphics State and Defaults</a>
      <a href="vectors.html">Vectors</a>
      <a href="moves.html">Moving Points</a>
      <a href="deltas.html">Deltas</a>
      <a href="round.html">Rounding</a>
      <a href="reference.html">Element Reference</a>
    </div>
    <div id="content">
      <img alt="Xgridfit logo" src="xgridfit.png"/>
      <p class="first">
	Xgridfit is a high-level, XML-based language for gridfitting,
	or "hinting," TrueType fonts.  It aims to provide these
	advantages over the manual instructing of glyphs:
      </p>
      <ul>
        <li>
	  replace the cryptic "mnemonics" of the TrueType language
	  with descriptive instruction names;
	</li>
        <li>
	  provide for the naming of points, control values, variables,
	  functions and function parameters;
	</li>
	<li>
	  provide macro capability for the easy and efficient handling
	  of similar visual features of glyphs;
	</li>
        <li>
	  provide high-level instructions (e.g. "diagonal-stem") to
	  supplement the primitive instructions of TrueType;
	</li>
	<li>
	  provide high-level programming constructs;
	</li>
        <li>
	  manage the stack behind the scenes;
	</li>
        <li>
	  manage reference points and zone pointers behind the scenes;
	</li>
	<li>
	  provide methods and tools for managing instructions in large
	  font projects;
	</li>
	<li>
	  edit and augment existing instructions in fonts;
	</li>
	<li>
	  support the FontForge auto-instructor and TrueType debugger.
	</li>
	<li>
	  provide a simple method for adding new instructions to fonts
	  that already contain them.
	</li>
      </ul>
      <p class="continued">
	In short, it conceals the assembly language-like character of
	the TrueType instruction set behind a friendly façade and
	provides many of the conveniences of a high-level programming
	language.
      </p>
      <p>
	There is much to be said for XML as the base for a programming
	language. True, it is ugly and verbose, but its verbosity
	contributes to its legibility. Lots of people are comfortable
	with XML, or at least understand the basics of it. And a
	decent XML editor (I suggest Emacs with nxml-mode) will do
	most of your typing for you, giving you all the advantages of
	verbosity and few of the disadvantages.
      </p>
      <p>
	The Xgridfit program compiles an XML source file into tables
	and instructions that relate to the gridfitting of glyphs. Its
	output is a Python script that can be run in FontForge to
	perform one or more the following tasks:
      </p>
      <ul>
	<li>
	  open a FontForge source file or TrueType font;
	</li>
	<li>
	  Set Blue values;
	</li>
	<li>
	  Run the FontForge auto-hinter and auto-instructor;
	</li>
	<li>
	  add the CVT (Control Value), fpgm (font program) and prep
	  (pre-program) tables produced by the Xgridfit compiler (if
	  desired, without disturbing any programming already present
	  in the font);
	</li>
	<li>
	  add the glyph programs produced by the compiler (again,
	  without disturbing any glyph programs already present in the
	  font);
	</li>
	<li>
	  set entries relevant to TrueType instructions in the maxp
	  table;
	</li>
	<li>
	  save a FontForge source file or generate a TrueType font.
	</li>
      </ul>
      <p>
	Xgridfit does have its limits. First of all, it cannot think
	for you: you still must understand the basics of TrueType
	gridfitting.  Some limitations are those of the TrueType
	engine itself, which is not capable of run-time type-checking
	or type conversion. Other limitations, such as the absence of
	for- and while-loops, are due to the limitations of the XSLT
	language in which it is implemented.
      </p>
      <p>
	But Xgridfit does a few things very well, in my experience at
	least: it speeds up TrueType development considerably, it
	makes TrueType programming much more legible than before, it
	makes it easy to revise and reuse existing TrueType code, and
	it does these things while offering a level of control over
	the glyph outline that you can't get from the graphical tools
	that I've seen.
      </p>
      <h2>System Requirements</h2>
      <p>
	Xgridfit will run under Linux, Mac OS X and Windows (with
	Cygwin). These programs/libraries are required or suggested:
      </p>
      <ul>
	<li>
	  <b>GNU Make</b> to run the install script.
	</li>
	<li>
	  <b>FontForge</b>. Required to install instructions in
	  fonts. Python extensions should be enabled. (The pre-built
	  executable for Cygwin does not include Python capabilities,
	  so you must either build from source or set the compiler to
	  produce FontForge scripts-- see documentation for the <a
	  href="invoke.html#l-option"><tt>-l</tt> command-line
	  option</a>). If you want to be able to view the results of
	  your programming in FontForge, you must build it against
	  FreeType libraries with the bytecode interpreter
	  enabled. (Note that there are patent issues here.)
	</li>
	<li>
	  <b>Python</b>. Version 2.4 or higher. The Xgridfit
	  executable and several utilities are Python programs; and
	  the default output of the Xgridfit compiler is a Python
	  script.
	</li>
	<li>
	  <b>libxml2</b> and <b>libxslt</b>. Your system probably has
	  libxml2 installed, but you might have to install libxslt. It
	  is possible to use other XSLT processors with the Xgridfit
	  compiler, but libxslt is still required for various
	  utilities.
	</li>
	<li>
	  Python bindings for libxml2. In Debian and Debian-based
	  Linux distributions, look for the package python-libxml2. In
	  Fedora, look for libxml2-python.
	</li>

	<li>
	  A few standard tools, which are almost certainly present on
	  your system: Bash, sed, grep, mktemp.
	</li>
      </ul>
    </div>
  </body>
</html>