summaryrefslogtreecommitdiff
path: root/support/rfil/README
blob: 50630a60d26703a08104a141888c915a85923250 (plain)
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
= Ruby font installer library

These files should help you (a programmer) to create a font installer
for TeX. 

The library is currently in alpha state. The interface might change,
but a lot of basic classes and methods are available. See the example
programs in the examples directory on how to use the library. Also
take a look at the Kpathsea and ENC classes on how to make use of
these.

== Roadmap

Accessing Encodings:: See the ENC class to read and write <tt>.enc</tt>-files.
Accessing TFM/VF files:: Use the TFM and VF classes to read and write TeX font metrics and virtual fonts.
Accessing font metrics:: See the FontMetric class and the subclass AFM to read and write the font metric files.
Installing a font(set):: See below for examples.

== Example programs

You might find the examples shipped with RFIL useful.

afm2tfm.rb:: Install a single font. As with afm2tfm (the program shipped with dvips), you can reencode a font and fake caps.
afminfo:: Give information about an afm file (metrics, glyph information).
encodingtable:: Print out a table with encodings/glyphnames/slots
pldiff:: Compare two metric files and output all differences.
plinfo:: Show information about a TeX metric file.
rfont:: Simple installer that handles a family of fonts (reguar, italic, bold...)
rfii:: Yet another installer, work in progress.

== Example usage of the RFI Library

=== Example usage to install a single font:
 font=Font.new
 font.load_variant("savorg__.afm")
 font.texenc=["ec","texnansi"]
 font.mapenc=["8r"]
 font.write_files

This will create virtual fonts for _ec_ and _texnansi_ encoding that
map to <em>8r</em> encoding, +tfm+ files for the _raw_ fonts and a +map+-file.

=== Synthesize small caps
Create a second variant, synthesize small caps and copy the relevant part
to the main font.
 f=Font.new
 f.texenc="ec"
 f.load_variant("savorg__.afm")
 fc = f.load_variant("savorg__.afm")
 f.fake_caps(fc,0.8)
 f.copy(fc,:lowercase,:ligkern=>true)
 f.defaultfm.chars.apply_ligkern_instructions(RFI::STDLIGKERN)
 f.write_files

== Installation

Run <tt>ruby setup.rb config</tt> and afterwards <tt>ruby setup.rb
install</tt> to install the library files in your system. You might
need to be superuser/root for that. Now you should be able to use the
examples. Perhaps start with <tt>afminfo</tt> or <tt>rfont</tt>. 

== Creating the documentation

Run <tt>rake rdoc</tt> in order to create the documentation in the
subdirectory <tt>doc/</tt>. Open <tt>doc/index.html</tt> in your
browser and voila, see all classes and methods documented. If you
don't have <tt>Rake</tt> installed, go to the homepage (see below) and
read the online documentation.

==Other Stuff

Author:: Patrick Gundlach <patrick@gundla.ch>
Project Page::  https://foundry.supelec.fr/projects/rfil
Homepage:: (Documentation) https://rfil.groups.foundry.supelec.fr
License::  Copyright (c) 2005 Patrick Gundlach.
           Released under the terms of the GNU General Public License