texlive[55596] trunk: fontools (19jun20)

commits+karl at tug.org commits+karl at tug.org
Fri Jun 19 22:38:31 CEST 2020


Revision: 55596
          http://tug.org/svn/texlive?view=revision&revision=55596
Author:   karl
Date:     2020-06-19 22:38:31 +0200 (Fri, 19 Jun 2020)
Log Message:
-----------
fontools (19jun20)

Modified Paths:
--------------
    trunk/Build/source/texk/texlive/linked_scripts/fontools/afm2afm
    trunk/Build/source/texk/texlive/linked_scripts/fontools/autoinst
    trunk/Build/source/texk/texlive/linked_scripts/fontools/ot2kpx
    trunk/Master/texmf-dist/doc/man/man1/afm2afm.1
    trunk/Master/texmf-dist/doc/man/man1/afm2afm.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/autoinst.1
    trunk/Master/texmf-dist/doc/man/man1/autoinst.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/ot2kpx.1
    trunk/Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf
    trunk/Master/texmf-dist/doc/support/fontools/splitttc
    trunk/Master/texmf-dist/scripts/fontools/afm2afm
    trunk/Master/texmf-dist/scripts/fontools/autoinst
    trunk/Master/texmf-dist/scripts/fontools/ot2kpx

Modified: trunk/Build/source/texk/texlive/linked_scripts/fontools/afm2afm
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/fontools/afm2afm	2020-06-19 20:00:35 UTC (rev 55595)
+++ trunk/Build/source/texk/texlive/linked_scripts/fontools/afm2afm	2020-06-19 20:38:31 UTC (rev 55596)
@@ -37,7 +37,7 @@
 use Getopt::Long;
 use Pod::Usage;
 
-my $VERSION = "20200527";
+my $VERSION = "20200619";
 
 parse_commandline();
 
@@ -421,7 +421,7 @@
 
 =head1 VERSION
 
-This document describes B<afm2afm> version 20200527.
+This document describes B<afm2afm> version 20200619.
 
 
 =head1 RECENT CHANGES

Modified: trunk/Build/source/texk/texlive/linked_scripts/fontools/autoinst
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/fontools/autoinst	2020-06-19 20:00:35 UTC (rev 55595)
+++ trunk/Build/source/texk/texlive/linked_scripts/fontools/autoinst	2020-06-19 20:38:31 UTC (rev 55596)
@@ -40,7 +40,7 @@
 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 @@
     $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 @@
     # (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 @@
 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 @@
     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 at math@alphabet\swshape\relax
@@ -805,122 +900,42 @@
 
     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}}
+    #   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;
+    };
 
-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
-
     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 @@
 
     \\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 @@
     \\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}
+    \\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}
+        \\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 @@
         \\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\@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}
+        \\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}
+            \\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 @@
     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 @@
 }
 
 
-my @allweights = grep { $_ !~ m/ regular | medium /xms }
+my @allweights = grep { $_ !~ m/ medium | regular | text /xms }
                       map { @{$_} } values %WEIGHT;
- at allweights = (Util::sort_desc_length(@allweights), qw(medium regular));
+ at allweights = (Util::sort_desc_length(@allweights), qw(medium regular text));
 
 # --------------------------------------------------------------------------
 #   Returns a list of all known weight names,
@@ -3140,6 +3159,8 @@
 
 =head1 SYNOPSIS
 
+B<autoinst> I<-help>
+
 B<autoinst> [I<options>] B<font(s)>
 
 
