summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf-uptex/00otf-uptex.txt94
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf-uptex/COPYRIGHT26
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf-uptex/README27
-rw-r--r--Master/texmf-dist/fonts/map/dvipdfmx/japanese-otf-uptex/otf-up-noEmbed.map17
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/hmgothr-h.tfmbin0 -> 108 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/hmgothr-v.tfmbin0 -> 108 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpgothb-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpgothb-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpgothr-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpgothr-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpmgothr-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpmgothr-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminb-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminb-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminl-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminl-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminr-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminr-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgothb-h.tfmbin0 -> 108 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgothb-v.tfmbin0 -> 108 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgotheb-h.tfmbin0 -> 108 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgotheb-v.tfmbin0 -> 108 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgothr-h.tfmbin0 -> 108 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgothr-v.tfmbin0 -> 108 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphmgothr-h.tfmbin0 -> 108 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphmgothr-v.tfmbin0 -> 108 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminb-h.tfmbin0 -> 108 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminb-v.tfmbin0 -> 108 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminl-h.tfmbin0 -> 108 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminl-v.tfmbin0 -> 108 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminr-h.tfmbin0 -> 108 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminr-v.tfmbin0 -> 108 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgothb-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgothb-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgotheb-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgotheb-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgothr-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgothr-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlmgothr-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlmgothr-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminb-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminb-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminl-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminl-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminr-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminr-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubygothb-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubygothb-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubygothr-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubygothr-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubymgothr-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubymgothr-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminb-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminb-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminl-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminl-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminr-h.tfmbin0 -> 816 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminr-v.tfmbin0 -> 536 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpgothb-h.vfbin0 -> 642392 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpgothb-v.vfbin0 -> 642328 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpgothr-h.vfbin0 -> 642392 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpgothr-v.vfbin0 -> 642328 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpmgothr-h.vfbin0 -> 642396 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpmgothr-v.vfbin0 -> 642332 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminb-h.vfbin0 -> 642392 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminb-v.vfbin0 -> 642328 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminl-h.vfbin0 -> 642392 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminl-v.vfbin0 -> 642328 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminr-h.vfbin0 -> 642392 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminr-v.vfbin0 -> 642328 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgothb-h.vfbin0 -> 642148 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgothb-v.vfbin0 -> 642084 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgotheb-h.vfbin0 -> 642136 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgotheb-v.vfbin0 -> 642032 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgothr-h.vfbin0 -> 642148 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgothr-v.vfbin0 -> 642084 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlmgothr-h.vfbin0 -> 642152 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlmgothr-v.vfbin0 -> 642088 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminb-h.vfbin0 -> 642148 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminb-v.vfbin0 -> 642084 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminl-h.vfbin0 -> 642148 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminl-v.vfbin0 -> 642084 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminr-h.vfbin0 -> 642148 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminr-v.vfbin0 -> 642084 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubygothb-h.vfbin0 -> 642392 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubygothb-v.vfbin0 -> 642328 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubygothr-h.vfbin0 -> 642392 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubygothr-v.vfbin0 -> 642328 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubymgothr-h.vfbin0 -> 642396 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubymgothr-v.vfbin0 -> 642332 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminb-h.vfbin0 -> 642392 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminb-v.vfbin0 -> 642328 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminl-h.vfbin0 -> 642392 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminl-v.vfbin0 -> 642328 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminr-h.vfbin0 -> 642392 bytes
-rw-r--r--Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminr-v.vfbin0 -> 642328 bytes
-rw-r--r--Master/texmf-dist/source/fonts/japanese-otf-uptex/basepl/ubase-h.pl188
-rw-r--r--Master/texmf-dist/source/fonts/japanese-otf-uptex/basepl/ubase-v.pl152
-rw-r--r--Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/ckt.map(for udvips)26
-rw-r--r--Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/cktx.map(for dvipdfmx)30
-rw-r--r--Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/hiragino.map(for udvips)100
-rw-r--r--Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/hiraginox.map(for dvipdfmx)100
-rw-r--r--Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/kozuka.map61
-rw-r--r--Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/kozukax.map62
-rw-r--r--Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/morisawa.map(for udvips)44
-rw-r--r--Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/morisawax.map(for dvipdfmx)44
-rw-r--r--Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/vfontmap.txt67
-rw-r--r--Master/texmf-dist/source/fonts/japanese-otf-uptex/patch/otfbeta_uptex-0.07.patch358
-rw-r--r--Master/texmf-dist/source/fonts/japanese-otf-uptex/test/uplatex/Makefile32
-rw-r--r--Master/texmf-dist/source/fonts/japanese-otf-uptex/test/uplatex/uotftest-utf8.tex258
-rw-r--r--Master/texmf-dist/source/fonts/japanese-otf-uptex/test/uplatex/uotftest.tex191
-rwxr-xr-xMaster/texmf-dist/source/fonts/japanese-otf-uptex/umakeotf91
-rwxr-xr-xMaster/texmf-dist/source/fonts/japanese-otf-uptex/umkjvf1125
-rw-r--r--Master/tlpkg/tlpsrc/collection-langcjk.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/japanese-otf-uptex.tlpsrc3
115 files changed, 3097 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf-uptex/00otf-uptex.txt b/Master/texmf-dist/doc/fonts/japanese-otf-uptex/00otf-uptex.txt
new file mode 100644
index 00000000000..60e336b94db
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf-uptex/00otf-uptex.txt
@@ -0,0 +1,94 @@
+[ abstract ]
+
+This is a package for upLaTeX support of
+japanese-otf package "otfbeta (v1.7b3 2011/10/28)" by psitau-san
+( http://psitau.kitunebi.com/otf.html )
+It requires upTeX-0.20 or later.
+
+
+[ contents ]
+
+00otf-uptex.txt : this file
+umakeotf : script to make vf, tfm
+umkjvf : mkjvf with unicode support
+
+basepl/ubase-h.pl : unicode version of base-h.pl
+basepl/ubase-v.pl : unicode version of base-v.pl
+
+test/uplatex : test samples.
+
+patch/*.patch : patch for original style files sty/*.sty in otfbeta.zip
+
+COPYRIGHT : copyright notice of this package.
+
+### class files and style files in otfbeta.zip are avairable without patch.
+
+
+[ status ]
+Beta version.
+Proportional kana is not supported yet.
+Combination of jis2004 and ucs option is not supported yet
+ because Adobe standard CMap "UniJIS2004-UTF16-H", etc. will be effective.
+Combination of burasage and ucs option is not tested yet, and vf is not generated.
+
+
+[ history ]
+2007.12.09 Ver0.00
+ Initial version.
+ for "otfstable (v1.2.9 2007/3/19)"
+2008.01.12 Ver0.01
+ umakeotf
+ Revised: for upTeX-0.20
+ umkjvf::
+ Bug fix: Ruby glyphs, horizontally- and vertically optimized kana glyphs.
+ Revised: for upTeX-0.20
+ ubase-h.pl::
+ Insert glue between halfwidth kana and others at horizontal writing.
+ test/uplatex::
+ Revised.
+2008.10.01 Ver0.02
+ re-packaged for upTeX-0.24
+ tfm/*.tfm, vf/*.vf::
+ Deleted
+ patch/*.patch::
+ Included
+2008.11.08 Ver0.03
+ Revised: for upTeX-0.25
+ umkjvf::
+ Add: Ruby glyphs, horizontally- and vertically optimized kana glyphs
+ in JIS X 0213 (ainu kana, etc.)
+ fontmap/*::
+ Revised.
+ test/uplatex/*::
+ Revised.
+ patch/*.patch::
+ Revised.
+2009.08.01 Ver0.04
+ Revised: for upTeX-0.28
+ umkjvf::
+ Bug fix: SIP option did not work
+ Revised: help message
+2010.03.28 Ver0.05
+ Revised: for "otfstable (v1.2.9.2 2010/3/26)", upTeX-0.30
+ umkjvf::
+ Revised: It may work with C-version ovp2ovf, opl2ofm
+ patch/*.patch::
+ Revised.
+ sty/*::
+ Removed.
+2010.05.xx Ver0.06
+ Test only. Not released.
+2012.01.02 Ver0.07
+ Revised: for "otfbeta (v1.7b3 2011/10/28)", upTeX in TeXLive svn r24922
+ umkjvf::
+ Revised: Based on "mkjvf version 1.0b21 (2010/3/25)"
+ Revised: use ovp2ovf (WEB version) in TeXLive svn r24922 for SIP
+ Bug fix: pTeX mode was not compatible with mkjvf for ruby.
+ umakeotf
+ Revised: Minor update about "mkdir tfm"
+ fontmap/*::
+ Revised.
+ patch/*.patch::
+ Revised.
+ COPYRIGHT::
+ Added.
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf-uptex/COPYRIGHT b/Master/texmf-dist/doc/fonts/japanese-otf-uptex/COPYRIGHT
new file mode 100644
index 00000000000..2e0ad994277
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf-uptex/COPYRIGHT
@@ -0,0 +1,26 @@
+Copyright (C) 2003--2010 SAITO Shuzaburo and INOUE Koichi
+Copyright (C) 2007--2012 TANAKA Takuji
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. Neither the name of the author may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf-uptex/README b/Master/texmf-dist/doc/fonts/japanese-otf-uptex/README
new file mode 100644
index 00000000000..480fcac285f
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf-uptex/README
@@ -0,0 +1,27 @@
+README
+======
+
+From 00otf-uptex.txt:
+This is a package for upLaTeX support of
+japanese-otf package "otfbeta (v1.7b3 2011/10/28)" by psitau-san
+( http://psitau.kitunebi.com/otf.html )
+It requires upTeX-0.20 or later.
+
+--------------------
+
+For copyright and licensing, please see COPYRIGHT
+
+--------------------
+
+The original source has been downloaded from
+ http://homepage3.nifty.com/ttk/comp/tex/uptex.html
+as
+ http://homepage3.nifty.com/ttk/comp/tex/otfbeta-uptex-0.08.tar.xz
+
+After that the scripts run and the generated tfm and vf files included.
+
+Furthermore, the map file as used in TeX Live was added in the directory
+TeXLive-maps.
+
+Norbert Preining <preining@logic.at>
+2012-02-01
diff --git a/Master/texmf-dist/fonts/map/dvipdfmx/japanese-otf-uptex/otf-up-noEmbed.map b/Master/texmf-dist/fonts/map/dvipdfmx/japanese-otf-uptex/otf-up-noEmbed.map
new file mode 100644
index 00000000000..f7daf97cb8f
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvipdfmx/japanese-otf-uptex/otf-up-noEmbed.map
@@ -0,0 +1,17 @@
+%
+% otf-up-noEmbed.map
+uphminr-h UniJIS-UTF16-H !Ryumin-Light
+uphminr-v UniJIS-UTF16-V !Ryumin-Light
+uphgothr-h UniJIS-UTF16-H !GothicBBB-Medium
+uphgothr-v UniJIS-UTF16-V !GothicBBB-Medium
+uphminb-h UniJIS-UTF16-H !Ryumin-Light,Bold
+uphminb-v UniJIS-UTF16-V !Ryumin-Light,Bold
+uphgothb-h UniJIS-UTF16-H !GothicBBB-Medium,Bold
+uphgothb-v UniJIS-UTF16-V !GothicBBB-Medium,Bold
+uphgotheb-h UniJIS-UTF16-H !GothicBBB-Medium,Bold
+uphgotheb-v UniJIS-UTF16-V !GothicBBB-Medium,Bold
+uphmgothr-h UniJIS-UTF16-H !GothicBBB-Medium
+uphmgothr-v UniJIS-UTF16-V !GothicBBB-Medium
+uphminl-h UniJIS-UTF16-H !Ryumin-Light
+uphminl-v UniJIS-UTF16-V !Ryumin-Light
+
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/hmgothr-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/hmgothr-h.tfm
new file mode 100644
index 00000000000..1db09ae81cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/hmgothr-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/hmgothr-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/hmgothr-v.tfm
new file mode 100644
index 00000000000..dddd9776408
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/hmgothr-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpgothb-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpgothb-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpgothb-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpgothb-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpgothb-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpgothb-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpgothr-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpgothr-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpgothr-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpgothr-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpgothr-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpgothr-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpmgothr-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpmgothr-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpmgothr-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpmgothr-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpmgothr-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpmgothr-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminb-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminb-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminb-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminb-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminb-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminb-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminl-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminl-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminl-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminl-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminl-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminl-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminr-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminr-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminr-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminr-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminr-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upexpminr-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgothb-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgothb-h.tfm
new file mode 100644
index 00000000000..1db09ae81cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgothb-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgothb-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgothb-v.tfm
new file mode 100644
index 00000000000..dddd9776408
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgothb-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgotheb-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgotheb-h.tfm
new file mode 100644
index 00000000000..1db09ae81cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgotheb-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgotheb-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgotheb-v.tfm
new file mode 100644
index 00000000000..dddd9776408
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgotheb-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgothr-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgothr-h.tfm
new file mode 100644
index 00000000000..1db09ae81cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgothr-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgothr-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgothr-v.tfm
new file mode 100644
index 00000000000..dddd9776408
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphgothr-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphmgothr-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphmgothr-h.tfm
new file mode 100644
index 00000000000..1db09ae81cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphmgothr-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphmgothr-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphmgothr-v.tfm
new file mode 100644
index 00000000000..dddd9776408
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphmgothr-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminb-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminb-h.tfm
new file mode 100644
index 00000000000..1db09ae81cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminb-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminb-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminb-v.tfm
new file mode 100644
index 00000000000..dddd9776408
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminb-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminl-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminl-h.tfm
new file mode 100644
index 00000000000..1db09ae81cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminl-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminl-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminl-v.tfm
new file mode 100644
index 00000000000..dddd9776408
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminl-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminr-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminr-h.tfm
new file mode 100644
index 00000000000..1db09ae81cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminr-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminr-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminr-v.tfm
new file mode 100644
index 00000000000..dddd9776408
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uphminr-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgothb-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgothb-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgothb-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgothb-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgothb-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgothb-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgotheb-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgotheb-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgotheb-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgotheb-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgotheb-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgotheb-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgothr-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgothr-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgothr-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgothr-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgothr-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlgothr-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlmgothr-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlmgothr-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlmgothr-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlmgothr-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlmgothr-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlmgothr-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminb-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminb-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminb-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminb-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminb-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminb-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminl-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminl-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminl-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminl-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminl-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminl-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminr-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminr-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminr-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminr-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminr-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/upnmlminr-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubygothb-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubygothb-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubygothb-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubygothb-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubygothb-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubygothb-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubygothr-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubygothr-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubygothr-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubygothr-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubygothr-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubygothr-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubymgothr-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubymgothr-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubymgothr-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubymgothr-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubymgothr-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubymgothr-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminb-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminb-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminb-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminb-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminb-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminb-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminl-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminl-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminl-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminl-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminl-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminl-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminr-h.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminr-h.tfm
new file mode 100644
index 00000000000..0d3023dbfc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminr-h.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminr-v.tfm b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminr-v.tfm
new file mode 100644
index 00000000000..d95138cdac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/uptex/japanese-otf-uptex/uprubyminr-v.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpgothb-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpgothb-h.vf
new file mode 100644
index 00000000000..1b5997cd957
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpgothb-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpgothb-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpgothb-v.vf
new file mode 100644
index 00000000000..01cbdef4d6b
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpgothb-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpgothr-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpgothr-h.vf
new file mode 100644
index 00000000000..a864ed803e0
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpgothr-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpgothr-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpgothr-v.vf
new file mode 100644
index 00000000000..f4786fd3844
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpgothr-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpmgothr-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpmgothr-h.vf
new file mode 100644
index 00000000000..65ce796f3aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpmgothr-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpmgothr-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpmgothr-v.vf
new file mode 100644
index 00000000000..14874e439e6
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpmgothr-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminb-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminb-h.vf
new file mode 100644
index 00000000000..2db26de7730
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminb-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminb-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminb-v.vf
new file mode 100644
index 00000000000..9f45bc96ac4
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminb-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminl-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminl-h.vf
new file mode 100644
index 00000000000..37b9e777f3c
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminl-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminl-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminl-v.vf
new file mode 100644
index 00000000000..d41f8074111
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminl-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminr-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminr-h.vf
new file mode 100644
index 00000000000..6bc850dbc28
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminr-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminr-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminr-v.vf
new file mode 100644
index 00000000000..f3366138c93
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upexpminr-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgothb-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgothb-h.vf
new file mode 100644
index 00000000000..0f33c1cfd5c
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgothb-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgothb-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgothb-v.vf
new file mode 100644
index 00000000000..719bbb6a64b
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgothb-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgotheb-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgotheb-h.vf
new file mode 100644
index 00000000000..57a271e4aeb
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgotheb-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgotheb-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgotheb-v.vf
new file mode 100644
index 00000000000..f5cddfe81df
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgotheb-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgothr-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgothr-h.vf
new file mode 100644
index 00000000000..fa08ddb69df
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgothr-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgothr-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgothr-v.vf
new file mode 100644
index 00000000000..52f3c24fd4f
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlgothr-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlmgothr-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlmgothr-h.vf
new file mode 100644
index 00000000000..e953352db2d
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlmgothr-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlmgothr-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlmgothr-v.vf
new file mode 100644
index 00000000000..89d76d29f0a
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlmgothr-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminb-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminb-h.vf
new file mode 100644
index 00000000000..fd0038b442a
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminb-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminb-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminb-v.vf
new file mode 100644
index 00000000000..80b9be3085c
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminb-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminl-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminl-h.vf
new file mode 100644
index 00000000000..ddf2c941955
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminl-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminl-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminl-v.vf
new file mode 100644
index 00000000000..05fe6277c14
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminl-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminr-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminr-h.vf
new file mode 100644
index 00000000000..b0ca19841b2
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminr-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminr-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminr-v.vf
new file mode 100644
index 00000000000..1d83aaf4d83
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/upnmlminr-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubygothb-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubygothb-h.vf
new file mode 100644
index 00000000000..e7c27b51bea
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubygothb-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubygothb-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubygothb-v.vf
new file mode 100644
index 00000000000..c78213d86fe
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubygothb-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubygothr-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubygothr-h.vf
new file mode 100644
index 00000000000..4992f8db29c
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubygothr-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubygothr-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubygothr-v.vf
new file mode 100644
index 00000000000..c7a78add734
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubygothr-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubymgothr-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubymgothr-h.vf
new file mode 100644
index 00000000000..face8a144d8
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubymgothr-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubymgothr-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubymgothr-v.vf
new file mode 100644
index 00000000000..f34ecee0678
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubymgothr-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminb-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminb-h.vf
new file mode 100644
index 00000000000..982aa9bc1a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminb-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminb-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminb-v.vf
new file mode 100644
index 00000000000..44214181100
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminb-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminl-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminl-h.vf
new file mode 100644
index 00000000000..6829d5b4519
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminl-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminl-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminl-v.vf
new file mode 100644
index 00000000000..df57be6f9c3
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminl-v.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminr-h.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminr-h.vf
new file mode 100644
index 00000000000..25aa652279e
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminr-h.vf
Binary files differ
diff --git a/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminr-v.vf b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminr-v.vf
new file mode 100644
index 00000000000..afed5b618fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/vf/uptex/japanese-otf-uptex/uprubyminr-v.vf
Binary files differ
diff --git a/Master/texmf-dist/source/fonts/japanese-otf-uptex/basepl/ubase-h.pl b/Master/texmf-dist/source/fonts/japanese-otf-uptex/basepl/ubase-h.pl
new file mode 100644
index 00000000000..d9bafd5e747
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/japanese-otf-uptex/basepl/ubase-h.pl
@@ -0,0 +1,188 @@
+(COMMENT THIS IS A KANJI FORMAT FILE)
+(FAMILY OTF KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(GLUEKERN
+ (LABEL O 0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 1)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 2)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ (GLUE O 6 R 0.5 R 0.0 R 0.5)
+ (GLUE O 7 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 3)
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ (GLUE O 6 R 0.25 R 0.0 R 0.25)
+ (GLUE O 7 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 4)
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ (GLUE O 6 R 0.5 R 0.0 R 0.0)
+ (GLUE O 7 R 0.5 R 0.0 R 0.0)
+ (STOP)
+ (LABEL O 5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ (STOP)
+ (LABEL O 6)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 7 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 7)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ )
+(CHARSINTYPE O 1
+ $B!F(B $B!H(B $B!J(B $B!L(B $B!N(B $B!P(B $B!R(B $B!T(B $B!V(B $B!X(B $B!Z(B
+ UFF5F U3018 U3016 U301D
+ )
+(CHARSINTYPE O 2
+ $B!"(B $B!$(B $B!G(B $B!I(B $B!K(B $B!M(B $B!O(B $B!Q(B $B!S(B $B!U(B $B!W(B $B!Y(B $B![(B
+ UFF60 U3019 U3017 U301F
+ )
+(CHARSINTYPE O 3
+ $B!&(B $B!'(B $B!((B
+ )
+(CHARSINTYPE O 4
+ $B!#(B $B!%(B
+ )
+(CHARSINTYPE O 5
+ $B!=(B $B!D(B $B!E(B
+ )
+(CHARSINTYPE O 6
+ $B!)(B $B!*(B
+ )
+(CHARSINTYPE O 7
+ UFF61 UFF62 UFF63 UFF64 UFF65 UFF66 UFF67
+ UFF68 UFF69 UFF6A UFF6B UFF6C UFF6D UFF6E UFF6F
+ UFF70 UFF71 UFF72 UFF73 UFF74 UFF75 UFF76 UFF77
+ UFF78 UFF79 UFF7A UFF7B UFF7C UFF7D UFF7E UFF7F
+ UFF80 UFF81 UFF82 UFF83 UFF84 UFF85 UFF86 UFF87
+ UFF88 UFF89 UFF8A UFF8B UFF8C UFF8D UFF8E UFF8F
+ UFF90 UFF91 UFF92 UFF93 UFF94 UFF95 UFF96 UFF97
+ UFF98 UFF99 UFF9A UFF9B UFF9C UFF9D UFF9E UFF9F
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 2
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ (GLUE O 6 R 0.5 R 0.0 R 0.5)
+ (GLUE O 7 R 0.5 R 0.0 R 0.5)
+ )
+ )
+(TYPE O 3
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ (GLUE O 6 R 0.25 R 0.0 R 0.25)
+ (GLUE O 7 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 4
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ (GLUE O 6 R 0.5 R 0.0 R 0.0)
+ (GLUE O 7 R 0.5 R 0.0 R 0.0)
+ )
+ )
+(TYPE O 5
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ )
+ )
+(TYPE O 6
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 7 R 0.5 R 0.0 R 0.5)
+ )
+ )
+(TYPE O 7
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
diff --git a/Master/texmf-dist/source/fonts/japanese-otf-uptex/basepl/ubase-v.pl b/Master/texmf-dist/source/fonts/japanese-otf-uptex/basepl/ubase-v.pl
new file mode 100644
index 00000000000..76154f5e808
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/japanese-otf-uptex/basepl/ubase-v.pl
@@ -0,0 +1,152 @@
+(COMMENT THIS IS A KANJI FORMAT FILE)
+(DIRECTION TATE)
+(FAMILY OTF KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(GLUEKERN
+ (LABEL O 0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 1)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 2)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 3)
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 4)
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ (STOP)
+ (LABEL O 5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ (STOP)
+ (LABEL O 6)
+ (GLUE O 0 R 1.0 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ )
+(CHARSINTYPE O 1
+ $B!F(B $B!H(B $B!J(B $B!L(B $B!N(B $B!P(B $B!R(B $B!T(B $B!V(B $B!X(B $B!Z(B
+ UFF5F U3018 U3016 U301D
+ )
+(CHARSINTYPE O 2
+ $B!"(B $B!$(B $B!G(B $B!I(B $B!K(B $B!M(B $B!O(B $B!Q(B $B!S(B $B!U(B $B!W(B $B!Y(B $B![(B
+ UFF60 U3019 U3017 U301F
+ )
+(CHARSINTYPE O 3
+ $B!&(B $B!'(B $B!((B
+ )
+(CHARSINTYPE O 4
+ $B!#(B $B!%(B
+ )
+(CHARSINTYPE O 5
+ $B!=(B $B!D(B $B!E(B
+ )
+(CHARSINTYPE O 6
+ $B!)(B $B!*(B
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 2
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ )
+ )
+(TYPE O 3
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 4
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ )
+ )
+(TYPE O 5
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ )
+ )
+(TYPE O 6
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 1.0 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
diff --git a/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/ckt.map(for udvips) b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/ckt.map(for udvips)
new file mode 100644
index 00000000000..2f1e1715473
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/ckt.map(for udvips)
@@ -0,0 +1,26 @@
+%font from acrobat5
+otf-utmr-h MSungStd-Light-Acro-UniCNS-UCS2-H
+otf-utmr-v MSungStd-Light-Acro-UniCNS-UCS2-V
+otf-utgr-h MHei-Medium-UniCNS-UCS2-H
+otf-utgr-v MHei-Medium-UniCNS-UCS2-V
+otf-ucmr-h STSongStd-Light-Acro-UniGB-UCS2-H
+otf-ucmr-v STSongStd-Light-Acro-UniGB-UCS2-V
+otf-ucgr-h STHeiti-Regular-UniGB-UCS2-H
+otf-ucgr-v STHeiti-Regular-UniGB-UCS2-V
+otf-ukmr-h HYSMyeongJoStd-Medium-Acro-UniKS-UCS2-H
+otf-ukmr-v HYSMyeongJoStd-Medium-Acro-UniKS-UCS2-V
+otf-ukgr-h HYGoThic-Medium-UniKS-UCS2-H
+otf-ukgr-v HYGoThic-Medium-UniKS-UCS2-V
+
+otf-ctmr-h MSungStd-Light-Acro-Identity-H
+otf-ctmr-v MSungStd-Light-Acro-Identity-V
+otf-ctgr-h MHei-Medium-Identity-H
+otf-ctgr-v MHei-Medium-Identity-V
+otf-ccmr-h STSongStd-Light-Acro-Identity-H
+otf-ccmr-v STSongStd-Light-Acro-Identity-V
+otf-ccgr-h STHeiti-Regular-Identity-H
+otf-ccgr-v STHeiti-Regular-Identity-V
+otf-ckmr-h HYSMyeongJoStd-Medium-Acro-Identity-H
+otf-ckmr-v HYSMyeongJoStd-Medium-Acro-Identity-V
+otf-ckgr-h HYGoThic-Medium-Identity-H
+otf-ckgr-v HYGoThic-Medium-Identity-V
diff --git a/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/cktx.map(for dvipdfmx) b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/cktx.map(for dvipdfmx)
new file mode 100644
index 00000000000..857bb5a51f3
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/cktx.map(for dvipdfmx)
@@ -0,0 +1,30 @@
+%font from acrobat5
+otf-ukmr-h UniKS-UCS2-H HYSMyeongJoStd-Medium-Acro
+otf-ukmr-v UniKS-UCS2-V HYSMyeongJoStd-Medium-Acro
+otf-ukgr-h UniKS-UCS2-H HYGoThic-Medium
+otf-ukgr-v UniKS-UCS2-V HYGoThic-Medium
+
+otf-ucmr-h UniGB-UCS2-H STSongStd-Light-Acro
+otf-ucmr-v UniGB-UCS2-V STSongStd-Light-Acro
+otf-ucgr-h UniGB-UCS2-H STHeiti-Regular
+otf-ucgr-v UniGB-UCS2-V STHeiti-Regular
+
+otf-utmr-h UniCNS-UCS2-H MSungStd-Light-Acro
+otf-utmr-v UniCNS-UCS2-V MSungStd-Light-Acro
+otf-utgr-h UniCNS-UCS2-H MHei-Medium
+otf-utgr-v UniCNS-UCS2-V MHei-Medium
+
+otf-ckmr-h Identity-H HYSMyeongJoStd-Medium-Acro
+otf-ckmr-v Identity-V HYSMyeongJoStd-Medium-Acro
+otf-ckgr-h Identity-H HYGoThic-Medium
+otf-ckgr-v Identity-V HYGoThic-Medium
+
+otf-ccmr-h Identity-H STSongStd-Light-Acro
+otf-ccmr-v Identity-V STSongStd-Light-Acro
+otf-ccgr-h Identity-H STHeiti-Regular
+otf-ccgr-v Identity-V STHeiti-Regular
+
+otf-ctmr-h Identity-H MSungStd-Light-Acro
+otf-ctmr-v Identity-V MSungStd-Light-Acro
+otf-ctgr-h Identity-H MHei-Medium
+otf-ctgr-v Identity-V MHei-Medium
diff --git a/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/hiragino.map(for udvips) b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/hiragino.map(for udvips)
new file mode 100644
index 00000000000..9b8cb0b6622
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/hiragino.map(for udvips)
@@ -0,0 +1,100 @@
+otf-ujmr-h HiraMinPro-W3-UniJIS-UTF16-H
+otf-ujmr-v HiraMinPro-W3-UniJIS-UTF16-V
+otf-cjmr-h HiraMinPro-W3-Identity-H
+otf-cjmr-v HiraMinPro-W3-Identity-V
+hminr-h HiraMinPro-W3-H
+hminr-v HiraMinPro-W3-V
+uphminr-h HiraMinPro-W3-UniJIS-UTF16-H
+uphminr-v HiraMinPro-W3-UniJIS-UTF16-V
+
+otf-ujgr-h HiraKakuPro-W3-UniJIS-UTF16-H
+otf-ujgr-v HiraKakuPro-W3-UniJIS-UTF16-V
+otf-cjgr-h HiraKakuPro-W3-Identity-H
+otf-cjgr-v HiraKakuPro-W3-Identity-V
+hgothr-h HiraKakuPro-W3-H
+hgothr-v HiraKakuPro-W3-V
+uphgothr-h HiraKakuPro-W3-UniJIS-UTF16-H
+uphgothr-v HiraKakuPro-W3-UniJIS-UTF16-V
+
+otf-ujmb-h HiraMinPro-W6-UniJIS-UTF16-H
+otf-ujmb-v HiraMinPro-W6-UniJIS-UTF16-V
+otf-cjmb-h HiraMinPro-W6-Identity-H
+otf-cjmb-v HiraMinPro-W6-Identity-V
+hminb-h HiraMinPro-W6-H
+hminb-v HiraMinPro-W6-V
+uphminb-h HiraMinPro-W6-UniJIS-UTF16-H
+uphminb-v HiraMinPro-W6-UniJIS-UTF16-V
+
+otf-cjgb-h HiraKakuPro-W6-Identity-H
+otf-cjgb-v HiraKakuPro-W6-Identity-V
+otf-ujgb-h HiraKakuPro-W6-UniJIS-UTF16-H
+otf-ujgb-v HiraKakuPro-W6-UniJIS-UTF16-V
+hgothb-h HiraKakuPro-W6-H
+hgothb-v HiraKakuPro-W6-V
+uphgothb-h HiraKakuPro-W6-UniJIS-UTF16-H
+uphgothb-v HiraKakuPro-W6-UniJIS-UTF16-V
+
+hgotheb-h HiraKakuStd-W8-H
+hgotheb-v HiraKakuStd-W8-V
+uphgotheb-h HiraKakuStd-W8-UniJIS-UTF16-H
+uphgotheb-v HiraKakuStd-W8-UniJIS-UTF16-V
+
+otf-ujmgr-h HiraMaruPro-W4-UniJIS-UTF16-H
+otf-ujmgr-v HiraMaruPro-W4-UniJIS-UTF16-V
+otf-cjmgr-h HiraMaruPro-W4-Identity-H
+otf-cjmgr-v HiraMaruPro-W4-Identity-V
+hmgothr-h HiraMaruPro-W4-H
+hmgothr-v HiraMaruPro-W4-V
+uphmgothr-h HiraMaruPro-W4-UniJIS-UTF16-H
+uphmgothr-v HiraMaruPro-W4-UniJIS-UTF16-V
+
+otf-ujml-h HiraMinPro-W2-UniJIS-UTF16-H
+otf-ujml-v HiraMinPro-W2-UniJIS-UTF16-V
+otf-cjml-h HiraMinPro-W2-Identity-H
+otf-cjml-v HiraMinPro-W2-Identity-V
+hminl-h HiraMinPro-W2-H
+hminl-v HiraMinPro-W2-V
+uphminl-h HiraMinPro-W2-UniJIS-UTF16-H
+uphminl-v HiraMinPro-W2-UniJIS-UTF16-V
+
+hiramin-w3-h HiraMinPro-W3-Identity-H
+hiramin-w6-h HiraMinPro-W6-Identity-H
+hirakaku-w3-h HiraKakuPro-W3-Identity-H
+hirakaku-w6-h HiraKakuPro-W6-Identity-H
+hiramaru-w4-h HiraMaruPro-W4-Identity-H
+hiramin-w3-v HiraMinPro-W3-Identity-V
+hiramin-w6-v HiraMinPro-W6-Identity-V
+hirakaku-w3-v HiraKakuPro-W3-Identity-V
+hirakaku-w6-v HiraKakuPro-W6-Identity-V
+hiramaru-w4-v HiraMaruPro-W4-Identity-V
+
+%for JIS X 0213:2004
+otf-ujmrn-h HiraMinProN-W3-UniJIS2004-UTF16-H
+otf-ujmrn-v HiraMinProN-W3-UniJIS2004-UTF16-V
+hminrn-h HiraMinProN-W3-H
+hminrn-v HiraMinProN-W3-V
+
+otf-ujgrn-h HiraKakuProN-W3-UniJIS2004-UTF16-H
+otf-ujgrn-v HiraKakuProN-W3-UniJIS2004-UTF16-V
+hgothrn-h HiraKakuProN-W3-H
+hgothrn-v HiraKakuProN-W3-V
+
+otf-ujmbn-h HiraMinProN-W6-UniJIS2004-UTF16-H
+otf-ujmbn-v HiraMinProN-W6-UniJIS2004-UTF16-V
+hminbn-h HiraMinProN-W6-H
+hminbn-v HiraMinProN-W6-V
+
+otf-ujgbn-h HiraKakuProN-W6-UniJIS2004-UTF16-H
+otf-ujgbn-v HiraKakuProN-W6-UniJIS2004-UTF16-V
+hgothbn-h HiraKakuProN-W6-H
+hgothbn-v HiraKakuProN-W6-V
+
+otf-ujmgrn-h HiraMaruProN-W4-UniJIS2004-UTF16-H
+otf-ujmgrn-v HiraMaruProN-W4-UniJIS2004-UTF16-V
+hmgothrn-h HiraMaruProN-W4-H
+hmgothrn-v HiraMaruProN-W4-V
+
+otf-ujmln-h HiraMinProN-W2-UniJIS2004-UTF16-H
+otf-ujmln-v HiraMinProN-W2-UniJIS2004-UTF16-V
+hminln-h HiraMinProN-W2-H
+hminln-v HiraMinProN-W2-V
diff --git a/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/hiraginox.map(for dvipdfmx) b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/hiraginox.map(for dvipdfmx)
new file mode 100644
index 00000000000..1dd6cb922d4
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/hiraginox.map(for dvipdfmx)
@@ -0,0 +1,100 @@
+otf-ujmr-h UniJIS-UTF16-H HiraMinPro-W3
+otf-ujmr-v UniJIS-UTF16-V HiraMinPro-W3
+otf-cjmr-h Identity-H HiraMinPro-W3
+otf-cjmr-v Identity-V HiraMinPro-W3
+hminr-h H HiraMinPro-W3
+hminr-v V HiraMinPro-W3
+uphminr-h UniJIS-UTF16-H HiraMinPro-W3
+uphminr-v UniJIS-UTF16-V HiraMinPro-W3
+
+otf-ujgr-h UniJIS-UTF16-H HiraKakuPro-W3
+otf-ujgr-v UniJIS-UTF16-V HiraKakuPro-W3
+otf-cjgr-h Identity-H HiraKakuPro-W3
+otf-cjgr-v Identity-V HiraKakuPro-W3
+hgothr-h H HiraKakuPro-W3
+hgothr-v V HiraKakuPro-W3
+uphgothr-h UniJIS-UTF16-H HiraKakuPro-W3
+uphgothr-v UniJIS-UTF16-V HiraKakuPro-W3
+
+otf-ujmb-h UniJIS-UTF16-H HiraMinPro-W6
+otf-ujmb-v UniJIS-UTF16-V HiraMinPro-W6
+otf-cjmb-h Identity-H HiraMinPro-W6
+otf-cjmb-v Identity-V HiraMinPro-W6
+hminb-h H HiraMinPro-W6
+hminb-v V HiraMinPro-W6
+uphminb-h UniJIS-UTF16-H HiraMinPro-W6
+uphminb-v UniJIS-UTF16-V HiraMinPro-W6
+
+otf-ujgb-h UniJIS-UTF16-H HiraKakuPro-W6
+otf-ujgb-v UniJIS-UTF16-V HiraKakuPro-W6
+otf-cjgb-h Identity-H HiraKakuPro-W6
+otf-cjgb-v Identity-V HiraKakuPro-W6
+hgothb-h H HiraKakuPro-W6
+hgothb-v V HiraKakuPro-W6
+uphgothb-h UniJIS-UTF16-H HiraKakuPro-W6
+uphgothb-v UniJIS-UTF16-V HiraKakuPro-W6
+
+hgotheb-h H HiraKakuStd-W8
+hgotheb-v V HiraKakuStd-W8
+uphgotheb-h UniJIS-UTF16-H HiraKakuStd-W8
+uphgotheb-v UniJIS-UTF16-V HiraKakuStd-W8
+
+otf-ujmgr-h UniJIS-UTF16-H HiraMaruPro-W4
+otf-ujmgr-v UniJIS-UTF16-V HiraMaruPro-W4
+otf-cjmgr-h Identity-H HiraMaruPro-W4
+otf-cjmgr-v Identity-V HiraMaruPro-W4
+hmgothr-h H HiraMaruPro-W4
+hmgothr-v V HiraMaruPro-W4
+uphmgothr-h UniJIS-UTF16-H HiraMaruPro-W4
+uphmgothr-v UniJIS-UTF16-V HiraMaruPro-W4
+
+otf-ujml-h UniJIS-UTF16-H HiraMinPro-W2
+otf-ujml-v UniJIS-UTF16-V HiraMinPro-W2
+otf-cjml-h Identity-H HiraMinPro-W2
+otf-cjml-v Identity-V HiraMinPro-W2
+hminl-h H HiraMinPro-W2
+hminl-v V HiraMinPro-W2
+uphminl-h UniJIS-UTF16-H HiraMinPro-W2
+uphminl-v UniJIS-UTF16-V HiraMinPro-W2
+
+hiramin-w3-h Identity-H HiraMinPro-W3
+hiramin-w6-h Identity-H HiraMinPro-W6
+hirakaku-w3-h Identity-H HiraKakuPro-W3
+hirakaku-w6-h Identity-H HiraKakuPro-W6
+hiramaru-w4-h Identity-H HiraMaruPro-W4
+hiramin-w3-v Identity-V HiraMinPro-W3
+hiramin-w6-v Identity-V HiraMinPro-W6
+hirakaku-w3-v Identity-V HiraKakuPro-W3
+hirakaku-w6-v Identity-V HiraKakuPro-W6
+hiramaru-w4-v Identity-V HiraMaruPro-W4
+
+%for JIS X 0213:2004
+otf-ujmrn-h UniJIS2004-UTF16-H HiraMinProN-W3
+otf-ujmrn-v UniJIS2004-UTF16-V HiraMinProN-W3
+hminrn-h H HiraMinProN-W3
+hminrn-v V HiraMinProN-W3
+
+otf-ujgrn-h UniJIS2004-UTF16-H HiraKakuProN-W3
+otf-ujgrn-v UniJIS2004-UTF16-V HiraKakuProN-W3
+hgothrn-h H HiraKakuProN-W3
+hgothrn-v V HiraKakuProN-W3
+
+otf-ujmbn-h UniJIS2004-UTF16-H HiraMinProN-W6
+otf-ujmbn-v UniJIS2004-UTF16-V HiraMinProN-W6
+hminbn-h H HiraMinProN-W6
+hminbn-v V HiraMinProN-W6
+
+otf-ujgbn-h UniJIS2004-UTF16-H HiraKakuProN-W6
+otf-ujgbn-v UniJIS2004-UTF16-V HiraKakuProN-W6
+hgothbn-h H HiraKakuProN-W6
+hgothbn-v V HiraKakuProN-W6
+
+otf-ujmgrn-h UniJIS2004-UTF16-H HiraMaruProN-W4
+otf-ujmgrn-v UniJIS2004-UTF16-V HiraMaruProN-W4
+hmgothrn-h H HiraMaruProN-W4
+hmgothrn-v V HiraMaruProN-W4
+
+otf-ujmln-h UniJIS2004-UTF16-H HiraMinProN-W2
+otf-ujmln-v UniJIS2004-UTF16-V HiraMinProN-W2
+hminln-h H HiraMinProN-W2
+hminln-v V HiraMinProN-W2
diff --git a/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/kozuka.map b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/kozuka.map
new file mode 100644
index 00000000000..8628a2b4b66
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/kozuka.map
@@ -0,0 +1,61 @@
+otf-ujmr-h KozMinPro-Regular-Acro-UniJIS-UTF16-H
+otf-ujmr-v KozMinPro-Regular-Acro-UniJIS-UTF16-V
+otf-cjmr-h KozMinPro-Regular-Acro-Identity-H
+otf-cjmr-v KozMinPro-Regular-Acro-Identity-V
+hminr-h KozMinPro-Regular-Acro-H
+hminr-v KozMinPro-Regular-Acro-V
+uphminr-h KozMinPro-Regular-Acro-UniJIS-UTF16-H
+uphminr-v KozMinPro-Regular-Acro-UniJIS-UTF16-V
+
+otf-ujgr-h KozGoStd-Regular-UniJIS-UTF16-H
+otf-ujgr-v KozGoStd-Regular-UniJIS-UTF16-V
+otf-cjgr-h KozGoStd-Regular-Identity-H
+otf-cjgr-v KozGoStd-Regular-Identity-V
+hgothr-h KozGoStd-Regular-H
+hgothr-v KozGoStd-Regular-V
+uphgothr-h KozGoStd-Regular-UniJIS-UTF16-H
+uphgothr-v KozGoStd-Regular-UniJIS-UTF16-V
+
+otf-ujmb-h KozMinStd-Bold-UniJIS-UTF16-H
+otf-ujmb-v KozMinStd-Bold-UniJIS-UTF16-V
+otf-cjmb-h KozMinStd-Bold-Identity-H
+otf-cjmb-v KozMinStd-Bold-Identity-V
+hminb-h KozMinStd-Bold-H
+hminb-v KozMinStd-Bold-V
+uphminb-h KozMinStd-Bold-UniJIS-UTF16-H
+uphminb-v KozMinStd-Bold-UniJIS-UTF16-V
+
+otf-cjgb-h KozGoStd-Bold-Identity-H
+otf-cjgb-v KozGoStd-Bold-Identity-V
+otf-ujgb-h KozGoStd-Bold-UniJIS-UTF16-H
+otf-ujgb-v KozGoStd-Bold-UniJIS-UTF16-V
+hgothb-h KozGoStd-Bold-H
+hgothb-v KozGoStd-Bold-V
+uphgothb-h KozGoStd-Bold-UniJIS-UTF16-H
+uphgothb-v KozGoStd-Bold-UniJIS-UTF16-V
+
+otf-ujmgr-h KozGoStd-Heavy-UniJIS-UTF16-H
+otf-ujmgr-v KozGoStd-Heavy-UniJIS-UTF16-V
+otf-cjmgr-h KozGoStd-Heavy-Identity-H
+otf-cjmgr-v KozGoStd-Heavy-Identity-V
+hmgothr-h KozGoStd-Heavy-H
+hmgothr-v KozGoStd-Heavy-V
+uphmgothr-h KozGoStd-Heavy-UniJIS-UTF16-H
+uphmgothr-v KozGoStd-Heavy-UniJIS-UTF16-V
+
+%
+%for Adobe Reader 7
+%
+otf-ujmr-h KozMinProVI-Regular-UniJIS-UTF16-H
+otf-ujmr-v KozMinProVI-Regular-UniJIS-UTF16-V
+otf-cjmr-h KozMinProVI-Regular-Identity-H
+otf-cjmr-v KozMinProVI-Regular-Identity-V
+hminr-h KozMinProVI-Regular-H
+hminr-v KozMinProVI-Regular-V
+
+otf-ujgr-h KozGoPro-Medium-UniJIS-UTF16-H
+otf-ujgr-v KozGoPro-Medium-UniJIS-UTF16-V
+otf-cjgr-h KozGoPro-Medium-Identity-H
+otf-cjgr-v KozGoPro-Medium-Identity-V
+hgothr-h KozGoPro-Medium-H
+hgothr-v KozGoPro-Medium-V
diff --git a/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/kozukax.map b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/kozukax.map
new file mode 100644
index 00000000000..5193f9e1965
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/kozukax.map
@@ -0,0 +1,62 @@
+otf-ujmr-h UniJIS-UTF16-H KozMinPro-Regular-Acro.otf
+otf-ujmr-v UniJIS-UTF16-V KozMinPro-Regular-Acro.otf
+otf-cjmr-h Identity-H KozMinPro-Regular-Acro.otf
+otf-cjmr-v Identity-V KozMinPro-Regular-Acro.otf
+hminr-h H KozMinPro-Regular-Acro.otf
+hminr-v V KozMinPro-Regular-Acro.otf
+uphminr-h UniJIS-UTF16-H KozMinPro-Regular-Acro.otf
+uphminr-v UniJIS-UTF16-V KozMinPro-Regular-Acro.otf
+
+otf-ujgr-h UniJIS-UTF16-H KozGoStd-Regular.otf
+otf-ujgr-v UniJIS-UTF16-V KozGoStd-Regular.otf
+otf-cjgr-h Identity-H KozGoStd-Regular.otf
+otf-cjgr-v Identity-V KozGoStd-Regular.otf
+hgothr-h H KozGoStd-Regular.otf
+hgothr-v V KozGoStd-Regular.otf
+uphgothr-h UniJIS-UTF16-H KozGoStd-Regular.otf
+uphgothr-v UniJIS-UTF16-V KozGoStd-Regular.otf
+
+otf-ujmb-h UniJIS-UTF16-H KozMinStd-Bold.otf
+otf-ujmb-v UniJIS-UTF16-V KozMinStd-Bold.otf
+otf-cjmb-h Identity-H KozMinStd-Bold.otf
+otf-cjmb-v Identity-V KozMinStd-Bold.otf
+hminb-h H KozMinStd-Bold.otf
+hminb-v V KozMinStd-Bold.otf
+uphminb-h UniJIS-UTF16-H KozMinStd-Bold.otf
+uphminb-v UniJIS-UTF16-V KozMinStd-Bold.otf
+
+otf-cjgb-h Identity-H KozGoStd-Bold.otf
+otf-cjgb-v Identity-V KozGoStd-Bold.otf
+otf-ujgb-h UniJIS-UTF16-H KozGoStd-Bold.otf
+otf-ujgb-v UniJIS-UTF16-V KozGoStd-Bold.otf
+hgothb-h H KozGoStd-Bold.otf
+hgothb-v V KozGoStd-Bold.otf
+uphgothb-h UniJIS-UTF16-H KozGoStd-Bold.otf
+uphgothb-v UniJIS-UTF16-V KozGoStd-Bold.otf
+
+otf-ujmgr-h UniJIS-UTF16-H KozGoStd-Heavy.otf
+otf-ujmgr-v UniJIS-UTF16-V KozGoStd-Heavy.otf
+otf-cjmgr-h Identity-H KozGoStd-Heavy.otf
+otf-cjmgr-v Identity-V KozGoStd-Heavy.otf
+hmgothr-h H KozGoStd-Heavy.otf
+hmgothr-v V KozGoStd-Heavy.otf
+uphmgothr-h UniJIS-UTF16-H KozGoStd-Heavy.otf
+uphmgothr-v UniJIS-UTF16-V KozGoStd-Heavy.otf
+
+
+%
+%for Adobe Reader 7
+%
+otf-ujmr-h UniJIS-UTF16-H KozMinProVI-Regular.otf
+otf-ujmr-v UniJIS-UTF16-V KozMinProVI-Regular.otf
+otf-cjmr-h Identity-H KozMinProVI-Regular.otf
+otf-cjmr-v Identity-V KozMinProVI-Regular.otf
+hminr-h H KozMinProVI-Regular.otf
+hminr-v V KozMinProVI-Regular.otf
+
+otf-ujgr-h UniJIS-UTF16-H KozGoPro-Medium.otf
+otf-ujgr-v UniJIS-UTF16-V KozGoPro-Medium.otf
+otf-cjgr-h Identity-H KozGoPro-Medium.otf
+otf-cjgr-v Identity-V KozGoPro-Medium.otf
+hgothr-h H KozGoPro-Medium.otf
+hgothr-v V KozGoPro-Medium.otf
diff --git a/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/morisawa.map(for udvips) b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/morisawa.map(for udvips)
new file mode 100644
index 00000000000..5f1312c0558
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/morisawa.map(for udvips)
@@ -0,0 +1,44 @@
+otf-ujmr-h RyuminPro-Light-UniJIS-UTF16-H
+otf-ujmr-v RyuminPro-Light-UniJIS-UTF16-V
+otf-cjmr-h RyuminPro-Light-Identity-H
+otf-cjmr-v RyuminPro-Light-Identity-V
+hminr-h RyuminPro-Light-H
+hminr-v RyuminPro-Light-V
+uphminr-h RyuminPro-Light-UniJIS-UTF16-H
+uphminr-v RyuminPro-Light-UniJIS-UTF16-V
+
+otf-ujgr-h GothicBBBPro-Medium-UniJIS-UTF16-H
+otf-ujgr-v GothicBBBPro-Medium-UniJIS-UTF16-V
+otf-cjgr-h GothicBBBPro-Medium-Identity-H
+otf-cjgr-v GothicBBBPro-Medium-Identity-V
+hgothr-h GothicBBBPro-Medium-H
+hgothr-v GothicBBBPro-Medium-V
+uphgothr-h GothicBBBPro-Medium-UniJIS-UTF16-H
+uphgothr-v GothicBBBPro-Medium-UniJIS-UTF16-V
+
+otf-ujmb-h FutoMinA101Pro-Bold-UniJIS-UTF16-H
+otf-ujmb-v FutoMinA101Pro-Bold-UniJIS-UTF16-V
+otf-cjmb-h FutoMinA101Pro-Bold-Identity-H
+otf-cjmb-v FutoMinA101Pro-Bold-Identity-V
+hminb-h FutoMinA101Pro-Bold-H
+hminb-v FutoMinA101Pro-Bold-V
+uphminb-h FutoMinA101Pro-Bold-UniJIS-UTF16-H
+uphminb-v FutoMinA101Pro-Bold-UniJIS-UTF16-V
+
+otf-cjgb-h FutoGoB101Pro-Bold-Identity-H
+otf-cjgb-v FutoGoB101Pro-Bold-Identity-V
+otf-ujgb-h FutoGoB101Pro-Bold-UniJIS-UTF16-H
+otf-ujgb-v FutoGoB101Pro-Bold-UniJIS-UTF16-V
+hgothb-h FutoGoB101Pro-Bold-H
+hgothb-v FutoGoB101Pro-Bold-V
+uphgothb-h FutoGoB101Pro-Bold-UniJIS-UTF16-H
+uphgothb-v FutoGoB101Pro-Bold-UniJIS-UTF16-V
+
+otf-ujmgr-h Jun101Pro-Light-UniJIS-UTF16-H
+otf-ujmgr-v Jun101Pro-Light-UniJIS-UTF16-V
+otf-cjmgr-h Jun101Pro-Light-Identity-H
+otf-cjmgr-v Jun101Pro-Light-Identity-V
+hmgothr-h Jun101Pro-Light-H
+hmgothr-v Jun101Pro-Light-V
+uphmgothr-h Jun101Pro-Light-UniJIS-UTF16-H
+uphmgothr-v Jun101Pro-Light-UniJIS-UTF16-V
diff --git a/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/morisawax.map(for dvipdfmx) b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/morisawax.map(for dvipdfmx)
new file mode 100644
index 00000000000..add0fac72bd
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/morisawax.map(for dvipdfmx)
@@ -0,0 +1,44 @@
+otf-ujmr-h UniJIS-UTF16-H A-OTF-RyuminPro-Light.otf
+otf-ujmr-v UniJIS-UTF16-V A-OTF-RyuminPro-Light.otf
+otf-cjmr-h Identity-H A-OTF-RyuminPro-Light.otf
+otf-cjmr-v Identity-V A-OTF-RyuminPro-Light.otf
+hminr-h H A-OTF-RyuminPro-Light.otf
+hminr-v V A-OTF-RyuminPro-Light.otf
+uphminr-h UniJIS-UTF16-H A-OTF-RyuminPro-Light.otf
+uphminr-v UniJIS-UTF16-V A-OTF-RyuminPro-Light.otf
+
+otf-ujgr-h UniJIS-UTF16-H A-OTF-GothicBBBPro-Medium.otf
+otf-ujgr-v UniJIS-UTF16-V A-OTF-GothicBBBPro-Medium.otf
+otf-cjgr-h Identity-H A-OTF-GothicBBBPro-Medium.otf
+otf-cjgr-v Identity-V A-OTF-GothicBBBPro-Medium.otf
+hgothr-h H A-OTF-GothicBBBPro-Medium.otf
+hgothr-v V A-OTF-GothicBBBPro-Medium.otf
+uphgothr-h UniJIS-UTF16-H A-OTF-GothicBBBPro-Medium.otf
+uphgothr-v UniJIS-UTF16-V A-OTF-GothicBBBPro-Medium.otf
+
+otf-ujmb-h UniJIS-UTF16-H A-OTF-FutoMinA101Pro-Bold.otf
+otf-ujmb-v UniJIS-UTF16-V A-OTF-FutoMinA101Pro-Bold.otf
+otf-cjmb-h Identity-H A-OTF-FutoMinA101Pro-Bold.otf
+otf-cjmb-v Identity-V A-OTF-FutoMinA101Pro-Bold.otf
+hminb-h H A-OTF-FutoMinA101Pro-Bold.otf
+hminb-v V A-OTF-FutoMinA101Pro-Bold.otf
+uphminb-h UniJIS-UTF16-H A-OTF-FutoMinA101Pro-Bold.otf
+uphminb-v UniJIS-UTF16-V A-OTF-FutoMinA101Pro-Bold.otf
+
+otf-ujgb-h UniJIS-UTF16-H A-OTF-FutoGoB101Pro-Bold.otf
+otf-ujgb-v UniJIS-UTF16-V A-OTF-FutoGoB101Pro-Bold.otf
+otf-cjgb-h Identity-H A-OTF-FutoGoB101Pro-Bold.otf
+otf-cjgb-v Identity-V A-OTF-FutoGoB101Pro-Bold.otf
+hgothb-h H A-OTF-FutoGoB101Pro-Bold.otf
+hgothb-v V A-OTF-FutoGoB101Pro-Bold.otf
+uphgothb-h UniJIS-UTF16-H A-OTF-FutoGoB101Pro-Bold.otf
+uphgothb-v UniJIS-UTF16-V A-OTF-FutoGoB101Pro-Bold.otf
+
+otf-ujmgr-h UniJIS-UTF16-H A-OTF-Jun101Pro-Light.otf
+otf-ujmgr-v UniJIS-UTF16-V A-OTF-Jun101Pro-Light.otf
+otf-cjmgr-h Identity-H A-OTF-Jun101Pro-Light.otf
+otf-cjmgr-v Identity-V A-OTF-Jun101Pro-Light.otf
+hmgothr-h H A-OTF-Jun101Pro-Light.otf
+hmgothr-v V A-OTF-Jun101Pro-Light.otf
+uphmgothr-h UniJIS-UTF16-H A-OTF-Jun101Pro-Light.otf
+uphmgothr-v UniJIS-UTF16-V A-OTF-Jun101Pro-Light.otf
diff --git a/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/vfontmap.txt b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/vfontmap.txt
new file mode 100644
index 00000000000..21551a0d0e6
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/japanese-otf-uptex/fontmap/vfontmap.txt
@@ -0,0 +1,67 @@
+# UTF font (needed --with-vflib=vf2ft)
+unijmin-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf unicode
+unijmin-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf unicode
+unijgoth-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf unicode
+unijgoth-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf unicode
+hmr /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf
+hmrv /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf
+hkb /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf
+hkbv /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf
+
+# CID font (needed --with-vflib=vf2ft)
+cidmin-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf adobejapan
+cidmin-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf adobejapan
+cidgoth-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf adobejapan
+cidgoth-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf adobejapan
+
+otf-ujmr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf unicode
+otf-ujmr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf unicode
+otf-cjmr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf adobejapan
+otf-cjmr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf adobejapan
+hminr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf
+hminr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf
+uphminr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf unicode
+uphminr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf unicode
+
+otf-ujgr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W3.otf unicode
+otf-ujgr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W3.otf unicode
+otf-cjgr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W3.otf adobejapan
+otf-cjgr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W3.otf adobejapan
+hgothr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W3.otf
+hgothr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W3.otf
+uphgothr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W3.otf unicode
+uphgothr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W3.otf unicode
+
+otf-ujmb-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W6.otf unicode
+otf-ujmb-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W6.otf unicode
+otf-cjmb-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W6.otf adobejapan
+otf-cjmb-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W6.otf adobejapan
+hminb-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W6.otf
+hminb-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W6.otf
+uphminb-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W6.otf unicode
+uphminb-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W6.otf unicode
+
+otf-ujgb-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf unicode
+otf-ujgb-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf unicode
+otf-cjgb-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf adobejapan
+otf-cjgb-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf adobejapan
+hgothb-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf
+hgothb-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf
+uphgothb-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf unicode
+uphgothb-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf unicode
+
+otf-ujmgr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf unicode
+otf-ujmgr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf unicode
+otf-cjmgr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf adobejapan
+otf-cjmgr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf adobejapan
+hmgothr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf
+hmgothr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf
+uphmgothr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf unicode
+uphmgothr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf unicode
+
+otf-ukmr-h /usr/local/share/texmf/dvipdfm/CIDFont/HYSMyeongJoStd-Medium-Acro.otf unicode
+otf-ukmr-v /usr/local/share/texmf/dvipdfm/CIDFont/HYSMyeongJoStd-Medium-Acro.otf unicode
+otf-ucmr-h /usr/local/share/texmf/dvipdfm/CIDFont/STSongStd-Light-Acro.otf unicode
+otf-ucmr-v /usr/local/share/texmf/dvipdfm/CIDFont/STSongStd-Light-Acro.otf unicode
+otf-utmr-h /usr/local/share/texmf/dvipdfm/CIDFont/MSungStd-Light-Acro.otf unicode
+otf-utmr-v /usr/local/share/texmf/dvipdfm/CIDFont/MSungStd-Light-Acro.otf unicode
diff --git a/Master/texmf-dist/source/fonts/japanese-otf-uptex/patch/otfbeta_uptex-0.07.patch b/Master/texmf-dist/source/fonts/japanese-otf-uptex/patch/otfbeta_uptex-0.07.patch
new file mode 100644
index 00000000000..6eb9a5fa47f
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/japanese-otf-uptex/patch/otfbeta_uptex-0.07.patch
@@ -0,0 +1,358 @@
+diff -urN otfbeta.orig/fontmap/hiragino.map(for udvips) otfbeta/fontmap/hiragino.map(for udvips)
+--- otfbeta.orig/fontmap/hiragino.map(for udvips) 2010-03-27 09:38:48 +0900
++++ otfbeta/fontmap/hiragino.map(for udvips) 2012-01-01 16:47:01 +0900
+@@ -4,6 +4,8 @@
+ otf-cjmr-v HiraMinPro-W3-Identity-V
+ hminr-h HiraMinPro-W3-H
+ hminr-v HiraMinPro-W3-V
++uphminr-h HiraMinPro-W3-UniJIS-UTF16-H
++uphminr-v HiraMinPro-W3-UniJIS-UTF16-V
+
+ otf-ujgr-h HiraKakuPro-W3-UniJIS-UTF16-H
+ otf-ujgr-v HiraKakuPro-W3-UniJIS-UTF16-V
+@@ -11,6 +13,8 @@
+ otf-cjgr-v HiraKakuPro-W3-Identity-V
+ hgothr-h HiraKakuPro-W3-H
+ hgothr-v HiraKakuPro-W3-V
++uphgothr-h HiraKakuPro-W3-UniJIS-UTF16-H
++uphgothr-v HiraKakuPro-W3-UniJIS-UTF16-V
+
+ otf-ujmb-h HiraMinPro-W6-UniJIS-UTF16-H
+ otf-ujmb-v HiraMinPro-W6-UniJIS-UTF16-V
+@@ -18,6 +22,8 @@
+ otf-cjmb-v HiraMinPro-W6-Identity-V
+ hminb-h HiraMinPro-W6-H
+ hminb-v HiraMinPro-W6-V
++uphminb-h HiraMinPro-W6-UniJIS-UTF16-H
++uphminb-v HiraMinPro-W6-UniJIS-UTF16-V
+
+ otf-cjgb-h HiraKakuPro-W6-Identity-H
+ otf-cjgb-v HiraKakuPro-W6-Identity-V
+@@ -25,9 +31,13 @@
+ otf-ujgb-v HiraKakuPro-W6-UniJIS-UTF16-V
+ hgothb-h HiraKakuPro-W6-H
+ hgothb-v HiraKakuPro-W6-V
++uphgothb-h HiraKakuPro-W6-UniJIS-UTF16-H
++uphgothb-v HiraKakuPro-W6-UniJIS-UTF16-V
+
+ hgotheb-h HiraKakuStd-W8-H
+ hgotheb-v HiraKakuStd-W8-V
++uphgotheb-h HiraKakuStd-W8-UniJIS-UTF16-H
++uphgotheb-v HiraKakuStd-W8-UniJIS-UTF16-V
+
+ otf-ujmgr-h HiraMaruPro-W4-UniJIS-UTF16-H
+ otf-ujmgr-v HiraMaruPro-W4-UniJIS-UTF16-V
+@@ -35,6 +45,8 @@
+ otf-cjmgr-v HiraMaruPro-W4-Identity-V
+ hmgothr-h HiraMaruPro-W4-H
+ hmgothr-v HiraMaruPro-W4-V
++uphmgothr-h HiraMaruPro-W4-UniJIS-UTF16-H
++uphmgothr-v HiraMaruPro-W4-UniJIS-UTF16-V
+
+ otf-ujml-h HiraMinPro-W2-UniJIS-UTF16-H
+ otf-ujml-v HiraMinPro-W2-UniJIS-UTF16-V
+@@ -42,6 +54,8 @@
+ otf-cjml-v HiraMinPro-W2-Identity-V
+ hminl-h HiraMinPro-W2-H
+ hminl-v HiraMinPro-W2-V
++uphminl-h HiraMinPro-W2-UniJIS-UTF16-H
++uphminl-v HiraMinPro-W2-UniJIS-UTF16-V
+
+ hiramin-w3-h HiraMinPro-W3-Identity-H
+ hiramin-w6-h HiraMinPro-W6-Identity-H
+diff -urN otfbeta.orig/fontmap/hiraginox.map(for dvipdfmx) otfbeta/fontmap/hiraginox.map(for dvipdfmx)
+--- otfbeta.orig/fontmap/hiraginox.map(for dvipdfmx) 2010-03-27 09:39:08 +0900
++++ otfbeta/fontmap/hiraginox.map(for dvipdfmx) 2012-01-01 16:47:01 +0900
+@@ -4,6 +4,8 @@
+ otf-cjmr-v Identity-V HiraMinPro-W3
+ hminr-h H HiraMinPro-W3
+ hminr-v V HiraMinPro-W3
++uphminr-h UniJIS-UTF16-H HiraMinPro-W3
++uphminr-v UniJIS-UTF16-V HiraMinPro-W3
+
+ otf-ujgr-h UniJIS-UTF16-H HiraKakuPro-W3
+ otf-ujgr-v UniJIS-UTF16-V HiraKakuPro-W3
+@@ -11,6 +13,8 @@
+ otf-cjgr-v Identity-V HiraKakuPro-W3
+ hgothr-h H HiraKakuPro-W3
+ hgothr-v V HiraKakuPro-W3
++uphgothr-h UniJIS-UTF16-H HiraKakuPro-W3
++uphgothr-v UniJIS-UTF16-V HiraKakuPro-W3
+
+ otf-ujmb-h UniJIS-UTF16-H HiraMinPro-W6
+ otf-ujmb-v UniJIS-UTF16-V HiraMinPro-W6
+@@ -18,6 +22,8 @@
+ otf-cjmb-v Identity-V HiraMinPro-W6
+ hminb-h H HiraMinPro-W6
+ hminb-v V HiraMinPro-W6
++uphminb-h UniJIS-UTF16-H HiraMinPro-W6
++uphminb-v UniJIS-UTF16-V HiraMinPro-W6
+
+ otf-ujgb-h UniJIS-UTF16-H HiraKakuPro-W6
+ otf-ujgb-v UniJIS-UTF16-V HiraKakuPro-W6
+@@ -25,9 +31,13 @@
+ otf-cjgb-v Identity-V HiraKakuPro-W6
+ hgothb-h H HiraKakuPro-W6
+ hgothb-v V HiraKakuPro-W6
++uphgothb-h UniJIS-UTF16-H HiraKakuPro-W6
++uphgothb-v UniJIS-UTF16-V HiraKakuPro-W6
+
+ hgotheb-h H HiraKakuStd-W8
+ hgotheb-v V HiraKakuStd-W8
++uphgotheb-h UniJIS-UTF16-H HiraKakuStd-W8
++uphgotheb-v UniJIS-UTF16-V HiraKakuStd-W8
+
+ otf-ujmgr-h UniJIS-UTF16-H HiraMaruPro-W4
+ otf-ujmgr-v UniJIS-UTF16-V HiraMaruPro-W4
+@@ -35,6 +45,8 @@
+ otf-cjmgr-v Identity-V HiraMaruPro-W4
+ hmgothr-h H HiraMaruPro-W4
+ hmgothr-v V HiraMaruPro-W4
++uphmgothr-h UniJIS-UTF16-H HiraMaruPro-W4
++uphmgothr-v UniJIS-UTF16-V HiraMaruPro-W4
+
+ otf-ujml-h UniJIS-UTF16-H HiraMinPro-W2
+ otf-ujml-v UniJIS-UTF16-V HiraMinPro-W2
+@@ -42,6 +54,8 @@
+ otf-cjml-v Identity-V HiraMinPro-W2
+ hminl-h H HiraMinPro-W2
+ hminl-v V HiraMinPro-W2
++uphminl-h UniJIS-UTF16-H HiraMinPro-W2
++uphminl-v UniJIS-UTF16-V HiraMinPro-W2
+
+ hiramin-w3-h Identity-H HiraMinPro-W3
+ hiramin-w6-h Identity-H HiraMinPro-W6
+diff -urN otfbeta.orig/fontmap/kozuka.map otfbeta/fontmap/kozuka.map
+--- otfbeta.orig/fontmap/kozuka.map 2004-12-23 23:56:18 +0900
++++ otfbeta/fontmap/kozuka.map 2012-01-01 16:52:24 +0900
+@@ -4,6 +4,8 @@
+ otf-cjmr-v KozMinPro-Regular-Acro-Identity-V
+ hminr-h KozMinPro-Regular-Acro-H
+ hminr-v KozMinPro-Regular-Acro-V
++uphminr-h KozMinPro-Regular-Acro-UniJIS-UTF16-H
++uphminr-v KozMinPro-Regular-Acro-UniJIS-UTF16-V
+
+ otf-ujgr-h KozGoStd-Regular-UniJIS-UTF16-H
+ otf-ujgr-v KozGoStd-Regular-UniJIS-UTF16-V
+@@ -11,6 +13,8 @@
+ otf-cjgr-v KozGoStd-Regular-Identity-V
+ hgothr-h KozGoStd-Regular-H
+ hgothr-v KozGoStd-Regular-V
++uphgothr-h KozGoStd-Regular-UniJIS-UTF16-H
++uphgothr-v KozGoStd-Regular-UniJIS-UTF16-V
+
+ otf-ujmb-h KozMinStd-Bold-UniJIS-UTF16-H
+ otf-ujmb-v KozMinStd-Bold-UniJIS-UTF16-V
+@@ -18,6 +22,8 @@
+ otf-cjmb-v KozMinStd-Bold-Identity-V
+ hminb-h KozMinStd-Bold-H
+ hminb-v KozMinStd-Bold-V
++uphminb-h KozMinStd-Bold-UniJIS-UTF16-H
++uphminb-v KozMinStd-Bold-UniJIS-UTF16-V
+
+ otf-cjgb-h KozGoStd-Bold-Identity-H
+ otf-cjgb-v KozGoStd-Bold-Identity-V
+@@ -25,6 +31,8 @@
+ otf-ujgb-v KozGoStd-Bold-UniJIS-UTF16-V
+ hgothb-h KozGoStd-Bold-H
+ hgothb-v KozGoStd-Bold-V
++uphgothb-h KozGoStd-Bold-UniJIS-UTF16-H
++uphgothb-v KozGoStd-Bold-UniJIS-UTF16-V
+
+ otf-ujmgr-h KozGoStd-Heavy-UniJIS-UTF16-H
+ otf-ujmgr-v KozGoStd-Heavy-UniJIS-UTF16-V
+@@ -32,6 +40,8 @@
+ otf-cjmgr-v KozGoStd-Heavy-Identity-V
+ hmgothr-h KozGoStd-Heavy-H
+ hmgothr-v KozGoStd-Heavy-V
++uphmgothr-h KozGoStd-Heavy-UniJIS-UTF16-H
++uphmgothr-v KozGoStd-Heavy-UniJIS-UTF16-V
+
+ %
+ %for Adobe Reader 7
+diff -urN otfbeta.orig/fontmap/kozukax.map otfbeta/fontmap/kozukax.map
+--- otfbeta.orig/fontmap/kozukax.map 2004-12-23 23:54:40 +0900
++++ otfbeta/fontmap/kozukax.map 2012-01-01 16:52:55 +0900
+@@ -4,6 +4,8 @@
+ otf-cjmr-v Identity-V KozMinPro-Regular-Acro.otf
+ hminr-h H KozMinPro-Regular-Acro.otf
+ hminr-v V KozMinPro-Regular-Acro.otf
++uphminr-h UniJIS-UTF16-H KozMinPro-Regular-Acro.otf
++uphminr-v UniJIS-UTF16-V KozMinPro-Regular-Acro.otf
+
+ otf-ujgr-h UniJIS-UTF16-H KozGoStd-Regular.otf
+ otf-ujgr-v UniJIS-UTF16-V KozGoStd-Regular.otf
+@@ -11,6 +13,8 @@
+ otf-cjgr-v Identity-V KozGoStd-Regular.otf
+ hgothr-h H KozGoStd-Regular.otf
+ hgothr-v V KozGoStd-Regular.otf
++uphgothr-h UniJIS-UTF16-H KozGoStd-Regular.otf
++uphgothr-v UniJIS-UTF16-V KozGoStd-Regular.otf
+
+ otf-ujmb-h UniJIS-UTF16-H KozMinStd-Bold.otf
+ otf-ujmb-v UniJIS-UTF16-V KozMinStd-Bold.otf
+@@ -18,6 +22,8 @@
+ otf-cjmb-v Identity-V KozMinStd-Bold.otf
+ hminb-h H KozMinStd-Bold.otf
+ hminb-v V KozMinStd-Bold.otf
++uphminb-h UniJIS-UTF16-H KozMinStd-Bold.otf
++uphminb-v UniJIS-UTF16-V KozMinStd-Bold.otf
+
+ otf-cjgb-h Identity-H KozGoStd-Bold.otf
+ otf-cjgb-v Identity-V KozGoStd-Bold.otf
+@@ -25,6 +31,8 @@
+ otf-ujgb-v UniJIS-UTF16-V KozGoStd-Bold.otf
+ hgothb-h H KozGoStd-Bold.otf
+ hgothb-v V KozGoStd-Bold.otf
++uphgothb-h UniJIS-UTF16-H KozGoStd-Bold.otf
++uphgothb-v UniJIS-UTF16-V KozGoStd-Bold.otf
+
+ otf-ujmgr-h UniJIS-UTF16-H KozGoStd-Heavy.otf
+ otf-ujmgr-v UniJIS-UTF16-V KozGoStd-Heavy.otf
+@@ -32,6 +40,8 @@
+ otf-cjmgr-v Identity-V KozGoStd-Heavy.otf
+ hmgothr-h H KozGoStd-Heavy.otf
+ hmgothr-v V KozGoStd-Heavy.otf
++uphmgothr-h UniJIS-UTF16-H KozGoStd-Heavy.otf
++uphmgothr-v UniJIS-UTF16-V KozGoStd-Heavy.otf
+
+
+ %
+diff -urN otfbeta.orig/fontmap/morisawa.map(for udvips) otfbeta/fontmap/morisawa.map(for udvips)
+--- otfbeta.orig/fontmap/morisawa.map(for udvips) 2003-12-16 23:43:02 +0900
++++ otfbeta/fontmap/morisawa.map(for udvips) 2012-01-01 16:47:01 +0900
+@@ -4,6 +4,8 @@
+ otf-cjmr-v RyuminPro-Light-Identity-V
+ hminr-h RyuminPro-Light-H
+ hminr-v RyuminPro-Light-V
++uphminr-h RyuminPro-Light-UniJIS-UTF16-H
++uphminr-v RyuminPro-Light-UniJIS-UTF16-V
+
+ otf-ujgr-h GothicBBBPro-Medium-UniJIS-UTF16-H
+ otf-ujgr-v GothicBBBPro-Medium-UniJIS-UTF16-V
+@@ -11,6 +13,8 @@
+ otf-cjgr-v GothicBBBPro-Medium-Identity-V
+ hgothr-h GothicBBBPro-Medium-H
+ hgothr-v GothicBBBPro-Medium-V
++uphgothr-h GothicBBBPro-Medium-UniJIS-UTF16-H
++uphgothr-v GothicBBBPro-Medium-UniJIS-UTF16-V
+
+ otf-ujmb-h FutoMinA101Pro-Bold-UniJIS-UTF16-H
+ otf-ujmb-v FutoMinA101Pro-Bold-UniJIS-UTF16-V
+@@ -18,6 +22,8 @@
+ otf-cjmb-v FutoMinA101Pro-Bold-Identity-V
+ hminb-h FutoMinA101Pro-Bold-H
+ hminb-v FutoMinA101Pro-Bold-V
++uphminb-h FutoMinA101Pro-Bold-UniJIS-UTF16-H
++uphminb-v FutoMinA101Pro-Bold-UniJIS-UTF16-V
+
+ otf-cjgb-h FutoGoB101Pro-Bold-Identity-H
+ otf-cjgb-v FutoGoB101Pro-Bold-Identity-V
+@@ -25,6 +31,8 @@
+ otf-ujgb-v FutoGoB101Pro-Bold-UniJIS-UTF16-V
+ hgothb-h FutoGoB101Pro-Bold-H
+ hgothb-v FutoGoB101Pro-Bold-V
++uphgothb-h FutoGoB101Pro-Bold-UniJIS-UTF16-H
++uphgothb-v FutoGoB101Pro-Bold-UniJIS-UTF16-V
+
+ otf-ujmgr-h Jun101Pro-Light-UniJIS-UTF16-H
+ otf-ujmgr-v Jun101Pro-Light-UniJIS-UTF16-V
+@@ -32,3 +40,5 @@
+ otf-cjmgr-v Jun101Pro-Light-Identity-V
+ hmgothr-h Jun101Pro-Light-H
+ hmgothr-v Jun101Pro-Light-V
++uphmgothr-h Jun101Pro-Light-UniJIS-UTF16-H
++uphmgothr-v Jun101Pro-Light-UniJIS-UTF16-V
+diff -urN otfbeta.orig/fontmap/morisawax.map(for dvipdfmx) otfbeta/fontmap/morisawax.map(for dvipdfmx)
+--- otfbeta.orig/fontmap/morisawax.map(for dvipdfmx) 2004-08-17 21:35:30 +0900
++++ otfbeta/fontmap/morisawax.map(for dvipdfmx) 2012-01-01 16:47:01 +0900
+@@ -4,6 +4,8 @@
+ otf-cjmr-v Identity-V A-OTF-RyuminPro-Light.otf
+ hminr-h H A-OTF-RyuminPro-Light.otf
+ hminr-v V A-OTF-RyuminPro-Light.otf
++uphminr-h UniJIS-UTF16-H A-OTF-RyuminPro-Light.otf
++uphminr-v UniJIS-UTF16-V A-OTF-RyuminPro-Light.otf
+
+ otf-ujgr-h UniJIS-UTF16-H A-OTF-GothicBBBPro-Medium.otf
+ otf-ujgr-v UniJIS-UTF16-V A-OTF-GothicBBBPro-Medium.otf
+@@ -11,6 +13,8 @@
+ otf-cjgr-v Identity-V A-OTF-GothicBBBPro-Medium.otf
+ hgothr-h H A-OTF-GothicBBBPro-Medium.otf
+ hgothr-v V A-OTF-GothicBBBPro-Medium.otf
++uphgothr-h UniJIS-UTF16-H A-OTF-GothicBBBPro-Medium.otf
++uphgothr-v UniJIS-UTF16-V A-OTF-GothicBBBPro-Medium.otf
+
+ otf-ujmb-h UniJIS-UTF16-H A-OTF-FutoMinA101Pro-Bold.otf
+ otf-ujmb-v UniJIS-UTF16-V A-OTF-FutoMinA101Pro-Bold.otf
+@@ -18,6 +22,8 @@
+ otf-cjmb-v Identity-V A-OTF-FutoMinA101Pro-Bold.otf
+ hminb-h H A-OTF-FutoMinA101Pro-Bold.otf
+ hminb-v V A-OTF-FutoMinA101Pro-Bold.otf
++uphminb-h UniJIS-UTF16-H A-OTF-FutoMinA101Pro-Bold.otf
++uphminb-v UniJIS-UTF16-V A-OTF-FutoMinA101Pro-Bold.otf
+
+ otf-ujgb-h UniJIS-UTF16-H A-OTF-FutoGoB101Pro-Bold.otf
+ otf-ujgb-v UniJIS-UTF16-V A-OTF-FutoGoB101Pro-Bold.otf
+@@ -25,6 +31,8 @@
+ otf-cjgb-v Identity-V A-OTF-FutoGoB101Pro-Bold.otf
+ hgothb-h H A-OTF-FutoGoB101Pro-Bold.otf
+ hgothb-v V A-OTF-FutoGoB101Pro-Bold.otf
++uphgothb-h UniJIS-UTF16-H A-OTF-FutoGoB101Pro-Bold.otf
++uphgothb-v UniJIS-UTF16-V A-OTF-FutoGoB101Pro-Bold.otf
+
+ otf-ujmgr-h UniJIS-UTF16-H A-OTF-Jun101Pro-Light.otf
+ otf-ujmgr-v UniJIS-UTF16-V A-OTF-Jun101Pro-Light.otf
+@@ -32,3 +40,5 @@
+ otf-cjmgr-v Identity-V A-OTF-Jun101Pro-Light.otf
+ hmgothr-h H A-OTF-Jun101Pro-Light.otf
+ hmgothr-v V A-OTF-Jun101Pro-Light.otf
++uphmgothr-h UniJIS-UTF16-H A-OTF-Jun101Pro-Light.otf
++uphmgothr-v UniJIS-UTF16-V A-OTF-Jun101Pro-Light.otf
+diff -urN otfbeta.orig/fontmap/vfontmap.txt otfbeta/fontmap/vfontmap.txt
+--- otfbeta.orig/fontmap/vfontmap.txt 2003-11-10 19:23:12 +0900
++++ otfbeta/fontmap/vfontmap.txt 2012-01-01 16:47:01 +0900
+@@ -20,6 +20,8 @@
+ otf-cjmr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf adobejapan
+ hminr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf
+ hminr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf
++uphminr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf unicode
++uphminr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W3.otf unicode
+
+ otf-ujgr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W3.otf unicode
+ otf-ujgr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W3.otf unicode
+@@ -27,6 +29,8 @@
+ otf-cjgr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W3.otf adobejapan
+ hgothr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W3.otf
+ hgothr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W3.otf
++uphgothr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W3.otf unicode
++uphgothr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W3.otf unicode
+
+ otf-ujmb-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W6.otf unicode
+ otf-ujmb-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W6.otf unicode
+@@ -34,6 +38,8 @@
+ otf-cjmb-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W6.otf adobejapan
+ hminb-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W6.otf
+ hminb-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W6.otf
++uphminb-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W6.otf unicode
++uphminb-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMinPro-W6.otf unicode
+
+ otf-ujgb-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf unicode
+ otf-ujgb-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf unicode
+@@ -41,6 +47,8 @@
+ otf-cjgb-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf adobejapan
+ hgothb-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf
+ hgothb-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf
++uphgothb-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf unicode
++uphgothb-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraKakuPro-W6.otf unicode
+
+ otf-ujmgr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf unicode
+ otf-ujmgr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf unicode
+@@ -48,6 +56,8 @@
+ otf-cjmgr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf adobejapan
+ hmgothr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf
+ hmgothr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf
++uphmgothr-h /usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf unicode
++uphmgothr-v /usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf unicode
+
+ otf-ukmr-h /usr/local/share/texmf/dvipdfm/CIDFont/HYSMyeongJoStd-Medium-Acro.otf unicode
+ otf-ukmr-v /usr/local/share/texmf/dvipdfm/CIDFont/HYSMyeongJoStd-Medium-Acro.otf unicode
diff --git a/Master/texmf-dist/source/fonts/japanese-otf-uptex/test/uplatex/Makefile b/Master/texmf-dist/source/fonts/japanese-otf-uptex/test/uplatex/Makefile
new file mode 100644
index 00000000000..00a8574b155
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/japanese-otf-uptex/test/uplatex/Makefile
@@ -0,0 +1,32 @@
+UPTEX = uptex
+PTEX = ptex
+UPLATEX = uplatex
+PLATEX = platex
+DVIPS = dvips
+DVIPDFMX = dvipdfmx
+PDVITYPE = pdvitype
+
+all: uplatex platex
+
+uplatex:
+ for opt in default deluxe expert bold noreplace; do \
+ $(UPLATEX) "\def\option{$$opt}\def\class{ujarticle}\input" uotftest-utf8.tex ; \
+ mv uotftest-utf8.dvi uotftest-$$opt-h-uplatex.dvi ; \
+ $(DVIPDFMX) uotftest-$$opt-h-uplatex.dvi ; \
+ $(UPLATEX) "\def\option{$$opt}\def\class{utarticle}\input" uotftest-utf8.tex ; \
+ mv uotftest-utf8.dvi uotftest-$$opt-v-uplatex.dvi ; \
+ $(DVIPDFMX) uotftest-$$opt-v-uplatex.dvi ; \
+ done
+
+platex:
+ for opt in default deluxe expert bold noreplace; do \
+ $(PLATEX) "\def\option{$$opt}\def\class{jarticle}\input" uotftest.tex ; \
+ mv uotftest.dvi uotftest-$$opt-h-platex.dvi ; \
+ $(DVIPDFMX) uotftest-$$opt-h-platex.dvi ; \
+ $(PLATEX) "\def\option{$$opt}\def\class{tarticle}\input" uotftest.tex ; \
+ mv uotftest.dvi uotftest-$$opt-v-platex.dvi ; \
+ $(DVIPDFMX) uotftest-$$opt-v-platex.dvi ; \
+ done
+
+clean:
+ rm *.aux *.log *.dvi *.pdf
diff --git a/Master/texmf-dist/source/fonts/japanese-otf-uptex/test/uplatex/uotftest-utf8.tex b/Master/texmf-dist/source/fonts/japanese-otf-uptex/test/uplatex/uotftest-utf8.tex
new file mode 100644
index 00000000000..6a10f44c9e4
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/japanese-otf-uptex/test/uplatex/uotftest-utf8.tex
@@ -0,0 +1,258 @@
+\makeatletter
+
+\def\@opt@{multi}
+\def\@default{default}
+\def\@jarticle{jarticle}
+\def\@tarticle{tarticle}
+
+\ifx\option\@undefined
+ \def\option{default}
+\fi
+\ifx\option\@default
+\else
+ \edef\@opt@{\option,\@opt@}
+\fi
+
+\ifx\class\@undefined
+ \def\class{jarticle}
+\fi
+\ifx\class\@jarticle
+\else
+ \ifx\class\@tarticle
+ \else
+ \edef\@opt@{uplatex,\@opt@}
+ \fi
+\fi
+\newif\ifuptexmode\uptexmodefalse
+\ifnum\jis"2121="3000\uptexmodetrue\fi
+
+\documentclass[a4paper,titlepage, draft]{\class}
+%\documentclass[a4paper,titlepage, draft,landscape]{\class}
+
+\usepackage[\@opt@]{otf}
+
+%
+% furikana.sty 域粋昭
+\newread\@istheresuchafile
+\openin\@istheresuchafile furikana.sty
+\ifeof\@istheresuchafile\relax
+\else\closein\@istheresuchafile\relax
+\usepackage{furikana}% found
+\fi
+
+\makeatother
+
+\usepackage{redeffont}
+
+
+\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
+\ajCIDVarDef{}{12746}
+\ajCIDVarDef{蕭}{8705}
+\ajUTFVarDef{藉}{9DD7}
+\pagestyle{empty}
+\makeatletter
+\ifx\rubyfamily\@undefined\let\rubyfamily=\relax\fi
+\ifx\mgfamily\@undefined\let\mgfamily=\relax\fi
+\makeatother
+\begin{document}
+\section{荀冴}
+
+刻\texttt{\class}\\
+激с鰹\texttt{\option}
+
+\vspace{\baselineskip}
+\begin{tabular}{l||ccccc}
+潟 & 篁 & 羲√ & UTF & CID & \\
+\hline
+mc/m & 蚊 & 羲√ & \UTF{9DD7} & \CID{8705} & {\rubyfamily }\\
+mc/bx & {\bfseries 蚊} & {\bfseries 羲√} & {\bfseries\UTF{9DD7}} & {\bfseries\CID{8705}} & {\bfseries\rubyfamily }\\
+gt/m & {\gtfamily 蚊} & {\gtfamily 羲√} & {\gtfamily\UTF{9DD7}} & {\gtfamily\CID{8705}} & {\gtfamily\rubyfamily }\\
+gt/bx & {\gtfamily\bfseries 蚊} & {\gtfamily\bfseries 羲√} & {\gtfamily\bfseries\UTF{9DD7}} & {\gtfamily\bfseries\CID{8705}} & {\gtfamily\bfseries\rubyfamily }\\
+mg/m & {\mgfamily 蚊} & {\mgfamily 羲√} & {\mgfamily\UTF{9DD7}} & {\mgfamily\CID{8705}} & {\mgfamily\rubyfamily }\\
+\end{tabular}
+\vspace{\baselineskip}
+
+ユ鐚\UTF{9aa8}膂>絖鐚\UTFC{9aa8}膵蕭絖鐚\UTFT{9aa8}藪鐚\UTFK{9aa8}
+
+ユ鐚\UTF{6d77}膂>絖鐚\UTFC{6d77}膵蕭絖鐚\UTFT{6d77}藪鐚\UTFK{6d77}
+
+% with furikana.sty
+\makeatletter
+\ifx\kana\@undefined
+\else
+\kana{羲√}{}{\bfseries \kana{羲√}{}}%
+{\gtfamily\kana{羲√}{}\bfseries \kana{羲√}{}}
+{\mgfamily\kana{羲√}{}}
+
+\kana{\UTF{9DD7}}{}\kana{藉}{}
+
+\Kana[3]{\UTFK{c548},\UTFK{b155},\UTFK{d558},\UTFK{c138},\UTFK{c694}}{≪,с,,,}
+\fi
+\makeatother
+
+
+\clearpage
+[mc/m]
+
+<≪cゃャс
+違宴蚊潟眼泣吟激吾鴻冴祉若純障帥純障
+\ifuptexmode
+
+\fi
+
+<≪cゃャс違宴蚊潟眼泣吟激吾鴻冴祉若純障帥
+<≪cゃャс違宴蚊潟眼泣
+\ifuptexmode
+激吾鴻冴違宴蚊潟眼泣吟激吾鴻冴祉若純障
+\fi
+
+{\bfseries%
+[mc/bx]
+
+<≪cゃャс
+違宴蚊潟眼泣吟激吾鴻冴祉若純障帥純障
+\ifuptexmode
+
+\fi
+
+<≪cゃャс違宴蚊潟眼泣吟激吾鴻冴祉若純障帥
+<≪cゃャс違宴蚊潟眼泣
+\ifuptexmode
+激吾鴻冴違宴蚊潟眼泣吟激吾鴻冴祉若純障
+\fi
+}
+
+{\gtfamily
+[gt/m]
+
+<≪cゃャс
+違宴蚊潟眼泣吟激吾鴻冴祉若純障帥純障
+\ifuptexmode
+
+\fi
+
+<≪cゃャс違宴蚊潟眼泣吟激吾鴻冴祉若純障帥
+<≪cゃャс違宴蚊潟眼泣
+\ifuptexmode
+激吾鴻冴違宴蚊潟眼泣吟激吾鴻冴祉若純障
+\fi
+
+{\bfseries%
+[gt/bx]
+
+<≪cゃャс
+違宴蚊潟眼泣吟激吾鴻冴祉若純障帥純障
+\ifuptexmode
+
+\fi
+
+<≪cゃャс違宴蚊潟眼泣吟激吾鴻冴祉若純障帥
+<≪cゃャс違宴蚊潟眼泣
+\ifuptexmode
+激吾鴻冴違宴蚊潟眼泣吟激吾鴻冴祉若純障
+\fi
+}}
+
+{\mgfamily
+[mg/m]
+
+<≪cゃャс
+違宴蚊潟眼泣吟激吾鴻冴祉若純障帥純障
+\ifuptexmode
+
+\fi
+
+<≪cゃャс違宴蚊潟眼泣吟激吾鴻冴祉若純障帥
+<≪cゃャс違宴蚊潟眼泣
+\ifuptexmode
+激吾鴻冴違宴蚊潟眼泣吟激吾鴻冴祉若純障
+\fi
+}
+
+{\rubyfamily%
+[ruby/m]
+
+<≪cゃャс
+違宴蚊潟眼泣吟激吾鴻冴祉若純障帥純障
+\ifuptexmode
+
+
+\fbox{\hbox{\tate\Huge }}
+
+\fbox{\hbox{\yoko\Huge }}
+
+\fi
+
+<≪cゃャс違宴蚊潟眼泣吟激吾鴻冴祉若純障帥
+<≪cゃャс違宴蚊潟眼泣
+\ifuptexmode
+激吾鴻冴違宴蚊潟眼泣吟激吾鴻冴祉若純障
+\fi
+
+{\bfseries%
+[ruby/bx]
+
+<≪cゃャс
+違宴蚊潟眼泣吟激吾鴻冴祉若純障帥純障
+\ifuptexmode
+
+\fi
+
+<≪cゃャс違宴蚊潟眼泣吟激吾鴻冴祉若純障帥
+<≪cゃャс違宴蚊潟眼泣
+\ifuptexmode
+激吾鴻冴違宴蚊潟眼泣吟激吾鴻冴祉若純障
+\fi
+}}
+
+{\gtfamily\rubyfamily%
+[rubyg/m]
+
+<≪cゃャс
+違宴蚊潟眼泣吟激吾鴻冴祉若純障帥純障
+\ifuptexmode
+
+\fi
+
+<≪cゃャс違宴蚊潟眼泣吟激吾鴻冴祉若純障帥
+<≪cゃャс違宴蚊潟眼泣
+\ifuptexmode
+激吾鴻冴違宴蚊潟眼泣吟激吾鴻冴祉若純障
+\fi
+
+{\gtfamily\rubyfamily\bfseries%
+[rubyg/bx]
+
+\fbox{\hbox{\tate\Huge }}
+
+\fbox{\hbox{\yoko\Huge }}
+
+<≪cゃャс
+違宴蚊潟眼泣吟激吾鴻冴祉若純障帥純障
+\ifuptexmode
+
+\fi
+
+<≪cゃャс違宴蚊潟眼泣吟激吾鴻冴祉若純障帥
+<≪cゃャс違宴蚊潟眼泣
+\ifuptexmode
+激吾鴻冴違宴蚊潟眼泣吟激吾鴻冴祉若純障
+\fi
+}}
+
+{\mgfamily\rubyfamily%
+[rubymg/m]
+
+<≪cゃャс
+違宴蚊潟眼泣吟激吾鴻冴祉若純障帥純障
+\ifuptexmode
+
+\fi
+
+<≪cゃャс違宴蚊潟眼泣吟激吾鴻冴祉若純障帥
+<≪cゃャс違宴蚊潟眼泣
+\ifuptexmode
+激吾鴻冴違宴蚊潟眼泣吟激吾鴻冴祉若純障
+\fi
+}
+\end{document}
diff --git a/Master/texmf-dist/source/fonts/japanese-otf-uptex/test/uplatex/uotftest.tex b/Master/texmf-dist/source/fonts/japanese-otf-uptex/test/uplatex/uotftest.tex
new file mode 100644
index 00000000000..afe549dd0e1
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/japanese-otf-uptex/test/uplatex/uotftest.tex
@@ -0,0 +1,191 @@
+\makeatletter
+
+\def\@opt@{multi}
+\def\@default{default}
+\def\@jarticle{jarticle}
+\def\@tarticle{tarticle}
+
+\ifx\option\@undefined
+ \def\option{default}
+\fi
+\ifx\option\@default
+\else
+ \edef\@opt@{\option,\@opt@}
+\fi
+
+\ifx\class\@undefined
+ \def\class{jarticle}
+\fi
+\ifx\class\@jarticle
+\else
+ \ifx\class\@tarticle
+ \else
+ \edef\@opt@{uplatex,\@opt@}
+ \fi
+\fi
+
+\documentclass[a4paper,titlepage, draft]{\class}
+%\documentclass[a4paper,titlepage, draft,landscape]{\class}
+
+\usepackage[\@opt@]{otf}
+
+%
+% furikana.sty $B$,$"$l$PFI$_9~$`(B
+\newread\@istheresuchafile
+\openin\@istheresuchafile furikana.sty
+\ifeof\@istheresuchafile\relax
+\else\closein\@istheresuchafile\relax
+\usepackage{furikana}% found
+\fi
+
+\makeatother
+
+\usepackage{redeffont}
+
+
+\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
+\ajCIDVarDef{$B$j(B}{12746}
+\ajCIDVarDef{$B9b(B}{8705}
+\ajUTFVarDef{$B2*(B}{9DD7}
+\pagestyle{empty}
+\makeatletter
+\ifx\rubyfamily\@undefined\let\rubyfamily=\relax\fi
+\ifx\mgfamily\@undefined\let\mgfamily=\relax\fi
+\makeatother
+\begin{document}
+\section{$B8+=P$7(B}
+
+$B%/%i%9!'(B\texttt{\class}\\
+$B%*%W%7%g%s!'(B\texttt{\option}
+
+\vspace{\baselineskip}
+\begin{tabular}{l||ccccc}
+$B%U%)%s%H(B & $B2>L>(B & $B4A;z(B & UTF & CID & $B%k%S(B\\
+\hline
+mc/m & $B$R$i$+$J(B & $B4A;z(B & \UTF{9DD7} & \CID{8705} & {\rubyfamily $B?6$j$+$J(B}\\
+mc/bx & {\bfseries $B$R$i$+$J(B} & {\bfseries $B4A;z(B} & {\bfseries\UTF{9DD7}} & {\bfseries\CID{8705}} & {\bfseries\rubyfamily $B?6$j$+$J(B}\\
+gt/m & {\gtfamily $B$R$i$+$J(B} & {\gtfamily $B4A;z(B} & {\gtfamily\UTF{9DD7}} & {\gtfamily\CID{8705}} & {\gtfamily\rubyfamily $B?6$j$+$J(B}\\
+gt/bx & {\gtfamily\bfseries $B$R$i$+$J(B} & {\gtfamily\bfseries $B4A;z(B} & {\gtfamily\bfseries\UTF{9DD7}} & {\gtfamily\bfseries\CID{8705}} & {\gtfamily\bfseries\rubyfamily $B?6$j$+$J(B}\\
+mg/m & {\mgfamily $B$R$i$+$J(B} & {\mgfamily $B4A;z(B} & {\mgfamily\UTF{9DD7}} & {\mgfamily\CID{8705}} & {\mgfamily\rubyfamily $B?6$j$+$J(B}\\
+\end{tabular}
+\vspace{\baselineskip}
+
+$BF|K\!'(B\UTF{9aa8}$B!!4JBN;z!'(B\UTFC{9aa8}$B!!HKqs;z!'(B\UTFT{9aa8}$B!!D+A/!'(B\UTFK{9aa8}
+
+$BF|K\!'(B\UTF{6d77}$B!!4JBN;z!'(B\UTFC{6d77}$B!!HKqs;z!'(B\UTFT{6d77}$B!!D+A/!'(B\UTFK{6d77}
+
+% with furikana.sty
+\makeatletter
+\ifx\kana\@undefined
+\else
+\kana{$B4A;z(B}{$B?6$j$+$J(B}{\bfseries \kana{$B4A;z(B}{$B?6$j$+$J(B}}%
+{\gtfamily\kana{$B4A;z(B}{$B?6$j$+$J(B}\bfseries \kana{$B4A;z(B}{$B?6$j$+$J(B}}
+{\mgfamily\kana{$B4A;z(B}{$B?6$j$+$J(B}}
+
+\kana{\UTF{9DD7}}{$B$+$J(B}\kana{$B2*(B}{$B$+$J(B}
+
+\Kana[3]{\UTFK{c548},\UTFK{b155},\UTFK{d558},\UTFK{c138},\UTFK{c694}}{$B%"%s(B,$B%K%g%s(B,$B%O(B,$B%;(B,$B%h(B}
+\fi
+\makeatother
+
+
+\clearpage
+[mc/m]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+
+{\bfseries%
+[mc/bx]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+}
+
+{\gtfamily
+[gt/m]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+
+{\bfseries%
+[gt/bx]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+}}
+
+{\mgfamily
+[mg/m]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+}
+
+{\rubyfamily%
+[ruby/m]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+
+{\bfseries%
+[ruby/bx]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+}}
+
+{\gtfamily\rubyfamily%
+[rubyg/m]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+
+{\gtfamily\rubyfamily\bfseries%
+[rubyg/bx]
+
+\fbox{\hbox{\tate\Huge $B$!(B}}
+
+\fbox{\hbox{\yoko\Huge $B$!(B}}
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+}}
+
+{\mgfamily\rubyfamily%
+[rubymg/m]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+}
+\end{document}
diff --git a/Master/texmf-dist/source/fonts/japanese-otf-uptex/umakeotf b/Master/texmf-dist/source/fonts/japanese-otf-uptex/umakeotf
new file mode 100755
index 00000000000..f27adaf5323
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/japanese-otf-uptex/umakeotf
@@ -0,0 +1,91 @@
+#!/bin/sh
+if test ! -d tfm; then
+mkdir tfm
+fi
+echo "making tfm ..."
+#perl script/mktfm.pl
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/upnmlminr-h.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/upnmlminr-v.tfm
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/upnmlgothr-h.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/upnmlgothr-v.tfm
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/upnmlminb-h.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/upnmlminb-v.tfm
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/upnmlgothb-h.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/upnmlgothb-v.tfm
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/upnmlmgothr-h.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/upnmlmgothr-v.tfm
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/upexpminr-h.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/upexpminr-v.tfm
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/upexpgothr-h.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/upexpgothr-v.tfm
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/upexpminb-h.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/upexpminb-v.tfm
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/upexpgothb-h.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/upexpgothb-v.tfm
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/upexpmgothr-h.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/upexpmgothr-v.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/uprubyminr-v.tfm
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/uprubyminr-h.tfm
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/uprubygothr-h.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/uprubygothr-v.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/uprubyminb-v.tfm
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/uprubyminb-h.tfm
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/uprubygothb-h.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/uprubygothb-v.tfm
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/uprubymgothr-h.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/uprubymgothr-v.tfm
+#for extra fonts
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/upnmlgotheb-h.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/upnmlgotheb-v.tfm
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/upnmlminl-h.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/upnmlminl-v.tfm
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/upexpminl-h.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/upexpminl-v.tfm
+uppltotf -kanji=uptex basepl/ubase-v.pl tfm/uprubyminl-v.tfm
+uppltotf -kanji=uptex basepl/ubase-h.pl tfm/uprubyminl-h.tfm
+./umkjvf -ucs -cq -chk upnmlminr-h uphminr-h
+./umkjvf -ucs -cm -cp upnmlminr-v uphminr-v
+./umkjvf -ucs -cq -chk upnmlgothr-h uphgothr-h
+./umkjvf -ucs -cm -cp upnmlgothr-v uphgothr-v
+./umkjvf -ucs -cq -chk upnmlminb-h uphminb-h
+./umkjvf -ucs -cm -cp upnmlminb-v uphminb-v
+./umkjvf -ucs -cq -chk upnmlgothb-h uphgothb-h
+./umkjvf -ucs -cm -cp upnmlgothb-v uphgothb-v
+./umkjvf -ucs -cq -chk upnmlmgothr-h uphmgothr-h
+./umkjvf -ucs -cm -cp upnmlmgothr-v uphmgothr-v
+#extra fonts
+./umkjvf -ucs -cq -chk upnmlgotheb-h uphgotheb-h
+./umkjvf -ucs -cp upnmlgotheb-v uphgotheb-v
+./umkjvf -ucs -cq -chk upnmlminl-h uphminl-h
+./umkjvf -ucs -cm -cp upnmlminl-v uphminl-v
+echo "making alt. kana ..."
+./umkjvf -ucs -cq -chk -expert upexpminr-h uphminr-h cidjminr
+./umkjvf -ucs -cm -cp -expert upexpminr-v uphminr-v cidjminr
+./umkjvf -ucs -cq -chk -expert upexpgothr-h uphgothr-h cidjgothr
+./umkjvf -ucs -cm -cp -expert upexpgothr-v uphgothr-v cidjgothr
+./umkjvf -ucs -cq -chk -expert upexpminb-h uphminb-h cidjminb
+./umkjvf -ucs -cm -cp -expert upexpminb-v uphminb-v cidjminb
+./umkjvf -ucs -cq -chk -expert upexpgothb-h uphgothb-h cidjgothb
+./umkjvf -ucs -cm -cp -expert upexpgothb-v uphgothb-v cidjgothb
+./umkjvf -ucs -cq -chk -expert upexpmgothr-h hmgothr-h cidjmgothr
+./umkjvf -ucs -cm -cp -expert upexpmgothr-v hmgothr-v cidjmgothr
+./umkjvf -ucs -cq -chk -ruby uprubyminr-h uphminr-h cidjminr
+./umkjvf -ucs -cm -cp -ruby uprubyminr-v uphminr-v cidjminr
+./umkjvf -ucs -cq -chk -ruby uprubygothr-h uphgothr-h cidjgothr
+./umkjvf -ucs -cm -cp -ruby uprubygothr-v uphgothr-v cidjgothr
+./umkjvf -ucs -cq -chk -ruby uprubyminb-h uphminb-h cidjminb
+./umkjvf -ucs -cm -cp -ruby uprubyminb-v uphminb-v cidjminb
+./umkjvf -ucs -cq -chk -ruby uprubygothb-h uphgothb-h cidjgothb
+./umkjvf -ucs -cm -cp -ruby uprubygothb-v uphgothb-v cidjgothb
+./umkjvf -ucs -cq -chk -ruby uprubymgothr-h hmgothr-h cidjmgothr
+./umkjvf -ucs -cm -cp -ruby uprubymgothr-v hmgothr-v cidjmgothr
+./umkjvf -ucs -cq -chk -expert upexpminl-h uphminl-h cidjminl
+./umkjvf -ucs -cm -cp -expert upexpminl-v uphminl-v cidjminl
+./umkjvf -ucs -cq -chk -ruby uprubyminl-h uphminl-h cidjminl
+./umkjvf -ucs -cm -cp -ruby uprubyminl-v uphminl-v cidjminl
+echo "finishing ..."
+if test ! -d vf; then
+mkdir vf
+fi
+mv *.vf vf/
+mv *.tfm tfm/
diff --git a/Master/texmf-dist/source/fonts/japanese-otf-uptex/umkjvf b/Master/texmf-dist/source/fonts/japanese-otf-uptex/umkjvf
new file mode 100755
index 00000000000..23354df5ecd
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/japanese-otf-uptex/umkjvf
@@ -0,0 +1,1125 @@
+#!/usr/bin/perl
+###################
+### main part ###
+###################
+#initialize
+&initialize_constant;
+#processing arguments
+&proc_arg;
+#make ovp
+&font_header;
+&write_char;
+#make vf & tfm
+&make_vf;
+&make_tfm;
+
+##########################
+#### dfn of sub rtns ###
+##########################
+sub initialize_constant{
+ $unknown=0;
+ $burasage=0;
+ $jis2004=0;
+ $minute_option=0;
+ $alt_kana_true=0;
+ $ruby_hira_code=0x356F;
+ $ruby_kata_code=0x3751;
+ $exp_hira_code_h=0x6F63;
+ $exp_kata_code_h=0x313D;
+ $exp_hira_code_v=0x325a;
+ $exp_kata_code_v=0x3434;
+ $ruby_font_map=2;
+ $exp_font_map=2;
+ @yoko_tfm_binary=(0x00, 0x0B, 0x00, 0x01, 0x00, 0x1B, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x14, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xEB, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
+ @tate_tfm_binary=(0x00, 0x09, 0x00, 0x01, 0x00, 0x1B, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
+ @minute_code=(0x216C, 0x216C, 0x216D, 0x216D);
+ @shift_minute_code=(0x818C, 0x818C, 0x818D, 0x818D);
+ @cid_minute_code=(0x6E3D, 0x6E3E, 0x6C44, 0x6C45);
+ @cid_hquote_code=(0x3A4E, 0x3A4F, 0x3A50, 0x3A51); # CID: 670 .. 673
+ @cid_vquote_code=(0x314A, 0x3143, 0x3148, 0x3145); # CID: 8282, 8275, 8280, 8277
+ @ruby_odori_h=(0x3559, 0x355a, 0x355b, 0x355c, 0x3933);
+ @ruby_odori_v=(0x3559, 0x355a, 0x355b, 0x355c, 0x3934);
+ @exp_odori_h=(0x313a, 0x313b, 0x6f61, 0x6f62, 0x313c); # CID: 12362, 12363, 12273, 12274, 12364
+ @exp_odori_v=(0x3431, 0x3432, 0x3258, 0x3259, 0x3433); # CID: 12545, 12456, 12457, 12274, 12547
+ @cid_hkana_code=(0x3537 .. 0x356F, 0x3630 .. 0x3635); # CID: 327 .. 389
+ %kaisei_jikei = (0x3029 => 8266, 0x3032 => 7961, 0x303B => 7634, 0x306E => 7635, 0x3071 => 7962, 0x3073 => 7636, 0x307C => 7637, 0x312A => 7638, 0x3139 => 20271, 0x313D => 7642, 0x3142 => 13650, 0x3228 => 7645, 0x3260 => 7647, 0x3267 => 7965, 0x3276 => 13673, 0x327A => 20269, 0x3322 => 7650, 0x336B => 7652, 0x3373 => 7653, 0x3378 => 20290, 0x344D => 7656, 0x3465 => 7657, 0x352B => 7658, 0x3540 => 7659, 0x3562 => 7966, 0x3564 => 20270, 0x3568 => 20263, 0x362A => 7661, 0x3642 => 7968, 0x364F => 7662, 0x3674 => 7664, 0x367B => 7665, 0x367D => 7666, 0x3729 => 20272, 0x3737 => 7668, 0x3764 => 20273, 0x3771 => 7674, 0x377E => 7676, 0x3830 => 20276, 0x3841 => 7678, 0x392B => 7679, 0x393C => 20279, 0x3974 => 7683, 0x3979 => 20284, 0x3A35 => 20281, 0x3A67 => 7686, 0x3B27 => 7688, 0x3B2A => 7689, 0x3B2C => 7690, 0x3B2D => 20280, 0x3B41 => 7970, 0x3C5D => 7695, 0x3C5E => 7696, 0x3D36 => 7698, 0x3D5D => 13460, 0x3D72 => 7701, 0x3D73 => 7702, 0x3E25 => 7703, 0x3E64 => 7708, 0x3E73 => 20282, 0x3F2A => 7709, 0x3F56 => 13860, 0x3F60 => 7711, 0x4022 => 7713, 0x4071 => 7716, 0x4079 => 7718, 0x407A => 7972, 0x407C => 7973, 0x407D => 7974, 0x4127 => 7720, 0x4139 => 7721, 0x414C => 7722, 0x4237 => 7975, 0x423D => 7726, 0x425C => 7728, 0x427D => 7733, 0x4329 => 7735, 0x432E => 7738, 0x4337 => 13915, 0x4370 => 7740, 0x4375 => 7741, 0x443D => 7743, 0x4448 => 7744, 0x444A => 7745, 0x4454 => 8267, 0x4472 => 20286, 0x4522 => 7748, 0x4527 => 7749, 0x452E => 7750, 0x4546 => 13949, 0x4548 => 7753, 0x454B => 7754, 0x4552 => 7756, 0x4654 => 7761, 0x465B => 20287, 0x4666 => 7766, 0x4667 => 7767, 0x466A => 7768, 0x4729 => 7769, 0x4757 => 7771, 0x4767 => 7772, 0x4769 => 7773, 0x477D => 20288, 0x4824 => 7775, 0x4840 => 7978, 0x4854 => 7778, 0x4870 => 13495, 0x4875 => 7780, 0x4923 => 7782, 0x492F => 7783, 0x4935 => 7785, 0x493F => 20222, 0x4940 => 7786, 0x494E => 7787, 0x4960 => 20289, 0x4A43 => 7789, 0x4A4D => 7790, 0x4A4E => 14013, 0x4A53 => 7979, 0x4A5A => 7791, 0x4A5C => 20291, 0x4A79 => 7792, 0x4B29 => 7794, 0x4B70 => 7796, 0x4B78 => 7980, 0x4C59 => 7798, 0x4C5F => 7799, 0x4C62 => 20293, 0x4C6C => 20294, 0x4C7A => 7801, 0x4C7C => 7802, 0x4D32 => 14074, 0x4E7A => 7809, 0x4E7B => 7810, 0x4E7C => 20265, 0x4F31 => 7812, 0x514D => 7817, 0x5257 => 14111, 0x527B => 20277, 0x535E => 7821, 0x5373 => 14116, 0x5751 => 13538, 0x5928 => 7991, 0x6044 => 20278, 0x6131 => 20267, 0x6134 => 20283, 0x6156 => 20175, 0x635E => 20285, 0x6427 => 20266, 0x6440 => 7997, 0x6727 => 20275, 0x675B => 14196, 0x676A => 20292, 0x694A => 20274, 0x6967 => 20296, 0x6A24 => 20295, 0x6B43 => 20268, 0x7057 => 13624, 0x7159 => 8003, 0x726D => 14272);
+}
+sub reorder_odoriji {
+=comment
+The order of odorijis in UCS is different from that in JIS
+JIS UCS
+0x2133 U+30FD # KATAKANA ITERATION MARK
+0x2134 U+30FE # KATAKANA VOICED ITERATION MARK
+0x2135 U+309D # HIRAGANA ITERATION MARK
+0x2136 U+309E # HIRAGANA VOICED ITERATION MARK
+0x213C U+30FC # KATAKANA-HIRAGANA PROLONGED SOUND MARK
+=cut
+ my $ref;
+ foreach $ref (\@ruby_odori_h, \@ruby_odori_v, \@exp_odori_h, \@exp_odori_v) {
+ @$ref = @$ref[2..4, 0, 1];
+ }
+}
+sub proc_arg {
+ if ($#ARGV == -1) {&print_help;}
+ GetOptions(\@ARGV, ['^-b', \$baseline_shift, 1], ['^-m', \$minute_option, 0], ['^-cm', \$cid_minute, 0], ['^-cq', \$cid_quote, 0], ['^-cp', \$comma_period, 0], ['^-chk', \$cid_hankana, 0], ['^-SJIS', \$sjis, 0], ['^-scale', \$scale, 1], ['^-notfm', \$without_tfm, 1], ['^-expert', \$expert, 0], ['^-ruby', \$ruby, 0], ['^-sage', \$burasage, 0], ['^-jp04', \$jis2004, 0], ['^-ucs', \$ucs, 0], ['^-sip', \$sip, 0], ['^-h(e|el|elp)?', \$help, 0], ['^-(.+)', \$unknown, 0]);
+ if ($unknown == 1){
+ print "mkjvf: Unknown options!\n";
+ &print_help;
+ }
+ if ($help == 1){&print_help;}
+ if (($expert == 0) && ($ruby == 0)){
+ if ($#ARGV <= 0) {
+ print "mkjvf: Need two to three file arguments.\n";
+ &print_help;
+ }
+ } elsif (($expert != 0) && ($ruby != 0)){
+ print "mkjvf: You can't use \"-ruby\" and \"-expert\" at same time.\n";
+ &print_help;
+ } elsif (($scale != 0) && ($ruby != 0)){
+ print "mkjvf: You can't use \"-ruby\" and \"-scale\" at same time.\n";
+ &print_help;
+ } elsif (($jis2004 != 0) && ($ruby != 0)){
+ print "mkjvf: You can't use \"-ruby\" and \"-jp04\" at same time.\n";
+ &print_help;
+ } elsif (($jis2004 != 0) && ($sjis != 0)){
+ print "mkjvf: You can't use \"-sjis\" and \"-jp04\" at same time.\n";
+ &print_help;
+ } elsif (($jis2004 != 0) && ($ucs != 0)){
+ print "mkjvf: You can't use \"-ucs\" and \"-jp04\" at same time.\n";
+ &print_help;
+ } else {
+ if ($#ARGV <= 1) {
+ print "mkjvf: Need three file arguments for this option.\n";
+ &print_help;
+ }
+ $alt_kana_true=1;
+ }
+ if ($scale < 0 || $scale >= 1){
+ print "mkjvf: Invalid Scale!!\n";
+ &print_help;
+ }
+ if ($scale == 0){$scale = 1;}
+ if ($sjis != 0){$max_ku=120;}else{$max_ku=94;}
+ if ($cid_minute != 0){$minute_option = 1;}
+ if ($ucs){&reorder_odoriji;}
+ $tfm_name = shift(@ARGV);
+ $tfm_name =~ s/\.tfm//;
+ $kanji_font = shift(@ARGV);
+ $kanji_font =~ s/\.tfm//;
+ $kana_font = shift(@ARGV);
+ $kana_font =~ s/\.tfm//;
+ &get_metric;
+ $half_width= ($font_at / 2);
+ $quater_width= ($font_at / 4);
+ @minute_right=($font_at*0.1, $font_at*0.4, $font_at*0.1, $font_at*0.4);
+ @minute_down=(-$font_at*0.65, $font_at*0.65, -$font_at*0.6, $font_at*0.6);
+ #open output file
+ open(OVP,">$tfm_name.ovp") || die "Can't make \'$tfm_name.ovp\'!\n";
+ binmode(OVP);
+}
+sub font_header {
+ print OVP "(VTITLE )\n";
+ print OVP "(OFMLEVEL D 0)";
+ print OVP "(DESIGNSIZE R 10.000000)\n";
+ print OVP "(CHECKSUM O 0)\n";
+ print OVP "(MAPFONT D 1\n";
+ print OVP " (FONTNAME $kanji_font)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n",$font_at;
+ printf OVP " (FONTDSIZE R %f)\n",$design_size;
+ print OVP " )\n";
+ if ($ruby == 1){
+ &get_face;
+ if ($direction eq "y"){
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $face"."3-h)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ if ($ucs) {
+ print OVP "(MAPFONT D 3\n";
+ print OVP " (FONTNAME $face"."4-h)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1)\n";
+ printf OVP " (FONTDSIZE R 10)\n";
+ print OVP " )\n";
+ }
+ }elsif ($direction eq "t"){
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $face"."3-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ if ($ucs) {
+ print OVP "(MAPFONT D 3\n";
+ print OVP " (FONTNAME $face"."4-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1)\n";
+ printf OVP " (FONTDSIZE R 10)\n";
+ print OVP " )\n";
+ }
+ }
+ } elsif ($expert == 1) {
+ &get_face;
+ if ($direction eq "y"){
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $face"."2-h)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n",$scale;
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 3\n";
+ print OVP " (FONTNAME $face"."3-h)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n",$scale;
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }elsif ($direction eq "t"){
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $face"."3-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n",$scale;
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ if ($ucs) {
+ print OVP "(MAPFONT D 3\n";
+ print OVP " (FONTNAME $face"."4-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n",$scale;
+ printf OVP " (FONTDSIZE R 10)\n";
+ print OVP " )\n";
+ }
+ }
+ } else {
+ if ($kana_font ne ""){
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $kana_font)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n",$scale*$font_at;
+ printf OVP " (FONTDSIZE R %f)\n",$design_size;
+ print OVP " )\n";
+ }
+ }
+ if ($cid_minute == 1){
+ &get_face;
+ if ($direction eq "t"){
+ print OVP "(MAPFONT D 4\n";
+ print OVP " (FONTNAME $face"."1-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 5\n";
+ print OVP " (FONTNAME $face"."2-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }
+ }
+ elsif ($cid_quote == 1){
+ &get_face;
+ if ($direction eq "y"){
+ print OVP "(MAPFONT D 4\n";
+ print OVP " (FONTNAME $face"."0-h)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R 1)\n";
+ printf OVP " (FONTDSIZE R 10)\n";
+ print OVP " )\n";
+ }
+ elsif ($direction eq "t"){
+ print OVP "(MAPFONT D 4\n";
+ print OVP " (FONTNAME $face"."2-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R 1)\n";
+ printf OVP " (FONTDSIZE R 10)\n";
+ print OVP " )\n";
+ }
+ }
+ if ($jis2004 == 1){
+ if($direction eq "y"){$temp_dir = "h"}elsif($direction eq "t"){$temp_dir = "v"}
+ &get_face;
+ print OVP "(MAPFONT D 4\n";
+ print OVP " (FONTNAME $face"."1-$temp_dir)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 5\n";
+ print OVP " (FONTNAME $face"."2-$temp_dir)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 6\n";
+ print OVP " (FONTNAME $face"."3-$temp_dir)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 7\n";
+ print OVP " (FONTNAME $face"."4-$temp_dir)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 8\n";
+ print OVP " (FONTNAME $face"."5-$temp_dir)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }
+ if ($cid_hankana == 1){
+ &get_face;
+ if ($direction eq "y"){
+ print OVP "(MAPFONT D 6\n";
+ print OVP " (FONTNAME $face"."0-h)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R 1)\n";
+ printf OVP " (FONTDSIZE R 10)\n";
+ print OVP " )\n";
+ }
+ }
+}
+sub write_char {
+ if (!$ucs) {
+ for ($ku=1; $ku<=$max_ku; $ku++){
+ for ($ten=1; $ten<=94; $ten++){
+ $jiscode=($ku+32)*256+($ten+32);
+ $dvicode=$jiscode;
+ if($sjis == 1){
+ &get_shift_jiscode;
+ $char_code=$shift_jiscode;
+ }else{
+ $char_code=$jiscode;
+ }
+ if ($ruby==1){
+ if ($ku==1){&print_kigo_char;}elsif($ku==4){&print_ruby_hira_char;}
+ elsif($ku==5){&print_ruby_kata_char;}else{&print_char;}
+ }elsif ($expert==1){
+ if ($direction eq "y"){
+ if ($ku==1){&print_kigo_char;}elsif($ku==4){&exp_hira_h_char;}
+ elsif($ku==5){&exp_kata_h_char;}else{&print_char;}
+ }elsif ($direction eq "t"){
+ if ($ku==1){&print_kigo_char;}elsif($ku==4){&exp_hira_v_char;}
+ elsif($ku==5){&exp_kata_v_char;}else{&print_char;}
+ }
+ }else{
+ if ($ku==1){&print_kigo_char;}elsif($ku==4){&print_kana_char;}
+ elsif($ku==5){&print_kana_char;}else{&print_char;}
+ }
+ }
+ }
+ } else { # ucs
+ $max_ucs= ($sip) ? 0x2FA1F : 0xFFFF;
+ for ($ucscode=0; $ucscode<=$max_ucs; $ucscode++){
+ next unless (&is_ucs_jpn_range);
+ $dvicode=$ucscode;
+ $char_code=$ucscode;
+ if(&is_ucs_hankana && $direction eq "y"){
+ &print_hankana_char;
+ next;
+ }
+ if ($ruby==1){
+ if (&is_ucs_kigo){&print_kigo_char;}
+ elsif(&is_ucs_hira){&print_ruby_hira_char;}
+ elsif(&is_ucs_kata){&print_ruby_kata_char;}
+ else{&print_char;}
+ }elsif ($expert==1){
+ if ($direction eq "y"){
+ if (&is_ucs_kigo){&print_kigo_char;}
+ elsif(&is_ucs_hira){&exp_hira_h_char;}
+ elsif(&is_ucs_kata){&exp_kata_h_char;}
+ else{&print_char;}
+ }elsif ($direction eq "t"){
+ if (&is_ucs_kigo){&print_kigo_char;}
+ elsif(&is_ucs_hira){&exp_hira_v_char;}
+ elsif(&is_ucs_kata){&exp_kata_v_char;}
+ else{&print_char;}
+ }
+ }else{
+ if (&is_ucs_kigo){&print_kigo_char;}
+ elsif(&is_ucs_hira){&print_kana_char;}
+ elsif(&is_ucs_kata){&print_kana_char;}
+ else{&print_char;}
+ }
+ }
+ }
+}
+sub make_vf {
+ my ($ovp2ovf);
+
+ close(OVP);
+# $ovp2ovf = ($ucs && $sip) ? 'upovp2ovf' : 'ovp2ovf'; # obsolete
+ $ovp2ovf = 'ovp2ovf'; # use ovp2ovf in TeXLive svn r24922 or later for SIP
+ system("$ovp2ovf $tfm_name.ovp $tfm_name.vf $tfm_name.ofm");
+ unlink "$tfm_name.ovp";
+ unlink "$tfm_name.ofm";
+}
+sub make_tfm {
+ open(KANJITFM,">$kanji_font.tfm") || die "Can't make \'$kanji_font.tfm\'!\n";
+ binmode(KANJITFM);
+ if ($direction eq "y") {
+ foreach $binary(@yoko_tfm_binary) {
+ $_ = pack("C", $binary);
+ print KANJITFM "$_";
+ }
+ } elsif ($direction eq "t") {
+ foreach $binary(@tate_tfm_binary) {
+ $_ = pack("C", $binary);
+ print KANJITFM "$_";
+ }
+ } else {die "Unknown Direction!!\n";}
+ if ($ruby==0 && $expert==0){
+ if ($kana_font ne ""){
+ open(KANATFM,">$kana_font.tfm") || die "Can't make \'$kana_font.tfm\'!\n";
+ binmode(KANATFM);
+ if ($direction eq "y") {
+ foreach $binary(@yoko_tfm_binary) {
+ $_ = pack("C", $binary);
+ print KANATFM "$_";
+ }
+ } else {
+ foreach $binary(@tate_tfm_binary) {
+ $_ = pack("C", $binary);
+ print KANATFM "$_";
+ }
+ }
+ }
+ }
+}
+##############################
+#### dfn of sub sub rtns ###
+##############################
+sub print_help {
+ print "This is umkjvf version 0.07 (2012/1/2) by ttk\n";
+ print "Based on mkjvf version 1.0b21 (2010/3/25) by psitau\n";
+ print "Usage: umkjvf [option] <TFMfile> <PSfontTFM> [<PSfontTFM>]\n";
+ print " -b <number> baseline shift\n";
+ print " -m translate quotation mark to minute\n";
+ print " -cm translate quotation mark to CID minute\n";
+ print " -cq translate quotation mark to CID quotation (umkjvf extention)\n";
+ print " -cp translate comma & period to KuTohTen\n";
+ print " -chk translate hankaku kana to CID hankaku kana (umkjvf extention)\n";
+ print " -notfm (h|v) don't read tfm\n";
+ print " -ruby use ruby glyph for kana (for utf package)\n";
+ print " -expert use alt. kana glyph for kana (for utf package)\n";
+ print " -burasage make the width of kutoh-ten zero for burasage\n";
+ print " -jp04 make a font mapped JIS X 0213:2004 glyphs\n";
+ print " -ucs make ucs mapped vf (umkjvf extention)\n";
+ print " -sip include supplemental ideographic plane (umkjvf extention)\n";
+ print " -SJIS make shift jis mapped vf (experimental)\n";
+ print " -scale <0--1> make kokana vf\n";
+ print " -help print this message\n";
+ exit;
+}
+sub GetOptions {
+ my ($argv,@options)=@_;
+ foreach (@options) {
+ my ($regex,$ref,$takesarg)=@{$_};
+ my @args=@{$argv};
+ @{$argv}=();
+ my $arg;
+ argloop:
+ while (($arg=shift @args) ne "") {
+ if ($arg=~/$regex/) {
+ my $val=1;
+ if ($takesarg) { $val=shift @args; }
+ if (ref($ref) eq 'CODE') { &$ref($val); }
+ else { ${$ref}=$val; last argloop;}
+ }
+ else {
+ push @{$argv},$arg;
+ if ($arg eq '--') { last argloop; }
+ }
+ }
+ push @{$argv},@args;
+ }
+}
+sub get_metric{
+ if ($without_tfm eq ""){
+ &read_tfm;
+ } elsif ($without_tfm eq "h") {
+ $direction="y";
+ $design_size=10;
+ $font_at = 0.962216;
+ if ($minute_option == 1){$minute_option = 0;}
+ if ($comma_period == 1){$comma_period = 0;}
+ } elsif ($without_tfm eq "v") {
+ $direction="t";
+ $design_size=10;
+ $font_at = 0.962216;
+ } else{
+ die "Unknown Direction!!\n";
+ }
+# print STDOUT "$design_size, $font_at\n";#debug
+}
+sub read_tfm{
+ $alt_tfm_name=`kpsewhich $tfm_name.tfm`;
+ chomp($alt_tfm_name);
+ open (TFM, "<$tfm_name.tfm") || open (TFM, "<tfm/$tfm_name.tfm") || open (TFM, "<$alt_tfm_name") || die "Can't read tfm file!!\n";
+ binmode(TFM);
+ my($jfm_id, $nt, $lf, $lh, $bc, $ec, $nw, $nh, $nd, $ni, $nl, $nk, $ng, $np);
+ my($data,$d_size,$data_length, @param);
+ #first 7 word
+ read(TFM, $_, 2);
+ $jfm_id = unpack('n', $_);
+# printf STDOUT "JFM ID= %d\n",$jfm_id;#debug
+ if ($jfm_id==0x0B) {
+ $direction="y";
+ if ($minute_option == 1){$minute_option = 0;}
+# print STDOUT "Direction is YOKO!!\n";#debug
+ }elsif ($jfm_id==0x09){
+ $direction="t";
+# print STDOUT "Direction is TATE!!\n";#debug
+ }else{
+ die "Unknown Direction!!\n";
+ }
+ read(TFM, $_, 26);
+ ($nt, $lf, $lh, $bc, $ec, $nw, $nh, $nd, $ni, $nl, $nk, $ng, $np)= unpack('nnnnnnnnnnnnn', $_);
+ #header
+ read(TFM, $_, (4*$lh));
+ ($data,$d_size)= unpack('NN',$_);
+ $d_size=$d_size/(1<<20);;
+ $data_length = ($nt+$ec-$bc+1+$nw+$nh+$nd+$ni+$nl+$nk+$ng)*4;
+ read(TFM, $_, $data_length);
+ read(TFM, $_, (4*$np));
+ @param=unpack('NNNNNNNNN',$_);
+ $zh = $param[4]/(1<<20);
+ $zw = $param[5]/(1<<20);
+ $design_size=$d_size;
+ $font_at=$zw;
+# printf STDOUT "Design Size: %f, zw: %f, zh: %f\n",$d_size, $zw, $zh;#debug
+}
+sub get_face{
+ if($kana_font eq "cidjminr"){
+ $face="cidjmr";
+ }elsif($kana_font eq "cidjgothr"){
+ $face="cidjgr";
+ }elsif($kana_font eq "cidjminb"){
+ $face="cidjmb";
+ }elsif($kana_font eq "cidjgothb"){
+ $face="cidjgb";
+ }elsif($kana_font eq "cidjmgothr"){
+ $face="cidjmgr";
+ }elsif($kana_font eq "cidjminl"){
+ $face="cidjml";
+ }elsif($kana_font eq "cidmin"){
+ $face="cidm";
+ }elsif($kana_font eq "cidgoth"){
+ $face="cidg";
+ }elsif($kana_font eq ""){
+ if($kanji_font =~ /hminr/){
+ $face="cidjmr";
+ }elsif($kanji_font =~ /hgothr/){
+ $face="cidjgr";
+ }elsif($kanji_font =~ /hminb/){
+ $face="cidjmb";
+ }elsif($kanji_font =~ /hgothb/){
+ $face="cidjgb";
+ }elsif($kanji_font =~ /hmgothr/){
+ $face="cidjmgr";
+ }elsif($kanji_font =~ /hminl/){
+ $face="cidjml";
+ }
+ }
+}
+sub baseline_shift{
+ if ($baseline_shift != 0){
+ $baseline_shift_amount=-($baseline_shift/1000)*$zh;
+ printf OVP " (MOVEUP R %f)\n",$baseline_shift_amount;
+ }
+}
+sub print_kigo_char{
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ if (&is_dvicode('quote') || &is_dvicode('kakko')){#Kakko
+ $width=$half_width;
+ } elsif (&is_dvicode('kutouten')){#Kutouten
+ if (($burasage eq 1) && &is_dvicode('burasage')){#burasage
+ $width=0;
+ }else{
+ $width=$half_width;
+ }
+ } else{
+ $width=$font_at;
+ }
+ printf OVP " (CHARWD R %f)\n", $width;
+ print OVP " (MAP\n";
+ if (&is_dvicode('odoriji')){#odoriji
+ if ($ruby==1){
+ print OVP " (SELECTFONT D 2)\n";
+ }elsif($expert==1){
+ if ($direction eq "y"){
+ if (&is_dvicode('hira-odoriji')){
+ print OVP " (SELECTFONT D 2)\n";
+ }else{
+ print OVP " (SELECTFONT D 3)\n";
+ }
+ }else{
+ print OVP " (SELECTFONT D 2)\n";
+ }
+ }elsif($kana_font ne ""){
+ print OVP " (SELECTFONT D 2)\n";
+ }
+ }
+ if ($cid_minute == 1){#cid_minute
+ if (&is_dvicode('d-quote')){#double quatation->double minute
+ print OVP " (SELECTFONT D 4)\n";
+ }elsif (&is_dvicode('s-quote')){#single quatation->single minute
+ print OVP " (SELECTFONT D 5)\n";
+ }
+ }
+ elsif ($cid_quote == 1){#cid_quote
+ if (&is_dvicode('quote')){
+ print OVP " (SELECTFONT D 4)\n";
+ }
+ }
+ &baseline_shift;
+ if (&is_dvicode('odoriji')){#odoriji
+ &scaled_shift;
+ }
+ if (&is_dvicode('colon') || &is_dvicode('semicolon') || &is_dvicode('nakaten')){#colon, semicolon, nakaten
+ printf OVP " (MOVERIGHT R -%f)\n",$quater_width;}
+ if (&is_dvicode('kakko') && &is_dvicode('open')){#Kakko
+ printf OVP " (MOVERIGHT R -%f)\n",$half_width;
+ }
+ if (&is_dvicode('quote')){#quatation
+ if ($minute_option == 1){#quatation -> minute
+ if ($cid_minute == 1){
+ if (&is_dvicode('open')){
+ printf OVP " (MOVERIGHT R -%f)\n",$half_width;
+ }
+ $minute_char_code= shift(@cid_minute_code);
+ printf OVP " (SETCHAR H %X)\n", $minute_char_code;
+ }else{
+ $minute_right_shift= shift(@minute_right);
+ $minute_down_shift= shift(@minute_down);
+ printf OVP " (MOVERIGHT R %f)\n", $minute_right_shift;
+ printf OVP " (MOVEDOWN R %f)\n", $minute_down_shift;
+ if (&is_dvicode('close')){
+ print OVP " (SPECIAL ps: gsave currentpoint currentpoint translate 180 neg rotate neg exch neg exch translate)\n";
+ }
+ if ($sjis == 1){
+ $minute_char_code= shift(@shift_minute_code);
+ }else{
+ $minute_char_code= shift(@minute_code);
+ }
+ printf OVP " (SETCHAR H %X)\n", $minute_char_code;
+ if (&is_dvicode('close')){
+ print OVP " (SPECIAL ps: currentpoint grestore moveto)\n";
+ }
+ }
+ } elsif ($cid_quote == 1){
+ if (&is_dvicode('open')){
+ printf OVP " (MOVERIGHT R -%f)\n",$half_width;
+ }
+ if ($direction eq "y"){
+ $quote_char_code= shift(@cid_hquote_code);
+ }else{
+ $quote_char_code= shift(@cid_vquote_code);
+ }
+ printf OVP " (SETCHAR H %X)\n", $quote_char_code;
+ } else {
+ if (&is_dvicode('open')){
+ printf OVP " (MOVERIGHT R -%f)\n",$half_width;
+ }
+ printf OVP " (SETCHAR H %X)\n", $char_code;
+ }
+ } elsif (&is_dvicode('odoriji')){#odoriji
+ if ($ruby==1){
+ if ($direction eq "y"){
+ $odorijicode= shift(@ruby_odori_h);
+ }else{
+ $odorijicode= shift(@ruby_odori_v);
+ }
+ }elsif($expert==1){
+ if ($direction eq "y"){
+ $odorijicode= shift(@exp_odori_h);
+ }else{
+ $odorijicode= shift(@exp_odori_v);
+ }
+ }elsif ($sjis==1){
+ $odorijicode= $shift_jiscode;
+ }else{
+ $odorijicode= $dvicode;
+ }
+ printf OVP " (SETCHAR H %X)\n",$odorijicode;
+ } elsif ((&is_dvicode('comma') || &is_dvicode('period')) && $comma_period == 1){
+ printf OVP " (SETCHAR H %X)\n",$char_code-2;
+ }else {
+ printf OVP " (SETCHAR H %X)\n",$char_code;
+ }
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_char{
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n", $font_at;
+ print OVP " (MAP\n";
+ if (($jis2004 == 1) && (0x3029 <= $jiscode && $jiscode <= 0x726D)){
+ if (exists $kaisei_jikei{$jiscode}){
+ $cid = $kaisei_jikei{$jiscode};
+ $fontmap = int($cid/4096)+3;
+ printf OVP " (SELECTFONT D %d)\n", $fontmap;
+ $upper = int(($cid%4096)/64)+16;
+ $lower = (($cid%4096)%64)+16;
+# printf STDOUT "%d, %d\n",$upper,$lower;
+ $char_code = $upper*256+$lower+0x2020;
+ }
+ }
+ &baseline_shift;
+ printf OVP " (SETCHAR H %X)\n",$char_code;
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_kana_char{
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n", $font_at;
+ print OVP " (MAP\n";
+ if ($kana_font ne ""){
+ print OVP " (SELECTFONT D 2)\n";
+ }
+ &baseline_shift;
+ &scaled_shift;
+ printf OVP " (SETCHAR H %X)\n",$char_code;
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_hankana_char{
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ print OVP " (CHARWD R $font_at)\n";
+ print OVP " (MAP\n";
+ if ($cid_hankana == 1){
+ print OVP " (SELECTFONT D 6)\n";
+ }
+ &baseline_shift;
+ &scaled_shift;
+ if ($cid_hankana == 1){
+ $hkana_char_code= shift(@cid_hkana_code);
+ printf OVP " (SETCHAR H %X)\n",$hkana_char_code;
+ } else {
+ printf OVP " (SETCHAR H %X)\n",$char_code;
+ }
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_ruby_hira_char{
+ if (&is_dvicode('hira-Vu')){$ruby_hira_code=0x3744;}
+ if (&is_dvicode('hira-ka')){$ruby_hira_code=0x363A;}
+ if (&is_dvicode('hira-ke')){$ruby_hira_code=0x3641;}
+ $ruby_hira_code_orig=$ruby_hira_code;
+ if ($direction eq "t"){&fix_ruby_hira_code;}
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ printf OVP " (SELECTFONT D %d)\n",$ruby_font_map;
+ &baseline_shift;
+ printf OVP " (SETCHAR H %X)\n", $ruby_hira_code;
+ print OVP " )\n";
+ print OVP " )\n";
+ $ruby_hira_code=$ruby_hira_code_orig;
+ $ruby_hira_code++;
+ if ($ruby_hira_code == 0x3570){$ruby_hira_code=0x3630;}
+ if ($ruby_hira_code == 0x3670){$ruby_hira_code=0x3730;}
+ if ($ruby_hira_code == 0x363A){$ruby_hira_code=0x363B;}
+ if ($ruby_hira_code == 0x3641){$ruby_hira_code=0x3642;}
+}
+sub print_ruby_kata_char{
+ $ruby_kata_code_orig=$ruby_kata_code;
+ if (&is_dvicode('kata-ka')){$ruby_kata_code=0x375C;}
+ if (&is_dvicode('kata-ke')){$ruby_kata_code=0x3763;}
+ if (&is_dvicode('kata-Va')){$ruby_kata_code_orig=$ruby_kata_code=0x306C;
+ $ruby_font_map=3;} # JIS X 0213
+ if (&is_dvicode('kata-ku')){$ruby_kata_code_orig=$ruby_kata_code=0x305B;} # JIS X 0213
+ if (&is_dvicode('kata-mu')){$ruby_kata_code_orig=$ruby_kata_code=0x3066;} # JIS X 0213
+ if ($direction eq "t"){&fix_ruby_kata_code;}
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ printf OVP " (SELECTFONT D %d)\n",$ruby_font_map;
+ &baseline_shift;
+ printf OVP " (SETCHAR H %X)\n", $ruby_kata_code;
+ print OVP " )\n";
+ print OVP " )\n";
+ $ruby_kata_code=$ruby_kata_code_orig;
+ $ruby_kata_code++;
+ if ($ruby_kata_code == 0x3770){$ruby_kata_code=0x3830;}
+ if ($ruby_kata_code == 0x375C){$ruby_kata_code=0x375D;}
+ if ($ruby_kata_code == 0x3763){$ruby_kata_code=0x3764;}
+}
+sub exp_hira_h_char{
+ if (&is_dvicode('hira-Vu')){$exp_hira_code_h=0x3139;$exp_font_map=3;} # JIS X 0213
+ if (&is_dvicode('hira-ka')){$exp_hira_code_h=0x6f6d;$exp_font_map=2;} # JIS X 0213
+ if (&is_dvicode('hira-ke')){$exp_hira_code_h=0x3034;$exp_font_map=3;} # JIS X 0213
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ printf OVP " (SELECTFONT D %d)\n", $exp_font_map;
+ &baseline_shift;
+ &scaled_shift;
+ printf OVP " (SETCHAR H %X)\n", $exp_hira_code_h;
+ print OVP " )\n";
+ print OVP " )\n";
+ $exp_hira_code_h++;
+ if ($exp_hira_code_h == 0x6F70){$exp_hira_code_h=0x3030;$exp_font_map=3;}
+ if ($exp_hira_code_h == 0x3070){$exp_hira_code_h=0x3130;}
+ if ($exp_hira_code_h == 0x6f6d){$exp_hira_code_h++;}
+ if ($exp_hira_code_h == 0x3034){$exp_hira_code_h++;}
+ if ($exp_hira_code_h == 0x3037){$exp_hira_code_h++;}
+}
+sub exp_kata_h_char{
+ if (&is_dvicode('kata-ka')){$exp_kata_code_h=0x3147;}
+ if (&is_dvicode('kata-ke')){$exp_kata_code_h=0x314e;}
+ if (&is_dvicode('kata-Va')){$exp_kata_code_h=0x3254;} # JIS X 0213
+ if (&is_dvicode('kata-ku')){$exp_kata_code_h=0x6f5d;} # JIS X 0213
+ if (&is_dvicode('kata-mu')){$exp_kata_code_h=0x6f68;} # JIS X 0213
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ print OVP " (SELECTFONT D 3)\n";
+ &baseline_shift;
+ &scaled_shift;
+ printf OVP " (SETCHAR H %X)\n", $exp_kata_code_h;
+ print OVP " )\n";
+ print OVP " )\n";
+ $exp_kata_code_h++;
+ if ($exp_kata_code_h == 0x3170){$exp_kata_code_h=0x3230;}
+ if ($exp_kata_code_h == 0x3147){$exp_kata_code_h++;}
+ if ($exp_kata_code_h == 0x314e){$exp_kata_code_h++;}
+ if ($exp_kata_code_h == 0x3151){$exp_kata_code_h++;}
+}
+sub exp_hira_v_char{
+ if (&is_dvicode('hira-Vu')){$exp_hira_code_v=0x3430;$exp_font_map=2;} # JIS X 0213
+ if (&is_dvicode('hira-ka')){$exp_hira_code_v=0x3264;$exp_font_map=2;} # JIS X 0213
+ if (&is_dvicode('hira-ke')){$exp_hira_code_v=0x326b;$exp_font_map=2;} # JIS X 0213
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ printf OVP " (SELECTFONT D %d)\n", $exp_font_map;
+ &baseline_shift;
+ &scaled_shift;
+ printf OVP " (SETCHAR H %X)\n", $exp_hira_code_v;
+ print OVP " )\n";
+ print OVP " )\n";
+ $exp_hira_code_v++;
+ if ($exp_hira_code_v == 0x3270){$exp_hira_code_v=0x3330;}
+ if ($exp_hira_code_v == 0x3264){$exp_hira_code_v++;}
+ if ($exp_hira_code_v == 0x326b){$exp_hira_code_v++;}
+ if ($exp_hira_code_v == 0x326e){$exp_hira_code_v++;}
+}
+sub exp_kata_v_char{
+ if (&is_dvicode('kata-ka')){$exp_kata_code_v=0x343e;}
+ if (&is_dvicode('kata-ke')){$exp_kata_code_v=0x3445;}
+ if (&is_dvicode('kata-Va')){$exp_kata_code_v=0x354b;} # JIS X 0213
+ if (&is_dvicode('kata-ku')){$exp_kata_code_v=0x303b;$exp_font_map=3;} # JIS X 0213
+ if (&is_dvicode('kata-mu')){$exp_kata_code_v=0x3046;} # JIS X 0213
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ printf OVP " (SELECTFONT D %d)\n", $exp_font_map;
+ &baseline_shift;
+ &scaled_shift;
+ printf OVP " (SETCHAR H %X)\n", $exp_kata_code_v;
+ print OVP " )\n";
+ print OVP " )\n";
+ $exp_kata_code_v++;
+ if ($exp_kata_code_v == 0x3470){$exp_kata_code_v=0x3530;}
+ if ($exp_kata_code_v == 0x343e){$exp_kata_code_v++;}
+ if ($exp_kata_code_v == 0x3445){$exp_kata_code_v++;}
+ if ($exp_kata_code_v == 0x3448){$exp_kata_code_v++;}
+}
+sub fix_ruby_hira_code{
+ if (&is_dvicode('hira-a' )){$ruby_hira_code=0x3745;}#a
+ if (&is_dvicode('hira-i' )){$ruby_hira_code=0x3746;}#i
+ if (&is_dvicode('hira-u' )){$ruby_hira_code=0x3747;}#u
+ if (&is_dvicode('hira-e' )){$ruby_hira_code=0x3748;}#e
+ if (&is_dvicode('hira-o' )){$ruby_hira_code=0x3749;}#o
+ if (&is_dvicode('hira-tsu')){$ruby_hira_code=0x374c;}#tsu
+ if (&is_dvicode('hira-ya' )){$ruby_hira_code=0x374d;}#ya
+ if (&is_dvicode('hira-yu' )){$ruby_hira_code=0x374e;}#yu
+ if (&is_dvicode('hira-yo' )){$ruby_hira_code=0x374f;}#yo
+ if (&is_dvicode('hira-wa' )){$ruby_hira_code=0x3750;}#wa
+ if (&is_dvicode('hira-ka' )){$ruby_hira_code=0x374a;} # JIS X 0213
+ if (&is_dvicode('hira-ke' )){$ruby_hira_code=0x374b;} # JIS X 0213
+}
+sub fix_ruby_kata_code{
+ if (&is_dvicode('kata-a' )){$ruby_kata_code=0x3867;}#a
+ if (&is_dvicode('kata-i' )){$ruby_kata_code=0x3868;}#i
+ if (&is_dvicode('kata-u' )){$ruby_kata_code=0x3869;}#u
+ if (&is_dvicode('kata-e' )){$ruby_kata_code=0x386a;}#e
+ if (&is_dvicode('kata-o' )){$ruby_kata_code=0x386b;}#o
+ if (&is_dvicode('kata-tsu')){$ruby_kata_code=0x386e;}#tsu
+ if (&is_dvicode('kata-ya' )){$ruby_kata_code=0x386f;}#ya
+ if (&is_dvicode('kata-yu' )){$ruby_kata_code=0x3930;}#yu
+ if (&is_dvicode('kata-yo' )){$ruby_kata_code=0x3931;}#yo
+ if (&is_dvicode('kata-wa' )){$ruby_kata_code=0x3932;}#wa
+ if (&is_dvicode('kata-ka' )){$ruby_kata_code=0x386c;}#ka
+ if (&is_dvicode('kata-ke' )){$ruby_kata_code=0x386d;}#ke
+ if (&is_dvicode('kata-ku..ro')){$ruby_kata_code+=215;} # JIS X 0213
+}
+sub get_shift_jiscode{
+ $c1=$ku+32;
+ $c2=$ten+32;
+ if ($c1 % 2) {
+ $c1 = (($c1 + 1) / 2) + 0x70;
+ $c2 = $c2 + 0x1f;
+ } else {
+ $c1 = ($c1 / 2) + 0x70;
+ $c2 = $c2 + 0x7d;
+ }
+ if ($c1 >= 0xa0) {$c1 = $c1 + 0x40;}
+ if ($c2 >= 0x7f) {$c2 = $c2 + 1;}
+ $shift_jiscode=$c1*256+$c2;
+}
+sub scaled_shift{
+ if ($scale != 1){
+ $scaled_shift_amount=(1-$scale)*$font_at/2;
+ printf OVP " (MOVERIGHT R %f)\n",$scaled_shift_amount;
+ if ($direction eq "y"){
+ $scaled_v_shift_amount=(1-$scale)*$font_at*0.38;
+ printf OVP " (MOVEUP R %f)\n",$scaled_v_shift_amount;
+ }
+ }
+}
+
+sub is_dvicode{
+ local ($key)=@_;
+ local ($code)=($dvicode);
+
+ if (!$ucs) {
+ if ($key eq 'hira-a') { return ($code == 0x2421);}
+ if ($key eq 'hira-i') { return ($code == 0x2423);}
+ if ($key eq 'hira-u') { return ($code == 0x2425);}
+ if ($key eq 'hira-e') { return ($code == 0x2427);}
+ if ($key eq 'hira-o') { return ($code == 0x2429);}
+ if ($key eq 'hira-tsu') { return ($code == 0x2443);}
+ if ($key eq 'hira-ya') { return ($code == 0x2463);}
+ if ($key eq 'hira-yu') { return ($code == 0x2465);}
+ if ($key eq 'hira-yo') { return ($code == 0x2467);}
+ if ($key eq 'hira-wa') { return ($code == 0x246E);}
+ if ($key eq 'hira-Vu') { return 0; } # large JIS X 0213
+ if ($key eq 'hira-ka') { return 0; } # small JIS X 0213
+ if ($key eq 'hira-ke') { return 0; } # small JIS X 0213
+ if ($key eq 'kata-a') { return ($code == 0x2521);}
+ if ($key eq 'kata-i') { return ($code == 0x2523);}
+ if ($key eq 'kata-u') { return ($code == 0x2525);}
+ if ($key eq 'kata-e') { return ($code == 0x2527);}
+ if ($key eq 'kata-o') { return ($code == 0x2529);}
+ if ($key eq 'kata-tsu') { return ($code == 0x2543);}
+ if ($key eq 'kata-ya') { return ($code == 0x2563);}
+ if ($key eq 'kata-yu') { return ($code == 0x2565);}
+ if ($key eq 'kata-yo') { return ($code == 0x2567);}
+ if ($key eq 'kata-wa') { return ($code == 0x256E);}
+ if ($key eq 'kata-ka') { return ($code == 0x2575);}
+ if ($key eq 'kata-ke') { return ($code == 0x2576);}
+ if ($key eq 'kata-Va') { return 0; } # large JIS X 0213
+ if ($key eq 'kata-Vi') { return 0; } # : JIS X 0213
+ if ($key eq 'kata-Ve') { return 0; } # : JIS X 0213
+ if ($key eq 'kata-Vo') { return 0; } # large JIS X 0213
+ if ($key eq 'kata-ku') { return 0; } # small JIS X 0213
+ if ($key eq 'kata-mu') { return 0; } # small JIS X 0213
+ if ($key eq 'kata-ku..ro') { return 0; } # small JIS X 0213
+ if ($key eq 'comma') { return ($code == 0x2124);}
+ if ($key eq 'period') { return ($code == 0x2125);}
+ if ($key eq 'odoriji') { return
+ ((0x2133 <= $code && $code <= 0x2136) || $code == 0x213C);}
+ if ($key eq 'hira-odoriji') { return
+ ($code == 0x2135 || $code == 0x2136);}
+ if ($key eq 'kutouten') { return
+ ($code>=0x2122 && $code<=0x2128);}
+ if ($key eq 'burasage') { return
+ ($code>=0x2122 && $code<=0x2125);}
+ if ($key eq 'nakaten' ) { return ($code == 0x2126);}
+ if ($key eq 'colon' ) { return ($code == 0x2127);}
+ if ($key eq 'semicolon') { return ($code == 0x2128);}
+ if ($key eq 'quote') { return
+ ($code >= 0x2146 && $code <= 0x2149);}
+ if ($key eq 's-quote') { return
+ ($code == 0x2146 || $code == 0x2147);}
+ if ($key eq 'd-quote') { return
+ ($code == 0x2148 || $code == 0x2149);}
+ if ($key eq 'kakko') { return
+ (0x214A <= $code && $code <= 0x215B);}
+ if ($key eq 'open') { return ($code%2==0);}
+ if ($key eq 'close') { return ($code%2==1);}
+
+ die "illegal keyname ($key)\n";
+ } else { # ucs
+ if ($key eq 'hira-a') { return ($code == 0x3041);} # small
+ if ($key eq 'hira-i') { return ($code == 0x3043);} # :
+ if ($key eq 'hira-u') { return ($code == 0x3045);} # :
+ if ($key eq 'hira-e') { return ($code == 0x3047);} # :
+ if ($key eq 'hira-o') { return ($code == 0x3049);} # :
+ if ($key eq 'hira-tsu') { return ($code == 0x3063);} # :
+ if ($key eq 'hira-ya') { return ($code == 0x3083);} # :
+ if ($key eq 'hira-yu') { return ($code == 0x3085);} # :
+ if ($key eq 'hira-yo') { return ($code == 0x3087);} # :
+ if ($key eq 'hira-wa') { return ($code == 0x308E);} # small
+ if ($key eq 'hira-Vu') { return ($code == 0x3094);} # large JIS X 0213
+ if ($key eq 'hira-ka') { return ($code == 0x3095);} # small JIS X 0213
+ if ($key eq 'hira-ke') { return ($code == 0x3096);} # small JIS X 0213
+ if ($key eq 'kata-a') { return ($code == 0x30A1);} # small
+ if ($key eq 'kata-i') { return ($code == 0x30A3);} # :
+ if ($key eq 'kata-u') { return ($code == 0x30A5);} # :
+ if ($key eq 'kata-e') { return ($code == 0x30A7);} # :
+ if ($key eq 'kata-o') { return ($code == 0x30A9);} # :
+ if ($key eq 'kata-tsu') { return ($code == 0x30C3);} # :
+ if ($key eq 'kata-ya') { return ($code == 0x30E3);} # :
+ if ($key eq 'kata-yu') { return ($code == 0x30E5);} # :
+ if ($key eq 'kata-yo') { return ($code == 0x30E7);} # :
+ if ($key eq 'kata-wa') { return ($code == 0x30EE);} # :
+ if ($key eq 'kata-ka') { return ($code == 0x30F5);} # :
+ if ($key eq 'kata-ke') { return ($code == 0x30F6);} # small
+ if ($key eq 'kata-Va') { return ($code == 0x30F7);} # large JIS X 0213
+ if ($key eq 'kata-Vi') { return ($code == 0x30F8);} # : JIS X 0213
+ if ($key eq 'kata-Ve') { return ($code == 0x30F9);} # : JIS X 0213
+ if ($key eq 'kata-Vo') { return ($code == 0x30FA);} # large JIS X 0213
+ if ($key eq 'kata-ku') { return ($code == 0x31F0);} # small JIS X 0213
+ if ($key eq 'kata-mu') { return ($code == 0x31FA);} # small JIS X 0213
+ if ($key eq 'kata-ku..ro') { return
+ ($code >= 0x31F0 && $code <= 0x31FF);} # small JIS X 0213
+ if ($key eq 'comma') { return ($code == 0xFF0C);}
+ if ($key eq 'period') { return ($code == 0xFF0E);}
+ if ($key eq 'odoriji') { return
+ ($code == 0x30FD || $code == 0x30FE ||
+ $code == 0x309D || $code == 0x309E ||
+ $code == 0x30FC);}
+ if ($key eq 'hira-odoriji') { return
+ ($code == 0x309D || $code == 0x309E);}
+ if ($key eq 'kutouten') { return
+ ($code == 0x3001 || $code == 0x3002 ||
+ $code == 0xFF0C || $code == 0xFF0E ||
+ $code == 0x30FB ||
+ $code == 0xFF1A || $code == 0xFF1B);}
+ if ($key eq 'burasage') { return
+ ($code == 0x3001 || $code == 0x3002 ||
+ $code == 0xFF0C || $code == 0xFF0E);}
+ if ($key eq 'nakaten' ) { return ($code == 0x30FB);}
+ if ($key eq 'colon' ) { return ($code == 0xFF1A);}
+ if ($key eq 'semicolon') { return ($code == 0xFF1B);}
+ if ($key eq 'quote') { return
+ ($code == 0x2018 || $code == 0x2019 ||
+ $code == 0x201C || $code == 0x201D);}
+ if ($key eq 's-quote') { return
+ ($code == 0x2018 || $code == 0x2019);}
+ if ($key eq 'd-quote') { return
+ ($code == 0x201C || $code == 0x201D);}
+ if ($key eq 'kakko') { return
+ ((0x3008 <= $code && $code <= 0x3011) ||
+ $code == 0x3014 || $code == 0x3015 ||
+ $code == 0xFF08 || $code == 0xFF09 ||
+ $code == 0xFF3B || $code == 0xFF3D ||
+ $code == 0xFF5B || $code == 0xFF5D ||
+ $code == 0xFF5F || $code == 0xFF60 || # X0213 1-02-54,55
+ $code == 0x3018 || $code == 0x3019 || # X0213 1-02-56,57
+ $code == 0x3016 || $code == 0x3017 || # X0213 1-02-58,59
+ $code == 0x301D || $code == 0x301F # X0213 1-13-64,65
+ );}
+ if ($key eq 'open') { return &is_ucs_open($code); }
+ if ($key eq 'close') { return (!&is_ucs_open($code)); }
+
+ die "illegal keyname ($key)\n";
+ }
+}
+
+sub is_ucs_open {
+ if ($code == 0x301D) { return 1;}
+ if ($code <= 0xFF09) { return ($code%2==0);}
+ if ($code == 0xFF3B || $code == 0xFF5B) { return 1;}
+ if ($code == 0xFF5F) { return 1;}
+ return 0;
+}
+
+sub is_ucs_kigo{
+ return 1 if ($ucscode>=0x2018 && $ucscode<=0x2019);
+ return 1 if ($ucscode>=0x201C && $ucscode<=0x201D);
+ return 1 if ($ucscode>=0x3001 && $ucscode<=0x301F);
+ return 1 if ($ucscode>=0x3090 && $ucscode<=0x3093);
+ return 1 if ($ucscode>=0x3097 && $ucscode<=0x309F);
+ return 1 if ($ucscode>=0x30FB && $ucscode<=0x30FE);
+ return 1 if ($ucscode>=0xFF08 && $ucscode<=0xFF60);
+
+ return 0;
+}
+
+sub is_ucs_hira{
+ return 1 if ($ucscode>=0x3041 && $ucscode<=0x308F);
+ return 1 if ($ucscode>=0x3094 && $ucscode<=0x3096); # Vu, small Ka, small Ke
+ return 0;
+}
+
+sub is_ucs_kata{
+ return 1 if ($ucscode>=0x30A1 && $ucscode<=0x30F6);
+ return 1 if ($ucscode>=0x30F7 && $ucscode<=0x30FA); # Va, Vi, Ve, Vo
+ return 1 if ($ucscode>=0x31F0 && $ucscode<=0x31FF); # small Ku, small Shi, ... , Small Re, Small Ro
+ return 0;
+}
+
+sub is_ucs_hankana{
+ return 1 if ($ucscode>=0xFF61 && $ucscode<=0xFF9F);
+ return 0;
+}
+
+sub is_ucs_jpn_range{
+ return 1 if ($ucscode<=0x04FF);
+
+ return 0 if ($ucscode< 0x1E00);
+ return 1 if ($ucscode<=0x243F);
+
+ return 0 if ($ucscode< 0x2460);
+ return 1 if ($ucscode<=0x27BF);
+
+ return 0 if ($ucscode< 0x2900);
+ return 1 if ($ucscode<=0x29FF);
+
+ return 0 if ($ucscode< 0x2B00);
+ return 1 if ($ucscode<=0x2BFF);
+
+ return 0 if ($ucscode< 0x2E80);
+ return 1 if ($ucscode<=0x2FDF);
+
+ return 0 if ($ucscode< 0x3000);
+ return 1 if ($ucscode<=0x30FF);
+
+ return 0 if ($ucscode< 0x3190);
+ return 1 if ($ucscode<=0x319F);
+
+ return 0 if ($ucscode< 0x31F0);
+ return 1 if ($ucscode<=0x4DBF);
+
+ return 0 if ($ucscode< 0x4E00);
+ return 1 if ($ucscode<=0x9FFF);
+
+ return 0 if ($ucscode< 0xE000);
+ return 1 if ($ucscode<=0xFB4F);
+
+ return 0 if ($ucscode< 0xFE10);
+ return 1 if ($ucscode<=0xFE1F);
+
+ return 0 if ($ucscode< 0xFE30);
+ return 1 if ($ucscode<=0xFE4F);
+
+ return 0 if ($ucscode< 0xFF00);
+ return 1 if ($ucscode<=0xFFEF);
+
+ return 0 if ($ucscode< 0x20000);
+ return 1 if ($ucscode<=0x2A6DF);
+
+ return 0 if ($ucscode< 0x2F800);
+ return 1 if ($ucscode<=0x2FA1F);
+
+ return 0;
+}
+
+__END__
+0xFF5F: JIS X 0213 1-02-54 始め二重バーレーン
+0x3018: JIS X 0213 1-02-56 始め二重亀甲括弧
+0x3016: JIS X 0213 1-02-58 始めすみ付き括弧(白)
+0x301D: JIS X 0213 1-13-64 始めダブルミニュート
+0xFF60: JIS X 0213 1-02-55 終わり二重バーレーン
+0x3019: JIS X 0213 1-02-57 終わり二重亀甲括弧
+0x3017: JIS X 0213 1-02-59 終わりすみ付き括弧(白)
+0x301F: JIS X 0213 1-13-65 終わりダブルミニュート
diff --git a/Master/tlpkg/tlpsrc/collection-langcjk.tlpsrc b/Master/tlpkg/tlpsrc/collection-langcjk.tlpsrc
index ea1c9c676af..9ab9966d858 100644
--- a/Master/tlpkg/tlpsrc/collection-langcjk.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-langcjk.tlpsrc
@@ -16,6 +16,7 @@ depend hyphen-chinese
depend ipaex
depend japanese
depend japanese-otf
+depend japanese-otf-uptex
depend jsclasses
depend norasi-c90
depend ptex
diff --git a/Master/tlpkg/tlpsrc/japanese-otf-uptex.tlpsrc b/Master/tlpkg/tlpsrc/japanese-otf-uptex.tlpsrc
new file mode 100644
index 00000000000..3641dd0bd94
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/japanese-otf-uptex.tlpsrc
@@ -0,0 +1,3 @@
+depend japanese-otf
+depend uptex
+execute addKanjiMap otf-up-@kanjiEmbed@.map