From The Archives: JIS2004 CMap Resource History

I was recently asked, indirectly via Twitter, about changes and additions that were made to our JIS2004-savvy CMap resources, specifically UniJIS2004-UTF32-H and UniJISX02132004-UTF32-H. The former also includes UTF-8 (UniJIS2004-UTF8-H) and UTF-16 (UniJIS2004-UTF16-H) versions that are kept in sync with the master UTF-32 version by being automagically generated by the CMap resource compiler (and decompiler), cmap-tool.pl, which I developed years ago.

Of course, all of these CMap resources also have vertical versions that use a “V” at the end of their names in lieu of the “H,” but in the context of OpenType font development, the vertical CMap resources are virtually unused and worthless because it is considered much better practice to explicitly define a ‘vert‘ GSUB feature for handling vertical substitution. In the absence of an explicit definition, the AFDKO makeotf tool will synthesize a ‘vert’ GSUB feature by using the corresponding vertical CMap resources.

With all that being said, what follows in this article is a complete history of these two CMap resources, which also assign dates, and sometimes notes, to each version.

The initial versions of UniJIS2004-UTF32-H and UniJISX02132004-UTF32-H, CMapVersion=1.000, were released on 2007-01-19 and 2007-02-21, respectively.

UniJIS2004-UTF32-H CMapVersion=1.001 Changes (5)
2007-01-29
NOTES: The initial version of UniJISX02132004-UTF32-H incorporates these changes.

Unicode Original CID New CID
U+5906 () 17469 21371
U+609E () 14541 21558
U+66B5 () 17755 21722
U+7152 () 14762 21933
U+9A4A () 15319 22920

UniJIS2004-UTF32-H CMapVersion=1.002 & UniJISX02132004-UTF32-H CMapVersion=1.001 Addition
2007-04-09

Unicode CID
U+20984 (𠦄) 14109

UniJIS2004-UTF32-H CMapVersion=1.003 & UniJISX02132004-UTF32-H CMapVersion=1.002 Additions (6)
2007-06-08

Unicode CID
U+95E8 () 14061
U+2053F (𠔿) 14188
U+207C8 (𠟈) 20128
U+25AD7 (𥫗) 13922
U+26222 (𦈢) 13691
U+2626A (𦉪) 14189

UniJIS2004-UTF32-H CMapVersion=1.004 & UniJISX02132004-UTF32-H CMapVersion=1.003 Additions (7)
2007-11-29
NOTES: Unicode Version 5.1 was the primary motivator for these additions.

Unicode CID
U+9FBC () 15431
U+9FBD () 15429
U+9FBE () 15434
U+9FBF (龿) 20068
U+9FC0 () 20069
U+9FC1 () 20070
U+9FC2 () 20071

UniJIS2004-UTF32-H CMapVersion=1.007 & UniJISX02132004-UTF32-H CMapVersion=1.006 Additions (53)
2010-04-25
NOTES: Unicode Version 5.2 was the primary motivator for these additions.

Unicode CID
U+2150 () 9790
U+2151 () 9800
U+2152 () 9806
U+2189 () 9780
U+26BD () 20957
U+26BE () 12097
U+2B1A () 11036
U+3244 () 10498
U+9FC4 () 14089
U+9FC6 () 14168
U+FA6B () 13740
U+FA6C () 14281
U+FA6D () 13695
U+1F100 (🄀) 8061
U+1F110 (🄐) 10004
U+1F111 (🄑) 10005
U+1F112 (🄒) 10006
U+1F113 (🄓) 10007
U+1F114 (🄔) 10008
U+1F115 (🄕) 10009
U+1F116 (🄖) 10010
U+1F117 (🄗) 10011
U+1F118 (🄘) 10012
U+1F119 (🄙) 10013
U+1F11A (🄚) 10014
U+1F11B (🄛) 10015
U+1F11C (🄜) 10016
U+1F11D (🄝) 10017
U+1F11E (🄞) 10018
U+1F11F (🄟) 10019
U+1F120 (🄠) 10020
U+1F121 (🄡) 10021
U+1F122 (🄢) 10022
U+1F123 (🄣) 10023
U+1F124 (🄤) 10024
U+1F125 (🄥) 10025
U+1F126 (🄦) 10026
U+1F127 (🄧) 10027
U+1F128 (🄨) 10028
U+1F129 (🄩) 10029
U+1F131 (🄱) 10902
U+1F13D (🄽) 10914
U+1F13F (🄿) 10916
U+1F142 (🅂) 10919
U+1F146 (🅆) 10923
U+1F157 (🅗) 10638
U+1F15F (🅟) 10646
U+1F179 (🅹) 11722
U+1F17B (🅻) 11724
U+1F17C (🅼) 11725
U+1F17F (🅿) 11728
U+233CC (𣏌) 14140
U+2A9E6 (𪧦) 14145

UniJIS2004-UTF32-H CMapVersion=1.008 & UniJISX02132004-UTF32-H CMapVersion=1.007 Additions (25)
2010-06-24
NOTES: Unicode Version 6.0 was the primary motivator for these additions.

Unicode CID
U+2B746 (𫝆) 13780
U+2B751 (𫝑) 13866
U+2B753 (𫝓) 20088
U+2B75A (𫝚) 20096
U+2B75C (𫝜) 20097
U+2B765 (𫝥) 20247
U+2B776 (𫝶) 20114
U+2B777 (𫝷) 13782
U+2B77C (𫝼) 20125
U+2B782 (𫞂) 20141
U+2B789 (𫞉) 14064
U+2B78B (𫞋) 20149
U+2B78E (𫞎) 13724
U+2B794 (𫞔) 20153
U+2B7AC (𫞬) 20176
U+2B7AF (𫞯) 20180
U+2B7BD (𫞽) 14174
U+2B7C9 (𫟉) 20194
U+2B7CF (𫟏) 20201
U+2B7D2 (𫟒) 20204
U+2B7D8 (𫟘) 13651
U+2B7F0 (𫟰) 20240
U+2B80D (𫠍) 20256
U+2B817 (𫠗) 20260
U+2B81A (𫠚) 14278

