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
|