diff options
author | Karl Berry <karl@freefriends.org> | 2009-01-21 01:33:46 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-01-21 01:33:46 +0000 |
commit | a56f8ba40eca9bd44ddf2b7d60e6ebcaf9e56378 (patch) | |
tree | f6b4ed0847f81ebbb33bb4de77d212d1b0d0f939 | |
parent | 5b632ae32732af1b02c125a1b04d44e5236d4a66 (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/CHANGES | 30 | ||||
-rw-r--r-- | Master/texmf-dist/doc/fonts/accfonts/README | 148 | ||||
-rwxr-xr-x | Master/texmf-dist/doc/fonts/accfonts/mkt1font | 88 | ||||
-rwxr-xr-x | Master/texmf-dist/doc/fonts/accfonts/vpl2ovp | 109 | ||||
-rwxr-xr-x | Master/texmf-dist/doc/fonts/accfonts/vpl2vpl | 31 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/accfonts/IndUni_Omega.def | 137 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 2 |
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 |