Rand Stats

Font::AFM

zef:dwarring
1.24.10  2024-01-21T09:13:47+13:00
    - Add $!glyph attribute + ff ligature detection

1.24.9  2024-01-02T06:43:09+13:00
   - Add ligature-subs method

1.24.8  2023-12-24T09:10:23+13:00
   - Add Ligature method
   - Define UnitsPerEM exportable constant (1000)

1.24.7  2022-11-27T10:01:44+13:00
   - Include .notdef in standard glyph-list

1.24.6  2022-05-07T09:28:53+12:00
   - Lock-protect loading of font classes in metrics-class method

1.24.5  2021-12-18T06:19:11+13:00
   - Fixed slow-down in metrics accessor by adding Data constants.
     e.g. Font::Metrics::courier::Data

1.24.4  2021-02-06T06:31:11+13:00
   - Directly use core font metrics where applicable. For example
     `Font::AFM.new: :name` directly uses the metrics
     from Font::Metrics::helvetica. Solves #8
   - Tests and minor fixes to font loading via the METRICS
     environment variable

1.24.3  2021-01-11T10:14:58+13:00
   - Documentation. Highlight `core-font` method. Document what
     Font::Afm.new: :$name actually does (scans and loads font metrics)..
     Mention Font::FreeType and HarfBuzz as alternative
   - Rename sources *.pm -> *.rakumod; *.pl -> *.raku

Release 1.24.2
- Replace ISO Latin subset with a full glyph table of all unicode points
 included in the Core 12 text fonts.
- Added glyph table sources etc/glyphlist.txt and etc/make-glyphlist.pl
Release 1.24.1
- Fix this module to work with multiple fonts as per PR #5
Release 1.24.0
- Fix issue #4 IsFixedPitch was returning a String 'false' or 'true',
 not a Bool
- In general, all return values are now correctly typed as Int,
 Numeric, String, Bool, Version or Array based on the data-types
 defined in the specification
 (http://www.adobe.com/content/dam/Adobe/en/devnet/font/pdfs/5004.AFM_Spec.pdf)
Release 1.23.6
- restore lost etc/make_metrics.pl
- avoid need to stantiate metrics classes. Can now use
 Font::Metrics::courier.BBox, without the need for
 Font::Metrics::courier.new.BBox
- withdraw Font::AFM.new($name) constructor in favour of:
 Font::AFM.new(:$name)
Release 1.23.5
- $.kern method now returns a two item list:
 my ($kerned, $stringwidth) = $font.kern("RVX");
- Fixed kerning of Courier, and other fonts without kerning data
 `$font.stringwidth(..., :kern)` and `$font.kern(...)` both now work.
 If the font lacks kerning data `:kern` is ignored and `$font.kern`
 returns a single element.
- Make class-name method private
- Use perl6.c TWEAK submethod

Release 1.23.4
Fixed %ISOLatin1Encoding character encoding table

Release 1.23.3
Fixed `provides` paths in META.info

Release 1.23.2
Fixed for latest rakudo
- a multi submethod BUILD can no longer be directly inherited. Changed
 it to a singular method which calls a multi method

Release 1.23.1
Replaced dynamic Pand Build.pm with semi-static make_metrics.pl.
- generated AFM files should seldom change. build-time generation of modules
 was overkill. generated sources are now checked in, and can be occasionally
 regenerated, when needed.
Release 1.23
Making things less ISO-Latin1 centric
- inverted @ISOLatin1Encoding => %ISOLatin1Encoding
- removed method .wx-table('latin-1')
- renamed method .encode => .kern
- added :%chars option to .stringwidth, .kern
- compute metrics for Symbol, ZapfDingbats
- added types to declarations

Release 1.22
BBox - now fully parsed to an array of integers
Kerning now supported
- $afm.Kern - returns kerning table as a two dimensional hash array
- $afm.stringwidth("RVX", :kern) - computes stringwith after kerning
- $afm.encode("RVX", :kern) - encode and kern characters.

2015-04-30

   Release 1.21

   Perl 6 port of Perl 5 version 1.20. See https://metacpan.org/pod/Font::AFM for previous
   change-log and other details.

   Build
   - included full set of AFM data in etc/Core14_Fonts
   - font metrics are computed at panda build time

   Font::Metrics
   - classess are now lowercase, e.g. Font::Mertics::times-bold. Plays better with upstream
     case insensitive handling, e.g. in PDF::Compose