From eb6236a4ba3566f36e4f6f8cf78f39ea56861520 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 20 Jun 2020 03:02:28 +0000 Subject: CTAN sync 202006200302 --- fonts/utilities/fontools/bin/afm2afm | 4 +- fonts/utilities/fontools/bin/autoinst | 523 ++++++++++++++++-------------- fonts/utilities/fontools/bin/ot2kpx | 4 +- fonts/utilities/fontools/bin/splitttc | 4 +- fonts/utilities/fontools/doc/afm2afm.pdf | Bin 26884 -> 27062 bytes fonts/utilities/fontools/doc/autoinst.pdf | Bin 73484 -> 73672 bytes fonts/utilities/fontools/doc/ot2kpx.pdf | Bin 27270 -> 27440 bytes fonts/utilities/fontools/doc/splitttc.pdf | Bin 20395 -> 20443 bytes 8 files changed, 283 insertions(+), 252 deletions(-) (limited to 'fonts') 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 version 20200527. +This document describes B 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 I<-help> + B [I] B @@ -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 feature to access them). +=item C + +Don't redeclare greek letters in math. + =item C<<< math-style=I<<