diff options
author | Karl Berry <karl@freefriends.org> | 2019-05-23 20:56:57 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-05-23 20:56:57 +0000 |
commit | 13c26861f5d3a197cd2593f569b4c0da5909a1af (patch) | |
tree | b32a4d1f074fe7b0e10da44df327daa23293129d | |
parent | 8677bbdef11fcc17cdbc065587f330cb86681493 (diff) |
fontools (23may19)
git-svn-id: svn://tug.org/texlive/trunk@51204 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-x | Build/source/texk/texlive/linked_scripts/fontools/afm2afm | 51 | ||||
-rwxr-xr-x | Build/source/texk/texlive/linked_scripts/fontools/autoinst | 119 | ||||
-rwxr-xr-x | Build/source/texk/texlive/linked_scripts/fontools/ot2kpx | 36 | ||||
-rw-r--r-- | Master/texmf-dist/doc/man/man1/afm2afm.1 | 29 | ||||
-rw-r--r-- | Master/texmf-dist/doc/man/man1/afm2afm.man1.pdf | bin | 27076 -> 26731 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/man/man1/autoinst.1 | 79 | ||||
-rw-r--r-- | Master/texmf-dist/doc/man/man1/autoinst.man1.pdf | bin | 68450 -> 67717 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/man/man1/ot2kpx.1 | 24 | ||||
-rw-r--r-- | Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf | bin | 27939 -> 27174 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/support/fontools/README | 24 | ||||
-rwxr-xr-x | Master/texmf-dist/scripts/fontools/afm2afm | 51 | ||||
-rwxr-xr-x | Master/texmf-dist/scripts/fontools/autoinst | 119 | ||||
-rwxr-xr-x | Master/texmf-dist/scripts/fontools/ot2kpx | 36 |
13 files changed, 361 insertions, 207 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/fontools/afm2afm b/Build/source/texk/texlive/linked_scripts/fontools/afm2afm index 997e195d7f4..d4b4980edec 100755 --- a/Build/source/texk/texlive/linked_scripts/fontools/afm2afm +++ b/Build/source/texk/texlive/linked_scripts/fontools/afm2afm @@ -4,7 +4,7 @@ ---------------------------------------------------------------------------- - Copyright (C) 2005-2013 Marc Penninga. + Copyright (C) 2005-2019 Marc Penninga. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -37,6 +37,8 @@ use File::Basename; use Getopt::Long; use Pod::Usage; +my $VERSION = "20190522"; + parse_commandline(); my $afm = read_afm($ARGV[0]); @@ -72,7 +74,8 @@ print_mapentry($afm->{fontinfo}, , $enc->{scheme}) #----------------------------------------------------------------------- sub parse_commandline { Getopt::Long::GetOptions( - 'help|?' => sub { pod2usage(-verbose => 1) }, + 'help|?' => sub { pod2usage(-verbose => 1) }, + 'version' => sub { print "$VERSION\n"; exit; }, 'encoding=s' => \$ARGV{encoding}, 'kpx=s' => \$ARGV{kpx}, 'output=s' => \$ARGV{output}, @@ -123,14 +126,14 @@ sub read_kpx { my ($filename, $kpx) = @_; open my $kpxfile, '<', $filename or die "[ERROR] can't open '$filename': $!"; - + my %seen = map { ($_ => 1) } @$kpx; for (<$kpxfile>) { if (m/\A\s* KPX \s/xms) { push @$kpx, $_ unless $seen{$_}++ } } - + close $kpxfile; - + return $kpx; } @@ -317,6 +320,7 @@ afm2afm - reencode an F<afm> file =item B<afm2afm> [B<-help>] +[B<-version>] [B<-encoding> I<encodingfile>] [B<-kpx> I<kpxfile>] [B<-output> I<outputfile>] @@ -334,8 +338,8 @@ chosen encoding are excluded from the output, which resuls in (potentially much) smaller files. Additional kerning pairs can be added to the output file. -If you don't specify an encoding file, -the F<afm> file isn't re-encoded; +If you don't specify an encoding file, +the F<afm> file isn't re-encoded; however, all unused (unencoded) data is still pruned. The program also generates an entry for a F<dvips>-style map file, @@ -352,6 +356,10 @@ the output was written to file Print a short description of the syntax +=item B<-version> + +Print version number and exit + =item B<-encoding> I<encodingfile> Re-encode to the enconding in I<encodingfile> @@ -359,14 +367,14 @@ Re-encode to the enconding in I<encodingfile> =item B<-kpx> I<kpxfile> Read additional kerning pairs from I<kpxfile> and add these to the output. -This option cannot be used to override values from the input F<afm> file, +This option cannot be used to override values from the input F<afm> file, since B<afm2afm> will write both old and new values to the output! The I<kpxfile> should contain kerning data in standard F<afm> format, i.e. for each kerning pair there should be a line KPX <left_glyph> <right_glyph> <amount> - + All other lines in the I<kpxfile> are ignored. =item B<-output> I<outputfile> @@ -390,7 +398,7 @@ Marc Penninga <marcpenninga@gmail.com> =head1 COPYRIGHT -Copyright (C) 2005-2013 Marc Penninga. +Copyright (C) 2005-2019 Marc Penninga. =head1 LICENSE @@ -411,12 +419,28 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +=head1 VERSION + +This document describes B<afm2afm> version 20190522. + + =head1 RECENT CHANGES (See the source code for the rest of the story.) =over 12 +=item I<2019-05-20> + +Added the I<-version> option. + +=back + + +=begin Really_old_history + +=over 12 + =item I<2013-08-07> Added the I<-kpx> command-line option. @@ -428,13 +452,6 @@ to avoid warnings about experimental features in Perl 5.18 and later. Refactored the code; added the "no re-encoding, only pruning" functionality. -=back - - -=begin Really_old_history - -=over 12 - =item I<2005-01-10> First version diff --git a/Build/source/texk/texlive/linked_scripts/fontools/autoinst b/Build/source/texk/texlive/linked_scripts/fontools/autoinst index d01043cc8ee..acface7bfed 100755 --- a/Build/source/texk/texlive/linked_scripts/fontools/autoinst +++ b/Build/source/texk/texlive/linked_scripts/fontools/autoinst @@ -40,6 +40,8 @@ use Getopt::Long (); use Pod::Usage (); use POSIX (); +my $VERSION = '20190522'; + my ($d, $m, $y) = (localtime time)[3 .. 5]; my $TODAY = sprintf "%04d/%02d/%02d", $y + 1900, $m + 1, $d; @@ -716,7 +718,7 @@ sub create_logfile { ############################################################################ -@{[ POSIX::strftime("[%F %T]", localtime time) ]} $0 +@{[ POSIX::strftime("[%F %T]", localtime time) ]} $0, version $VERSION "$ARGV{cmdline}" @@ -775,7 +777,7 @@ END_ARGUMENTS } printf {$LOG} "\n"; - return if $ARGV{verbose} < 1; + return if $ARGV{Verbose} < 1; my ($prevfn, $prevsty, $prevenc) = ('') x 3; my @cmds; @@ -818,7 +820,7 @@ END_FONTINFO push @cmds, $item->{cmdline}; } - return if $ARGV{verbose} < 2; + return if $ARGV{Verbose} < 2; print {$LOG} join "\n\n", @cmds; print {$LOG} "\n"; close $LOG; @@ -986,8 +988,9 @@ Possible options: -doc Print the complete documentation and exit -dryrun Don't generate fonts, only log what would be done -logfile="FILE" Write log data to "FILE" (default: <fontfamily>.log) - -verbose Print more data to log file + -Verbose Print more data to log file (repeat for even higher verbosity) + -version Print version number and exit font[s] The fonts (.otf or .ttf format) to install. Please report any bugs or suggestions to <marcpenninga@gmail.com>. @@ -1023,7 +1026,7 @@ END_USAGE figurekern => '1', # 0 = no, 1 = yes mergewidths => '1', # 0 = no, 1 = yes mergesmallcaps => '1', # 0 = no, 1 = yes - verbose => 0, + Verbose => 0, ); #----------------------------------------------------------------------- @@ -1034,7 +1037,8 @@ sub parse_options { Getopt::Long::GetOptions( 'help|?' => sub { print $USAGE; exit; }, - 'doc' => sub { Pod::Usage::pod2usage(-verbose => 2); }, + 'version' => sub { print "$VERSION\n"; exit; }, + 'doc' => sub { Pod::Usage::pod2usage(-Verbose => 2); }, 'encoding=s' => \$ARGV{encoding}, 'ts1!' => \$ARGV{textcomp}, 'lining!' => \$ARGV{lining}, @@ -1067,7 +1071,7 @@ sub parse_options { 'mergewidths!' => \$ARGV{mergewidths}, 'mergesmallcaps!' => \$ARGV{mergesmallcaps}, 'logfile=s' => \$ARGV{logfile}, - 'verbose+' => \$ARGV{verbose}, + 'Verbose+' => \$ARGV{Verbose}, 'nfssweight=s%' => sub { my ( $ignored, $key, $values ) = @_; my @values = split m/,/, lc $values; @@ -1670,6 +1674,12 @@ END_STY_XKEYVAL "\\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' @@ -1706,7 +1716,6 @@ END_STY_XKEYVAL \\renewcommand* {\\$ARGV{nfss}default} {$fam-\\$fam\@figurealign\\$fam\@figurestyle} -\\renewcommand*{\\familydefault}{\\$ARGV{nfss}default} \\endinput END_STYLE_REST @@ -1756,7 +1765,9 @@ sub write_fdfile { \\edef\\${fam}\@\@scale{s*[\\csname ${fam}\@scale\\endcsname]}% \\fi -\\DeclareFontFamily{${enc}}{${fam}-${sty}}{} +\\DeclareFontFamily{${enc}}{${fam}-${sty}}{@{[ + $ARGV{nfss} eq 'tt' ? '\hyphenchar\font=-1' : "" +]}} END_FD_HEADER @@ -2027,7 +2038,7 @@ but this choice can be overridden by the user; see the I<-logfile> command-line option in L</"COMMAND-LINE OPTIONS"> below. If this log file already exists, B<autoinst> will append its data to the end rather than overwrite it. -Use the I<-verbose> command-line option to ask for more detailed info. +Use the I<-Verbose> command-line option to ask for more detailed info. =head2 A note for MiKTeX users @@ -2075,6 +2086,15 @@ This style file defines a number of options: =over 4 +=item C<mainfont> + +Redefine C<\familydefault> to make this font the main font +for the document. +This is a no-op if the font is installed as a serif font; +but if the font is installed as a sanserif or typewriter font, +this option saves you from having to redefine C<\familydefault> +yourself. + =item C<lining>, C<oldstyle>, C<tabular>, C<proportional> Choose which figure style to use. @@ -2162,20 +2182,6 @@ Other encodings can be chosen using the I<-encoding> option =head2 NFSS codes -I<< B<CAVEAT>: this functionality was almost completely rewritten -in release 2019-03-14. -Older versions tried to map all fonts directly to short NFSS codes, -but often had to invent non-standard codes in order to deal with the -many different weights and widths that occur in the wild. -Such non-standard NFSS codes will no longer -work for fonts installed with newer versions; for those you'll have to either -use the long names or stick to the standard NFSS codes. -(This change mainly concerns very light or very heavy weights -and very condensed widths; -for more moderate weights and widths, -existing code will very probably continue to work.) ->> - LaTeX's New Font Selection System (NFSS) identifies fonts by a combination of family, series (the concatenation of weight and width), shape and size. @@ -2254,18 +2260,26 @@ but B<-e> is ambiguous (it may mean either B<-encoding> or B<-extra>)). =over 4 +=item B<-version> + +Print B<autoinst>'s version number and exit. + +=item B<-help> + +Print a (relatively) short help text and exit. + =item B<-dryrun> Don't generate output; just parse input fonts and write -a log file saying what it would have done. +a log file saying what B<autoinst> would have done. =item B<-logfile>=I<filename> Write log data to F<filename> instead of the default F<< <fontfamily>.log >>. -If the file already exist, B<autoinst> appends to it; +If the file already exists, B<autoinst> appends to it; it doesn't overwrite an existing file. -=item B<-verbose> +=item B<-Verbose> (I<note:> uppercase 'V'!) Add more details to the log file. Repeat this option for even more info. @@ -2290,13 +2304,19 @@ Control the creation of TS1-encoded fonts. The default is B<-ts1> if the text encodings (see I<-encoding> above) include T1, B<-nots1> otherwise. -=item B<-serif>, B<-sanserif>, B<-typewriter> +=item B<-serif> / B<-sanserif> / B<-typewriter> Install the font as a serif, sanserif or typewriter font, respectively. -This changes how you access the font in LaTeX: with C<\rmfamily>/C<\textrm>, -C<\sffamily>/C<\textsf> or C<\ttfamily>/C<\texttt>. -The generated style file redefines C<\familydefault>, -so including it will still make this font the default text font. +This changes how you access the font in LaTeX: +with C<\rmfamily>/C<\textrm>, C<\sffamily>/C<\textsf> +or C<\ttfamily>/C<\texttt>. + +Installing the font as a typewriter font will cause two further changes: +it will - by default - turn off the use of f-ligatures +(though this can be overridden with the I<-ligatures> option), +and it will disable hyphenation for this font. +This latter effect cannot be disabled in B<autoinst>; +if you want typewriter text to be hyphenated, use the F<hyphenat> package. =item B<-lining> / B<-nolining> @@ -2344,7 +2364,7 @@ as inferiors or subscripts: "Subscripts" (OpenType feature "subs"), This option allows the user to determine which of these styles B<autoinst> should use for the inferior characters. Alternatively, the value "auto" tells B<autoinst> to use the first value -in the list "subs", "sinf" or "dnom" that is supported by the fonts. +in "subs", "sinf" or "dnom" that is supported by the font. The default value is "none". I<< If you specify a style of inferiors that isn't present in the font, @@ -2508,7 +2528,7 @@ Marc Penninga (F<marcpenninga@gmail.com>) When sending a bug report, please give as much relevant information as possible; this usually includes (but may not be limited to) the log file -(please add the I<-verbose> command-line option, for extra info). +(please add the I<-Verbose> command-line option, for extra info). If you see any error messages, please include these I<verbatim>; don't paraphase. @@ -2536,6 +2556,10 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +=head1 VERSION + +This document describes B<autoinst> version 20190522. + =head1 RECENT CHANGES @@ -2543,6 +2567,13 @@ GNU General Public License for more details. =over 12 +=item I<2019-05-22> + +Added the I<mainfont> option to the generated F<sty> files. +Prevented hyphenation for typewriter fonts +(added C<\hyphenchar\font=-1> to the C<\DeclareFontFamily> declarations). +Added the I<-version> option, and renamed I<-verbose> to I<-Verbose>. + =item I<2019-05-17> Changed the way the F<-ligatures> option works: @@ -2594,8 +2625,6 @@ to tell B<autoinst> to use whatever inferior characters are available. =item I<2019-03-14> -(never released to CTAN) - Overhauled the mapping of fonts (more specifically of weights and widths; the mapping of shapes didn't change) to NFSS codes. Instead of inventing our own codes to deal with every possible weight @@ -2605,20 +2634,20 @@ Then we add "ssub" rules to the F<fd> files to map the standard NFSS codes to our fancy names (see the section B<NFSS codes>; based on discussions with Frank Mittelbach and Bob Tennent). -=item I<2018-08-10> +=back -Added encoding files for LGR and T2A/B/C to I<fontools>. -=item I<2018-03-26> +=begin Really_old_history -Added the I<-(no)mergewidths> option; tried to improve the documentation. +=over 12 -=back +=item I<2018-08-10> +Added encoding files for LGR and T2A/B/C to I<fontools>. -=begin Really_old_history +=item I<2018-03-26> -=over 12 +Added the I<-(no)mergewidths> option; tried to improve the documentation. =item I<2018-03-26> @@ -2803,7 +2832,7 @@ Tweaked the font info parsing to work around a bug in the naming of some FontFont fonts, where every font is in a family of its own. Added the "scaled" option (including the loading of F<xkeyval>) to the generated style file. -Extended the output of the I<-verbose> option. +Extended the output of the I<-Verbose> option. =item I<2007-02-08> @@ -2881,7 +2910,7 @@ changed the generated style file to include an interface for the ornaments and to load Lehman's NFSS extensions F<nfssext.sty> if this is installed; corrected the "fontname" codes for OT1, T1, LY1 and user-specific encodings; extended the output generated by -the I<-verbose> option; and rewrote and extended the documentation. +the I<-Verbose> option; and rewrote and extended the documentation. =item I<2005-06-16> diff --git a/Build/source/texk/texlive/linked_scripts/fontools/ot2kpx b/Build/source/texk/texlive/linked_scripts/fontools/ot2kpx index 8ce5d6a9aa7..e1548e8c9d1 100755 --- a/Build/source/texk/texlive/linked_scripts/fontools/ot2kpx +++ b/Build/source/texk/texlive/linked_scripts/fontools/ot2kpx @@ -38,6 +38,8 @@ use Getopt::Long (); use List::Util @List::Util::EXPORT_OK; use Pod::Usage; +my $VERSION = "20190522"; + our ($NUM_GLYPHS, $UNITS_PER_EM, %kern); sub main { @@ -47,6 +49,7 @@ sub main { Getopt::Long::GetOptions( 'help|?' => sub { pod2usage(-verbose => 0); }, + 'version' => sub { print "$VERSION\n"; exit; }, 'doc' => sub { pod2usage(-verbose => 2); }, 'afm' => sub { $ARGV{print_func} = \&print_kpx; }, 'kpx' => sub { $ARGV{print_func} = \&print_kpx; }, @@ -750,6 +753,14 @@ or as a Luatex custom feature, for use with the C<\directlua> command. =over 4 +=item B<-help> + +Print a short help text and exit. + +=item B<-version> + +Print B<ot2kpx>'s version and exit. + =item B<-afm>, B<-kpx> Output the kerning data in Adobe's KPX format, as used in F<afm> files. @@ -845,17 +856,33 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +=head1 VERSION + +This document describes B<ot2kpx> version 20190522. + + =head1 RECENT CHANGES (See the source code for the rest of the story.) =over 12 +=item I<2019-05-20> + +Added the I<-version> option. + =item I<2019-04-15> -Added the -lua command-line option to get output in Luatex's +Added the I<-lua> command-line option to get output in Luatex's custom feature format. +=back + + +=begin Really_old_history + +=over 12 + =item I<2013-08-07> Replaced all C<given/when> constructions in the source code by C<if>'s, @@ -866,13 +893,6 @@ to avoid warnings about experimental features in Perl 5.18 and later. Refactored the code, and fixed a number of bugs in the process. Updated the documentation. -=back - - -=begin Really_old_history - -=over 12 - =item I<2005-01-10> First version diff --git a/Master/texmf-dist/doc/man/man1/afm2afm.1 b/Master/texmf-dist/doc/man/man1/afm2afm.1 index 540dbeaa4d0..d8d2f760d71 100644 --- a/Master/texmf-dist/doc/man/man1/afm2afm.1 +++ b/Master/texmf-dist/doc/man/man1/afm2afm.1 @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "AFM2AFM 1" -.TH AFM2AFM 1 "2013-08-07" "fontools" "Marc Penninga" +.TH AFM2AFM 1 "2019-05-22" "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 @@ -145,6 +145,7 @@ afm2afm \- reencode an afm file .IP "\fBafm2afm\fR" 8 .IX Item "afm2afm" [\fB\-help\fR] +[\fB\-version\fR] [\fB\-encoding\fR \fIencodingfile\fR] [\fB\-kpx\fR \fIkpxfile\fR] [\fB\-output\fR \fIoutputfile\fR] @@ -158,8 +159,8 @@ chosen encoding are excluded from the output, which resuls in (potentially much) smaller files. .PP Additional kerning pairs can be added to the output file. -If you don't specify an encoding file, -the \fIafm\fR file isn't re-encoded; +If you don't specify an encoding file, +the \fIafm\fR file isn't re-encoded; however, all unused (unencoded) data is still pruned. .PP The program also generates an entry for a \fIdvips\fR\-style map file, @@ -171,13 +172,16 @@ the output was written to file .IP "\fB\-help\fR" 4 .IX Item "-help" Print a short description of the syntax +.IP "\fB\-version\fR" 4 +.IX Item "-version" +Print version number and exit .IP "\fB\-encoding\fR \fIencodingfile\fR" 4 .IX Item "-encoding encodingfile" Re-encode to the enconding in \fIencodingfile\fR .IP "\fB\-kpx\fR \fIkpxfile\fR" 4 .IX Item "-kpx kpxfile" Read additional kerning pairs from \fIkpxfile\fR and add these to the output. -This option cannot be used to override values from the input \fIafm\fR file, +This option cannot be used to override values from the input \fIafm\fR file, since \fBafm2afm\fR will write both old and new values to the output! .Sp The \fIkpxfile\fR should contain kerning data in standard \fIafm\fR format, @@ -202,7 +206,7 @@ and option names may be shortened to a unique prefix. Marc Penninga <marcpenninga@gmail.com> .SH "COPYRIGHT" .IX Header "COPYRIGHT" -Copyright (C) 2005\-2013 Marc Penninga. +Copyright (C) 2005\-2019 Marc Penninga. .SH "LICENSE" .IX Header "LICENSE" This program is free software; you can redistribute it and/or modify @@ -217,15 +221,12 @@ This program is distributed in the hope that it will be useful, but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of \&\s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0 See the \s-1GNU\s0 General Public License for more details. +.SH "VERSION" +.IX Header "VERSION" +This document describes \fBafm2afm\fR version 20190522. .SH "RECENT CHANGES" .IX Header "RECENT CHANGES" (See the source code for the rest of the story.) -.IP "\fI2013\-08\-07\fR" 12 -.IX Item "2013-08-07" -Added the \fI\-kpx\fR command-line option. -Replaced all \f(CW\*(C`given/when\*(C'\fR constructions in the source code by \f(CW\*(C`if\*(C'\fR's, -to avoid warnings about experimental features in Perl 5.18 and later. -.IP "\fI2012\-02\-01\fR" 12 -.IX Item "2012-02-01" -Refactored the code; added the \*(L"no re-encoding, only pruning\*(R" -functionality. +.IP "\fI2019\-05\-20\fR" 12 +.IX Item "2019-05-20" +Added the \fI\-version\fR option. diff --git a/Master/texmf-dist/doc/man/man1/afm2afm.man1.pdf b/Master/texmf-dist/doc/man/man1/afm2afm.man1.pdf Binary files differindex 219a4958b1f..3b9276bc2e8 100644 --- a/Master/texmf-dist/doc/man/man1/afm2afm.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/afm2afm.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/autoinst.1 b/Master/texmf-dist/doc/man/man1/autoinst.1 index db247f9d597..2ecb719256c 100644 --- a/Master/texmf-dist/doc/man/man1/autoinst.1 +++ b/Master/texmf-dist/doc/man/man1/autoinst.1 @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "AUTOINST 1" -.TH AUTOINST 1 "2019-05-17" "fontools" "Marc Penninga" +.TH AUTOINST 1 "2019-05-22" "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 @@ -258,7 +258,7 @@ but this choice can be overridden by the user; see the \fI\-logfile\fR command-line option in \*(L"COMMAND-LINE \s-1OPTIONS\*(R"\s0 below. If this log file already exists, \fBautoinst\fR will append its data to the end rather than overwrite it. -Use the \fI\-verbose\fR command-line option to ask for more detailed info. +Use the \fI\-Verbose\fR command-line option to ask for more detailed info. .SS "A note for MiKTeX users" .IX Subsection "A note for MiKTeX users" Automatically installing the fonts into a suitable \s-1TEXMF\s0 tree @@ -297,6 +297,15 @@ To use the fonts, add the command \f(CW\*(C`\eusepackage{\f(CI<FontFamily>\f(CW} to the preamble of your document. .PP This style file defines a number of options: +.ie n .IP """mainfont""" 4 +.el .IP "\f(CWmainfont\fR" 4 +.IX Item "mainfont" +Redefine \f(CW\*(C`\efamilydefault\*(C'\fR to make this font the main font +for the document. +This is a no-op if the font is installed as a serif font; +but if the font is installed as a sanserif or typewriter font, +this option saves you from having to redefine \f(CW\*(C`\efamilydefault\*(C'\fR +yourself. .ie n .IP """lining"", ""oldstyle"", ""tabular"", ""proportional""" 4 .el .IP "\f(CWlining\fR, \f(CWoldstyle\fR, \f(CWtabular\fR, \f(CWproportional\fR" 4 .IX Item "lining, oldstyle, tabular, proportional" @@ -379,19 +388,6 @@ Other encodings can be chosen using the \fI\-encoding\fR option (see \*(L"COMMAND-LINE \s-1OPTIONS\*(R"\s0 below). .SS "\s-1NFSS\s0 codes" .IX Subsection "NFSS codes" -\&\fI\f(BI\s-1CAVEAT\s0\fI: this functionality was almost completely rewritten -in release 2019\-03\-14. -Older versions tried to map all fonts directly to short \s-1NFSS\s0 codes, -but often had to invent non-standard codes in order to deal with the -many different weights and widths that occur in the wild. -Such non-standard \s-1NFSS\s0 codes will no longer -work for fonts installed with newer versions; for those you'll have to either -use the long names or stick to the standard \s-1NFSS\s0 codes. -(This change mainly concerns very light or very heavy weights -and very condensed widths; -for more moderate weights and widths, -existing code will very probably continue to work.)\fR -.PP LaTeX's New Font Selection System (\s-1NFSS\s0) identifies fonts by a combination of family, series (the concatenation of weight and width), shape and size. @@ -466,17 +462,23 @@ You may use either one or two dashes before options, and option names may be shortened to a unique prefix (e.g., \fB\-encoding\fR may be abbreviated to \fB\-enc\fR or even \fB\-en\fR, but \fB\-e\fR is ambiguous (it may mean either \fB\-encoding\fR or \fB\-extra\fR)). +.IP "\fB\-version\fR" 4 +.IX Item "-version" +Print \fBautoinst\fR's version number and exit. +.IP "\fB\-help\fR" 4 +.IX Item "-help" +Print a (relatively) short help text and exit. .IP "\fB\-dryrun\fR" 4 .IX Item "-dryrun" Don't generate output; just parse input fonts and write -a log file saying what it would have done. +a log file saying what \fBautoinst\fR would have done. .IP "\fB\-logfile\fR=\fIfilename\fR" 4 .IX Item "-logfile=filename" Write log data to \fIfilename\fR instead of the default \fI<fontfamily>.log\fR. -If the file already exist, \fBautoinst\fR appends to it; +If the file already exists, \fBautoinst\fR appends to it; it doesn't overwrite an existing file. -.IP "\fB\-verbose\fR" 4 -.IX Item "-verbose" +.IP "\fB\-Verbose\fR (\fInote:\fR uppercase 'V'!)" 4 +.IX Item "-Verbose (note: uppercase 'V'!)" Add more details to the log file. Repeat this option for even more info. .IP "\fB\-encoding\fR=\fIencoding[,encoding]\fR" 4 .IX Item "-encoding=encoding[,encoding]" @@ -497,13 +499,19 @@ the \*(L"fontools_\*(R" prefix may be omitted.) Control the creation of TS1\-encoded fonts. The default is \fB\-ts1\fR if the text encodings (see \fI\-encoding\fR above) include T1, \&\fB\-nots1\fR otherwise. -.IP "\fB\-serif\fR, \fB\-sanserif\fR, \fB\-typewriter\fR" 4 -.IX Item "-serif, -sanserif, -typewriter" +.IP "\fB\-serif\fR / \fB\-sanserif\fR / \fB\-typewriter\fR" 4 +.IX Item "-serif / -sanserif / -typewriter" Install the font as a serif, sanserif or typewriter font, respectively. -This changes how you access the font in LaTeX: with \f(CW\*(C`\ermfamily\*(C'\fR/\f(CW\*(C`\etextrm\*(C'\fR, -\&\f(CW\*(C`\esffamily\*(C'\fR/\f(CW\*(C`\etextsf\*(C'\fR or \f(CW\*(C`\ettfamily\*(C'\fR/\f(CW\*(C`\etexttt\*(C'\fR. -The generated style file redefines \f(CW\*(C`\efamilydefault\*(C'\fR, -so including it will still make this font the default text font. +This changes how you access the font in LaTeX: +with \f(CW\*(C`\ermfamily\*(C'\fR/\f(CW\*(C`\etextrm\*(C'\fR, \f(CW\*(C`\esffamily\*(C'\fR/\f(CW\*(C`\etextsf\*(C'\fR +or \f(CW\*(C`\ettfamily\*(C'\fR/\f(CW\*(C`\etexttt\*(C'\fR. +.Sp +Installing the font as a typewriter font will cause two further changes: +it will \- by default \- turn off the use of f\-ligatures +(though this can be overridden with the \fI\-ligatures\fR option), +and it will disable hyphenation for this font. +This latter effect cannot be disabled in \fBautoinst\fR; +if you want typewriter text to be hyphenated, use the \fIhyphenat\fR package. .IP "\fB\-lining\fR / \fB\-nolining\fR" 4 .IX Item "-lining / -nolining" Control the creation of fonts with lining figures. The default is @@ -542,7 +550,7 @@ as inferiors or subscripts: \*(L"Subscripts\*(R" (OpenType feature \*(L"subs\*(R This option allows the user to determine which of these styles \fBautoinst\fR should use for the inferior characters. Alternatively, the value \*(L"auto\*(R" tells \fBautoinst\fR to use the first value -in the list \*(L"subs\*(R", \*(L"sinf\*(R" or \*(L"dnom\*(R" that is supported by the fonts. +in \*(L"subs\*(R", \*(L"sinf\*(R" or \*(L"dnom\*(R" that is supported by the font. The default value is \*(L"none\*(R". .Sp \&\fIIf you specify a style of inferiors that isn't present in the font, @@ -692,7 +700,7 @@ Marc Penninga (\fImarcpenninga@gmail.com\fR) .PP When sending a bug report, please give as much relevant information as possible; this usually includes (but may not be limited to) the log file -(please add the \fI\-verbose\fR command-line option, for extra info). +(please add the \fI\-Verbose\fR command-line option, for extra info). If you see any error messages, please include these \fIverbatim\fR; don't paraphase. .SH "COPYRIGHT" @@ -712,9 +720,18 @@ This program is distributed in the hope that it will be useful, but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of \&\s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0 See the \&\s-1GNU\s0 General Public License for more details. +.SH "VERSION" +.IX Header "VERSION" +This document describes \fBautoinst\fR version 20190522. .SH "RECENT CHANGES" .IX Header "RECENT CHANGES" (See the source for the full story, all the way back to 2005.) +.IP "\fI2019\-05\-22\fR" 12 +.IX Item "2019-05-22" +Added the \fImainfont\fR option to the generated \fIsty\fR files. +Prevented hyphenation for typewriter fonts +(added \f(CW\*(C`\ehyphenchar\efont=\-1\*(C'\fR to the \f(CW\*(C`\eDeclareFontFamily\*(C'\fR declarations). +Added the \fI\-version\fR option, and renamed \fI\-verbose\fR to \fI\-Verbose\fR. .IP "\fI2019\-05\-17\fR" 12 .IX Item "2019-05-17" Changed the way the \fI\-ligatures\fR option works: @@ -759,8 +776,6 @@ Added \*(L"auto\*(R" value to the \fIinferiors\fR option, to tell \fBautoinst\fR to use whatever inferior characters are available. .IP "\fI2019\-03\-14\fR" 12 .IX Item "2019-03-14" -(never released to \s-1CTAN\s0) -.Sp Overhauled the mapping of fonts (more specifically of weights and widths; the mapping of shapes didn't change) to \s-1NFSS\s0 codes. Instead of inventing our own codes to deal with every possible weight @@ -769,9 +784,3 @@ in the font metadata. Then we add \*(L"ssub\*(R" rules to the \fIfd\fR files to map the standard \s-1NFSS\s0 codes to our fancy names (see the section \fB\s-1NFSS\s0 codes\fR; based on discussions with Frank Mittelbach and Bob Tennent). -.IP "\fI2018\-08\-10\fR" 12 -.IX Item "2018-08-10" -Added encoding files for \s-1LGR\s0 and T2A/B/C to \fIfontools\fR. -.IP "\fI2018\-03\-26\fR" 12 -.IX Item "2018-03-26" -Added the \fI\-(no)mergewidths\fR option; tried to improve the documentation. diff --git a/Master/texmf-dist/doc/man/man1/autoinst.man1.pdf b/Master/texmf-dist/doc/man/man1/autoinst.man1.pdf Binary files differindex 90e64fce89f..c76029fa682 100644 --- a/Master/texmf-dist/doc/man/man1/autoinst.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/autoinst.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/ot2kpx.1 b/Master/texmf-dist/doc/man/man1/ot2kpx.1 index 645fdf763c6..a7c582fff3e 100644 --- a/Master/texmf-dist/doc/man/man1/ot2kpx.1 +++ b/Master/texmf-dist/doc/man/man1/ot2kpx.1 @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "OT2KPX 1" -.TH OT2KPX 1 "2019-04-15" "fontools" "Marc Penninga" +.TH OT2KPX 1 "2019-05-22" "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 @@ -150,6 +150,12 @@ to \f(CW\*(C`stdout\*(C'\fR, either in Adobe's \s-1KPX\s0 format (for adding to or as a Luatex custom feature, for use with the \f(CW\*(C`\edirectlua\*(C'\fR command. .SH "OPTIONS AND ARGUMENTS" .IX Header "OPTIONS AND ARGUMENTS" +.IP "\fB\-help\fR" 4 +.IX Item "-help" +Print a short help text and exit. +.IP "\fB\-version\fR" 4 +.IX Item "-version" +Print \fBot2kpx\fR's version and exit. .IP "\fB\-afm\fR, \fB\-kpx\fR" 4 .IX Item "-afm, -kpx" Output the kerning data in Adobe's \s-1KPX\s0 format, as used in \fIafm\fR files. @@ -220,18 +226,16 @@ This program is distributed in the hope that it will be useful, but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of \&\s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0 See the \s-1GNU\s0 General Public License for more details. +.SH "VERSION" +.IX Header "VERSION" +This document describes \fBot2kpx\fR version 20190522. .SH "RECENT CHANGES" .IX Header "RECENT CHANGES" (See the source code for the rest of the story.) +.IP "\fI2019\-05\-20\fR" 12 +.IX Item "2019-05-20" +Added the \fI\-version\fR option. .IP "\fI2019\-04\-15\fR" 12 .IX Item "2019-04-15" -Added the \-lua command-line option to get output in Luatex's +Added the \fI\-lua\fR command-line option to get output in Luatex's custom feature format. -.IP "\fI2013\-08\-07\fR" 12 -.IX Item "2013-08-07" -Replaced all \f(CW\*(C`given/when\*(C'\fR constructions in the source code by \f(CW\*(C`if\*(C'\fR's, -to avoid warnings about experimental features in Perl 5.18 and later. -.IP "\fI2012\-02\-01\fR" 12 -.IX Item "2012-02-01" -Refactored the code, and fixed a number of bugs in the process. -Updated the documentation. diff --git a/Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf b/Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf Binary files differindex 94d5bf7ee29..77b7ef322df 100644 --- a/Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf diff --git a/Master/texmf-dist/doc/support/fontools/README b/Master/texmf-dist/doc/support/fontools/README index 93b11098eea..ebce4589825 100644 --- a/Master/texmf-dist/doc/support/fontools/README +++ b/Master/texmf-dist/doc/support/fontools/README @@ -48,8 +48,19 @@ Kpathsea Installation ------------ -The encoding files in the "share" directory should be moved -to a standard location where otftotfm can find them. +When installing manually, the encoding files in the "share/" directory +should be moved to a "standard" location where otftotfm can find them. +What this location is depends on your TeX installation; +in TeXLive, it should be $TEXMFLOCAL/fonts/enc/dvips/fontools/ or, +if you don't have write permissions in $TEXMFLOCAL, +$TEXMFHOME/fonts/enc/dvips/fontools/. + +The scripts in the "bin/" directory should be placed in a directory +on your PATH (or else you have to call them with their full path name). + +Of course, when using a package manager (such as tlmgr) to do +the installation, all files will automatically be put in the right +location. DISCLAIMER @@ -64,9 +75,6 @@ See the GNU General Public License for more details. LICENSE & COPYRIGHT =================== -This software is copyright (C) 2005-2019 Marc Penninga. It is released under -the terms of the GNU General Public Licence; see the file GPLv2.txt for -the license conditions. - - - Marc Penninga, 2019/05/17 +This software is copyright (C) 2005-2019 Marc Penninga. +It is released under the terms of the GNU General Public Licence; +see the file GPLv2.txt for the license conditions. diff --git a/Master/texmf-dist/scripts/fontools/afm2afm b/Master/texmf-dist/scripts/fontools/afm2afm index 997e195d7f4..d4b4980edec 100755 --- a/Master/texmf-dist/scripts/fontools/afm2afm +++ b/Master/texmf-dist/scripts/fontools/afm2afm @@ -4,7 +4,7 @@ ---------------------------------------------------------------------------- - Copyright (C) 2005-2013 Marc Penninga. + Copyright (C) 2005-2019 Marc Penninga. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -37,6 +37,8 @@ use File::Basename; use Getopt::Long; use Pod::Usage; +my $VERSION = "20190522"; + parse_commandline(); my $afm = read_afm($ARGV[0]); @@ -72,7 +74,8 @@ print_mapentry($afm->{fontinfo}, , $enc->{scheme}) #----------------------------------------------------------------------- sub parse_commandline { Getopt::Long::GetOptions( - 'help|?' => sub { pod2usage(-verbose => 1) }, + 'help|?' => sub { pod2usage(-verbose => 1) }, + 'version' => sub { print "$VERSION\n"; exit; }, 'encoding=s' => \$ARGV{encoding}, 'kpx=s' => \$ARGV{kpx}, 'output=s' => \$ARGV{output}, @@ -123,14 +126,14 @@ sub read_kpx { my ($filename, $kpx) = @_; open my $kpxfile, '<', $filename or die "[ERROR] can't open '$filename': $!"; - + my %seen = map { ($_ => 1) } @$kpx; for (<$kpxfile>) { if (m/\A\s* KPX \s/xms) { push @$kpx, $_ unless $seen{$_}++ } } - + close $kpxfile; - + return $kpx; } @@ -317,6 +320,7 @@ afm2afm - reencode an F<afm> file =item B<afm2afm> [B<-help>] +[B<-version>] [B<-encoding> I<encodingfile>] [B<-kpx> I<kpxfile>] [B<-output> I<outputfile>] @@ -334,8 +338,8 @@ chosen encoding are excluded from the output, which resuls in (potentially much) smaller files. Additional kerning pairs can be added to the output file. -If you don't specify an encoding file, -the F<afm> file isn't re-encoded; +If you don't specify an encoding file, +the F<afm> file isn't re-encoded; however, all unused (unencoded) data is still pruned. The program also generates an entry for a F<dvips>-style map file, @@ -352,6 +356,10 @@ the output was written to file Print a short description of the syntax +=item B<-version> + +Print version number and exit + =item B<-encoding> I<encodingfile> Re-encode to the enconding in I<encodingfile> @@ -359,14 +367,14 @@ Re-encode to the enconding in I<encodingfile> =item B<-kpx> I<kpxfile> Read additional kerning pairs from I<kpxfile> and add these to the output. -This option cannot be used to override values from the input F<afm> file, +This option cannot be used to override values from the input F<afm> file, since B<afm2afm> will write both old and new values to the output! The I<kpxfile> should contain kerning data in standard F<afm> format, i.e. for each kerning pair there should be a line KPX <left_glyph> <right_glyph> <amount> - + All other lines in the I<kpxfile> are ignored. =item B<-output> I<outputfile> @@ -390,7 +398,7 @@ Marc Penninga <marcpenninga@gmail.com> =head1 COPYRIGHT -Copyright (C) 2005-2013 Marc Penninga. +Copyright (C) 2005-2019 Marc Penninga. =head1 LICENSE @@ -411,12 +419,28 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +=head1 VERSION + +This document describes B<afm2afm> version 20190522. + + =head1 RECENT CHANGES (See the source code for the rest of the story.) =over 12 +=item I<2019-05-20> + +Added the I<-version> option. + +=back + + +=begin Really_old_history + +=over 12 + =item I<2013-08-07> Added the I<-kpx> command-line option. @@ -428,13 +452,6 @@ to avoid warnings about experimental features in Perl 5.18 and later. Refactored the code; added the "no re-encoding, only pruning" functionality. -=back - - -=begin Really_old_history - -=over 12 - =item I<2005-01-10> First version diff --git a/Master/texmf-dist/scripts/fontools/autoinst b/Master/texmf-dist/scripts/fontools/autoinst index d01043cc8ee..acface7bfed 100755 --- a/Master/texmf-dist/scripts/fontools/autoinst +++ b/Master/texmf-dist/scripts/fontools/autoinst @@ -40,6 +40,8 @@ use Getopt::Long (); use Pod::Usage (); use POSIX (); +my $VERSION = '20190522'; + my ($d, $m, $y) = (localtime time)[3 .. 5]; my $TODAY = sprintf "%04d/%02d/%02d", $y + 1900, $m + 1, $d; @@ -716,7 +718,7 @@ sub create_logfile { ############################################################################ -@{[ POSIX::strftime("[%F %T]", localtime time) ]} $0 +@{[ POSIX::strftime("[%F %T]", localtime time) ]} $0, version $VERSION "$ARGV{cmdline}" @@ -775,7 +777,7 @@ END_ARGUMENTS } printf {$LOG} "\n"; - return if $ARGV{verbose} < 1; + return if $ARGV{Verbose} < 1; my ($prevfn, $prevsty, $prevenc) = ('') x 3; my @cmds; @@ -818,7 +820,7 @@ END_FONTINFO push @cmds, $item->{cmdline}; } - return if $ARGV{verbose} < 2; + return if $ARGV{Verbose} < 2; print {$LOG} join "\n\n", @cmds; print {$LOG} "\n"; close $LOG; @@ -986,8 +988,9 @@ Possible options: -doc Print the complete documentation and exit -dryrun Don't generate fonts, only log what would be done -logfile="FILE" Write log data to "FILE" (default: <fontfamily>.log) - -verbose Print more data to log file + -Verbose Print more data to log file (repeat for even higher verbosity) + -version Print version number and exit font[s] The fonts (.otf or .ttf format) to install. Please report any bugs or suggestions to <marcpenninga@gmail.com>. @@ -1023,7 +1026,7 @@ END_USAGE figurekern => '1', # 0 = no, 1 = yes mergewidths => '1', # 0 = no, 1 = yes mergesmallcaps => '1', # 0 = no, 1 = yes - verbose => 0, + Verbose => 0, ); #----------------------------------------------------------------------- @@ -1034,7 +1037,8 @@ sub parse_options { Getopt::Long::GetOptions( 'help|?' => sub { print $USAGE; exit; }, - 'doc' => sub { Pod::Usage::pod2usage(-verbose => 2); }, + 'version' => sub { print "$VERSION\n"; exit; }, + 'doc' => sub { Pod::Usage::pod2usage(-Verbose => 2); }, 'encoding=s' => \$ARGV{encoding}, 'ts1!' => \$ARGV{textcomp}, 'lining!' => \$ARGV{lining}, @@ -1067,7 +1071,7 @@ sub parse_options { 'mergewidths!' => \$ARGV{mergewidths}, 'mergesmallcaps!' => \$ARGV{mergesmallcaps}, 'logfile=s' => \$ARGV{logfile}, - 'verbose+' => \$ARGV{verbose}, + 'Verbose+' => \$ARGV{Verbose}, 'nfssweight=s%' => sub { my ( $ignored, $key, $values ) = @_; my @values = split m/,/, lc $values; @@ -1670,6 +1674,12 @@ END_STY_XKEYVAL "\\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' @@ -1706,7 +1716,6 @@ END_STY_XKEYVAL \\renewcommand* {\\$ARGV{nfss}default} {$fam-\\$fam\@figurealign\\$fam\@figurestyle} -\\renewcommand*{\\familydefault}{\\$ARGV{nfss}default} \\endinput END_STYLE_REST @@ -1756,7 +1765,9 @@ sub write_fdfile { \\edef\\${fam}\@\@scale{s*[\\csname ${fam}\@scale\\endcsname]}% \\fi -\\DeclareFontFamily{${enc}}{${fam}-${sty}}{} +\\DeclareFontFamily{${enc}}{${fam}-${sty}}{@{[ + $ARGV{nfss} eq 'tt' ? '\hyphenchar\font=-1' : "" +]}} END_FD_HEADER @@ -2027,7 +2038,7 @@ but this choice can be overridden by the user; see the I<-logfile> command-line option in L</"COMMAND-LINE OPTIONS"> below. If this log file already exists, B<autoinst> will append its data to the end rather than overwrite it. -Use the I<-verbose> command-line option to ask for more detailed info. +Use the I<-Verbose> command-line option to ask for more detailed info. =head2 A note for MiKTeX users @@ -2075,6 +2086,15 @@ This style file defines a number of options: =over 4 +=item C<mainfont> + +Redefine C<\familydefault> to make this font the main font +for the document. +This is a no-op if the font is installed as a serif font; +but if the font is installed as a sanserif or typewriter font, +this option saves you from having to redefine C<\familydefault> +yourself. + =item C<lining>, C<oldstyle>, C<tabular>, C<proportional> Choose which figure style to use. @@ -2162,20 +2182,6 @@ Other encodings can be chosen using the I<-encoding> option =head2 NFSS codes -I<< B<CAVEAT>: this functionality was almost completely rewritten -in release 2019-03-14. -Older versions tried to map all fonts directly to short NFSS codes, -but often had to invent non-standard codes in order to deal with the -many different weights and widths that occur in the wild. -Such non-standard NFSS codes will no longer -work for fonts installed with newer versions; for those you'll have to either -use the long names or stick to the standard NFSS codes. -(This change mainly concerns very light or very heavy weights -and very condensed widths; -for more moderate weights and widths, -existing code will very probably continue to work.) ->> - LaTeX's New Font Selection System (NFSS) identifies fonts by a combination of family, series (the concatenation of weight and width), shape and size. @@ -2254,18 +2260,26 @@ but B<-e> is ambiguous (it may mean either B<-encoding> or B<-extra>)). =over 4 +=item B<-version> + +Print B<autoinst>'s version number and exit. + +=item B<-help> + +Print a (relatively) short help text and exit. + =item B<-dryrun> Don't generate output; just parse input fonts and write -a log file saying what it would have done. +a log file saying what B<autoinst> would have done. =item B<-logfile>=I<filename> Write log data to F<filename> instead of the default F<< <fontfamily>.log >>. -If the file already exist, B<autoinst> appends to it; +If the file already exists, B<autoinst> appends to it; it doesn't overwrite an existing file. -=item B<-verbose> +=item B<-Verbose> (I<note:> uppercase 'V'!) Add more details to the log file. Repeat this option for even more info. @@ -2290,13 +2304,19 @@ Control the creation of TS1-encoded fonts. The default is B<-ts1> if the text encodings (see I<-encoding> above) include T1, B<-nots1> otherwise. -=item B<-serif>, B<-sanserif>, B<-typewriter> +=item B<-serif> / B<-sanserif> / B<-typewriter> Install the font as a serif, sanserif or typewriter font, respectively. -This changes how you access the font in LaTeX: with C<\rmfamily>/C<\textrm>, -C<\sffamily>/C<\textsf> or C<\ttfamily>/C<\texttt>. -The generated style file redefines C<\familydefault>, -so including it will still make this font the default text font. +This changes how you access the font in LaTeX: +with C<\rmfamily>/C<\textrm>, C<\sffamily>/C<\textsf> +or C<\ttfamily>/C<\texttt>. + +Installing the font as a typewriter font will cause two further changes: +it will - by default - turn off the use of f-ligatures +(though this can be overridden with the I<-ligatures> option), +and it will disable hyphenation for this font. +This latter effect cannot be disabled in B<autoinst>; +if you want typewriter text to be hyphenated, use the F<hyphenat> package. =item B<-lining> / B<-nolining> @@ -2344,7 +2364,7 @@ as inferiors or subscripts: "Subscripts" (OpenType feature "subs"), This option allows the user to determine which of these styles B<autoinst> should use for the inferior characters. Alternatively, the value "auto" tells B<autoinst> to use the first value -in the list "subs", "sinf" or "dnom" that is supported by the fonts. +in "subs", "sinf" or "dnom" that is supported by the font. The default value is "none". I<< If you specify a style of inferiors that isn't present in the font, @@ -2508,7 +2528,7 @@ Marc Penninga (F<marcpenninga@gmail.com>) When sending a bug report, please give as much relevant information as possible; this usually includes (but may not be limited to) the log file -(please add the I<-verbose> command-line option, for extra info). +(please add the I<-Verbose> command-line option, for extra info). If you see any error messages, please include these I<verbatim>; don't paraphase. @@ -2536,6 +2556,10 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +=head1 VERSION + +This document describes B<autoinst> version 20190522. + =head1 RECENT CHANGES @@ -2543,6 +2567,13 @@ GNU General Public License for more details. =over 12 +=item I<2019-05-22> + +Added the I<mainfont> option to the generated F<sty> files. +Prevented hyphenation for typewriter fonts +(added C<\hyphenchar\font=-1> to the C<\DeclareFontFamily> declarations). +Added the I<-version> option, and renamed I<-verbose> to I<-Verbose>. + =item I<2019-05-17> Changed the way the F<-ligatures> option works: @@ -2594,8 +2625,6 @@ to tell B<autoinst> to use whatever inferior characters are available. =item I<2019-03-14> -(never released to CTAN) - Overhauled the mapping of fonts (more specifically of weights and widths; the mapping of shapes didn't change) to NFSS codes. Instead of inventing our own codes to deal with every possible weight @@ -2605,20 +2634,20 @@ Then we add "ssub" rules to the F<fd> files to map the standard NFSS codes to our fancy names (see the section B<NFSS codes>; based on discussions with Frank Mittelbach and Bob Tennent). -=item I<2018-08-10> +=back -Added encoding files for LGR and T2A/B/C to I<fontools>. -=item I<2018-03-26> +=begin Really_old_history -Added the I<-(no)mergewidths> option; tried to improve the documentation. +=over 12 -=back +=item I<2018-08-10> +Added encoding files for LGR and T2A/B/C to I<fontools>. -=begin Really_old_history +=item I<2018-03-26> -=over 12 +Added the I<-(no)mergewidths> option; tried to improve the documentation. =item I<2018-03-26> @@ -2803,7 +2832,7 @@ Tweaked the font info parsing to work around a bug in the naming of some FontFont fonts, where every font is in a family of its own. Added the "scaled" option (including the loading of F<xkeyval>) to the generated style file. -Extended the output of the I<-verbose> option. +Extended the output of the I<-Verbose> option. =item I<2007-02-08> @@ -2881,7 +2910,7 @@ changed the generated style file to include an interface for the ornaments and to load Lehman's NFSS extensions F<nfssext.sty> if this is installed; corrected the "fontname" codes for OT1, T1, LY1 and user-specific encodings; extended the output generated by -the I<-verbose> option; and rewrote and extended the documentation. +the I<-Verbose> option; and rewrote and extended the documentation. =item I<2005-06-16> diff --git a/Master/texmf-dist/scripts/fontools/ot2kpx b/Master/texmf-dist/scripts/fontools/ot2kpx index 8ce5d6a9aa7..e1548e8c9d1 100755 --- a/Master/texmf-dist/scripts/fontools/ot2kpx +++ b/Master/texmf-dist/scripts/fontools/ot2kpx @@ -38,6 +38,8 @@ use Getopt::Long (); use List::Util @List::Util::EXPORT_OK; use Pod::Usage; +my $VERSION = "20190522"; + our ($NUM_GLYPHS, $UNITS_PER_EM, %kern); sub main { @@ -47,6 +49,7 @@ sub main { Getopt::Long::GetOptions( 'help|?' => sub { pod2usage(-verbose => 0); }, + 'version' => sub { print "$VERSION\n"; exit; }, 'doc' => sub { pod2usage(-verbose => 2); }, 'afm' => sub { $ARGV{print_func} = \&print_kpx; }, 'kpx' => sub { $ARGV{print_func} = \&print_kpx; }, @@ -750,6 +753,14 @@ or as a Luatex custom feature, for use with the C<\directlua> command. =over 4 +=item B<-help> + +Print a short help text and exit. + +=item B<-version> + +Print B<ot2kpx>'s version and exit. + =item B<-afm>, B<-kpx> Output the kerning data in Adobe's KPX format, as used in F<afm> files. @@ -845,17 +856,33 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +=head1 VERSION + +This document describes B<ot2kpx> version 20190522. + + =head1 RECENT CHANGES (See the source code for the rest of the story.) =over 12 +=item I<2019-05-20> + +Added the I<-version> option. + =item I<2019-04-15> -Added the -lua command-line option to get output in Luatex's +Added the I<-lua> command-line option to get output in Luatex's custom feature format. +=back + + +=begin Really_old_history + +=over 12 + =item I<2013-08-07> Replaced all C<given/when> constructions in the source code by C<if>'s, @@ -866,13 +893,6 @@ to avoid warnings about experimental features in Perl 5.18 and later. Refactored the code, and fixed a number of bugs in the process. Updated the documentation. -=back - - -=begin Really_old_history - -=over 12 - =item I<2005-01-10> First version |