summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
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 /Master/texmf-dist
parent0f30826573bc8345b0cb2c635d74c0a6b7e084a0 (diff)
fontools (21jan14)
git-svn-id: svn://tug.org/texlive/trunk@32749 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-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
6 files changed, 111 insertions, 92 deletions
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