From de1cf6765db38743187bd325a7b67301729195b0 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 14 Jun 2011 21:13:39 +0000 Subject: pkfix-helper 1.4 (13jun11) git-svn-id: svn://tug.org/texlive/trunk@22981 c570f23f-e606-0410-a88d-b1316a301751 --- .../linked_scripts/pkfix-helper/pkfix-helper | 221 ++++++++++++++++----- .../texk/texlive/linked_scripts/texlive/tlmgr.pl | 21 +- Master/bin/i386-linux/afm2pl | Bin 82104 -> 82104 bytes Master/bin/i386-linux/afm2tfm | Bin 91128 -> 91128 bytes Master/bin/i386-linux/aleph | Bin 485376 -> 485376 bytes Master/bin/i386-linux/bibtex | Bin 151496 -> 151496 bytes Master/bin/i386-linux/bibtex8 | Bin 179312 -> 179312 bytes Master/bin/i386-linux/bibtexu | Bin 16415620 -> 16415620 bytes Master/bin/i386-linux/ctangle | Bin 90072 -> 90072 bytes Master/bin/i386-linux/ctie | Bin 70264 -> 70264 bytes Master/bin/i386-linux/cweave | Bin 125720 -> 125720 bytes Master/bin/i386-linux/detex | Bin 97844 -> 97844 bytes Master/bin/i386-linux/dvi2tty | Bin 77832 -> 77832 bytes Master/bin/i386-linux/dvicopy | Bin 102964 -> 102964 bytes Master/bin/i386-linux/dvilj | Bin 103620 -> 103620 bytes Master/bin/i386-linux/dvilj2p | Bin 104036 -> 104036 bytes Master/bin/i386-linux/dvilj4 | Bin 110988 -> 110988 bytes Master/bin/i386-linux/dvilj4l | Bin 110988 -> 110988 bytes Master/bin/i386-linux/dvipdfmx | Bin 748232 -> 748232 bytes Master/bin/i386-linux/dvipng | Bin 977608 -> 977608 bytes Master/bin/i386-linux/dvipos | Bin 95372 -> 95372 bytes Master/bin/i386-linux/dvips | Bin 233912 -> 233912 bytes Master/bin/i386-linux/dvisvgm | Bin 1489600 -> 1489600 bytes Master/bin/i386-linux/dvitype | Bin 94268 -> 94268 bytes Master/bin/i386-linux/eptex | Bin 423060 -> 423060 bytes Master/bin/i386-linux/gftodvi | Bin 94192 -> 94192 bytes Master/bin/i386-linux/gftopk | Bin 78908 -> 78908 bytes Master/bin/i386-linux/gftype | Bin 79728 -> 79728 bytes Master/bin/i386-linux/gsftopk | Bin 79264 -> 79264 bytes Master/bin/i386-linux/hbf2gf | Bin 89860 -> 89860 bytes Master/bin/i386-linux/luatex | Bin 4775308 -> 4775308 bytes Master/bin/i386-linux/makeindex | Bin 135184 -> 135184 bytes Master/bin/i386-linux/makejvf | Bin 95244 -> 95244 bytes Master/bin/i386-linux/mendex | Bin 198740 -> 198740 bytes Master/bin/i386-linux/mf | Bin 295132 -> 295132 bytes Master/bin/i386-linux/mf-nowin | Bin 290676 -> 290676 bytes Master/bin/i386-linux/mft | Bin 102308 -> 102308 bytes Master/bin/i386-linux/mpost | Bin 502596 -> 502596 bytes Master/bin/i386-linux/odvicopy | Bin 106516 -> 106516 bytes Master/bin/i386-linux/odvitype | Bin 94268 -> 94268 bytes Master/bin/i386-linux/omfonts | Bin 157596 -> 157596 bytes Master/bin/i386-linux/otangle | Bin 90244 -> 90244 bytes Master/bin/i386-linux/otftotfm | Bin 831424 -> 831424 bytes Master/bin/i386-linux/otp2ocp | Bin 85708 -> 85708 bytes Master/bin/i386-linux/outocp | Bin 65588 -> 65588 bytes Master/bin/i386-linux/pbibtex | Bin 176512 -> 176512 bytes Master/bin/i386-linux/pdftex | Bin 1368768 -> 1368768 bytes Master/bin/i386-linux/pdvitype | Bin 124500 -> 124500 bytes Master/bin/i386-linux/pktogf | Bin 77776 -> 77776 bytes Master/bin/i386-linux/pktype | Bin 73640 -> 73640 bytes Master/bin/i386-linux/ppltotf | Bin 136648 -> 136648 bytes Master/bin/i386-linux/ps2pk | Bin 170716 -> 170716 bytes Master/bin/i386-linux/ptex | Bin 374932 -> 374932 bytes Master/bin/i386-linux/ptftopl | Bin 124284 -> 124284 bytes Master/bin/i386-linux/synctex | Bin 119688 -> 119816 bytes Master/bin/i386-linux/t4ht | Bin 85588 -> 85588 bytes Master/bin/i386-linux/tangle | Bin 94148 -> 94148 bytes Master/bin/i386-linux/tex | Bin 328820 -> 328820 bytes Master/bin/i386-linux/tex4ht | Bin 147572 -> 147572 bytes Master/bin/i386-linux/tftopl | Bin 90020 -> 90020 bytes Master/bin/i386-linux/tie | Bin 69176 -> 69176 bytes Master/bin/i386-linux/tpic2pdftex | 4 +- Master/bin/i386-linux/ttf2afm | Bin 83744 -> 83744 bytes Master/bin/i386-linux/ttf2pk | Bin 223712 -> 223712 bytes Master/bin/i386-linux/ttf2tfm | Bin 244656 -> 244656 bytes Master/bin/i386-linux/vftovp | Bin 102384 -> 102384 bytes Master/bin/i386-linux/weave | Bin 111624 -> 111624 bytes Master/bin/i386-linux/xdvi-xaw | Bin 825184 -> 825184 bytes Master/bin/i386-linux/xdvipdfmx | Bin 1322068 -> 1322068 bytes Master/bin/i386-linux/xetex | Bin 18434908 -> 18434908 bytes Master/bin/sparc-linux/afm2pl | Bin 92508 -> 92508 bytes Master/bin/sparc-linux/afm2tfm | Bin 93736 -> 93736 bytes Master/bin/sparc-linux/aleph | Bin 576692 -> 576692 bytes Master/bin/sparc-linux/bibtex | Bin 157960 -> 157960 bytes Master/bin/sparc-linux/bibtex8 | Bin 182812 -> 182812 bytes Master/bin/sparc-linux/bibtexu | Bin 16498240 -> 16498240 bytes Master/bin/sparc-linux/ctangle | Bin 100712 -> 100712 bytes Master/bin/sparc-linux/ctie | Bin 75996 -> 75996 bytes Master/bin/sparc-linux/cweave | Bin 133480 -> 133480 bytes Master/bin/sparc-linux/detex | Bin 100568 -> 100568 bytes Master/bin/sparc-linux/dvi2tty | Bin 84272 -> 84272 bytes Master/bin/sparc-linux/dvicopy | Bin 116984 -> 116984 bytes Master/bin/sparc-linux/dvilj | Bin 109408 -> 109408 bytes Master/bin/sparc-linux/dvilj2p | Bin 109408 -> 109408 bytes Master/bin/sparc-linux/dvilj4 | Bin 117632 -> 117632 bytes Master/bin/sparc-linux/dvilj4l | Bin 117632 -> 117632 bytes Master/bin/sparc-linux/dvipdfmx | Bin 746176 -> 746176 bytes Master/bin/sparc-linux/dvipng | Bin 997612 -> 997612 bytes Master/bin/sparc-linux/dvipos | Bin 100868 -> 100868 bytes Master/bin/sparc-linux/dvips | Bin 257600 -> 257600 bytes Master/bin/sparc-linux/dvisvgm | Bin 1684568 -> 1684568 bytes Master/bin/sparc-linux/dvitype | Bin 100612 -> 100612 bytes Master/bin/sparc-linux/eptex | Bin 486844 -> 486844 bytes Master/bin/sparc-linux/gftodvi | Bin 108776 -> 108776 bytes Master/bin/sparc-linux/gftopk | Bin 84208 -> 84208 bytes Master/bin/sparc-linux/gftype | Bin 84164 -> 84164 bytes Master/bin/sparc-linux/gsftopk | Bin 84428 -> 84428 bytes Master/bin/sparc-linux/hbf2gf | Bin 92548 -> 92548 bytes Master/bin/sparc-linux/kpsewhich | Bin 76336 -> 76336 bytes Master/bin/sparc-linux/luatex | Bin 4903824 -> 4903824 bytes Master/bin/sparc-linux/makeindex | Bin 137596 -> 137596 bytes Master/bin/sparc-linux/makejvf | Bin 100780 -> 100780 bytes Master/bin/sparc-linux/mendex | Bin 208036 -> 208036 bytes Master/bin/sparc-linux/mf | Bin 331124 -> 331124 bytes Master/bin/sparc-linux/mf-nowin | Bin 330640 -> 330640 bytes Master/bin/sparc-linux/mft | Bin 108764 -> 108764 bytes Master/bin/sparc-linux/mpost | Bin 511268 -> 511268 bytes Master/bin/sparc-linux/odvicopy | Bin 116984 -> 116984 bytes Master/bin/sparc-linux/odvitype | Bin 100612 -> 100612 bytes Master/bin/sparc-linux/omfonts | Bin 159244 -> 159244 bytes Master/bin/sparc-linux/otangle | Bin 100572 -> 100572 bytes Master/bin/sparc-linux/otftotfm | Bin 857016 -> 857016 bytes Master/bin/sparc-linux/otp2ocp | Bin 92352 -> 92352 bytes Master/bin/sparc-linux/outocp | Bin 67844 -> 67844 bytes Master/bin/sparc-linux/pbibtex | Bin 182828 -> 182828 bytes Master/bin/sparc-linux/pdftex | Bin 1506832 -> 1506832 bytes Master/bin/sparc-linux/pdvitype | Bin 133696 -> 133696 bytes Master/bin/sparc-linux/pktogf | Bin 84160 -> 84160 bytes Master/bin/sparc-linux/pktype | Bin 75988 -> 75988 bytes Master/bin/sparc-linux/ppltotf | Bin 141816 -> 141816 bytes Master/bin/sparc-linux/ps2pk | Bin 182480 -> 182480 bytes Master/bin/sparc-linux/ptex | Bin 429480 -> 429480 bytes Master/bin/sparc-linux/ptftopl | Bin 125440 -> 125440 bytes Master/bin/sparc-linux/synctex | Bin 133620 -> 133620 bytes Master/bin/sparc-linux/t4ht | Bin 92336 -> 92336 bytes Master/bin/sparc-linux/tangle | Bin 100612 -> 100612 bytes Master/bin/sparc-linux/tex | Bin 371860 -> 371860 bytes Master/bin/sparc-linux/tex4ht | Bin 166148 -> 166148 bytes Master/bin/sparc-linux/tftopl | Bin 92388 -> 92388 bytes Master/bin/sparc-linux/tie | Bin 75928 -> 75928 bytes Master/bin/sparc-linux/tpic2pdftex | 4 +- Master/bin/sparc-linux/ttf2afm | Bin 93448 -> 93448 bytes Master/bin/sparc-linux/ttf2pk | Bin 241196 -> 241196 bytes Master/bin/sparc-linux/ttf2tfm | Bin 258796 -> 258796 bytes Master/bin/sparc-linux/vftovp | Bin 108776 -> 108776 bytes Master/bin/sparc-linux/weave | Bin 125148 -> 125148 bytes Master/bin/sparc-linux/xdvi-xaw | Bin 838496 -> 838496 bytes Master/bin/sparc-linux/xdvipdfmx | Bin 1335472 -> 1335472 bytes Master/bin/sparc-linux/xetex | Bin 18773392 -> 18773392 bytes Master/texmf-dist/doc/support/pkfix-helper/README | 8 +- .../doc/support/pkfix-helper/encoding-samples.pdf | Bin 564699 -> 653290 bytes .../doc/support/pkfix-helper/encoding-samples.tex | 27 ++- .../texmf-dist/scripts/pkfix-helper/pkfix-helper | 221 ++++++++++++++++----- Master/texmf/doc/man/man1/pkfix-helper.1 | 50 +++-- Master/texmf/doc/man/man1/pkfix-helper.man1.pdf | Bin 22136 -> 22697 bytes Master/tlpkg/tlpsrc/00texlive.image.tlpsrc | 1 - 146 files changed, 407 insertions(+), 150 deletions(-) diff --git a/Build/source/texk/texlive/linked_scripts/pkfix-helper/pkfix-helper b/Build/source/texk/texlive/linked_scripts/pkfix-helper/pkfix-helper index 26d56ede05a..35782931203 100755 --- a/Build/source/texk/texlive/linked_scripts/pkfix-helper/pkfix-helper +++ b/Build/source/texk/texlive/linked_scripts/pkfix-helper/pkfix-helper @@ -17,7 +17,7 @@ use strict; # Define some global variables. my $progname = basename $0; # Name of this program -our $VERSION = "1.3"; # Version number of this program +our $VERSION = "1.4"; # Version number of this program my %name2chars; # Map from a font name to a character list my $GS = $ENV{"GS"} || "gs"; # Name of the Ghostscript interpreter my $TFTOPL = $ENV{"TFTOPL"} || "tftopl"; # Name of the TFM to PL converter @@ -46,6 +46,7 @@ my $sample_file_tex; # Name of a TeX file of font samples to write my $single_font_use = 0; # 1=one use per font; 0=allow repetitions my $samples_per_page = 25; # Number of font samples to print per page my $tfm_cache_file; # Name of a file in which to cache font metrics +my $any_scale = 0; # 0=1X, 1.1X, 1.2X, ...; 1=any scale is allowed ########################################################################### @@ -85,17 +86,20 @@ sub read_tfm_cache_file # $tfm_cache_file. sub write_tfm_cache_file { + my $numlines = 0; print STDERR "Writing TFM data to $tfm_cache_file ... " if $verbose; open(CACHEFILE, ">", $tfm_cache_file) || die "${progname}: Failed to create $tfm_cache_file ($!)\n"; while (my ($tfm, $size) = each %tfm2size) { my @widths = %{$tfmfontwidth{$tfm}}; print CACHEFILE "$tfm $size @widths\n"; + $numlines++; } foreach my $tfm (keys %tfmmissing) { print CACHEFILE "$tfm\n"; + $numlines++; } close CACHEFILE; - print STDERR "done.\n" if $verbose; + print STDERR "done ($numlines entries).\n" if $verbose; } @@ -183,8 +187,14 @@ sub optimal_scale ($$) $doc_dot_tfm += $docwidth * $tfmwidth; $tfm_dot_tfm += $tfmwidth**2; } - return 1.0 if $tfm_dot_tfm == 0.0; # TFM characters all have zero width. - return $doc_dot_tfm / $tfm_dot_tfm; + return 1.0 if $tfm_dot_tfm == 0.0; # Handle TFM characters that all have zero width. + my $optscale = $doc_dot_tfm / $tfm_dot_tfm; + unless ($any_scale) { + # Allow only values >= 1.0 and only multiples of 0.1. + return 1.0 if $optscale < 1.0; + $optscale = int($optscale*10 + 0.5) / 10; + } + return $optscale; } @@ -258,18 +268,19 @@ sub texify (@) } -# Parse a font specification into a hash of information. +# Parse a font specification into a list of hashes of information. sub parse_font_spec ($) { my $spec = $_[0]; my $parse_error = "${progname}: Unable to parse font specification \"$spec\"\n"; - if ($spec =~ /^\s*([-\w]+)(.*)$/o) { + if ($spec =~ /^\s*([-\w\*]+)(.*)$/o) { my $tfm = $1; # Name of tfm file (e.g., "cmr10") my $scale_info = $2; # Concatenation of scale type and scale factor my $scale_type; # "X"=multiply, "@"=assign my $scale_amount; # How much to scale the TFM file, "*"=automatic + # Parse the different scale types. if ($scale_info =~ /^\s*$/o) { # Empty $scale_type = 'X'; @@ -294,9 +305,25 @@ sub parse_font_spec ($) else { die $parse_error; } - return {"tfm" => $tfm, - "scale_type" => $scale_type, - "scale" => $scale_amount}; + + # If the tfm file contains a "*", replace the "*" with a + # variety of font sizes. + my @fontlist; + if ($tfm =~ /\*/) { + foreach my $fsize (5..17) { + my $full_tfm = $tfm; + $full_tfm =~ s/\*/$fsize/g; + push @fontlist, {"tfm" => $full_tfm, + "scale_type" => $scale_type, + "scale" => $scale_amount}; + } + } + else { + push @fontlist, {"tfm" => $tfm, + "scale_type" => $scale_type, + "scale" => $scale_amount}; + } + return \@fontlist; } die $parse_error; } @@ -328,6 +355,7 @@ GetOptions ("h|help" => \$wanthelp, "p|ps=s" => \$sample_file_ps, "s|spp=i" => \$samples_per_page, "C|cache=s" => \$tfm_cache_file, + "a|any-scale!" => \$any_scale, "1|no-repeats" => \$single_font_use) || pod2usage(2); if ($wantversion) { print "pkfix-helper $VERSION\n"; @@ -346,13 +374,21 @@ die "${progname}: Samples per page must be at least 1 ($samples_per_page was spe # Convert any user-specified TFMs to the appropriate internal format. foreach my $tfm (@extra_tfms) { my $font_spec = parse_font_spec $tfm; - push @tfmlist, $font_spec; + push @tfmlist, @$font_spec; } # Parse the list of forced font mappings. foreach my $mapstr (@forced_fonts) { $mapstr =~ /^(\w+)\s*=\s*(.*)$/ || die "${progname}: Unable to parse font specification \"$mapstr\"\n"; - $fontmatch{$1} = parse_font_spec $2; + my $parsed_font_spec = parse_font_spec $2; + if (defined $fontmatch{$1}) { + # Append to an existing font match. + $fontmatch{$1} = [@{$fontmatch{$1}}, @$parsed_font_spec]; + } + else { + # Define a new font match, + $fontmatch{$1} = $parsed_font_spec; + } } # Construct a list of (possibly nonexistent) TFM files to try. These @@ -405,6 +441,69 @@ my $entirefile; } print STDERR "done.\n" if $verbose; +# Rename the fonts in each subdocument (figure). +my @fontrenames; +my $fignum = 1; +my $numrenamed = 0; +while ($entirefile =~ /(\%\%BeginDocument: (.*?)\n.*?\%\%EndDocument)/gs) { + my $figure = $1; + my $newfigure = $1; + my $figname = $2; + if ($verbose >= 2) { + if ($fignum == 1) { + print STDERR "Renaming all fonts encountered in included documents:\n"; + } + print STDERR " $figname\n"; + } + while ($figure =~ m|/(\S+)\s+\d+\s+\d+\s+df(.*?>[^<>]*?[DI])\s+E|gs) { + my $fontname = $1; # Name of current font (e.g., "Fa") + $newfigure =~ s,(?<=/)$fontname\b,${fontname}_$fignum,gs; + $newfigure =~ s,\b$fontname(?=\(),${fontname}_$fignum,gs; + $numrenamed++; + if ($verbose >= 2) { + printf STDERR " %s --> %s_%d\n", $fontname, $fontname, $fignum; + } + } + if ($figure ne $newfigure) { + # Remove the font-defining dictionary from the the subdocument + # as it may confuse pkfix. Store it so we can later reinsert + # it into the main document's font-defining dictionary. + my $texdict = ""; + if ($newfigure =~ s/TeXDict begin \d+ \d+ \d+ \d+ \d+ \(.*?\)\s+\@start(.*?)end//gs) { + $texdict = $1; + } + else { + warn "${progname}: Failed to extract a font-defining TeXDict from $figname\n"; + } + push @fontrenames, [$figure, $newfigure, $texdict]; + } + $fignum++; +} +if ($verbose && $entirefile =~ /\%\%BeginDocument:/s) { + print STDERR "Number of Type 3 fonts encountered in included documents: $numrenamed\n"; +} +foreach my $ren (@fontrenames) { + my ($before, $after, $notused) = @$ren; + $entirefile =~ s/\Q$before\E/$after/gs; +} + +# If the document contains a subdocument with (now renamed) font +# definitions, hoist those definitions adjacent to the main document's +# font definitions so pkfix can find them. +if (@fontrenames) { + if ($entirefile =~ /(TeXDict begin (\d+) (\d+) (\d+) (\d+) (\d+) \(.*?\)\s+\@start.*?)(?=end)/s) { + my $fontdict = $1; + my $morefonts = ""; + foreach my $ren (@fontrenames) { + $morefonts .= $ren->[2]; + } + $entirefile =~ s/(\Q$fontdict\E)/$1$morefonts/s; + } + else { + warn "${progname}: Failed to find a font-defining TeXDict\n"; + } +} + # Construct a mapping from each document font name to a list of valid # characters in that font. while ($entirefile =~ m|/(\S+)\s+\d+\s+\d+\s+df(.*?>[^<>]*?[DI])\s+E|gs) { @@ -430,10 +529,10 @@ while ($entirefile =~ m|/(\S+)\s+\d+\s+\d+\s+df(.*?>[^<>]*?[DI])\s+E|gs) { my @sortedfontnames = sort {$#{$name2chars{$b}} <=> $#{$name2chars{$a}} || $a cmp $b} keys %name2chars; if ($verbose) { - printf STDERR "Number of Type 3 fonts encountered: %d\n", 1+$#sortedfontnames; + printf STDERR "Total number of Type 3 fonts encountered: %d\n", 1+$#sortedfontnames; if ($verbose >= 2) { foreach my $fontname (@sortedfontnames) { - printf STDERR " %s -- %3d character(s)\n", $fontname, 1+$#{$name2chars{$fontname}}; + printf STDERR " %-5.5s -- %3d character(s)\n", $fontname, 1+$#{$name2chars{$fontname}}; } } } @@ -449,7 +548,7 @@ else { warn "${progname}: Could not determine the target printer resolution; assuming $dpi DPI\n"; } -# Insert some helper code after the first ProcSet. +# Insert some helper code after the tex.pro ProcSet. my $output_width_ps = $entirefile; # PostScript code to output character widths my $showfontnamecode = <<"SHOWFONTNAME"; \%\%BeginProcSet: $progname.pro @@ -485,8 +584,8 @@ end \%\%EndProcSet SHOWFONTNAME ;#' -if ($output_width_ps !~ s/\%\%EndProcSet/$&\n$showfontnamecode/s) { - print STDERR 'No %%EndProcSet comment was found. We have to guess where to inject PostScript code.', "\n" if $verbose >= 3; +if ($output_width_ps !~ s/\%\%BeginProcSet: tex\w*\.pro.*?\%\%EndProcSet/$&\n$showfontnamecode/s) { + print STDERR "No tex.pro ProcSet was found. We have to guess where to inject PostScript code.\n" if $verbose >= 3; die "${progname}: Unable to inject prologue code\n" if $output_width_ps !~ s/TeXDict begin\s+\d+\s+\d+\s+bop/\n$showfontnamecode\n$&/s; } @@ -562,7 +661,7 @@ read_tfm_cache_file() if defined $tfm_cache_file; print STDERR "Reading TFM files ... " if $verbose; print STDERR "\n" if $verbose >= 2; foreach my $tfm (sort {$a cmp $b} - unique_items map {$_->{"tfm"}} (@tfmlist, values %fontmatch)) { + unique_items map {$_->{"tfm"}} (@tfmlist, map {@$_} values %fontmatch)) { my ($designsize, %num2widths) = @{tfm2widths $tfm}; if (%num2widths) { $tfmfontwidth{$tfm} = \%num2widths; @@ -590,18 +689,24 @@ foreach my $tfminfo (@tfmlist) { @tfmlist = @goodtfmlist; undef @goodtfmlist; -# Do the same for all user-specified font mappings. -while (my ($fontname, $tfminfo) = each %fontmatch) { - my $tfm = $tfminfo->{"tfm"}; - if (!defined ($tfmfontwidth{$tfm})) { - print STDERR "failed.\n" if $verbose; - die "${progname}: Unable to process user-specified TFM file \"$tfm\"\n"; +# Do the same for all user-specified font mappings but abort if none +# of the specified possibilities represent a valid TFM file. +while (my ($fontname, $tfmlist) = each %fontmatch) { + my $anyvalid = 0; + foreach my $tfminfo (@$tfmlist) { + my $tfm = $tfminfo->{"tfm"}; + next if !defined ($tfmfontwidth{$tfm}); + $tfminfo->{"designsize"} = $tfm2size{$tfm}; + if ($tfminfo->{"scale_type"} eq "@") { + # Convert absolute to relative sizes. + $tfminfo->{"scale_type"} = "X"; + $tfminfo->{"scale"} /= $tfminfo->{"designsize"}; + } + $anyvalid = 1; } - $tfminfo->{"designsize"} = $tfm2size{$tfm}; - if ($tfminfo->{"scale_type"} eq "@") { - # Convert absolute to relative sizes. - $tfminfo->{"scale_type"} = "X"; - $tfminfo->{"scale"} /= $tfminfo->{"designsize"}; + if (!$anyvalid) { + print STDERR "failed.\n" if $verbose; + die "${progname}: Unable to utilize any of the TFM files specified for font $fontname\n"; } } @@ -630,9 +735,10 @@ foreach my $fontname (@sortedfontnames) { # Determine the list of eligible fonts to compare against. my @eligible_tfms; - foreach my $tfminfo ($fontmatch{$fontname} || @tfmlist) { + foreach my $tfminfo ($fontmatch{$fontname} ? @{$fontmatch{$fontname}} : @tfmlist) { if ($tfminfo->{"scale"} eq "*") { # Replace "*" with the best scaling factor we can find. + next if !defined $tfmfontwidth{$tfminfo->{"tfm"}}; my $newscale = optimal_scale $fontwidth{$fontname}, $tfmfontwidth{$tfminfo->{"tfm"}}; if (defined $newscale) { # Replace the "*" with the optimal multiplier. @@ -657,6 +763,7 @@ foreach my $fontname (@sortedfontnames) { print STDERR " Processing $fontname ... " if $verbose == 1; foreach my $tfminfo (@eligible_tfms) { my $tfm = $tfminfo->{"tfm"}; + next if !defined $tfmfontwidth{$tfm}; my $scale = $tfminfo->{"scale"}; printf STDERR " Comparing %s and %s \@ %.5gX ... ", $fontname, $tfm, $scale if $verbose >= 2; my $match = compare_maps $fontwidth{$fontname}, $tfmfontwidth{$tfm}, $scale; @@ -706,7 +813,7 @@ foreach my $fontname (@sortedfontnames) { # Insert %DVIPSBitmapFont comments around every Type 3 font definition. my $commented_ps = $entirefile; my $infilename_ps = $infilename; # PostScript version of $infilename -$infilename_ps =~ s/[()\\]/\\$1/g; +$infilename_ps =~ s/([\(\)\\])/\\$1/g; $commented_ps =~ s|^\%(End)?DVIPSBitmapFont.*$||gm; # Remove existing comments (if any) $commented_ps =~ s|/(\S+)\s+\d+\s+\d+\s+df.*?>[^<]*?[DI]\s+E|write_comments($1, $&)|gse; if ($commented_ps !~ /\%\%EndProlog/) { @@ -762,7 +869,7 @@ TeXDict begin font-name-string show (:) show grestore gsave - 36 0 rmoveto + 42 0 rmoveto font-name cvx exec currentfont bitmap-font-transform makefont setfont sample-string show @@ -781,8 +888,8 @@ end \%\%EndProcSet SHOWFONTNAME ; - if ($sample_ps !~ s/\%\%EndProcSet/$&\n$showfontnamecode/) { - print STDERR 'No %%EndProcSet comment was found. We have to guess where to inject PostScript code.', "\n" if $verbose >= 3; + if ($sample_ps !~ s/\%\%BeginProcSet: tex\w*\.pro.*\%\%EndProcSet/$&\n$showfontnamecode/s) { + print STDERR "No tex.pro ProcSet was found. We have to guess where to inject PostScript code.\n" if $verbose >= 3; die "${progname}: Unable to inject prologue code\n" if $sample_ps !~ s/TeXDict begin\s+\d+\s+\d+\s+bop/\n$showfontnamecode\n$&/s; } @@ -1063,7 +1170,12 @@ program's internal operations. Force B to associate a specific font with a given font name appearing the document. I is a two-character B font name such as C. I is a font specification such as -S>. The B<--force> option can be specified +C or S>. An asterisk used in the name of the +base font S<(e.g., C)> will automatically try all integral test +font sizes from 5 to 17 points (C, S, ...,> +C). An asterisk used as a scale value S<(e.g., C)> will be replaced by the scale value that gives the best match to +the original font's metrics. The B<--force> option can be specified repeatedly on the command line. =item B<-p> I, B<--ps>=I @@ -1096,6 +1208,16 @@ previously extracted metrics from I, going through the F-based process only for TFM files that were not previously encountered. +=item B<-q>, B<--quiet> + +Instruct B to produce no output during its run except +for fatal error messages. + +=item B<-1>, B<--no-repeats> + +Prevent B from associating the same I with +more than one B font name. + =item B<-i> I, B<--include>=I Add I to the list of font specifications against which @@ -1121,15 +1243,12 @@ bitmapped image into a single-character font and using that font in LaTeX. B<--keep> prevents such fonts from being replaced. The B<--keep> option can be specified repeatedly on the command line. -=item B<-q>, B<--quiet> +=item B<-a>, B<--any-scale> -Instruct B to produce no output during its run except -for fatal error messages. - -=item B<-1>, B<--no-repeats> - -Prevent B from associating the same I with -more than one B font name. +Allow any value to be used to scale a font when "C<*>" is specified as +the scale factor. Normally, B considers only integer +multiples of 0.1 that are greater than or equal to 1.0 (i.e., +IC<@1X>, C<@1.1X>, C<@1.2X>, C<@1.3X>, etc.). =item B<-s>, B<--spp> @@ -1245,7 +1364,7 @@ Let's hypothesize that C is a better match than C but we don't know how much to scale the font. Fortunately, B allows C<*> to be used as a scaling factor to tell the program to automatically detect an optimal scaling factor, even if -doing so means choosing a highly nonstandard font size: +doing so means choosing a nonstandard font size: $ pkfix-helper oldfile.ps pkfix-oldfile.ps --force="Ff=cmb12 @ *" Reading oldfile.ps ... done. @@ -1268,7 +1387,7 @@ Let's try scaling up F instead: Processing Fi ... done (cmr10 @ 1X, mismatch=0.11683). Processing Fa ... done (cmti10 @ 1X, mismatch=0.08892). Processing Fb ... done (cmr8 @ 1X, mismatch=0.07133). - Processing Ff ... done (cmb10 @ 1.5708X, mismatch=0.00035). + Processing Ff ... done (cmb10 @ 1.5X, mismatch=0.00035). Processing Fh ... done (cmtt10 @ 1X, mismatch=0.06895). Processing Fd ... done (cmmi10 @ 1X, mismatch=0.03966). Processing Fj ... done (cmbx12 @ 1X, mismatch=0.03972). @@ -1276,12 +1395,12 @@ Let's try scaling up F instead: Processing Fg ... done (cmsy10 @ 1X, mismatch=0.00875). Processing Fc ... done (cmr6 @ 1X, mismatch=0.00284). -The match has definitely improved, although S<15.708 pt.> is certainly -an odd size for a font. Then again, many documents I use -nonstandard sizes so this may in fact be correct. The best way to -verify is once again to produce, print, and compare a pair of font -samples and iterate until all of the fonts look correct. Use one -instance of B<--force> for each font you want to alter. +The match has definitely improved, although S<15 pt.> is certainly an +odd size for a font. Then again, many documents I use nonstandard +sizes so this may in fact be correct. The best way to verify is once +again to produce, print, and compare a pair of font samples and +iterate until all of the fonts look correct. Use one instance of +B<--force> for each font you want to alter. =head1 ENVIRONMENT @@ -1352,7 +1471,7 @@ Scott Pakin, I =head1 COPYRIGHT AND LICENSE -Copyright (C) 2010, Scott Pakin +Copyright (C) 2011, Scott Pakin This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license diff --git a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl index 95ec7282a8c..4d508695dcf 100755 --- a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl +++ b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl @@ -1,12 +1,12 @@ #!/usr/bin/env perl -# $Id: tlmgr.pl 22875 2011-06-09 00:45:20Z preining $ +# $Id: tlmgr.pl 22912 2011-06-11 04:40:36Z preining $ # # Copyright 2008, 2009, 2010, 2011 Norbert Preining # This file is licensed under the GNU General Public License version 2 # or any later version. -my $svnrev = '$Revision: 22875 $'; -my $datrev = '$Date: 2011-06-09 02:45:20 +0200 (Thu, 09 Jun 2011) $'; +my $svnrev = '$Revision: 22912 $'; +my $datrev = '$Date: 2011-06-11 06:40:36 +0200 (Sat, 11 Jun 2011) $'; my $tlmgrrevision; if ($svnrev =~ m/: ([0-9]+) /) { $tlmgrrevision = $1; @@ -1038,7 +1038,14 @@ sub action_path { # sub action_dumptlpdb { init_local_db(); + # set machine readable to 1 + my $savemr = $::machinereadable; + $::machinereadable = 1; if ($opts{"local"}) { + # since we want to be consistent we write out the location of + # the installation, too, in the format as it is done when + # dumping the remote tlpdb + print "location-url\t", $localtlpdb->root, "\n"; $localtlpdb->writeout; return; } @@ -1046,6 +1053,7 @@ sub action_dumptlpdb { init_tlmedia(); $remotetlpdb->writeout; } + $::machinereadable = $savemr; return; } @@ -5765,6 +5773,13 @@ Dumps the remote tlpdb. If both B<--local> and B<--remote> is given, only the local tlpdb is dumped out. If none is given then nothing is dumped. +In the line before the dump of the tlpdb the location is specified on +a line: + + location-url TAB + + + =head2 list [--only-installed] [collections|schemes|I...] diff --git a/Master/bin/i386-linux/afm2pl b/Master/bin/i386-linux/afm2pl index f45c17752e7..15b558afe44 100755 Binary files a/Master/bin/i386-linux/afm2pl and b/Master/bin/i386-linux/afm2pl differ diff --git a/Master/bin/i386-linux/afm2tfm b/Master/bin/i386-linux/afm2tfm index 40af92c3728..8f73f4ccd7e 100755 Binary files a/Master/bin/i386-linux/afm2tfm and b/Master/bin/i386-linux/afm2tfm differ diff --git a/Master/bin/i386-linux/aleph b/Master/bin/i386-linux/aleph index 958ab99f5e7..4a6a95f35d4 100755 Binary files a/Master/bin/i386-linux/aleph and b/Master/bin/i386-linux/aleph differ diff --git a/Master/bin/i386-linux/bibtex b/Master/bin/i386-linux/bibtex index f83c55e93b2..e3108f12f71 100755 Binary files a/Master/bin/i386-linux/bibtex and b/Master/bin/i386-linux/bibtex differ diff --git a/Master/bin/i386-linux/bibtex8 b/Master/bin/i386-linux/bibtex8 index 32c491154d4..498bf983b80 100755 Binary files a/Master/bin/i386-linux/bibtex8 and b/Master/bin/i386-linux/bibtex8 differ diff --git a/Master/bin/i386-linux/bibtexu b/Master/bin/i386-linux/bibtexu index 0bfb96e433e..c667dae0fa4 100755 Binary files a/Master/bin/i386-linux/bibtexu and b/Master/bin/i386-linux/bibtexu differ diff --git a/Master/bin/i386-linux/ctangle b/Master/bin/i386-linux/ctangle index 2ab843fa70c..53ae32e652d 100755 Binary files a/Master/bin/i386-linux/ctangle and b/Master/bin/i386-linux/ctangle differ diff --git a/Master/bin/i386-linux/ctie b/Master/bin/i386-linux/ctie index d22d75e4b7f..a64f836465b 100755 Binary files a/Master/bin/i386-linux/ctie and b/Master/bin/i386-linux/ctie differ diff --git a/Master/bin/i386-linux/cweave b/Master/bin/i386-linux/cweave index c75ac42b033..642ed649a8e 100755 Binary files a/Master/bin/i386-linux/cweave and b/Master/bin/i386-linux/cweave differ diff --git a/Master/bin/i386-linux/detex b/Master/bin/i386-linux/detex index dfc6e71ee6a..746b8c74ecc 100755 Binary files a/Master/bin/i386-linux/detex and b/Master/bin/i386-linux/detex differ diff --git a/Master/bin/i386-linux/dvi2tty b/Master/bin/i386-linux/dvi2tty index 73b408f38b2..6561c026f08 100755 Binary files a/Master/bin/i386-linux/dvi2tty and b/Master/bin/i386-linux/dvi2tty differ diff --git a/Master/bin/i386-linux/dvicopy b/Master/bin/i386-linux/dvicopy index 6fc51066519..a297a46d6d9 100755 Binary files a/Master/bin/i386-linux/dvicopy and b/Master/bin/i386-linux/dvicopy differ diff --git a/Master/bin/i386-linux/dvilj b/Master/bin/i386-linux/dvilj index bb6349f3ef0..958f2e91831 100755 Binary files a/Master/bin/i386-linux/dvilj and b/Master/bin/i386-linux/dvilj differ diff --git a/Master/bin/i386-linux/dvilj2p b/Master/bin/i386-linux/dvilj2p index f078b5ec0e4..86e341c14dc 100755 Binary files a/Master/bin/i386-linux/dvilj2p and b/Master/bin/i386-linux/dvilj2p differ diff --git a/Master/bin/i386-linux/dvilj4 b/Master/bin/i386-linux/dvilj4 index 236c0aaf7ad..f66b7a1afa9 100755 Binary files a/Master/bin/i386-linux/dvilj4 and b/Master/bin/i386-linux/dvilj4 differ diff --git a/Master/bin/i386-linux/dvilj4l b/Master/bin/i386-linux/dvilj4l index fa4faf3bd5d..862138c992f 100755 Binary files a/Master/bin/i386-linux/dvilj4l and b/Master/bin/i386-linux/dvilj4l differ diff --git a/Master/bin/i386-linux/dvipdfmx b/Master/bin/i386-linux/dvipdfmx index c32de5b4484..543bea89c5d 100755 Binary files a/Master/bin/i386-linux/dvipdfmx and b/Master/bin/i386-linux/dvipdfmx differ diff --git a/Master/bin/i386-linux/dvipng b/Master/bin/i386-linux/dvipng index ba62a88833c..b8262d2c292 100755 Binary files a/Master/bin/i386-linux/dvipng and b/Master/bin/i386-linux/dvipng differ diff --git a/Master/bin/i386-linux/dvipos b/Master/bin/i386-linux/dvipos index 479c062f80d..ecbea5f1e27 100755 Binary files a/Master/bin/i386-linux/dvipos and b/Master/bin/i386-linux/dvipos differ diff --git a/Master/bin/i386-linux/dvips b/Master/bin/i386-linux/dvips index 8f1b17628b9..566d4b415d3 100755 Binary files a/Master/bin/i386-linux/dvips and b/Master/bin/i386-linux/dvips differ diff --git a/Master/bin/i386-linux/dvisvgm b/Master/bin/i386-linux/dvisvgm index 7e7a8350a7f..f3a3813174f 100755 Binary files a/Master/bin/i386-linux/dvisvgm and b/Master/bin/i386-linux/dvisvgm differ diff --git a/Master/bin/i386-linux/dvitype b/Master/bin/i386-linux/dvitype index 88d6027db02..4a3aab7a13f 100755 Binary files a/Master/bin/i386-linux/dvitype and b/Master/bin/i386-linux/dvitype differ diff --git a/Master/bin/i386-linux/eptex b/Master/bin/i386-linux/eptex index 7c1ee2e4460..141e4a929b3 100755 Binary files a/Master/bin/i386-linux/eptex and b/Master/bin/i386-linux/eptex differ diff --git a/Master/bin/i386-linux/gftodvi b/Master/bin/i386-linux/gftodvi index c6b10fc85bd..a9a0a4dce86 100755 Binary files a/Master/bin/i386-linux/gftodvi and b/Master/bin/i386-linux/gftodvi differ diff --git a/Master/bin/i386-linux/gftopk b/Master/bin/i386-linux/gftopk index 28e50be3cc2..602a2401635 100755 Binary files a/Master/bin/i386-linux/gftopk and b/Master/bin/i386-linux/gftopk differ diff --git a/Master/bin/i386-linux/gftype b/Master/bin/i386-linux/gftype index 063c86183b0..5ed6f7075c3 100755 Binary files a/Master/bin/i386-linux/gftype and b/Master/bin/i386-linux/gftype differ diff --git a/Master/bin/i386-linux/gsftopk b/Master/bin/i386-linux/gsftopk index 02f8b4ec84d..d1a0ba4eeea 100755 Binary files a/Master/bin/i386-linux/gsftopk and b/Master/bin/i386-linux/gsftopk differ diff --git a/Master/bin/i386-linux/hbf2gf b/Master/bin/i386-linux/hbf2gf index c2cbb37aecb..6534a2513a9 100755 Binary files a/Master/bin/i386-linux/hbf2gf and b/Master/bin/i386-linux/hbf2gf differ diff --git a/Master/bin/i386-linux/luatex b/Master/bin/i386-linux/luatex index c31fae26c1f..629d96bcf2e 100755 Binary files a/Master/bin/i386-linux/luatex and b/Master/bin/i386-linux/luatex differ diff --git a/Master/bin/i386-linux/makeindex b/Master/bin/i386-linux/makeindex index 4b22cc4b50e..fb85bb56f75 100755 Binary files a/Master/bin/i386-linux/makeindex and b/Master/bin/i386-linux/makeindex differ diff --git a/Master/bin/i386-linux/makejvf b/Master/bin/i386-linux/makejvf index dbe157712a1..201e1790ee8 100755 Binary files a/Master/bin/i386-linux/makejvf and b/Master/bin/i386-linux/makejvf differ diff --git a/Master/bin/i386-linux/mendex b/Master/bin/i386-linux/mendex index 7aba46da0bb..6a118e9e0ea 100755 Binary files a/Master/bin/i386-linux/mendex and b/Master/bin/i386-linux/mendex differ diff --git a/Master/bin/i386-linux/mf b/Master/bin/i386-linux/mf index 454fcb4179e..0ef9ecd3e67 100755 Binary files a/Master/bin/i386-linux/mf and b/Master/bin/i386-linux/mf differ diff --git a/Master/bin/i386-linux/mf-nowin b/Master/bin/i386-linux/mf-nowin index 58d62737d22..c5ba50817ec 100755 Binary files a/Master/bin/i386-linux/mf-nowin and b/Master/bin/i386-linux/mf-nowin differ diff --git a/Master/bin/i386-linux/mft b/Master/bin/i386-linux/mft index f262255b900..65b4fd08c5a 100755 Binary files a/Master/bin/i386-linux/mft and b/Master/bin/i386-linux/mft differ diff --git a/Master/bin/i386-linux/mpost b/Master/bin/i386-linux/mpost index dfb69552a8c..be3360ef737 100755 Binary files a/Master/bin/i386-linux/mpost and b/Master/bin/i386-linux/mpost differ diff --git a/Master/bin/i386-linux/odvicopy b/Master/bin/i386-linux/odvicopy index 59b13a60a66..d1405edcb21 100755 Binary files a/Master/bin/i386-linux/odvicopy and b/Master/bin/i386-linux/odvicopy differ diff --git a/Master/bin/i386-linux/odvitype b/Master/bin/i386-linux/odvitype index a90a08893fd..7de33a175cb 100755 Binary files a/Master/bin/i386-linux/odvitype and b/Master/bin/i386-linux/odvitype differ diff --git a/Master/bin/i386-linux/omfonts b/Master/bin/i386-linux/omfonts index 9be2a7ca35f..847d3dcf053 100755 Binary files a/Master/bin/i386-linux/omfonts and b/Master/bin/i386-linux/omfonts differ diff --git a/Master/bin/i386-linux/otangle b/Master/bin/i386-linux/otangle index b8e8fff21e9..b60aaeec3e2 100755 Binary files a/Master/bin/i386-linux/otangle and b/Master/bin/i386-linux/otangle differ diff --git a/Master/bin/i386-linux/otftotfm b/Master/bin/i386-linux/otftotfm index 436e88c4686..1e89c651874 100755 Binary files a/Master/bin/i386-linux/otftotfm and b/Master/bin/i386-linux/otftotfm differ diff --git a/Master/bin/i386-linux/otp2ocp b/Master/bin/i386-linux/otp2ocp index 07e44773047..c4d38034032 100755 Binary files a/Master/bin/i386-linux/otp2ocp and b/Master/bin/i386-linux/otp2ocp differ diff --git a/Master/bin/i386-linux/outocp b/Master/bin/i386-linux/outocp index 626650c8188..ad8c2275f74 100755 Binary files a/Master/bin/i386-linux/outocp and b/Master/bin/i386-linux/outocp differ diff --git a/Master/bin/i386-linux/pbibtex b/Master/bin/i386-linux/pbibtex index 85b1d309577..3b7c0a57df7 100755 Binary files a/Master/bin/i386-linux/pbibtex and b/Master/bin/i386-linux/pbibtex differ diff --git a/Master/bin/i386-linux/pdftex b/Master/bin/i386-linux/pdftex index 8137d261219..e0905257738 100755 Binary files a/Master/bin/i386-linux/pdftex and b/Master/bin/i386-linux/pdftex differ diff --git a/Master/bin/i386-linux/pdvitype b/Master/bin/i386-linux/pdvitype index c3530b98b25..87f84a967d3 100755 Binary files a/Master/bin/i386-linux/pdvitype and b/Master/bin/i386-linux/pdvitype differ diff --git a/Master/bin/i386-linux/pktogf b/Master/bin/i386-linux/pktogf index c87d7e07a44..64ef6197291 100755 Binary files a/Master/bin/i386-linux/pktogf and b/Master/bin/i386-linux/pktogf differ diff --git a/Master/bin/i386-linux/pktype b/Master/bin/i386-linux/pktype index 5eaedb53e91..35ba6ab871f 100755 Binary files a/Master/bin/i386-linux/pktype and b/Master/bin/i386-linux/pktype differ diff --git a/Master/bin/i386-linux/ppltotf b/Master/bin/i386-linux/ppltotf index 8a4580aef57..467698e14f8 100755 Binary files a/Master/bin/i386-linux/ppltotf and b/Master/bin/i386-linux/ppltotf differ diff --git a/Master/bin/i386-linux/ps2pk b/Master/bin/i386-linux/ps2pk index 0b64734e866..cddd84fb706 100755 Binary files a/Master/bin/i386-linux/ps2pk and b/Master/bin/i386-linux/ps2pk differ diff --git a/Master/bin/i386-linux/ptex b/Master/bin/i386-linux/ptex index 42e6482245d..c9910928f45 100755 Binary files a/Master/bin/i386-linux/ptex and b/Master/bin/i386-linux/ptex differ diff --git a/Master/bin/i386-linux/ptftopl b/Master/bin/i386-linux/ptftopl index 968c6fb07c7..ad247f1f743 100755 Binary files a/Master/bin/i386-linux/ptftopl and b/Master/bin/i386-linux/ptftopl differ diff --git a/Master/bin/i386-linux/synctex b/Master/bin/i386-linux/synctex index 8d38b195e7f..d75042c95e6 100755 Binary files a/Master/bin/i386-linux/synctex and b/Master/bin/i386-linux/synctex differ diff --git a/Master/bin/i386-linux/t4ht b/Master/bin/i386-linux/t4ht index 1032f3ea614..0cc7b23052f 100755 Binary files a/Master/bin/i386-linux/t4ht and b/Master/bin/i386-linux/t4ht differ diff --git a/Master/bin/i386-linux/tangle b/Master/bin/i386-linux/tangle index b0832b6fea9..ee394fc6f41 100755 Binary files a/Master/bin/i386-linux/tangle and b/Master/bin/i386-linux/tangle differ diff --git a/Master/bin/i386-linux/tex b/Master/bin/i386-linux/tex index 9a46b88b3f8..33e5a1f562e 100755 Binary files a/Master/bin/i386-linux/tex and b/Master/bin/i386-linux/tex differ diff --git a/Master/bin/i386-linux/tex4ht b/Master/bin/i386-linux/tex4ht index afe0b716baf..66f6f1b2e14 100755 Binary files a/Master/bin/i386-linux/tex4ht and b/Master/bin/i386-linux/tex4ht differ diff --git a/Master/bin/i386-linux/tftopl b/Master/bin/i386-linux/tftopl index 93f4a8335ce..afbae896053 100755 Binary files a/Master/bin/i386-linux/tftopl and b/Master/bin/i386-linux/tftopl differ diff --git a/Master/bin/i386-linux/tie b/Master/bin/i386-linux/tie index 3829e6282d4..300d1cc2262 100755 Binary files a/Master/bin/i386-linux/tie and b/Master/bin/i386-linux/tie differ diff --git a/Master/bin/i386-linux/tpic2pdftex b/Master/bin/i386-linux/tpic2pdftex index 16fef2c8fff..412dc0d771f 100755 --- a/Master/bin/i386-linux/tpic2pdftex +++ b/Master/bin/i386-linux/tpic2pdftex @@ -1,6 +1,6 @@ #!/bin/sh - # -# $Id: tpic2pdftex,v 1.97 2010/01/16 11:51:43 hahe Exp $ +# $Id: tpic2pdftex 22938 2011-06-12 22:03:14Z karl $ # # Experimental awk-script for conversion of tpic \specials as produced # by (groff-)pic into pdfTeX \pdfliteral sections for further processing @@ -40,6 +40,8 @@ # hartmut_henkel@gmx.de # # NEWS: +# 11 Jun. 2011 - sh construct portability +# (patch from Nelson Beebe) # 24 Dec. 2009 - use gawk for default awk only if it exists # (patch by Karl Berry). # 14 Jan. 2007 - make it executable shell script, calling awk diff --git a/Master/bin/i386-linux/ttf2afm b/Master/bin/i386-linux/ttf2afm index be0cfb82474..5b562e19352 100755 Binary files a/Master/bin/i386-linux/ttf2afm and b/Master/bin/i386-linux/ttf2afm differ diff --git a/Master/bin/i386-linux/ttf2pk b/Master/bin/i386-linux/ttf2pk index cbb8de4db9e..de05a02bb92 100755 Binary files a/Master/bin/i386-linux/ttf2pk and b/Master/bin/i386-linux/ttf2pk differ diff --git a/Master/bin/i386-linux/ttf2tfm b/Master/bin/i386-linux/ttf2tfm index 11185695bf2..735b610f8bc 100755 Binary files a/Master/bin/i386-linux/ttf2tfm and b/Master/bin/i386-linux/ttf2tfm differ diff --git a/Master/bin/i386-linux/vftovp b/Master/bin/i386-linux/vftovp index ab6ce7cd6be..1eccb0729a4 100755 Binary files a/Master/bin/i386-linux/vftovp and b/Master/bin/i386-linux/vftovp differ diff --git a/Master/bin/i386-linux/weave b/Master/bin/i386-linux/weave index e37dec8e2da..9bf39cbf775 100755 Binary files a/Master/bin/i386-linux/weave and b/Master/bin/i386-linux/weave differ diff --git a/Master/bin/i386-linux/xdvi-xaw b/Master/bin/i386-linux/xdvi-xaw index 7f4444e29e6..76b4c2d46bb 100755 Binary files a/Master/bin/i386-linux/xdvi-xaw and b/Master/bin/i386-linux/xdvi-xaw differ diff --git a/Master/bin/i386-linux/xdvipdfmx b/Master/bin/i386-linux/xdvipdfmx index e47ba3e2c2e..77b8727bf67 100755 Binary files a/Master/bin/i386-linux/xdvipdfmx and b/Master/bin/i386-linux/xdvipdfmx differ diff --git a/Master/bin/i386-linux/xetex b/Master/bin/i386-linux/xetex index 565ce8e18c8..57d966cea5e 100755 Binary files a/Master/bin/i386-linux/xetex and b/Master/bin/i386-linux/xetex differ diff --git a/Master/bin/sparc-linux/afm2pl b/Master/bin/sparc-linux/afm2pl index ba8ae9db661..3b5856017d9 100755 Binary files a/Master/bin/sparc-linux/afm2pl and b/Master/bin/sparc-linux/afm2pl differ diff --git a/Master/bin/sparc-linux/afm2tfm b/Master/bin/sparc-linux/afm2tfm index 9a3a3bb7aad..5a2725dd143 100755 Binary files a/Master/bin/sparc-linux/afm2tfm and b/Master/bin/sparc-linux/afm2tfm differ diff --git a/Master/bin/sparc-linux/aleph b/Master/bin/sparc-linux/aleph index 8ef54254b86..cd088d2dd0d 100755 Binary files a/Master/bin/sparc-linux/aleph and b/Master/bin/sparc-linux/aleph differ diff --git a/Master/bin/sparc-linux/bibtex b/Master/bin/sparc-linux/bibtex index 9493152de21..5fadd853b6b 100755 Binary files a/Master/bin/sparc-linux/bibtex and b/Master/bin/sparc-linux/bibtex differ diff --git a/Master/bin/sparc-linux/bibtex8 b/Master/bin/sparc-linux/bibtex8 index ec353aeefe8..2824d13d8e2 100755 Binary files a/Master/bin/sparc-linux/bibtex8 and b/Master/bin/sparc-linux/bibtex8 differ diff --git a/Master/bin/sparc-linux/bibtexu b/Master/bin/sparc-linux/bibtexu index fa48cc6ace3..8c78dca443b 100755 Binary files a/Master/bin/sparc-linux/bibtexu and b/Master/bin/sparc-linux/bibtexu differ diff --git a/Master/bin/sparc-linux/ctangle b/Master/bin/sparc-linux/ctangle index 2d663028c6e..2ffebe151df 100755 Binary files a/Master/bin/sparc-linux/ctangle and b/Master/bin/sparc-linux/ctangle differ diff --git a/Master/bin/sparc-linux/ctie b/Master/bin/sparc-linux/ctie index 4a8b033d0d0..0ffe52dc6a1 100755 Binary files a/Master/bin/sparc-linux/ctie and b/Master/bin/sparc-linux/ctie differ diff --git a/Master/bin/sparc-linux/cweave b/Master/bin/sparc-linux/cweave index 4f7906fbcbf..b01e9805309 100755 Binary files a/Master/bin/sparc-linux/cweave and b/Master/bin/sparc-linux/cweave differ diff --git a/Master/bin/sparc-linux/detex b/Master/bin/sparc-linux/detex index 35d05c1632c..f6dc995d4cc 100755 Binary files a/Master/bin/sparc-linux/detex and b/Master/bin/sparc-linux/detex differ diff --git a/Master/bin/sparc-linux/dvi2tty b/Master/bin/sparc-linux/dvi2tty index 888bbeb5b42..6116b11c717 100755 Binary files a/Master/bin/sparc-linux/dvi2tty and b/Master/bin/sparc-linux/dvi2tty differ diff --git a/Master/bin/sparc-linux/dvicopy b/Master/bin/sparc-linux/dvicopy index 7d98cdc1371..24e45b7216d 100755 Binary files a/Master/bin/sparc-linux/dvicopy and b/Master/bin/sparc-linux/dvicopy differ diff --git a/Master/bin/sparc-linux/dvilj b/Master/bin/sparc-linux/dvilj index f01e7e1ab8c..037a26c520d 100755 Binary files a/Master/bin/sparc-linux/dvilj and b/Master/bin/sparc-linux/dvilj differ diff --git a/Master/bin/sparc-linux/dvilj2p b/Master/bin/sparc-linux/dvilj2p index 81d829569ec..522a81becf9 100755 Binary files a/Master/bin/sparc-linux/dvilj2p and b/Master/bin/sparc-linux/dvilj2p differ diff --git a/Master/bin/sparc-linux/dvilj4 b/Master/bin/sparc-linux/dvilj4 index 6a92735e24d..1b72da7623d 100755 Binary files a/Master/bin/sparc-linux/dvilj4 and b/Master/bin/sparc-linux/dvilj4 differ diff --git a/Master/bin/sparc-linux/dvilj4l b/Master/bin/sparc-linux/dvilj4l index d5b31b0a7be..4283a2e80e5 100755 Binary files a/Master/bin/sparc-linux/dvilj4l and b/Master/bin/sparc-linux/dvilj4l differ diff --git a/Master/bin/sparc-linux/dvipdfmx b/Master/bin/sparc-linux/dvipdfmx index f5514080225..182251c2c1e 100755 Binary files a/Master/bin/sparc-linux/dvipdfmx and b/Master/bin/sparc-linux/dvipdfmx differ diff --git a/Master/bin/sparc-linux/dvipng b/Master/bin/sparc-linux/dvipng index 689994ee9dc..2d02c2a36d3 100755 Binary files a/Master/bin/sparc-linux/dvipng and b/Master/bin/sparc-linux/dvipng differ diff --git a/Master/bin/sparc-linux/dvipos b/Master/bin/sparc-linux/dvipos index e16ea341761..e44842c9703 100755 Binary files a/Master/bin/sparc-linux/dvipos and b/Master/bin/sparc-linux/dvipos differ diff --git a/Master/bin/sparc-linux/dvips b/Master/bin/sparc-linux/dvips index a4f90859895..a907d283feb 100755 Binary files a/Master/bin/sparc-linux/dvips and b/Master/bin/sparc-linux/dvips differ diff --git a/Master/bin/sparc-linux/dvisvgm b/Master/bin/sparc-linux/dvisvgm index ac483f4af8e..b20dfbf2d54 100755 Binary files a/Master/bin/sparc-linux/dvisvgm and b/Master/bin/sparc-linux/dvisvgm differ diff --git a/Master/bin/sparc-linux/dvitype b/Master/bin/sparc-linux/dvitype index a26df3af645..f5f1b38d162 100755 Binary files a/Master/bin/sparc-linux/dvitype and b/Master/bin/sparc-linux/dvitype differ diff --git a/Master/bin/sparc-linux/eptex b/Master/bin/sparc-linux/eptex index 2643123e386..30d920f4cff 100755 Binary files a/Master/bin/sparc-linux/eptex and b/Master/bin/sparc-linux/eptex differ diff --git a/Master/bin/sparc-linux/gftodvi b/Master/bin/sparc-linux/gftodvi index 44d0d50bb4d..2e13296c3fb 100755 Binary files a/Master/bin/sparc-linux/gftodvi and b/Master/bin/sparc-linux/gftodvi differ diff --git a/Master/bin/sparc-linux/gftopk b/Master/bin/sparc-linux/gftopk index a624fdefcbc..e19d3e28515 100755 Binary files a/Master/bin/sparc-linux/gftopk and b/Master/bin/sparc-linux/gftopk differ diff --git a/Master/bin/sparc-linux/gftype b/Master/bin/sparc-linux/gftype index 879cb73b4db..77f8a709c31 100755 Binary files a/Master/bin/sparc-linux/gftype and b/Master/bin/sparc-linux/gftype differ diff --git a/Master/bin/sparc-linux/gsftopk b/Master/bin/sparc-linux/gsftopk index 0b8f832a215..d6b422f4cc6 100755 Binary files a/Master/bin/sparc-linux/gsftopk and b/Master/bin/sparc-linux/gsftopk differ diff --git a/Master/bin/sparc-linux/hbf2gf b/Master/bin/sparc-linux/hbf2gf index 95dec8f9020..1a10f432407 100755 Binary files a/Master/bin/sparc-linux/hbf2gf and b/Master/bin/sparc-linux/hbf2gf differ diff --git a/Master/bin/sparc-linux/kpsewhich b/Master/bin/sparc-linux/kpsewhich index e7fb8293d7b..cbb55e1f3ca 100755 Binary files a/Master/bin/sparc-linux/kpsewhich and b/Master/bin/sparc-linux/kpsewhich differ diff --git a/Master/bin/sparc-linux/luatex b/Master/bin/sparc-linux/luatex index f5beb2d3ec0..360c0ab5ada 100755 Binary files a/Master/bin/sparc-linux/luatex and b/Master/bin/sparc-linux/luatex differ diff --git a/Master/bin/sparc-linux/makeindex b/Master/bin/sparc-linux/makeindex index a7bc3a2ede4..97e7a3bf7f0 100755 Binary files a/Master/bin/sparc-linux/makeindex and b/Master/bin/sparc-linux/makeindex differ diff --git a/Master/bin/sparc-linux/makejvf b/Master/bin/sparc-linux/makejvf index 9871d0a3d3f..3a9354663f8 100755 Binary files a/Master/bin/sparc-linux/makejvf and b/Master/bin/sparc-linux/makejvf differ diff --git a/Master/bin/sparc-linux/mendex b/Master/bin/sparc-linux/mendex index df48e8010d9..b76ffebbc3c 100755 Binary files a/Master/bin/sparc-linux/mendex and b/Master/bin/sparc-linux/mendex differ diff --git a/Master/bin/sparc-linux/mf b/Master/bin/sparc-linux/mf index 0a4076eb26b..5dd6976890a 100755 Binary files a/Master/bin/sparc-linux/mf and b/Master/bin/sparc-linux/mf differ diff --git a/Master/bin/sparc-linux/mf-nowin b/Master/bin/sparc-linux/mf-nowin index b5682b12d77..21782c1489a 100755 Binary files a/Master/bin/sparc-linux/mf-nowin and b/Master/bin/sparc-linux/mf-nowin differ diff --git a/Master/bin/sparc-linux/mft b/Master/bin/sparc-linux/mft index d1a138ccc70..32b41cd82c6 100755 Binary files a/Master/bin/sparc-linux/mft and b/Master/bin/sparc-linux/mft differ diff --git a/Master/bin/sparc-linux/mpost b/Master/bin/sparc-linux/mpost index 8ae3e3d6512..9e186473ca4 100755 Binary files a/Master/bin/sparc-linux/mpost and b/Master/bin/sparc-linux/mpost differ diff --git a/Master/bin/sparc-linux/odvicopy b/Master/bin/sparc-linux/odvicopy index 74fe3f258b8..2aa3f0a7978 100755 Binary files a/Master/bin/sparc-linux/odvicopy and b/Master/bin/sparc-linux/odvicopy differ diff --git a/Master/bin/sparc-linux/odvitype b/Master/bin/sparc-linux/odvitype index 9b2b98e67b1..3421ad7210d 100755 Binary files a/Master/bin/sparc-linux/odvitype and b/Master/bin/sparc-linux/odvitype differ diff --git a/Master/bin/sparc-linux/omfonts b/Master/bin/sparc-linux/omfonts index 1da6b0dcd44..065e3f4f577 100755 Binary files a/Master/bin/sparc-linux/omfonts and b/Master/bin/sparc-linux/omfonts differ diff --git a/Master/bin/sparc-linux/otangle b/Master/bin/sparc-linux/otangle index acbd9d06dc7..ad21517e152 100755 Binary files a/Master/bin/sparc-linux/otangle and b/Master/bin/sparc-linux/otangle differ diff --git a/Master/bin/sparc-linux/otftotfm b/Master/bin/sparc-linux/otftotfm index 94cf9fde720..aa6174c10b4 100755 Binary files a/Master/bin/sparc-linux/otftotfm and b/Master/bin/sparc-linux/otftotfm differ diff --git a/Master/bin/sparc-linux/otp2ocp b/Master/bin/sparc-linux/otp2ocp index 92cf9e0e938..1d734735ced 100755 Binary files a/Master/bin/sparc-linux/otp2ocp and b/Master/bin/sparc-linux/otp2ocp differ diff --git a/Master/bin/sparc-linux/outocp b/Master/bin/sparc-linux/outocp index db6e527d875..dc33f86ad4f 100755 Binary files a/Master/bin/sparc-linux/outocp and b/Master/bin/sparc-linux/outocp differ diff --git a/Master/bin/sparc-linux/pbibtex b/Master/bin/sparc-linux/pbibtex index 284cb3ce7ae..95bfbdc6e4e 100755 Binary files a/Master/bin/sparc-linux/pbibtex and b/Master/bin/sparc-linux/pbibtex differ diff --git a/Master/bin/sparc-linux/pdftex b/Master/bin/sparc-linux/pdftex index 3b1bb7753e2..cdb48d1efbe 100755 Binary files a/Master/bin/sparc-linux/pdftex and b/Master/bin/sparc-linux/pdftex differ diff --git a/Master/bin/sparc-linux/pdvitype b/Master/bin/sparc-linux/pdvitype index 6272e11f532..6bd4b071666 100755 Binary files a/Master/bin/sparc-linux/pdvitype and b/Master/bin/sparc-linux/pdvitype differ diff --git a/Master/bin/sparc-linux/pktogf b/Master/bin/sparc-linux/pktogf index 35a51673955..6479e78dd55 100755 Binary files a/Master/bin/sparc-linux/pktogf and b/Master/bin/sparc-linux/pktogf differ diff --git a/Master/bin/sparc-linux/pktype b/Master/bin/sparc-linux/pktype index a966380d177..87c6cab1830 100755 Binary files a/Master/bin/sparc-linux/pktype and b/Master/bin/sparc-linux/pktype differ diff --git a/Master/bin/sparc-linux/ppltotf b/Master/bin/sparc-linux/ppltotf index 48e23672000..bad0850123c 100755 Binary files a/Master/bin/sparc-linux/ppltotf and b/Master/bin/sparc-linux/ppltotf differ diff --git a/Master/bin/sparc-linux/ps2pk b/Master/bin/sparc-linux/ps2pk index dea82861bd6..17ca09fcb21 100755 Binary files a/Master/bin/sparc-linux/ps2pk and b/Master/bin/sparc-linux/ps2pk differ diff --git a/Master/bin/sparc-linux/ptex b/Master/bin/sparc-linux/ptex index 2727523bc1d..3e3ef3a745a 100755 Binary files a/Master/bin/sparc-linux/ptex and b/Master/bin/sparc-linux/ptex differ diff --git a/Master/bin/sparc-linux/ptftopl b/Master/bin/sparc-linux/ptftopl index e72f6ea830a..8215cf62883 100755 Binary files a/Master/bin/sparc-linux/ptftopl and b/Master/bin/sparc-linux/ptftopl differ diff --git a/Master/bin/sparc-linux/synctex b/Master/bin/sparc-linux/synctex index a091e93d6b3..6dd4c72f873 100755 Binary files a/Master/bin/sparc-linux/synctex and b/Master/bin/sparc-linux/synctex differ diff --git a/Master/bin/sparc-linux/t4ht b/Master/bin/sparc-linux/t4ht index e327efe2678..34ed4308dca 100755 Binary files a/Master/bin/sparc-linux/t4ht and b/Master/bin/sparc-linux/t4ht differ diff --git a/Master/bin/sparc-linux/tangle b/Master/bin/sparc-linux/tangle index b47a994c533..c77390a12d7 100755 Binary files a/Master/bin/sparc-linux/tangle and b/Master/bin/sparc-linux/tangle differ diff --git a/Master/bin/sparc-linux/tex b/Master/bin/sparc-linux/tex index 281e5a3890e..a332cfcd3bb 100755 Binary files a/Master/bin/sparc-linux/tex and b/Master/bin/sparc-linux/tex differ diff --git a/Master/bin/sparc-linux/tex4ht b/Master/bin/sparc-linux/tex4ht index fb8787c72b1..c41e93031aa 100755 Binary files a/Master/bin/sparc-linux/tex4ht and b/Master/bin/sparc-linux/tex4ht differ diff --git a/Master/bin/sparc-linux/tftopl b/Master/bin/sparc-linux/tftopl index 1cb6ebb37be..15089df838d 100755 Binary files a/Master/bin/sparc-linux/tftopl and b/Master/bin/sparc-linux/tftopl differ diff --git a/Master/bin/sparc-linux/tie b/Master/bin/sparc-linux/tie index df08ef2d907..3d45a713004 100755 Binary files a/Master/bin/sparc-linux/tie and b/Master/bin/sparc-linux/tie differ diff --git a/Master/bin/sparc-linux/tpic2pdftex b/Master/bin/sparc-linux/tpic2pdftex index 16fef2c8fff..412dc0d771f 100755 --- a/Master/bin/sparc-linux/tpic2pdftex +++ b/Master/bin/sparc-linux/tpic2pdftex @@ -1,6 +1,6 @@ #!/bin/sh - # -# $Id: tpic2pdftex,v 1.97 2010/01/16 11:51:43 hahe Exp $ +# $Id: tpic2pdftex 22938 2011-06-12 22:03:14Z karl $ # # Experimental awk-script for conversion of tpic \specials as produced # by (groff-)pic into pdfTeX \pdfliteral sections for further processing @@ -40,6 +40,8 @@ # hartmut_henkel@gmx.de # # NEWS: +# 11 Jun. 2011 - sh construct portability +# (patch from Nelson Beebe) # 24 Dec. 2009 - use gawk for default awk only if it exists # (patch by Karl Berry). # 14 Jan. 2007 - make it executable shell script, calling awk diff --git a/Master/bin/sparc-linux/ttf2afm b/Master/bin/sparc-linux/ttf2afm index 38520160e9d..178ae08efaa 100755 Binary files a/Master/bin/sparc-linux/ttf2afm and b/Master/bin/sparc-linux/ttf2afm differ diff --git a/Master/bin/sparc-linux/ttf2pk b/Master/bin/sparc-linux/ttf2pk index f8f18887f10..5d746d03462 100755 Binary files a/Master/bin/sparc-linux/ttf2pk and b/Master/bin/sparc-linux/ttf2pk differ diff --git a/Master/bin/sparc-linux/ttf2tfm b/Master/bin/sparc-linux/ttf2tfm index f6a3364a344..ec6aed67475 100755 Binary files a/Master/bin/sparc-linux/ttf2tfm and b/Master/bin/sparc-linux/ttf2tfm differ diff --git a/Master/bin/sparc-linux/vftovp b/Master/bin/sparc-linux/vftovp index f9b1298b108..82e429ffcd4 100755 Binary files a/Master/bin/sparc-linux/vftovp and b/Master/bin/sparc-linux/vftovp differ diff --git a/Master/bin/sparc-linux/weave b/Master/bin/sparc-linux/weave index 12d535140b6..052fced24ce 100755 Binary files a/Master/bin/sparc-linux/weave and b/Master/bin/sparc-linux/weave differ diff --git a/Master/bin/sparc-linux/xdvi-xaw b/Master/bin/sparc-linux/xdvi-xaw index 2516efe50cf..bc68f4db19d 100755 Binary files a/Master/bin/sparc-linux/xdvi-xaw and b/Master/bin/sparc-linux/xdvi-xaw differ diff --git a/Master/bin/sparc-linux/xdvipdfmx b/Master/bin/sparc-linux/xdvipdfmx index 25679812902..efff33954cc 100755 Binary files a/Master/bin/sparc-linux/xdvipdfmx and b/Master/bin/sparc-linux/xdvipdfmx differ diff --git a/Master/bin/sparc-linux/xetex b/Master/bin/sparc-linux/xetex index 5f2430f150e..bd4c793162b 100755 Binary files a/Master/bin/sparc-linux/xetex and b/Master/bin/sparc-linux/xetex differ diff --git a/Master/texmf-dist/doc/support/pkfix-helper/README b/Master/texmf-dist/doc/support/pkfix-helper/README index 76a3b58ae71..7682a6ccad0 100644 --- a/Master/texmf-dist/doc/support/pkfix-helper/README +++ b/Master/texmf-dist/doc/support/pkfix-helper/README @@ -42,17 +42,11 @@ encoding-samples.pdf) and install the Unix man page (pkfix-helper.1). At a minimum, you should *read* the documentation; pkfix-helper usage is neither completely automatic nor completely intuitive. -As the pkfix README states, "I have only tested with a few test files -on a Linux machine with teTeX." The same is true for pkfix-helper. -In particular, I don't know what needs to be done to get pkfix-helper -to work under Windows. If you're a Windows user, you're on your own. -Sorry. Maybe try Cygwin (http://www.cygwin.com/)? - Copyright and license ===================== -Copyright (C) 2010, Scott Pakin +Copyright (C) 2011, Scott Pakin This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license diff --git a/Master/texmf-dist/doc/support/pkfix-helper/encoding-samples.pdf b/Master/texmf-dist/doc/support/pkfix-helper/encoding-samples.pdf index 088c4edc64f..3c73e8870b8 100644 Binary files a/Master/texmf-dist/doc/support/pkfix-helper/encoding-samples.pdf and b/Master/texmf-dist/doc/support/pkfix-helper/encoding-samples.pdf differ diff --git a/Master/texmf-dist/doc/support/pkfix-helper/encoding-samples.tex b/Master/texmf-dist/doc/support/pkfix-helper/encoding-samples.tex index e408cf4e067..70032dd3acc 100644 --- a/Master/texmf-dist/doc/support/pkfix-helper/encoding-samples.tex +++ b/Master/texmf-dist/doc/support/pkfix-helper/encoding-samples.tex @@ -108,23 +108,20 @@ character, ``\infont{cmmib10}{\char17}'', is associated with \fname{cmmi10} (the same typeface used for \fname{cmmib10} but in book weight) at character position~17. The ``before'' character, ``\infont{cmsy9}{\char17}'', is also present in position~17 and is -associated with \fname{cmsy10}. Therefore, we know we need to re-run -\pkfh\ with the \verb|--force="Fj=cmsy10 @ 1.2X"| option to force it -to associate document font~\fname{Fj} with \fname{cmsy10} instead of +associated with \fname{cmsy10}. Therefore, we should re-run \pkfh\ +with the \verb|--force="Fj=cmsy10 @ 1.2X"| option to force it to +associate document font~\fname{Fj} with \fname{cmsy10} instead of \fname{cmmib10}. -The font size may need adjusting. In the preceding example, -\verb|--force="Fj=cmsy9"| produces less mismatch for \texttt{cmmib10~@ -1.2X} than does \verb|--force="Fj=cmsy10 @| \verb|1.2X"| -(\texttt{mismatch=0.00106} vs.\ \texttt{mismatch=4.43701}). Making -such a determination still requires human involvement. A suggested -approach is to observe that \verb|--force="Fj=cmsy10 @ *"| causes -\pkfh\ to select a scaling factor of 0.92918X for a scaled font size -of 0.92918~$\times$ 10\,pt.~$=$ 9.2918\,pt. Noting that -\texttt{cmsy9.tfm} exists and assuming that the document source did -not specify a fractional scaling of the font, we can hypothesize that -unscaled \fname{cmsy9} is the font actually utilized in the document. -\end{multicols} +Once the correct typeface is identified, the font size may need +adjusting. In the preceding example, \verb|--force="Fj=cmsy9"| may +produce less mismatch for \texttt{cmmib10~@ 1.2X} than does +\verb|--force="Fj=cmsy10 @| \verb|1.2X"|. Making such a determination +requires human involvement. A suggested approach is first to let +\pkfh\ identify the size and scale automatically by specifying +\verb|--force="Fj=cmsy*@*"|. If doing so produces a poor match or +selects an unlikely scale factor, then the user should manually adjust +the font size and/or scale factor. \end{multicols} \begin{figure*}[bp] \centering diff --git a/Master/texmf-dist/scripts/pkfix-helper/pkfix-helper b/Master/texmf-dist/scripts/pkfix-helper/pkfix-helper index 26d56ede05a..35782931203 100755 --- a/Master/texmf-dist/scripts/pkfix-helper/pkfix-helper +++ b/Master/texmf-dist/scripts/pkfix-helper/pkfix-helper @@ -17,7 +17,7 @@ use strict; # Define some global variables. my $progname = basename $0; # Name of this program -our $VERSION = "1.3"; # Version number of this program +our $VERSION = "1.4"; # Version number of this program my %name2chars; # Map from a font name to a character list my $GS = $ENV{"GS"} || "gs"; # Name of the Ghostscript interpreter my $TFTOPL = $ENV{"TFTOPL"} || "tftopl"; # Name of the TFM to PL converter @@ -46,6 +46,7 @@ my $sample_file_tex; # Name of a TeX file of font samples to write my $single_font_use = 0; # 1=one use per font; 0=allow repetitions my $samples_per_page = 25; # Number of font samples to print per page my $tfm_cache_file; # Name of a file in which to cache font metrics +my $any_scale = 0; # 0=1X, 1.1X, 1.2X, ...; 1=any scale is allowed ########################################################################### @@ -85,17 +86,20 @@ sub read_tfm_cache_file # $tfm_cache_file. sub write_tfm_cache_file { + my $numlines = 0; print STDERR "Writing TFM data to $tfm_cache_file ... " if $verbose; open(CACHEFILE, ">", $tfm_cache_file) || die "${progname}: Failed to create $tfm_cache_file ($!)\n"; while (my ($tfm, $size) = each %tfm2size) { my @widths = %{$tfmfontwidth{$tfm}}; print CACHEFILE "$tfm $size @widths\n"; + $numlines++; } foreach my $tfm (keys %tfmmissing) { print CACHEFILE "$tfm\n"; + $numlines++; } close CACHEFILE; - print STDERR "done.\n" if $verbose; + print STDERR "done ($numlines entries).\n" if $verbose; } @@ -183,8 +187,14 @@ sub optimal_scale ($$) $doc_dot_tfm += $docwidth * $tfmwidth; $tfm_dot_tfm += $tfmwidth**2; } - return 1.0 if $tfm_dot_tfm == 0.0; # TFM characters all have zero width. - return $doc_dot_tfm / $tfm_dot_tfm; + return 1.0 if $tfm_dot_tfm == 0.0; # Handle TFM characters that all have zero width. + my $optscale = $doc_dot_tfm / $tfm_dot_tfm; + unless ($any_scale) { + # Allow only values >= 1.0 and only multiples of 0.1. + return 1.0 if $optscale < 1.0; + $optscale = int($optscale*10 + 0.5) / 10; + } + return $optscale; } @@ -258,18 +268,19 @@ sub texify (@) } -# Parse a font specification into a hash of information. +# Parse a font specification into a list of hashes of information. sub parse_font_spec ($) { my $spec = $_[0]; my $parse_error = "${progname}: Unable to parse font specification \"$spec\"\n"; - if ($spec =~ /^\s*([-\w]+)(.*)$/o) { + if ($spec =~ /^\s*([-\w\*]+)(.*)$/o) { my $tfm = $1; # Name of tfm file (e.g., "cmr10") my $scale_info = $2; # Concatenation of scale type and scale factor my $scale_type; # "X"=multiply, "@"=assign my $scale_amount; # How much to scale the TFM file, "*"=automatic + # Parse the different scale types. if ($scale_info =~ /^\s*$/o) { # Empty $scale_type = 'X'; @@ -294,9 +305,25 @@ sub parse_font_spec ($) else { die $parse_error; } - return {"tfm" => $tfm, - "scale_type" => $scale_type, - "scale" => $scale_amount}; + + # If the tfm file contains a "*", replace the "*" with a + # variety of font sizes. + my @fontlist; + if ($tfm =~ /\*/) { + foreach my $fsize (5..17) { + my $full_tfm = $tfm; + $full_tfm =~ s/\*/$fsize/g; + push @fontlist, {"tfm" => $full_tfm, + "scale_type" => $scale_type, + "scale" => $scale_amount}; + } + } + else { + push @fontlist, {"tfm" => $tfm, + "scale_type" => $scale_type, + "scale" => $scale_amount}; + } + return \@fontlist; } die $parse_error; } @@ -328,6 +355,7 @@ GetOptions ("h|help" => \$wanthelp, "p|ps=s" => \$sample_file_ps, "s|spp=i" => \$samples_per_page, "C|cache=s" => \$tfm_cache_file, + "a|any-scale!" => \$any_scale, "1|no-repeats" => \$single_font_use) || pod2usage(2); if ($wantversion) { print "pkfix-helper $VERSION\n"; @@ -346,13 +374,21 @@ die "${progname}: Samples per page must be at least 1 ($samples_per_page was spe # Convert any user-specified TFMs to the appropriate internal format. foreach my $tfm (@extra_tfms) { my $font_spec = parse_font_spec $tfm; - push @tfmlist, $font_spec; + push @tfmlist, @$font_spec; } # Parse the list of forced font mappings. foreach my $mapstr (@forced_fonts) { $mapstr =~ /^(\w+)\s*=\s*(.*)$/ || die "${progname}: Unable to parse font specification \"$mapstr\"\n"; - $fontmatch{$1} = parse_font_spec $2; + my $parsed_font_spec = parse_font_spec $2; + if (defined $fontmatch{$1}) { + # Append to an existing font match. + $fontmatch{$1} = [@{$fontmatch{$1}}, @$parsed_font_spec]; + } + else { + # Define a new font match, + $fontmatch{$1} = $parsed_font_spec; + } } # Construct a list of (possibly nonexistent) TFM files to try. These @@ -405,6 +441,69 @@ my $entirefile; } print STDERR "done.\n" if $verbose; +# Rename the fonts in each subdocument (figure). +my @fontrenames; +my $fignum = 1; +my $numrenamed = 0; +while ($entirefile =~ /(\%\%BeginDocument: (.*?)\n.*?\%\%EndDocument)/gs) { + my $figure = $1; + my $newfigure = $1; + my $figname = $2; + if ($verbose >= 2) { + if ($fignum == 1) { + print STDERR "Renaming all fonts encountered in included documents:\n"; + } + print STDERR " $figname\n"; + } + while ($figure =~ m|/(\S+)\s+\d+\s+\d+\s+df(.*?>[^<>]*?[DI])\s+E|gs) { + my $fontname = $1; # Name of current font (e.g., "Fa") + $newfigure =~ s,(?<=/)$fontname\b,${fontname}_$fignum,gs; + $newfigure =~ s,\b$fontname(?=\(),${fontname}_$fignum,gs; + $numrenamed++; + if ($verbose >= 2) { + printf STDERR " %s --> %s_%d\n", $fontname, $fontname, $fignum; + } + } + if ($figure ne $newfigure) { + # Remove the font-defining dictionary from the the subdocument + # as it may confuse pkfix. Store it so we can later reinsert + # it into the main document's font-defining dictionary. + my $texdict = ""; + if ($newfigure =~ s/TeXDict begin \d+ \d+ \d+ \d+ \d+ \(.*?\)\s+\@start(.*?)end//gs) { + $texdict = $1; + } + else { + warn "${progname}: Failed to extract a font-defining TeXDict from $figname\n"; + } + push @fontrenames, [$figure, $newfigure, $texdict]; + } + $fignum++; +} +if ($verbose && $entirefile =~ /\%\%BeginDocument:/s) { + print STDERR "Number of Type 3 fonts encountered in included documents: $numrenamed\n"; +} +foreach my $ren (@fontrenames) { + my ($before, $after, $notused) = @$ren; + $entirefile =~ s/\Q$before\E/$after/gs; +} + +# If the document contains a subdocument with (now renamed) font +# definitions, hoist those definitions adjacent to the main document's +# font definitions so pkfix can find them. +if (@fontrenames) { + if ($entirefile =~ /(TeXDict begin (\d+) (\d+) (\d+) (\d+) (\d+) \(.*?\)\s+\@start.*?)(?=end)/s) { + my $fontdict = $1; + my $morefonts = ""; + foreach my $ren (@fontrenames) { + $morefonts .= $ren->[2]; + } + $entirefile =~ s/(\Q$fontdict\E)/$1$morefonts/s; + } + else { + warn "${progname}: Failed to find a font-defining TeXDict\n"; + } +} + # Construct a mapping from each document font name to a list of valid # characters in that font. while ($entirefile =~ m|/(\S+)\s+\d+\s+\d+\s+df(.*?>[^<>]*?[DI])\s+E|gs) { @@ -430,10 +529,10 @@ while ($entirefile =~ m|/(\S+)\s+\d+\s+\d+\s+df(.*?>[^<>]*?[DI])\s+E|gs) { my @sortedfontnames = sort {$#{$name2chars{$b}} <=> $#{$name2chars{$a}} || $a cmp $b} keys %name2chars; if ($verbose) { - printf STDERR "Number of Type 3 fonts encountered: %d\n", 1+$#sortedfontnames; + printf STDERR "Total number of Type 3 fonts encountered: %d\n", 1+$#sortedfontnames; if ($verbose >= 2) { foreach my $fontname (@sortedfontnames) { - printf STDERR " %s -- %3d character(s)\n", $fontname, 1+$#{$name2chars{$fontname}}; + printf STDERR " %-5.5s -- %3d character(s)\n", $fontname, 1+$#{$name2chars{$fontname}}; } } } @@ -449,7 +548,7 @@ else { warn "${progname}: Could not determine the target printer resolution; assuming $dpi DPI\n"; } -# Insert some helper code after the first ProcSet. +# Insert some helper code after the tex.pro ProcSet. my $output_width_ps = $entirefile; # PostScript code to output character widths my $showfontnamecode = <<"SHOWFONTNAME"; \%\%BeginProcSet: $progname.pro @@ -485,8 +584,8 @@ end \%\%EndProcSet SHOWFONTNAME ;#' -if ($output_width_ps !~ s/\%\%EndProcSet/$&\n$showfontnamecode/s) { - print STDERR 'No %%EndProcSet comment was found. We have to guess where to inject PostScript code.', "\n" if $verbose >= 3; +if ($output_width_ps !~ s/\%\%BeginProcSet: tex\w*\.pro.*?\%\%EndProcSet/$&\n$showfontnamecode/s) { + print STDERR "No tex.pro ProcSet was found. We have to guess where to inject PostScript code.\n" if $verbose >= 3; die "${progname}: Unable to inject prologue code\n" if $output_width_ps !~ s/TeXDict begin\s+\d+\s+\d+\s+bop/\n$showfontnamecode\n$&/s; } @@ -562,7 +661,7 @@ read_tfm_cache_file() if defined $tfm_cache_file; print STDERR "Reading TFM files ... " if $verbose; print STDERR "\n" if $verbose >= 2; foreach my $tfm (sort {$a cmp $b} - unique_items map {$_->{"tfm"}} (@tfmlist, values %fontmatch)) { + unique_items map {$_->{"tfm"}} (@tfmlist, map {@$_} values %fontmatch)) { my ($designsize, %num2widths) = @{tfm2widths $tfm}; if (%num2widths) { $tfmfontwidth{$tfm} = \%num2widths; @@ -590,18 +689,24 @@ foreach my $tfminfo (@tfmlist) { @tfmlist = @goodtfmlist; undef @goodtfmlist; -# Do the same for all user-specified font mappings. -while (my ($fontname, $tfminfo) = each %fontmatch) { - my $tfm = $tfminfo->{"tfm"}; - if (!defined ($tfmfontwidth{$tfm})) { - print STDERR "failed.\n" if $verbose; - die "${progname}: Unable to process user-specified TFM file \"$tfm\"\n"; +# Do the same for all user-specified font mappings but abort if none +# of the specified possibilities represent a valid TFM file. +while (my ($fontname, $tfmlist) = each %fontmatch) { + my $anyvalid = 0; + foreach my $tfminfo (@$tfmlist) { + my $tfm = $tfminfo->{"tfm"}; + next if !defined ($tfmfontwidth{$tfm}); + $tfminfo->{"designsize"} = $tfm2size{$tfm}; + if ($tfminfo->{"scale_type"} eq "@") { + # Convert absolute to relative sizes. + $tfminfo->{"scale_type"} = "X"; + $tfminfo->{"scale"} /= $tfminfo->{"designsize"}; + } + $anyvalid = 1; } - $tfminfo->{"designsize"} = $tfm2size{$tfm}; - if ($tfminfo->{"scale_type"} eq "@") { - # Convert absolute to relative sizes. - $tfminfo->{"scale_type"} = "X"; - $tfminfo->{"scale"} /= $tfminfo->{"designsize"}; + if (!$anyvalid) { + print STDERR "failed.\n" if $verbose; + die "${progname}: Unable to utilize any of the TFM files specified for font $fontname\n"; } } @@ -630,9 +735,10 @@ foreach my $fontname (@sortedfontnames) { # Determine the list of eligible fonts to compare against. my @eligible_tfms; - foreach my $tfminfo ($fontmatch{$fontname} || @tfmlist) { + foreach my $tfminfo ($fontmatch{$fontname} ? @{$fontmatch{$fontname}} : @tfmlist) { if ($tfminfo->{"scale"} eq "*") { # Replace "*" with the best scaling factor we can find. + next if !defined $tfmfontwidth{$tfminfo->{"tfm"}}; my $newscale = optimal_scale $fontwidth{$fontname}, $tfmfontwidth{$tfminfo->{"tfm"}}; if (defined $newscale) { # Replace the "*" with the optimal multiplier. @@ -657,6 +763,7 @@ foreach my $fontname (@sortedfontnames) { print STDERR " Processing $fontname ... " if $verbose == 1; foreach my $tfminfo (@eligible_tfms) { my $tfm = $tfminfo->{"tfm"}; + next if !defined $tfmfontwidth{$tfm}; my $scale = $tfminfo->{"scale"}; printf STDERR " Comparing %s and %s \@ %.5gX ... ", $fontname, $tfm, $scale if $verbose >= 2; my $match = compare_maps $fontwidth{$fontname}, $tfmfontwidth{$tfm}, $scale; @@ -706,7 +813,7 @@ foreach my $fontname (@sortedfontnames) { # Insert %DVIPSBitmapFont comments around every Type 3 font definition. my $commented_ps = $entirefile; my $infilename_ps = $infilename; # PostScript version of $infilename -$infilename_ps =~ s/[()\\]/\\$1/g; +$infilename_ps =~ s/([\(\)\\])/\\$1/g; $commented_ps =~ s|^\%(End)?DVIPSBitmapFont.*$||gm; # Remove existing comments (if any) $commented_ps =~ s|/(\S+)\s+\d+\s+\d+\s+df.*?>[^<]*?[DI]\s+E|write_comments($1, $&)|gse; if ($commented_ps !~ /\%\%EndProlog/) { @@ -762,7 +869,7 @@ TeXDict begin font-name-string show (:) show grestore gsave - 36 0 rmoveto + 42 0 rmoveto font-name cvx exec currentfont bitmap-font-transform makefont setfont sample-string show @@ -781,8 +888,8 @@ end \%\%EndProcSet SHOWFONTNAME ; - if ($sample_ps !~ s/\%\%EndProcSet/$&\n$showfontnamecode/) { - print STDERR 'No %%EndProcSet comment was found. We have to guess where to inject PostScript code.', "\n" if $verbose >= 3; + if ($sample_ps !~ s/\%\%BeginProcSet: tex\w*\.pro.*\%\%EndProcSet/$&\n$showfontnamecode/s) { + print STDERR "No tex.pro ProcSet was found. We have to guess where to inject PostScript code.\n" if $verbose >= 3; die "${progname}: Unable to inject prologue code\n" if $sample_ps !~ s/TeXDict begin\s+\d+\s+\d+\s+bop/\n$showfontnamecode\n$&/s; } @@ -1063,7 +1170,12 @@ program's internal operations. Force B to associate a specific font with a given font name appearing the document. I is a two-character B font name such as C. I is a font specification such as -S>. The B<--force> option can be specified +C or S>. An asterisk used in the name of the +base font S<(e.g., C)> will automatically try all integral test +font sizes from 5 to 17 points (C, S, ...,> +C). An asterisk used as a scale value S<(e.g., C)> will be replaced by the scale value that gives the best match to +the original font's metrics. The B<--force> option can be specified repeatedly on the command line. =item B<-p> I, B<--ps>=I @@ -1096,6 +1208,16 @@ previously extracted metrics from I, going through the F-based process only for TFM files that were not previously encountered. +=item B<-q>, B<--quiet> + +Instruct B to produce no output during its run except +for fatal error messages. + +=item B<-1>, B<--no-repeats> + +Prevent B from associating the same I with +more than one B font name. + =item B<-i> I, B<--include>=I Add I to the list of font specifications against which @@ -1121,15 +1243,12 @@ bitmapped image into a single-character font and using that font in LaTeX. B<--keep> prevents such fonts from being replaced. The B<--keep> option can be specified repeatedly on the command line. -=item B<-q>, B<--quiet> +=item B<-a>, B<--any-scale> -Instruct B to produce no output during its run except -for fatal error messages. - -=item B<-1>, B<--no-repeats> - -Prevent B from associating the same I with -more than one B font name. +Allow any value to be used to scale a font when "C<*>" is specified as +the scale factor. Normally, B considers only integer +multiples of 0.1 that are greater than or equal to 1.0 (i.e., +IC<@1X>, C<@1.1X>, C<@1.2X>, C<@1.3X>, etc.). =item B<-s>, B<--spp> @@ -1245,7 +1364,7 @@ Let's hypothesize that C is a better match than C but we don't know how much to scale the font. Fortunately, B allows C<*> to be used as a scaling factor to tell the program to automatically detect an optimal scaling factor, even if -doing so means choosing a highly nonstandard font size: +doing so means choosing a nonstandard font size: $ pkfix-helper oldfile.ps pkfix-oldfile.ps --force="Ff=cmb12 @ *" Reading oldfile.ps ... done. @@ -1268,7 +1387,7 @@ Let's try scaling up F instead: Processing Fi ... done (cmr10 @ 1X, mismatch=0.11683). Processing Fa ... done (cmti10 @ 1X, mismatch=0.08892). Processing Fb ... done (cmr8 @ 1X, mismatch=0.07133). - Processing Ff ... done (cmb10 @ 1.5708X, mismatch=0.00035). + Processing Ff ... done (cmb10 @ 1.5X, mismatch=0.00035). Processing Fh ... done (cmtt10 @ 1X, mismatch=0.06895). Processing Fd ... done (cmmi10 @ 1X, mismatch=0.03966). Processing Fj ... done (cmbx12 @ 1X, mismatch=0.03972). @@ -1276,12 +1395,12 @@ Let's try scaling up F instead: Processing Fg ... done (cmsy10 @ 1X, mismatch=0.00875). Processing Fc ... done (cmr6 @ 1X, mismatch=0.00284). -The match has definitely improved, although S<15.708 pt.> is certainly -an odd size for a font. Then again, many documents I use -nonstandard sizes so this may in fact be correct. The best way to -verify is once again to produce, print, and compare a pair of font -samples and iterate until all of the fonts look correct. Use one -instance of B<--force> for each font you want to alter. +The match has definitely improved, although S<15 pt.> is certainly an +odd size for a font. Then again, many documents I use nonstandard +sizes so this may in fact be correct. The best way to verify is once +again to produce, print, and compare a pair of font samples and +iterate until all of the fonts look correct. Use one instance of +B<--force> for each font you want to alter. =head1 ENVIRONMENT @@ -1352,7 +1471,7 @@ Scott Pakin, I =head1 COPYRIGHT AND LICENSE -Copyright (C) 2010, Scott Pakin +Copyright (C) 2011, Scott Pakin This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license diff --git a/Master/texmf/doc/man/man1/pkfix-helper.1 b/Master/texmf/doc/man/man1/pkfix-helper.1 index d88b9695aae..c0c170fdbe8 100644 --- a/Master/texmf/doc/man/man1/pkfix-helper.1 +++ b/Master/texmf/doc/man/man1/pkfix-helper.1 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.05) +.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07) .\" .\" Standard preamble: .\" ======================================================================== @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "PKFIX-HELPER 1" -.TH PKFIX-HELPER 1 "2010-10-15" "v1.3" " " +.TH PKFIX-HELPER 1 "2011-06-11" "v1.4" " " .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -239,7 +239,11 @@ program's internal operations. Force \fBpkfix-helper\fR to associate a specific font with a given font name appearing the document. \fIname\fR is a two-character \fBdvips\fR font name such as \f(CW\*(C`Fa\*(C'\fR. \fIfontspec\fR is a font specification such as -\&\f(CW\*(C`cmsy10\ @\ 1.1X\*(C'\fR. The \fB\-\-force\fR option can be specified +\&\f(CW\*(C`cmmi8\*(C'\fR or \f(CW\*(C`cmsy10\ @\ 1.1X\*(C'\fR. An asterisk used in the name of the +base font (e.g.,\ \f(CW\*(C`cmti*\*(C'\fR) will automatically try all integral test +font sizes from 5 to 17 points (\f(CW\*(C`cmti5\*(C'\fR, \f(CW\*(C`cmti6\*(C'\fR,\ ..., +\&\f(CW\*(C`cmti17\*(C'\fR). An asterisk used as a scale value (e.g.,\ \f(CW\*(C`cmsy10\ @\ *\*(C'\fR) will be replaced by the scale value that gives the best match to +the original font's metrics. The \fB\-\-force\fR option can be specified repeatedly on the command line. .IP "\fB\-p\fR \fIfilename.ps\fR, \fB\-\-ps\fR=\fIfilename.ps\fR" 4 .IX Item "-p filename.ps, --ps=filename.ps" @@ -264,6 +268,14 @@ which \fB\-\-cache\fR=\fIfilename\fR is specified, \fBpkfix-helper\fR reads the previously extracted metrics from \fIfilename\fR, going through the \&\fItftopl\fR\-based process only for \s-1TFM\s0 files that were not previously encountered. +.IP "\fB\-q\fR, \fB\-\-quiet\fR" 4 +.IX Item "-q, --quiet" +Instruct \fBpkfix-helper\fR to produce no output during its run except +for fatal error messages. +.IP "\fB\-1\fR, \fB\-\-no\-repeats\fR" 4 +.IX Item "-1, --no-repeats" +Prevent \fBpkfix-helper\fR from associating the same \fIfontspec\fR with +more than one \fBdvips\fR font name. .IP "\fB\-i\fR \fIfontspec\fR, \fB\-\-include\fR=\fIfontspec\fR" 4 .IX Item "-i fontspec, --include=fontspec" Add \fIfontspec\fR to the list of font specifications against which @@ -286,14 +298,12 @@ as university or corporate logos into a document by converting the bitmapped image into a single-character font and using that font in LaTeX. \fB\-\-keep\fR prevents such fonts from being replaced. The \&\fB\-\-keep\fR option can be specified repeatedly on the command line. -.IP "\fB\-q\fR, \fB\-\-quiet\fR" 4 -.IX Item "-q, --quiet" -Instruct \fBpkfix-helper\fR to produce no output during its run except -for fatal error messages. -.IP "\fB\-1\fR, \fB\-\-no\-repeats\fR" 4 -.IX Item "-1, --no-repeats" -Prevent \fBpkfix-helper\fR from associating the same \fIfontspec\fR with -more than one \fBdvips\fR font name. +.IP "\fB\-a\fR, \fB\-\-any\-scale\fR" 4 +.IX Item "-a, --any-scale" +Allow any value to be used to scale a font when "\f(CW\*(C`*\*(C'\fR" is specified as +the scale factor. Normally, \fBpkfix-helper\fR considers only integer +multiples of 0.1 that are greater than or equal to 1.0 (i.e., +\&\fIfontname\fR\f(CW@1X\fR, \f(CW\*(C`@1.1X\*(C'\fR, \f(CW\*(C`@1.2X\*(C'\fR, \f(CW\*(C`@1.3X\*(C'\fR, etc.). .IP "\fB\-s\fR, \fB\-\-spp\fR" 4 .IX Item "-s, --spp" Specify the number of font samples per page to print to the files @@ -405,7 +415,7 @@ Let's hypothesize that \f(CW\*(C`cmb12\*(C'\fR is a better match than \f(CW\*(C` we don't know how much to scale the font. Fortunately, \&\fBpkfix-helper\fR allows \f(CW\*(C`*\*(C'\fR to be used as a scaling factor to tell the program to automatically detect an optimal scaling factor, even if -doing so means choosing a highly nonstandard font size: +doing so means choosing a nonstandard font size: .PP .Vb 7 \& $ pkfix\-helper oldfile.ps pkfix\-oldfile.ps \-\-force="Ff=cmb12 @ *" @@ -431,7 +441,7 @@ Let's try scaling up \fIcmb10.tfm\fR instead: \& Processing Fi ... done (cmr10 @ 1X, mismatch=0.11683). \& Processing Fa ... done (cmti10 @ 1X, mismatch=0.08892). \& Processing Fb ... done (cmr8 @ 1X, mismatch=0.07133). -\& Processing Ff ... done (cmb10 @ 1.5708X, mismatch=0.00035). +\& Processing Ff ... done (cmb10 @ 1.5X, mismatch=0.00035). \& Processing Fh ... done (cmtt10 @ 1X, mismatch=0.06895). \& Processing Fd ... done (cmmi10 @ 1X, mismatch=0.03966). \& Processing Fj ... done (cmbx12 @ 1X, mismatch=0.03972). @@ -440,12 +450,12 @@ Let's try scaling up \fIcmb10.tfm\fR instead: \& Processing Fc ... done (cmr6 @ 1X, mismatch=0.00284). .Ve .PP -The match has definitely improved, although 15.708\ pt. is certainly -an odd size for a font. Then again, many documents \fIdo\fR use -nonstandard sizes so this may in fact be correct. The best way to -verify is once again to produce, print, and compare a pair of font -samples and iterate until all of the fonts look correct. Use one -instance of \fB\-\-force\fR for each font you want to alter. +The match has definitely improved, although 15\ pt. is certainly an +odd size for a font. Then again, many documents \fIdo\fR use nonstandard +sizes so this may in fact be correct. The best way to verify is once +again to produce, print, and compare a pair of font samples and +iterate until all of the fonts look correct. Use one instance of +\&\fB\-\-force\fR for each font you want to alter. .SH "ENVIRONMENT" .IX Header "ENVIRONMENT" \&\fBpkfix-helper\fR honors the following environment variables: @@ -496,7 +506,7 @@ Published by Addison-Wesley, \s-1ISBN\s0 0\-201\-37922\-8, Scott Pakin, \fIscott+pkfh@pakin.org\fR .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" -Copyright (C) 2010, Scott Pakin +Copyright (C) 2011, Scott Pakin .PP This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license diff --git a/Master/texmf/doc/man/man1/pkfix-helper.man1.pdf b/Master/texmf/doc/man/man1/pkfix-helper.man1.pdf index 5191b877398..cc8001d7d9c 100644 Binary files a/Master/texmf/doc/man/man1/pkfix-helper.man1.pdf and b/Master/texmf/doc/man/man1/pkfix-helper.man1.pdf differ diff --git a/Master/tlpkg/tlpsrc/00texlive.image.tlpsrc b/Master/tlpkg/tlpsrc/00texlive.image.tlpsrc index f704f131416..ee3ef955feb 100644 --- a/Master/tlpkg/tlpsrc/00texlive.image.tlpsrc +++ b/Master/tlpkg/tlpsrc/00texlive.image.tlpsrc @@ -15,7 +15,6 @@ runpattern d tlpkg/backups runpattern d tlpkg/dev runpattern d tlpkg/doc runpattern d tlpkg/libexec -runpattern d tlpkg/support # runpattern f .mkisofsrc runpattern f autorun.inf -- cgit v1.2.3