UniJIS2004-UTF32-H CMapVersion=1.009 & UniJISX02132004-UTF32-H CMapVersion=1.008 Additions (69)
2010-10-26
NOTES: Unicode Version 6.0 was the primary motivator for these additions.

Unicode CID
U+1F130 (🄰) 10901
U+1F132 (🄲) 10903
U+1F133 (🄳) 10904
U+1F134 (🄴) 10905
U+1F135 (🄵) 10906
U+1F136 (🄶) 10907
U+1F137 (🄷) 10908
U+1F138 (🄸) 10909
U+1F139 (🄹) 10910
U+1F13A (🄺) 10911
U+1F13B (🄻) 10912
U+1F13C (🄼) 10913
U+1F13E (🄾) 10915
U+1F140 (🅀) 10917
U+1F141 (🅁) 10918
U+1F143 (🅃) 10920
U+1F144 (🅄) 10921
U+1F145 (🅅) 10922
U+1F147 (🅇) 10924
U+1F148 (🅈) 10925
U+1F149 (🅉) 10926
U+1F150 (🅐) 10631
U+1F151 (🅑) 10632
U+1F152 (🅒) 10633
U+1F153 (🅓) 10634
U+1F154 (🅔) 10635
U+1F155 (🅕) 10636
U+1F156 (🅖) 10637
U+1F158 (🅘) 10639
U+1F159 (🅙) 10640
U+1F15A (🅚) 10641
U+1F15B (🅛) 10642
U+1F15C (🅜) 10643
U+1F15D (🅝) 10644
U+1F15E (🅞) 10645
U+1F160 (🅠) 10647
U+1F161 (🅡) 10648
U+1F162 (🅢) 10649
U+1F163 (🅣) 10650
U+1F164 (🅤) 10651
U+1F165 (🅥) 10652
U+1F166 (🅦) 10653
U+1F167 (🅧) 10654
U+1F168 (🅨) 10655
U+1F169 (🅩) 10656
U+1F170 (🅰) 11713
U+1F171 (🅱) 11714
U+1F172 (🅲) 11715
U+1F173 (🅳) 11716
U+1F174 (🅴) 11717
U+1F175 (🅵) 11718
U+1F176 (🅶) 11719
U+1F177 (🅷) 11720
U+1F178 (🅸) 11721
U+1F17A (🅺) 11723
U+1F17D (🅽) 11726
U+1F17E (🅾) 11727
U+1F180 (🆀) 11729
U+1F181 (🆁) 11730
U+1F182 (🆂) 11731
U+1F183 (🆃) 11732
U+1F184 (🆄) 11733
U+1F185 (🆅) 11734
U+1F186 (🆆) 11735
U+1F187 (🆇) 11736
U+1F188 (🆈) 11737
U+1F189 (🆉) 11738
U+1F202 (🈂) 10985
U+1F237 (🈷) 11024

UniJIS2004-UTF32-H CMapVersion=1.010 & UniJISX02132004-UTF32-H CMapVersion=1.009 Addition
2010-11-18

Unicode CID
U+237F1 (𣟱) 20152

UniJIS2004-UTF32-H CMapVersion=1.011 & UniJISX02132004-UTF32-H CMapVersion=1.010 Additions (3)
2012-01-31
NOTES: Unicode Version 6.1 was the primary motivator for these additions.

Unicode CID
U+2329 () 682
U+232A () 683
U+9FCC () 20156

UniJIS2004-UTF32-H CMapVersion=1.012 & UniJISX02132004-UTF32-H CMapVersion=1.011 Addition
2012-08-13

Unicode CID
U+207F () 15908

That is all.

Some readers of this article may notice that CMapVersions 1.005 and 1.006 of UniJIS2004-UTF32-H and CMapVersions 1.004 and 1.005 of UniJISX02132004-UTF32-H are missing from the listings below. These versions included only tweaks to the CMap resource headers, and no functional changes were made. The earlier of the two versions, which are dated 2009-03-10, simply removed the following lines from the CMap resource header that were deemed to be inappropriate:

%%Copyright: Patents Pending
%%Copyright:

%%Copyright:
%%Copyright: PostScript and Display PostScript are trademarks of
%%Copyright: Adobe Systems Incorporated which may be registered in
%%Copyright: certain jurisdictions.

The later versions, which are dated 2009-08-11, changed the CMap resource header altogether, and replaced it with the following open source CMap header that is used in all subsequent versions:

%%Copyright: -----------------------------------------------------------
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
%%Copyright: All rights reserved.
%%Copyright:
%%Copyright: Redistribution and use in source and binary forms, with or
%%Copyright: without modification, are permitted provided that the
%%Copyright: following conditions are met:
%%Copyright:
%%Copyright: Redistributions of source code must retain the above
%%Copyright: copyright notice, this list of conditions and the following
%%Copyright: disclaimer.
%%Copyright:
%%Copyright: Redistributions in binary form must reproduce the above
%%Copyright: copyright notice, this list of conditions and the following
%%Copyright: disclaimer in the documentation and/or other materials
%%Copyright: provided with the distribution.
%%Copyright:
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
%%Copyright: of its contributors may be used to endorse or promote
%%Copyright: products derived from this software without specific prior
%%Copyright: written permission.
%%Copyright:
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
%%Copyright: -----------------------------------------------------------

For those who prefer this information in a different form, it is also available in plain text.

As always, enjoy!

Comments are closed.