diff options
author | Karl Berry <karl@freefriends.org> | 2014-01-22 00:37:42 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-01-22 00:37:42 +0000 |
commit | aed84d3dacda585be994298bcd449fdb99fa01ab (patch) | |
tree | 96ccd99c854627d113512e2cd09322b4158d3fbf | |
parent | 0f30826573bc8345b0cb2c635d74c0a6b7e084a0 (diff) |
fontools (21jan14)
git-svn-id: svn://tug.org/texlive/trunk@32749 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-x | Build/source/texk/texlive/linked_scripts/fontools/autoinst | 129 | ||||
-rwxr-xr-x | Build/source/texk/texlive/linked_scripts/glossaries/makeglossaries | 134 | ||||
-rwxr-xr-x | Build/source/texk/texlive/linked_scripts/jfontmaps/kanji-config-updmap-sys.sh | 9 | ||||
-rwxr-xr-x | Build/source/texk/texlive/linked_scripts/jfontmaps/kanji-config-updmap.pl | 15 | ||||
-rwxr-xr-x | Build/source/texk/texlive/linked_scripts/jfontmaps/kanji-fontmap-creator.pl | 6 | ||||
-rw-r--r-- | Master/texmf-dist/doc/man/man1/afm2afm.man1.pdf | bin | 7034 -> 7034 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/man/man1/autoinst.1 | 68 | ||||
-rw-r--r-- | Master/texmf-dist/doc/man/man1/autoinst.man1.pdf | bin | 30837 -> 30602 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf | bin | 7754 -> 7754 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/support/fontools/README | 6 | ||||
-rwxr-xr-x | Master/texmf-dist/scripts/fontools/autoinst | 129 |
11 files changed, 301 insertions, 195 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/fontools/autoinst b/Build/source/texk/texlive/linked_scripts/fontools/autoinst index 99d44f96a67..5510ee8b31c 100755 --- a/Build/source/texk/texlive/linked_scripts/fontools/autoinst +++ b/Build/source/texk/texlive/linked_scripts/fontools/autoinst @@ -53,11 +53,6 @@ my $TODAY = sprintf "%04d/%02d/%02d", $y + 1900, $m + 1, $d; weight and width are combined into the NFSS series (unless *both* are 'regular', but we deal with that case separately). - The 'oblique' (aka 'slanted') shape is mapped to 'it' to make things - easier for ourselves. This means the program will fail for - font families that have both italic and oblique shapes, but I doubt - whether these exist (apart from Computer Modern, of course). - =end Comment =cut @@ -112,11 +107,11 @@ my %FD_SHAPE = ( it => 'it', cursive => 'it', kursiv => 'it', - inclined => 'it', - incline => 'it', - oblique => 'it', - slanted => 'it', - slant => 'it', + inclined => 'sl', + incline => 'sl', + oblique => 'sl', + slanted => 'sl', + slant => 'sl', romani => 'n', # Adobe Silentium Pro has two roman shapes; romanii => 'it', # we map the second one to 'it' ); @@ -124,7 +119,7 @@ my %FD_SHAPE = ( =begin Comment The next table is used to generate extra DeclareFontShape rules - in the .fd files that map slanted shapes to italic. + in the .fd files to map missing slanted shapes to italic or vice versa. =end Comment @@ -134,6 +129,9 @@ my %FD_SSUB = ( sl => 'it', scsl => 'scit', tlsl => 'tlit', + it => 'sl', + scit => 'scsl', + tlit => 'tlsl', ); =begin Comment @@ -276,13 +274,15 @@ my %STYLE_DEFAULTS = ( Each key in this table names a shape; the corresponding value is an anonymous hash with several key/value pairs: - code An anonymous hash with two possible keys: + code An anonymous hash with three possible keys: 'n' -> the NFSS code to use for this variant shape if the 'basic shape' is upright; 'it' -> the NFSS code to use for this variant shape - if the 'basic shape' is italic, slanted or oblique; - If the 'n' or 'it' entry is missing, the upright or italic - version of this variant shape will not be built. + if the 'basic shape' is italic + 'sl' -> the NFSS code to use for this variant shape + if the 'basic shape' is slanted (aka oblique); + If any entry is missing, the corresponding version + of this variant shape will not be built. reqd A list of required OpenType features; this shape is built if the font supports at least *one* of these features. @@ -302,21 +302,21 @@ my %STYLE_DEFAULTS = ( my %SHAPE = ( normal => { - code => { n => 'n', it => 'it' }, + code => { n => 'n', it => 'it', sl => 'sl' }, reqd => [], nice => ['kern', 'liga'], extra => '', name => '', }, smallcaps => { - code => { n => 'sc', it => 'scit' }, + code => { n => 'sc', it => 'scit', sl => 'scsl' }, reqd => ['smcp'], nice => ['kern', 'liga'], extra => '--unicoding="germandbls =: SSsmall"', name => 'sc', }, # '--feature=aalt' is in 'extra' instead of 'nice' because 'extra' - # comes last in the command line and hence overrides earlier options + # comes last in the command line; else 'aalt' might be overridden swash => { code => { n => 'nw', it => 'sw' }, reqd => ['swsh', 'dlig'], @@ -325,14 +325,14 @@ my %SHAPE = ( name => 'swash', }, titling => { - code => { n => 'tl', it => 'tlit' }, + code => { n => 'tl', it => 'tlit', sl => 'tlsl' }, reqd => ['titl', 'case', 'cpsp'], nice => ['kern', 'liga'], extra => '', name => 'titling', }, textcomp => { - code => { n => 'n', it => 'it' }, + code => { n => 'n', it => 'it', sl => 'sl' }, reqd => [], nice => ['onum'], extra => '', @@ -437,7 +437,7 @@ sub expand_shapes { sub has_reqd_shape { my ($font, $target) = @_; - return 0 unless defined $target; + return 0 unless defined $target->{code}{$font->{basicshape}}; return 1 unless @{$target->{reqd}}; return grep { $font->{feature}{$_} } @{$target->{reqd}}; } @@ -988,9 +988,30 @@ sub parse_basicinfo { } } -# $data{subfamily} =~ s/$info->{width}//xmsi; -# $data{subfamily} =~ s/$info->{weight}//xmsi; -# $data{subfamily} =~ s/$info->{shape}//xmsi; + # If font data parsing fails, we may end up with several fonts + # having the same values for all NFSS parameters. + # In that case, we divide the family into subfamilies and try again; + # hopefully, the NFSS paramaters in each subfamily will be unique. + # In many font families, each font is in a subfamily of its own; + # the 'subfamily'-strategy would then lead to a proliferation of + # subfamilies. To avoid this, we remove width, weight and shape + # from the font's 'subfamily' value. + my $subst; + $subst = join '|', + mqrs(grep { $FD_WIDTH{$_} eq $FD_WIDTH{$info->{width}} } + keys %FD_WIDTH); + $data{subfamily} =~ s/$subst//xmsi; + + $subst = join '|', + mqrs(grep { $FD_WEIGHT{$_} eq $FD_WEIGHT{$info->{weight}} } + keys %FD_WEIGHT); + $data{subfamily} =~ s/$subst//xmsi; + + $subst = join '|', + mqrs(grep { $FD_SHAPE{$_} eq $FD_SHAPE{$info->{shape}} } + keys %FD_SHAPE); + $data{subfamily} =~ s/$subst//xmsi; + $info->{name} = $data{postscriptname}; $info->{family} = $data{family}; @@ -1257,6 +1278,7 @@ END_STY_FONTAXES_START \let\texttitling\texttl \fa@naming@exception{shape}{{n}{tl}}{tl} \fa@naming@exception{shape}{{it}{tl}}{tlit} + \fa@naming@exception{shape}{{sl}{tl}}{tlsl} END_STY_FONTAXES_TL } @@ -1551,15 +1573,15 @@ and proportional variants), each with the following shapes: =over 2 -=over 6 +=over 8 =item I<n> Roman text -=item I<it> +=item I<it>, I<sl> -Italic (or oblique) text +Italic and slanted (sometimes called oblique) text =item I<sc> @@ -1577,18 +1599,17 @@ punctuation characters have been adjusted to suit all-caps 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<scit> +=item I<scit>, I<scsl> -Italic small caps +Italic and slanted small caps =item I<nw> -"Upright swash"; usually normal text with some "oldstyle" ligatures, -such as ct, sp and st. +"Upright swash"; usually normal text with "oldstyle" ligatures such as ct, sp and st. -=item I<tlit> +=item I<tlit>, I<tlsl> -Italic titling +Italic and slanted titling text =back @@ -1597,23 +1618,23 @@ Italic titling =item - For each text family: a family of TS1-encoded symbol fonts, -in roman and italic shapes. +in roman, italic and slanted shapes. =item - Four families with superiors, inferiors, numerators and denominators, -in roman and italic shapes. +in roman, italic and slanted shapes. =item - -An ornament family, in roman and italic shapes. +An ornament family, in roman, italic and slanted shapes. =back =back -Of course, if the fonts don't contain oldstyle digits, small caps etc., -the corresponding shapes and families are not created. +Of course, if the fonts don't contain italics, oldstyle digits, small caps +etc., the corresponding shapes and families are not created. Furthermore, the creation of most families and shapes can be controlled by command-line options (see L</"COMMAND-LINE OPTIONS"> below). @@ -1829,8 +1850,9 @@ with many widths and weights. Roman, Upright n [2] Italic it Cursive, Kursiv it - Oblique, Slanted it [3] - Incline(d) it [3] + Oblique sl [3] + Slanted sl [3] + Incline(d) sl [3] =head3 Notes: @@ -1848,10 +1870,7 @@ the first of these is mapped to "n", the second one to "it". =item [3] -Mapping the "Slanted", "Oblique" or "Inclined" shape to "it" instead of "sl" -simplifies B<autoinst>. Since font families with both italic and slanted -shapes do - to the best of my knowledge - not exist -(apart from Computer Modern), this shouldn't cause problems. +New in release 2014-01-21; before that, slanted fonts were mapped to "it". =back @@ -2083,7 +2102,7 @@ or Strawberry Perl (F<http://strawberryperl.com>). The B<FontPro> project (F<https://github.com/sebschub/FontPro>) offers very complete LaTeX support for Adobe's Minion Pro and Myriad Pro -(including math), and is currently working on Cronos Pro as well. +(including math), and is currently working on Cronos Pro. B<XeTeX> (F<http://www.tug.org/xetex>) and B<LuaTeX> (F<http://www.luatex.org>) are TeX engines that can use fonts in many formats @@ -2133,6 +2152,12 @@ GNU General Public License for more details. =over 12 +=item I<2014-01-21> + +"Oblique" or "slanted" fonts are now mapped to NFSS code "sl" instead +of "it"; added "ssub" rules to the <fd> files to substitute slanted fonts +for italic ones if the latter are missing. Fixed a few bugs. + =item I<2014-01-03> Added the I<-dryrun> and I<-logfile> options; changed which info is logged. @@ -2156,6 +2181,13 @@ The generated F<sty> files now use the I<mweights> package instead of redefining C<\mddefault> and C<\bfdefault>. Added C<scale> as an alias for the package option C<scaled>. +=back + + +=begin Really_old_history + +=over 12 + =item I<2013-02-06> Bugfix: the directory names for map and encoding files contained @@ -2166,13 +2198,6 @@ the "vendor" instead of the "typeface". Added extra "ssub" rules to the F<fd> files that substitute "b" for "bx". Verbose mode now also prints all generated commands before they're executed. -=back - - -=begin Really_old_history - -=over 12 - =item I<2012-10-25> Added extra "ssub" rules to the F<fd> files that substitute italic diff --git a/Build/source/texk/texlive/linked_scripts/glossaries/makeglossaries b/Build/source/texk/texlive/linked_scripts/glossaries/makeglossaries index b1c6782ac70..40088ddb71c 100755 --- a/Build/source/texk/texlive/linked_scripts/glossaries/makeglossaries +++ b/Build/source/texk/texlive/linked_scripts/glossaries/makeglossaries @@ -2,7 +2,7 @@ # File : makeglossaries # Author : Nicola Talbot -# Version : 2.10 (2013/12/01) +# Version : 2.12 (2014/01/20) # Description: simple Perl script that calls makeindex or xindy. # Intended for use with "glossaries.sty" (saves having to remember # all the various switches) @@ -27,9 +27,19 @@ # glossary-super.sty, glossaries.perl. # Also makeglossaries and makeglossaries. -my $version="2.09 (2013-11-12)"; +my $version="2.12 (2014-01-20)"; # History: +# v2.12 (2014/01/20) +# * Added check for '*' in istfilename +# * Fixed bug report +# http://www.dickimaw-books.com/cgi-bin/bugtracker.cgi?action=view&key=33 +# * Added error text hashes +# v2.11 (2014/01/17): +# * Added check for backslashes in -x, -m and -d paths +# * Added double-quotes around $appname in &run_app +# v2.10 (2013/12/01): +# * initialise $language to suppress warnings # v2.09 (2013-11-12): # * added check for -q switch when issuing warnings. # v2.08 (2013-10-14): @@ -138,6 +148,9 @@ my %languagemap = if ($opt_d) { + # v2.11 check for backslash character if on Windows + $opt_d=~s/\\/\//g if $^O=~/Win/; + if (chdir $opt_d) { print "Changed to '$opt_d'\n" unless ($opt_q); @@ -150,7 +163,44 @@ if ($opt_d) # v2.02: added: my $xdynotist = 1; -my $needcompatibilitymode=2; +# v2.13: removed +#my $needcompatibilitymode=2; + +# v2.13: added $istnotfound +my $istnotfound = 3; + +# v2.13: added error text: +my %makeindex_error_text = + ( + $xdynotist => "Style name indicates makeindex, but may be in xindy format.\n" + . "Remember to use \\setStyleFile to specify the name\n" + . "of the style file rather than redefining \\istfilename\n" + . "explicitly.", + $istnotfound => "Style file not found." + ); + +my %xindy_error_text = + ( + 'nosort' => "Sort key required for entries only containing command names", + 'istnotxdy' => + "Style name has xdy extension, but may be in makeindex format.\n" + . "Remember to use \\setStyleFile to specify the name\n" + . "of the style file rather than redefining \\istfilename\n" + . "explicitly.", + 'missingendquote' => + "You may have missed a \" character in a command such as \\GlsAddXdyLocation", + 'nolanguage' => + "No language detected.\nHave you remembered to use \\printglossary\n". + "or \\printglossaries in your document?", + 'nomain' => + "\nRemember to use package option 'nomain' if you don't\n". + "want to use the main glossary.", + 'badlocation' => + "You may have forgotten to add a location \n" + . "class with \\GlsAddLocation or you may have \n" + . "the format incorrect.\n", + 'comp207' => "You may need to add 'compatible-2.07' package option.\n", + ); # define known extensions @@ -218,6 +268,13 @@ unless ($istfile) my $xindyapp = ($opt_x ? $opt_x :'xindy'); my $makeindexapp = ($opt_m ? $opt_m :'makeindex'); +# v2.11 check for backslash character if on Windows +if ($^O=~/Win/) +{ + $xindyapp=~s/\\/\//g; + $makeindexapp=~s/\\/\//g; +} + # v1.5 save the general xindy switches my $xdyopts = ''; @@ -539,7 +596,17 @@ sub scan_aux{ $istfile = $1; # check if double quotes were added to \jobname - $istfile=~s/^"(.*)"\.ist$/$1.ist/; + # v2.12 added check for xdy (bug ID 33) + $istfile=~s/^"(.*)"\.(ist|xdy)$/$1.$2/; + + # v2.12 if on Windows, substitute any '*' with ' ' + # to compensate for MiKTeX bug + # http://sourceforge.net/p/miktex/bugs/2301/ + + if ($^O=~/Win/) + { + $istfile=~tr/\*/ /; + } } # v1.5 added @@ -604,7 +671,8 @@ sub run_app{ return if ($dontexec); - if (open (STATUS, "$appname $appargs 2>&1 |")) + # v2.11 added double-quotes around $appname + if (open (STATUS, "\"$appname\" $appargs 2>&1 |")) { while (<STATUS>) { @@ -621,11 +689,11 @@ sub run_app{ } else { - $warnings = "WARNING: Unable to fork $appname: $!\n"; + $warnings = "WARNING: Unable to fork \"$appname\": $!\n"; print STDERR $warnings, "Retrying without redirection.\n"; - $status = `$appname $appargs`; + $status = `\"$appname\" $appargs`; $log = $status; @@ -638,7 +706,7 @@ sub run_app{ if (open LOGFILE, ">>$trans") { - print LOGFILE "\n\n*** Unable to execute: '$appname $appargs' ***\n\n"; + print LOGFILE "\n\n*** Unable to execute: '\"$appname\" $appargs' ***\n\n"; print LOGFILE "Status report:\n\n"; print LOGFILE "$log"; close LOGFILE; @@ -657,6 +725,12 @@ sub run_app{ { while (<TRANS>) { + if (/Index style file .* not found/) + { + $errno = $istnotfound; + last; + } + if (/Unknown specifier ;/) { $errno = $xdynotist; @@ -690,13 +764,13 @@ sub makeindex{ { my $diagnostic = ''; - if ($errno = $xdynotist) + if ($makeindex_error_text{$errno}) { - $diagnostic = - "Style name indicates makeindex, but may be in xindy format.\n" - . "Remember to use \\setStyleFile to specify the name\n" - . "of the style file rather than redefining \\istfilename\n" - . "explicitly."; + $diagnostic = $makeindex_error_text{$errno}; + } + else + { + $diagnostic = "Can't find diagnostic message for error number $errno"; } die "\n***Call to makeindex failed***\n", @@ -851,21 +925,15 @@ sub xindy{ if ($status=~/index 0 should be less than the length of the string/m) { - $diagnostic = - "Sort key required for entries only containing command names"; + $diagnostic = $xindy_error_text{nosort}; } elsif ($status=~/variable % has no value/m) { - $diagnostic = - "Style name has xdy extension, but may be in makeindex format.\n" - . "Remember to use \\setStyleFile to specify the name\n" - . "of the style file rather than redefining \\istfilename\n" - . "explicitly."; + $diagnostic = $xindy_error_text{istnotxindy}; } elsif ($status=~/Possible read-error due to ill-formed string " :sep/m) { - $diagnostic = - "You may have missed a \" character in a command such as \\GlsAddXdyLocation"; + $diagnostic = $xindy_error_text{missingendquote}; } elsif (not $language) { @@ -875,10 +943,7 @@ sub xindy{ # because the user has a customized style file that # contains the language settings. - $diagnostic = - "No language detected.". - "\nHave you remembered to use \\printglossary\n". - "or \\printglossaries in your document?"; + $diagnostic = $xindy_error_text{nolanguage}; if ($in eq 'glo') { @@ -886,9 +951,7 @@ sub xindy{ # glossary and has forgotten to suppress it with the # "nomain" package option - $diagnostic .= - "\nRemember to use package option 'nomain' if you don't\n". - "want to use the main glossary."; + $diagnostic .= $xindy_error_text{nomain}; } } @@ -907,16 +970,12 @@ sub xindy{ if ($status=~/did not match any location-class/m) { - $diagwarn = "You may have forgotten to add a location \n" - . "class with \\GlsAddLocation or you may have \n" - . "the format incorrect.\n"; - + $diagwarn = $xindy_error_text{badlocation}; } if ($status=~/unknown attribute `pageglsnumberformat'/m) { - $diagwarn .= "You may need to add 'compatible-2.07' package " - . "option.\n"; + $diagwarn .= $xindy_error_text{comp207}; } if ($diagwarn) @@ -957,9 +1016,12 @@ sub HELP_MESSAGE{ print "\t\textension.\n"; print "\nGeneral Options:\n\n"; print "-o <gls>\tUse <gls> as the output file.\n"; + print "\t\t(Don't use -o if you have more than one glossary.)\n"; print "-q\t\tQuiet mode.\n"; print "-s <sty>\tEmploy <sty> as the style file.\n"; print "-t <log>\tEmploy <log> as the transcript file.\n"; + print "\t\t(Don't use -t if you have more than one glossary\n"; + print "\t\tor the transcripts will be overwritten.)\n"; print "-d <directory>\tDirectory in which the .aux, .glo etc files are located.\n", "\t\t(Default is the directory in which <filename> resides.)\n"; print "-n\t\tPrint the command that would normally be executed,\n", diff --git a/Build/source/texk/texlive/linked_scripts/jfontmaps/kanji-config-updmap-sys.sh b/Build/source/texk/texlive/linked_scripts/jfontmaps/kanji-config-updmap-sys.sh index 8ba3de7ab67..4d0944572a1 100755 --- a/Build/source/texk/texlive/linked_scripts/jfontmaps/kanji-config-updmap-sys.sh +++ b/Build/source/texk/texlive/linked_scripts/jfontmaps/kanji-config-updmap-sys.sh @@ -20,12 +20,5 @@ unset RUNNING_BSH test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' export PATH -v=`kpsewhich -var-value TEXMFSYSVAR` -c=`kpsewhich -var-value TEXMFSYSCONFIG` - -TEXMFVAR="$v" -TEXMFCONFIG="$c" -export TEXMFVAR TEXMFCONFIG - -exec kanji-config-updmap ${1+"$@"} +exec kanji-config-updmap --sys ${1+"$@"} diff --git a/Build/source/texk/texlive/linked_scripts/jfontmaps/kanji-config-updmap.pl b/Build/source/texk/texlive/linked_scripts/jfontmaps/kanji-config-updmap.pl index 642eed9ad9e..0b013f74c3e 100755 --- a/Build/source/texk/texlive/linked_scripts/jfontmaps/kanji-config-updmap.pl +++ b/Build/source/texk/texlive/linked_scripts/jfontmaps/kanji-config-updmap.pl @@ -1,11 +1,11 @@ #!/usr/bin/env perl # kanji-config-updmap: setup Japanese font embedding -# Version 20131120.0 +# Version 20140120.0 # # formerly known as updmap-setup-kanji # # Copyright 2004-2006 by KOBAYASHI R. Taizo for the shell version (updmap-otf) -# Copyright 2011-2013 by PREINING Norbert +# Copyright 2011-2014 by PREINING Norbert # # This file is licensed under GPL version 3 or any later version. # For copyright statements see end of file. @@ -22,7 +22,7 @@ use Getopt::Long qw(:config no_autoabbrev ignore_case_always); use strict; my $prg = "kanji-config-updmap"; -my $version = "20131120.0"; +my $version = '20140120.0'; my $updmap_real = "updmap"; my $updmap = $updmap_real; @@ -30,11 +30,13 @@ my $updmap = $updmap_real; my $dry_run = 0; my $opt_help = 0; my $opt_jis = 0; +my $opt_sys = 0; if (! GetOptions( "n|dry-run" => \$dry_run, "h|help" => \$opt_help, "jis2004" => \$opt_jis, + "sys" => \$opt_sys, "version" => sub { print &version(); exit(0); }, ) ) { die "Try \"$0 --help\" for more information.\n"; } @@ -48,6 +50,10 @@ my $nul = (win32() ? 'nul' : '/dev/null') ; if ($dry_run) { $updmap = "echo updmap"; } +if ($opt_sys) { + $updmap = "$updmap --sys" ; + $updmap_real = "$updmap_real --sys" ; +} if ($opt_help) { Usage(); @@ -118,7 +124,8 @@ sub Usage { Options: -n, --dry-run do not actually run updmap -h, --help show this message and exit - -jis2004 use JIS2004 variants for default fonts of (u)pTeX + --jis2004 use JIS2004 variants for default fonts of (u)pTeX + --sys run in sys mode, i.e., call updmap-sys --version show version information and exit EOF diff --git a/Build/source/texk/texlive/linked_scripts/jfontmaps/kanji-fontmap-creator.pl b/Build/source/texk/texlive/linked_scripts/jfontmaps/kanji-fontmap-creator.pl index c95923bc796..90c5c25778c 100755 --- a/Build/source/texk/texlive/linked_scripts/jfontmaps/kanji-fontmap-creator.pl +++ b/Build/source/texk/texlive/linked_scripts/jfontmaps/kanji-fontmap-creator.pl @@ -1,8 +1,8 @@ #!/usr/bin/env perl # # kanji-fontmap-creator -# (c) 2012-2013 Norbert Preining -# Version: 20131120.0 +# (c) 2012-2014 Norbert Preining +# Version: 20140120.0 # Licenced under the GPLv2 or any higher version # # gui to create map files for updmap(-setup-kanji) @@ -41,7 +41,7 @@ my $opt_help = 0; my $opt_version = 0; my $prg = "kanji-fontmap-creator"; -my $version = "20131120.0"; +my $version = "20140120.0"; # # global vars configuring operation 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 1485775f917..e1066b0fec2 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 ebdf80dfa6c..a666eecc921 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 "2014-01-03" "fontools" "Marc Penninga" +.TH AUTOINST 1 "2014-01-21" "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 @@ -162,35 +162,34 @@ Four text families (with lining and oldstyle digits, in both tabular and proportional variants), each with the following shapes: .RS 3 .RS 2 -.IP "\fIn\fR" 6 +.IP "\fIn\fR" 8 .IX Item "n" Roman text -.IP "\fIit\fR" 6 -.IX Item "it" -Italic (or oblique) text -.IP "\fIsc\fR" 6 +.IP "\fIit\fR, \fIsl\fR" 8 +.IX Item "it, sl" +Italic and slanted (sometimes called oblique) text +.IP "\fIsc\fR" 8 .IX Item "sc" Small caps -.IP "\fIsw\fR" 6 +.IP "\fIsw\fR" 8 .IX Item "sw" Swash -.IP "\fItl\fR" 6 +.IP "\fItl\fR" 8 .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 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 "\fInw\fR" 6 +.IP "\fIscit\fR, \fIscsl\fR" 8 +.IX Item "scit, scsl" +Italic and slanted small caps +.IP "\fInw\fR" 8 .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 +\&\*(L"Upright swash\*(R"; usually normal text with \*(L"oldstyle\*(R" ligatures such as ct, sp and st. +.IP "\fItlit\fR, \fItlsl\fR" 8 +.IX Item "tlit, tlsl" +Italic and slanted titling text .RE .RS 2 .RE @@ -199,18 +198,18 @@ Italic titling .RE .IP "\-" 3 For each text family: a family of TS1\-encoded symbol fonts, -in roman and italic shapes. +in roman, italic and slanted shapes. .IP "\-" 3 Four families with superiors, inferiors, numerators and denominators, -in roman and italic shapes. +in roman, italic and slanted shapes. .IP "\-" 3 -An ornament family, in roman and italic shapes. +An ornament family, in roman, italic and slanted shapes. .RE .RS 2 .RE .PP -Of course, if the fonts don't contain oldstyle digits, small caps etc., -the corresponding shapes and families are not created. +Of course, if the fonts don't contain italics, oldstyle digits, small caps +etc., the corresponding shapes and families are not created. Furthermore, the creation of most families and shapes can be controlled by command-line options (see \*(L"COMMAND-LINE \s-1OPTIONS\*(R"\s0 below). .PP @@ -400,8 +399,9 @@ with many widths and weights. \& Roman, Upright n [2] \& Italic it \& Cursive, Kursiv it -\& Oblique, Slanted it [3] -\& Incline(d) it [3] +\& Oblique sl [3] +\& Slanted sl [3] +\& Incline(d) sl [3] .Ve .PP \fINotes:\fR @@ -415,10 +415,7 @@ Adobe Silentium Pro contains two \*(L"Roman\*(R" shapes (\*(L"RomanI\*(R" and \* the first of these is mapped to \*(L"n\*(R", the second one to \*(L"it\*(R". .IP "[3]" 4 .IX Item "[3]" -Mapping the \*(L"Slanted\*(R", \*(L"Oblique\*(R" or \*(L"Inclined\*(R" shape to \*(L"it\*(R" instead of \*(L"sl\*(R" -simplifies \fBautoinst\fR. Since font families with both italic and slanted -shapes do \- to the best of my knowledge \- not exist -(apart from Computer Modern), this shouldn't cause problems. +New in release 2014\-01\-21; before that, slanted fonts were mapped to \*(L"it\*(R". .SS "A note for MiKTeX users" .IX Subsection "A note for MiKTeX users" Automatically installing the fonts into a suitable \s-1TEXMF\s0 tree @@ -613,7 +610,7 @@ or Strawberry Perl (\fIhttp://strawberryperl.com\fR). .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. +(including math), and is currently working on Cronos Pro. .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 @@ -649,6 +646,11 @@ but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of .SH "RECENT CHANGES" .IX Header "RECENT CHANGES" (See the source code for the rest of the story.) +.IP "\fI2014\-01\-21\fR" 12 +.IX Item "2014-01-21" +\&\*(L"Oblique\*(R" or \*(L"slanted\*(R" fonts are now mapped to \s-1NFSS\s0 code \*(L"sl\*(R" instead +of \*(L"it\*(R"; added \*(L"ssub\*(R" rules to the <fd> files to substitute slanted fonts +for italic ones if the latter are missing. Fixed a few bugs. .IP "\fI2014\-01\-03\fR" 12 .IX Item "2014-01-03" Added the \fI\-dryrun\fR and \fI\-logfile\fR options; changed which info is logged. @@ -668,11 +670,3 @@ command line options. The generated \fIsty\fR files now use the \fImweights\fR package instead of redefining \f(CW\*(C`\emddefault\*(C'\fR and \f(CW\*(C`\ebfdefault\*(C'\fR. Added \f(CW\*(C`scale\*(C'\fR as an alias for the package option \f(CW\*(C`scaled\*(C'\fR. -.IP "\fI2013\-02\-06\fR" 12 -.IX Item "2013-02-06" -Bugfix: the directory names for map and encoding files contained -the \*(L"vendor\*(R" instead of the \*(L"typeface\*(R". -.IP "\fI2013\-01\-03\fR" 12 -.IX Item "2013-01-03" -Added extra \*(L"ssub\*(R" rules to the \fIfd\fR files that substitute \*(L"b\*(R" for \*(L"bx\*(R". -Verbose mode now also prints all generated commands before they're executed. 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 a1463eb0121..8950f9d3cf2 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.man1.pdf b/Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf Binary files differindex b6881222e42..d86e083a750 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 096ae5953f6..e212f685129 100644 --- a/Master/texmf-dist/doc/support/fontools/README +++ b/Master/texmf-dist/doc/support/fontools/README @@ -60,9 +60,9 @@ See the GNU General Public License for more details. LICENSE & COPYRIGHT ------------------- -This software is copyright (C) 2005-2013 Marc Penninga. It is released under -the terms of the GNU General Public Licence. See the file GPLv2.txt for +This software is copyright (C) 2005-2014 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, 2014/01/03 + Marc Penninga, 2014/01/21 diff --git a/Master/texmf-dist/scripts/fontools/autoinst b/Master/texmf-dist/scripts/fontools/autoinst index 99d44f96a67..5510ee8b31c 100755 --- a/Master/texmf-dist/scripts/fontools/autoinst +++ b/Master/texmf-dist/scripts/fontools/autoinst @@ -53,11 +53,6 @@ my $TODAY = sprintf "%04d/%02d/%02d", $y + 1900, $m + 1, $d; weight and width are combined into the NFSS series (unless *both* are 'regular', but we deal with that case separately). - The 'oblique' (aka 'slanted') shape is mapped to 'it' to make things - easier for ourselves. This means the program will fail for - font families that have both italic and oblique shapes, but I doubt - whether these exist (apart from Computer Modern, of course). - =end Comment =cut @@ -112,11 +107,11 @@ my %FD_SHAPE = ( it => 'it', cursive => 'it', kursiv => 'it', - inclined => 'it', - incline => 'it', - oblique => 'it', - slanted => 'it', - slant => 'it', + inclined => 'sl', + incline => 'sl', + oblique => 'sl', + slanted => 'sl', + slant => 'sl', romani => 'n', # Adobe Silentium Pro has two roman shapes; romanii => 'it', # we map the second one to 'it' ); @@ -124,7 +119,7 @@ my %FD_SHAPE = ( =begin Comment The next table is used to generate extra DeclareFontShape rules - in the .fd files that map slanted shapes to italic. + in the .fd files to map missing slanted shapes to italic or vice versa. =end Comment @@ -134,6 +129,9 @@ my %FD_SSUB = ( sl => 'it', scsl => 'scit', tlsl => 'tlit', + it => 'sl', + scit => 'scsl', + tlit => 'tlsl', ); =begin Comment @@ -276,13 +274,15 @@ my %STYLE_DEFAULTS = ( Each key in this table names a shape; the corresponding value is an anonymous hash with several key/value pairs: - code An anonymous hash with two possible keys: + code An anonymous hash with three possible keys: 'n' -> the NFSS code to use for this variant shape if the 'basic shape' is upright; 'it' -> the NFSS code to use for this variant shape - if the 'basic shape' is italic, slanted or oblique; - If the 'n' or 'it' entry is missing, the upright or italic - version of this variant shape will not be built. + if the 'basic shape' is italic + 'sl' -> the NFSS code to use for this variant shape + if the 'basic shape' is slanted (aka oblique); + If any entry is missing, the corresponding version + of this variant shape will not be built. reqd A list of required OpenType features; this shape is built if the font supports at least *one* of these features. @@ -302,21 +302,21 @@ my %STYLE_DEFAULTS = ( my %SHAPE = ( normal => { - code => { n => 'n', it => 'it' }, + code => { n => 'n', it => 'it', sl => 'sl' }, reqd => [], nice => ['kern', 'liga'], extra => '', name => '', }, smallcaps => { - code => { n => 'sc', it => 'scit' }, + code => { n => 'sc', it => 'scit', sl => 'scsl' }, reqd => ['smcp'], nice => ['kern', 'liga'], extra => '--unicoding="germandbls =: SSsmall"', name => 'sc', }, # '--feature=aalt' is in 'extra' instead of 'nice' because 'extra' - # comes last in the command line and hence overrides earlier options + # comes last in the command line; else 'aalt' might be overridden swash => { code => { n => 'nw', it => 'sw' }, reqd => ['swsh', 'dlig'], @@ -325,14 +325,14 @@ my %SHAPE = ( name => 'swash', }, titling => { - code => { n => 'tl', it => 'tlit' }, + code => { n => 'tl', it => 'tlit', sl => 'tlsl' }, reqd => ['titl', 'case', 'cpsp'], nice => ['kern', 'liga'], extra => '', name => 'titling', }, textcomp => { - code => { n => 'n', it => 'it' }, + code => { n => 'n', it => 'it', sl => 'sl' }, reqd => [], nice => ['onum'], extra => '', @@ -437,7 +437,7 @@ sub expand_shapes { sub has_reqd_shape { my ($font, $target) = @_; - return 0 unless defined $target; + return 0 unless defined $target->{code}{$font->{basicshape}}; return 1 unless @{$target->{reqd}}; return grep { $font->{feature}{$_} } @{$target->{reqd}}; } @@ -988,9 +988,30 @@ sub parse_basicinfo { } } -# $data{subfamily} =~ s/$info->{width}//xmsi; -# $data{subfamily} =~ s/$info->{weight}//xmsi; -# $data{subfamily} =~ s/$info->{shape}//xmsi; + # If font data parsing fails, we may end up with several fonts + # having the same values for all NFSS parameters. + # In that case, we divide the family into subfamilies and try again; + # hopefully, the NFSS paramaters in each subfamily will be unique. + # In many font families, each font is in a subfamily of its own; + # the 'subfamily'-strategy would then lead to a proliferation of + # subfamilies. To avoid this, we remove width, weight and shape + # from the font's 'subfamily' value. + my $subst; + $subst = join '|', + mqrs(grep { $FD_WIDTH{$_} eq $FD_WIDTH{$info->{width}} } + keys %FD_WIDTH); + $data{subfamily} =~ s/$subst//xmsi; + + $subst = join '|', + mqrs(grep { $FD_WEIGHT{$_} eq $FD_WEIGHT{$info->{weight}} } + keys %FD_WEIGHT); + $data{subfamily} =~ s/$subst//xmsi; + + $subst = join '|', + mqrs(grep { $FD_SHAPE{$_} eq $FD_SHAPE{$info->{shape}} } + keys %FD_SHAPE); + $data{subfamily} =~ s/$subst//xmsi; + $info->{name} = $data{postscriptname}; $info->{family} = $data{family}; @@ -1257,6 +1278,7 @@ END_STY_FONTAXES_START \let\texttitling\texttl \fa@naming@exception{shape}{{n}{tl}}{tl} \fa@naming@exception{shape}{{it}{tl}}{tlit} + \fa@naming@exception{shape}{{sl}{tl}}{tlsl} END_STY_FONTAXES_TL } @@ -1551,15 +1573,15 @@ and proportional variants), each with the following shapes: =over 2 -=over 6 +=over 8 =item I<n> Roman text -=item I<it> +=item I<it>, I<sl> -Italic (or oblique) text +Italic and slanted (sometimes called oblique) text =item I<sc> @@ -1577,18 +1599,17 @@ punctuation characters have been adjusted to suit all-caps 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<scit> +=item I<scit>, I<scsl> -Italic small caps +Italic and slanted small caps =item I<nw> -"Upright swash"; usually normal text with some "oldstyle" ligatures, -such as ct, sp and st. +"Upright swash"; usually normal text with "oldstyle" ligatures such as ct, sp and st. -=item I<tlit> +=item I<tlit>, I<tlsl> -Italic titling +Italic and slanted titling text =back @@ -1597,23 +1618,23 @@ Italic titling =item - For each text family: a family of TS1-encoded symbol fonts, -in roman and italic shapes. +in roman, italic and slanted shapes. =item - Four families with superiors, inferiors, numerators and denominators, -in roman and italic shapes. +in roman, italic and slanted shapes. =item - -An ornament family, in roman and italic shapes. +An ornament family, in roman, italic and slanted shapes. =back =back -Of course, if the fonts don't contain oldstyle digits, small caps etc., -the corresponding shapes and families are not created. +Of course, if the fonts don't contain italics, oldstyle digits, small caps +etc., the corresponding shapes and families are not created. Furthermore, the creation of most families and shapes can be controlled by command-line options (see L</"COMMAND-LINE OPTIONS"> below). @@ -1829,8 +1850,9 @@ with many widths and weights. Roman, Upright n [2] Italic it Cursive, Kursiv it - Oblique, Slanted it [3] - Incline(d) it [3] + Oblique sl [3] + Slanted sl [3] + Incline(d) sl [3] =head3 Notes: @@ -1848,10 +1870,7 @@ the first of these is mapped to "n", the second one to "it". =item [3] -Mapping the "Slanted", "Oblique" or "Inclined" shape to "it" instead of "sl" -simplifies B<autoinst>. Since font families with both italic and slanted -shapes do - to the best of my knowledge - not exist -(apart from Computer Modern), this shouldn't cause problems. +New in release 2014-01-21; before that, slanted fonts were mapped to "it". =back @@ -2083,7 +2102,7 @@ or Strawberry Perl (F<http://strawberryperl.com>). The B<FontPro> project (F<https://github.com/sebschub/FontPro>) offers very complete LaTeX support for Adobe's Minion Pro and Myriad Pro -(including math), and is currently working on Cronos Pro as well. +(including math), and is currently working on Cronos Pro. B<XeTeX> (F<http://www.tug.org/xetex>) and B<LuaTeX> (F<http://www.luatex.org>) are TeX engines that can use fonts in many formats @@ -2133,6 +2152,12 @@ GNU General Public License for more details. =over 12 +=item I<2014-01-21> + +"Oblique" or "slanted" fonts are now mapped to NFSS code "sl" instead +of "it"; added "ssub" rules to the <fd> files to substitute slanted fonts +for italic ones if the latter are missing. Fixed a few bugs. + =item I<2014-01-03> Added the I<-dryrun> and I<-logfile> options; changed which info is logged. @@ -2156,6 +2181,13 @@ The generated F<sty> files now use the I<mweights> package instead of redefining C<\mddefault> and C<\bfdefault>. Added C<scale> as an alias for the package option C<scaled>. +=back + + +=begin Really_old_history + +=over 12 + =item I<2013-02-06> Bugfix: the directory names for map and encoding files contained @@ -2166,13 +2198,6 @@ the "vendor" instead of the "typeface". Added extra "ssub" rules to the F<fd> files that substitute "b" for "bx". Verbose mode now also prints all generated commands before they're executed. -=back - - -=begin Really_old_history - -=over 12 - =item I<2012-10-25> Added extra "ssub" rules to the F<fd> files that substitute italic |