#ifndef TFM_HH
#define TFM_HH
-#include "string.hh"
#include "array.hh"
-#include "lily-proto.hh"
#include "font-metric.hh"
/* The type. */
struct Tex_font_char_metric
{
- bool exists_b_;
+ bool exists_;
Char_code code_;
Real width_, height_, depth_, italic_correction_;
Fix width_fix_, height_fix_, depth_fix_, italic_correction_fix_;
Array<Tfm_kern> kerns_;
Array<Tfm_ligature> ligatures_;
- String to_string () const;
Tex_font_char_metric ();
Box dimensions () const;
};
-class Tex_font_metric : public Font_metric
+class Tex_font_metric : public Simple_font_metric
{
public:
- static SCM make_tfm (String filename);
+ static SCM make_tfm (String file_name);
virtual int count () const;
virtual Box get_ascii_char (int) const;
- Tex_font_char_metric const *find_ascii (int ascii, bool warn=true) const;
+ virtual Real design_size () const;
+ virtual void derived_mark () const;
+ virtual int name_to_index (String) const;
+ virtual String font_name () const;
- String to_string () const;
+ Tfm_info const &info () const;
+protected:
Tfm_info info_;
Tfm_header header_;
Array<Tex_font_char_metric> char_metrics_;
Array<int> ascii_to_metric_idx_;
+ SCM encoding_table_;
+ String font_name_;
private:
+ Tex_font_char_metric const *find_ascii (int ascii, bool warn = true) const;
Tex_font_metric ();
};