From 536a7489973eccaff138ee09ae1cbb4f1a43563a Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 17 Jun 2017 23:47:12 +0000 Subject: fontools (17jun17 git-svn-id: svn://tug.org/texlive/trunk@44626 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/scripts/fontools/autoinst | 302 ++++++++++++++-------------- 1 file changed, 150 insertions(+), 152 deletions(-) (limited to 'Master/texmf-dist/scripts') diff --git a/Master/texmf-dist/scripts/fontools/autoinst b/Master/texmf-dist/scripts/fontools/autoinst index ffbe7211c3d..963bb89b2fc 100755 --- a/Master/texmf-dist/scripts/fontools/autoinst +++ b/Master/texmf-dist/scripts/fontools/autoinst @@ -118,8 +118,8 @@ my %FD_SHAPE = ( =begin Comment - The next table is used to generate extra DeclareFontShape rules - in the .fd files to map missing slanted shapes to italic or vice versa. + The next table is used to generate extra DeclareFontShape rules in + the .fd files to map missing slanted shapes to italic or vice versa. =end Comment @@ -154,6 +154,9 @@ my %FD_SSUB = ( The 'reqd' and 'nice' subtables for the TLF, LF, TOsF and OsF styles are empty; these are filled in at run time, depending on which figure style is default for the current font. + + The 'reqd' subtable for the Inf style is also empty; this may be filled + with either 'sinf' or 'subs' depending on the -inferiors options. Ornaments are treated as a separate 'figure style'. This may seem a bit weird, but that's the easiest way to handle them. @@ -194,7 +197,7 @@ my %STYLE = ( shapes => ['normal'], }, Inf => { - reqd => ['sinf'], + reqd => [], nice => [], extra => '--ligkern="* {KL} *"', shapes => ['normal'], @@ -369,9 +372,7 @@ sub main { [ $minsize, $maxsize, $item->{fontname} ]; } - if ($ARGV{verbose}) { - create_logfile(@worklist); - } + create_logfile(@worklist); if (!$ARGV{dryrun}) { # Create the LaTeX support files @@ -546,18 +547,16 @@ I'm using the following options: swash: @{[ $ARGV{swash} ? 'yes' : 'no' ]} titling: @{[ $ARGV{titling} ? 'yes' : 'no' ]} superiors: @{[ $ARGV{superiors} ? 'yes' : 'no' ]} - inferiors: @{[ $ARGV{inferiors} ? 'yes' : 'no' ]} + inferiors: $ARGV{inferiors} ornaments: @{[ $ARGV{ornaments} ? 'yes' : 'no' ]} fractions: @{[ $ARGV{fractions} ? 'yes' : 'no' ]} - verbosity level: $ARGV{verbose} - - dryrun: @{[ $ARGV{dryrun} ? 'true' : 'false' ]} - auto/manual: @{[ $ARGV{manual} ? 'manual' : 'auto' ]} + dry run/real: @{[ $ARGV{dryrun} ? 'dry run' : 'real' ]} + auto/manual: @{[ $ARGV{manual} ? 'manual' : 'auto' ]} target: $ARGV{target} extra: @{[ $ARGV{extra} || '' ]} - figurekern: @{[ $ARGV{figurekern} ? 'keep' : 'discard' ]} + figurekern: @{[ $ARGV{figurekern} ? 'no action' : 'remove' ]} font files: @@ -569,7 +568,7 @@ END_ARGUMENTS my @cmds; for my $item (@worklist) { if ($prevfn ne $item->{font}{filename}) { - push @cmds, "\n" . '*' x 76 . "\n"; + push @cmds, "\n" . '*' x 76; print {$LOG} <<"END_FONTINFO"; @@ -610,14 +609,8 @@ END_FONTINFO push @cmds, $item->{cmdline}; } - if ($ARGV{verbose} >= 2) { - print {$LOG} <<"END_COMMANDS"; - - @{[ join "\n\n ", @cmds ]} - -END_COMMANDS - } - + print {$LOG} join "\n\n", @cmds; + print {$LOG} "\n"; close $LOG; } @@ -640,7 +633,7 @@ sub make_commands { } else { if (grep { system $_ } @commands) { - warn "[WARNING] 'otftotfm' returned non-zero; something's wrong!"; + warn "[WARNING] 'otftotfm' returned non-zero; something's wrong!\n"; } } @@ -743,7 +736,7 @@ Possible options: -(no)swash Toggle creation of swash shape -(no)titling Toggle creation of titling shape -(no)superiors Toggle creation of fonts with superior characters - -(no)inferiors Toggle creation of fonts with inferior characters + -inferiors=[sinf|subs] Use this style for subscripts (see docs) -(no)ornaments Toggle creation of ornament fonts -(no)fractions Toggle creation of fonts with digits for fractions @@ -766,11 +759,7 @@ Possible options: -help Print this text and exit -doc Print the complete documentation and exit - -verbose Show info about which fonts are generated - (repeat for even more detailed info) - -logfile="LOGFILE" Print info to LOGFILE (default: autoinst.log) -dryrun Don't generate fonts, only log what would be done - (implies -verbose) font[s] The fonts (.otf or .ttf format) to install. @@ -789,7 +778,7 @@ END_USAGE swash => '1', # 0 = no, 1 = yes titling => '1', # 0 = no, 1 = yes superiors => '1', # 0 = no, 1 = yes - inferiors => '0', # 0 = no, 1 = yes + inferiors => '', # possible values: '', 'sinf', 'subs', 'dnom' ornaments => '1', # 0 = no, 1 = yes fractions => '0', # 0 = no, 1 = yes nfss => 'rm', @@ -802,7 +791,6 @@ END_USAGE updmap => '1', # 0 = no, 1 = yes manual => '0', # 0 = no, 1 = yes dryrun => '0', # 0 = no, 1 = yes - verbose => '0', # 0 = no, 1 = yes logfile => 'autoinst.log', figurekern => '1', # 0 = no, 1 = yes ); @@ -811,7 +799,7 @@ END_USAGE # Process command-line arguments #----------------------------------------------------------------------- sub parse_options { - $ARGV{cmdline} = "$0 " . join ' ', @ARGV; + $ARGV{cmdline} = join ' ', ($0, @ARGV); Getopt::Long::GetOptions( 'help|?' => sub { print $USAGE; exit; }, @@ -826,7 +814,7 @@ sub parse_options { 'swash!' => \$ARGV{swash}, 'titling!' => \$ARGV{titling}, 'superiors!' => \$ARGV{superiors}, - 'inferiors!' => \$ARGV{inferiors}, + 'inferiors=s' => \$ARGV{inferiors}, 'ornaments!' => \$ARGV{ornaments}, 'fractions!' => \$ARGV{fractions}, 'sanserif' => sub { $ARGV{nfss} = 'sf' }, @@ -843,8 +831,7 @@ sub parse_options { 'dryrun' => \$ARGV{dryrun}, 'manual' => \$ARGV{manual}, 'figurekern!' => \$ARGV{figurekern}, - 'verbose+' => \$ARGV{verbose}, - 'logfile=s' => \$ARGV{logfile}, + 'verbose+' => sub {}, ) or die "$USAGE"; @@ -855,9 +842,17 @@ sub parse_options { delete $SHAPE{titling} unless $ARGV{titling}; delete $STYLE{Sup} unless $ARGV{superiors}; - delete $STYLE{Inf} unless $ARGV{inferiors}; delete $STYLE{Orn} unless $ARGV{ornaments}; delete @STYLE{qw(Numr Dnom)} unless $ARGV{fractions}; + if ($ARGV{inferiors} eq 'sinf') { $STYLE{Inf}{reqd} = ['sinf'] } + elsif ($ARGV{inferiors} eq 'subs') { $STYLE{Inf}{reqd} = ['subs'] } + elsif ($ARGV{inferiors} eq 'dnom') { $STYLE{Inf}{reqd} = ['dnom'] } + else { + warn "[WARNING] unknown value -inferiors=$ARGV{inferiors} ignored!\n" + if $ARGV{inferiors}; + $ARGV{inferiors} = 'no'; + delete $STYLE{Inf} + } $ARGV{encoding} =~ s/\s+//xmsg; my @textencodings = grep { $_ ne 'TS1' } @@ -884,7 +879,7 @@ sub parse_options { delete @STYLE{qw(TLF TOsF)} unless $ARGV{tabular}; if ($ARGV{manual}) { - warn "[WARNING] option '--target' overridden by '--manual'!" + warn "[WARNING] option '-target' overridden by '-manual'!\n" if $ARGV{target}; $ARGV{target} = File::Spec->curdir(); } @@ -907,10 +902,6 @@ sub parse_options { $STYLE{TLF}{extra} = $tkern; $STYLE{TOsF}{extra} = $tkern; } - - if ($ARGV{dryrun} && $ARGV{verbose} == 0) { - $ARGV{verbose} = 1; - } } @@ -1546,7 +1537,7 @@ __END__ =head1 NAME autoinst - wrapper around the F, -for installing OpenType fonts in LaTeX. +for installing and using OpenType fonts in (La)TeX. =head1 SYNOPSIS @@ -1573,8 +1564,8 @@ B will create several LaTeX font families: =item - -Four text families (with lining and oldstyle digits, in both tabular -and proportional variants), each with the following shapes: +Four text families (with lining and oldstyle digits, each in both tabular +and proportional variants), all with the following shapes: =over 2 @@ -1610,7 +1601,8 @@ Italic and slanted small caps =item I -"Upright swash"; usually normal text with "oldstyle" ligatures such as ct, sp and st. +"Upright swash"; usually roman text with a few "oldstyle" ligatures +like ct, sp and st. =item I, I @@ -1622,12 +1614,12 @@ Italic and slanted titling text =item - -For each text family: a family of TS1-encoded symbol fonts, +For each T1-encoded text family: a family of TS1-encoded symbol fonts, in roman, italic and slanted shapes. =item - -Four families with superiors, inferiors, numerators and denominators, +Families with superiors, inferiors, numerators and denominators, in roman, italic and slanted shapes. =item - @@ -1640,8 +1632,8 @@ An ornament family, in roman, italic and slanted shapes. Of course, if the fonts don't contain italics, oldstyle digits, small caps etc., the corresponding shapes and families are not created. -Furthermore, the creation of most families and shapes can be controlled by -command-line options (see L below). +In addition, the creation of most families and shapes can be controlled +by options (see L below). These families use the I project's naming scheme: I<< - >>, where I<< >> is: @@ -1666,8 +1658,8 @@ tabular oldstyle figures =item I -superior characters (many fonts have only an incomplete set of superior -characters: digits, some punctuation and the letters I; +superior characters (note that most fonts have only an incomplete set of +superior characters: digits, some punctuation and the letters I; normal forms are used for other characters) =item I @@ -1692,17 +1684,17 @@ denominators The generated fonts are named I<< --- >>, where I<< >> is the same as above (but in lowercase), I<< >> is either empty, "sc", "swash" or "titling", -and I<< >> is the encoding. -A typical name in this scheme is "LinLibertineO-osf-sc-ly1". +and I<< >> is the encoding (also in lowercase). +A typical name in this scheme would be "FiraSans-Light-osf-sc-ly1". =head2 On the choice of text encoding By default, B generates text fonts with OT1, T1 and LY1 encodings, and the generated style files use LY1 as the default text encoding. -LY1 has been chosen over T1 because it has some empty slots to accomodate +LY1 has been chosen over T1 because it has some empty slots to accommodate the additional ligatures provided by many OpenType fonts. -Different encodings can be chosen using the I<-encoding> command-line option +Other encodings can be chosen using the I<-encoding> option (see L below). @@ -1711,7 +1703,7 @@ Different encodings can be chosen using the I<-encoding> command-line option B generates a style file for using the font in LaTeX documents, named F<< .sty >>. This style file also takes care of loading the F and F packages. -To use the font, simply put C<<< \usepackage{I<< >>} >>> +To use the font, put the command C<<< \usepackage{I<< >>} >>> in the preamble of your document. This style file defines a number of options: @@ -1726,33 +1718,35 @@ The defaults are "oldstyle" and "proportional" (if available). =item C<<< scale=I<< >> >>> Scale the font by a factor of I<< >>. -For example: to increase the size of the font by 5%, use +E.g., to increase the size of the font by 5%, use C<<< \usepackage[scale=1.05]{I<< >>} >>>. May also be spelled C. This option is only available when you have the F package installed. -=item C, C, C, C, C, - C, C, C, C +=item C, C, C -Choose the weight that LaTeX will use for the "bold" weight. +Select the weight that LaTeX will use as the "regular" weight; +the default is C. -=item C, C, C +=item C, C, C, C, C, + C, C, C, C -Choose the weight that LaTeX will use for the "regular" weight. +Select the weight that LaTeX will use as the "bold" weight; +the default is C. =back -These last two groups of options will only work if +The previous two groups of options will only work if you have the F package installed. The style file will also try to load the F package -(available on CTAN), -which gives easy access to various font shapes and styles. +(available on CTAN), which gives easy access to various font shapes and styles. Using the machinery set up by F, the generated style file defines a number of commands (which take the text to be typeset as argument) and declarations (which don't take arguments, but affect all text up to -the end of the current group) of its own: +the end of the current group) to access titling, superior and inferior +characters: DECLARATION COMMAND SHORT FORM OF COMMAND @@ -1764,7 +1758,7 @@ the end of the current group) of its own: In addition, the C<\swshape> and C<\textsw> commands are redefined to place swash on the secondary shape axis (F places it on the primary -shape axis); this makes these commands behave properly when nested, so that +shape axis) to make them behave properly when nested, so that C<\swshape\upshape> will give upright swash. There are no commands for accessing the numerator and denominator @@ -1786,27 +1780,26 @@ encoding vector, e.g. if your fonts use non-standard glyph names for ornaments. These commands are only generated for existing shapes and number styles; no commands are generated for shapes and styles that don't exist, -or whose generation has been turned off using command-line options. -Also: these commands are built on top of F; -if that package cannot be found, you're limited to using the -lower-level commands from standard NFSS (C<\fontfamily>, C<\fontseries>, -C<\fontshape> etc.). +or whose generation was turned off by the user. +Also these commands are built on top of F, so if that package +cannot be found, you're limited to using the lower-level commands from +standard NFSS (C<\fontfamily>, C<\fontseries>, C<\fontshape> etc.). =head2 Using multiple font families in one document Style files generated by versions of B older dan 2013-07-25 redefined C<\mddefault> and C<\bfdefault>, whereas newer style files -use the F package instead. +build on the facilities of the F package instead. If you use multiple B-generated font familes in the same document, -it is best if all style files are generated by the same version of +it might be best if all style files are generated by the same version of B; re-generate the older families if necessary. =head2 NFSS codes -NFSS identifies fonts by a combination of family, series (weight plus width), -shape and size. +NFSS identifies fonts by a combination of family, series +(the concatenation of weight and width), shape and size. B parses the output of C to determine these parameters. When this fails (e.g., because the font family contains uncommon widths or weights), @@ -1821,15 +1814,14 @@ this strategy is only used as a last resort.) If such a proliferation of font families is unwanted, either run B on a smaller set of fonts or add the missing widths, weights and shapes to the tables C<%FD_WIDTH>, -C<%FD_WEIGHT> and C<%FD_SHAPE>, at the top of the source code. +C<%FD_WEIGHT> and C<%FD_SHAPE>, at the beginning of the source code. Please also send a bug report (see L below). B maps widths, weights and shapes to NFSS codes using -the following tables. These are based as much as possible -on the standard I scheme and Philipp Lehman's -F, -but some changes were made to avoid name clashes in font families -with many widths and weights. +the following tables. These are based on the standard I scheme +and Philipp Lehman's F, but some changes were made +to avoid name clashes in font families with many different widths and weights, +such as Helvetica Neue. WEIGHT WIDTH @@ -1860,7 +1852,7 @@ with many widths and weights. Incline(d) sl [3] -=head3 Notes: +=head3 Notes =over 4 @@ -1875,7 +1867,7 @@ the first of these is mapped to "n", the second one to "it". =item [3] -New in release 2014-01-21; before that, slanted fonts were mapped to "it". +Since release 2014-01-21; before that, slanted shapes were mapped to "it". =back @@ -1883,7 +1875,7 @@ New in release 2014-01-21; before that, slanted fonts were mapped to "it". =head2 A note for MiKTeX users Automatically installing the fonts into a suitable TEXMF tree -(as B does by default) requires a TeX-installation that uses +(as B tries to do by default) requires a TeX-installation that uses the F library; with TeX distributions that implement their own directory searching (such as MiKTeX), B will complain that it cannot find the F program and install all generated files @@ -1895,41 +1887,41 @@ to their correct destinations by hand, or use the I<-target> option Also, some OpenType fonts may lead to F and F files that are too big for MiKTeX's F and F; the versions that come with W32TeX (F) -and TeXLive (F) don't have this problem. +and TeXLive (F) don't seem to have this problem. =head1 COMMAND-LINE OPTIONS B tries hard to do The Right Thing (TM) by default, so in many cases you won't need these options; -but most aspects of its operation can be changed if you want to. +but most aspects of its operation can be fine-tuned if you want to. You may use either one or two dashes before options, and option names may be shortened to a unique prefix (e.g., B<-encoding> may be abbreviated to B<-enc> or even B<-en>, -but B<-e> is ambiguous (B<-encoding>, B<-extra>). +but B<-e> is ambiguous (it may mean either B<-encoding> or B<-extra>)). =over 4 =item B<-dryrun> -Don't actually generate any fonts and files, only create a logfile -showing which fonts would be generated. -By default, this information is written to F; -use the B<-logfile> option to specify a different filename. +Don't actually do anything, only create the logfile F +showing which fonts would have been generated. =item B<-encoding>=I -Generate the specified encoding(s) for the text fonts. The default is "OT1,T1,LY1". -For each encoding, a file F<< .enc >> (I) +Generate the specified encoding(s) for the text fonts. The default is +"OT1,T1,LY1". +For each encoding, a file F<< .enc >> (in all I!) should be somewhere where F can find it. Suitable encoding files for OT1, T1/TS1 and LY1 come with B. (These files are called F etc. to avoid name clashes with other packages; the "fontools_" prefix may be omitted.) Multiple text encodings can be specified as a comma-separated list: -C<-encoding=OT1,T1>. The encodings are passed to F in the order -specified, so the last one will be the default text encoding. +C<-encoding=OT1,T1> (without spaces!). The generated style file passes these encodings +to F in the specified order, so the last one will become +the default text encoding for your documents. =item B<-ts1> / B<-nots1> @@ -1988,10 +1980,20 @@ Control the creation of titling fonts. The default is B<-titling>. Control the creation of fonts with superior characters. The default is B<-superiors>. -=item B<-inferiors> / B<-noinferiors> +=item B<-inferiors>=[ B | B | B ] + +The OpenType standard defines several kinds of digits that might be used +as inferiors or subscripts: "Scientific Inferiors" +(OpenType feature "sinf"), "Subscripts" ("subs") and "Denominators" ("dnom"). +This option allows the user to determine which of these styles B +should use for the inferior characters. The default is not to create fonts +with inferior characters. -Control the creation of fonts with inferior digits. -The default is B<-noinferiors>. +Note that many fonts contain only one (or even none) of these types +of inferior characters. If you specify a style of inferiors that isn't +actually present in the font, B silently falls back to its default +of not creating fonts with inferiors; it doesn't try to substitute one of +the other features. =item B<-fractions> / B<-nofractions> @@ -2002,17 +2004,6 @@ The default is B<-nofractions>. Control the creation of ornament fonts. The default is B<-ornaments>. -=item B<-verbose> - -Verbose mode; print detailed information about which fonts B -is generating. By default, this information is written to F; -a different filename can be specified using the B<-logfile> option. -Repeat this option for even more detailed information. - -=item B<-logfile>=I - -Write the logging information to F instead of F. - =item B<-defaultlining> / B<-defaultoldstyle> =item B<-defaulttabular> / B<-defaultproportional> @@ -2020,49 +2011,48 @@ Write the logging information to F instead of F. Tell B which figure style is the current font family's default (i.e., which figures you get when you don't specify any OpenType features). -I<< Don't use these options unless you are certain you need them! +I They are only needed for fonts that don't provide OpenType features for their default figure style; and even in that case, -the default values (B<-defaultlining> and B<-defaulttabular>) -are usually correct. >> +B's default values (B<-defaultlining> and B<-defaulttabular>) +are usually correct. -=item B<-figurekern> / B<-nofigurekern> +=item B<-nofigurekern> Some fonts provide kerning pairs for tabular figures. This is very probably not what you want (e.g., numbers in tables won't line up exactly). -The option B<-nofigurekern> adds extra I< --ligkern> options -to the commands for I to suppress such kerns -(but of course only for the families with tabular figures). -Since this leads to very long commands (one hundred such options in total!) -and the problem only occurs in very few fonts, -the default is B<-figurekern>. +This option adds extra I< --ligkern> options +to the commands for I to suppress such kerns. +Note that this option leads to very long commands (it adds +one hundred I< --ligkern> options), which may cause problems on some systems. =item B<-extra>=I -Add I to the command line to I. To prevent I from -accidentily being interpreted as options to B, it should be -properly quoted. +Append I as extra options to the command lines for I. +To prevent I from accidentily being interpreted as options to B, +it should be properly quoted. =item B<-manual> -Manual mode. By default, B executes all F +Manual mode. By default, B immediately executes all F commands it generates; with the B<-manual> option, these commands are instead written to a file F. -Also, the generated F commands specify the I< --pl> option +Furthermore it adds the I< --pl> option (which tells F to generate human readable/editable F and F files instead of the default F and F files) -and omit the I< --automatic> option (which causes F to +and omits the I< --automatic> option (which causes F to leave all generated files in the current directory, rather than install -them into your TEXMF tree). +them into your TEXMF tree). Manual mode is meant to enable tweaking +the generated commands and post-processing the generated files. -When using this option, you should run F and F after -executing all commands, -to convert the F and F files to F and F format. +When using this option, run F and F after executing +the commands (to convert the F and F files to F and F format) +and move all generated files to their proper destinations. =back -The following options are only meaningful in automatic mode, +All following options are only meaningful in automatic mode, and hence ignored in manual mode: =over 4 @@ -2100,18 +2090,18 @@ The default is B<-updmap>. Eddie Kohler's B (F). -B can be downloaded from F; it is -pre-installed on many Linux distributions. +B can be obtained from F; +it is a standard part of many Linux distributions. For Windows, try ActivePerl (F) or Strawberry Perl (F). -The B project (F) -offers very complete LaTeX support for Adobe's Minion Pro and Myriad Pro -(including math), and is currently working on Cronos Pro. - B (F) and B (F) -are TeX engines that can use fonts in many formats -(including both flavours of OpenType) without TeX-specific support files. +are Unicode-aware TeX engines that can use OpenType fonts directly, +without the need for any (La)TeX-specific support files. + +The B project (F) +offers very complete LaTeX support (including math) for Adobe's Minion Pro, +Myriad Pro and Cronos Pro font families. John Owens' B (available from CTAN) is another wrapper around F. @@ -2122,9 +2112,10 @@ around F. Marc Penninga When sending a bug report, please give as much relevant information as -possible; this includes at least (but may not be limited to) the output -from running B with the I<-verbose> option. -Please include all (if any) error messages as well. +possible; this includes at least (but may not be limited to) +the log file F. +If you see any error messages (either from B itself, from Perl or +from the OS), please include these I as well; don't paraphrase them. =head1 COPYRIGHT @@ -2153,13 +2144,27 @@ GNU General Public License for more details. =head1 RECENT CHANGES -(See the source code for the rest of the story.) +(See the source for the full story, all the way back to 2005.) =over 12 +=item I<2017-06-16> + +Changed the I<-inferiors> option from a binary yes-or-no choice to allow +the user to choose one of the "sinf", "subs" and "dnom" features. +B now always creates a log file. + =item I<2017-03-21> -Updated the F encoding file to include the Lslash and lslash glyphs (thanks to Bob Tennent). +Updated the F encoding file to include the "Lslash" +and "lslash" glyphs (thanks to Bob Tennent). + +=back + + +=begin Really_old_history + +=over 12 =item I<2015-11-22> @@ -2186,13 +2191,6 @@ Added the I<-lining>, I<-oldstyle>, I<-tabular> and I<-proportional> options; the old options with those names have been renamed to I<-defaultlining>, I<-defaultoldstyle> etc. -=back - - -=begin Really_old_history - -=over 12 - =item I<2013-10-31> The previous change required Perl v5.14 or newer; @@ -2368,8 +2366,8 @@ Also elaborated the documentation somewhat and fixed a small bug. =item I<2005-09-22> Added check to see if filename parsing succeeded; -updated the filename parsing code to cater for GaramondPremier, Silentium -and some non-Adobe fonts; +updated the filename parsing code to cater for GaramondPremier Pro, +Silentium Pro and some non-Adobe fonts; added the I<-sanserif> and I<-typewriter> options and hacked the style files to support using several different font families in one document. @@ -2383,7 +2381,7 @@ and improved the layout of the generated files. =item I<2005-08-11> -The generated commands weren't actually executed, only printed.... +The generated commands weren't actually executed, only printed... Also added a small hack to cater for fonts (such as some recent versions of MinionPro) that contain swash characters but don't provide a "swsh" feature. -- cgit v1.2.3