summaryrefslogtreecommitdiff
path: root/fonts/utilities/fontools
diff options
context:
space:
mode:
Diffstat (limited to 'fonts/utilities/fontools')
-rwxr-xr-xfonts/utilities/fontools/bin/afm2afm4
-rwxr-xr-xfonts/utilities/fontools/bin/autoinst523
-rwxr-xr-xfonts/utilities/fontools/bin/ot2kpx4
-rwxr-xr-xfonts/utilities/fontools/bin/splitttc4
-rw-r--r--fonts/utilities/fontools/doc/afm2afm.pdfbin26884 -> 27062 bytes
-rw-r--r--fonts/utilities/fontools/doc/autoinst.pdfbin73484 -> 73672 bytes
-rw-r--r--fonts/utilities/fontools/doc/ot2kpx.pdfbin27270 -> 27440 bytes
-rw-r--r--fonts/utilities/fontools/doc/splitttc.pdfbin20395 -> 20443 bytes
8 files changed, 283 insertions, 252 deletions
diff --git a/fonts/utilities/fontools/bin/afm2afm b/fonts/utilities/fontools/bin/afm2afm
index 5cf132bb20..a2718125c0 100755
--- a/fonts/utilities/fontools/bin/afm2afm
+++ b/fonts/utilities/fontools/bin/afm2afm
@@ -37,7 +37,7 @@ use File::Basename;
use Getopt::Long;
use Pod::Usage;
-my $VERSION = "20200527";
+my $VERSION = "20200619";
parse_commandline();
@@ -421,7 +421,7 @@ See the GNU General Public License for more details.
=head1 VERSION
-This document describes B<afm2afm> version 20200527.
+This document describes B<afm2afm> version 20200619.
=head1 RECENT CHANGES
diff --git a/fonts/utilities/fontools/bin/autoinst b/fonts/utilities/fontools/bin/autoinst
index 0e4bae4eec..1dde782834 100755
--- a/fonts/utilities/fontools/bin/autoinst
+++ b/fonts/utilities/fontools/bin/autoinst
@@ -40,7 +40,7 @@ use Getopt::Long ();
use Pod::Usage ();
use POSIX ();
-my $VERSION = '20200527';
+my $VERSION = '20200619';
my ($d, $m, $y) = (localtime time)[3 .. 5];
my $TODAY = sprintf "%04d/%02d/%02d", $y + 1900, $m + 1, $d;
@@ -351,31 +351,32 @@ sub process_basicinfo {
$self->{weight} = NFSS::unabbreviate($self->{weight});
$self->{shape} = NFSS::unabbreviate($self->{shape});
- # Some font families put different shapes into separate families;
+ # Some font families put small caps into separate families;
# we merge these into the 'main' family.
- my $shapes = join '|', Util::sort_desc_length(qw(it italic));
- if ($self->{family} =~ m/(.+?) ($shapes) \z/xmsi
- and ($self->{shape} eq 'regular'
- or $self->{shape} eq NFSS::unabbreviate(lc($2)))) {
- $self->{family} = $1;
- $self->{shape} = NFSS::unabbreviate(lc($2));
- }
- # Ditto for the smallcaps shape; here we have to test both 'family',
- # 'subfamily' and 'name' for hints that this is a small caps font,
- # as some fonts (e.g., Dolly) only mention this in their name.
- $shapes = join '|', Util::sort_desc_length(qw(smallcaps sc smcp caps));
+ # We have to test both 'family', 'subfamily' and 'name' for hints
+ # that this is a small caps font, as some fonts (e.g., Dolly)
+ # only mention this in their name.
+ my $shapes = join '|', Util::sort_desc_length(qw(smallcaps sc smcp caps));
if ($self->{family} =~ m/(.+?) (?: $shapes) \z/xmsi) {
$self->{family} = $1;
$self->{is_smallcaps} = 1;
}
if ($self->{subfamily} =~ m/(.+?) (?: $shapes) \z/xmsi) {
- $self->{subfamily} = $1;
+ $self->{subfamily} = $1;
$self->{is_smallcaps} = 1;
}
if ($self->{name} =~ m/(.+?) (?: $shapes) \z/xmsi) {
- $self->{name} = $1;
$self->{is_smallcaps} = 1;
}
+ # Some font families put italic shapes into separate families;
+ # we merge these into the 'main' family.
+ $shapes = join '|', Util::sort_desc_length(qw(it italic));
+ if ($self->{family} =~ m/(.+?) ($shapes) \z/xmsi
+ and ($self->{shape} eq 'regular'
+ or $self->{shape} eq NFSS::unabbreviate(lc($2)))) {
+ $self->{family} = $1;
+ $self->{shape} = NFSS::unabbreviate(lc($2));
+ }
# Some font families put different widths into separate families;
# we merge these into the 'main' font family.
@@ -393,7 +394,7 @@ sub process_basicinfo {
# (i.e., Libre Caslon Text) and should not be mistaken for a weight.
my $weights = join '|', NFSS::get_all_weights();
if ($self->{family} =~ m/text \z/xmsi) {
- $weights =~ s/text[|]?//xms;
+ $weights =~ s/[|]? text//xms;
}
if ($self->{family} =~ m/(.+?) ($weights) \z/xmsi
and ($self->{weight} eq 'regular'
@@ -679,21 +680,6 @@ my %SSUB_SHAPE = (
sub create_stylefile {
my ($nfss_mapping, $fam, $data) = @_;
- my $testfont;
- eval {
- my $testenc = $ARGV{encoding}[0];
- my $testfig = ( grep { exists $data->{$testenc}{$_} }
- qw(OsF LF TOsF TLF) )[0] or die;
- my $testweight = $nfss_mapping->{weight}{""}[0] or die;
- my $testshape
- = ( grep { exists $data->{$testenc}{$testfig}{$testweight}{$_} }
- qw(n it sl sc)
- )[0] or die;
- $testfont
- = $data->{$testenc}{$testfig}{$testweight}{$testshape}[0][2]
- or die;
- };
-
my %seen = %{Util::get_keys($data)};
my $fn = sprintf "%s.sty", $fam;
@@ -707,25 +693,134 @@ sub create_stylefile {
binmode $STY;
print {$STY} <<"END_STY_HEADER";
-%% Generated by autoinst on $TODAY
-%%
\\NeedsTeXFormat{LaTeX2e}
\\ProvidesPackage{$fam}
- [$TODAY (autoinst) Style file for $fam.]
+ [$TODAY (autoinst) Style file for $fam fonts.]
END_STY_HEADER
- print {$STY} "\\RequirePackage{fontenc}\n";
- print {$STY} "\\RequirePackage{textcomp}\n" if $seen{TS1};
- print {$STY} "\\RequirePackage{ifthen}\n";
+ print {$STY} <<"END_STY_XKEYVAL";
+\\RequirePackage{xkeyval}
+\\newcommand*{\\$fam\@scale}{1}
+\\DeclareOptionX{scale}{\\renewcommand*{\\$fam\@scale}{#1}}
+\\DeclareOptionX{scaled}{\\renewcommand*{\\$fam\@scale}{#1}}
+
+END_STY_XKEYVAL
+
+ if ($seen{LF} or $seen{TLF}) {
+ print {$STY}
+ "\\DeclareOptionX{lining}{\\edef\\$fam\@figurestyle{LF}}\n";
+ }
+ if ($seen{OsF} or $seen{TOsF}) {
+ print {$STY}
+ "\\DeclareOptionX{oldstyle}{\\edef\\$fam\@figurestyle{OsF}}\n";
+ }
+ if ($seen{TLF} or $seen{TOsF}) {
+ print {$STY}
+ "\\DeclareOptionX{tabular}{\\edef\\$fam\@figurealign{T}}\n";
+ }
+ if ($seen{LF} or $seen{OsF}) {
+ print {$STY}
+ "\\DeclareOptionX{proportional}{\\edef\\$fam\@figurealign{}}\n";
+ }
+
+ print {$STY} <<"END_STY_MAINFONT";
+\\DeclareOptionX{mainfont}{
+ \\renewcommand{\\familydefault}{\\$ARGV{nfss}default}
+}
+END_STY_MAINFONT
+
+ my $defaults
+ = $seen{OsF} ? 'oldstyle,proportional'
+ : $seen{TOsF} ? 'oldstyle,tabular'
+ : $seen{LF} ? 'lining,proportional'
+ : $seen{TLF} ? 'lining,tabular'
+ : die "[ERROR] Internal bug, please report!"
+ ;
+
+ my $default_bold;
+ for my $series (qw(heavy black extrabold demibold semibold bold)) {
+ if ( $seen{$series} ) {
+ print {$STY}
+ "\\DeclareOptionX{$series}{\\edef\\bfseries\@$ARGV{nfss}",
+ "{$series}}\n";
+ $default_bold = $series;
+ }
+ }
+ $defaults .= ",$default_bold" if $default_bold;
+
+ my $default_regular;
+ for my $series (qw(medium book text regular)) {
+ if ( $seen{$series} ) {
+ print {$STY}
+ "\\DeclareOptionX{$series}{\\edef\\mdseries\@$ARGV{nfss}",
+ "{$series}}\n";
+ $default_regular = $series;
+ }
+ }
+ $defaults .= ",$default_regular" if $default_regular;
+
+ if ($ARGV{math}) {
+ print {$STY} <<"END_STY_MATHOPTION";
+\\newif\\if$fam\@math\\$fam\@mathfalse
+\\DeclareOptionX{math}{\\$fam\@mathtrue}
+\\DeclareOptionX{nomath}{\\$fam\@mathfalse}
+
+\\newif\\if$fam\@mathgreek\\$fam\@mathgreektrue
+\\DeclareOptionX{mathgreek}{\\$fam\@mathgreektrue}
+\\DeclareOptionX{nomathgreek}{\\$fam\@mathgreekfalse}
+
+\\newcommand*{\\$fam\@mathstyle}{TeX}
+\\DeclareOptionX{math-style}{\\renewcommand*{\\$fam\@mathstyle}{#1}}
+
+END_STY_MATHOPTION
+
+ if ($seen{LF} or $seen{TLF}) {
+ print {$STY} "\\newcommand*{\\$fam\@mathfigurestyle}{LF}\n";
+ }
+ elsif ($seen{OsF} or $seen{TOsF}) {
+ print {$STY} "\\newcommand*{\\$fam\@mathfigurestyle}{OsF}\n";
+ }
+
+ if ($seen{OsF} or $seen{TOsF}) {
+ print {$STY}
+ "\\DeclareOptionX{matholdstyle}\n",
+ " {\\renewcommand*{\\$fam\@mathfigurestyle}{OsF}}\n";
+ }
+ if ($seen{LF} or $seen{TLF}) {
+ print {$STY}
+ "\\DeclareOptionX{mathlining}\n",
+ " {\\renewcommand{\\$fam\@mathfigurestyle}{LF}}\n";
+ }
+ print {$STY} "\n";
+
+ if ($seen{sw}) {
+ print {$STY} <<"END_STY_MATHCALOPTION";
+\\newif\\if$fam\@mathcal\\$fam\@mathcalfalse
+\\DeclareOptionX{mathcal}{\\$fam\@mathcaltrue}
+
+END_STY_MATHCALOPTION
+ }
+ }
+
+ print {$STY} <<"END_STY_PROCESSOPTIONS";
+\\ExecuteOptionsX{$defaults}
+\\ProcessOptionsX\\relax
+
+END_STY_PROCESSOPTIONS
+
+ print {$STY} <<"END_STY_PACKAGES";
+\\RequirePackage{@{[ $seen{TS1} ? "fontenc,textcomp" : "fontenc" ]}}
+\\RequirePackage{ifthen}
+\\RequirePackage{mweights}
+
+END_STY_PACKAGES
print {$STY} <<'END_STY_FONTAXES_START';
-\IfFileExists{mweights.sty}{\RequirePackage{mweights}}{}
\IfFileExists{fontaxes.sty}{
\RequirePackage{fontaxes}
END_STY_FONTAXES_START
-
if ($seen{nw} or $seen{sw}) {
print {$STY} <<'END_STY_FONTAXES_SW';
\DeclareRobustCommand\swshape{\not@math@alphabet\swshape\relax
@@ -805,122 +900,42 @@ END_STY_FONTAXES_DNOM
print {$STY} "}{}\n\n";
- print {$STY} <<"END_STY_XKEYVAL";
-\\RequirePackage{xkeyval}
-\\newcommand*{\\$fam\@scale}{1}
-\\DeclareOptionX{scale}{\\renewcommand*{\\$fam\@scale}{#1}}
-\\DeclareOptionX{scaled}{\\renewcommand*{\\$fam\@scale}{#1}}
-
-END_STY_XKEYVAL
-
- if ($seen{LF} or $seen{TLF}) {
- print {$STY}
- "\\DeclareOptionX{lining}{\\edef\\$fam\@figurestyle{LF}}\n";
- }
- if ($seen{OsF} or $seen{TOsF}) {
- print {$STY}
- "\\DeclareOptionX{oldstyle}{\\edef\\$fam\@figurestyle{OsF}}\n";
- }
- if ($seen{TLF} or $seen{TOsF}) {
- print {$STY}
- "\\DeclareOptionX{tabular}{\\edef\\$fam\@figurealign{T}}\n";
- }
- if ($seen{LF} or $seen{OsF}) {
- print {$STY}
- "\\DeclareOptionX{proportional}{\\edef\\$fam\@figurealign{}}\n";
- }
-
- print {$STY} <<"END_STY_MAINFONT";
-\\DeclareOptionX{mainfont}{
- \\renewcommand{\\familydefault}{\\$ARGV{nfss}default}
-}
-END_STY_MAINFONT
-
- if ($ARGV{math}) {
- print {$STY} <<"END_STY_MATHOPTION";
-\\newif\\if$fam\@math\\$fam\@mathfalse
-\\DeclareOptionX{math}{\\$fam\@mathtrue}
-
-\\newcommand*{\\$fam\@mathstyle}{TeX}
-\\DeclareOptionX{math-style}{\\renewcommand*{\\$fam\@mathstyle}{#1}}
-
-END_STY_MATHOPTION
-
- if ($seen{LF} or $seen{TLF}) {
- print {$STY} "\\newcommand*{\\$fam\@mathfigurestyle}{LF}\n";
- }
- elsif ($seen{OsF} or $seen{TOsF}) {
- print {$STY} "\\newcommand*{\\$fam\@mathfigurestyle}{OsF}\n";
- }
-
- if ($seen{OsF} or $seen{TOsF}) {
- print {$STY}
- "\\DeclareOptionX{matholdstyle}\n",
- " {\\renewcommand*{\\$fam\@mathfigurestyle}{OsF}}\n";
- }
- if ($seen{LF} or $seen{TLF}) {
- print {$STY}
- "\\DeclareOptionX{mathlining}",
- " {\\renewcommand{\\$fam\@mathfigurestyle}{LF}}\n";
- }
- print {$STY} "\n";
-
- if ($seen{sw}) {
- print {$STY} <<"END_STY_MATHCALOPTION";
-\\newif\\if$fam\@mathcal\\$fam\@mathcalfalse
-\\DeclareOptionX{mathcal}{\\$fam\@mathcaltrue}
-
-END_STY_MATHCALOPTION
- }
- }
-
- my $defaults
- = $seen{OsF} ? 'oldstyle,proportional'
- : $seen{TOsF} ? 'oldstyle,tabular'
- : $seen{LF} ? 'lining,proportional'
- : $seen{TLF} ? 'lining,tabular'
- : die "[ERROR] Internal bug, please report!"
- ;
-
- my $default_bold;
- for my $series (qw(heavy black extrabold demibold semibold bold)) {
- if ( $seen{$series} ) {
- print {$STY}
- "\\DeclareOptionX{$series}{\\edef\\bfseries\@$ARGV{nfss}",
- "{$series}}\n";
- $default_bold = $series;
- }
- }
- $defaults .= ",$default_bold" if $default_bold;
-
- my $default_regular;
- for my $series (qw(medium book text regular)) {
- if ( $seen{$series} ) {
- print {$STY}
- "\\DeclareOptionX{$series}{\\edef\\mdseries\@$ARGV{nfss}",
- "{$series}}\n";
- $default_regular = $series;
- }
- }
- $defaults .= ",$default_regular" if $default_regular;
-
- print {$STY} <<"END_STY_PROCESSOPTIONS";
-\\ExecuteOptionsX{$defaults}
-\\ProcessOptionsX\\relax
-
-END_STY_PROCESSOPTIONS
+ # For the scale=MatchLowercase option, we need the name for
+ # one of the fonts from the family, to pass to plain TeX's
+ # \font macro (as explained below, we cannot use NFSS's
+ # font loading mechanism before we have calculated the correct
+ # scaling parameter).
+ my $testfont = eval {
+ my $testenc = $ARGV{encoding}[0];
+ my $testfig = ( grep { exists $data->{$testenc}{$_} }
+ qw(OsF LF TOsF TLF) )[0] or die;
+ my $testweight = $nfss_mapping->{weight}{""}[0] or die;
+ my $testshape
+ = ( grep { exists $data->{$testenc}{$testfig}{$testweight}{$_} }
+ qw(n sc it sl)
+ )[0] or die;
+ return $data->{$testenc}{$testfig}{$testweight}{$testshape}[0][2]
+ || die;
+ };
if (defined $testfont) {
print {$STY} <<"END_STY_MATCHLOWERCASE";
+% Here we implement the scale=MatchLowercase option.
+% If this is given, we must compute the correct value of
+% the "\\$fam\@scale" parameter before loading the .fd files;
+% but to determine that value we of course need the font's x-height.
+% To avoid triggering the loading of .fd files,
+% we use plain TeX's \\font primitive to load the testfont.
+% We then compute the ratio of the current x-height to our font's x-height;
+% this is the "\\$fam\@scale" we will pass to the .fd files.
\\ifthenelse{\\equal{\\$fam\@scale}{MatchLowercase}}
- {\\newlength{\\$fam\@defaultx}
- \\settoheight{\\$fam\@defaultx}{x}
- \\newlength{\\$fam\@xheight}
- \\settoheight{\\$fam\@xheight}
- {{\\font\\testfont=$testfont at \\f\@size pt\\testfont x}}
- \\renewcommand*{\\$fam\@scale}
- {\\strip\@pt\\dimexpr\\number\\numexpr\\number\\dimexpr\\$fam\@defaultx\\relax*65536/\\number\\dimexpr\\$fam\@xheight\\relax\\relax sp\\relax}
- }
+ { \\newlength{\\$fam\@currentx}
+ \\settoheight{\\$fam\@currentx}{x}
+ \\newlength{\\$fam\@xheight}
+ \\settoheight{\\$fam\@xheight}
+ {{\\font\\testfont=$testfont at \\f\@size pt\\testfont x}}
+ \\renewcommand*{\\$fam\@scale}
+ {\\strip\@pt\\dimexpr\\number\\numexpr\\number\\dimexpr\\$fam\@currentx\\relax*65536/\\number\\dimexpr\\$fam\@xheight\\relax\\relax sp\\relax}}
{}
END_STY_MATCHLOWERCASE
@@ -1048,12 +1063,12 @@ END_STYLE_REST
\\re\@DeclareMathSymbol{!}{\\mathclose}{newoperators}{"21}
% \\re\@DeclareMathSymbol{+}{\\mathbin} {newoperators}{"2B}
- \\re\@DeclareMathSymbol{:}{\\mathrel} {newoperators}{"3A}
+ % \\re\@DeclareMathSymbol{:}{\\mathrel} {newoperators}{"3A}
\\re\@DeclareMathSymbol{;}{\\mathpunct}{newoperators}{"3B}
% \\re\@DeclareMathSymbol{=}{\\mathrel} {newoperators}{"3D}
\\re\@DeclareMathSymbol{?}{\\mathclose}{newoperators}{"3F}
- \\re\@DeclareMathSymbol{.}{\\mathord} {newletters}{"3A}
+ % \\re\@DeclareMathSymbol{.}{\\mathord} {newletters}{"3A}
\\re\@DeclareMathSymbol{,}{\\mathpunct}{newletters}{"3B}
% \\re\@DeclareMathSymbol{<}{\\mathrel} {newletters}{"3C}
% \\re\@DeclareMathSymbol{/}{\\mathord} {newletters}{"3D}
@@ -1079,47 +1094,49 @@ END_STYLE_REST
\\re\@DeclareMathAccent{\\tilde} {\\mathalpha}{newoperators}{"7E}
\\re\@DeclareMathAccent{\\ddot} {\\mathalpha}{newoperators}{"7F}
- \\re\@DeclareMathSymbol{\\Gamma} {\\mathalpha}{newoperators}{"00}
- \\re\@DeclareMathSymbol{\\Delta} {\\mathalpha}{newoperators}{"01}
- \\re\@DeclareMathSymbol{\\Theta} {\\mathalpha}{newoperators}{"02}
- \\re\@DeclareMathSymbol{\\Lambda} {\\mathalpha}{newoperators}{"03}
- \\re\@DeclareMathSymbol{\\Xi} {\\mathalpha}{newoperators}{"04}
- \\re\@DeclareMathSymbol{\\Pi} {\\mathalpha}{newoperators}{"05}
- \\re\@DeclareMathSymbol{\\Sigma} {\\mathalpha}{newoperators}{"06}
- \\re\@DeclareMathSymbol{\\Upsilon}{\\mathalpha}{newoperators}{"07}
- \\re\@DeclareMathSymbol{\\Phi} {\\mathalpha}{newoperators}{"08}
- \\re\@DeclareMathSymbol{\\Psi} {\\mathalpha}{newoperators}{"09}
- \\re\@DeclareMathSymbol{\\Omega} {\\mathalpha}{newoperators}{"0A}
-
- \\re\@DeclareMathSymbol{\\alpha} {\\mathord}{newletters}{"0B}
- \\re\@DeclareMathSymbol{\\beta} {\\mathord}{newletters}{"0C}
- \\re\@DeclareMathSymbol{\\gamma} {\\mathord}{newletters}{"0D}
- \\re\@DeclareMathSymbol{\\delta} {\\mathord}{newletters}{"0E}
- \\re\@DeclareMathSymbol{\\epsilon} {\\mathord}{newletters}{"0F}
- \\re\@DeclareMathSymbol{\\zeta} {\\mathord}{newletters}{"10}
- \\re\@DeclareMathSymbol{\\eta} {\\mathord}{newletters}{"11}
- \\re\@DeclareMathSymbol{\\theta} {\\mathord}{newletters}{"12}
- \\re\@DeclareMathSymbol{\\iota} {\\mathord}{newletters}{"13}
- \\re\@DeclareMathSymbol{\\kappa} {\\mathord}{newletters}{"14}
- \\re\@DeclareMathSymbol{\\lambda} {\\mathord}{newletters}{"15}
- \\re\@DeclareMathSymbol{\\mu} {\\mathord}{newletters}{"16}
- \\re\@DeclareMathSymbol{\\nu} {\\mathord}{newletters}{"17}
- \\re\@DeclareMathSymbol{\\xi} {\\mathord}{newletters}{"18}
- \\re\@DeclareMathSymbol{\\pi} {\\mathord}{newletters}{"19}
- \\re\@DeclareMathSymbol{\\rho} {\\mathord}{newletters}{"1A}
- \\re\@DeclareMathSymbol{\\sigma} {\\mathord}{newletters}{"1B}
- \\re\@DeclareMathSymbol{\\tau} {\\mathord}{newletters}{"1C}
- \\re\@DeclareMathSymbol{\\upsilon} {\\mathord}{newletters}{"1D}
- \\re\@DeclareMathSymbol{\\phi} {\\mathord}{newletters}{"1E}
- \\re\@DeclareMathSymbol{\\chi} {\\mathord}{newletters}{"1F}
- \\re\@DeclareMathSymbol{\\psi} {\\mathord}{newletters}{"20}
- \\re\@DeclareMathSymbol{\\omega} {\\mathord}{newletters}{"21}
- \\re\@DeclareMathSymbol{\\varepsilon}{\\mathord}{newletters}{"22}
- \\re\@DeclareMathSymbol{\\vartheta} {\\mathord}{newletters}{"23}
- \\re\@DeclareMathSymbol{\\varpi} {\\mathord}{newletters}{"24}
- \\re\@DeclareMathSymbol{\\varrho} {\\mathord}{newletters}{"25}
- \\re\@DeclareMathSymbol{\\varsigma} {\\mathord}{newletters}{"26}
- \\re\@DeclareMathSymbol{\\varphi} {\\mathord}{newletters}{"27}
+ \\if$fam\@mathgreek
+ \\re\@DeclareMathSymbol{\\Gamma} {\\mathalpha}{newoperators}{"00}
+ \\re\@DeclareMathSymbol{\\Delta} {\\mathalpha}{newoperators}{"01}
+ \\re\@DeclareMathSymbol{\\Theta} {\\mathalpha}{newoperators}{"02}
+ \\re\@DeclareMathSymbol{\\Lambda} {\\mathalpha}{newoperators}{"03}
+ \\re\@DeclareMathSymbol{\\Xi} {\\mathalpha}{newoperators}{"04}
+ \\re\@DeclareMathSymbol{\\Pi} {\\mathalpha}{newoperators}{"05}
+ \\re\@DeclareMathSymbol{\\Sigma} {\\mathalpha}{newoperators}{"06}
+ \\re\@DeclareMathSymbol{\\Upsilon}{\\mathalpha}{newoperators}{"07}
+ \\re\@DeclareMathSymbol{\\Phi} {\\mathalpha}{newoperators}{"08}
+ \\re\@DeclareMathSymbol{\\Psi} {\\mathalpha}{newoperators}{"09}
+ \\re\@DeclareMathSymbol{\\Omega} {\\mathalpha}{newoperators}{"0A}
+
+ \\re\@DeclareMathSymbol{\\alpha} {\\mathord}{newletters}{"0B}
+ \\re\@DeclareMathSymbol{\\beta} {\\mathord}{newletters}{"0C}
+ \\re\@DeclareMathSymbol{\\gamma} {\\mathord}{newletters}{"0D}
+ \\re\@DeclareMathSymbol{\\delta} {\\mathord}{newletters}{"0E}
+ \\re\@DeclareMathSymbol{\\epsilon} {\\mathord}{newletters}{"0F}
+ \\re\@DeclareMathSymbol{\\zeta} {\\mathord}{newletters}{"10}
+ \\re\@DeclareMathSymbol{\\eta} {\\mathord}{newletters}{"11}
+ \\re\@DeclareMathSymbol{\\theta} {\\mathord}{newletters}{"12}
+ \\re\@DeclareMathSymbol{\\iota} {\\mathord}{newletters}{"13}
+ \\re\@DeclareMathSymbol{\\kappa} {\\mathord}{newletters}{"14}
+ \\re\@DeclareMathSymbol{\\lambda} {\\mathord}{newletters}{"15}
+ \\re\@DeclareMathSymbol{\\mu} {\\mathord}{newletters}{"16}
+ \\re\@DeclareMathSymbol{\\nu} {\\mathord}{newletters}{"17}
+ \\re\@DeclareMathSymbol{\\xi} {\\mathord}{newletters}{"18}
+ \\re\@DeclareMathSymbol{\\pi} {\\mathord}{newletters}{"19}
+ \\re\@DeclareMathSymbol{\\rho} {\\mathord}{newletters}{"1A}
+ \\re\@DeclareMathSymbol{\\sigma} {\\mathord}{newletters}{"1B}
+ \\re\@DeclareMathSymbol{\\tau} {\\mathord}{newletters}{"1C}
+ \\re\@DeclareMathSymbol{\\upsilon} {\\mathord}{newletters}{"1D}
+ \\re\@DeclareMathSymbol{\\phi} {\\mathord}{newletters}{"1E}
+ \\re\@DeclareMathSymbol{\\chi} {\\mathord}{newletters}{"1F}
+ \\re\@DeclareMathSymbol{\\psi} {\\mathord}{newletters}{"20}
+ \\re\@DeclareMathSymbol{\\omega} {\\mathord}{newletters}{"21}
+ \\re\@DeclareMathSymbol{\\varepsilon}{\\mathord}{newletters}{"22}
+ \\re\@DeclareMathSymbol{\\vartheta} {\\mathord}{newletters}{"23}
+ \\re\@DeclareMathSymbol{\\varpi} {\\mathord}{newletters}{"24}
+ \\re\@DeclareMathSymbol{\\varrho} {\\mathord}{newletters}{"25}
+ \\re\@DeclareMathSymbol{\\varsigma} {\\mathord}{newletters}{"26}
+ \\re\@DeclareMathSymbol{\\varphi} {\\mathord}{newletters}{"27}
+ \\fi
\\ifthenelse{\\equal{\\$fam\@mathstyle}{TeX}}
{\\$fam\@mathGREEKuptrue}
@@ -1200,54 +1217,56 @@ END_STYLE_REST
\\re\@DeclareMathSymbol{\\jmath}{\\mathord}{upletters}{"7C}
\\fi
- \\if$fam\@mathGREEKup
- \\else
- \\re\@DeclareMathSymbol{\\Gamma} {\\mathalpha}{newletters}{"00}
- \\re\@DeclareMathSymbol{\\Delta} {\\mathalpha}{newletters}{"01}
- \\re\@DeclareMathSymbol{\\Theta} {\\mathalpha}{newletters}{"02}
- \\re\@DeclareMathSymbol{\\Lambda} {\\mathalpha}{newletters}{"03}
- \\re\@DeclareMathSymbol{\\Xi} {\\mathalpha}{newletters}{"04}
- \\re\@DeclareMathSymbol{\\Pi} {\\mathalpha}{newletters}{"05}
- \\re\@DeclareMathSymbol{\\Sigma} {\\mathalpha}{newletters}{"06}
- \\re\@DeclareMathSymbol{\\Upsilon}{\\mathalpha}{newletters}{"07}
- \\re\@DeclareMathSymbol{\\Phi} {\\mathalpha}{newletters}{"08}
- \\re\@DeclareMathSymbol{\\Psi} {\\mathalpha}{newletters}{"09}
- \\re\@DeclareMathSymbol{\\Omega} {\\mathalpha}{newletters}{"0A}
- \\fi
-
- \\if$fam\@mathgreekup
- \\DeclareSymbolFont{upletters} {OML}{$fam-\\$fam\@figurealign\\$fam\@mathfigurestyle}{\\mdseries\@$ARGV{nfss}}{n}
- \\SetSymbolFont{upletters}{bold}{OML}{$fam-\\$fam\@figurealign\\$fam\@mathfigurestyle}{\\bfseries\@$ARGV{nfss}}{n}
-
- \\re\@DeclareMathSymbol{\\alpha} {\\mathord}{upletters}{"0B}
- \\re\@DeclareMathSymbol{\\beta} {\\mathord}{upletters}{"0C}
- \\re\@DeclareMathSymbol{\\gamma} {\\mathord}{upletters}{"0D}
- \\re\@DeclareMathSymbol{\\delta} {\\mathord}{upletters}{"0E}
- \\re\@DeclareMathSymbol{\\epsilon} {\\mathord}{upletters}{"0F}
- \\re\@DeclareMathSymbol{\\zeta} {\\mathord}{upletters}{"10}
- \\re\@DeclareMathSymbol{\\eta} {\\mathord}{upletters}{"11}
- \\re\@DeclareMathSymbol{\\theta} {\\mathord}{upletters}{"12}
- \\re\@DeclareMathSymbol{\\iota} {\\mathord}{upletters}{"13}
- \\re\@DeclareMathSymbol{\\kappa} {\\mathord}{upletters}{"14}
- \\re\@DeclareMathSymbol{\\lambda} {\\mathord}{upletters}{"15}
- \\re\@DeclareMathSymbol{\\mu} {\\mathord}{upletters}{"16}
- \\re\@DeclareMathSymbol{\\nu} {\\mathord}{upletters}{"17}
- \\re\@DeclareMathSymbol{\\xi} {\\mathord}{upletters}{"18}
- \\re\@DeclareMathSymbol{\\pi} {\\mathord}{upletters}{"19}
- \\re\@DeclareMathSymbol{\\rho} {\\mathord}{upletters}{"1A}
- \\re\@DeclareMathSymbol{\\sigma} {\\mathord}{upletters}{"1B}
- \\re\@DeclareMathSymbol{\\tau} {\\mathord}{upletters}{"1C}
- \\re\@DeclareMathSymbol{\\upsilon} {\\mathord}{upletters}{"1D}
- \\re\@DeclareMathSymbol{\\phi} {\\mathord}{upletters}{"1E}
- \\re\@DeclareMathSymbol{\\chi} {\\mathord}{upletters}{"1F}
- \\re\@DeclareMathSymbol{\\psi} {\\mathord}{upletters}{"20}
- \\re\@DeclareMathSymbol{\\omega} {\\mathord}{upletters}{"21}
- \\re\@DeclareMathSymbol{\\varepsilon}{\\mathord}{upletters}{"22}
- \\re\@DeclareMathSymbol{\\vartheta} {\\mathord}{upletters}{"23}
- \\re\@DeclareMathSymbol{\\varpi} {\\mathord}{upletters}{"24}
- \\re\@DeclareMathSymbol{\\varrho} {\\mathord}{upletters}{"25}
- \\re\@DeclareMathSymbol{\\varsigma} {\\mathord}{upletters}{"26}
- \\re\@DeclareMathSymbol{\\varphi} {\\mathord}{upletters}{"27}
+ \\if$fam\@mathgreek
+ \\if$fam\@mathGREEKup
+ \\else
+ \\re\@DeclareMathSymbol{\\Gamma} {\\mathalpha}{newletters}{"00}
+ \\re\@DeclareMathSymbol{\\Delta} {\\mathalpha}{newletters}{"01}
+ \\re\@DeclareMathSymbol{\\Theta} {\\mathalpha}{newletters}{"02}
+ \\re\@DeclareMathSymbol{\\Lambda} {\\mathalpha}{newletters}{"03}
+ \\re\@DeclareMathSymbol{\\Xi} {\\mathalpha}{newletters}{"04}
+ \\re\@DeclareMathSymbol{\\Pi} {\\mathalpha}{newletters}{"05}
+ \\re\@DeclareMathSymbol{\\Sigma} {\\mathalpha}{newletters}{"06}
+ \\re\@DeclareMathSymbol{\\Upsilon}{\\mathalpha}{newletters}{"07}
+ \\re\@DeclareMathSymbol{\\Phi} {\\mathalpha}{newletters}{"08}
+ \\re\@DeclareMathSymbol{\\Psi} {\\mathalpha}{newletters}{"09}
+ \\re\@DeclareMathSymbol{\\Omega} {\\mathalpha}{newletters}{"0A}
+ \\fi
+
+ \\if$fam\@mathgreekup
+ \\DeclareSymbolFont{upletters} {OML}{$fam-\\$fam\@figurealign\\$fam\@mathfigurestyle}{\\mdseries\@$ARGV{nfss}}{n}
+ \\SetSymbolFont{upletters}{bold}{OML}{$fam-\\$fam\@figurealign\\$fam\@mathfigurestyle}{\\bfseries\@$ARGV{nfss}}{n}
+
+ \\re\@DeclareMathSymbol{\\alpha} {\\mathord}{upletters}{"0B}
+ \\re\@DeclareMathSymbol{\\beta} {\\mathord}{upletters}{"0C}
+ \\re\@DeclareMathSymbol{\\gamma} {\\mathord}{upletters}{"0D}
+ \\re\@DeclareMathSymbol{\\delta} {\\mathord}{upletters}{"0E}
+ \\re\@DeclareMathSymbol{\\epsilon} {\\mathord}{upletters}{"0F}
+ \\re\@DeclareMathSymbol{\\zeta} {\\mathord}{upletters}{"10}
+ \\re\@DeclareMathSymbol{\\eta} {\\mathord}{upletters}{"11}
+ \\re\@DeclareMathSymbol{\\theta} {\\mathord}{upletters}{"12}
+ \\re\@DeclareMathSymbol{\\iota} {\\mathord}{upletters}{"13}
+ \\re\@DeclareMathSymbol{\\kappa} {\\mathord}{upletters}{"14}
+ \\re\@DeclareMathSymbol{\\lambda} {\\mathord}{upletters}{"15}
+ \\re\@DeclareMathSymbol{\\mu} {\\mathord}{upletters}{"16}
+ \\re\@DeclareMathSymbol{\\nu} {\\mathord}{upletters}{"17}
+ \\re\@DeclareMathSymbol{\\xi} {\\mathord}{upletters}{"18}
+ \\re\@DeclareMathSymbol{\\pi} {\\mathord}{upletters}{"19}
+ \\re\@DeclareMathSymbol{\\rho} {\\mathord}{upletters}{"1A}
+ \\re\@DeclareMathSymbol{\\sigma} {\\mathord}{upletters}{"1B}
+ \\re\@DeclareMathSymbol{\\tau} {\\mathord}{upletters}{"1C}
+ \\re\@DeclareMathSymbol{\\upsilon} {\\mathord}{upletters}{"1D}
+ \\re\@DeclareMathSymbol{\\phi} {\\mathord}{upletters}{"1E}
+ \\re\@DeclareMathSymbol{\\chi} {\\mathord}{upletters}{"1F}
+ \\re\@DeclareMathSymbol{\\psi} {\\mathord}{upletters}{"20}
+ \\re\@DeclareMathSymbol{\\omega} {\\mathord}{upletters}{"21}
+ \\re\@DeclareMathSymbol{\\varepsilon}{\\mathord}{upletters}{"22}
+ \\re\@DeclareMathSymbol{\\vartheta} {\\mathord}{upletters}{"23}
+ \\re\@DeclareMathSymbol{\\varpi} {\\mathord}{upletters}{"24}
+ \\re\@DeclareMathSymbol{\\varrho} {\\mathord}{upletters}{"25}
+ \\re\@DeclareMathSymbol{\\varsigma} {\\mathord}{upletters}{"26}
+ \\re\@DeclareMathSymbol{\\varphi} {\\mathord}{upletters}{"27}
+ \\fi
\\fi
\\fi
@@ -1730,7 +1749,7 @@ my @WEIGHT = (
sb => [ qw( semibold demibold 600 medium 500 ) ],
b => [ qw( bold 700 ) ],
eb => [ qw( extrabold 800 ) ],
- ub => [ qw( ultrabold black heavy extrablack ultrablack 900
+ ub => [ qw( ultrabold black heavy extrablack ultrablack 900 fatface
ultraheavy poster super 1000 ) ],
);
@@ -1848,9 +1867,9 @@ sub get_all_nfss_weights {
}
-my @allweights = grep { $_ !~ m/ regular | medium /xms }
+my @allweights = grep { $_ !~ m/ medium | regular | text /xms }
map { @{$_} } values %WEIGHT;
-@allweights = (Util::sort_desc_length(@allweights), qw(medium regular));
+@allweights = (Util::sort_desc_length(@allweights), qw(medium regular text));
# --------------------------------------------------------------------------
# Returns a list of all known weight names,
@@ -3140,6 +3159,8 @@ for installing and using OpenType fonts in LaTeX.
=head1 SYNOPSIS
+B<autoinst> I<-help>
+
B<autoinst> [I<options>] B<font(s)>
@@ -3405,6 +3426,10 @@ Use the swash characters from your fonts as the C<\mathcal> alphabet.
(This option only exists if your fonts actually contain swash characters
and a C<swsh> feature to access them).
+=item C<nomathgreek>
+
+Don't redeclare greek letters in math.
+
=item C<<< math-style=I<< <style> >> >>>
Choose the `math style' to use.
@@ -3890,7 +3915,7 @@ GNU General Public License for more details.
=head1 VERSION
-This document describes B<autoinst> version 20200527.
+This document describes B<autoinst> version 20200619.
=head1 RECENT CHANGES
@@ -3899,6 +3924,12 @@ This document describes B<autoinst> version 20200527.
=over 12
+=item I<2020-06-19>
+
+Added the C<nomathgreek> option to generated style files.
+Reorganized the generated style files to make them more
+standards-conforming.
+
=item I<2020-05-27>
Added basic (and still somewhat experimental) math support.
diff --git a/fonts/utilities/fontools/bin/ot2kpx b/fonts/utilities/fontools/bin/ot2kpx
index db00bd6787..830415e2c5 100755
--- a/fonts/utilities/fontools/bin/ot2kpx
+++ b/fonts/utilities/fontools/bin/ot2kpx
@@ -38,7 +38,7 @@ use Getopt::Long ();
use List::Util @List::Util::EXPORT_OK;
use Pod::Usage;
-my $VERSION = "20200527";
+my $VERSION = "20200619";
our ($NUM_GLYPHS, $UNITS_PER_EM, %kern);
@@ -858,7 +858,7 @@ See the GNU General Public License for more details.
=head1 VERSION
-This document describes B<ot2kpx> version 20200527.
+This document describes B<ot2kpx> version 20200619.
=head1 RECENT CHANGES
diff --git a/fonts/utilities/fontools/bin/splitttc b/fonts/utilities/fontools/bin/splitttc
index 1fa3e460e2..b4045270c7 100755
--- a/fonts/utilities/fontools/bin/splitttc
+++ b/fonts/utilities/fontools/bin/splitttc
@@ -38,7 +38,7 @@ use File::Basename;
use Getopt::Long;
use Pod::Usage;
-my $VERSION = "20200527";
+my $VERSION = "20200619";
parse_commandline();
@@ -303,7 +303,7 @@ See the GNU General Public License for more details.
=head1 VERSION
-This document describes B<splitttc> version 20200527.
+This document describes B<splitttc> version 20200619.
=head1 RECENT CHANGES
diff --git a/fonts/utilities/fontools/doc/afm2afm.pdf b/fonts/utilities/fontools/doc/afm2afm.pdf
index 1529bcede2..b94797fe47 100644
--- a/fonts/utilities/fontools/doc/afm2afm.pdf
+++ b/fonts/utilities/fontools/doc/afm2afm.pdf
Binary files differ
diff --git a/fonts/utilities/fontools/doc/autoinst.pdf b/fonts/utilities/fontools/doc/autoinst.pdf
index 41cd9e7ede..23ed25890d 100644
--- a/fonts/utilities/fontools/doc/autoinst.pdf
+++ b/fonts/utilities/fontools/doc/autoinst.pdf
Binary files differ
diff --git a/fonts/utilities/fontools/doc/ot2kpx.pdf b/fonts/utilities/fontools/doc/ot2kpx.pdf
index 3cb9951fcf..0d61a1737b 100644
--- a/fonts/utilities/fontools/doc/ot2kpx.pdf
+++ b/fonts/utilities/fontools/doc/ot2kpx.pdf
Binary files differ
diff --git a/fonts/utilities/fontools/doc/splitttc.pdf b/fonts/utilities/fontools/doc/splitttc.pdf
index e1b191930d..9ffc6518ac 100644
--- a/fonts/utilities/fontools/doc/splitttc.pdf
+++ b/fonts/utilities/fontools/doc/splitttc.pdf
Binary files differ