summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-01-21 01:33:46 +0000
committerKarl Berry <karl@freefriends.org>2009-01-21 01:33:46 +0000
commita56f8ba40eca9bd44ddf2b7d60e6ebcaf9e56378 (patch)
treef6b4ed0847f81ebbb33bb4de77d212d1b0d0f939
parent5b632ae32732af1b02c125a1b04d44e5236d4a66 (diff)
accfonts 0.24 (20jan09)
git-svn-id: svn://tug.org/texlive/trunk@11936 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/fonts/accfonts/CHANGES30
-rw-r--r--Master/texmf-dist/doc/fonts/accfonts/README148
-rwxr-xr-xMaster/texmf-dist/doc/fonts/accfonts/mkt1font88
-rwxr-xr-xMaster/texmf-dist/doc/fonts/accfonts/vpl2ovp109
-rwxr-xr-xMaster/texmf-dist/doc/fonts/accfonts/vpl2vpl31
-rw-r--r--Master/texmf-dist/tex/latex/accfonts/IndUni_Omega.def137
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
7 files changed, 347 insertions, 198 deletions
diff --git a/Master/texmf-dist/doc/fonts/accfonts/CHANGES b/Master/texmf-dist/doc/fonts/accfonts/CHANGES
index 01af0961fc6..92a5b8312f9 100644
--- a/Master/texmf-dist/doc/fonts/accfonts/CHANGES
+++ b/Master/texmf-dist/doc/fonts/accfonts/CHANGES
@@ -253,8 +253,8 @@ A. Changes to mkt1font
Changed FamilyName to remove only the final one of a number of
hyphenated elements from the font name.
-Changes tbetween release 0.222 and release 0.23
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Changes between release 0.222 and release 0.23
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A. Changes to mkt1font
~~~~~~~~~~~~~~~~~~~~~~
@@ -298,3 +298,29 @@ U+0304 + U+0301 ("a" + macron + acute). This is a considerable
advantage, given the different possible ways in which Unicode can be,
and is, used.
+Changes between release 0.23 and release 0.24
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+A. Changes to mkt1font
+~~~~~~~~~~~~~~~~~~~~~~
+
+The format expected of glyph names has been brought into line with
+Adobe's specification, i.e. they may contain upper- and lower-case
+letters, numerals, "_" and ".", but must begin with a letter or with
+"_". The format expected of PFB head and tail material has been made
+less restrictive, to match the realities of perceived usage. A bug in
+digraph creation has been fixed. A "dotlessj" character is created for
+use with superscript accents. Full Flex hinting is now supported.
+
+B. Changes to vpl2vpl
+~~~~~~~~~~~~~~~~~~~~~
+
+The help information has been improved.
+
+C. Changes to vpl2ovp
+~~~~~~~~~~~~~~~~~~~~~
+
+A bug has been fixed that generated "ghost" replicas of some existing
+accent characters in the Private Use Area. The handling of digraphs
+and underscored digraphs has been brought into better Unicode
+compliance. The help information has also been improved.
diff --git a/Master/texmf-dist/doc/fonts/accfonts/README b/Master/texmf-dist/doc/fonts/accfonts/README
index 7f775f1b858..79431d76537 100644
--- a/Master/texmf-dist/doc/fonts/accfonts/README
+++ b/Master/texmf-dist/doc/fonts/accfonts/README
@@ -133,28 +133,28 @@ on the command line, as follows:
-n should name the font it is intended to generate. Avoid names
such as "myfont", as both mkt1font and other programs attempt
to draw conclusions from the name; better would be something
- like "Utopia_French-BoldItalic". The generated font files will
- also use this for their basename.
+ like "Utopia_French-BoldItalic". The generated font files
+ will also use this for their basename.
-d should refer to a font definition file. This file (which could
- usefully be named, e.g., "French.def") should consist of lines
- of character definitions, in the form
+ usefully be named, e.g., "French.def") should consist of
+ lines of character definitions, in the form
"number" "character"
or
"number" "character" "accent"
Here "number" represents the character's position in the new
encoding and may be expressed in decimal, octal or hex;
- "character" names the character (e.g. "comma", "eight", "A")
- or consists of the word ".notdef" (indicating that the
- specified number's "slot" in the new encoding is to be empty);
- and "accent" optionally names an accent to be placed on the
- character. In addition to the standard accents available in
- PostScript fonts, "underbar" and "underdot" are also available,
- as are "under" versions of all the normal superscript accents
- ("underdieresis", "underring", etc.). The Indian accent
- "candrabindu" may also be specified: it is formed by
- overprinting a breve with a dotaccent. Finally, "overdot" may
- be used as a synonym for "dotaccent".
+ "character" names the character (e.g. "comma", "eight",
+ "A") or consists of the word ".notdef" (indicating that
+ the specified number's "slot" in the new encoding is to be
+ empty); and "accent" optionally names an accent to be placed
+ on the character. In addition to the standard accents available
+ in PostScript fonts, "underbar" and "underdot" are also
+ available, as are "under" versions of all the normal
+ superscript accents ("underdieresis", "underring", etc.).
+ The Indian accent "candrabindu" may also be specified: it
+ is formed by overprinting a breve with a dotaccent. Finally,
+ "overdot" may be used as a synonym for "dotaccent".
If the character named in the "accent" position is not in fact
a valid accent character, the program interprets the definition
@@ -210,22 +210,19 @@ Vpl2vpl
Syntax: vpl2vpl -d definition-file [-s shrink-factor]
[-c candrabindu-adjustment] [-b] vpl-file
-Vpl2vpl creates new TeX virtual fonts based on existing virtual
-fonts ("input fonts"). A successful run will read a vpl (Virtual
-Property List) file and a definition file, and will generate a new
-vpl file on standard output. The input font is assumed to adhere to
-the standard TeX encoding for text fonts unless it was created with
-the program afm2tfm, in which case it is assumed to conform to the
-encoding specified in the file dvips.enc. In either case, the name
-of the input font is assumed to be the name of the input file
-without its .vpl extension: it must conform to normal TeX
-conventions for naming fonts, as vpl2vpl attempts to draw
-conclusions from it about the kind of font it is dealing with.
-
-In the case of a non-virtual font (such as the Computer Modern
-fonts), use a pl (Property List) file, created with the standard
-utility tftopl, as the input file in place of a vpl file; vpl2vpl
-will make the necessary changes on the fly.
+Vpl2vpl creates new TeX virtual fonts based on existing fonts or
+virtual fonts ("input fonts"). A successful run will read a pl
+(Property List) or vpl (Virtual Property List) file and a definition
+file, and will generate a new vpl (Virtual Property List) file on
+standard output. The input font is assumed to adhere to the standard
+TeX encoding for text fonts unless it was created with either of the
+programs afm2pl or afm2tfm, in which case it is assumed to conform to
+(respectively) the Adobe Standard Encoding or the encoding specified
+in the file dvips.enc. In either case, the name of the input font is
+assumed to be the name of the input file without its .vpl or .pl
+extension: it must conform to normal TeX conventions for naming fonts,
+as vpl2vpl attempts to draw conclusions from it about the kind of font
+it is dealing with.
A typical complete sequence of commands to create a new virtual
font might therefore be
@@ -253,9 +250,9 @@ certain modifications are made to input fonts following the
dvips.enc encoding to bring them into greater conformity with the
TeX norm. In particular, the characters dotaccent and hungarumlaut
are placed in the positions assigned by TeX ("5F, "7D), not those
-enforced by dvips.enc ("C7, "CD). The f-ligatures, double quotes and
-dashes are also moved from the upper half of the character set to
-their normal TeX positions. As a result, the following characters
+enforced by dvips.enc ("C7, "CD). The f-ligatures, double quotes
+and dashes are also moved from the upper half of the character set
+to their normal TeX positions. As a result, the following characters
are not found in the lower half of the character set: quotesingle,
quotedbl, backslash, underscore, braceleft, bar, braceright. These
characters can, however, be assigned positions in the output font if
@@ -265,25 +262,24 @@ their dvips.enc positions if this were desired.)
Options:
-d should refer to a font definition file. This file (which could
- usefully be named, e.g., "French.def") should consist of lines
- of character definitions, in the form
+ usefully be named, e.g., "French.def") should consist of
+ lines of character definitions, in the form
"number" "character"
or
"number" "character" "accent"
-
Here "number" represents the character's position in the new
encoding and may be expressed in decimal, octal or hex;
- "character" names the character (e.g. "comma", "eight", "A") or
- consists of the word ".notdef" (indicating that the specified
- number's "slot" in the new encoding is to be empty); and
- "accent" optionally names an accent to be placed on the
- character. In addition to the standard accents available in
- PostScript fonts, "underbar" and "underdot" are also available,
- as are "under" versions of all the normal superscript accents
- ("underdieresis", "underring", etc.). The Indian accent
- "candrabindu" may also be specified: it is formed by
- overprinting a breve with a dotaccent. Finally, "overdot" may
- be used as a synonym for "dotaccent".
+ "character" names the character (e.g. "comma", "eight",
+ "A") or consists of the word ".notdef" (indicating that
+ the specified number's "slot" in the new encoding is to be
+ empty); and "accent" optionally names an accent to be placed
+ on the character. In addition to the standard accents available
+ in PostScript fonts, "underbar" and "underdot" are also
+ available, as are "under" versions of all the normal
+ superscript accents ("underdieresis", "underring", etc.).
+ The Indian accent "candrabindu" may also be specified: it
+ is formed by overprinting a breve with a dotaccent. Finally,
+ "overdot" may be used as a synonym for "dotaccent".
If the character named in the "accent" position is not in fact
a valid accent character, the program interprets the definition
@@ -335,22 +331,20 @@ Syntax: vpl2ovp -d definition-file [-s shrink-factor]
[-c candrabindu-adjustment] [-b] vpl-file
Vpl2ovp creates new Omega virtual fonts based on existing TeX
-virtual fonts ("input fonts"). A successful run will read a vpl
-(Virtual Property List) file and a definition file, and will generate
-a new ovp file on standard output. The input font is assumed to adhere
-to the standard TeX encoding for text fonts unless it was created with
-the program afm2tfm, in which case it is assumed to conform to the
-encoding specified in the file dvips.enc. In either case, the name
-of the input font is assumed to be the name of the input file
-without its .vpl extension: it must conform to normal TeX
-conventions for naming fonts, as vpl2ovp attempts to draw
+fonts or virtual fonts ("input fonts"). A successful run will
+read a pl (Property List) or vpl (Virtual Property List) file
+and a definition file, and will generate a new ovp (Omega
+Virtual Property List) file on standard output. The input font
+is assumed to adhere to the standard TeX encoding for text
+fonts unless it was created with either of the programs afm2pl
+or afm2tfm, in which case it is assumed to conform to
+(respectively) the Adobe Standard Encoding or the encoding
+specified in the file dvips.enc. In either case, the name of
+the input font is assumed to be the name of the input file
+without its .vpl or .pl extension: it must conform to normal
+TeX conventions for naming fonts, as vpl2ovp attempts to draw
conclusions from it about the kind of font it is dealing with.
-In the case of a non-virtual font (such as the Computer Modern
-fonts), use a pl (Property List) file, created with the standard
-utility tftopl, as the input file in place of a vpl file; vpl2ovp
-will make the necessary changes on the fly.
-
A typical complete sequence of commands to create a new virtual
font might therefore be
tftopl cmr10.tfm cmr10.pl
@@ -371,16 +365,16 @@ Another approach for a PostScript font is to use afm2tfm:
values for the heights of some characters, and this can lead to
bad accent placing.
-In order to keep the whole of the character range "F0-"FF free
-for the requirements of the encoding specified in the definition
-file, certain modifications are made to input fonts following the
-dvips.enc encoding to bring them into greater conformity with the
-TeX norm. In particular, the characters dotaccent and hungarumlaut
-are placed in the positions assigned by TeX ("5F, "7D), not those
-enforced by dvips.enc ("C7, "CD). The f-ligatures, double quotes
-and dashes are also moved from the upper half of the character set
-to their normal TeX positions. As a result, the following characters
-are not found in the lower half of the character set: quotesingle,
+In order to keep the whole of the character range "F0-"FF free for
+the requirements of the encoding specified in the definition file,
+certain modifications are made to input fonts following the dvips.enc
+encoding to bring them into greater conformity with the TeX norm. In
+particular, the characters dotaccent and hungarumlaut are placed in
+the positions assigned by TeX ("5F, "7D), not those enforced by
+dvips.enc ("C7, "CD). The f-ligatures, double quotes and dashes are
+also moved from the upper half of the original 8-bit character set to
+their normal TeX positions. As a result, the following characters are
+not found in the lower half of the character set: quotesingle,
quotedbl, backslash, underscore, braceleft, bar, braceright. These
characters can, however, be assigned positions in the output font if
they are needed. (Indeed, they could all be explicitly restored to
@@ -389,7 +383,7 @@ their dvips.enc positions if this were desired.)
Options:
-d should refer to a font definition file. This file (which could
- usefully be named, e.g., "French.def") should consist of
+ usefully be named, e.g., "Unicode1.def") should consist of
lines of character definitions, in the form
"number" "character"
or
@@ -408,6 +402,14 @@ Options:
is formed by overprinting a breve with a dotaccent. Finally,
"overdot" may be used as a synonym for "dotaccent".
+ Note that all accents used in defining accented characters must
+ themselves be defined in the .def file. Those which exist in the
+ source font should simply be referenced by name in their
+ appropriate Unicode position (e.g. "0x0304 macron"); those
+ which do not should be defined as the character "space"
+ followed by the name of the accent (e.g. "0x0310 space
+ candrabindu").
+
If the character named in the "accent" position is not in fact
a valid accent character, the program interprets the definition
as a request for a digraph formed from the "character" and the
diff --git a/Master/texmf-dist/doc/fonts/accfonts/mkt1font b/Master/texmf-dist/doc/fonts/accfonts/mkt1font
index c092673cb3f..a82e9181437 100755
--- a/Master/texmf-dist/doc/fonts/accfonts/mkt1font
+++ b/Master/texmf-dist/doc/fonts/accfonts/mkt1font
@@ -17,7 +17,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-$version = 0.23;
+$version = 0.24;
#-----------------------------------------------------------------------------#
$description =
"Syntax: mkt1font -n fontname -d definition-file -a afm-file -f font-file
@@ -181,13 +181,13 @@ while (<AFM>) {
#
# Encoded chars
#
- if (/(^C (\d+) ; WX \d+ ; N ([a-zA-Z]+|\.notdef) ; B .* ;( L .* ;)?)\r?$/) {
+ if (/(^C (\d+) ; WX \d+ ; N ([a-zA-Z_][a-zA-Z0-9_.]*|\.notdef) ; B .* ;( L .* ;)?)\r?$/) {
$metrics_enc[$2] = "$1\n";
}
#
# Unencoded chars
#
- elsif (/(^C -1 ; WX \d+ ; N ([a-zA-Z]+|\.notdef) ; B .* ;( L .* ;)?)\r?$/) {
+ elsif (/(^C -1 ; WX \d+ ; N ([a-zA-Z_][a-zA-Z0-9_.]*|\.notdef) ; B .* ;( L .* ;)?)\r?$/) {
$metrics_unenc .= "$1\n";
}
#
@@ -269,7 +269,7 @@ while (<DIS>) {
# Store character definitions in %chstrings
#
$l = $_ = <DIS>;
- if (/^\/([a-zA-Z]+|\.notdef|\.null) {$/) {
+ if (/^\/([a-zA-Z_][a-zA-Z0-9_.]*|\.notdef|\.null) {$/) {
$chname = $1;
$chdef = $_;
do {
@@ -284,19 +284,18 @@ while (<DIS>) {
$chdef =~ s/^(\t})($rend|$renp)$/$1 $2/m;
$chstrings{$chname} = $chdef;
}
- until ($l !~ /^\/([a-zA-Z]+|\.notdef|\.null) {$/);
- next;
- }
- #
- # File tail
- #
- if (/^end$/) {
- $distail = $_;
- do {
- $_ = <DIS>;
- $distail .= $_;
+ until ($l !~ /^\/([a-zA-Z_][a-zA-Z0-9_.]*|\.notdef|\.null) {$/);
+ #
+ # File tail
+ #
+ if (/^end/) {
+ $distail = $_;
+ do {
+ $_ = <DIS>;
+ $distail .= $_;
+ }
+ until eof(DIS);
}
- until eof(DIS);
}
}
close DIS;
@@ -327,6 +326,25 @@ $v2 = $capheight - $xheight; # vertical offset for accented caps etc
#
$itadj = sin($italangle * 3.14159 / 180) / cos($italangle * 3.14159 / 180);
+#################
+# Create dotlessj
+#################
+#
+$chstrings{dotlessj} = $chstrings{j} . "\n";
+$chstrings{dotlessj} =~ /\A(.*?)(\t[-0-9 ]+?[rvh]moveto)(.*?closepath)(.*?(-?\d+) [rv]moveto.*?closepath)(.*?)\Z/ms;
+($one, $two, $three, $four, $five, $six) = ($1, $2, $3, $4, $5, $6);
+if ($five > 0) { $chstrings{dotlessj} = $one . $two . $three . $six }
+else {
+ findend("j1", ($two . $three));
+ $j1end = "\t$hend{j1} $vend{j1} rmoveto";
+ $chstrings{dotlessj} = $one . $j1end . $four . $six
+}
+$chstrings{dotlessj} =~s/\A\/j /\/dotlessj /m;
+$chdefsnum += 1;
+getcharinfo("j");
+getcharinfo("dotlessi");
+$metrics_unenc .= "C -1 ; WX $chwd{j} ; N dotlessj ; B $chls{j} $chdp{j} $chrs{j} $chht{dotlessi} ;\n";
+
######################
# Build the characters
######################
@@ -335,7 +353,7 @@ $itadj = sin($italangle * 3.14159 / 180) / cos($italangle * 3.14159 / 180);
# First build a list of definitions supplied by user
#
for (@deflines) {
- if (/^\s*(\d+|0[0-7]+|0x[0-9a-fA-F]+)\s+([a-zA-Z]+?|\.notdef)(?:\s+([a-zA-Z]+))?$/) {
+ if (/^\s*(\d+|0[0-7]+|0x[0-9a-fA-F]+)\s+([a-zA-Z_][a-zA-Z0-9_.]*?|\.notdef)(?:\s+([a-zA-Z_][a-zA-Z0-9_.]*))?$/) {
($num, $char, $acc) = ($1, $2, $3);
$num = oct $num if $num =~ /^0/;
if ($num > 255) { die "Bad definition (number out of range): $_\n" }
@@ -477,7 +495,7 @@ while (@defs) {
#
open OUTAFM, ">$opt_n.afm";
foreach (@metrics_enc) { # Avoid duplicate entries
- ($chname) = /( ; N [a-zA-Z]+ ; )/;
+ ($chname) = /( ; N [a-zA-Z_][a-zA-Z0-9_.]* ; )/;
$metrics_unenc =~ s/^C -1 .*$chname.*\n//gm if $chname;
}
$chmetricnum = split(/\n/, $metrics_unenc);
@@ -490,7 +508,7 @@ for $i (0 .. 255) {
$line = $metrics_enc[$i];
if ($line) {
print OUTAFM $line;
- if ($line =~ /^C \d+ ; WX \d+ ; N ([a-zA-Z]*) ; /) {
+ if ($line =~ /^C \d+ ; WX \d+ ; N ([a-zA-Z_][a-zA-Z0-9_.]*) ; /) {
$encoding .= "dup $i /$1 put\n";
}
}
@@ -530,17 +548,17 @@ $disbanner .= "% Command line: $cmdline";
open DIS, $disfile1;
while (<DIS>) { # get header
s/^(%!.*: ).*$/$1$opt_n\n$disbanner/;
- s/^(\/FullName \().*(\).*)$/$1$opt_n$2/;
- s/^(\/FamilyName \().*(\).*)$/$1$famname$2/;
- s/^(\/FontName \/).*?( .*)$/$1$opt_n$2/;
- s/^(\/FontBBox {-?\d+ )-?\d+ -?\d+ -?\d+/$1$maxdp $maxrs $maxht/m;
+ s/(\/FullName \().*(\).*)$/$1$opt_n$2/;
+ s/(\/FamilyName \().*(\).*)$/$1$famname$2/;
+ s/(\/FontName \/).*?( .*)$/$1$opt_n$2/;
+ s/(\/FontBBox {-?\d+ )-?\d+ -?\d+ -?\d+/$1$maxdp $maxrs $maxht/m;
if (/^\/Encoding /) {
print OUTDIS $encoding;
next;
}
- next if (/^\/UniqueID .*$/);
- s /^(\/BlueValues \[.*)(\] def)$/$1 $accheight $accheight$2/;
- if (/^(\/Subrs )\d+( array)$/) {
+ next if (/\/UniqueID .*$/);
+ s /(\/BlueValues \[.*)(\] def)$/$1 $accheight $accheight$2/;
+ if (/(\/Subrs )\d+( array)$/) {
print OUTDIS "$1$subrsnum$2\n";
last;
}
@@ -596,6 +614,7 @@ sub supacc {
($old = $metrics_enc[$num]) =~ s/^C $num/C -1/;
$metrics_unenc .= $old unless $metrics_unenc =~ /$old/m;
if ($char eq "i") { $char = "dotlessi" }
+ if ($char eq "j") { $char = "dotlessj" }
if ($acc eq "overdot") { $acc = "dotaccent" }
if ($acc eq "candrabindu") {
$acc = "breve";
@@ -784,7 +803,7 @@ sub digraph {
$astr .= (max($chht{$char}, $chht{$acc})) . " ;\n";
$metrics_enc[$num] = $astr;
unless (defined $hend{$char}) { findend($char, $chstrings{$char}) }
- $H = $chwd{$char} + $chls{$acc} + $kern - $hend{$char} - $chls{$char};
+ $H = $chwd{$char} + $chls{$acc} + $kern - $hend{$char};
$V = -$vend{$char};
$chstrings{$char} =~ /^\/$char {\n(\t.+?hsbw\n(.|\n)*?)\tendchar\n\t} $rend\n/m;
($chdef = $1) =~ s/-?\d+( hsbw\n)/$w$1/m;
@@ -897,12 +916,16 @@ sub fixshrink {
sub fixhints {
#
- # Collect the hints from the accent definition, remove them, adjust
- # for horizontal and vertical offset, and place them in a numbered
- # subroutine. Have the definition call the subroutine.
+ # First adjust any Flex "0 callsubr" lines for horizontal and
+ # vertical offset. Then collect the hints from the accent definition,
+ # remove them, adjust for horizontal and vertical offset, and
+ # place them in a numbered subroutine. Have the definition call
+ # the subroutine.
#
my ($nchar, $acc, $acdef, $h, $v) = @_;
my $subrdef;
+ $acdef =~ s[^(\t-?\d+ )(-?\d+) (-?\d+)( 0 callsubr)$]
+ [$1 . ($2 + $h) . " " . ($3 + $v) . $4]gme;
if ($subrdef = join("\n", grep /^\t.*[hv]stem$/, split(/\n/, $acdef))) {
$acdef = join("\n", grep !/^\t.*[hv]stem$/, split(/\n/, $acdef)) . "\n";
}
@@ -970,9 +993,10 @@ sub findend {
findend($char, $subrs[$1]);
last SWITCH;
};
- $line =~ /1 callothersubr$/
+ $line =~ /^\t-?\d+ (-?\d+) (-?\d+) 0 callsubr$/ # Flex
&& do {
- print STDERR "Warning: definition of character $char uses Flex\n";
+ $hend{$char} = $1;
+ $vend{$char} = $2;
last SWITCH;
};
}
diff --git a/Master/texmf-dist/doc/fonts/accfonts/vpl2ovp b/Master/texmf-dist/doc/fonts/accfonts/vpl2ovp
index 3bbc62ad669..a49259699a8 100755
--- a/Master/texmf-dist/doc/fonts/accfonts/vpl2ovp
+++ b/Master/texmf-dist/doc/fonts/accfonts/vpl2ovp
@@ -17,29 +17,27 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-$version = 0.23;
+$version = 0.24;
#------------------------------------------------------------------------#
$description =
"Syntax: vpl2ovp -d definition-file [-s shrink-factor]
[-c candrabindu-adjustment] [-b] vpl-file
Vpl2ovp creates new Omega virtual fonts based on existing TeX
-virtual fonts (\"input fonts\"). A successful run will read a vpl
-(Virtual Property List) file and a definition file, and will generate
-a new ovp file on standard output. The input font is assumed to adhere
-to the standard TeX encoding for text fonts unless it was created with
-the program afm2tfm, in which case it is assumed to conform to the
-encoding specified in the file dvips.enc. In either case, the name
-of the input font is assumed to be the name of the input file
-without its .vpl extension: it must conform to normal TeX
-conventions for naming fonts, as vpl2ovp attempts to draw
+fonts or virtual fonts (\"input fonts\"). A successful run will
+read a pl (Property List) or vpl (Virtual Property List) file
+and a definition file, and will generate a new ovp (Omega
+Virtual Property List) file on standard output. The input font
+is assumed to adhere to the standard TeX encoding for text
+fonts unless it was created with either of the programs afm2pl
+or afm2tfm, in which case it is assumed to conform to
+(respectively) the Adobe Standard Encoding or the encoding
+specified in the file dvips.enc. In either case, the name of
+the input font is assumed to be the name of the input file
+without its .vpl or .pl extension: it must conform to normal
+TeX conventions for naming fonts, as vpl2ovp attempts to draw
conclusions from it about the kind of font it is dealing with.
-In the case of a non-virtual font (such as the Computer Modern
-fonts), use a pl (Property List) file, created with the standard
-utility tftopl, as the input file in place of a vpl file; vpl2ovp
-will make the necessary changes on the fly.
-
A typical complete sequence of commands to create a new virtual
font might therefore be
tftopl cmr10.tfm cmr10.pl
@@ -60,16 +58,16 @@ Another approach for a PostScript font is to use afm2tfm:
values for the heights of some characters, and this can lead to
bad accent placing.
-In order to keep the whole of the character range \"F0-\"FF free
-for the requirements of the encoding specified in the definition
-file, certain modifications are made to input fonts following the
-dvips.enc encoding to bring them into greater conformity with the
-TeX norm. In particular, the characters dotaccent and hungarumlaut
-are placed in the positions assigned by TeX (\"5F, \"7D), not those
-enforced by dvips.enc (\"C7, \"CD). The f-ligatures, double quotes
-and dashes are also moved from the upper half of the character set
-to their normal TeX positions. As a result, the following characters
-are not found in the lower half of the character set: quotesingle,
+In order to keep the whole of the character range \"F0-\"FF free for
+the requirements of the encoding specified in the definition file,
+certain modifications are made to input fonts following the dvips.enc
+encoding to bring them into greater conformity with the TeX norm. In
+particular, the characters dotaccent and hungarumlaut are placed in
+the positions assigned by TeX (\"5F, \"7D), not those enforced by
+dvips.enc (\"C7, \"CD). The f-ligatures, double quotes and dashes are
+also moved from the upper half of the original 8-bit character set to
+their normal TeX positions. As a result, the following characters are
+not found in the lower half of the character set: quotesingle,
quotedbl, backslash, underscore, braceleft, bar, braceright. These
characters can, however, be assigned positions in the output font if
they are needed. (Indeed, they could all be explicitly restored to
@@ -78,7 +76,7 @@ their dvips.enc positions if this were desired.)
Options:
-d should refer to a font definition file. This file (which could
- usefully be named, e.g., \"French.def\") should consist of
+ usefully be named, e.g., \"Unicode1.def\") should consist of
lines of character definitions, in the form
\"number\" \"character\"
or
@@ -97,6 +95,14 @@ Options:
is formed by overprinting a breve with a dotaccent. Finally,
\"overdot\" may be used as a synonym for \"dotaccent\".
+ Note that all accents used in defining accented characters must
+ themselves be defined in the .def file. Those which exist in the
+ source font should simply be referenced by name in their
+ appropriate Unicode position (e.g. \"0x0304 macron\"); those
+ which do not should be defined as the character \"space\"
+ followed by the name of the accent (e.g. \"0x0310 space
+ candrabindu\").
+
If the character named in the \"accent\" position is not in fact
a valid accent character, the program interprets the definition
as a request for a digraph formed from the \"character\" and the
@@ -602,12 +608,10 @@ while (@defs) {
delete $allchars{$nchar2};
}
#
- # If the character is not a single codepoint (i.e. if it is stored
- # in the Private Use Area), store the info that will be needed to
- # have it linked into the LIGTABLE
+ # Store the info that will be needed to have the character
+ # linked into the LIGTABLE
#
- push @pualigs, "$char: (LIG $acc $nchar)";
- if (!defined $allchars{$acc}) { dummychar($dummycodepoint--, $acc) }
+ push @newligs, "$char: (LIG $acc $nchar)";
#
# Go!
#
@@ -638,14 +642,14 @@ while (@defs) {
# Sort out ligtable
###################
#
-# Pull in the Private Use Area ligatures
+# Pull in the newly created ligatures
#
-foreach $pualig (@pualigs) {
- $pualig =~ s/^(.+)://;
- $puaelm1 = $1;
- unless ($ligs =~ s/(^ \(LABEL $puaelm1\)\n)/$1$pualig\n/m) {
+foreach $newlig (@newligs) {
+ $newlig =~ s/^(.+)://;
+ $newelm1 = $1;
+ unless ($ligs =~ s/(^ \(LABEL $newelm1\)\n)/$1$newlig\n/m) {
$ligs =~ s[^( \)\n)]
- [ \(LABEL $puaelm1\)\n$pualig\n \(STOP\)\n$1]m
+ [ \(LABEL $newelm1\)\n$newlig\n \(STOP\)\n$1]m
}
}
#
@@ -965,6 +969,20 @@ sub underb {
$s3 = "(SETRULE R ${ \($thk) } R $w)";
$allchars{$id}{map} = " $s1\n$s2$s3\n";
$chars[$num] = $allchars{$id};
+ #
+ # If the character to be underscored is a digraph, fix up the LIGTABLE
+ #
+ if (grep /^$char$/, @digraphs) {
+ pop @newligs;
+ dummychar(0x035F, "uni035F") unless defined $allchars{uni035F};
+ $char =~ /^(.)(.)$/;
+ ($one, $two) = ($1, $2);
+ $one_ = $one . "_uni035F";
+ dummychar($dummycodepoint--, $one_) unless defined $allchars{$one_};
+ push @newligs, "$one: (LIG uni035F $one_)"
+ unless (grep /^$one: \(LIG uni035F $one_\)$/, @newligs);
+ push @newligs, "$one_: (LIG $two $id)";
+ }
}
sub digraph {
@@ -974,17 +992,14 @@ sub digraph {
my ($num, $char, $acc, $id) = @_;
my ($one, $two, $kern, $s1, $s2, $charZWJ);
#
- # Fiddle the ligature info to include Zero Width Joiner
+ # Remove the ligature info -- we don't want every occurrence of
+ # e.g."kh" to be converted into a digraph.
#
- if (!defined $allchars{ZWJ}) {
- dummychar(0x200D, ZWJ)
- }
- pop @pualigs;
- $charZWJ = $char . "ZWJ";
- dummychar($dummycodepoint--, $charZWJ) unless defined $allchars{$charZWJ};
- push @pualigs, "$char: (LIG ZWJ $charZWJ)"
- unless (grep /^$char: \(LIG ZWJ $charZWJ\)$/, @pualigs);
- push @pualigs, "$charZWJ: (LIG $acc $id)";
+ pop @newligs;
+ #
+ # List all digraphs for future reference
+ #
+ push @digraphs, $id;
if ($ligs =~ /^ \(LABEL $char\)\n(.*?)\n \(KRN $acc R (-?[0-9.]+)\)\n/ms) {
($one, $two) = ($1, $2);
}
diff --git a/Master/texmf-dist/doc/fonts/accfonts/vpl2vpl b/Master/texmf-dist/doc/fonts/accfonts/vpl2vpl
index d1e34e19dda..18bd1c4676c 100755
--- a/Master/texmf-dist/doc/fonts/accfonts/vpl2vpl
+++ b/Master/texmf-dist/doc/fonts/accfonts/vpl2vpl
@@ -17,28 +17,25 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-$version = 0.23;
+$version = 0.24;
#------------------------------------------------------------------------#
$description =
"Syntax: vpl2vpl -d definition-file [-s shrink-factor]
[-c candrabindu-adjustment] [-b] vpl-file
-Vpl2vpl creates new TeX virtual fonts based on existing virtual
-fonts (\"input fonts\"). A successful run will read a vpl (Virtual
-Property List) file and a definition file, and will generate a new
-vpl file on standard output. The input font is assumed to adhere to
-the standard TeX encoding for text fonts unless it was created with
-the program afm2tfm, in which case it is assumed to conform to the
-encoding specified in the file dvips.enc. In either case, the name
-of the input font is assumed to be the name of the input file
-without its .vpl extension: it must conform to normal TeX
-conventions for naming fonts, as vpl2vpl attempts to draw
-conclusions from it about the kind of font it is dealing with.
-
-In the case of a non-virtual font (such as the Computer Modern
-fonts), use a pl (Property List) file, created with the standard
-utility tftopl, as the input file in place of a vpl file; vpl2vpl
-will make the necessary changes on the fly.
+Vpl2vpl creates new TeX virtual fonts based on existing fonts or
+virtual fonts (\"input fonts\"). A successful run will read a pl
+(Property List) or vpl (Virtual Property List) file and a definition
+file, and will generate a new vpl (Virtual Property List) file on
+standard output. The input font is assumed to adhere to the standard
+TeX encoding for text fonts unless it was created with either of the
+programs afm2pl or afm2tfm, in which case it is assumed to conform to
+(respectively) the Adobe Standard Encoding or the encoding specified
+in the file dvips.enc. In either case, the name of the input font is
+assumed to be the name of the input file without its .vpl or .pl
+extension: it must conform to normal TeX conventions for naming fonts,
+as vpl2vpl attempts to draw conclusions from it about the kind of font
+it is dealing with.
A typical complete sequence of commands to create a new virtual
font might therefore be
diff --git a/Master/texmf-dist/tex/latex/accfonts/IndUni_Omega.def b/Master/texmf-dist/tex/latex/accfonts/IndUni_Omega.def
index 5b1f0900a4e..dee9c2850df 100644
--- a/Master/texmf-dist/tex/latex/accfonts/IndUni_Omega.def
+++ b/Master/texmf-dist/tex/latex/accfonts/IndUni_Omega.def
@@ -4,8 +4,13 @@
#
# Characters are intended to represent a complete
# set of those required for use with Indian languages in
-# transliteration (together with others commonly needed
-# in the same environment).
+# transliteration, together with others commonly needed
+# in the same environment. The "non-Indian" characters
+# form an almost complete implementation on MES1, but
+# are limited by the fact that some glyphs, though
+# present in later versions of the URW++ fonts, are not
+# present in all, and anyway cannot readily be accessed.
+# Such items are included in this list but commented out.
# ASCII: I should probably put in a complete list, or at least
# notdef the control codes and return other odds and ends to
@@ -53,31 +58,31 @@
0x00a3 sterling
0x00a4 currency
0x00a5 yen
-0x00a6 brokenbar
+#0x00a6 brokenbar
0x00a7 section
0x00a8 dieresis
-0x00a9 copyright
+#0x00a9 copyright
0x00aa ordfeminine
0x00ab guillemotleft
-0x00ac logicalnot
+#0x00ac logicalnot
0x00ad hyphen
-0x00ae registered
+#0x00ae registered
0x00af macron
-0x00b0 degree
-0x00b1 plusminus
-0x00b2 twosuperior
-0x00b3 threesuperior
+#0x00b0 degree
+#0x00b1 plusminus
+#0x00b2 twosuperior
+#0x00b3 threesuperior
0x00b4 acute
-0x00b5 mu
+#0x00b5 mu
0x00b6 paragraph
0x00b7 periodcentered
0x00b8 cedilla
-0x00b9 onesuperior
+#0x00b9 onesuperior
0x00ba ordmasculine
0x00bb guillemotright
-0x00bc onequarter
-0x00bd onehalf
-0x00be threequarters
+#0x00bc onequarter
+#0x00bd onehalf
+#0x00be threequarters
0x00bf questiondown
0x00c0 A grave
0x00c1 A acute
@@ -95,21 +100,21 @@
0x00cd I acute
0x00ce I circumflex
0x00cf I dieresis
-0x00d0 Eth
+#0x00d0 Eth
0x00d1 N tilde
0x00d2 O grave
0x00d3 O acute
0x00d4 O circumflex
0x00d5 O tilde
0x00d6 O dieresis
-0x00d7 multiply
+#0x00d7 multiply
0x00d8 Oslash
0x00d9 U grave
0x00da U acute
0x00db U circumflex
0x00dc U dieresis
0x00dd Y acute
-0x00de Thorn
+#0x00de Thorn
0x00df germandbls
0x00e0 a grave
0x00e1 a acute
@@ -127,35 +132,35 @@
0x00ed i acute
0x00ee i circumflex
0x00ef i dieresis
-0x00f0 eth
+#0x00f0 eth
0x00f1 n tilde
0x00f2 o grave
0x00f3 o acute
0x00f4 o circumflex
0x00f5 o tilde
0x00f6 o dieresis
-0x00f7 divide
+#0x00f7 divide
0x00f8 oslash
0x00f9 u grave
0x00fa u acute
0x00fb u circumflex
0x00fc u dieresis
0x00fd y acute
-0x00fe thorn
+#0x00fe thorn
0x00ff y dieresis
# Bare accents.
0x0327 cedilla
0x0328 ogonek
-0x0326 commaaccent
+#0x0326 commaaccent
0x0301 acute
0x0300 grave
0x0302 circumflex
0x0303 tilde
0x0304 macron
0x0306 breve
-0x0307 overdot
+0x0307 space overdot
0x0308 dieresis
0x030a ring
0x030b hungarumlaut
@@ -164,52 +169,74 @@
0x0331 space underbar
0x032e space underbreve
0x0324 space underdieresis
-0x0323 underdot
+0x0323 space underdot
0x0325 space underring
# Indian etc. characters
+0x0102 A breve
0x01cd A caron
0x0100 A macron
+#0x0104 A ogonek
0x01fc AE acute
0x01e2 AE macron
0xe000 Amacron tilde
0xe001 Atilde acute
+0x0106 C acute
0x010c C caron
0x0108 C circumflex
0xe002 C macron
+0x010a C overdot
0xe003 C underdot
+#0x010E D caron
0x1e0c D underdot
0xe004 Dunderdot acute
+#0x0110 Dcroat
0x0114 E breve
0x011a E caron
0x0112 E macron
0x1ebc E tilde
+#0x0118 E ogonek
+0x0116 E overdot
0xe006 Emacron tilde
0xe005 Etilde acute
0xe007 G acute
+#0x0122 G cedilla
0x0120 G overdot
0xe008 Gacute macron
0xe009 H acute
+0x0124 H circumflex
0xe00b H underbar
0x1e2a H underbreve
0xe00a H underdieresis
0x1e24 H underdot
+#0x0126 Hbar
+0x012c I breve
0x01cf I caron
+#0x012e I ogonek
0x012a I macron
+0x0130 I overdot
0x0128 I tilde
0xe00d Imacron tilde
0xe00c Itilde acute
+#0x0132 IJ
+0x0134 J circumflex
0xe00f J caron
0xe00e J macron
+0xe05e K underdot
+#0x0136 K cedilla
0xe012 K h
0xe010 K H
0x1e34 K underbar
0xe013 Kh underbar
0xe011 KH underbar
+0x0139 L acute
+#0x013d L caron
+#0x013b L cedilla
0x1e3a L underbar
0x1e36 L underdot
0xe014 L underring
+#0x013f L middot
0x0141 Lslash
0x1e38 Lunderdot macron
0xe015 Lunderring macron
@@ -217,30 +244,43 @@
0xe017 M candrabindu
0x1e40 M overdot
0x1e42 M underdot
+0x0143 N acute
0xe018 N breve
+0x0147 N caron
0x1e44 N overdot
+#0x0145 N cedilla
0x1e48 N underbar
0x1e46 N underdot
+#0x014a Eng
0x014e O breve
0x01d1 O caron
0x014c O macron
+0x0150 O hungarumlaut
0x0152 OE
0xe019 Omacron tilde
0x1e4c Otilde acute
0x1e54 P acute
+0x0154 R acute
0xe01a R breve
+0x0158 R caron
+#0x0156 R cedilla
0x1e5e R underbar
0x1e5a R underdot
0xe01b R underring
0x1e5c Runderdot macron
0xe01c Runderring macron
0x015a S acute
+0x015c S circumflex
0x0160 S caron
+0x015e S cedilla
0xe020 S underbar
0xe01f S underdieresis
0x1e62 S underdot
0xe01d Sacute macron
0xe01e Sunderdot macron
+#0x0164 T caron
+0x0162 T cedilla
+#0x0166 Tcroat
0x1e6e T underbar
0xe022 T underdieresis
0x1e6c T underdot
@@ -248,6 +288,9 @@
0x016c U breve
0x01d3 U caron
0x016a U macron
+0x016e U ring
+0x0170 U hungarumlaut
+#0x0172 U ogonek
0x0168 U tilde
0x01d7 Udieresis acute
0x01d9 Udieresis caron
@@ -256,7 +299,9 @@
0xe023 Umacron tilde
0x1e78 Utilde acute
0xe024 V acute
+0x0174 W circumflex
0x1e88 W underdot
+0x0176 Y circumflex
0x0178 Y dieresis
0x1e8e Y overdot
0x0179 Z acute
@@ -268,6 +313,7 @@
0x0103 a breve
0x01ce a caron
0x0101 a macron
+#0x0105 a ogonek
0x01fd ae acute
0x01e3 ae macron
0xe026 amacron acute
@@ -275,42 +321,62 @@
0xe027 amacron grave
0xe028 amacron tilde
0xe02a atilde acute
+0x0107 c acute
0x010d c caron
0x0109 c circumflex
0xe02b c macron
+0x010b c overdot
0xe02c c underdot
+#0x010f d caron
+#0x0111 dcroat
0x1e0d d underdot
0xe02d dunderdot acute
0x0115 e breve
0x011b e caron
0x0113 e macron
0x1ebd e tilde
+0x0117 e overdot
+#0x0119 e ogonek
0xe02f emacron acute
0xe031 emacron breve
0xe030 emacron tilde
0xe02e etilde acute
0xe032 g acute
0x0121 g overdot
+#0x0123 g cedilla
0xe033 gacute macron
0xe034 h acute
+0x0125 h circumflex
0x1e96 h underbar
0x1e2b h underbreve
0xe035 h underdieresis
0x1e25 h underdot
+#0x0127 hbar
0x012d i breve
0x01d0 i caron
0x012b i macron
0x0129 i tilde
+#0x012f i ogonek
0xe036 imacron acute
0xe039 imacron breve
0xe037 imacron grave
0xe038 imacron tilde
0xe03a itilde acute
+0x0131 dotlessi
+#0x0133 ij
+0x0135 j circumflex
0x01f0 j caron
0xe03b j macron
+#0x0137 k cedilla
+0xe05f k underdot
0xe03c k h
0x1e35 k underbar
0xe03d kh underbar
+#0x0138 kra (Greenlandic)
+0x013a l acute
+#0x013e l caron
+#0x013c l cedilla
+#0x0140 l middot
0xe03e l tilde
0x1e3b l underbar
0x1e37 l underdot
@@ -324,19 +390,28 @@
0xe044 m candrabindu
0x1e41 m overdot
0x1e43 m underdot
+0x0144 n acute
+0x0148 n caron
+#0x0146 n cedilla
0xe045 n breve
0x1e45 n overdot
0x1e49 n underbar
0x1e47 n underdot
+#0x0149 n apostophe
+#0x014b eng
0x014f o breve
0x01d2 o caron
0x014d o macron
+0x0151 o hungarumlaut
0x0153 oe
0xe047 omacron breve
0xe046 omacron tilde
0x1e4d otilde acute
0x1e55 p acute
+0x0155 r acute
0xe048 r breve
+0x0159 r caron
+#0x0156 r cedilla
0x1e5f r underbar
0xe04c r underdieresis
0x1e5b r underdot
@@ -350,20 +425,28 @@
0xe050 runderring macron
0xe051 runderringmacron acute
0x015b s acute
+0x015d s circumflex
+0x015f s cedilla
0x0161 s caron
0xe055 s underbar
0xe054 s underdieresis
0x1e63 s underdot
0xe052 sacute macron
0xe053 sunderdot macron
+#0x0165 t caron
+0x0163 t cedilla
0x1e6f t underbar
0xe057 t underdieresis
0x1e6d t underdot
0xe056 tunderdot acute
+#0x0167 tcroat
0x016d u breve
0x01d4 u caron
0x016b u macron
+0x016f u ring
0x0169 u tilde
+0x0171 u hungarumlaut
+#0x0173 u ogonek
0x01d8 udieresis acute
0x01da udieresis caron
0x01dc udieresis grave
@@ -374,7 +457,9 @@
0xe05a umacron tilde
0x1e79 utilde acute
0xe05c v acute
+0x0175 w circumflex
0x1e89 w underdot
+0x0177 y circumflex
0x1e8f y overdot
0x017a z acute
0x017e z caron
@@ -394,7 +479,7 @@
0x0192 florin
0x2039 guilsinglleft
0x203a guilsinglright
-0x2212 minus
+#0x2212 minus
0x2030 perthousand
0x201e quotedblbase
0x201c quotedblleft
@@ -403,4 +488,4 @@
0x2019 quoteright
0x201a quotesinglbase
0x0027 quotesingle
-0x2122 trademark
+#0x2122 trademark
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 49be6110349..703105f2902 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -219,7 +219,7 @@ my @WorkingTLP = qw(
textcase textfit textopo textpath textpos
theoremref thesis-titlepage-fhac
thinsp thmtools thumb thumbpdf thuthesis ticket tikz-inet
- timetable titlefoot titlesec
+ timetable titlefoot titlepages titlesec
titling tocbibind
tocloft todo todonotes
tokenizer toolbox tools toptesi totpages tracking