summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-01-22 00:37:42 +0000
committerKarl Berry <karl@freefriends.org>2014-01-22 00:37:42 +0000
commitaed84d3dacda585be994298bcd449fdb99fa01ab (patch)
tree96ccd99c854627d113512e2cd09322b4158d3fbf
parent0f30826573bc8345b0cb2c635d74c0a6b7e084a0 (diff)
fontools (21jan14)
git-svn-id: svn://tug.org/texlive/trunk@32749 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/fontools/autoinst129
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/glossaries/makeglossaries134
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/jfontmaps/kanji-config-updmap-sys.sh9
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/jfontmaps/kanji-config-updmap.pl15
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/jfontmaps/kanji-fontmap-creator.pl6
-rw-r--r--Master/texmf-dist/doc/man/man1/afm2afm.man1.pdfbin7034 -> 7034 bytes
-rw-r--r--Master/texmf-dist/doc/man/man1/autoinst.168
-rw-r--r--Master/texmf-dist/doc/man/man1/autoinst.man1.pdfbin30837 -> 30602 bytes
-rw-r--r--Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdfbin7754 -> 7754 bytes
-rw-r--r--Master/texmf-dist/doc/support/fontools/README6
-rwxr-xr-xMaster/texmf-dist/scripts/fontools/autoinst129
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
index 1485775f917..e1066b0fec2 100644
--- a/Master/texmf-dist/doc/man/man1/afm2afm.man1.pdf
+++ b/Master/texmf-dist/doc/man/man1/afm2afm.man1.pdf
Binary files differ
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
index a1463eb0121..8950f9d3cf2 100644
--- a/Master/texmf-dist/doc/man/man1/autoinst.man1.pdf
+++ b/Master/texmf-dist/doc/man/man1/autoinst.man1.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf b/Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf
index b6881222e42..d86e083a750 100644
--- a/Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf
+++ b/Master/texmf-dist/doc/man/man1/ot2kpx.man1.pdf
Binary files differ
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