Back to index

tetex-bin  3.0
font_routines.h
Go to the documentation of this file.
00001 /* font_routines.h: Data structures for virtual font support.
00002 
00003 This file is part of Omega,
00004 which is based on the web2c distribution of TeX,
00005 
00006 Copyright (c) 1994--2001 John Plaice and Yannis Haralambous
00007 
00008 Omega is free software; you can redistribute it and/or modify
00009 it under the terms of the GNU General Public License as published by
00010 the Free Software Foundation; either version 2 of the License, or
00011 (at your option) any later version.
00012 
00013 Omega is distributed in the hope that it will be useful,
00014 but WITHOUT ANY WARRANTY; without even the implied warranty of
00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016 GNU General Public License for more details.
00017 
00018 You should have received a copy of the GNU General Public License
00019 along with Omega; if not, write to the Free Software Foundation, Inc.,
00020 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
00021 
00022 */
00023 
00024 typedef struct font_struct {
00025     int font_number;
00026     unsigned font_checksum;
00027     double font_dsize;
00028     string font_name;
00029     string font_area;
00030     fix font_at;
00031     unsigned char *ovf_packet;
00032     unsigned ovf_packet_length;
00033     boolean font_at_defined;
00034     boolean font_dsize_defined;
00035     boolean font_checksum_defined;
00036 } font;
00037 
00038 typedef struct move_struct {
00039     fix wfix;
00040     fix xfix;
00041     fix yfix;
00042     fix zfix;
00043     unsigned h;
00044     unsigned v;
00045 } move;
00046 
00047 extern font *font_table;
00048 extern unsigned no_fonts;
00049 extern unsigned cur_font_index;
00050 extern font *cur_font;
00051 extern unsigned char *cur_packet;
00052 
00053 extern string vtitle;
00054 
00055 extern unsigned packet_table_size;
00056 extern unsigned char *packet_table;
00057 extern unsigned char *cur_packet;
00058 extern unsigned packet_ptr;
00059 
00060 extern void clear_map_font(int);
00061 extern void init_map_font(int);
00062 extern void set_font_name(string);
00063 extern void set_font_area(string);
00064 extern void set_font_check_sum(unsigned);
00065 extern void set_font_at(fix);
00066 extern void set_font_design_size(fix);
00067 
00068 extern void set_vtitle(string );
00069 extern void init_map(void);
00070 extern void end_map(void);
00071 extern void set_select_font(unsigned);
00072 extern void set_set_char(unsigned);
00073 extern void set_set_rule(fix, fix);
00074 extern void set_move(unsigned, fix);
00075 extern void set_push(void);
00076 extern void set_pop(void);
00077 extern void set_special(string );
00078 extern void set_special_hex(string );
00079 extern unsigned get_hex(unsigned char);
00080 
00081 extern void append_command(unsigned, unsigned);
00082 extern void append_command_2(unsigned, unsigned, unsigned, unsigned);
00083 extern void append_to_packet_fix(unsigned, fix);
00084 extern void move_table_init(void);
00085 extern void font_table_init(void);
00086 
00087 extern void packet_table_init(void);
00088 extern void packet_table_end(void);
00089 extern void out_ovf(unsigned);
00090 extern void out_ovf_4(unsigned);
00091 
00092 extern int ovf_get_arg(unsigned char **, unsigned,boolean);
00093 extern void input_command(unsigned *, int *);
00094 extern void input_ovf_fonts(void);
00095 extern void input_ovf_chars(void);
00096 extern void input_ovf_file(void);
00097 extern void in_ovf_4(int *);
00098 extern void in_ovf_unsigned_4(unsigned *);