summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-01-03 23:28:41 +0000
committerKarl Berry <karl@freefriends.org>2013-01-03 23:28:41 +0000
commit906dc8b9a23c6b8dfb85e864ba51ee74ee6f6929 (patch)
treee162a3b1d0a417be1351c7f657ddaf24d7ebf466
parentcb11c984d4aefadee81d3d6d21f58dfbe660b6a0 (diff)
fontools (3jan13)
git-svn-id: svn://tug.org/texlive/trunk@28713 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/texlive/linked_scripts/Makefile.in2
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/fontools/autoinst155
-rw-r--r--Master/texmf-dist/doc/support/fontools/README4
-rwxr-xr-xMaster/texmf-dist/scripts/fontools/autoinst155
-rw-r--r--Master/texmf/doc/man/man1/afm2afm.12
-rw-r--r--Master/texmf/doc/man/man1/afm2afm.man1.pdfbin5398 -> 5402 bytes
-rw-r--r--Master/texmf/doc/man/man1/autoinst.154
-rw-r--r--Master/texmf/doc/man/man1/autoinst.man1.pdfbin28971 -> 29493 bytes
-rw-r--r--Master/texmf/doc/man/man1/ot2kpx.12
-rw-r--r--Master/texmf/doc/man/man1/ot2kpx.man1.pdfbin7539 -> 7543 bytes
10 files changed, 216 insertions, 158 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/Makefile.in b/Build/source/texk/texlive/linked_scripts/Makefile.in
index 3986f3395f9..f9e7a4e0669 100644
--- a/Build/source/texk/texlive/linked_scripts/Makefile.in
+++ b/Build/source/texk/texlive/linked_scripts/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13 from Makefile.am.
+# Makefile.in generated by automake 1.13.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2012 Free Software Foundation, Inc.
diff --git a/Build/source/texk/texlive/linked_scripts/fontools/autoinst b/Build/source/texk/texlive/linked_scripts/fontools/autoinst
index 5a6dc94d8c7..f05c021b075 100755
--- a/Build/source/texk/texlive/linked_scripts/fontools/autoinst
+++ b/Build/source/texk/texlive/linked_scripts/fontools/autoinst
@@ -4,7 +4,7 @@
----------------------------------------------------------------------------
- Copyright (C) 2005-2012 Marc Penninga.
+ Copyright (C) 2005-2013 Marc Penninga.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
@@ -123,19 +123,16 @@ my %FD_SHAPE = (
=begin Comment
The next table is used to generate extra DeclareFontShape rules
- in the .fd files that map slanted shapes to italic.
-
- Note that the rules should be read 'backwards': so "it => 'sl'"
- means that 'it' replaces 'sl'. Sorry about that.
+ in the .fd files that map slanted shapes to italic.
=end Comment
=cut
my %FD_SSUB = (
- it => 'sl',
- scit => 'scsl',
- tlit => 'tlsl',
+ sl => 'it',
+ scsl => 'scit',
+ tlsl => 'tlit',
);
@@ -259,11 +256,13 @@ my %SHAPE = (
extra => '--unicoding="germandbls =: SSsmall"',
name => 'sc',
},
+ # '--feature=aalt' is in 'extra' instead of 'nice' because 'extra'
+ # comes last in the command line and hence overrides earlier options
swash => {
code => {n => 'nw', it => 'sw'},
reqd => ['swsh', 'dlig'],
nice => ['kern', 'liga'],
- extra => '--include-alternates="*.swash" -faalt',
+ extra => '--include-alternates="*.swash" --feature=aalt',
name => 'swash',
},
titling => {
@@ -286,9 +285,6 @@ my %SHAPE = (
############################################################################
-#-----------------------------------------------------------------------
-# The main routine. What else?
-#-----------------------------------------------------------------------
sub main {
ARGV::parse_options();
@@ -314,6 +310,7 @@ sub main {
[ $minsize, $maxsize, $item->{fontname} ];
}
+ # Create the :aTeX support files
while (my ($fam, $famdata) = each %fddata) {
LaTeX::write_stylefile($fam, $famdata);
while (my ($enc, $encdata) = each %$famdata) {
@@ -323,6 +320,7 @@ sub main {
}
}
+ # Create (and execute) commands for otftotfm
make_commands(@worklist);
return;
@@ -406,8 +404,7 @@ sub cleanup {
lc $encoding->[1];
# look up NFSS code for font's shape
- $item->{fdshape}
- = $SHAPE{$shape}{code}{$font->{basicshape}};
+ $item->{fdshape} = $SHAPE{$shape}{code}{$font->{basicshape}};
# compile list of OpenType features to use with this font
my %feature = map { ($_ => 1) }
@@ -448,7 +445,11 @@ sub make_commands {
close $BAT;
}
else {
- if (grep { system $_ } @commands) {
+ if (grep { print "\n$_\n\n" if $ARGV{verbose};
+ system $_;
+ }
+ @commands)
+ {
warn "[WARNING] 'otftotfm' returned non-zero; something's wrong!";
}
}
@@ -504,10 +505,10 @@ sub set_targetdirs {
my $family = shift;
my %dir = map { ($_ => File::Spec->catdir(
- $ARGV{target},
- 'fonts',
- $_,
- $ARGV{vendor},
+ $ARGV{target},
+ 'fonts',
+ $_,
+ $ARGV{vendor},
$ARGV{typeface} || $family))
}
qw(tfm vf pl vpl type1 truetype type42);
@@ -559,7 +560,7 @@ Possible options:
-typeface="TYPEFACE" Only used for naming directories
-(no)updmap Toggle running of updmap
-manual Manual mode (see documentation)
-
+
-(no)figurekern Keep or remove kerns between tabular figures
-help Print this text
@@ -624,14 +625,14 @@ sub parse_options {
die "$USAGE" unless @ARGV;
- if (!$ARGV{smallcaps}) { delete $SHAPE{smallcaps} }
- if (!$ARGV{swash} ) { delete $SHAPE{swash} }
- if (!$ARGV{titling} ) { delete $SHAPE{titling} }
+ delete $SHAPE{smallcaps} unless $ARGV{smallcaps};
+ delete $SHAPE{swash} unless $ARGV{swash};
+ delete $SHAPE{titling} unless $ARGV{titling};
- if (!$ARGV{superiors}) { delete $STYLE{Sup} }
- if (!$ARGV{inferiors}) { delete $STYLE{Inf} }
- if (!$ARGV{ornaments}) { delete $STYLE{Orn} }
- if (!$ARGV{fractions}) { delete @STYLE{qw(Numr Dnom)} }
+ delete $STYLE{Sup} unless $ARGV{superiors};
+ delete $STYLE{Inf} unless $ARGV{inferiors};
+ delete $STYLE{Orn} unless $ARGV{ornaments};
+ delete @STYLE{qw(Numr Dnom)} unless $ARGV{fractions};
$ARGV{encoding} =~ s/\s+//xmsg;
my @textencodings = grep { $_ ne 'TS1' }
@@ -643,7 +644,7 @@ sub parse_options {
# - the user explicitly asked for TS1, or
# - the text encodings contain T1 and the user didn't turn off TS1
unless ( (grep { $_ eq 'T1' } @{$ARGV{encoding}} and $ARGV{textcomp})
- or $ARGV{textcomp} == 1)
+ or $ARGV{textcomp} == 1 )
{
delete $SHAPE{textcomp};
}
@@ -748,7 +749,7 @@ $info->{filename}
END_FONTINFO
}
-
+
return $info;
}
@@ -1170,12 +1171,12 @@ END_STY_XKEYVAL
: $seen{TOsF} ? 'oldstyle,tabular'
: $seen{LF} ? 'lining,proportional'
: $seen{TLF} ? 'lining,tabular'
- : die "[ERROR] Internal bug, please report!";
+ : die "[ERROR] Internal bug, please report!";
my $default_bold;
- for my $series (
- qw(ultrablack ultrabold heavy extrablack black
- extrabold demibold semibold bold)) {
+ for my $series (qw(ultrablack ultrabold heavy extrablack black
+ extrabold demibold semibold bold))
+ {
if ($seen{$FD_WEIGHT{$series}}) {
printf {$STY}
"\\DeclareOptionX{%s}{\\renewcommand*{\\bfdefault}{%s}}\n",
@@ -1186,8 +1187,7 @@ END_STY_XKEYVAL
$defaults .= ",$default_bold" if $default_bold;
my $default_regular;
- for my $series (
- qw(light medium regular)) {
+ for my $series (qw(light medium regular)) {
if ($seen{$FD_WEIGHT{$series} || 'm'}) {
printf {$STY}
"\\DeclareOptionX{%s}{\\renewcommand*{\\mddefault}{%s}}\n",
@@ -1262,24 +1262,40 @@ END_FD_HEADER
while (my ($shape, $fdshape) = each %$fdseries) {
print {$FD}
"\\DeclareFontShape{$enc}{${fam}-${sty}}{$series}{$shape}{\n";
- my @items = sort { $a->[0] <=> $b->[0] }
+ my @sizes = sort { $a->[0] <=> $b->[0] }
@{$fdshape};
- $items[0][0] = $items[-1][1] = '';
- $items[$_][0] = $items[$_ - 1][1] for (1 .. $#items);
- for my $item (@items) {
- print {$FD} " <$item->[0]-$item->[1]>",
- " \\${fam}\@\@scale $item->[2]\n";
+ $sizes[0][0] = $sizes[-1][1] = '';
+ $sizes[$_][0] = $sizes[$_ - 1][1] for (1 .. $#sizes);
+ for my $size (@sizes) {
+ print {$FD} " <$size->[0]-$size->[1]>",
+ " \\${fam}\@\@scale $size->[2]\n";
}
print {$FD} "}{}\n\n";
- if (exists $FD_SSUB{$shape}) {
+ }
+
+ while (my ($shape, $replace) = each %FD_SSUB) {
+ if (!exists $fdseries->{$shape} && exists $fdseries->{$replace}) {
print {$FD} <<"END_FD_SSUB";
-\\DeclareFontShape{$enc}{${fam}-${sty}}{$series}{$FD_SSUB{$shape}}{
- <-> ssub * ${fam}-${sty}/${series}/${shape}
+\\DeclareFontShape{$enc}{${fam}-${sty}}{$series}{$shape}{
+ <-> ssub * ${fam}-${sty}/${series}/${replace}
}{}
+
END_FD_SSUB
+ $fdseries->{$shape} = 1;
}
}
}
+
+ if (!exists $data->{bx}) {
+ for my $shape (keys %{$data->{b}}) {
+ print {$FD} <<"END_FD_SSUB_BX";
+\\DeclareFontShape{$enc}{${fam}-${sty}}{bx}{$shape}{
+ <-> ssub * ${fam}-${sty}/b/${shape}
+}{}
+
+END_FD_SSUB_BX
+ }
+ }
print {$FD} "\\endinput\n";
close $FD;
@@ -1340,7 +1356,7 @@ B<autoinst> will create several LaTeX font families:
=item -
-Four text families (with lining and oldstyle digits, in both tabular
+Four text families (with lining and oldstyle digits, in both tabular
and proportional variants), each with the following shapes:
=over 2
@@ -1365,8 +1381,8 @@ such as ct, sp and st.
Titling shape. Meant for all-caps text only (even though it sometimes contains
lowercase glyphs as well), where letterspacing and the positioning of
punctuation characters have been adjusted to suit all-caps text.
-This shape is generated only for the families with lining digits, since
-all-caps text doesn't mix with old-style digits.
+This shape is generated only for the families with lining digits,
+since old-style digits make no sense with all-caps text.
=item I<it>
@@ -1548,14 +1564,16 @@ running LaTeX on the file F<nfssfont.tex> (part of a standard
LaTeX installation) and supplying the name of the ornament font.
To access the ornaments, B<autoinst> creates a font-specific encoding file
-F<< <FontFamily>_orn.enc >>, but only if that file doesn't yet exist.
-This is a deliberate feature that allows you to provide your own
+F<< <FontFamily>_orn.enc >>,
+but only if that file doesn't yet exist in the current directory.
+This is a deliberate feature that allows you to provide your own
encoding vector, e.g. if your fonts use non-standard glyph names for ornaments.
These commands are only generated for shapes and number styles
that actually exist; no commands are generated for shapes and styles
-that don't exist, or whose generation has been turned off.
-Please note that these commands are built on top of F<fontaxes>;
+that don't exist, or whose generation has been turned off
+using command-line options (see below).
+Please also note that these commands are built on top of F<fontaxes>;
if that package cannot be found, you're limited to using the
lower-level commands from standard NFSS (C<\fontfamily>, C<\fontseries>,
C<\fontshape> etc.).
@@ -1575,15 +1593,15 @@ shape and size.
B<autoinst> parses the output of C<otfinfo --info> to determine
these parameters. When this fails
(e.g., because the font family contains uncommon widths or weights),
-B<autoinst> ends up with different fonts having the I<same> values
-for the font parameters, which means that these fonts cannot be used in NFSS.
-B<autoinst> will then split the font family into multiple subfamilies
+B<autoinst> would end up with different fonts having the I<same> values
+for these font parameters, which means that these fonts cannot be used in NFSS.
+In this case, B<autoinst> will split the font family into multiple subfamilies
(based on each font file's "Subfamily" value) and try again.
-(Since many font families misunderstand the "Subfamily" concept
-and make each font file a separate subfamily,
+(Since many font vendors misunderstand the "Subfamily" concept
+and make each font file a separate subfamily,
this strategy is only used as a last resort.)
-If this proliferation of font families is unwanted,
+If such a proliferation of font families is unwanted,
either run B<autoinst> on a smaller set of fonts (omitting the ones that
failed to parse correctly)
or else add the missing widths, weights and shapes to the tables C<%FD_WIDTH>,
@@ -1769,12 +1787,14 @@ being interpreted as options to B<autoinst>, it should be properly quoted.
=item B<-nofigurekern>
Some fonts provide kerning pairs for tabular figures.
-This is probably unwanted (e.g., numbers in tables won't line up exactly).
+This is very probably not what you want
+(e.g., numbers in tables won't line up exactly).
The option B<-nofigurekern> adds extra I< --ligkern> options
to the command lines for I<otftotfm> to suppress such kerns
-(but only for the "TLF" and "TOsF" families).
+(but of course only for the "TLF" and "TOsF" families).
Since this leads to very long command lines (it adds one hundred such options)
-and the problem affects only few fonts, the default is B<-figurekern>.
+and the problem only occurs in very few fonts,
+the default is B<-figurekern>.
=item B<-manual>
@@ -1814,10 +1834,10 @@ if no writable directory is found).
These options are equivalent to F<otftotfm>'s I< --vendor> and I< --typeface>
options: they change the "vendor" and "typeface" parts of the names of the
-subdirectories in the TEXMF tree where generated files will be stored.
+subdirectories in the TEXMF tree where generated files will be stored.
The default values are "lcdftools" and the font's FontFamily name.
-Please note that these options change I<only> directory names,
+Please note that these options change I<only> directory names,
not the names of any generated files.
=item B<-updmap>
@@ -1840,8 +1860,8 @@ on Windows, try ActiveState's ActivePerl
or Strawberry Perl (F<http://strawberryperl.com>).
XeTeX (F<http://www.tug.org/xetex>) and LuaTeX (F<http://www.luatex.org>)
-are TeX extensions that can use any font (including both flavours of OpenType)
-without TeX-specific support files.
+are TeX extensions that can use many types of font
+(including both flavours of OpenType) without TeX-specific support files.
The FontPro project (F<https://github.com/sebschub/FontPro>)
offers very complete support for Adobe's Minion Pro and Myriad Pro
@@ -1863,7 +1883,7 @@ Please make sure that this output includes all (if any) error messages.
=head1 COPYRIGHT
-Copyright (C) 2005-2012 Marc Penninga.
+Copyright (C) 2005-2013 Marc Penninga.
=head1 LICENSE
@@ -1891,6 +1911,11 @@ GNU General Public License for more details.
=over 12
+=item I<2013-01-03>
+
+Added extra "ssub" rules to the F<fd> files that substitute "b" for "bx".
+Verbose mode now also prints all generated commands before they're executed.
+
=item I<2012-10-25>
Added extra "ssub" rules to the F<fd> files that substitute italic
diff --git a/Master/texmf-dist/doc/support/fontools/README b/Master/texmf-dist/doc/support/fontools/README
index 385e37155b4..4dcea32a834 100644
--- a/Master/texmf-dist/doc/support/fontools/README
+++ b/Master/texmf-dist/doc/support/fontools/README
@@ -50,9 +50,9 @@ Other
LICENSE
-------
-This software is copyright (C) 2005-2012 Marc Penninga. It is released under
+This software is copyright (C) 2005-2013 Marc Penninga. It is released under
the terms of the GNU General Public Licence. See the file GPLv2.txt for
the license conditions.
- Marc Penninga, 2012/10/03
+ Marc Penninga, 2013/01/03
diff --git a/Master/texmf-dist/scripts/fontools/autoinst b/Master/texmf-dist/scripts/fontools/autoinst
index 5a6dc94d8c7..f05c021b075 100755
--- a/Master/texmf-dist/scripts/fontools/autoinst
+++ b/Master/texmf-dist/scripts/fontools/autoinst
@@ -4,7 +4,7 @@
----------------------------------------------------------------------------
- Copyright (C) 2005-2012 Marc Penninga.
+ Copyright (C) 2005-2013 Marc Penninga.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
@@ -123,19 +123,16 @@ my %FD_SHAPE = (
=begin Comment
The next table is used to generate extra DeclareFontShape rules
- in the .fd files that map slanted shapes to italic.
-
- Note that the rules should be read 'backwards': so "it => 'sl'"
- means that 'it' replaces 'sl'. Sorry about that.
+ in the .fd files that map slanted shapes to italic.
=end Comment
=cut
my %FD_SSUB = (
- it => 'sl',
- scit => 'scsl',
- tlit => 'tlsl',
+ sl => 'it',
+ scsl => 'scit',
+ tlsl => 'tlit',
);
@@ -259,11 +256,13 @@ my %SHAPE = (
extra => '--unicoding="germandbls =: SSsmall"',
name => 'sc',
},
+ # '--feature=aalt' is in 'extra' instead of 'nice' because 'extra'
+ # comes last in the command line and hence overrides earlier options
swash => {
code => {n => 'nw', it => 'sw'},
reqd => ['swsh', 'dlig'],
nice => ['kern', 'liga'],
- extra => '--include-alternates="*.swash" -faalt',
+ extra => '--include-alternates="*.swash" --feature=aalt',
name => 'swash',
},
titling => {
@@ -286,9 +285,6 @@ my %SHAPE = (
############################################################################
-#-----------------------------------------------------------------------
-# The main routine. What else?
-#-----------------------------------------------------------------------
sub main {
ARGV::parse_options();
@@ -314,6 +310,7 @@ sub main {
[ $minsize, $maxsize, $item->{fontname} ];
}
+ # Create the :aTeX support files
while (my ($fam, $famdata) = each %fddata) {
LaTeX::write_stylefile($fam, $famdata);
while (my ($enc, $encdata) = each %$famdata) {
@@ -323,6 +320,7 @@ sub main {
}
}
+ # Create (and execute) commands for otftotfm
make_commands(@worklist);
return;
@@ -406,8 +404,7 @@ sub cleanup {
lc $encoding->[1];
# look up NFSS code for font's shape
- $item->{fdshape}
- = $SHAPE{$shape}{code}{$font->{basicshape}};
+ $item->{fdshape} = $SHAPE{$shape}{code}{$font->{basicshape}};
# compile list of OpenType features to use with this font
my %feature = map { ($_ => 1) }
@@ -448,7 +445,11 @@ sub make_commands {
close $BAT;
}
else {
- if (grep { system $_ } @commands) {
+ if (grep { print "\n$_\n\n" if $ARGV{verbose};
+ system $_;
+ }
+ @commands)
+ {
warn "[WARNING] 'otftotfm' returned non-zero; something's wrong!";
}
}
@@ -504,10 +505,10 @@ sub set_targetdirs {
my $family = shift;
my %dir = map { ($_ => File::Spec->catdir(
- $ARGV{target},
- 'fonts',
- $_,
- $ARGV{vendor},
+ $ARGV{target},
+ 'fonts',
+ $_,
+ $ARGV{vendor},
$ARGV{typeface} || $family))
}
qw(tfm vf pl vpl type1 truetype type42);
@@ -559,7 +560,7 @@ Possible options:
-typeface="TYPEFACE" Only used for naming directories
-(no)updmap Toggle running of updmap
-manual Manual mode (see documentation)
-
+
-(no)figurekern Keep or remove kerns between tabular figures
-help Print this text
@@ -624,14 +625,14 @@ sub parse_options {
die "$USAGE" unless @ARGV;
- if (!$ARGV{smallcaps}) { delete $SHAPE{smallcaps} }
- if (!$ARGV{swash} ) { delete $SHAPE{swash} }
- if (!$ARGV{titling} ) { delete $SHAPE{titling} }
+ delete $SHAPE{smallcaps} unless $ARGV{smallcaps};
+ delete $SHAPE{swash} unless $ARGV{swash};
+ delete $SHAPE{titling} unless $ARGV{titling};
- if (!$ARGV{superiors}) { delete $STYLE{Sup} }
- if (!$ARGV{inferiors}) { delete $STYLE{Inf} }
- if (!$ARGV{ornaments}) { delete $STYLE{Orn} }
- if (!$ARGV{fractions}) { delete @STYLE{qw(Numr Dnom)} }
+ delete $STYLE{Sup} unless $ARGV{superiors};
+ delete $STYLE{Inf} unless $ARGV{inferiors};
+ delete $STYLE{Orn} unless $ARGV{ornaments};
+ delete @STYLE{qw(Numr Dnom)} unless $ARGV{fractions};
$ARGV{encoding} =~ s/\s+//xmsg;
my @textencodings = grep { $_ ne 'TS1' }
@@ -643,7 +644,7 @@ sub parse_options {
# - the user explicitly asked for TS1, or
# - the text encodings contain T1 and the user didn't turn off TS1
unless ( (grep { $_ eq 'T1' } @{$ARGV{encoding}} and $ARGV{textcomp})
- or $ARGV{textcomp} == 1)
+ or $ARGV{textcomp} == 1 )
{
delete $SHAPE{textcomp};
}
@@ -748,7 +749,7 @@ $info->{filename}
END_FONTINFO
}
-
+
return $info;
}
@@ -1170,12 +1171,12 @@ END_STY_XKEYVAL
: $seen{TOsF} ? 'oldstyle,tabular'
: $seen{LF} ? 'lining,proportional'
: $seen{TLF} ? 'lining,tabular'
- : die "[ERROR] Internal bug, please report!";
+ : die "[ERROR] Internal bug, please report!";
my $default_bold;
- for my $series (
- qw(ultrablack ultrabold heavy extrablack black
- extrabold demibold semibold bold)) {
+ for my $series (qw(ultrablack ultrabold heavy extrablack black
+ extrabold demibold semibold bold))
+ {
if ($seen{$FD_WEIGHT{$series}}) {
printf {$STY}
"\\DeclareOptionX{%s}{\\renewcommand*{\\bfdefault}{%s}}\n",
@@ -1186,8 +1187,7 @@ END_STY_XKEYVAL
$defaults .= ",$default_bold" if $default_bold;
my $default_regular;
- for my $series (
- qw(light medium regular)) {
+ for my $series (qw(light medium regular)) {
if ($seen{$FD_WEIGHT{$series} || 'm'}) {
printf {$STY}
"\\DeclareOptionX{%s}{\\renewcommand*{\\mddefault}{%s}}\n",
@@ -1262,24 +1262,40 @@ END_FD_HEADER
while (my ($shape, $fdshape) = each %$fdseries) {
print {$FD}
"\\DeclareFontShape{$enc}{${fam}-${sty}}{$series}{$shape}{\n";
- my @items = sort { $a->[0] <=> $b->[0] }
+ my @sizes = sort { $a->[0] <=> $b->[0] }
@{$fdshape};
- $items[0][0] = $items[-1][1] = '';
- $items[$_][0] = $items[$_ - 1][1] for (1 .. $#items);
- for my $item (@items) {
- print {$FD} " <$item->[0]-$item->[1]>",
- " \\${fam}\@\@scale $item->[2]\n";
+ $sizes[0][0] = $sizes[-1][1] = '';
+ $sizes[$_][0] = $sizes[$_ - 1][1] for (1 .. $#sizes);
+ for my $size (@sizes) {
+ print {$FD} " <$size->[0]-$size->[1]>",
+ " \\${fam}\@\@scale $size->[2]\n";
}
print {$FD} "}{}\n\n";
- if (exists $FD_SSUB{$shape}) {
+ }
+
+ while (my ($shape, $replace) = each %FD_SSUB) {
+ if (!exists $fdseries->{$shape} && exists $fdseries->{$replace}) {
print {$FD} <<"END_FD_SSUB";
-\\DeclareFontShape{$enc}{${fam}-${sty}}{$series}{$FD_SSUB{$shape}}{
- <-> ssub * ${fam}-${sty}/${series}/${shape}
+\\DeclareFontShape{$enc}{${fam}-${sty}}{$series}{$shape}{
+ <-> ssub * ${fam}-${sty}/${series}/${replace}
}{}
+
END_FD_SSUB
+ $fdseries->{$shape} = 1;
}
}
}
+
+ if (!exists $data->{bx}) {
+ for my $shape (keys %{$data->{b}}) {
+ print {$FD} <<"END_FD_SSUB_BX";
+\\DeclareFontShape{$enc}{${fam}-${sty}}{bx}{$shape}{
+ <-> ssub * ${fam}-${sty}/b/${shape}
+}{}
+
+END_FD_SSUB_BX
+ }
+ }
print {$FD} "\\endinput\n";
close $FD;
@@ -1340,7 +1356,7 @@ B<autoinst> will create several LaTeX font families:
=item -
-Four text families (with lining and oldstyle digits, in both tabular
+Four text families (with lining and oldstyle digits, in both tabular
and proportional variants), each with the following shapes:
=over 2
@@ -1365,8 +1381,8 @@ such as ct, sp and st.
Titling shape. Meant for all-caps text only (even though it sometimes contains
lowercase glyphs as well), where letterspacing and the positioning of
punctuation characters have been adjusted to suit all-caps text.
-This shape is generated only for the families with lining digits, since
-all-caps text doesn't mix with old-style digits.
+This shape is generated only for the families with lining digits,
+since old-style digits make no sense with all-caps text.
=item I<it>
@@ -1548,14 +1564,16 @@ running LaTeX on the file F<nfssfont.tex> (part of a standard
LaTeX installation) and supplying the name of the ornament font.
To access the ornaments, B<autoinst> creates a font-specific encoding file
-F<< <FontFamily>_orn.enc >>, but only if that file doesn't yet exist.
-This is a deliberate feature that allows you to provide your own
+F<< <FontFamily>_orn.enc >>,
+but only if that file doesn't yet exist in the current directory.
+This is a deliberate feature that allows you to provide your own
encoding vector, e.g. if your fonts use non-standard glyph names for ornaments.
These commands are only generated for shapes and number styles
that actually exist; no commands are generated for shapes and styles
-that don't exist, or whose generation has been turned off.
-Please note that these commands are built on top of F<fontaxes>;
+that don't exist, or whose generation has been turned off
+using command-line options (see below).
+Please also note that these commands are built on top of F<fontaxes>;
if that package cannot be found, you're limited to using the
lower-level commands from standard NFSS (C<\fontfamily>, C<\fontseries>,
C<\fontshape> etc.).
@@ -1575,15 +1593,15 @@ shape and size.
B<autoinst> parses the output of C<otfinfo --info> to determine
these parameters. When this fails
(e.g., because the font family contains uncommon widths or weights),
-B<autoinst> ends up with different fonts having the I<same> values
-for the font parameters, which means that these fonts cannot be used in NFSS.
-B<autoinst> will then split the font family into multiple subfamilies
+B<autoinst> would end up with different fonts having the I<same> values
+for these font parameters, which means that these fonts cannot be used in NFSS.
+In this case, B<autoinst> will split the font family into multiple subfamilies
(based on each font file's "Subfamily" value) and try again.
-(Since many font families misunderstand the "Subfamily" concept
-and make each font file a separate subfamily,
+(Since many font vendors misunderstand the "Subfamily" concept
+and make each font file a separate subfamily,
this strategy is only used as a last resort.)
-If this proliferation of font families is unwanted,
+If such a proliferation of font families is unwanted,
either run B<autoinst> on a smaller set of fonts (omitting the ones that
failed to parse correctly)
or else add the missing widths, weights and shapes to the tables C<%FD_WIDTH>,
@@ -1769,12 +1787,14 @@ being interpreted as options to B<autoinst>, it should be properly quoted.
=item B<-nofigurekern>
Some fonts provide kerning pairs for tabular figures.
-This is probably unwanted (e.g., numbers in tables won't line up exactly).
+This is very probably not what you want
+(e.g., numbers in tables won't line up exactly).
The option B<-nofigurekern> adds extra I< --ligkern> options
to the command lines for I<otftotfm> to suppress such kerns
-(but only for the "TLF" and "TOsF" families).
+(but of course only for the "TLF" and "TOsF" families).
Since this leads to very long command lines (it adds one hundred such options)
-and the problem affects only few fonts, the default is B<-figurekern>.
+and the problem only occurs in very few fonts,
+the default is B<-figurekern>.
=item B<-manual>
@@ -1814,10 +1834,10 @@ if no writable directory is found).
These options are equivalent to F<otftotfm>'s I< --vendor> and I< --typeface>
options: they change the "vendor" and "typeface" parts of the names of the
-subdirectories in the TEXMF tree where generated files will be stored.
+subdirectories in the TEXMF tree where generated files will be stored.
The default values are "lcdftools" and the font's FontFamily name.
-Please note that these options change I<only> directory names,
+Please note that these options change I<only> directory names,
not the names of any generated files.
=item B<-updmap>
@@ -1840,8 +1860,8 @@ on Windows, try ActiveState's ActivePerl
or Strawberry Perl (F<http://strawberryperl.com>).
XeTeX (F<http://www.tug.org/xetex>) and LuaTeX (F<http://www.luatex.org>)
-are TeX extensions that can use any font (including both flavours of OpenType)
-without TeX-specific support files.
+are TeX extensions that can use many types of font
+(including both flavours of OpenType) without TeX-specific support files.
The FontPro project (F<https://github.com/sebschub/FontPro>)
offers very complete support for Adobe's Minion Pro and Myriad Pro
@@ -1863,7 +1883,7 @@ Please make sure that this output includes all (if any) error messages.
=head1 COPYRIGHT
-Copyright (C) 2005-2012 Marc Penninga.
+Copyright (C) 2005-2013 Marc Penninga.
=head1 LICENSE
@@ -1891,6 +1911,11 @@ GNU General Public License for more details.
=over 12
+=item I<2013-01-03>
+
+Added extra "ssub" rules to the F<fd> files that substitute "b" for "bx".
+Verbose mode now also prints all generated commands before they're executed.
+
=item I<2012-10-25>
Added extra "ssub" rules to the F<fd> files that substitute italic
diff --git a/Master/texmf/doc/man/man1/afm2afm.1 b/Master/texmf/doc/man/man1/afm2afm.1
index d15c5cb8b21..3f66df9a8bb 100644
--- a/Master/texmf/doc/man/man1/afm2afm.1
+++ b/Master/texmf/doc/man/man1/afm2afm.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
+.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.20)
.\"
.\" Standard preamble:
.\" ========================================================================
diff --git a/Master/texmf/doc/man/man1/afm2afm.man1.pdf b/Master/texmf/doc/man/man1/afm2afm.man1.pdf
index ece9326d809..a6e0777d9e0 100644
--- a/Master/texmf/doc/man/man1/afm2afm.man1.pdf
+++ b/Master/texmf/doc/man/man1/afm2afm.man1.pdf
Binary files differ
diff --git a/Master/texmf/doc/man/man1/autoinst.1 b/Master/texmf/doc/man/man1/autoinst.1
index d2d7a3e025d..504e9866a23 100644
--- a/Master/texmf/doc/man/man1/autoinst.1
+++ b/Master/texmf/doc/man/man1/autoinst.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
+.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.20)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "AUTOINST 1"
-.TH AUTOINST 1 "2012-10-25" "fontools" "Marc Penninga"
+.TH AUTOINST 1 "2013-01-03" "fontools" "Marc Penninga"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -149,7 +149,7 @@ Given a family of font files (in either \fIotf\fR or \fIttf\fR format),
\&\fBautoinst\fR will create several LaTeX font families:
.RS 2
.IP "\-" 3
-Four text families (with lining and oldstyle digits, in both tabular
+Four text families (with lining and oldstyle digits, in both tabular
and proportional variants), each with the following shapes:
.RS 3
.RS 2
@@ -168,8 +168,8 @@ such as ct, sp and st.
Titling shape. Meant for all-caps text only (even though it sometimes contains
lowercase glyphs as well), where letterspacing and the positioning of
punctuation characters have been adjusted to suit all-caps text.
-This shape is generated only for the families with lining digits, since
-all-caps text doesn't mix with old-style digits.
+This shape is generated only for the families with lining digits,
+since old-style digits make no sense with all-caps text.
.IP "\fIit\fR" 6
.IX Item "it"
Italic (or oblique) text
@@ -315,14 +315,16 @@ running LaTeX on the file \fInfssfont.tex\fR (part of a standard
LaTeX installation) and supplying the name of the ornament font.
.PP
To access the ornaments, \fBautoinst\fR creates a font-specific encoding file
-\&\fI<FontFamily>_orn.enc\fR, but only if that file doesn't yet exist.
-This is a deliberate feature that allows you to provide your own
+\&\fI<FontFamily>_orn.enc\fR,
+but only if that file doesn't yet exist in the current directory.
+This is a deliberate feature that allows you to provide your own
encoding vector, e.g. if your fonts use non-standard glyph names for ornaments.
.PP
These commands are only generated for shapes and number styles
that actually exist; no commands are generated for shapes and styles
-that don't exist, or whose generation has been turned off.
-Please note that these commands are built on top of \fIfontaxes\fR;
+that don't exist, or whose generation has been turned off
+using command-line options (see below).
+Please also note that these commands are built on top of \fIfontaxes\fR;
if that package cannot be found, you're limited to using the
lower-level commands from standard \s-1NFSS\s0 (\f(CW\*(C`\efontfamily\*(C'\fR, \f(CW\*(C`\efontseries\*(C'\fR,
\&\f(CW\*(C`\efontshape\*(C'\fR etc.).
@@ -338,15 +340,15 @@ shape and size.
\&\fBautoinst\fR parses the output of \f(CW\*(C`otfinfo \-\-info\*(C'\fR to determine
these parameters. When this fails
(e.g., because the font family contains uncommon widths or weights),
-\&\fBautoinst\fR ends up with different fonts having the \fIsame\fR values
-for the font parameters, which means that these fonts cannot be used in \s-1NFSS\s0.
-\&\fBautoinst\fR will then split the font family into multiple subfamilies
+\&\fBautoinst\fR would end up with different fonts having the \fIsame\fR values
+for these font parameters, which means that these fonts cannot be used in \s-1NFSS\s0.
+In this case, \fBautoinst\fR will split the font family into multiple subfamilies
(based on each font file's \*(L"Subfamily\*(R" value) and try again.
-(Since many font families misunderstand the \*(L"Subfamily\*(R" concept
-and make each font file a separate subfamily,
+(Since many font vendors misunderstand the \*(L"Subfamily\*(R" concept
+and make each font file a separate subfamily,
this strategy is only used as a last resort.)
.PP
-If this proliferation of font families is unwanted,
+If such a proliferation of font families is unwanted,
either run \fBautoinst\fR on a smaller set of fonts (omitting the ones that
failed to parse correctly)
or else add the missing widths, weights and shapes to the tables \f(CW%FD_WIDTH\fR,
@@ -524,12 +526,14 @@ being interpreted as options to \fBautoinst\fR, it should be properly quoted.
.IX Item "-nofigurekern"
.PD
Some fonts provide kerning pairs for tabular figures.
-This is probably unwanted (e.g., numbers in tables won't line up exactly).
+This is very probably not what you want
+(e.g., numbers in tables won't line up exactly).
The option \fB\-nofigurekern\fR adds extra \fI \-\-ligkern\fR options
to the command lines for \fIotftotfm\fR to suppress such kerns
-(but only for the \*(L"\s-1TLF\s0\*(R" and \*(L"TOsF\*(R" families).
+(but of course only for the \*(L"\s-1TLF\s0\*(R" and \*(L"TOsF\*(R" families).
Since this leads to very long command lines (it adds one hundred such options)
-and the problem affects only few fonts, the default is \fB\-figurekern\fR.
+and the problem only occurs in very few fonts,
+the default is \fB\-figurekern\fR.
.IP "\fB\-manual\fR" 4
.IX Item "-manual"
Manual mode. By default, \fBautoinst\fR executes all \fIotftotfm\fR
@@ -564,10 +568,10 @@ if no writable directory is found).
.PD
These options are equivalent to \fIotftotfm\fR's \fI \-\-vendor\fR and \fI \-\-typeface\fR
options: they change the \*(L"vendor\*(R" and \*(L"typeface\*(R" parts of the names of the
-subdirectories in the \s-1TEXMF\s0 tree where generated files will be stored.
+subdirectories in the \s-1TEXMF\s0 tree where generated files will be stored.
The default values are \*(L"lcdftools\*(R" and the font's FontFamily name.
.Sp
-Please note that these options change \fIonly\fR directory names,
+Please note that these options change \fIonly\fR directory names,
not the names of any generated files.
.IP "\fB\-updmap\fR" 4
.IX Item "-updmap"
@@ -587,8 +591,8 @@ on Windows, try ActiveState's ActivePerl
or Strawberry Perl (\fIhttp://strawberryperl.com\fR).
.PP
XeTeX (\fIhttp://www.tug.org/xetex\fR) and LuaTeX (\fIhttp://www.luatex.org\fR)
-are TeX extensions that can use any font (including both flavours of OpenType)
-without TeX-specific support files.
+are TeX extensions that can use many types of font
+(including both flavours of OpenType) without TeX-specific support files.
.PP
The FontPro project (\fIhttps://github.com/sebschub/FontPro\fR)
offers very complete support for Adobe's Minion Pro and Myriad Pro
@@ -606,7 +610,7 @@ from running \fBautoinst\fR with the \fI\-verbose\fR option.
Please make sure that this output includes all (if any) error messages.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
-Copyright (C) 2005\-2012 Marc Penninga.
+Copyright (C) 2005\-2013 Marc Penninga.
.SH "LICENSE"
.IX Header "LICENSE"
This program is free software; you can redistribute it and/or modify
@@ -624,6 +628,10 @@ but \s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty
.SH "RECENT CHANGES"
.IX Header "RECENT CHANGES"
(See the source code for the rest of the story.)
+.IP "\fI2013\-01\-03\fR" 12
+.IX Item "2013-01-03"
+Added extra \*(L"ssub\*(R" rules to the \fIfd\fR files that substitute \*(L"b\*(R" for \*(L"bx\*(R".
+Verbose mode now also prints all generated commands before they're executed.
.IP "\fI2012\-10\-25\fR" 12
.IX Item "2012-10-25"
Added extra \*(L"ssub\*(R" rules to the \fIfd\fR files that substitute italic
diff --git a/Master/texmf/doc/man/man1/autoinst.man1.pdf b/Master/texmf/doc/man/man1/autoinst.man1.pdf
index 55c530aebe9..ad26c472c3b 100644
--- a/Master/texmf/doc/man/man1/autoinst.man1.pdf
+++ b/Master/texmf/doc/man/man1/autoinst.man1.pdf
Binary files differ
diff --git a/Master/texmf/doc/man/man1/ot2kpx.1 b/Master/texmf/doc/man/man1/ot2kpx.1
index c761d2e9ef4..853982cfffb 100644
--- a/Master/texmf/doc/man/man1/ot2kpx.1
+++ b/Master/texmf/doc/man/man1/ot2kpx.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
+.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.20)
.\"
.\" Standard preamble:
.\" ========================================================================
diff --git a/Master/texmf/doc/man/man1/ot2kpx.man1.pdf b/Master/texmf/doc/man/man1/ot2kpx.man1.pdf
index d964f99c7d0..88a5bd8f304 100644
--- a/Master/texmf/doc/man/man1/ot2kpx.man1.pdf
+++ b/Master/texmf/doc/man/man1/ot2kpx.man1.pdf
Binary files differ