+\f
+/*** (2) APIs for reading OTF */
+
+/*** (2-1) otf_open () */
+
+/***
+ Open OpenType font
+
+ The otf_open() function reads the OpenType font file whose name is
+ $NAME, and return a pointer to the structure of type OTF.
+
+ It setups these member of the structure OTF:
+ filename, offset_table, table_dirs
+
+ If the file can't be read or the file contains invalid data, NULL
+ is returned, and the variable otf_error is set to one of the
+ following values.
+
+ OTF_ERROR_MEMORY
+ OTF_ERROR_FILE
+ OTF_ERROR_TABLE
+
+ See also otf_get_table() and otf_close(). */
+
+extern OTF *otf_open (char *name);
+
+
+/*** (2-2) otf_close () */
+
+/***
+ Close OpenType font
+
+ The otf_close() function closes the OpenType font pointed by $OTF
+ which must be what the otf_open() returned.
+
+ See also otf_open(). */
+
+extern void otf_close (OTF *otf);
+
+
+/*** (2-3) otf_get_table () */
+
+/***
+ Get OpenType font table
+
+ The otf_get_table() function setups one of the OTF tables
+ specified by $NAME in the structure pointed by $OTF.
+
+ $NAME must be one of "head", "name", "cmap", "GDEF", "GSUB", and
+ "GPOS", and a member of the same name is setup.
+
+ If the table is successfully setup, return 0. Otherwise, return
+ -1, and set the variable otf_error to OTF_ERROR_TABLE.
+
+ See also otf_open(). */
+
+extern int otf_get_table (OTF *otf, char *name);
+
+
+/*** (3) APIs for driving OTF */
+
+/*** (3-1) Structure for glyph string */
+
+/***
+ The structure OTF_Glyph contains information about each glyph in
+ the structure OTF_GlyphString. */
+