diff options
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/font/luatexfont.h')
-rw-r--r-- | Build/source/texk/web2c/luatexdir/font/luatexfont.h | 172 |
1 files changed, 84 insertions, 88 deletions
diff --git a/Build/source/texk/web2c/luatexdir/font/luatexfont.h b/Build/source/texk/web2c/luatexdir/font/luatexfont.h index 459d2092b54..7016b88729c 100644 --- a/Build/source/texk/web2c/luatexdir/font/luatexfont.h +++ b/Build/source/texk/web2c/luatexdir/font/luatexfont.h @@ -1,4 +1,4 @@ -/* luatexfont.h --- General font definitions +/* Copyright 2008-2013 Taco Hoekwater <taco@luatex.org> @@ -15,45 +15,36 @@ License for more details. You should have received a copy of the GNU General Public License along - with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ + with LuaTeX; if not, see <http://www.gnu.org/licenses/>. +*/ #ifndef LUATEXFONT_H -# define LUATEXFONT_H - -# include "ptexlib.h" -# ifndef pdfTeX -# define pdfTeX -# include "sfnt.h" /* which wants that pdfTeX is defined */ -# undef pdfTeX -# else -# include "sfnt.h" -# endif - -/**********************************************************************/ - -# define ASCENT_CODE 0 -# define CAPHEIGHT_CODE 1 -# define DESCENT_CODE 2 -# define ITALIC_ANGLE_CODE 3 -# define STEMV_CODE 4 -# define XHEIGHT_CODE 5 -# define FONTBBOX1_CODE 6 -# define FONTBBOX2_CODE 7 -# define FONTBBOX3_CODE 8 -# define FONTBBOX4_CODE 9 -# define FONTNAME_CODE 10 -# define GEN_KEY_NUM (XHEIGHT_CODE + 1) -# define MAX_KEY_CODE (FONTBBOX1_CODE + 1) -# define INT_KEYS_NUM (FONTBBOX4_CODE + 1) -# define FONT_KEYS_NUM (FONTNAME_CODE + 1) - -# define FD_FLAGS_NOT_SET_IN_MAPLINE -1 -# define FD_FLAGS_DEFAULT_EMBED 4 /* a symbol font */ -# define FD_FLAGS_DEFAULT_NON_EMBED 0x22 - /* a nonsymbolic serif font */ - -/**********************************************************************/ + +#define LUATEXFONT_H + +#include "ptexlib.h" +#include "sfnt.h" + +#define ASCENT_CODE 0 +#define CAPHEIGHT_CODE 1 +#define DESCENT_CODE 2 +#define ITALIC_ANGLE_CODE 3 +#define STEMV_CODE 4 +#define XHEIGHT_CODE 5 +#define FONTBBOX1_CODE 6 +#define FONTBBOX2_CODE 7 +#define FONTBBOX3_CODE 8 +#define FONTBBOX4_CODE 9 +#define FONTNAME_CODE 10 +#define GEN_KEY_NUM (XHEIGHT_CODE + 1) +#define MAX_KEY_CODE (FONTBBOX1_CODE + 1) +#define INT_KEYS_NUM (FONTBBOX4_CODE + 1) +#define FONT_KEYS_NUM (FONTNAME_CODE + 1) + +#define FD_FLAGS_NOT_SET_IN_MAPLINE -1 +#define FD_FLAGS_DEFAULT_EMBED 4 /* a symbol font */ +#define FD_FLAGS_DEFAULT_NON_EMBED 0x22 /* a nonsymbolic serif font */ typedef struct { const char *pdfname; @@ -63,60 +54,59 @@ typedef struct { extern const key_entry font_key[FONT_KEYS_NUM]; -# include "mapfile.h" +#include "mapfile.h" typedef struct { - int val; /* value */ - boolean set; /* true if parameter has been set */ + int val; /* value */ + boolean set; /* true if parameter has been set */ } intparm; typedef struct { - int fe_objnum; /* object number */ - char *name; /* encoding file name */ - char **glyph_names; /* array of glyph names */ - struct avl_table *tx_tree; /* tree of encoding positions marked as used by TeX */ + int fe_objnum; /* object number */ + char *name; /* encoding file name */ + char **glyph_names; /* array of glyph names */ + struct avl_table *tx_tree; /* tree of encoding positions marked as used by TeX */ } fe_entry; typedef struct fd_entry_ { - int fd_objnum; /* object number of the font descriptor object */ - char *fontname; /* /FontName (without subset tag) */ - char *subset_tag; /* 6-character subset tag */ + int fd_objnum; /* object number of the font descriptor object */ + char *fontname; /* /FontName (without subset tag) */ + char *subset_tag; /* 6-character subset tag */ boolean ff_found; - int ff_objnum; /* object number of the font program stream */ - boolean all_glyphs; /* embed all glyphs? */ + int ff_objnum; /* object number of the font program stream */ + boolean all_glyphs; /* embed all glyphs? */ boolean write_ttf_glyph_names; intparm font_dim[FONT_KEYS_NUM]; - fe_entry *fe; /* pointer to encoding structure */ - char **builtin_glyph_names; /* builtin encoding as read from the Type1 font file */ - fm_entry *fm; /* pointer to font map structure */ - struct avl_table *tx_tree; /* tree of non-reencoded TeX characters marked as used */ - struct avl_table *gl_tree; /* tree of all marked glyphs */ - internal_font_number tex_font; /* needed for variable */ + fe_entry *fe; /* pointer to encoding structure */ + char **builtin_glyph_names; /* builtin encoding as read from the Type1 font file */ + fm_entry *fm; /* pointer to font map structure */ + struct avl_table *tx_tree; /* tree of non-reencoded TeX characters marked as used */ + struct avl_table *gl_tree; /* tree of all marked glyphs */ + internal_font_number tex_font; /* needed for variable */ } fd_entry; typedef struct fo_entry_ { - int fo_objnum; /* object number of the font dictionary */ - internal_font_number tex_font; /* needed only for \pdffontattr{} */ - fm_entry *fm; /* pointer to font map structure for this font dictionary */ - fd_entry *fd; /* pointer to /FontDescriptor object structure */ - fe_entry *fe; /* pointer to encoding structure */ - int cw_objnum; /* object number of the font program object */ - int first_char; /* first character used in this font */ - int last_char; /* last character used in this font */ - struct avl_table *tx_tree; /* tree of non-reencoded TeX characters marked as used */ - int tounicode_objnum; /* object number of ToUnicode */ + int fo_objnum; /* object number of the font dictionary */ + internal_font_number tex_font; /* needed only for \pdffontattr{} */ + fm_entry *fm; /* pointer to font map structure for this font dictionary */ + fd_entry *fd; /* pointer to /FontDescriptor object structure */ + fe_entry *fe; /* pointer to encoding structure */ + int cw_objnum; /* object number of the font program object */ + int first_char; /* first character used in this font */ + int last_char; /* last character used in this font */ + struct avl_table *tx_tree; /* tree of non-reencoded TeX characters marked as used */ + int tounicode_objnum; /* object number of ToUnicode */ } fo_entry; typedef struct { - char *name; /* glyph name */ - long code; /* -1 = undefined; -2 = multiple codes, stored - as string in unicode_seq; otherwise unicode value */ - char *unicode_seq; /* multiple unicode sequence */ + char *name; /* glyph name */ + long code; /* -1 = undefined; -2 = multiple codes, stored as string in unicode_seq; otherwise unicode value */ + char *unicode_seq; /* multiple unicode sequence */ } glyph_unicode_entry; -typedef struct glw_entry_ { /* subset glyphs for inclusion in CID-based fonts */ - unsigned int id; /* glyph CID */ - signed int wd; /* glyph width in 1/1000 em parts */ +typedef struct glw_entry_ { /* subset glyphs for inclusion in CID-based fonts */ + unsigned int id; /* glyph CID */ + signed int wd; /* glyph width in 1/1000 em parts */ } glw_entry; typedef struct { @@ -124,19 +114,18 @@ typedef struct { halfword *raster; } chardesc; -/**********************************************************************/ - -# include "texfont.h" +#include "texfont.h" /* tounicode.c */ + int write_cid_tounicode(PDF, fo_entry *, internal_font_number); void glyph_unicode_free(void); void def_tounicode(str_number, str_number); int write_tounicode(PDF, char **, char *); /* vfpacket.c */ -void replace_packet_fonts(internal_font_number f, int *old_fontid, - int *new_fontid, int count); + +void replace_packet_fonts(internal_font_number f, int *old_fontid, int *new_fontid, int count); int *packet_local_fonts(internal_font_number f, int *num); int packet_cur_s; /* current |do_vf_packet()| recursion level */ @@ -144,12 +133,15 @@ int packet_stack_ptr; /* pointer into |packet_stack| */ vf_struct *new_vfstruct(void); /* writecff.c */ + void writetype1w(PDF pdf, fd_entry * fd); /* writetype0.c */ + void writetype0(PDF pdf, fd_entry * fd); /* writefont.c */ + void do_pdf_font(PDF, internal_font_number); fd_entry *lookup_fd_entry(char *); fd_entry *new_fd_entry(internal_font_number); @@ -157,6 +149,7 @@ void write_fontstuff(PDF); void register_fd_entry(fd_entry * fd); /* writet1.c */ + boolean t1_subset(char *, char *, unsigned char *); char **load_enc_file(char *); void writet1(PDF, fd_entry *); @@ -164,36 +157,40 @@ void t1_free(void); extern int t1_length1, t1_length2, t1_length3; /* writetype2.c */ + boolean writetype2(PDF, fd_entry *); extern unsigned long cidtogid_obj; -pdf_obj *pdf_new_stream(void); -void pdf_add_stream(pdf_obj * stream, unsigned char *buf, long len); -void pdf_release_obj(pdf_obj * stream); unsigned long ttc_read_offset(sfnt * sfont, int ttc_idx, fd_entry *fd); /* writeenc.c */ + fe_entry *get_fe_entry(char *); void enc_free(void); void write_fontencodings(PDF pdf); /* writettf.c */ + void writettf(PDF, fd_entry *); void writeotf(PDF, fd_entry *); void ttf_free(void); extern int ttf_length; /* pkin.c */ + int readchar(boolean, chardesc *); /* macnames.c */ + extern char notdef[]; /* vfovf.c */ + internal_font_number letter_space_font(internal_font_number f, int e, boolean nolig); void pdf_check_vf(internal_font_number f); internal_font_number copy_font_info(internal_font_number f); /* writet3.c */ + extern FILE *t3_file; void writet3(PDF, internal_font_number); @@ -201,12 +198,11 @@ extern unsigned char *t3_buffer; extern int t3_size; extern int t3_curbyte; -# define t3_read_file() readbinfile(t3_file, &t3_buffer, &t3_size) -# define t3_close() xfclose(t3_file, cur_file_name) -# define t3_getchar() t3_buffer[t3_curbyte++] -# define t3_eof() (t3_curbyte>t3_size) - -# define t3_prefix(s) (!strncmp(t3_line_array, s, strlen(s))) -# define t3_putchar(c) pdfout(c) +#define t3_read_file() readbinfile(t3_file, &t3_buffer, &t3_size) +#define t3_close() xfclose(t3_file, cur_file_name) +#define t3_getchar() t3_buffer[t3_curbyte++] +#define t3_eof() (t3_curbyte>t3_size) +#define t3_prefix(s) (!strncmp(t3_line_array, s, strlen(s))) +#define t3_putchar(c) pdfout(c) -#endif /* LUATEXFONT_H */ +#endif |