From 8d9586aea7fa63ea409c35c2e02189cef11893cb Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 1 Oct 2013 21:32:52 +0000 Subject: fontools (1oct13) git-svn-id: svn://tug.org/texlive/trunk@31808 c570f23f-e606-0410-a88d-b1316a301751 --- .../texk/texlive/linked_scripts/fontools/autoinst | 389 +++++++++++++-------- Master/texmf-dist/doc/man/man1/afm2afm.1 | 31 +- Master/texmf-dist/doc/man/man1/afm2afm.man1.pdf | Bin 7070 -> 7034 bytes Master/texmf-dist/doc/man/man1/autoinst.1 | 306 ++++++++-------- Master/texmf-dist/doc/man/man1/autoinst.man1.pdf | Bin 29895 -> 30383 bytes Master/texmf-dist/doc/man/man1/ot2kpx.1 | 35 +- Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf | Bin 7798 -> 7754 bytes Master/texmf-dist/doc/support/fontools/README | 2 +- Master/texmf-dist/scripts/fontools/autoinst | 389 +++++++++++++-------- 9 files changed, 661 insertions(+), 491 deletions(-) diff --git a/Build/source/texk/texlive/linked_scripts/fontools/autoinst b/Build/source/texk/texlive/linked_scripts/fontools/autoinst index f7cbf59792a..1bc8826e6f5 100755 --- a/Build/source/texk/texlive/linked_scripts/fontools/autoinst +++ b/Build/source/texk/texlive/linked_scripts/fontools/autoinst @@ -36,6 +36,7 @@ use warnings; use File::Path (); use File::Spec (); use Getopt::Long (); +use Pod::Usage (); my ($d, $m, $y) = (localtime time)[3 .. 5]; my $TODAY = sprintf "%04d/%02d/%02d", $y + 1900, $m + 1, $d; @@ -135,7 +136,6 @@ my %FD_SSUB = ( tlsl => 'tlit', ); - =begin Comment The %STYLE table is used in deciding which figure styles to generate. @@ -145,17 +145,20 @@ my %FD_SSUB = ( Each key in this table names a figure style; the corresponding value is an anonymous hash with four key/value pairs: reqd A list of required OpenType features; - this style is built if the font supports at least *one* - of these features. + this style is built if the font supports *all* these features. nice A list of optional OpenType features; these are used if the font supports them, but don't prevent this style from being built when missing. extra Extra options passed to otftotfm when creating this style. shape An anonymous array of 'variant' shapes to build with this figure style. + + 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. Ornaments are treated as a separate 'figure style'. - This may seem a bit weird, but is actually the easiest way to do it. + This may seem a bit weird, but that's the easiest way to handle them. =end Comment @@ -164,24 +167,24 @@ my %FD_SSUB = ( my %STYLE = ( TLF => { reqd => [], - nice => ['lnum', 'tnum'], + nice => [], extra => '', shapes => ['normal', 'smallcaps', 'swash', 'titling', 'textcomp'], }, LF => { - reqd => ['pnum'], - nice => ['lnum'], + reqd => [], + nice => [], extra => '', shapes => ['normal', 'smallcaps', 'swash', 'titling', 'textcomp'], }, TOsF => { - reqd => ['onum'], - nice => ['tnum'], + reqd => [], + nice => [], extra => '', shapes => ['normal', 'smallcaps', 'swash', 'textcomp'], }, OsF => { - reqd => ['onum', 'pnum'], + reqd => [], nice => [], extra => '', shapes => ['normal', 'smallcaps', 'swash', 'textcomp'], @@ -218,6 +221,53 @@ my %STYLE = ( }, ); +=begin Comment + + The %STYLE_DEFAULTS table is used to populate the 'reqd' and 'nice' + subtables of the %STYLE table, depending on the default figure style + for the current font. This is needed because some font families + provide only features for the non-default figure styles. + + We therefore make the OpenType features that correspond + to the default figure style 'nice' (optional), so that this figure style + is always generated, even without OpenType features in the font; + the other figure style are only generated when the corresponding + features are present in the font. + +=end Comment + +=cut + +my %STYLE_DEFAULTS = ( + lnum => + sub { + push $STYLE{TLF}{nice}, 'lnum'; + push $STYLE{LF}{nice}, 'lnum'; + push $STYLE{TOsF}{reqd}, 'onum'; + push $STYLE{OsF}{reqd}, 'onum'; + }, + onum => + sub { + push $STYLE{TLF}{reqd}, 'lnum'; + push $STYLE{LF}{reqd}, 'lnum'; + push $STYLE{TOsF}{nice}, 'onum'; + push $STYLE{OsF}{nice}, 'onum'; + }, + tnum => + sub { + push $STYLE{TLF}{nice}, 'tnum'; + push $STYLE{TOsF}{nice}, 'tnum'; + push $STYLE{LF}{reqd}, 'pnum'; + push $STYLE{OsF}{reqd}, 'pnum'; + }, + pnum => + sub { + push $STYLE{TLF}{reqd}, 'tnum'; + push $STYLE{TOsF}{reqd}, 'tnum'; + push $STYLE{LF}{nice}, 'pnum'; + push $STYLE{OsF}{nice}, 'pnum'; + }, +); =begin Comment @@ -252,14 +302,14 @@ my %STYLE = ( my %SHAPE = ( normal => { - code => {n => 'n', it => 'it'}, + code => { n => 'n', it => 'it' }, reqd => [], nice => ['kern', 'liga'], extra => '', name => '', }, smallcaps => { - code => {n => 'sc', it => 'scit'}, + code => { n => 'sc', it => 'scit' }, reqd => ['smcp'], nice => ['kern', 'liga'], extra => '--unicoding="germandbls =: SSsmall"', @@ -268,21 +318,21 @@ my %SHAPE = ( # '--feature=aalt' is in 'extra' instead of 'nice' because 'extra' # comes last in the command line and hence overrides earlier options swash => { - code => {n => 'nw', it => 'sw'}, + code => { n => 'nw', it => 'sw' }, reqd => ['swsh', 'dlig'], nice => ['kern', 'liga'], extra => '--include-alternates="*.swash" --feature=aalt', name => 'swash', }, titling => { - code => {n => 'tl', it => 'tlit'}, + code => { n => 'tl', it => 'tlit' }, reqd => ['titl', 'case', 'cpsp'], nice => ['kern', 'liga'], extra => '', name => 'titling', }, textcomp => { - code => {n => 'n', it => 'it'}, + code => { n => 'n', it => 'it' }, reqd => [], nice => ['onum'], extra => '', @@ -342,12 +392,25 @@ sub main { sub expand_styles { return map { my $font = $_; map { { font => $font, style => $_ } } - grep { has_reqd($font, $STYLE{$_}) } + grep { has_reqd_style($font, $STYLE{$_}) } keys %STYLE } @_; } +#----------------------------------------------------------------------- +# Check if $font has all features mentioned in the 'reqd' subtable of $target +#----------------------------------------------------------------------- +sub has_reqd_style { + my ($font, $target) = @_; + + return 0 unless defined $target; + for my $prereq (@{$target->{reqd}}) { + return 0 if !$font->{feature}{$prereq}; + } + return 1; +} + #----------------------------------------------------------------------- # Determine which shapes to create for each (font, style) combination; # return a list of (font, style, shape) tuples @@ -355,17 +418,17 @@ sub expand_styles { sub expand_shapes { return map { my ($font, $style) = @{$_}{qw(font style)}; map { { font => $font, style => $style, shape => $_ } } - grep { has_reqd($font, $SHAPE{$_}) } + grep { has_reqd_shape($font, $SHAPE{$_}) } @{$STYLE{$style}{shapes}}; } @_; } #----------------------------------------------------------------------- -# Check if $font has (at least one of the) features mentioned in the +# Check if $font has at least one of the features mentioned in the # 'reqd' subtable of $target #----------------------------------------------------------------------- -sub has_reqd { +sub has_reqd_shape { my ($font, $target) = @_; return 0 unless defined $target; @@ -564,6 +627,10 @@ Possible options: -sanserif Install font as sanserif font -typewriter Install font as typewriter font + + -lining/-oldstyle Specify which figure style should be + -tabular/-proportional considered 'default' for this font (see docs) + -extra="TEXT" Add TEXT to the command for 'otftotfm' -target="DIRECTORY" Install files into specified TEXMF tree -vendor="VENDOR" Only used for naming directories @@ -573,10 +640,11 @@ Possible options: -(no)figurekern Keep or remove kerns between tabular figures - -help Print this text - -verbose Make some noise + -help Print this text and exit + -doc Print the complete documentation and exit + -verbose Show detailed info about progress - font[s] The fonts (either .otf or .ttf) to install. + font[s] The fonts (.otf or .ttf format) to install. Please report any bugs or suggestions to . END_USAGE @@ -593,6 +661,8 @@ END_USAGE ornaments => '1', # 0 = no, 1 = yes fractions => '0', # 0 = no, 1 = yes nfss => 'rm', + fig_height => 'lnum', + fig_width => 'tnum', extra => '', target => '', vendor => 'lcdftools', @@ -610,26 +680,31 @@ sub parse_options { my $cmdline = "$0 " . join ' ', @ARGV; Getopt::Long::GetOptions( - 'help|?' => sub { print $USAGE; exit; }, - 'encoding=s' => \$ARGV{encoding}, - 'ts1!' => \$ARGV{textcomp}, - 'smallcaps!' => \$ARGV{smallcaps}, - 'swash!' => \$ARGV{swash}, - 'titling!' => \$ARGV{titling}, - 'superiors!' => \$ARGV{superiors}, - 'inferiors!' => \$ARGV{inferiors}, - 'ornaments!' => \$ARGV{ornaments}, - 'fractions!' => \$ARGV{fractions}, - 'sanserif' => sub { $ARGV{nfss} = 'sf' }, - 'typewriter' => sub { $ARGV{nfss} = 'tt' }, - 'extra=s' => \$ARGV{extra}, - 'target=s' => \$ARGV{target}, - 'vendor=s' => \$ARGV{vendor}, - 'typeface=s' => \$ARGV{typeface}, - 'updmap!' => \$ARGV{updmap}, - 'manual' => \$ARGV{manual}, - 'figurekern!' => \$ARGV{figurekern}, - 'verbose' => \$ARGV{verbose}, + 'help|?' => sub { print $USAGE; exit; }, + 'doc' => sub { Pod::Usage::pod2usage(-verbose => 2); }, + 'encoding=s' => \$ARGV{encoding}, + 'ts1!' => \$ARGV{textcomp}, + 'smallcaps!' => \$ARGV{smallcaps}, + 'swash!' => \$ARGV{swash}, + 'titling!' => \$ARGV{titling}, + 'superiors!' => \$ARGV{superiors}, + 'inferiors!' => \$ARGV{inferiors}, + 'ornaments!' => \$ARGV{ornaments}, + 'fractions!' => \$ARGV{fractions}, + 'sanserif' => sub { $ARGV{nfss} = 'sf' }, + 'typewriter' => sub { $ARGV{nfss} = 'tt' }, + 'lining' => sub { $ARGV{fig_height} = 'lnum' }, + 'oldstyle' => sub { $ARGV{fig_height} = 'onum' }, + 'tabular' => sub { $ARGV{fig_width} = 'tnum' }, + 'proportional' => sub { $ARGV{fig_width} = 'pnum' }, + 'extra=s' => \$ARGV{extra}, + 'target=s' => \$ARGV{target}, + 'vendor=s' => \$ARGV{vendor}, + 'typeface=s' => \$ARGV{typeface}, + 'updmap!' => \$ARGV{updmap}, + 'manual' => \$ARGV{manual}, + 'figurekern!' => \$ARGV{figurekern}, + 'verbose' => \$ARGV{verbose}, ) or die "$USAGE"; @@ -659,6 +734,10 @@ sub parse_options { delete $SHAPE{textcomp}; } + # Fix the %STYLE table to take 'default' figure styles into account. + $STYLE_DEFAULTS{$ARGV{fig_height}}(); + $STYLE_DEFAULTS{$ARGV{fig_width}}(); + if ($ARGV{manual}) { warn "[WARNING] option '--target' overridden by '--manual'!" if $ARGV{target}; @@ -709,6 +788,9 @@ I'm using the following options: (no)fractions: @{[ $ARGV{fractions} ? 'fractions' : 'nofractions' ]} verbosity: @{[ $ARGV{verbose} ? 'verbose' : 'quiet' ]} + + lining/oldstyle: @{[ $ARGV{fig_height} == 'lnum' ? 'lining' : 'oldstyle' ]} + tabular/prop.: @{[ $ARGV{fig_width} == 'tnum' ? 'tabular' : 'proportional' ]} target: $ARGV{target} auto/manual: @{[ $ARGV{manual} ? 'manual' : 'automatic' ]} @@ -962,8 +1044,8 @@ sub assert_unique { } } - # If the font infos aren't unique, append 'Subfamily' to 'Family' - # and try again + # If the font infos aren't unique, + # append 'Subfamily' to 'Family' and try again if ($err_details) { if ($attempt == 1) { $err_details =~ s/\[ERROR\]/[WARNING]/xmsg; @@ -1351,15 +1433,15 @@ B [I] B =head1 DESCRIPTION -Eddie Kohler's F are superb tools for installing -OpenType fonts in LaTeX, but their use (even in automatic mode) -is complicated: they need many, often long, commands +Eddie Kohler's I are superb tools for installing +OpenType fonts in LaTeX, but they can be hard to use: +they need many, often long, command lines and don't generate the F and F files LaTeX needs. -B simplifies the use of the F for font installation -by automatically generating and executing all commands -and by creating and installing all F and F files. +B simplifies the use of the I for font installation +by generating and executing all commands for I +and by creating and installing all necessary F and F files. -Given a family of font files (in either F or F format), +Given a family of font files (in F or F format), B will create several LaTeX font families: =over 2 @@ -1379,34 +1461,34 @@ and proportional variants), each with the following shapes: Roman text +=item I + +Italic (or oblique) text + =item I Small caps -=item I +=item I -"Upright swash"; usually normal text with some "oldstyle" ligatures, -such as ct, sp and st. +Swash =item I Titling shape. Meant for all-caps text only (even though it sometimes contains lowercase glyphs as well), where letterspacing and the positioning of punctuation characters have been adjusted to suit all-caps text. -This shape is generated only for the families with lining digits, -since old-style digits make no sense with all-caps text. - -=item I - -Italic (or oblique) text +(This shape is only generated for the families with lining digits, +since old-style digits make no sense with all-caps text.) =item I Italic small caps -=item I +=item I -Swash +"Upright swash"; usually normal text with some "oldstyle" ligatures, +such as ct, sp and st. =item I @@ -1439,8 +1521,8 @@ 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). -The generated font families are named I<< - >>, -where I<< >> is one of +These families use the I project's naming scheme: +I<< - >>, where I<< >> is: =over 8 @@ -1464,12 +1546,12 @@ tabular oldstyle figures superior characters (many fonts have only an incomplete set of superior characters: digits, some punctuation and the letters I; -normal forms will then be used for the other characters) +normal forms are used for other characters) =item I -inferior characters; usually only digits and punctuation, -normal forms for the other characters +inferior characters; usually only digits and some punctuation, +normal forms for other characters =item I @@ -1489,7 +1571,7 @@ 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 would be "MinionPro-Regular-osf-sc-ly1". +A typical name in this scheme is "LinLibertineO-osf-sc-ly1". =head2 On the choice of text encoding @@ -1497,8 +1579,8 @@ A typical name in this scheme would be "MinionPro-Regular-osf-sc-ly1". 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 -the additional ligatures and alternate glyphs provided by many OpenType fonts. -Encodings can be chosen using the I<-encoding> command-line option +the additional ligatures provided by many OpenType fonts. +Different encodings can be chosen using the I<-encoding> command-line option (see L below). @@ -1506,7 +1588,7 @@ 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, if necessary. +F and F packages. To use the font, simply put C<<< \usepackage{I<< >>} >>> in the preamble of your document. @@ -1514,28 +1596,26 @@ This style file defines a number of options: =over 4 -=item I +=item C, C, C, C -Choose which digit style to use. +Choose which figure style to use. The defaults are "oldstyle" and "proportional" (if available). -=item I<< scale= >> - -=item I<< scaled= >> +=item C<<< scale=I<< >> >>> -Scale the font by a factor of I<< >>. -For example: to increase the size of the font by 5%, use the command -C<<< \usepackage[scaled=1.05]{I<< >>} >>>. +Scale the font by a factor of I<< >>. +For example: 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 the F package is found -in your TeX installation. +This option is only available when you have the F package installed. -=item I +=item C, C, C, C, C, + C, C, C, C Choose the weight that LaTeX will use for the "bold" weight. -=item I +=item C, C, C Choose the weight that LaTeX will use for the "regular" weight. @@ -1544,11 +1624,10 @@ Choose the weight that LaTeX will use for the "regular" weight. These last 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, +The style file will also try to load the F package +(available on CTAN), which gives easy access to various font shapes and styles. -It is available from CTAN -(F). -Using the machinery set up by F, the generated style file also +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: @@ -1609,9 +1688,9 @@ 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), -B would end up with different fonts having the I values +B ends up with different fonts having the I values for these font parameters, which means that these fonts cannot be used in NFSS. -In this case, B will split the font family into multiple subfamilies +In that case, B will split the font family into multiple subfamilies (based on each font file's "Subfamily" value) and try again. (Since many font vendors misunderstand the "Subfamily" concept and make each font file its own separate subfamily, @@ -1620,14 +1699,15 @@ 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>, near the top of the source code. +C<%FD_WEIGHT> and C<%FD_SHAPE>, at the top 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 had to be made to avoid -name clashes in font families with many widths or weights. +F, +but some changes were made to avoid name clashes in font families +with many widths and weights. WEIGHT WIDTH @@ -1700,6 +1780,10 @@ and TeXLive (F) don't 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 many aspects of its operation can be changed 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>, @@ -1709,96 +1793,84 @@ but B<-e> is ambiguous (B<-encoding>, B<-extra>). =item B<-encoding>=I -Use the specified encodings for the text fonts. The default is "OT1,T1,LY1". -For each encoding, a file F<< .enc >> (in all I) +Generate the specified encoding(s) for the text fonts. The default is "OT1,T1,LY1". +For each encoding, a file F<< .enc >> (I) should be somewhere where F can find it. Suitable encoding files -for OT1, T1/TS1 and LY1 come with B. (Note that these files are +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 doesn't need to be specified.) +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. +=item B<-ts1> / B<-nots1> + +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<-sanserif> Install the font as a sanserif font, accessed via C<\sffamily> and C<\textsf>. -Note that the generated style file redefines C<\familydefault>, +The generated style file redefines C<\familydefault>, so including it will still make this font the default text font. =item B<-typewriter> Install the font as a typewriter font, accessed via C<\ttfamily> and C<\texttt>. -Note that the generated style file redefines C<\familydefault>, +The generated style file redefines C<\familydefault>, so including it will still make this font the default text font. -=item B<-ts1> +=item B<-lining> / B<-oldstyle> -=item B<-nots1> - -Turn the creation of TS1-encoded fonts on or off. The default is B<-ts1> -if the text encodings (see I<-encoding> above) include T1, -B<-nots1> otherwise. +=item B<-tabular> / B<-proportional> -=item B<-smallcaps> +Tell B which figure style is the current font family's default +(i.e., which figures you get when you don't specify anything). +I +Even in that case, the default values (B<-lining> and B<-tabular>) are usually +correct. -=item B<-nosmallcaps> +=item B<-smallcaps> / B<-nosmallcaps> -Turn the creation of small caps fonts on or off. The default is +Control the creation of small caps fonts. The default is B<-smallcaps>. -=item B<-swash> - -=item B<-noswash> - -Turn the creation of swash fonts on or off. The default is B<-swash>. +=item B<-swash> / B<-noswash> -=item B<-titling> +Control the creation of swash fonts. The default is B<-swash>. -=item B<-notitling> +=item B<-titling> / B<-notitling> -Turn the creation of titling fonts on or off. The default is B<-titling>. +Control the creation of titling fonts. The default is B<-titling>. -=item B<-superiors> +=item B<-superiors> / B<-nosuperiors> -=item B<-nosuperiors> - -Turn the creation of fonts with superior characters on or off. +Control the creation of fonts with superior characters. The default is B<-superiors>. -=item B<-inferiors> - -=item B<-noinferiors> +=item B<-inferiors> / B<-noinferiors> -Turn the creation of fonts with inferior digits on or off. +Control the creation of fonts with inferior digits. The default is B<-noinferiors>. -=item B<-fractions> +=item B<-fractions> / B<-nofractions> -=item B<-nofractions> - -Turn the creation of fonts with numerators and denominators on or off. +Control the creation of fonts with numerators and denominators. The default is B<-nofractions>. -=item B<-ornaments> - -=item B<-noornaments> +=item B<-ornaments> / B<-noornaments> -Turn the creation of ornament fonts on or off. The default is B<-ornaments>. +Control the creation of ornament fonts. The default is B<-ornaments>. =item B<-verbose> Verbose mode; print detailed info about what B thinks it's doing. -=item B<-extra>=I - -Pass I as options to I. To prevent I from accidentily -being interpreted as options to B, it should be properly quoted. - -=item B<-figurekern> - -=item B<-nofigurekern> +=item B<-figurekern> / B<-nofigurekern> Some fonts provide kerning pairs for tabular figures. This is very probably not what you want @@ -1810,15 +1882,21 @@ 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>. +=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. + =item B<-manual> Manual mode. By default, B 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 -(which tells F to generate readable/editable F and F files -instead of the default F and F files) -and leave out the I< --automatic> option (which tells F to +(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 leave all generated files in the current directory, rather than install them into your TEXMF tree). @@ -1851,12 +1929,10 @@ options: they change the "vendor" and "typeface" parts of the names of the subdirectories in the TEXMF tree where generated files will be stored. The default values are "lcdftools" and the font's FontFamily name. -Please note that these options change I directory names, +Note that these options change I directory names, not the names of any generated files. -=item B<-updmap> - -=item B<-noupdmap> +=item B<-updmap> / B<-noupdmap> Control whether or not F is called after the last call to F. The default is B<-updmap>. @@ -1868,19 +1944,19 @@ The default is B<-updmap>. Eddie Kohler's B (F). -B can be downloaded from F; it is often -already installed on many Linux distros. +B can be downloaded from F; it is +pre-installed on many Linux distributions. For Windows, try ActivePerl (F) or Strawberry Perl (F). -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. - 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 as well. +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. + John Owens' B (available from CTAN) is another wrapper around F. @@ -1892,7 +1968,7 @@ 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 make sure that this output includes all (if any) error messages. +Please include all (if any) error messages as well. =head1 COPYRIGHT @@ -1925,6 +2001,11 @@ GNU General Public License for more details. =over 12 +=item I<2013-10-01> + +Added the I<-lining>, I<-oldstyle>, I<-tabular> and I<-proportional> +command line options. + =item I<2013-07-25> The generated F files now use the I package instead of diff --git a/Master/texmf-dist/doc/man/man1/afm2afm.1 b/Master/texmf-dist/doc/man/man1/afm2afm.1 index c434e40beb3..7c9295c4898 100644 --- a/Master/texmf-dist/doc/man/man1/afm2afm.1 +++ b/Master/texmf-dist/doc/man/man1/afm2afm.1 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.20) +.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== @@ -38,6 +38,8 @@ . ds PI \(*p . ds L" `` . ds R" '' +. ds C` +. ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. @@ -48,17 +50,24 @@ .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. -.ie \nF \{\ -. de IX -. tm Index:\\$1\t\\n%\t"\\$2" +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX .. -. nr % 0 -. rr F -.\} -.el \{\ -. de IX +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{ +. if \nF \{ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" .. +. if !\nF==2 \{ +. nr % 0 +. nr F 2 +. \} +. \} .\} +.rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. @@ -205,8 +214,8 @@ see the file \fIGPLv2.txt\fR. .SH "DISCLAIMER" .IX Header "DISCLAIMER" This program is distributed in the hope that it will be useful, -but \s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of -\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. +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 "RECENT CHANGES" .IX Header "RECENT CHANGES" diff --git a/Master/texmf-dist/doc/man/man1/afm2afm.man1.pdf b/Master/texmf-dist/doc/man/man1/afm2afm.man1.pdf index 8c8501ab793..48eb67dfdb5 100644 Binary files a/Master/texmf-dist/doc/man/man1/afm2afm.man1.pdf and b/Master/texmf-dist/doc/man/man1/afm2afm.man1.pdf differ diff --git a/Master/texmf-dist/doc/man/man1/autoinst.1 b/Master/texmf-dist/doc/man/man1/autoinst.1 index 74faf19e2ff..a3062269cd7 100644 --- a/Master/texmf-dist/doc/man/man1/autoinst.1 +++ b/Master/texmf-dist/doc/man/man1/autoinst.1 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.20) +.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== @@ -38,6 +38,8 @@ . ds PI \(*p . ds L" `` . ds R" '' +. ds C` +. ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. @@ -48,17 +50,24 @@ .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. -.ie \nF \{\ -. de IX -. tm Index:\\$1\t\\n%\t"\\$2" +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX .. -. nr % 0 -. rr F -.\} -.el \{\ -. de IX +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{ +. if \nF \{ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" .. +. if !\nF==2 \{ +. nr % 0 +. nr F 2 +. \} +. \} .\} +.rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. @@ -124,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "AUTOINST 1" -.TH AUTOINST 1 "2013-07-25" "fontools" "Marc Penninga" +.TH AUTOINST 1 "2013-10-01" "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 @@ -138,14 +147,14 @@ for installing OpenType fonts in LaTeX. .SH "DESCRIPTION" .IX Header "DESCRIPTION" Eddie Kohler's \fI\s-1LCDF\s0 TypeTools\fR are superb tools for installing -OpenType fonts in LaTeX, but their use (even in automatic mode) -is complicated: they need many, often long, commands +OpenType fonts in LaTeX, but they can be hard to use: +they need many, often long, command lines and don't generate the \fIfd\fR and \fIsty\fR files LaTeX needs. \&\fBautoinst\fR simplifies the use of the \fITypeTools\fR for font installation -by automatically generating and executing all commands -and by creating and installing all \fIfd\fR and \fIsty\fR files. +by generating and executing all commands for \fIotftotfm\fR +and by creating and installing all necessary \fIfd\fR and \fIsty\fR files. .PP -Given a family of font files (in either \fIotf\fR or \fIttf\fR format), +Given a family of font files (in \fIotf\fR or \fIttf\fR format), \&\fBautoinst\fR will create several LaTeX font families: .RS 2 .IP "\-" 3 @@ -156,29 +165,29 @@ and proportional variants), each with the following shapes: .IP "\fIn\fR" 6 .IX Item "n" Roman text +.IP "\fIit\fR" 6 +.IX Item "it" +Italic (or oblique) text .IP "\fIsc\fR" 6 .IX Item "sc" Small caps -.IP "\fInw\fR" 6 -.IX Item "nw" -\&\*(L"Upright swash\*(R"; usually normal text with some \*(L"oldstyle\*(R" ligatures, -such as ct, sp and st. +.IP "\fIsw\fR" 6 +.IX Item "sw" +Swash .IP "\fItl\fR" 6 .IX Item "tl" Titling shape. Meant for all-caps text only (even though it sometimes contains lowercase glyphs as well), where letterspacing and the positioning of punctuation characters have been adjusted to suit all-caps text. -This shape is generated only for the families with lining digits, -since old-style digits make no sense with all-caps text. -.IP "\fIit\fR" 6 -.IX Item "it" -Italic (or oblique) text +(This shape is only generated for the families with lining digits, +since old-style digits make no sense with all-caps text.) .IP "\fIscit\fR" 6 .IX Item "scit" Italic small caps -.IP "\fIsw\fR" 6 -.IX Item "sw" -Swash +.IP "\fInw\fR" 6 +.IX Item "nw" +\&\*(L"Upright swash\*(R"; usually normal text with some \*(L"oldstyle\*(R" ligatures, +such as ct, sp and st. .IP "\fItlit\fR" 6 .IX Item "tlit" Italic titling @@ -203,10 +212,10 @@ An ornament family, in roman and italic shapes. Of course, if the fonts don't contain 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"COMMAND-LINE \s-1OPTIONS\s0\*(R" below). +command-line options (see \*(L"COMMAND-LINE \s-1OPTIONS\*(R"\s0 below). .PP -The generated font families are named \fI\-\fR, -where \fI\fR is one of +These families use the \fIFontPro\fR project's naming scheme: +\&\fI\-\fR, where \fI\fR is: .IP "\fI\s-1LF\s0\fR" 8 .IX Item "LF" proportional (i.e., figures have varying widths) lining figures @@ -223,11 +232,11 @@ tabular oldstyle figures .IX Item "Sup" superior characters (many fonts have only an incomplete set of superior characters: digits, some punctuation and the letters \fIabdeilmnorst\fR; -normal forms will then be used for the other characters) +normal forms are used for other characters) .IP "\fIInf\fR" 8 .IX Item "Inf" -inferior characters; usually only digits and punctuation, -normal forms for the other characters +inferior characters; usually only digits and some punctuation, +normal forms for other characters .IP "\fIOrn\fR" 8 .IX Item "Orn" ornaments @@ -242,55 +251,54 @@ The generated fonts are named \fI\-\-\-\fR, where \fI\fR is the same as above (but in lowercase), \&\fI\fR is either empty, \*(L"sc\*(R", \*(L"swash\*(R" or \*(L"titling\*(R", and \fI\fR is the encoding. -A typical name in this scheme would be \*(L"MinionPro\-Regular\-osf\-sc\-ly1\*(R". +A typical name in this scheme is \*(L"LinLibertineO\-osf\-sc\-ly1\*(R". .SS "On the choice of text encoding" .IX Subsection "On the choice of text encoding" -By default, \fBautoinst\fR generates text fonts with \s-1OT1\s0, T1 and \s-1LY1\s0 +By default, \fBautoinst\fR generates text fonts with \s-1OT1, T1\s0 and \s-1LY1\s0 encodings, and the generated style files use \s-1LY1\s0 as the default text encoding. \&\s-1LY1\s0 has been chosen over T1 because it has some empty slots to accomodate -the additional ligatures and alternate glyphs provided by many OpenType fonts. -Encodings can be chosen using the \fI\-encoding\fR command-line option -(see \*(L"COMMAND-LINE \s-1OPTIONS\s0\*(R" below). +the additional ligatures provided by many OpenType fonts. +Different encodings can be chosen using the \fI\-encoding\fR command-line option +(see \*(L"COMMAND-LINE \s-1OPTIONS\*(R"\s0 below). .SS "Using the fonts in your LaTeX documents" .IX Subsection "Using the fonts in your LaTeX documents" \&\fBautoinst\fR generates a style file for using the font in LaTeX documents, named \fI.sty\fR. This style file also takes care of loading the -\&\fIfontenc\fR and \fItextcomp\fR packages, if necessary. +\&\fIfontenc\fR and \fItextcomp\fR packages. To use the font, simply put \f(CW\*(C`\eusepackage{\f(CI\f(CW}\*(C'\fR in the preamble of your document. .PP This style file defines a number of options: -.IP "\fIlining, oldstyle, tabular, proportional\fR" 4 +.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" -Choose which digit style to use. +Choose which figure style to use. The defaults are \*(L"oldstyle\*(R" and \*(L"proportional\*(R" (if available). -.IP "\fIscale=\fR" 4 -.IX Item "scale=" -.PD 0 -.IP "\fIscaled=\fR" 4 -.IX Item "scaled=" -.PD -Scale the font by a factor of \fI\fR. -For example: to increase the size of the font by 5%, use the command -\&\f(CW\*(C`\eusepackage[scaled=1.05]{\f(CI\f(CW}\*(C'\fR. +.ie n .IP """scale=\f(CI\f(CW""" 4 +.el .IP "\f(CWscale=\f(CI\f(CW\fR" 4 +.IX Item "scale=" +Scale the font by a factor of \fI\fR. +For example: to increase the size of the font by 5%, use +\&\f(CW\*(C`\eusepackage[scale=1.05]{\f(CI\f(CW}\*(C'\fR. +May also be spelled \f(CW\*(C`scaled\*(C'\fR. .Sp -This option is only available when the \fIxkeyval\fR package is found -in your TeX installation. -.IP "\fIultrablack, ultrabold, heavy, extrablack, black, extrabold, demibold, semibold, bold\fR" 4 +This option is only available when you have the \fIxkeyval\fR package installed. +.ie n .IP """ultrablack"", ""ultrabold"", ""heavy"", ""extrablack"", ""black"", ""extrabold"", ""demibold"", ""semibold"", ""bold""" 4 +.el .IP "\f(CWultrablack\fR, \f(CWultrabold\fR, \f(CWheavy\fR, \f(CWextrablack\fR, \f(CWblack\fR, \f(CWextrabold\fR, \f(CWdemibold\fR, \f(CWsemibold\fR, \f(CWbold\fR" 4 .IX Item "ultrablack, ultrabold, heavy, extrablack, black, extrabold, demibold, semibold, bold" Choose the weight that LaTeX will use for the \*(L"bold\*(R" weight. -.IP "\fIlight, medium, regular\fR" 4 +.ie n .IP """light"", ""medium"", ""regular""" 4 +.el .IP "\f(CWlight\fR, \f(CWmedium\fR, \f(CWregular\fR" 4 .IX Item "light, medium, regular" Choose the weight that LaTeX will use for the \*(L"regular\*(R" weight. .PP These last two groups of options will only work if you have the \fImweights\fR package installed. .PP -The style file will also try to load the \fIfontaxes\fR package, +The style file will also try to load the \fIfontaxes\fR package +(available on \s-1CTAN\s0), which gives easy access to various font shapes and styles. -It is available from \s-1CTAN\s0 -(\fIhttp://www.ctan.org/tex\-archive/macros/latex/contrib/fontaxes\fR). -Using the machinery set up by \fIfontaxes\fR, the generated style file also +Using the machinery set up by \fIfontaxes\fR, 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: @@ -330,7 +338,7 @@ 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 \fIfontaxes\fR; if that package cannot be found, you're limited to using the -lower-level commands from standard \s-1NFSS\s0 (\f(CW\*(C`\efontfamily\*(C'\fR, \f(CW\*(C`\efontseries\*(C'\fR, +lower-level commands from standard \s-1NFSS \s0(\f(CW\*(C`\efontfamily\*(C'\fR, \f(CW\*(C`\efontseries\*(C'\fR, \&\f(CW\*(C`\efontshape\*(C'\fR etc.). .SS "Using multiple font families in one document" .IX Subsection "Using multiple font families in one document" @@ -347,9 +355,9 @@ shape and size. \&\fBautoinst\fR parses the output of \f(CW\*(C`otfinfo \-\-info\*(C'\fR to determine these parameters. When this fails (e.g., because the font family contains uncommon widths or weights), -\&\fBautoinst\fR would end up with different fonts having the \fIsame\fR values -for these font parameters, which means that these fonts cannot be used in \s-1NFSS\s0. -In this case, \fBautoinst\fR will split the font family into multiple subfamilies +\&\fBautoinst\fR ends up with different fonts having the \fIsame\fR values +for these font parameters, which means that these fonts cannot be used in \s-1NFSS.\s0 +In that case, \fBautoinst\fR will split the font family into multiple subfamilies (based on each font file's \*(L"Subfamily\*(R" value) and try again. (Since many font vendors misunderstand the \*(L"Subfamily\*(R" concept and make each font file its own separate subfamily, @@ -358,14 +366,15 @@ this strategy is only used as a last resort.) If such a proliferation of font families is unwanted, either run \fBautoinst\fR on a smaller set of fonts or add the missing widths, weights and shapes to the tables \f(CW%FD_WIDTH\fR, -\&\f(CW%FD_WEIGHT\fR and \f(CW%FD_SHAPE\fR, near the top of the source code. +\&\f(CW%FD_WEIGHT\fR and \f(CW%FD_SHAPE\fR, at the top of the source code. Please also send a bug report (see \s-1AUTHOR\s0 below). .PP \&\fBautoinst\fR maps widths, weights and shapes to \s-1NFSS\s0 codes using the following tables. These are based as much as possible on the standard \fIFontname\fR scheme and Philipp Lehman's -\&\fIFont Installation Guide\fR, but some changes had to be made to avoid -name clashes in font families with many widths or weights. +\&\fIFont Installation Guide\fR, +but some changes were made to avoid name clashes in font families +with many widths and weights. .PP .Vb 1 \& WEIGHT WIDTH @@ -420,7 +429,7 @@ it cannot find the \fIkpsewhich\fR program and install all generated files into subdirectories of the current directory. If you use such a TeX distribution, you should either move these files to their correct destinations by hand, or use the \fI\-target\fR option -(see \*(L"COMMAND-LINE \s-1OPTIONS\s0\*(R" below) to specify a \s-1TEXMF\s0 tree. +(see \*(L"COMMAND-LINE \s-1OPTIONS\*(R"\s0 below) to specify a \s-1TEXMF\s0 tree. .PP Also, some OpenType fonts lead to \fIpl\fR and \fIvpl\fR files that are too big for MiKTeX's \fIpltotf\fR and \fIvptovf\fR; @@ -428,108 +437,84 @@ the versions that come with W32TeX (\fIhttp://www.w32tex.org\fR) and TeXLive (\fIhttp://tug.org/texlive\fR) don't have this problem. .SH "COMMAND-LINE OPTIONS" .IX Header "COMMAND-LINE OPTIONS" +\&\fBautoinst\fR tries hard to do The Right Thing (\s-1TM\s0) by default, +so in many cases you won't need these options; +but many aspects of its operation can be changed if you want to. +.PP 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 (\fB\-encoding\fR, \fB\-extra\fR). .IP "\fB\-encoding\fR=\fIencoding[,encoding]\fR" 4 .IX Item "-encoding=encoding[,encoding]" -Use the specified encodings for the text fonts. The default is \*(L"\s-1OT1\s0,T1,LY1\*(R". -For each encoding, a file \fI.enc\fR (in all \fIlowercase\fR) +Generate the specified encoding(s) for the text fonts. The default is \*(L"\s-1OT1,T1,LY1\*(R".\s0 +For each encoding, a file \fI.enc\fR (\fIlowercase\fR) should be somewhere where \fIotftotfm\fR can find it. Suitable encoding files -for \s-1OT1\s0, T1/TS1 and \s-1LY1\s0 come with \fBautoinst\fR. (Note that these files are +for \s-1OT1, T1/TS1\s0 and \s-1LY1\s0 come with \fBautoinst\fR. (These files are called \fIfontools_ot1.enc\fR etc. to avoid name clashes with other packages; -the \*(L"fontools_\*(R" prefix doesn't need to be specified.) +the \*(L"fontools_\*(R" prefix may be omitted.) .Sp Multiple text encodings can be specified as a comma-separated list: \&\f(CW\*(C`\-encoding=OT1,T1\*(C'\fR. The encodings are passed to \fIfontenc\fR in the order specified, so the last one will be the default text encoding. +.IP "\fB\-ts1\fR / \fB\-nots1\fR" 4 +.IX Item "-ts1 / -nots1" +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\-sanserif\fR" 4 .IX Item "-sanserif" Install the font as a sanserif font, accessed via \f(CW\*(C`\esffamily\*(C'\fR and \f(CW\*(C`\etextsf\*(C'\fR. -Note that the generated style file redefines \f(CW\*(C`\efamilydefault\*(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. .IP "\fB\-typewriter\fR" 4 .IX Item "-typewriter" Install the font as a typewriter font, accessed via \f(CW\*(C`\ettfamily\*(C'\fR and \&\f(CW\*(C`\etexttt\*(C'\fR. -Note that the generated style file redefines \f(CW\*(C`\efamilydefault\*(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. -.IP "\fB\-ts1\fR" 4 -.IX Item "-ts1" +.IP "\fB\-lining\fR / \fB\-oldstyle\fR" 4 +.IX Item "-lining / -oldstyle" .PD 0 -.IP "\fB\-nots1\fR" 4 -.IX Item "-nots1" +.IP "\fB\-tabular\fR / \fB\-proportional\fR" 4 +.IX Item "-tabular / -proportional" .PD -Turn the creation of TS1\-encoded fonts on or off. The default is \fB\-ts1\fR -if the text encodings (see \fI\-encoding\fR above) include T1, -\&\fB\-nots1\fR otherwise. -.IP "\fB\-smallcaps\fR" 4 -.IX Item "-smallcaps" -.PD 0 -.IP "\fB\-nosmallcaps\fR" 4 -.IX Item "-nosmallcaps" -.PD -Turn the creation of small caps fonts on or off. The default is +Tell \fBautoinst\fR which figure style is the current font family's default +(i.e., which figures you get when you don't specify anything). +\&\fIThis is only needed for font families that don't provide OpenType +features for the default figure style!\fR +Even in that case, the default values (\fB\-lining\fR and \fB\-tabular\fR) are usually +correct. +.IP "\fB\-smallcaps\fR / \fB\-nosmallcaps\fR" 4 +.IX Item "-smallcaps / -nosmallcaps" +Control the creation of small caps fonts. The default is \&\fB\-smallcaps\fR. -.IP "\fB\-swash\fR" 4 -.IX Item "-swash" -.PD 0 -.IP "\fB\-noswash\fR" 4 -.IX Item "-noswash" -.PD -Turn the creation of swash fonts on or off. The default is \fB\-swash\fR. -.IP "\fB\-titling\fR" 4 -.IX Item "-titling" -.PD 0 -.IP "\fB\-notitling\fR" 4 -.IX Item "-notitling" -.PD -Turn the creation of titling fonts on or off. The default is \fB\-titling\fR. -.IP "\fB\-superiors\fR" 4 -.IX Item "-superiors" -.PD 0 -.IP "\fB\-nosuperiors\fR" 4 -.IX Item "-nosuperiors" -.PD -Turn the creation of fonts with superior characters on or off. +.IP "\fB\-swash\fR / \fB\-noswash\fR" 4 +.IX Item "-swash / -noswash" +Control the creation of swash fonts. The default is \fB\-swash\fR. +.IP "\fB\-titling\fR / \fB\-notitling\fR" 4 +.IX Item "-titling / -notitling" +Control the creation of titling fonts. The default is \fB\-titling\fR. +.IP "\fB\-superiors\fR / \fB\-nosuperiors\fR" 4 +.IX Item "-superiors / -nosuperiors" +Control the creation of fonts with superior characters. The default is \fB\-superiors\fR. -.IP "\fB\-inferiors\fR" 4 -.IX Item "-inferiors" -.PD 0 -.IP "\fB\-noinferiors\fR" 4 -.IX Item "-noinferiors" -.PD -Turn the creation of fonts with inferior digits on or off. +.IP "\fB\-inferiors\fR / \fB\-noinferiors\fR" 4 +.IX Item "-inferiors / -noinferiors" +Control the creation of fonts with inferior digits. The default is \fB\-noinferiors\fR. -.IP "\fB\-fractions\fR" 4 -.IX Item "-fractions" -.PD 0 -.IP "\fB\-nofractions\fR" 4 -.IX Item "-nofractions" -.PD -Turn the creation of fonts with numerators and denominators on or off. +.IP "\fB\-fractions\fR / \fB\-nofractions\fR" 4 +.IX Item "-fractions / -nofractions" +Control the creation of fonts with numerators and denominators. The default is \fB\-nofractions\fR. -.IP "\fB\-ornaments\fR" 4 -.IX Item "-ornaments" -.PD 0 -.IP "\fB\-noornaments\fR" 4 -.IX Item "-noornaments" -.PD -Turn the creation of ornament fonts on or off. The default is \fB\-ornaments\fR. +.IP "\fB\-ornaments\fR / \fB\-noornaments\fR" 4 +.IX Item "-ornaments / -noornaments" +Control the creation of ornament fonts. The default is \fB\-ornaments\fR. .IP "\fB\-verbose\fR" 4 .IX Item "-verbose" Verbose mode; print detailed info about what \fBautoinst\fR thinks it's doing. -.IP "\fB\-extra\fR=\fItext\fR" 4 -.IX Item "-extra=text" -Pass \fItext\fR as options to \fIotftotfm\fR. To prevent \fItext\fR from accidentily -being interpreted as options to \fBautoinst\fR, it should be properly quoted. -.IP "\fB\-figurekern\fR" 4 -.IX Item "-figurekern" -.PD 0 -.IP "\fB\-nofigurekern\fR" 4 -.IX Item "-nofigurekern" -.PD +.IP "\fB\-figurekern\fR / \fB\-nofigurekern\fR" 4 +.IX Item "-figurekern / -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). @@ -539,15 +524,20 @@ to the commands for \fIotftotfm\fR to suppress such kerns 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 \fB\-figurekern\fR. +.IP "\fB\-extra\fR=\fItext\fR" 4 +.IX Item "-extra=text" +Add \fItext\fR to the command line to \fIotftotfm\fR. To prevent \fItext\fR from +accidentily being interpreted as options to \fBautoinst\fR, it should be +properly quoted. .IP "\fB\-manual\fR" 4 .IX Item "-manual" Manual mode. By default, \fBautoinst\fR executes all \fIotftotfm\fR commands it generates; with the \fB\-manual\fR option, these commands are instead written to a file \fIautoinst.bat\fR. Also, the generated \fIotftotfm\fR commands specify the \fI \-\-pl\fR option -(which tells \fIotftotfm\fR to generate readable/editable \fIpl\fR and \fIvpl\fR files -instead of the default \fItfm\fR and \fIvf\fR files) -and leave out the \fI \-\-automatic\fR option (which tells \fIotftotfm\fR to +(which tells \fIotftotfm\fR to generate human readable/editable \fIpl\fR +and \fIvpl\fR files instead of the default \fItfm\fR and \fIvf\fR files) +and omit the \fI \-\-automatic\fR option (which causes \fIotftotfm\fR to leave all generated files in the current directory, rather than install them into your \s-1TEXMF\s0 tree). .Sp @@ -576,33 +566,29 @@ options: they change the \*(L"vendor\*(R" and \*(L"typeface\*(R" parts of the na subdirectories in the \s-1TEXMF\s0 tree where generated files will be stored. The default values are \*(L"lcdftools\*(R" and the font's FontFamily name. .Sp -Please note that these options change \fIonly\fR directory names, +Note that these options change \fIonly\fR directory names, not the names of any generated files. -.IP "\fB\-updmap\fR" 4 -.IX Item "-updmap" -.PD 0 -.IP "\fB\-noupdmap\fR" 4 -.IX Item "-noupdmap" -.PD +.IP "\fB\-updmap\fR / \fB\-noupdmap\fR" 4 +.IX Item "-updmap / -noupdmap" Control whether or not \fIupdmap\fR is called after the last call to \fIotftotfm\fR. The default is \fB\-updmap\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" Eddie Kohler's \fBTypeTools\fR (\fIhttp://www.lcdf.org/type\fR). .PP -\&\fBPerl\fR can be downloaded from \fIhttp://www.perl.org\fR; it is often -already installed on many Linux distros. +\&\fBPerl\fR can be downloaded from \fIhttp://www.perl.org\fR; it is +pre-installed on many Linux distributions. For Windows, try ActivePerl (\fIhttp://www.activestate.com\fR) or Strawberry Perl (\fIhttp://strawberryperl.com\fR). .PP -\&\fBXeTeX\fR (\fIhttp://www.tug.org/xetex\fR) and \fBLuaTeX\fR (\fIhttp://www.luatex.org\fR) -are TeX engines that can use fonts in many formats -(including both flavours of OpenType) without TeX-specific support files. -.PP The \fBFontPro\fR project (\fIhttps://github.com/sebschub/FontPro\fR) offers very complete LaTeX support for Adobe's Minion Pro and Myriad Pro (including math), and is currently working on Cronos Pro as well. .PP +\&\fBXeTeX\fR (\fIhttp://www.tug.org/xetex\fR) and \fBLuaTeX\fR (\fIhttp://www.luatex.org\fR) +are TeX engines that can use fonts in many formats +(including both flavours of OpenType) without TeX-specific support files. +.PP John Owens' \fBotfinst\fR (available from \s-1CTAN\s0) is another wrapper around \fIotftotfm\fR. .SH "AUTHOR" @@ -612,7 +598,7 @@ 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 \fBautoinst\fR with the \fI\-verbose\fR option. -Please make sure that this output includes all (if any) error messages. +Please include all (if any) error messages as well. .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (C) 2005\-2013 Marc Penninga. @@ -627,12 +613,16 @@ the \fIfontools\fR distribution; see the file \fIGPLv2.txt\fR. .SH "DISCLAIMER" .IX Header "DISCLAIMER" This program is distributed in the hope that it will be useful, -but \s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of -\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. See the +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 "RECENT CHANGES" .IX Header "RECENT CHANGES" (See the source code for the rest of the story.) +.IP "\fI2013\-10\-01\fR" 12 +.IX Item "2013-10-01" +Added the \fI\-lining\fR, \fI\-oldstyle\fR, \fI\-tabular\fR and \fI\-proportional\fR +command line options. .IP "\fI2013\-07\-25\fR" 12 .IX Item "2013-07-25" The generated \fIsty\fR files now use the \fImweights\fR package instead of @@ -674,6 +664,6 @@ Reorganised the code, and fixed some bugs in the process. Added the \fI\-target\fR command-line option. Made \fBautoinst\fR install the \fIfd\fR and \fIsty\fR files in the same \s-1TEXMF\s0 tree as the other generated files. -Generate \s-1OT1\s0, T1 and \s-1LY1\s0 encoded text fonts by default. +Generate \s-1OT1, T1\s0 and \s-1LY1\s0 encoded text fonts by default. Made \fI\-titling\fR a default option (instead of \fI\-notitling\fR). Updated the documentation. diff --git a/Master/texmf-dist/doc/man/man1/autoinst.man1.pdf b/Master/texmf-dist/doc/man/man1/autoinst.man1.pdf index bb1d6d508d1..53acbe1b935 100644 Binary files a/Master/texmf-dist/doc/man/man1/autoinst.man1.pdf and b/Master/texmf-dist/doc/man/man1/autoinst.man1.pdf differ diff --git a/Master/texmf-dist/doc/man/man1/ot2kpx.1 b/Master/texmf-dist/doc/man/man1/ot2kpx.1 index f7a598a6b09..d1b173b7be1 100644 --- a/Master/texmf-dist/doc/man/man1/ot2kpx.1 +++ b/Master/texmf-dist/doc/man/man1/ot2kpx.1 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.20) +.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== @@ -38,6 +38,8 @@ . ds PI \(*p . ds L" `` . ds R" '' +. ds C` +. ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. @@ -48,17 +50,24 @@ .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. -.ie \nF \{\ -. de IX -. tm Index:\\$1\t\\n%\t"\\$2" +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX .. -. nr % 0 -. rr F -.\} -.el \{\ -. de IX +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{ +. if \nF \{ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" .. +. if !\nF==2 \{ +. nr % 0 +. nr F 2 +. \} +. \} .\} +.rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. @@ -171,8 +180,8 @@ There are (or may be) several issues with this approach: .RS 4 .IP "\-" 4 The OpenType specification says that fonts in \fIotf\fR format shouldn't -use the \*(L"kern\*(R" table at all, just the lookups from the \*(L"\s-1GPOS\s0\*(R" table. -Many such fonts do, however, contain a \*(L"kern\*(R" table, but no \*(L"\s-1GPOS\s0\*(R" table; +use the \*(L"kern\*(R" table at all, just the lookups from the \*(L"\s-1GPOS\*(R"\s0 table. +Many such fonts do, however, contain a \*(L"kern\*(R" table, but no \*(L"\s-1GPOS\*(R"\s0 table; so we use the \*(L"kern\*(R" table anyway. .IP "\-" 4 Instead of reading all LookupTables, it might be better to let the user @@ -201,8 +210,8 @@ see the file \fIGPLv2.txt\fR. .SH "DISCLAIMER" .IX Header "DISCLAIMER" This program is distributed in the hope that it will be useful, -but \s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of -\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. +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 "RECENT CHANGES" .IX Header "RECENT CHANGES" diff --git a/Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf b/Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf index 921f9cec8d3..398b9fd7127 100644 Binary files a/Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf and b/Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf differ diff --git a/Master/texmf-dist/doc/support/fontools/README b/Master/texmf-dist/doc/support/fontools/README index 1c83931f109..26a653f682a 100644 --- a/Master/texmf-dist/doc/support/fontools/README +++ b/Master/texmf-dist/doc/support/fontools/README @@ -65,4 +65,4 @@ the terms of the GNU General Public Licence. See the file GPLv2.txt for the license conditions. - Marc Penninga, 2013/08/07 + Marc Penninga, 2013/10/01 diff --git a/Master/texmf-dist/scripts/fontools/autoinst b/Master/texmf-dist/scripts/fontools/autoinst index f7cbf59792a..1bc8826e6f5 100755 --- a/Master/texmf-dist/scripts/fontools/autoinst +++ b/Master/texmf-dist/scripts/fontools/autoinst @@ -36,6 +36,7 @@ use warnings; use File::Path (); use File::Spec (); use Getopt::Long (); +use Pod::Usage (); my ($d, $m, $y) = (localtime time)[3 .. 5]; my $TODAY = sprintf "%04d/%02d/%02d", $y + 1900, $m + 1, $d; @@ -135,7 +136,6 @@ my %FD_SSUB = ( tlsl => 'tlit', ); - =begin Comment The %STYLE table is used in deciding which figure styles to generate. @@ -145,17 +145,20 @@ my %FD_SSUB = ( Each key in this table names a figure style; the corresponding value is an anonymous hash with four key/value pairs: reqd A list of required OpenType features; - this style is built if the font supports at least *one* - of these features. + this style is built if the font supports *all* these features. nice A list of optional OpenType features; these are used if the font supports them, but don't prevent this style from being built when missing. extra Extra options passed to otftotfm when creating this style. shape An anonymous array of 'variant' shapes to build with this figure style. + + 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. Ornaments are treated as a separate 'figure style'. - This may seem a bit weird, but is actually the easiest way to do it. + This may seem a bit weird, but that's the easiest way to handle them. =end Comment @@ -164,24 +167,24 @@ my %FD_SSUB = ( my %STYLE = ( TLF => { reqd => [], - nice => ['lnum', 'tnum'], + nice => [], extra => '', shapes => ['normal', 'smallcaps', 'swash', 'titling', 'textcomp'], }, LF => { - reqd => ['pnum'], - nice => ['lnum'], + reqd => [], + nice => [], extra => '', shapes => ['normal', 'smallcaps', 'swash', 'titling', 'textcomp'], }, TOsF => { - reqd => ['onum'], - nice => ['tnum'], + reqd => [], + nice => [], extra => '', shapes => ['normal', 'smallcaps', 'swash', 'textcomp'], }, OsF => { - reqd => ['onum', 'pnum'], + reqd => [], nice => [], extra => '', shapes => ['normal', 'smallcaps', 'swash', 'textcomp'], @@ -218,6 +221,53 @@ my %STYLE = ( }, ); +=begin Comment + + The %STYLE_DEFAULTS table is used to populate the 'reqd' and 'nice' + subtables of the %STYLE table, depending on the default figure style + for the current font. This is needed because some font families + provide only features for the non-default figure styles. + + We therefore make the OpenType features that correspond + to the default figure style 'nice' (optional), so that this figure style + is always generated, even without OpenType features in the font; + the other figure style are only generated when the corresponding + features are present in the font. + +=end Comment + +=cut + +my %STYLE_DEFAULTS = ( + lnum => + sub { + push $STYLE{TLF}{nice}, 'lnum'; + push $STYLE{LF}{nice}, 'lnum'; + push $STYLE{TOsF}{reqd}, 'onum'; + push $STYLE{OsF}{reqd}, 'onum'; + }, + onum => + sub { + push $STYLE{TLF}{reqd}, 'lnum'; + push $STYLE{LF}{reqd}, 'lnum'; + push $STYLE{TOsF}{nice}, 'onum'; + push $STYLE{OsF}{nice}, 'onum'; + }, + tnum => + sub { + push $STYLE{TLF}{nice}, 'tnum'; + push $STYLE{TOsF}{nice}, 'tnum'; + push $STYLE{LF}{reqd}, 'pnum'; + push $STYLE{OsF}{reqd}, 'pnum'; + }, + pnum => + sub { + push $STYLE{TLF}{reqd}, 'tnum'; + push $STYLE{TOsF}{reqd}, 'tnum'; + push $STYLE{LF}{nice}, 'pnum'; + push $STYLE{OsF}{nice}, 'pnum'; + }, +); =begin Comment @@ -252,14 +302,14 @@ my %STYLE = ( my %SHAPE = ( normal => { - code => {n => 'n', it => 'it'}, + code => { n => 'n', it => 'it' }, reqd => [], nice => ['kern', 'liga'], extra => '', name => '', }, smallcaps => { - code => {n => 'sc', it => 'scit'}, + code => { n => 'sc', it => 'scit' }, reqd => ['smcp'], nice => ['kern', 'liga'], extra => '--unicoding="germandbls =: SSsmall"', @@ -268,21 +318,21 @@ my %SHAPE = ( # '--feature=aalt' is in 'extra' instead of 'nice' because 'extra' # comes last in the command line and hence overrides earlier options swash => { - code => {n => 'nw', it => 'sw'}, + code => { n => 'nw', it => 'sw' }, reqd => ['swsh', 'dlig'], nice => ['kern', 'liga'], extra => '--include-alternates="*.swash" --feature=aalt', name => 'swash', }, titling => { - code => {n => 'tl', it => 'tlit'}, + code => { n => 'tl', it => 'tlit' }, reqd => ['titl', 'case', 'cpsp'], nice => ['kern', 'liga'], extra => '', name => 'titling', }, textcomp => { - code => {n => 'n', it => 'it'}, + code => { n => 'n', it => 'it' }, reqd => [], nice => ['onum'], extra => '', @@ -342,12 +392,25 @@ sub main { sub expand_styles { return map { my $font = $_; map { { font => $font, style => $_ } } - grep { has_reqd($font, $STYLE{$_}) } + grep { has_reqd_style($font, $STYLE{$_}) } keys %STYLE } @_; } +#----------------------------------------------------------------------- +# Check if $font has all features mentioned in the 'reqd' subtable of $target +#----------------------------------------------------------------------- +sub has_reqd_style { + my ($font, $target) = @_; + + return 0 unless defined $target; + for my $prereq (@{$target->{reqd}}) { + return 0 if !$font->{feature}{$prereq}; + } + return 1; +} + #----------------------------------------------------------------------- # Determine which shapes to create for each (font, style) combination; # return a list of (font, style, shape) tuples @@ -355,17 +418,17 @@ sub expand_styles { sub expand_shapes { return map { my ($font, $style) = @{$_}{qw(font style)}; map { { font => $font, style => $style, shape => $_ } } - grep { has_reqd($font, $SHAPE{$_}) } + grep { has_reqd_shape($font, $SHAPE{$_}) } @{$STYLE{$style}{shapes}}; } @_; } #----------------------------------------------------------------------- -# Check if $font has (at least one of the) features mentioned in the +# Check if $font has at least one of the features mentioned in the # 'reqd' subtable of $target #----------------------------------------------------------------------- -sub has_reqd { +sub has_reqd_shape { my ($font, $target) = @_; return 0 unless defined $target; @@ -564,6 +627,10 @@ Possible options: -sanserif Install font as sanserif font -typewriter Install font as typewriter font + + -lining/-oldstyle Specify which figure style should be + -tabular/-proportional considered 'default' for this font (see docs) + -extra="TEXT" Add TEXT to the command for 'otftotfm' -target="DIRECTORY" Install files into specified TEXMF tree -vendor="VENDOR" Only used for naming directories @@ -573,10 +640,11 @@ Possible options: -(no)figurekern Keep or remove kerns between tabular figures - -help Print this text - -verbose Make some noise + -help Print this text and exit + -doc Print the complete documentation and exit + -verbose Show detailed info about progress - font[s] The fonts (either .otf or .ttf) to install. + font[s] The fonts (.otf or .ttf format) to install. Please report any bugs or suggestions to . END_USAGE @@ -593,6 +661,8 @@ END_USAGE ornaments => '1', # 0 = no, 1 = yes fractions => '0', # 0 = no, 1 = yes nfss => 'rm', + fig_height => 'lnum', + fig_width => 'tnum', extra => '', target => '', vendor => 'lcdftools', @@ -610,26 +680,31 @@ sub parse_options { my $cmdline = "$0 " . join ' ', @ARGV; Getopt::Long::GetOptions( - 'help|?' => sub { print $USAGE; exit; }, - 'encoding=s' => \$ARGV{encoding}, - 'ts1!' => \$ARGV{textcomp}, - 'smallcaps!' => \$ARGV{smallcaps}, - 'swash!' => \$ARGV{swash}, - 'titling!' => \$ARGV{titling}, - 'superiors!' => \$ARGV{superiors}, - 'inferiors!' => \$ARGV{inferiors}, - 'ornaments!' => \$ARGV{ornaments}, - 'fractions!' => \$ARGV{fractions}, - 'sanserif' => sub { $ARGV{nfss} = 'sf' }, - 'typewriter' => sub { $ARGV{nfss} = 'tt' }, - 'extra=s' => \$ARGV{extra}, - 'target=s' => \$ARGV{target}, - 'vendor=s' => \$ARGV{vendor}, - 'typeface=s' => \$ARGV{typeface}, - 'updmap!' => \$ARGV{updmap}, - 'manual' => \$ARGV{manual}, - 'figurekern!' => \$ARGV{figurekern}, - 'verbose' => \$ARGV{verbose}, + 'help|?' => sub { print $USAGE; exit; }, + 'doc' => sub { Pod::Usage::pod2usage(-verbose => 2); }, + 'encoding=s' => \$ARGV{encoding}, + 'ts1!' => \$ARGV{textcomp}, + 'smallcaps!' => \$ARGV{smallcaps}, + 'swash!' => \$ARGV{swash}, + 'titling!' => \$ARGV{titling}, + 'superiors!' => \$ARGV{superiors}, + 'inferiors!' => \$ARGV{inferiors}, + 'ornaments!' => \$ARGV{ornaments}, + 'fractions!' => \$ARGV{fractions}, + 'sanserif' => sub { $ARGV{nfss} = 'sf' }, + 'typewriter' => sub { $ARGV{nfss} = 'tt' }, + 'lining' => sub { $ARGV{fig_height} = 'lnum' }, + 'oldstyle' => sub { $ARGV{fig_height} = 'onum' }, + 'tabular' => sub { $ARGV{fig_width} = 'tnum' }, + 'proportional' => sub { $ARGV{fig_width} = 'pnum' }, + 'extra=s' => \$ARGV{extra}, + 'target=s' => \$ARGV{target}, + 'vendor=s' => \$ARGV{vendor}, + 'typeface=s' => \$ARGV{typeface}, + 'updmap!' => \$ARGV{updmap}, + 'manual' => \$ARGV{manual}, + 'figurekern!' => \$ARGV{figurekern}, + 'verbose' => \$ARGV{verbose}, ) or die "$USAGE"; @@ -659,6 +734,10 @@ sub parse_options { delete $SHAPE{textcomp}; } + # Fix the %STYLE table to take 'default' figure styles into account. + $STYLE_DEFAULTS{$ARGV{fig_height}}(); + $STYLE_DEFAULTS{$ARGV{fig_width}}(); + if ($ARGV{manual}) { warn "[WARNING] option '--target' overridden by '--manual'!" if $ARGV{target}; @@ -709,6 +788,9 @@ I'm using the following options: (no)fractions: @{[ $ARGV{fractions} ? 'fractions' : 'nofractions' ]} verbosity: @{[ $ARGV{verbose} ? 'verbose' : 'quiet' ]} + + lining/oldstyle: @{[ $ARGV{fig_height} == 'lnum' ? 'lining' : 'oldstyle' ]} + tabular/prop.: @{[ $ARGV{fig_width} == 'tnum' ? 'tabular' : 'proportional' ]} target: $ARGV{target} auto/manual: @{[ $ARGV{manual} ? 'manual' : 'automatic' ]} @@ -962,8 +1044,8 @@ sub assert_unique { } } - # If the font infos aren't unique, append 'Subfamily' to 'Family' - # and try again + # If the font infos aren't unique, + # append 'Subfamily' to 'Family' and try again if ($err_details) { if ($attempt == 1) { $err_details =~ s/\[ERROR\]/[WARNING]/xmsg; @@ -1351,15 +1433,15 @@ B [I] B =head1 DESCRIPTION -Eddie Kohler's F are superb tools for installing -OpenType fonts in LaTeX, but their use (even in automatic mode) -is complicated: they need many, often long, commands +Eddie Kohler's I are superb tools for installing +OpenType fonts in LaTeX, but they can be hard to use: +they need many, often long, command lines and don't generate the F and F files LaTeX needs. -B simplifies the use of the F for font installation -by automatically generating and executing all commands -and by creating and installing all F and F files. +B simplifies the use of the I for font installation +by generating and executing all commands for I +and by creating and installing all necessary F and F files. -Given a family of font files (in either F or F format), +Given a family of font files (in F or F format), B will create several LaTeX font families: =over 2 @@ -1379,34 +1461,34 @@ and proportional variants), each with the following shapes: Roman text +=item I + +Italic (or oblique) text + =item I Small caps -=item I +=item I -"Upright swash"; usually normal text with some "oldstyle" ligatures, -such as ct, sp and st. +Swash =item I Titling shape. Meant for all-caps text only (even though it sometimes contains lowercase glyphs as well), where letterspacing and the positioning of punctuation characters have been adjusted to suit all-caps text. -This shape is generated only for the families with lining digits, -since old-style digits make no sense with all-caps text. - -=item I - -Italic (or oblique) text +(This shape is only generated for the families with lining digits, +since old-style digits make no sense with all-caps text.) =item I Italic small caps -=item I +=item I -Swash +"Upright swash"; usually normal text with some "oldstyle" ligatures, +such as ct, sp and st. =item I @@ -1439,8 +1521,8 @@ 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). -The generated font families are named I<< - >>, -where I<< >> is one of +These families use the I project's naming scheme: +I<< - >>, where I<< >> is: =over 8 @@ -1464,12 +1546,12 @@ tabular oldstyle figures superior characters (many fonts have only an incomplete set of superior characters: digits, some punctuation and the letters I; -normal forms will then be used for the other characters) +normal forms are used for other characters) =item I -inferior characters; usually only digits and punctuation, -normal forms for the other characters +inferior characters; usually only digits and some punctuation, +normal forms for other characters =item I @@ -1489,7 +1571,7 @@ 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 would be "MinionPro-Regular-osf-sc-ly1". +A typical name in this scheme is "LinLibertineO-osf-sc-ly1". =head2 On the choice of text encoding @@ -1497,8 +1579,8 @@ A typical name in this scheme would be "MinionPro-Regular-osf-sc-ly1". 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 -the additional ligatures and alternate glyphs provided by many OpenType fonts. -Encodings can be chosen using the I<-encoding> command-line option +the additional ligatures provided by many OpenType fonts. +Different encodings can be chosen using the I<-encoding> command-line option (see L below). @@ -1506,7 +1588,7 @@ 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, if necessary. +F and F packages. To use the font, simply put C<<< \usepackage{I<< >>} >>> in the preamble of your document. @@ -1514,28 +1596,26 @@ This style file defines a number of options: =over 4 -=item I +=item C, C, C, C -Choose which digit style to use. +Choose which figure style to use. The defaults are "oldstyle" and "proportional" (if available). -=item I<< scale= >> - -=item I<< scaled= >> +=item C<<< scale=I<< >> >>> -Scale the font by a factor of I<< >>. -For example: to increase the size of the font by 5%, use the command -C<<< \usepackage[scaled=1.05]{I<< >>} >>>. +Scale the font by a factor of I<< >>. +For example: 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 the F package is found -in your TeX installation. +This option is only available when you have the F package installed. -=item I +=item C, C, C, C, C, + C, C, C, C Choose the weight that LaTeX will use for the "bold" weight. -=item I +=item C, C, C Choose the weight that LaTeX will use for the "regular" weight. @@ -1544,11 +1624,10 @@ Choose the weight that LaTeX will use for the "regular" weight. These last 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, +The style file will also try to load the F package +(available on CTAN), which gives easy access to various font shapes and styles. -It is available from CTAN -(F). -Using the machinery set up by F, the generated style file also +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: @@ -1609,9 +1688,9 @@ 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), -B would end up with different fonts having the I values +B ends up with different fonts having the I values for these font parameters, which means that these fonts cannot be used in NFSS. -In this case, B will split the font family into multiple subfamilies +In that case, B will split the font family into multiple subfamilies (based on each font file's "Subfamily" value) and try again. (Since many font vendors misunderstand the "Subfamily" concept and make each font file its own separate subfamily, @@ -1620,14 +1699,15 @@ 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>, near the top of the source code. +C<%FD_WEIGHT> and C<%FD_SHAPE>, at the top 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 had to be made to avoid -name clashes in font families with many widths or weights. +F, +but some changes were made to avoid name clashes in font families +with many widths and weights. WEIGHT WIDTH @@ -1700,6 +1780,10 @@ and TeXLive (F) don't 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 many aspects of its operation can be changed 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>, @@ -1709,96 +1793,84 @@ but B<-e> is ambiguous (B<-encoding>, B<-extra>). =item B<-encoding>=I -Use the specified encodings for the text fonts. The default is "OT1,T1,LY1". -For each encoding, a file F<< .enc >> (in all I) +Generate the specified encoding(s) for the text fonts. The default is "OT1,T1,LY1". +For each encoding, a file F<< .enc >> (I) should be somewhere where F can find it. Suitable encoding files -for OT1, T1/TS1 and LY1 come with B. (Note that these files are +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 doesn't need to be specified.) +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. +=item B<-ts1> / B<-nots1> + +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<-sanserif> Install the font as a sanserif font, accessed via C<\sffamily> and C<\textsf>. -Note that the generated style file redefines C<\familydefault>, +The generated style file redefines C<\familydefault>, so including it will still make this font the default text font. =item B<-typewriter> Install the font as a typewriter font, accessed via C<\ttfamily> and C<\texttt>. -Note that the generated style file redefines C<\familydefault>, +The generated style file redefines C<\familydefault>, so including it will still make this font the default text font. -=item B<-ts1> +=item B<-lining> / B<-oldstyle> -=item B<-nots1> - -Turn the creation of TS1-encoded fonts on or off. The default is B<-ts1> -if the text encodings (see I<-encoding> above) include T1, -B<-nots1> otherwise. +=item B<-tabular> / B<-proportional> -=item B<-smallcaps> +Tell B which figure style is the current font family's default +(i.e., which figures you get when you don't specify anything). +I +Even in that case, the default values (B<-lining> and B<-tabular>) are usually +correct. -=item B<-nosmallcaps> +=item B<-smallcaps> / B<-nosmallcaps> -Turn the creation of small caps fonts on or off. The default is +Control the creation of small caps fonts. The default is B<-smallcaps>. -=item B<-swash> - -=item B<-noswash> - -Turn the creation of swash fonts on or off. The default is B<-swash>. +=item B<-swash> / B<-noswash> -=item B<-titling> +Control the creation of swash fonts. The default is B<-swash>. -=item B<-notitling> +=item B<-titling> / B<-notitling> -Turn the creation of titling fonts on or off. The default is B<-titling>. +Control the creation of titling fonts. The default is B<-titling>. -=item B<-superiors> +=item B<-superiors> / B<-nosuperiors> -=item B<-nosuperiors> - -Turn the creation of fonts with superior characters on or off. +Control the creation of fonts with superior characters. The default is B<-superiors>. -=item B<-inferiors> - -=item B<-noinferiors> +=item B<-inferiors> / B<-noinferiors> -Turn the creation of fonts with inferior digits on or off. +Control the creation of fonts with inferior digits. The default is B<-noinferiors>. -=item B<-fractions> +=item B<-fractions> / B<-nofractions> -=item B<-nofractions> - -Turn the creation of fonts with numerators and denominators on or off. +Control the creation of fonts with numerators and denominators. The default is B<-nofractions>. -=item B<-ornaments> - -=item B<-noornaments> +=item B<-ornaments> / B<-noornaments> -Turn the creation of ornament fonts on or off. The default is B<-ornaments>. +Control the creation of ornament fonts. The default is B<-ornaments>. =item B<-verbose> Verbose mode; print detailed info about what B thinks it's doing. -=item B<-extra>=I - -Pass I as options to I. To prevent I from accidentily -being interpreted as options to B, it should be properly quoted. - -=item B<-figurekern> - -=item B<-nofigurekern> +=item B<-figurekern> / B<-nofigurekern> Some fonts provide kerning pairs for tabular figures. This is very probably not what you want @@ -1810,15 +1882,21 @@ 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>. +=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. + =item B<-manual> Manual mode. By default, B 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 -(which tells F to generate readable/editable F and F files -instead of the default F and F files) -and leave out the I< --automatic> option (which tells F to +(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 leave all generated files in the current directory, rather than install them into your TEXMF tree). @@ -1851,12 +1929,10 @@ options: they change the "vendor" and "typeface" parts of the names of the subdirectories in the TEXMF tree where generated files will be stored. The default values are "lcdftools" and the font's FontFamily name. -Please note that these options change I directory names, +Note that these options change I directory names, not the names of any generated files. -=item B<-updmap> - -=item B<-noupdmap> +=item B<-updmap> / B<-noupdmap> Control whether or not F is called after the last call to F. The default is B<-updmap>. @@ -1868,19 +1944,19 @@ The default is B<-updmap>. Eddie Kohler's B (F). -B can be downloaded from F; it is often -already installed on many Linux distros. +B can be downloaded from F; it is +pre-installed on many Linux distributions. For Windows, try ActivePerl (F) or Strawberry Perl (F). -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. - 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 as well. +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. + John Owens' B (available from CTAN) is another wrapper around F. @@ -1892,7 +1968,7 @@ 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 make sure that this output includes all (if any) error messages. +Please include all (if any) error messages as well. =head1 COPYRIGHT @@ -1925,6 +2001,11 @@ GNU General Public License for more details. =over 12 +=item I<2013-10-01> + +Added the I<-lining>, I<-oldstyle>, I<-tabular> and I<-proportional> +command line options. + =item I<2013-07-25> The generated F files now use the I package instead of -- cgit v1.2.3