texlive[43377] Build/source/texk/texlive/linked_scripts:

commits+karl at tug.org commits+karl at tug.org
Thu Mar 2 01:00:03 CET 2017


Revision: 43377
          http://tug.org/svn/texlive?view=revision&revision=43377
Author:   karl
Date:     2017-03-02 01:00:03 +0100 (Thu, 02 Mar 2017)
Log Message:
-----------
ptex-fontmaps/* inadvertently lost from linked_scripts/script.lst

Modified Paths:
--------------
    trunk/Build/source/texk/texlive/linked_scripts/Makefile.am
    trunk/Build/source/texk/texlive/linked_scripts/Makefile.in
    trunk/Build/source/texk/texlive/linked_scripts/scripts.lst
    trunk/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl

Added Paths:
-----------
    trunk/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/
    trunk/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap-sys.sh
    trunk/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap.pl
    trunk/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-fontmap-creator.pl

Modified: trunk/Build/source/texk/texlive/linked_scripts/Makefile.am
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/Makefile.am	2017-03-01 23:33:53 UTC (rev 43376)
+++ trunk/Build/source/texk/texlive/linked_scripts/Makefile.am	2017-03-02 00:00:03 UTC (rev 43377)
@@ -163,6 +163,9 @@
 	pmx/pmx2pdf.lua \
 	pmxchords/pmxchords.lua \
 	pst2pdf/pst2pdf.pl \
+	ptex-fontmaps/kanji-config-updmap-sys.sh \
+	ptex-fontmaps/kanji-config-updmap.pl \
+	ptex-fontmaps/kanji-fontmap-creator.pl \
 	ptex2pdf/ptex2pdf.lua \
 	purifyeps/purifyeps \
 	pygmentex/pygmentex.py \

Modified: trunk/Build/source/texk/texlive/linked_scripts/Makefile.in
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/Makefile.in	2017-03-01 23:33:53 UTC (rev 43376)
+++ trunk/Build/source/texk/texlive/linked_scripts/Makefile.in	2017-03-02 00:00:03 UTC (rev 43377)
@@ -378,6 +378,9 @@
 	pmx/pmx2pdf.lua \
 	pmxchords/pmxchords.lua \
 	pst2pdf/pst2pdf.pl \
+	ptex-fontmaps/kanji-config-updmap-sys.sh \
+	ptex-fontmaps/kanji-config-updmap.pl \
+	ptex-fontmaps/kanji-fontmap-creator.pl \
 	ptex2pdf/ptex2pdf.lua \
 	purifyeps/purifyeps \
 	pygmentex/pygmentex.py \

Added: trunk/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap-sys.sh
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap-sys.sh	                        (rev 0)
+++ trunk/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap-sys.sh	2017-03-02 00:00:03 UTC (rev 43377)
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+# kanji-config-updmap-sys: 
+# copy of fmtutil-sys by Thomas Esser, public domain.
+
+# wrapper script for updmap-setup-kanji with TEXMFVAR and TEXMFCONFIG set to
+#   TEXMFSYSVAR / TEXMFSYSCONFIG
+
+test -f /bin/ksh && test -z "$RUNNING_KSH" \
+  && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+  && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; }
+unset RUNNING_KSH
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+  && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+  && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+# hack around a bug in zsh:
+test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
+export PATH
+
+exec kanji-config-updmap --sys ${1+"$@"}
+


Property changes on: trunk/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap-sys.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap.pl
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap.pl	                        (rev 0)
+++ trunk/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap.pl	2017-03-02 00:00:03 UTC (rev 43377)
@@ -0,0 +1,386 @@
+#!/usr/bin/env perl
+# kanji-config-updmap: setup Japanese font embedding
+# Version 20170114.0
+#
+# formerly known as updmap-setup-kanji
+#
+# Copyright 2004-2006 by KOBAYASHI R. Taizo for the shell version (updmap-otf)
+# Copyright 2011-2016 by PREINING Norbert
+#
+# This file is licensed under GPL version 3 or any later version.
+# For copyright statements see end of file.
+#
+# For development see
+#  https://github.com/texjporg/jfontmaps
+#
+# For a changelog see the git log
+# 
+
+$^W = 1;
+use Getopt::Long qw(:config no_autoabbrev ignore_case_always);
+use strict;
+
+my $prg = "kanji-config-updmap";
+my $version = '20170114.0';
+
+my $updmap_real = "updmap";
+my $updmap = $updmap_real;
+
+my $dry_run = 0;
+my $opt_help = 0;
+my $opt_jis = 0;
+my $opt_sys = 0;
+my $opt_mode = "ja";
+
+if (! GetOptions(
+        "n|dry-run" => \$dry_run,
+        "h|help" => \$opt_help,
+        "jis2004" => \$opt_jis,
+        "mode=s"   => \$opt_mode,
+        "ja"       => sub { $opt_mode = "ja"; },
+        "sc"       => sub { $opt_mode = "sc"; },
+        "tc"       => sub { $opt_mode = "tc"; },
+        "ko"       => sub { $opt_mode = "ko"; },
+        "sys" => \$opt_sys,
+        "version" => sub { print &version(); exit(0); }, ) ) {
+  die "Try \"$0 --help\" for more information.\n";
+}
+
+
+sub win32 { return ($^O=~/^MSWin(32|64)$/i); }
+
+my $nul = (win32() ? 'nul' : '/dev/null') ;
+
+
+if ($dry_run) {
+  $updmap = "echo updmap"; 
+}
+if ($opt_sys) {
+  $updmap = "$updmap --sys" ;
+  $updmap_real = "$updmap_real --sys" ;
+}
+
+if ($opt_help) {
+  Usage();
+  exit 0;
+}
+
+#
+# representatives of support font families
+#
+my %representatives = (
+  "ja" => {
+    "hiragino"      => "HiraMinPro-W3.otf",
+    "hiragino-pron" => "HiraMinProN-W3.otf",
+    "hiragino-elcapitan" => "HiraginoSerif-W3.ttc",
+    "hiragino-elcapitan-pron" => "HiraginoSerif-W3.ttc",
+    "toppanbunkyu-sierra" => "ToppanBunkyuGothic.ttc",
+    "morisawa"      => "A-OTF-RyuminPro-Light.otf",
+    "morisawa-pr6n" => "A-OTF-RyuminPr6N-Light.otf",
+    "kozuka"        => "KozMinPro-Regular.otf",
+    "kozuka-pr6n"   => "KozMinPr6N-Regular.otf",
+    "kozuka-pr6"    => "KozMinProVI-Regular.otf",
+    "ipa"           => "ipam.ttf",
+    "ipaex"         => "ipaexm.ttf",
+    "moga-mobo"     => "mogam.ttc",
+    "moga-mobo-ex"  => "mogam.ttc",
+    "ume"           => "ume-tmo3.ttf",
+    "ms"            => "msgothic.ttc",
+    "ms-osx"        => "MS-Gothic.ttf",
+    "yu-win"        => "yugothib.ttf",
+    "yu-win10"      => "YuGothB.ttc",
+    "yu-osx"        => "YuMin-Medium.otf",
+    "canon"         => "FGCCHMW3.TTC",
+  },
+  "sc" => {
+    "ms"            => "simsun.ttc",
+    #"sinotype"      => "STSong.ttf", # removed
+    "adobe"         => "AdobeSongStd-Light.otf",
+    "fandol"        => "FandolSong-Regular.otf",
+    "arphic"        => "gbsn00lp.ttf",
+    "cjkunifonts"   => "uming.ttc",
+    "cjkunifonts-ttf" => "uming.ttf",
+  },
+  "tc" => {
+    "ms"            => "mingliu.ttc",
+    "dynacomware"   => "LiSongPro.ttf",
+    "adobe"         => "AdobeMingStd-Light.otf",
+    "arphic"        => "bsmi00lp.ttf",
+    "cjkunifonts"   => "uming.ttc",
+    "cjkunifonts-ttf" => "uming.ttf",
+  },
+  "ko" => {
+    "ms"            => "batang.ttc",
+    "apple"         => "AppleMyungjo.ttf",
+    "adobe"         => "AdobeMyungjoStd-Medium.otf",
+    "baekmuk"       => "dotum.ttf", # slightly safer than batang.ttf on case-insentive systems
+    "unfonts"       => "UnBatang.ttf",
+    "solaris"       => "h2mjsm.ttf",
+  }
+);
+my %available;
+
+
+main(@ARGV);
+
+sub version {
+  my $ret = sprintf "%s version %s\n", 
+    $prg, $version;
+  return $ret;
+}
+
+sub Usage {
+  my $usage = <<"EOF";
+  $prg  Set up embedding of Japanese/Chinese/Korean fonts via updmap.cfg.
+
+                 This script searches for some of the most common fonts
+                 for embedding into pdfs by dvipdfmx.
+
+                 In addition it allows to set up arbitrary font families
+                 to be embedded into the generated pdf files, as long
+                 as at least the map file otf-<family>.map is present.
+                 Other map files that will be used if available are
+                  
+                 For Japanese:
+                   ptex-<family>.map
+                   uptex-<family>.map
+                   otf-<family>.map
+                   otf-up-<family>.map
+
+                 For Korean, Traditional Chinese and Simplified Chinese:
+                   uptex-<NN>-<family>.map
+                   otf-<NN>-<family>.map
+                 (NN being: ko, tc, sc)
+
+  Please see the documentation of updmap for details (updmap --help).
+
+  Usage:  $prg [OPTION] {<fontname>|auto|nofont|status}
+
+     <family>    embed an arbitrary font family <family>, at least the
+                 map file otf-<family>.map has to be available.
+     auto:       embed one of the following supported font families
+                 automatically:
+                   hiragino, hiragino-pron, hiragino-elcapitan,
+                   hiragino-elcapitan-pron, toppanbunkyu-sierra,
+                   morisawa, morisawa-pr6n,
+                   kozuka, kozuka-pr6n, kozuka-pr6,
+                   ipa, ipaex, moga-mobo, moga-mobo-ex, ume,
+                   ms, ms-osx,
+                   yu-win, yu-win10, yu-osx,
+                   canon
+                 and fall back to not embedding any font if none of them
+                 is available
+     nofont:     embed no fonts (and rely on system fonts when displaying pdfs)
+                 If your system does not have any of the supported font 
+                 families as specified above, this target is selected 
+                 automatically.
+     status:     get information about current environment and usable font map
+
+  Options:
+    -n, --dry-run  do not actually run updmap
+    -h, --help     show this message and exit
+    --mode=NN      setup for Japanese (NN=ja), Korean (NN=ko),
+                   Simplified Chinese (NN=sc), Traditional Chinese (NN=tc)
+    --NN           short for --mode=NN
+    --jis2004      use JIS2004 variants for default fonts of (u)pTeX
+    --sys          run in sys mode, i.e., call updmap-sys
+    --version      show version information and exit
+
+EOF
+;
+  print $usage;
+  exit 0;
+}
+
+
+
+###
+### Check Installed Font
+###
+
+sub CheckInstallFont {
+  for my $k (keys %{$representatives{$opt_mode}}) {
+    my $f = `kpsewhich $representatives{$opt_mode}{$k}`;
+    if (! $?) {
+      $available{$k} = chomp($f);
+    }
+  }
+}
+
+###
+### GetStatus
+###
+
+sub check_mapfile {
+  my $mapf = shift;
+  my $f = `kpsewhich $mapf 2> $nul`;
+  my $ret = $?;
+  if (wantarray) {
+    return (!$ret, $f);
+  } else {
+    return (!$ret);
+  }
+}
+
+sub GetStatus {
+  my $val = `$updmap_real --quiet --showoption ${opt_mode}Embed`;
+  my $STATUS;
+  if ($val =~ m/^${opt_mode}Embed=([^()\s]*)(\s+\()?/) {
+    $STATUS = $1;
+  } else {
+    printf STDERR "Cannot find status of current ${opt_mode}Embed setting via updmap --showoption!\n";
+    exit 1;
+  }
+
+  my $testmap = ($opt_mode eq "ja" ? "ptex-$STATUS.map" : "uptex-${opt_mode}-$STATUS.map");
+  if (check_mapfile($testmap)) {
+    print "CURRENT family for $opt_mode: $STATUS\n";
+  } else {
+    print "WARNING: Currently selected map file for $opt_mode cannot be found: $testmap\n";
+  }
+
+  for my $k (sort keys %{$representatives{$opt_mode}}) {
+    my $MAPFILE = ($opt_mode eq "ja" ? "ptex-$k.map" : "uptex-${opt_mode}-$k.map");
+    next if ($MAPFILE eq $testmap);
+    if (check_mapfile($MAPFILE)) {
+      if ($available{$k}) {
+        print "Standby family : $k\n";
+      }
+    }
+  }
+  return $STATUS;
+}
+
+###
+### Setup Map files
+###
+
+sub SetupMapFile {
+  my $rep = shift;
+  my $MAPFILE = ($opt_mode eq "ja" ? "ptex-$rep.map" : "uptex-${opt_mode}-$rep.map");
+  if (check_mapfile($MAPFILE)) {
+    print "Setting up ... $MAPFILE\n";
+    system("$updmap --quiet --nomkmap --nohash -setoption ${opt_mode}Embed $rep");
+    if ($opt_jis) {
+      system("$updmap --quiet --nomkmap --nohash -setoption jaVariant -04");
+    } else {
+      system("$updmap --quiet --nomkmap --nohash -setoption jaVariant \"\"");
+    }
+    system("$updmap");
+  } else {
+    print "NOT EXIST $MAPFILE\n";
+    exit 1;
+  }
+}
+
+sub SetupReplacement {
+  my $rep = shift;
+  if (defined($representatives{$opt_mode}{$rep})) {
+    if ($available{$rep}) {
+      return SetupMapFile($rep);
+    } else {
+      printf STDERR "$rep not available, falling back to auto!\n";
+      return SetupReplacement("auto");
+    }
+  } else {
+    if ($rep eq "nofont") {
+      return SetupMapFile("noEmbed");
+    } elsif ($rep eq "auto") {
+      my $STATUS = GetStatus();
+      # first check if we have a status set and the font is installed
+      # in this case don't change anything, just make sure
+      if (defined($representatives{$opt_mode}{$STATUS}) && $available{$STATUS}) {
+        return SetupMapFile($STATUS);
+      } else {
+        if (!($STATUS eq "noEmbed" || $STATUS eq "")) {
+          # some unknown setting is set up currently, overwrite, but warn
+          print "Previous setting $STATUS for $opt_mode is unknown, replacing it!\n"
+        }
+        # if we are in the noEmbed or nothing set case, but one
+        # of the supported fonts are present then use them
+        # (originally it said "three fonts hiragino/morisawa/kozuka", but the code below
+        #  was different from this statement; changed to "supported fonts" on 2016/12/08)
+        my @testlist;
+        if ($opt_mode eq 'ja') {
+          @testlist = qw/
+            morisawa-pr6n morisawa
+            hiragino-pron hiragino hiragino-elcapitan-pron hiragino-elcapitan
+            kozuka-pr6n kozuka-pr6 kozuka
+            toppanbunkyu-sierra
+            yu-osx yu-win10 yu-win10 canon
+            ms ms-osx moga-mobo moga-mobo-ex ume
+            ipa ipaex/;
+        } elsif ($opt_mode eq 'tc') {
+          @testlist = qw/dynacomware adobe ms arphic cjkunifonts cjkunifonts-ttf/;
+        } elsif ($opt_mode eq 'sc') {
+          @testlist = qw/fandol adobe ms arphic cjkunifonts cjkunifonts-ttf/;
+        } elsif ($opt_mode eq 'ko') {
+          @testlist = qw/apple adobe ms baekmuk unfonts solaris/;
+        }
+        # else cannot happen unless getopt is broken
+
+        for my $i (@testlist) {
+          if ($available{$i}) {
+            return SetupMapFile($i);
+          }
+        }
+        # still here, no map file found!
+        return SetupMapFile("noEmbed");
+      }
+    } else {
+      # anything else is treated as a map file name
+      return SetupMapFile($rep);
+    }
+  }
+}
+
+###
+### MAIN
+###
+
+sub main {
+  my ($a, $b) = @_;
+
+  CheckInstallFont();
+
+  if (!defined($a) || defined($b)) {
+    Usage();
+    exit 1;
+  }
+
+  if ($a eq "status") {
+    GetStatus();
+    exit 0;
+  }
+
+  return SetupReplacement($a);
+}
+
+#
+#
+# Copyright statements:
+#
+# KOBAYASHI Taizo
+# email to preining at logic.at
+# Message-Id: <20120130.162953.59640143170594580.tkoba at cc.kyushu-u.ac.jp>
+# Message-Id: <20120201.105639.625859878546968959.tkoba at cc.kyushu-u.ac.jp>
+# --------------------------------------------------------
+# copyright statement は簡単に以下で結構です。
+#
+#        Copyright 2004-2006 by KOBAYASHI Taizo
+#
+# では
+#        GPL version 3 or any later version
+#
+# --------------------------------------------------------
+#
+# PREINING Norbert
+# as author and maintainer of the current file
+# Licensed under GPL version 3 or any later version
+#
+### Local Variables:
+### perl-indent-level: 2
+### tab-width: 2
+### indent-tabs-mode: nil
+### End:
+# vim: set tabstop=2 expandtab autoindent:


Property changes on: trunk/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-config-updmap.pl
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-fontmap-creator.pl
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-fontmap-creator.pl	                        (rev 0)
+++ trunk/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-fontmap-creator.pl	2017-03-02 00:00:03 UTC (rev 43377)
@@ -0,0 +1,590 @@
+#!/usr/bin/env perl
+#
+# kanji-fontmap-creator
+# (c) 2012-2014 Norbert Preining
+# Version: 20170114.0
+# Licenced under the GPLv2 or any higher version
+#
+# gui to create map files for updmap(-setup-kanji)
+#
+# ptex/uptex:
+#  2 fonts (rml/gbm)
+#  2 variants
+#  (ev vertical/horizontal)
+#
+# otf/otf-up:
+#  
+#  2 variants
+#  fonts:
+#    gothic: regular, bold, heavy, maru
+#    mincho: regular, bold, light
+#
+# possible improvements:
+# - allow editing current files by reading and interpreting them
+#   needs better structure of the data
+# - specify output directory, automatically write to $TEXMFLOCAL ?
+# - more checks, warnings?
+#
+
+$^W = 1;
+use strict;
+
+use Tk;
+use Tk::NoteBook;
+use Tk::Dialog;
+use Cwd;
+use Getopt::Long qw(:config no_autoabbrev);
+use Pod::Usage;
+
+my $opt_lang = "en";
+my $opt_help = 0;
+my $opt_version = 0;
+
+my $prg = "kanji-fontmap-creator";
+my $version = "20170114.0";
+
+#
+# global vars configuring operation
+my $group_name = "";
+my $do_vertical = 0;
+my $do_iso2004  = 0;
+my $do_otf      = 0;
+my @f_mincho_regular; my @f_gothic_regular;
+my @f_mincho_bold; my @f_gothic_bold;
+my @f_gothic_heavy;
+my @f_gothic_maru;
+my @f_mincho_light;
+my $b_save;
+
+my $iso_i  = 1;
+my $vert_i = 2;
+my $isovert_i = 3;
+my @order;
+
+my $mw;
+
+$order[0] = 'Default';
+$order[$iso_i] = 'ISO2004';
+$order[$vert_i] = 'Vertical';
+$order[$isovert_i] = 'ISO2004/Vertical';
+
+
+GetOptions(
+  "lang=s"   => \$opt_lang,
+  "version"  => \$opt_version,
+  "help|?|h" => \$opt_help) or pod2usage(1);
+
+if (win32()) {
+  pod2usage(-exitstatus => 0,
+            -verbose => 2,
+            -noperldoc => 1,
+            -output  => \*STDOUT) if $opt_help;
+} else {
+  pod2usage(-exitstatus => 0, -verbose => 2, -file => $0) if $opt_help;
+}
+
+if ($opt_version) {
+  print "$prg $version\n";
+  exit 0;
+}
+
+if ($opt_lang ne "en") {
+  print STDERR "$prg: languages other than en currently not implemented.\n";
+}
+
+&main();
+
+sub main {
+  #
+  #
+  $mw = MainWindow->new;
+  $mw->title("Kanji Fontmap Creator");
+  $mw->optionAdd("*Button.Relief", "ridge", 20);
+  my $tf = $mw->Frame;
+  my $nb = $mw->NoteBook;
+  my $bf = $mw->Frame;
+  #
+  # top frame
+  #
+  my $name_label = $tf->Label(-text => "Group name:");
+  my $name_entry = $tf->Entry(-width => 30, -textvariable => \$group_name,
+    -validate => "all", -validatecommand => \&validate_group_name);
+  my $opt_label  = $tf->Label(-text => "Options:");
+  my $opt_vert   = $tf->Checkbutton(-text => "separate vertical fonts",
+    -variable => \$do_vertical);
+  my $opt_iso    = $tf->Checkbutton(-text => "separate ISO 2004 support",
+    -variable => \$do_iso2004 );
+  my $opt_otf    = $tf->Checkbutton(-text => "OTF support",
+    -variable => \$do_otf);
+  #
+  # pack the stuff
+  $name_label->grid(-row => 0, -column => 0, -sticky => "e");
+  $name_entry->grid(-row => 0, -column => 1, -sticky => "w");
+  $opt_label->grid(-row => 1, -column => 0, -sticky => "e");
+  $opt_otf->grid(-row => 1, -column => 1, -sticky => "w");
+  $opt_iso->grid(-column => 1, -sticky => "w");
+  $opt_vert->grid(-column => 1, -sticky => "w");
+  #
+  # notebook part
+  my @p;
+  for my $i (0..$#order) {
+    $p[$i] = $nb->add($order[$i], -label => $order[$i],
+      -state => ($i > 0 ? "disabled" : "normal"));
+  }
+  #
+  # pack outer window
+  $tf->pack(-expand => 1, -fill => 'x', -padx => '4m', -pady => '4m');
+  $nb->pack(-expand => 1, -fill => 'both', -padx => '4m');
+  $bf->pack(-expand => 1, -fill => 'x', -padx => '4m', -pady => '4m');
+  #
+  # 
+  my @l_mincho; my @l_gothic;
+  my @l_regular;
+  my @l_bold;
+  my @l_heavy;
+  my @l_light;
+  my @l_maru;
+  my @e_mincho_regular; my @e_gothic_regular;
+  my @e_mincho_bold; my @e_gothic_bold;
+  my @e_gothic_heavy;
+  my @e_gothic_maru;
+  my @e_mincho_light;
+  my $ew = 20;
+  for my $i (0..$#order) {
+    $l_mincho[$i] = $p[$i]->Label(-text => "Mincho");
+    $l_gothic[$i] = $p[$i]->Label(-text => "Gothic");
+    #
+    $l_regular[$i] = $p[$i]->Label(-text => "Regular");
+    $e_mincho_regular[$i] = $p[$i]->Entry(-width => $ew,
+      -textvariable => \$f_mincho_regular[$i]);
+    $e_gothic_regular[$i] = $p[$i]->Entry(-width => $ew,
+      -textvariable => \$f_gothic_regular[$i]);
+    #
+    $l_bold[$i] = $p[$i]->Label(-text => "Bold", -state => "disabled");
+    $e_mincho_bold[$i] = $p[$i]->Entry(-width => $ew,
+      -textvariable => \$f_mincho_bold[$i],
+      -state => "disabled", -relief => "flat");
+    $e_gothic_bold[$i] = $p[$i]->Entry(-width => $ew,
+      -textvariable => \$f_gothic_bold[$i],
+      -state => "disabled", -relief => "flat");
+    #
+    $l_heavy[$i] = $p[$i]->Label(-text => "Heavy", -state => "disabled");
+    $l_light[$i] = $p[$i]->Label(-text => "Light", -state => "disabled");
+    $l_maru[$i] =  $p[$i]->Label(-text => "Maru",  -state => "disabled");
+    $e_gothic_heavy[$i] = $p[$i]->Entry(-width => $ew,
+      -textvariable => \$f_gothic_heavy[$i],
+      -state => "disabled", -relief => "flat");
+    $e_gothic_maru[$i] = $p[$i]->Entry(-width => $ew,
+      -textvariable => \$f_gothic_maru[$i],
+      -state => "disabled", -relief => "flat");
+    $e_mincho_light[$i] = $p[$i]->Entry(-width => $ew,
+      -textvariable => \$f_mincho_light[$i],
+      -state => "disabled", -relief => "flat");
+    #
+    # grid the whole stuff
+    $l_mincho[$i]->grid(-row => 0, -column => 1);
+    $l_gothic[$i]->grid(-row => 0, -column => 2);
+    #
+    $l_regular[$i]->grid(-row => 1, -column => 0,  -sticky => "e");
+    $e_mincho_regular[$i]->grid(-row => 1, -column => 1);
+    $e_gothic_regular[$i]->grid(-row => 1, -column => 2);
+    #
+    $l_bold[$i]->grid(-row => 3, -column => 0,  -sticky => "e");
+    $e_mincho_bold[$i]->grid(-row => 3, -column => 1);
+    $e_gothic_bold[$i]->grid(-row => 3, -column => 2);
+    #
+    $l_heavy[$i]->grid(-row => 4, -column => 0,  -sticky => "e");
+    $e_gothic_heavy[$i]->grid(-row => 4, -column => 1);
+    $l_maru[$i]->grid(-row => 5, -column => 0,  -sticky => "e");
+    $e_gothic_maru[$i]->grid(-row => 5, -column => 2);
+    $l_light[$i]->grid(-row => 6, -column => 0,  -sticky => "e");
+    $e_mincho_light[$i]->grid(-row => 6, -column => 2);
+  }
+  #
+  # Button frame
+  $b_save = $bf->Button(-text => "Save");
+
+  #
+  # Actions:
+  #
+  # activate tabs when options are selected
+  $opt_vert->configure(-command => sub { 
+      if (!$do_vertical && ($nb->raised() =~ m/Vertical/)) {
+        $nb->raise("Default");
+      }
+      $nb->pageconfigure("Vertical", 
+        -state => ($do_vertical ? "normal" : "disabled"));
+      $nb->pageconfigure("ISO2004/Vertical",
+        -state => (($do_vertical & $do_iso2004) ? "normal" : "disabled"))
+    });
+  $opt_iso->configure(-command => sub { 
+      if (!$do_iso2004 && ($nb->raised() =~ m/ISO2004/)) {
+        $nb->raise("Default");
+      }
+      $nb->pageconfigure("ISO2004",
+        -state => ($do_iso2004 ? "normal" : "disabled"));
+      $nb->pageconfigure("ISO2004/Vertical",
+        -state => (($do_vertical & $do_iso2004) ? "normal" : "disabled")) 
+    });
+
+  # activate lower part for when otf is selected
+  $opt_otf->configure(-command => sub {
+    for my $i (0..$#order) {
+      $l_light[$i]->configure(
+        -state => ($do_otf ? "normal" : "disabled"));
+      $e_mincho_light[$i]->configure(
+        -state => ($do_otf ? "normal" : "disabled"),
+        -relief => ($do_otf ? "sunken" : "flat"));
+      #
+      $l_bold[$i]->configure(
+        -state => ($do_otf ? "normal" : "disabled"));
+      $e_mincho_bold[$i]->configure(
+        -state => ($do_otf ? "normal" : "disabled"),
+        -relief => ($do_otf ? "sunken" : "flat"));
+      $e_gothic_bold[$i]->configure(
+        -state => ($do_otf ? "normal" : "disabled"),
+        -relief => ($do_otf ? "sunken" : "flat"));
+      #
+      $l_heavy[$i]->configure(
+        -state => ($do_otf ? "normal" : "disabled"));
+      $l_maru[$i]->configure(
+        -state => ($do_otf ? "normal" : "disabled"));
+      $e_gothic_maru[$i]->configure(
+        -state => ($do_otf ? "normal" : "disabled"),
+        -relief => ($do_otf ? "sunken" : "flat"));
+      $e_gothic_heavy[$i]->configure(
+        -state => ($do_otf ? "normal" : "disabled"),
+        -relief => ($do_otf ? "sunken" : "flat"));
+    }
+  });
+  #
+  #
+  $b_save->configure(-command => \&export_font_maps, -state => "disabled");
+  $b_save->pack;
+
+  Tk::MainLoop();
+}
+
+sub validate_group_name {
+  my ($new_val, undef, $old_val) = @_;
+  $b_save->configure(-state => ($new_val eq "" ? "disabled" : "normal"));
+  return 1;
+}
+
+sub addgroup {
+  my ($str, $fref, $i_a, $i_b, @entries) = @_;
+  my $do = 1;
+  while (@entries) {
+    my $tfm = shift @entries;
+    my $enc = shift @entries;
+    addlines($str, $tfm, $enc, ($do ? $fref->[$i_a] : $fref->[$i_b]));
+    $do = !$do;
+  } 
+}
+
+sub addlines {
+  my ($strref, @entries) = @_;
+  while (@entries) {
+    my $tfm = shift @entries;
+    my $enc = shift @entries;
+    my $fn  = shift @entries;
+    if (defined($fn)) {
+      $$strref .= "$tfm $enc $fn\n";
+    } else {
+      print STDERR "target file for $tfm $enc not defined!\n";
+    }
+  }
+}
+
+sub export_font_maps {
+  if ($group_name eq "") {
+    print STDERR "That should not happen!\n";
+    exit 1;
+  }
+
+  # indirections
+  my $ii = ($do_iso2004  ?  $iso_i  : 0);
+  my $vi = ($do_vertical ?  $vert_i : 0);
+  my $ivi = (($do_vertical && $do_vertical) ?  $isovert_i : 0);
+  #
+  
+  my ($ptexlines, $ptex04lines, $uptexlines, $uptex04lines);
+  my ($otflines, $otfuplines);
+  addlines(\$ptexlines, 
+    'rml', 'H', $f_mincho_regular[0],
+    'rmlv','V', $f_mincho_regular[$vi],
+    'gbm', 'H', $f_gothic_regular[0],
+    'gbmv','V', $f_gothic_regular[$vi]);
+  addlines(\$ptex04lines, 
+    'rml', 'H', $f_mincho_regular[$ii],
+    'rmlv','V', $f_mincho_regular[$ivi],
+    'gbm', 'H', $f_gothic_regular[$ii],
+    'gbmv','V', $f_gothic_regular[$ivi]);
+  addlines(\$uptexlines,
+    'urml',     'UniJIS-UTF16-H', $f_mincho_regular[0],
+    'urmlv',    'UniJIS-UTF16-V', $f_mincho_regular[$vi],
+    'ugbm',     'UniJIS-UTF16-H', $f_gothic_regular[0],
+    'ugbmv',    'UniJIS-UTF16-V', $f_gothic_regular[$vi],
+    'uprml-h',  'UniJIS-UTF16-H', $f_mincho_regular[0],
+    'uprml-v',  'UniJIS-UTF16-V', $f_mincho_regular[$vi],
+    'upgbm-h',  'UniJIS-UTF16-H', $f_gothic_regular[0],
+    'upgbm-v',  'UniJIS-UTF16-V', $f_gothic_regular[$vi],
+    'uprml-hq', 'UniJIS-UCS2-H',  $f_mincho_regular[0],
+    'upgbm-hq', 'UniJIS-UCS2-H',  $f_gothic_regular[0]);
+  addlines(\$uptex04lines,
+    'urml',     'UniJIS-UTF16-H', $f_mincho_regular[$ii],
+    'urmlv',    'UniJIS-UTF16-V', $f_mincho_regular[$ivi],
+    'ugbm',     'UniJIS-UTF16-H', $f_gothic_regular[$ii],
+    'ugbmv',    'UniJIS-UTF16-V', $f_gothic_regular[$ivi],
+    'uprml-h',  'UniJIS-UTF16-H', $f_mincho_regular[$ii],
+    'uprml-v',  'UniJIS-UTF16-V', $f_mincho_regular[$ivi],
+    'upgbm-h',  'UniJIS-UTF16-H', $f_gothic_regular[$ii],
+    'upgbm-v',  'UniJIS-UTF16-V', $f_gothic_regular[$ivi],
+    'uprml-hq', 'UniJIS-UCS2-H',  $f_mincho_regular[$ii],
+    'upgbm-hq', 'UniJIS-UCS2-H',  $f_gothic_regular[$ii]);
+ 
+  
+  addlines(\$otflines,
+    '%', 'mincho regular', '',
+    'otf-ujmr-h', 'UniJIS-UTF16-H', $f_mincho_regular[0],
+    'otf-ujmr-v', 'UniJIS-UTF16-V', $f_mincho_regular[$vi],
+    'otf-cjmr-h', 'Identity-H',     $f_mincho_regular[0],
+    'otf-cjmr-v', 'Identity-V',     $f_mincho_regular[$vi],
+    'hminr-h',    'H',              $f_mincho_regular[0],
+    'hminr-v',    'V',              $f_mincho_regular[$vi],
+    '%', 'gothic regular', '',
+    'otf-ujgr-h', 'UniJIS-UTF16-H', $f_gothic_regular[0],
+    'otf-ujgr-v', 'UniJIS-UTF16-V', $f_gothic_regular[$vi],
+    'otf-cjgr-h', 'Identity-H',     $f_gothic_regular[0],
+    'otf-cjgr-v', 'Identity-V',     $f_gothic_regular[$vi],
+    'hgothr-h',   'H',              $f_gothic_regular[0],
+    'hgothr-v',   'V',              $f_gothic_regular[$vi],
+    '%', 'mincho bold', '');
+  addgroup(\$otflines, ($do_otf ? \@f_mincho_bold : \@f_mincho_regular),
+    0, $vi,
+    'otf-ujmb-h', 'UniJIS-UTF16-H',
+    'otf-ujmb-v', 'UniJIS-UTF16-V',
+    'otf-cjmb-h', 'Identity-H',
+    'otf-cjmb-v', 'Identity-V',
+    'hminb-h',    'H',
+    'hminb-v',    'V');
+  addlines(\$otflines, '%', 'gothic bold', '');
+  addgroup(\$otflines, ($do_otf ? \@f_gothic_bold : \@f_gothic_regular),
+    0, $vi,
+    'otf-ujgb-h', 'UniJIS-UTF16-H',
+    'otf-ujgb-v', 'UniJIS-UTF16-V',
+    'otf-cjgb-h', 'Identity-H',
+    'otf-cjgb-v', 'Identity-V',
+    'hgothb-h',   'H',
+    'hgothb-v',   'V');
+  addlines(\$otflines, '%', 'gothic heavy', '');
+  addgroup(\$otflines, ($do_otf ? \@f_gothic_heavy : \@f_gothic_regular),
+    0, $vi,
+    'hgotheb-h', 'H',
+    'hgotheb-v', 'V');
+  addlines(\$otflines, '%', 'gothic maru', '');
+  addgroup(\$otflines, ($do_otf ? \@f_gothic_maru : \@f_gothic_regular),
+    0, $vi,
+    'otf-ujmgr-h', 'UniJIS-UTF16-H',
+    'otf-ujmgr-v', 'UniJIS-UTF16-V',
+    'otf-cjmgr-h', 'Identity-H',
+    'otf-cjmgr-v', 'Identity-V',
+    'hmgothr-h',   'H',
+    'hmgothr-v',   'V');
+  addlines(\$otflines, '%', 'mincho light', '');
+  addgroup(\$otflines, ($do_otf ? \@f_mincho_light : \@f_mincho_regular),
+    0, $vi,
+    'otf-ujml-h', 'UniJIS-UTF16-H',
+    'otf-ujml-v', 'UniJIS-UTF16-V',
+    'otf-cjml-h', 'Identity-H',
+    'otf-cjml-v', 'Identity-V',
+    'hminl-h',    'H',
+    'hminl-v',    'V');
+  addlines(\$otflines, '%', 'JIS 2004', '',
+    'otf-ujmrn-h', 'UniJIS2004-UTF16-H', $f_mincho_regular[$ii],
+    'otf-ujmrn-v', 'UniJIS2004-UTF16-V', $f_mincho_regular[$ivi],
+    'hminrn-h',    'H',                  $f_mincho_regular[$ii],
+    'hminrn-v',    'V',                  $f_mincho_regular[$ivi],
+    '%', '', '',
+    'otf-ujgrn-h', 'UniJIS2004-UTF16-H', $f_gothic_regular[$ii],
+    'otf-ujgrn-v', 'UniJIS2004-UTF16-V', $f_gothic_regular[$ivi],
+    'hgothrn-h',   'H'                 , $f_gothic_regular[$ii],
+    'hgothrn-v',   'V'                 , $f_gothic_regular[$ivi],
+    '%', '', '');
+  addgroup(\$otflines, ($do_otf ? \@f_mincho_bold : \@f_mincho_regular),
+    $ii, $ivi,
+    'otf-ujmbn-h', 'UniJIS2004-UTF16-H',
+    'otf-ujmbn-v', 'UniJIS2004-UTF16-V',
+    'hminbn-h',    'H',
+    'hminbn-v',    'V');
+  addlines(\$otflines, '%', '', '');
+  addgroup(\$otflines, ($do_otf ? \@f_gothic_bold : \@f_gothic_regular),
+    $ii, $ivi,
+    'otf-ujgbn-h', 'UniJIS2004-UTF16-H',
+    'otf-ujgbn-v', 'UniJIS2004-UTF16-V',
+    'hgothbn-h',   'H',
+    'hgothbn-v',   'V');
+  addlines(\$otflines, '%', '', '');
+  addgroup(\$otflines, ($do_otf ? \@f_gothic_heavy : \@f_gothic_regular),
+    $ii, $ivi,
+    'otf-ujmgrn-h', 'UniJIS2004-UTF16-H',
+    'otf-ujmgrn-v', 'UniJIS2004-UTF16-V',
+    'hmgothrn-h', 'H',
+    'hmgothrn-v', 'V');
+  addlines(\$otflines, '%', '', '');
+  addgroup(\$otflines, ($do_otf ? \@f_mincho_light : \@f_mincho_regular),
+    $ii, $ivi,
+    'otf-ujmln-h', 'UniJIS2004-UTF16-H',
+    'otf-ujmln-v', 'UniJIS2004-UTF16-V',
+    'hminln-h',    'H',
+    'hminln-v',    'V');
+
+  addlines(\$otfuplines,
+    'uphminr-h',   'UniJIS-UTF16-H', $f_mincho_regular[0],
+    'uphminr-v',   'UniJIS-UTF16-V', $f_mincho_regular[$vi],
+    'uphgothr-h',  'UniJIS-UTF16-H', $f_gothic_regular[0],
+    'uphgothr-v',  'UniJIS-UTF16-V', $f_gothic_regular[$vi]);
+  addgroup(\$otfuplines, ($do_otf ? \@f_mincho_bold : \@f_mincho_regular),
+    0, $vi,
+    'uphminb-h',   'UniJIS-UTF16-H',
+    'uphminb-v',   'UniJIS-UTF16-V');
+  addgroup(\$otfuplines, ($do_otf ? \@f_gothic_bold : \@f_gothic_regular),
+    0, $vi,
+    'uphgothb-h',  'UniJIS-UTF16-H',
+    'uphgothb-v',  'UniJIS-UTF16-V');
+  addgroup(\$otfuplines, ($do_otf ? \@f_gothic_heavy : \@f_gothic_regular),
+    0, $vi,
+    'uphgotheb-h', 'UniJIS-UTF16-H',
+    'uphgotheb-v', 'UniJIS-UTF16-V');
+  addgroup(\$otfuplines, ($do_otf ? \@f_gothic_maru : \@f_gothic_regular),
+    0, $vi,
+    'uphmgothr-h', 'UniJIS-UTF16-H',
+    'uphmgothr-v', 'UniJIS-UTF16-V');
+  addgroup(\$otfuplines, ($do_otf ? \@f_mincho_light : \@f_mincho_regular),
+    0, $vi,
+    'uphminl-h',   'UniJIS-UTF16-H',
+    'uphminl-v',   'UniJIS-UTF16-V');
+
+  # check that none of the output files are already existing:
+  if (-r "ptex-$group_name.map" ||
+      -r "ptex-${group_name}-04.map" ||
+      -r "uptex-$group_name.map" ||
+      -r "uptex-${group_name}-04.map" ||
+      -r "otf-$group_name.map" ||
+      -r "otf-up-$group_name.map" ||
+      -r "$group_name.map" ||
+      -r "${group_name}-04.map") {
+    print STDERR "Some of the output files already exist in the cwd, aborting!\n";
+    exit 1;
+  }
+
+  # generate the output files
+  open (OUT, ">ptex-$group_name.map") 
+    or die("Cannot open ptex-$group_name.map for writing: $!");
+  print OUT "% generated by $prg\n$ptexlines\n";
+  close(OUT);
+
+  open (OUT, ">ptex-${group_name}-04.map")
+    or die("Cannot open ptex-${group_name}-04.map for writing: $!");
+  print OUT "% generated by $prg\n$ptex04lines\n";
+  close(OUT);
+
+  open (OUT, ">uptex-$group_name.map") 
+    or die("Cannot open uptex-$group_name.map for writing: $!");
+  print OUT "% generated by $prg\n$uptexlines\n";
+  close(OUT);
+
+  open (OUT, ">uptex-${group_name}-04.map")
+    or die("Cannot open uptex-${group_name}-04.map for writing: $!");
+  print OUT "% generated by $prg\n$uptex04lines\n";
+  close(OUT);
+
+  open (OUT, ">otf-$group_name.map") 
+    or die("Cannot open otf-$group_name.map for writing: $!");
+  print OUT "% generated by $prg\n$otflines\n";
+  close(OUT);
+
+  open (OUT, ">otf-up-$group_name.map") 
+    or die("Cannot open otf-up-$group_name.map for writing: $!");
+  print OUT "% generated by $prg\n$otfuplines\n";
+  close(OUT);
+ 
+  open (OUT, ">$group_name.map")
+    or die("Cannot open $group_name.map for writing: $!");
+  print OUT "% generated by $prg\n%\n% maps for family $group_name\n\n";
+  print OUT "% ptex\n$ptexlines\n";
+  print OUT "% uptex\n$uptexlines\n";
+  print OUT "% otf\n$otflines\n";
+  print OUT "% otf-uptex\n$otfuplines\n";
+  close(OUT);
+ 
+  open (OUT, ">${group_name}-04.map")
+    or die("Cannot open ${group_name}-04.map for writing: $!");
+  print OUT "% generated by $prg\n%\n% maps for family $group_name ISO2004\n\n";
+  print OUT "% ptex\n$ptex04lines\n";
+  print OUT "% uptex\n$uptex04lines\n";
+  print OUT "% otf\n$otflines\n";
+  print OUT "% otf-uptex\n$otfuplines\n";
+  close(OUT);
+
+  my $cwd = cwd();
+  
+  $mw->Dialog(-title => "Finished",
+    -text => "Fontmaps have been created in the $cwd.\nPlease move them to a place where dvipdfmx can find them.",
+    -buttons => [ "Finish" ])->Show();
+ 
+  $mw->destroy;
+  exit 0;
+}
+
+
+sub win32 { return ($^O =~ /^MSWin/i ? 1 : 0); }
+
+__END__
+
+=head1 NAME
+
+kanji-fontmap-creator - GUI to create map file collections for Kanji fonts
+
+=head1 SYNOPSIS
+
+kanji-fontmap-creator [I<option>]
+
+=head1 DESCRIPTION
+
+Create fontmap families for updmap's C<kanjiEmbed> setting. For details
+see the man page of B<updmap>(1) and the web page
+L<http://tug.org/texlive/updmap-kanji.html>
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-version>
+
+Output version information and exit.
+
+=item B<-help>, B<-?>, B<-h>
+
+Display this help and exit.
+
+=item B<-lang> I<llcode>
+
+By default, the GUI tries to deduce your language from the environment
+(on Windows via the registry, on Unix via C<LC_MESSAGES>). If that fails
+you can select a different language by giving this option with a
+language code (based on ISO 639-1).  Currently supported is only
+English.
+
+=back
+
+=head1 AUTHORS AND COPYRIGHT
+
+This script and documentation was written by Norbert Preining
+and both are licensed under the GNU General Public License Version 2 
+or later.
+
+=cut
+
+
+# vim:set tabstop=2 expandtab: #


Property changes on: trunk/Build/source/texk/texlive/linked_scripts/ptex-fontmaps/kanji-fontmap-creator.pl
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Modified: trunk/Build/source/texk/texlive/linked_scripts/scripts.lst
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/scripts.lst	2017-03-01 23:33:53 UTC (rev 43376)
+++ trunk/Build/source/texk/texlive/linked_scripts/scripts.lst	2017-03-02 00:00:03 UTC (rev 43377)
@@ -108,6 +108,9 @@
 pmx/pmx2pdf.lua
 pmxchords/pmxchords.lua
 pst2pdf/pst2pdf.pl
+ptex-fontmaps/kanji-config-updmap-sys.sh
+ptex-fontmaps/kanji-config-updmap.pl
+ptex-fontmaps/kanji-fontmap-creator.pl
 ptex2pdf/ptex2pdf.lua
 purifyeps/purifyeps
 pygmentex/pygmentex.py

Modified: trunk/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl	2017-03-01 23:33:53 UTC (rev 43376)
+++ trunk/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl	2017-03-02 00:00:03 UTC (rev 43377)
@@ -6535,10 +6535,14 @@
 
 =over 4
 
+=item C<tlmgr option repository ctan>
+
 =item C<tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet>
 
 Tell C<tlmgr> to use a nearby CTAN mirror for future updates; useful if
-you installed TeX Live from the DVD image and want continuing updates.
+you installed TeX Live from the DVD image and want continuing
+updates.  The two commands are equivalent, C<ctan> is just an alias for
+the given url.
 
 =item C<tlmgr update --list>
 



More information about the tex-live-commits mailing list