@@ -3405,6 +3426,10 @@
 (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 @@
 
 =head1 VERSION
 
-This document describes B<autoinst> version 20200527.
+This document describes B<autoinst> version 20200619.
 
 
 =head1 RECENT CHANGES
@@ -3899,6 +3924,12 @@
 
 =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.

Modified: trunk/Build/source/texk/texlive/linked_scripts/fontools/ot2kpx
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/fontools/ot2kpx	2020-06-19 20:00:35 UTC (rev 55595)
+++ trunk/Build/source/texk/texlive/linked_scripts/fontools/ot2kpx	2020-06-19 20:38:31 UTC (rev 55596)
@@ -38,7 +38,7 @@
 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 @@
 
 =head1 VERSION
 
-This document describes B<ot2kpx> version 20200527.
+This document describes B<ot2kpx> version 20200619.
 
 
 =head1 RECENT CHANGES

Modified: trunk/Master/texmf-dist/doc/man/man1/afm2afm.1
===================================================================
--- trunk/Master/texmf-dist/doc/man/man1/afm2afm.1	2020-06-19 20:00:35 UTC (rev 55595)
+++ trunk/Master/texmf-dist/doc/man/man1/afm2afm.1	2020-06-19 20:38:31 UTC (rev 55596)
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "AFM2AFM 1"
-.TH AFM2AFM 1 "2020-05-27" "fontools" "Marc Penninga"
+.TH AFM2AFM 1 "2020-06-19" "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
@@ -223,7 +223,7 @@
 See the \s-1GNU\s0 General Public License for more details.
 .SH "VERSION"
 .IX Header "VERSION"
-This document describes \fBafm2afm\fR version 20200527.
+This document describes \fBafm2afm\fR version 20200619.
 .SH "RECENT CHANGES"
 .IX Header "RECENT CHANGES"
 (See the source code for the rest of the story.)

Modified: trunk/Master/texmf-dist/doc/man/man1/afm2afm.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/autoinst.1
===================================================================
--- trunk/Master/texmf-dist/doc/man/man1/autoinst.1	2020-06-19 20:00:35 UTC (rev 55595)
+++ trunk/Master/texmf-dist/doc/man/man1/autoinst.1	2020-06-19 20:38:31 UTC (rev 55596)
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "AUTOINST 1"
-.TH AUTOINST 1 "2020-05-27" "fontools" "Marc Penninga"
+.TH AUTOINST 1 "2020-06-19" "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
@@ -143,6 +143,8 @@
 for installing and using OpenType fonts in LaTeX.
 .SH "SYNOPSIS"
 .IX Header "SYNOPSIS"
+\&\fBautoinst\fR \fI\-help\fR
+.PP
 \&\fBautoinst\fR [\fIoptions\fR] \fBfont(s)\fR
 .SH "DESCRIPTION"
 .IX Header "DESCRIPTION"
@@ -361,6 +363,10 @@
 Use the swash characters from your fonts as the \f(CW\*(C`\emathcal\*(C'\fR alphabet.
 (This option only exists if your fonts actually contain swash characters
 and a \f(CW\*(C`swsh\*(C'\fR feature to access them).
+.ie n .IP """nomathgreek""" 4
+.el .IP "\f(CWnomathgreek\fR" 4
+.IX Item "nomathgreek"
+Don't redeclare greek letters in math.
 .ie n .IP """math\-style=\fI<style>\fP""" 4
 .el .IP "\f(CWmath\-style=\f(CI<style>\f(CW\fR" 4
 .IX Item "math-style=<style>"
@@ -798,10 +804,15 @@
 \&\s-1GNU\s0 General Public License for more details.
 .SH "VERSION"
 .IX Header "VERSION"
-This document describes \fBautoinst\fR version 20200527.
+This document describes \fBautoinst\fR version 20200619.
 .SH "RECENT CHANGES"
 .IX Header "RECENT CHANGES"
 (See the source for the full story, all the way back to 2005.)
+.IP "\fI2020\-06\-19\fR" 12
+.IX Item "2020-06-19"
+Added the \f(CW\*(C`nomathgreek\*(C'\fR option to generated style files.
+Reorganized the generated style files to make them more
+standards-conforming.
 .IP "\fI2020\-05\-27\fR" 12
 .IX Item "2020-05-27"
 Added basic (and still somewhat experimental) math support.

Modified: trunk/Master/texmf-dist/doc/man/man1/autoinst.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/ot2kpx.1
===================================================================
--- trunk/Master/texmf-dist/doc/man/man1/ot2kpx.1	2020-06-19 20:00:35 UTC (rev 55595)
+++ trunk/Master/texmf-dist/doc/man/man1/ot2kpx.1	2020-06-19 20:38:31 UTC (rev 55596)
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "OT2KPX 1"
-.TH OT2KPX 1 "2020-05-27" "fontools" "Marc Penninga"
+.TH OT2KPX 1 "2020-06-19" "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
@@ -228,7 +228,7 @@
 See the \s-1GNU\s0 General Public License for more details.
 .SH "VERSION"
 .IX Header "VERSION"
-This document describes \fBot2kpx\fR version 20200527.
+This document describes \fBot2kpx\fR version 20200619.
 .SH "RECENT CHANGES"
 .IX Header "RECENT CHANGES"
 (See the source code for the rest of the story.)

Modified: trunk/Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/support/fontools/splitttc
===================================================================
--- trunk/Master/texmf-dist/doc/support/fontools/splitttc	2020-06-19 20:00:35 UTC (rev 55595)
+++ trunk/Master/texmf-dist/doc/support/fontools/splitttc	2020-06-19 20:38:31 UTC (rev 55596)
@@ -38,7 +38,7 @@
 use Getopt::Long;
 use Pod::Usage;
 
-my $VERSION = "20200527";
+my $VERSION = "20200619";
 
 parse_commandline();
 
@@ -303,7 +303,7 @@
 
 =head1 VERSION
 
-This document describes B<splitttc> version 20200527.
+This document describes B<splitttc> version 20200619.
 
 
 =head1 RECENT CHANGES

Modified: trunk/Master/texmf-dist/scripts/fontools/afm2afm
===================================================================
--- trunk/Master/texmf-dist/scripts/fontools/afm2afm	2020-06-19 20:00:35 UTC (rev 55595)
+++ trunk/Master/texmf-dist/scripts/fontools/afm2afm	2020-06-19 20:38:31 UTC (rev 55596)
@@ -37,7 +37,7 @@
 use Getopt::Long;
 use Pod::Usage;
 
-my $VERSION = "20200527";
+my $VERSION = "20200619";
 
 parse_commandline();
 
@@ -421,7 +421,7 @@
 
 =head1 VERSION
 
-This document describes B<afm2afm> version 20200527.
+This document describes B<afm2afm> version 20200619.
 
 
 =head1 RECENT CHANGES

Modified: trunk/Master/texmf-dist/scripts/fontools/autoinst
===================================================================
--- trunk/Master/texmf-dist/scripts/fontools/autoinst	2020-06-19 20:00:35 UTC (rev 55595)
+++ trunk/Master/texmf-dist/scripts/fontools/autoinst	2020-06-19 20:38:31 UTC (rev 55596)
@@ -40,7 +40,7 @@
 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 @@
     $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 @@
     # (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 @@
 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 @@
     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 at math@alphabet\swshape\relax
@@ -805,122 +900,42 @@
 
     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}}
+    #   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;
+    };
 
-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
-
     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 @@
 
     \\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 @@
     \\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}
+    \\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}
+        \\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 @@
         \\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\@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}
+        \\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}
+            \\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 @@
     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 @@
 }
 
 
-my @allweights = grep { $_ !~ m/ regular | medium /xms }
+my @allweights = grep { $_ !~ m/ medium | regular | text /xms }
                       map { @{$_} } values %WEIGHT;
- at allweights = (Util::sort_desc_length(@allweights), qw(medium regular));
+ at allweights = (Util::sort_desc_length(@allweights), qw(medium regular text));
 
 # --------------------------------------------------------------------------
 #   Returns a list of all known weight names,
@@ -3140,6 +3159,8 @@
 
 =head1 SYNOPSIS
 
+B<autoinst> I<-help>
+
 B<autoinst> [I<options>] B<font(s)>
 
 
@@ -3405,6 +3426,10 @@
 (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 @@
 
 =head1 VERSION
 
-This document describes B<autoinst> version 20200527.
+This document describes B<autoinst> version 20200619.
 
 
 =head1 RECENT CHANGES
@@ -3899,6 +3924,12 @@
 
 =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.

Modified: trunk/Master/texmf-dist/scripts/fontools/ot2kpx
===================================================================
--- trunk/Master/texmf-dist/scripts/fontools/ot2kpx	2020-06-19 20:00:35 UTC (rev 55595)
+++ trunk/Master/texmf-dist/scripts/fontools/ot2kpx	2020-06-19 20:38:31 UTC (rev 55596)
@@ -38,7 +38,7 @@
 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 @@
 
 =head1 VERSION
 
-This document describes B<ot2kpx> version 20200527.
+This document describes B<ot2kpx> version 20200619.
 
 
 =head1 RECENT CHANGES



More information about the tex-live-commits mailing list.