From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- fonts/utilities/cjk-gs-integrate/ChangeLog | 1468 +++++++++++ fonts/utilities/cjk-gs-integrate/Makefile | 20 + fonts/utilities/cjk-gs-integrate/README.md | 226 ++ .../utilities/cjk-gs-integrate/cjk-gs-integrate.pl | 2675 ++++++++++++++++++++ .../cjk-gs-integrate/database/cjkgs-adobe.dat | 58 + .../cjk-gs-integrate/database/cjkgs-apple.dat | 119 + .../cjk-gs-integrate/database/cjkgs-arphic.dat | 46 + .../cjk-gs-integrate/database/cjkgs-bizud.dat | 60 + .../cjk-gs-integrate/database/cjkgs-cjkuni.dat | 66 + .../database/cjkgs-dynacomware.dat | 148 ++ .../cjk-gs-integrate/database/cjkgs-fandol.dat | 39 + .../cjk-gs-integrate/database/cjkgs-fontworks.dat | 69 + .../cjk-gs-integrate/database/cjkgs-founder.dat | 112 + .../cjk-gs-integrate/database/cjkgs-hancom.dat | 26 + .../cjk-gs-integrate/database/cjkgs-heisei.dat | 54 + .../cjk-gs-integrate/database/cjkgs-hiragino.dat | 160 ++ .../cjk-gs-integrate/database/cjkgs-ipa.dat | 103 + .../cjk-gs-integrate/database/cjkgs-kozuka.dat | 302 +++ .../database/cjkgs-macos-removeonly.dat | 582 +++++ .../cjk-gs-integrate/database/cjkgs-microsoft.dat | 256 ++ .../cjk-gs-integrate/database/cjkgs-mogamobo.dat | 200 ++ .../cjk-gs-integrate/database/cjkgs-monotype.dat | 30 + .../cjk-gs-integrate/database/cjkgs-morisawa.dat | 705 ++++++ .../cjk-gs-integrate/database/cjkgs-nanum.dat | 78 + .../cjk-gs-integrate/database/cjkgs-notosans.dat | 182 ++ .../cjk-gs-integrate/database/cjkgs-notoserif.dat | 141 ++ .../cjk-gs-integrate/database/cjkgs-ryokana.dat | 141 ++ .../cjk-gs-integrate/database/cjkgs-sazanami.dat | 12 + .../cjk-gs-integrate/database/cjkgs-sinotype.dat | 194 ++ .../cjk-gs-integrate/database/cjkgs-solaris.dat | 33 + .../database/cjkgs-sourcehansans.dat | 182 ++ .../database/cjkgs-sourcehanserif.dat | 142 ++ .../cjk-gs-integrate/database/cjkgs-toppan.dat | 69 + .../cjk-gs-integrate/database/cjkgs-typebank.dat | 33 + .../cjk-gs-integrate/database/cjkgs-ume.dat | 106 + .../cjk-gs-integrate/database/cjkgs-unfonts.dat | 112 + .../cjk-gs-integrate/database/cjkgs-wenquanyi.dat | 56 + .../cjk-gs-integrate/database/cjkgs-yu-osx.dat | 79 + .../cjk-gs-integrate/database/cjkgs-yu-win.dat | 119 + 39 files changed, 9203 insertions(+) create mode 100644 fonts/utilities/cjk-gs-integrate/ChangeLog create mode 100644 fonts/utilities/cjk-gs-integrate/Makefile create mode 100644 fonts/utilities/cjk-gs-integrate/README.md create mode 100755 fonts/utilities/cjk-gs-integrate/cjk-gs-integrate.pl create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-adobe.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-apple.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-arphic.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-bizud.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-cjkuni.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-dynacomware.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-fandol.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-fontworks.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-founder.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-hancom.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-heisei.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-hiragino.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-ipa.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-kozuka.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-macos-removeonly.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-microsoft.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-mogamobo.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-monotype.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-morisawa.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-nanum.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-notosans.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-notoserif.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-ryokana.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-sazanami.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-sinotype.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-solaris.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-sourcehansans.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-sourcehanserif.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-toppan.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-typebank.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-ume.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-unfonts.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-wenquanyi.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-yu-osx.dat create mode 100644 fonts/utilities/cjk-gs-integrate/database/cjkgs-yu-win.dat (limited to 'fonts/utilities/cjk-gs-integrate') diff --git a/fonts/utilities/cjk-gs-integrate/ChangeLog b/fonts/utilities/cjk-gs-integrate/ChangeLog new file mode 100644 index 0000000000..cd697a8e08 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/ChangeLog @@ -0,0 +1,1468 @@ +2019-08-16 Hironobu Yamashita + + * Release 20190816.0 (HEAD -> master) [089a440] + +2019-08-16 Hironobu Yamashita + + * gs-9.27 doesn't like snippets for TTF/TTC it seems gs-9.25 and gs-9.26 does not require snippets for TTF/TTC so it will be safe enough (origin/master, origin/HEAD) [22bc208] + +2019-05-22 Hironobu Yamashita + + * mention requirement of kpsewhich in help message [fd6f3d2] + +2019-05-19 Hironobu Yamashita + + * make sure CR is stripped [2120e9f] + +2019-05-19 Hironobu Yamashita + + * \/dev\/null -> $nul (origin/check-kpse) [1145435] + +2019-05-19 Norbert Preining + + * test for kpsewhich (Issue: #33) [68ae7ce] + +2019-04-06 Hironobu Yamashita + + * Add info for latest BIZ-UD fonts [ce8d802] + +2019-03-03 Hironobu Yamashita + + * Release 20190303.0 (tag: 20190303.0) [131b0f4] + +2019-03-03 Hironobu Yamashita + + * copyright year [0732219] + +2019-03-03 Hironobu Yamashita + + * cjk-gs-integrate-macos.pl: warning for macOS newer than known version [dd747ad] + +2018-11-10 Hironobu Yamashita + + * cjk-gs-integrate,pl: make sure CR is stripped [510c7a5] + +2018-11-08 Hironobu Yamashita + + * database/cjkgs-{noto,sourcehan}*.dat: priority [276565c] + +2018-11-08 Hironobu Yamashita + + * database/cjkgs-{noto,sourcehan}*.dat [18dcc41] + +2018-10-07 Hironobu Yamashita + + * forgotten removeonly database [d037c14] + +2018-10-07 Hironobu Yamashita + + * separate more database [106a2f5] + +2018-09-26 Hironobu Yamashita + + * cjk-gs-integrate-macos.pl: support 10.14 Mojave (mostly safe) [4aa6618] + +2018-09-26 Hironobu Yamashita + + * separate cjkuni database [d285e93] + +2018-09-26 Hironobu Yamashita + + * separate fandol database [2bc5564] + +2018-09-26 Hironobu Yamashita + + * separate arphic database, more [adf6ae2] + +2018-09-26 Hironobu Yamashita + + * separate arphic database [30fcfed] + +2018-09-26 Hironobu Yamashita + + * separate monotype database [2a38d6d] + +2018-09-26 Hironobu Yamashita + + * separate dynacomware taiwan [d279791] + +2018-09-26 Hironobu Yamashita + + * tools/fontlist_mac.sh: Font5 [dac2a0b] + +2018-08-15 Hironobu Yamashita + + * more debug code [4d6c622] + +2018-08-15 Hironobu Yamashita + + * add bizud database [1958d12] + +2018-08-02 Hironobu Yamashita + + * Adobe-Japan1-7 [a5bc97b] + +2018-08-02 Hironobu Yamashita + + * hidden option --strict-psname for me debugging [2f10f6c] + +2018-08-01 Hironobu Yamashita + + * execute 'mktexlsr' when --link-texmf is enabled [2d20f05] + +2018-08-01 Hironobu Yamashita + + * cleanup code [c28d11d] + +2018-08-01 Hironobu Yamashita + + * cjkgs-morisawa-extra is not ready [9ff11f7] + +2018-05-20 Hironobu Yamashita + + * add heisei database (more) [7e0eeba] + +2018-05-20 Hironobu Yamashita + + * add heisei database [2b3a5e4] + +2018-05-19 Hironobu Yamashita + + * separate apple database [876176d] + +2018-05-19 Hironobu Yamashita + + * information for apple database [1fcc897] + +2018-05-06 Hironobu Yamashita + + * separate apple database [7f9f0b8] + +2018-03-31 Hironobu Yamashita + + * sort keys for $bntofn without this, link target differs from time to time. e.g. Office for Mac 2016 have the same font files for Excel, Word and PowerPoint. [796fd66] + +2018-03-06 Hironobu Yamashita + + * Release 20180306.0 (tag: 20180306.0) [409e696] + +2018-03-06 Hironobu Yamashita + + * release.sh [4205a94] + +2018-03-06 Hironobu Yamashita + + * release.sh [0ee14c4] + +2018-02-18 Hironobu Yamashita + + * database helper scripts [5cae691] + +2018-02-18 Hironobu Yamashita + + * Makefile, release.sh: adjustment [ba488b3] + +2018-02-18 Hironobu Yamashita + + * move database files to database/ [63f9b4e] + +2018-02-15 Hironobu Yamashita + + * don't discard when otfinfo exits with non-zero [9e630e3] + +2018-02-15 Hironobu Yamashita + + * forgotten initialization of casefold flag [9abf580] + +2018-02-15 Hironobu Yamashita + + * Guard against unavailable 'otfinfo' command, skip OTC/TTC [bab740e] + +2018-02-15 Hironobu Yamashita + + * Use 'otfinfo' command for casefolding search safety (WIP) [fccf54a] + +2018-01-13 Hironobu Yamashita + + * cjk-gs-integrate-macos.pl: typo [ca1bba1] + +2018-01-13 Hironobu Yamashita + + * Add a wrapper cjk-gs-integrate-macos.pl [f820eec] + +2018-01-13 Hironobu Yamashita + + * Add typebank database (based on Win10 Fall Creators Update) [e5a9733] + +2017-12-21 Hironobu Yamashita + + * removeonly database should be read only in cleanup mode [cbb0b84] + +2017-12-21 Hironobu Yamashita + + * separate ume database [b1a2269] + +2017-12-11 Hironobu Yamashita + + * separate mogamobo database [cb36720] + +2017-12-08 Hironobu Yamashita + + * regenerate README.md [3eca807] + +2017-12-08 Hironobu Yamashita + + * tools/release.sh: adjusted [789b6c7] + +2017-12-08 Hironobu Yamashita + + * built-in database does not support >=10.8 [59f0912] + +2017-12-08 Hironobu Yamashita + + * forgotten entry for removeonly database [6e03baf] + +2017-12-08 Hironobu Yamashita + + * add removeonly database [2e16cdc] + +2017-12-08 Hironobu Yamashita + + * tweaked database for sierra/highsierra [3281f12] + +2017-12-08 Hironobu Yamashita + + * implement 'RMVname' entry for removing-only database [6e49733] + +2017-12-03 Hironobu Yamashita + + * CRLF -> LF [a5db0ee] + +2017-12-02 Hironobu Yamashita + + * separate founder database [afe9fc5] + +2017-12-02 Hironobu Yamashita + + * separate adobe database [983cc3b] + +2017-12-02 Hironobu Yamashita + + * separate solaris database [d27777a] + +2017-12-02 Hironobu Yamashita + + * Add '/Library/Application Support/Apple/Fonts//' to search path [b3caba8] + +2017-11-26 Hironobu Yamashita + + * checked latest CMap resources [9c274fb] + +2017-11-26 Hironobu Yamashita + + * add simli.ttf and simyou.ttf [44e62dd] + +2017-11-25 Hironobu Yamashita + + * separate toppan database [125a2a3] + +2017-11-25 Hironobu Yamashita + + * cjkgs-morisawa.dat: non-existent ShinMGoPr5-* [7609991] + +2017-11-25 Hironobu Yamashita + + * separate fontworks database [c1c9735] + +2017-11-18 Hironobu Yamashita + + * special case for native CID fonts in ancient days [b1b0d5f] + +2017-11-18 Hironobu Yamashita + + * fix a mistake in previous commit [6c131a8] + +2017-11-18 Hironobu Yamashita + + * handle tlgs.win32 pre-shipped cidfmap [5458fba] + +2017-11-18 Hironobu Yamashita + + * separate microsoft database [2f22f8d] + +2017-11-17 Hironobu Yamashita + + * support more aliases [9c81832] + +2017-11-17 Hironobu Yamashita + + * update help message [56f97aa] + +2017-11-12 Hironobu Yamashita + + * allow partial comment [c4119ff] + +2017-11-12 Hironobu Yamashita + + * separate dynacomware database [005f5c2] + +2017-11-11 Hironobu Yamashita + + * separate macOS-specific sinotype database [918d868] + +2017-11-11 Hironobu Yamashita + + * update sinotype database (WIP) [48de9e3] + +2017-11-10 Hironobu Yamashita + + * rename cjkgs-morisawa-standard.dat -> cjkgs-morisawa.dat (aminophen/master) [3afc59a] + +2017-11-10 Hironobu Yamashita + + * update sinotype database [e1e781c] + +2017-11-09 Hironobu Yamashita + + * database comment (more) [16446f9] + +2017-11-09 Hironobu Yamashita + + * database comment (more) [27de76e] + +2017-11-09 Hironobu Yamashita + + * database comment [b2b8c70] + +2017-11-09 Hironobu Yamashita + + * update sinotype database (WIP) [e35f7bf] + +2017-11-09 Hironobu Yamashita + + * separate sinotype database (WIP) [2e41fae] + +2017-11-09 Hironobu Yamashita + + * database order [2d749fd] + +2017-10-29 Hironobu Yamashita + + * Update README-macos.md [c53e9be] + +2017-10-29 Hironobu Yamashita + + * tweaked datbase [cec6e62] + +2017-10-29 Hironobu Yamashita + + * separate yu-osx/win database [9bbf637] + +2017-10-29 Hironobu Yamashita + + * perl syntax [3711113] + +2017-10-29 Hironobu Yamashita + + * Support 'INCLUDE' syntax in database [a884634] + +2017-10-29 Hironobu Yamashita + + * Rename: cjkgs-adobe.dat -> cjkgs-ryokana.dat [b4cee4e] + +2017-10-26 Hironobu Yamashita + + * Update help message, regenerate README.md [363cda0] + +2017-10-26 Hironobu Yamashita + + * separate hiragino database [07bd9c2] + +2017-10-26 Hironobu Yamashita + + * separate kozuka database [a56a8e3] + +2017-10-22 Hironobu Yamashita + + * Shorten .dat namespace (macos), separate morisawa standard [a49e730] + +2017-10-22 Hironobu Yamashita + + * Removed non-existent A-OTF-Jun101Pr6N-Light.otf entry [d675ad6] + +2017-10-21 Hironobu Yamashita + + * Add cjk-gs-integrate-adobe.dat (ryokana) [994fb3e] + +2017-10-14 Hironobu Yamashita + + * dump PSName only when required [94021d0] + +2017-10-01 Norbert Preining + + * fix format [0053b99] + +2017-10-01 Norbert Preining + + * work on the README-macos [6d2e22b] + +2017-10-01 Hironobu Yamashita + + * Add GitHub repository URL [88fed5d] + +2017-10-01 Hironobu Yamashita + + * README-macos.md: more information [4db2895] + +2017-10-01 Hironobu Yamashita + + * Add draft README-macos.md, adjust tools/release.sh [9f6464f] + +2017-10-01 Hironobu Yamashita + + * Add Makefile [2ad0d1b] + +2017-10-01 Hironobu Yamashita + + * revised debug level (0:none -- 3:most verbose) [5fe9d00] + +2017-10-01 Hironobu Yamashita + + * --fontdef-add can be given multiple times [70b5042] + +2017-09-30 Hironobu Yamashita + + * database overwrite warning too noisy, switching to debug [e0fad54] + +2017-09-30 Hironobu Yamashita + + * ignore cjk-gs-integrate-data.dat this is the default of --dump-data [cdeaed6] + +2017-09-30 Hironobu Yamashita + + * search external database using kpsewhich -format=miscfont [3987272] + +2017-09-30 Hironobu Yamashita + + * Warning on Mac OS 10.11 or later without --fontdef-add [05599ae] + +2017-09-30 Hironobu Yamashita + + * separate hiragino chinese [6c012e3] + +2017-09-30 Hironobu Yamashita + + * Clean up macOS database [d516eab] + +2017-09-28 doraTeX + + * Separate macOS fonts [9c48c51] + +2017-09-27 Hironobu Yamashita + + * implement --fontdef-add option this works as an addition (not a substitution) to the already-available database. it would be useful for OS-specific additional database [2562926] + +2017-09-23 Hironobu Yamashita + + * SubfontID is unnecessary for TTF, omit it [0c5187e] + +2017-09-23 Hironobu Yamashita + + * re-implement --dump-data option Now usable for dumping effective database only [d3e2154] + +2017-09-23 Hironobu Yamashita + + * --dump-data option is unsupported temporarily I'll re-implement this option as a dumper of only effective database, not a merely copying the built-in database [f56585f] + +2017-09-23 Hironobu Yamashita + + * fix typo in database [faafa60] + +2017-09-23 Hironobu Yamashita + + * start code refactoring I'd like to implement --fontdef-add option, to allow multiple database input. First in this commit, separate database catching and database reading. [c06d27d] + +2017-09-23 Hironobu Yamashita + + * tweaked [bcfc0b1] + +2017-07-01 Hironobu Yamashita + + * Add lowercase link name for simsun.ttf [42e61f0] + +2017-06-24 Hironobu Yamashita + + * more likely to find gswin32c Resource [1a873db] + +2017-06-24 Hironobu Yamashita + + * strict check for exclusive options [ca86015] + +2017-06-24 Hironobu Yamashita + + * Release 20170624.0 (tag: 20170624.0) [962f02b] + +2017-06-24 Hironobu Yamashita + + * Better comments, update README.md from source [b204205] + +2017-06-24 Hironobu Yamashita + + * Re-add MS-UIGothic (reverts 9a724ad), add YuGothic-UI These are supported by cidfmap.TeXLive by tlgs.win32, so we should restore it [ef00a77] + +2017-06-24 Hironobu Yamashita + + * Add more database (based on WPS Office for Linux) [3dcdd5f] + +2017-06-23 Hironobu Yamashita + + * TTC preferred to TTF for Yu-win, OTC warnings to debug (aminophen/cleanup) [35065fe] + +2017-06-21 Hironobu Yamashita + + * more cp932 for win32 console (list-aliases, list-fonts) [d8518a4] + +2017-06-20 Hironobu Yamashita + + * NTFS symlink on win32 has file size = 0, we can distinguish it [ab9b543] + +2017-06-20 Hironobu Yamashita + + * More cleanup operation (#5) [7e03a4a] + +2017-06-20 Hironobu Yamashita + + * Implement a general cleanup operation (trial) (#5) [bfb8138] + +2017-06-19 Hironobu Yamashita + + * tidy up the order of sub functions [47e08a1] + +2017-06-18 Hironobu Yamashita + + * add more comments [4a432a0] + +2017-06-18 Hironobu Yamashita + + * check --list-fonts and --list-all-aliases conflict [62eb267] + +2017-06-18 Hironobu Yamashita + + * fix uninitialized types for --list-all-aliases this bug was introduced when OTC is excluded from aliases [5d7167b] + +2017-06-18 Hironobu Yamashita + + * tidy up (more) [b61e550] + +2017-06-18 Hironobu Yamashita + + * support --winbatch=[FILE] and --dump-data=[FILE], tidy up [ed28a2b] + +2017-06-17 Hironobu Yamashita + + * --markdown assumes --help too [97e262b] + +2017-06-17 Hironobu Yamashita + + * Update README.md from source [2e46b62] + +2017-06-17 Hironobu Yamashita + + * Add --dump-data option, for easily editing built-in database [de30570] + +2017-06-17 Hironobu Yamashita + + * Move info_list_aliases to sub [bb5f7b4] + +2017-06-17 Hironobu Yamashita + + * the issue has been settled in 0d03be7 [786b870] + +2017-06-17 Hironobu Yamashita + + * sort keys to output lines in the same order for each run [06567da] + +2017-06-16 Hironobu Yamashita + + * Fix danglink links for NTFS on win32, kpsewhich -all [0d03be7] + +2017-05-13 Hironobu Yamashita + + * Remove MS-UIGothic database [9a724ad] + +2017-05-13 Hironobu Yamashita + + * Add HiraMin{Pro,ProN}-W2 database [194bfd2] + +2017-05-05 Hironobu Yamashita + + * Release 20170505.0 (tag: 20170505.0) [1f040e5] + +2017-05-05 Hironobu Yamashita + + * snippets: %% -> %, %%%% -> %% seems enough [ba0b225] + +2017-05-05 Hironobu Yamashita + + * help message: search paths all if available [727f51c] + +2017-05-05 Hironobu Yamashita + + * update README.md from source [61ca8ec] + +2017-05-05 Hironobu Yamashita + + * Merge branch 'win32-support' [a8528dc] + +2017-05-05 Hironobu Yamashita + + * fix a mistake, adjust help message for search path (aminophen/win32-support) [8fd2c88] + +2017-05-02 Hironobu Yamashita + + * more TODO for win32 [b2d0cf5] + +2017-05-02 Hironobu Yamashita + + * the order of option declaration [584c0d5] + +2017-05-02 Hironobu Yamashita + + * throw an error for machine-readable alone [bbbd319] + +2017-04-29 Hironobu Yamashita + + * file check [0cf210f] + +2017-04-27 Hironobu Yamashita + + * fix a mistake in previous commit [e73ca96] + +2017-04-27 Hironobu Yamashita + + * ensure new line when adding .runlibfile line [d12f6bb] + +2017-04-27 Hironobu Yamashita + + * more chinese/korean database from debian packages [cf306ed] + +2017-04-26 Hironobu Yamashita + + * comment [78cd68b] + +2017-04-26 Hironobu Yamashita + + * default to symlink for win32, add --hardlink option [bd87af7] + +2017-04-25 Hironobu Yamashita + + * change output to lib/ for tlgs, winbatch instruction [aebfd74] + +2017-04-25 Hironobu Yamashita + + * tweaked [f487ab8] + +2017-04-24 Hironobu Yamashita + + * symplify code for Encode::decode -> Encode::encode chain [ca81c6f] + +2017-04-22 Hironobu Yamashita + + * simplify code [b2c9c77] + +2017-04-22 Hironobu Yamashita + + * database sync [6ebc456] + +2017-04-22 Hironobu Yamashita + + * Determine tlgs or native-gs (work in progress) [2eb249a] + +2017-04-15 Hironobu Yamashita + + * better aliases [362084c] + +2017-03-22 Hironobu Yamashita + + * typo in previous commit [092b662] + +2017-03-22 Hironobu Yamashita + + * Add --winbatch option [cea39ee] + +2017-03-17 Norbert Preining + + * add a TODO concerning symlink generation on Windows [ab4a6ca] + +2017-03-17 Norbert Preining + + * simplify code [c755d0f] + +2017-03-18 Hironobu Yamashita + + * Add more database for Mac [3254356] + +2017-03-18 Hironobu Yamashita + + * Forgotten fonts for Mac OS X 10.7.5 (Lion) [f8de6fa] + +2017-03-17 Hironobu Yamashita + + * Add more database for Office for Mac 2016 [0b9f826] + +2017-03-17 Hironobu Yamashita + + * Support for Office for Mac 2016 search path (typo) [8460b62] + +2017-03-17 Hironobu Yamashita + + * Support for Office for Mac 2016 search path [4db0f57] + +2017-03-17 Hironobu Yamashita + + * Add database for Office for Mac 2016, MSOffice 2010 [86fce22] + +2017-03-09 Hironobu Yamashita + + * More database for win32 [901274f] + +2017-03-09 Norbert Preining + + * Release 20170309.0 (tag: 20170309.0) [8ce526f] + +2017-03-07 Hironobu Yamashita + + * Update wrt. master [6503d0e] + +2017-03-07 Hironobu Yamashita + + * comment [efcd6ec] + +2017-03-07 Hironobu Yamashita + + * Fix for Hiragino aliases (#23) [b1fb331] + +2017-03-03 Hironobu Yamashita + + * Hiragino aliases (gs9.20 without OTC support) [1c494b6] + +2017-03-03 Hironobu Yamashita + + * bug fix for morisawa aliases [bcbce0c] + +2017-02-24 Norbert Preining + + * update release script for CTAN location [f2ae343] + +2017-02-20 Norbert Preining + + * Release 20170220.0 (tag: 20170220.0) [4997503] + +2017-02-20 Norbert Preining + + * update copyright [a865618] + +2017-02-20 Norbert Preining + + * update README.md from source [a22f890] + +2017-02-08 Hironobu Yamashita + + * alias priority: New priority for Simplified/Traditional Chinese [4f02658] + +2017-02-08 Hironobu Yamashita + + * alias priority: Kozuka before Yu, Adobe before Solaris [4b3e12c] + +2017-02-08 Hironobu Yamashita + + * Fix for priority numbers (#12) [97b0c63] + +2017-01-18 Hironobu Yamashita + + * Support for ptex-fontmaps 20170114.0 (ume, yu etc.) [cd91c2f] + +2017-01-14 Hironobu Yamashita + + * Win32 support: symlink/unlink consistency, quote [0445c18] + +2017-01-14 Hironobu Yamashita + + * Win32 support: encode/decode (cp932 <=> utf8) [6e51c3d] + +2017-01-14 Hironobu Yamashita + + * Reduce file open/close (again) [5c7e946] + +2017-01-13 Hironobu Yamashita + + * Add data for psnames-for-otf also for aliases [5142e98] + +2017-01-12 Hironobu Yamashita + + * better code [d439cac] + +2017-01-12 Hironobu Yamashita + + * Reduce file open/close for winbatch and otfps [6cff16a] + +2016-12-29 aminophen + + * Add fandol database (typo) [7c15bdf] + +2016-12-29 aminophen + + * Add fandol database [1de88ed] + +2016-12-24 aminophen + + * Generate psnames-for-otf only when --otfps is given [a1fbdb3] + +2016-12-23 aminophen + + * Experiment for supporting win32 (again) [ba45bee] + +2016-12-23 aminophen + + * Experiment for supporting win32 [2846489] + +2016-12-14 Norbert Preining + + * fix indentation, add better explanation for case-insensitve problem [b73e45b] + +2016-12-14 Norbert Preining + + * update README.md with the changes included recently [0330718] + +2016-12-14 aminophen + + * Add moga-mobo database [de56b28] + +2016-12-14 Norbert Preining + + * Merge pull request #20 from aminophen/ttc-ttf-otc [72cc9f1] + +2016-12-13 aminophen + + * Fix for Name entry different from PSName (aminophen/ttc-ttf-otc) [fcd2515] + +2016-12-13 aminophen + + * Complete TTC/OTC database (thanks to @doraTeX) [67a90e3] + +2016-12-12 aminophen + + * Parse 'Filename:' entry for backward compatibility [ce22753] + +2016-12-12 aminophen + + * Show subfont number only when TTC/OTC (even zero) [4ea9cab] + +2016-12-12 aminophen + + * Fix typo in d3ad4b4 [515e303] + +2016-12-12 aminophen + + * Do not use OTC font as aliases [780f3b2] + +2016-12-12 aminophen + + * Forgotten initialization [ebb6326] + +2016-12-12 aminophen + + * Separate OTC/TTC/TTF (experiment) [d3ad4b4] + +2016-12-10 Yusuke Terada + + * Merge pull request #19 from doraTeX/master [3db9b75] + +2016-12-10 doraTeX + + * Revert unintended Unicode normalization [83267e7] + +2016-12-10 Yusuke Terada + + * Merge pull request #18 from doraTeX/master [2666a1d] + +2016-12-10 Yusuke Terada + + * cjk-gs-integrate.pl: Fix regex for /bin/gs [2e5d027] + +2016-12-10 doraTeX + + * cjk-gs-integrate.pl: Fix regex for /bin/gs [a41ddd0] + +2016-12-09 aminophen + + * cjk-gs-integrate.pl: change ttfname -> ttname [9bdfd20] + +2016-12-06 aminophen + + * Fix a mistake in previous commit [daf1c07] + +2016-12-06 aminophen + + * cjk-gs-integrate.pl: more database (CJK-Unifonts) [513d8b1] + +2016-12-05 aminophen + + * Merge branch 'master' of https://github.com/texjporg/cjk-gs-support [ceb9542] + +2016-12-05 aminophen + + * cjk-gs-integrate.pl: more database (arphic) [33b19ff] + +2016-12-05 Norbert Preining + + * adjust header for copyright and url [4da74ae] + +2016-12-03 aminophen + + * Fix for texjporg/jfontmaps#6 (second attempt) [2374e0c] + +2016-12-03 aminophen + + * More .gitignore [e3f323e] + +2016-12-02 aminophen + + * cjk-gs-integrate.pl: Fix for database [ec61fef] + +2016-10-26 Norbert Preining + + * Release 20161026.0 (tag: 20161026.0) [af37d2e] + +2016-10-26 Norbert Preining + + * Merge pull request #16 from aminophen/master [480b932] + +2016-10-26 aminophen + + * Finished macOS Sierra CJK font database. [7763ba6] + +2016-10-07 Norbert Preining + + * Merge pull request #15 from aminophen/master [5c852da] + +2016-10-05 aminophen + + * Small fix for comments (thanks to @doraTeX) [40017a9] + +2016-10-05 aminophen + + * Add CK font list (partial) [90fae6c] + +2016-10-04 aminophen + + * Add macOS Sierra fonts (Japan) [003e010] + +2016-10-02 Norbert Preining + + * add Yamashita-san to help and README [9fb17a2] + +2016-10-02 Norbert Preining + + * Merge pull request #14 from aminophen/master [8c8e81e] + +2016-10-02 aminophen + + * Add more korean fonts, priority settings [9de8aca] + +2016-10-02 aminophen + + * Add more korean fonts, priority settings [db77c33] + +2016-10-02 aminophen + + * small fixups [dfaf936] + +2016-10-02 aminophen + + * small fixups [206ffec] + +2016-10-02 aminophen + + * restore previous code [ed5c381] + +2016-10-01 Norbert Preining + + * small fixups [38a2059] + +2016-10-01 Norbert Preining + + * Merge pull request #13 from aminophen/gsres [9f702b2] + +2016-10-01 aminophen + + * Directory check [4845c37] + +2016-10-01 aminophen + + * Assume relative path of gs-resource [8e54dc3] + +2016-09-29 Norbert Preining + + * update copyright year [df1fd69] + +2016-09-29 Norbert Preining + + * Merge pull request #11 from aminophen/master [5993098] + +2016-09-29 aminophen + + * Add baekmuk (korean) -- now the lowest priority [e6edb62] + +2016-09-29 Norbert Preining + + * Merge pull request #10 from aminophen/master [0171ef8] + +2016-09-28 aminophen + + * Use 'sep' instead of ':' [f87a35b] + +2016-09-27 aminophen + + * Workaround (not setting OPENTYPEFONTS/TTFONTS explicitly) [7d0f926] + +2016-09-27 aminophen + + * Fix a mistake [10e8fd0] + +2016-09-27 aminophen + + * Special name (IPAMincho.ttf etc) not needed [ffd8e79] + +2016-09-27 Norbert Preining + + * Merge pull request #8 from aminophen/master [2619378] + +2016-09-26 aminophen + + * Prevent ttc -> ttf symlink (Songti/STSong, Kaiti/STKaiti) [043feee] + +2016-09-25 aminophen + + * TODO: comment about wrong symlink [3009288] + +2016-09-24 aminophen + + * Fix for STHeiti family [91455e9] + +2016-09-24 aminophen + + * cleanup [7b0d0e3] + +2016-09-24 aminophen + + * Add ipa-proportional database [548fa68] + +2016-09-24 aminophen + + * Add yuwin10 fonts to yu-win database [e7acb2c] + +2016-09-24 aminophen + + * Fix for hiragino database [805e1b1] + +2016-09-24 aminophen + + * Fix morisawa database [68f500d] + +2016-09-23 aminophen + + * typo [5d116a1] + +2016-09-23 aminophen + + * Add /System/Library/Assets, /usr/share/fonts, recursive search [5b96e5a] + +2016-01-15 Norbert Preining + + * Release 20160115.0 (tag: 20160115.0) [bfb2c76] + +2016-01-15 Norbert Preining + + * ship README.md as is, supported by CTAN now [ad27d2b] + +2016-01-15 Norbert Preining + + * remove unrelated file [5f10f56] + +2016-01-15 Norbert Preining + + * Release 20160115.0 [5a42230] + +2016-01-14 Norbert Preining + + * if --link-texmf is passed without argument use TEXMFLOCAL again [a4a8228] + +2015-10-21 Norbert Preining + + * remove cleanup_link and bruteforce [1f9649d] + +2015-10-21 Norbert Preining + + * fix TTFONT env name [2eee0ce] + +2015-10-20 Norbert Preining + + * resolve symlinks to make sure we don't catch the wrong files [9f68007] + +2015-10-20 Norbert Preining + + * put OSFONTDIR before OPENTYPEFONTS and TTFFONTS [c28684d] + +2015-10-19 Norbert Preining + + * fix problems with links pointing to itself [76e5f82] + +2015-10-19 Norbert Preining + + * fix name of otf font links in texmf dir [0fc6e58] + +2015-10-11 Norbert Preining + + * rework link_font to warn only if necessary [c2b986d] + +2015-10-11 Norbert Preining + + * remove end-of-lines of gs output [157a150] + +2015-10-10 Norbert Preining + + * better extraction of gs resource (Issue: #6) [c01d79e] + +2015-10-10 Norbert Preining + + * list other candidates for --list-fonts and --info [bb03240] + +2015-10-02 Norbert Preining + + * Release 20151002.0 (tag: 20151002.0) [0cab259] + +2015-10-02 Norbert Preining + + * update documentation [403383d] + +2015-09-28 Norbert Preining + + * update README.md for current status [789f124] + +2015-09-28 Norbert Preining + + * add --remove option [fea9b13] + +2015-09-28 Norbert Preining + + * use only --link-texmf with optional argument [d2ff6f8] + +2015-09-25 Norbert Preining + + * add HIraginoSans-W2 [10ca035] + +2015-09-24 Norbert Preining + + * use ttfname also for CIDFSubst link and cidfmap entry, add texmfout option [6acc38a] + +2015-09-24 Norbert Preining + + * ttf link name support [970dcf0] + +2015-09-24 Norbert Preining + + * auto-determine type of fontfile, and make type file specific [f8b7032] + +2015-09-22 Norbert Preining + + * Merge pull request #4 from doraTeX/master [fed6b30] + +2015-09-22 doraTeX + + * Update font definitions for the latest El Capitan [86d28d1] + +2015-07-24 Norbert Preining + + * Merge pull request #1 from munepi/master [98e37ef] + +2015-07-24 Munehiro Yamamoto + + * cjk-gs-integrate.pl (encode_list): added 2004-{H,V} for Japan [51f4ffd] + +2015-07-24 Norbert Preining + + * add ISX 10.11 El Capitan fonts [dbe04b4] + +2015-05-07 Norbert Preining + + * fix line endings [81f0a82] + +2015-05-07 Norbert Preining + + * remove x bit from prn-variants.tex [202fc80] + +2015-05-07 Norbert Preining + + * rename README.md to README on release [25dcf6d] + +2015-05-06 Norbert Preining + + * Release 20150506.1 (tag: 20150506.1) [daf2e89] + +2015-05-06 Norbert Preining + + * reactivate aliases for MSung-Light and STFangsong-Light [bf0d437] + +2015-05-06 Norbert Preining + + * remove debug statement [cf81cb7] + +2015-05-06 Norbert Preining + + * Release 20150506.0 (tag: 20150506.0) [24db8e7] + +2015-05-06 Norbert Preining + + * add a release script [593eb64] + +2015-05-06 Norbert Preining + + * genrated md and help output from the same source [32c57ed] + +2015-05-06 Norbert Preining + + * add /Library/Fonts/Microsoft to search path, add --link-texmflocal option [fc80300] + +2015-05-06 Norbert Preining + + * provide family like aliases [32a827a] + +2015-05-06 Norbert Preining + + * remove provides for two imaginary fonts ;-) [f55f662] + +2015-05-06 Norbert Preining + + * add more Kozuka fonts (not used in jfontmaps) [32d46e9] + +2015-05-06 Norbert Preining + + * make gulim provide HyGoThic-Medium in case Dotum is not available [b41adbb] + +2015-05-06 Norbert Preining + + * STKaiti-Adobe-CNS1 update from Bruno [40ad49f] + +2015-05-06 Norbert Preining + + * add MidashiGo(Pro) provides, fix FutoMin provides for IPA [a173ce6] + +2015-04-24 Norbert Preining + + * make link checking more resilient to errors [fa083ce] + +2015-04-24 Norbert Preining + + * terminate immediately on windows, add some TODOs [8a12b5a] + +2015-04-24 Norbert Preining + + * adjust prefs, add warning when provide priorities agree [c1fffb1] + +2015-04-24 Norbert Preining + + * add more fonts from Microsoft 2015 for Apple [d9348d4] + +2015-04-24 Norbert Preining + + * add --list-all-aliases command [c040122] + +2015-04-23 Norbert Preining + + * add --force option [e4d9ce5] + +2015-04-21 Norbert Preining + + * add decomposed form filenames for HFS [28c79ea] + +2015-04-21 Norbert Preining + + * add support for reading files from file list, fix some fonts [a6a4c34] + +2015-04-21 Norbert Preining + + * update README.md [3d5090f] + +2015-04-21 Norbert Preining + + * lots of changes, automated testing [8c73fa0] + +2015-04-21 Norbert Preining + + * order alias output [66bbe4a] + +2015-04-21 Norbert Preining + + * really fix Morisawa fonts [21be97b] + +2015-04-21 Norbert Preining + + * make morisawa fonts work [9462210] + +2015-04-21 Norbert Preining + + * add Gulim fonts for HYRGoThic-Medium [1acf5f3] + +2015-04-20 Norbert Preining + + * remove the strange alias with extra - at the end [5105987] + +2015-04-20 Norbert Preining + + * add ~/Library/Fonts and /Network/Library/Fonts on unix/mac add alas for HYRGoThic-Medium [7c8f87f] + +2015-04-20 Norbert Preining + + * link ttf fonts *not* into Font dir, but into CIDFSubst [513adae] + +2015-04-20 Norbert Preining + + * first step in Morisawa support, add PSName to font database [ef59d24] + +2015-04-20 Norbert Preining + + * provide more Foobar- font names for GhostScript [7288e8c] + +2015-04-20 Norbert Preining + + * sort alias names, remove last Std alias [2d47a81] + +2015-04-20 Norbert Preining + + * rank Adobe CK fonts higher, fix list aliases ouput [0d4b693] + +2015-04-20 Norbert Preining + + * add priority to output of aliases [cb5b296] + +2015-04-19 Norbert Preining + + * list aliases separated in categories [751a7ee] + +2015-04-19 Norbert Preining + + * add entries for Adobe's CK fonts [8c9fb77] + +2015-04-19 Norbert Preining + + * add more strange provides ... [6567c15] + +2015-04-19 Norbert Preining + + * add more aliases after dicsussion with Bruno [e1d089c] + +2015-04-16 Norbert Preining + + * formatting [2f07c70] + +2015-04-16 Norbert Preining + + * README.md and help output editing [ffd1988] + +2015-04-16 Norbert Preining + + * update README.md [b6667d5] + +2015-04-16 Norbert Preining + + * lots of updates, in particular ttf linking and user aliases [060376a] + +2015-04-14 Norbert Preining + + * priorities for file names, unify priority writing [1d2727f] + +2015-04-13 Norbert Preining + + * remove font-definitions.txt, always outdated [b532745] + +2015-04-13 Norbert Preining + + * add more alias for Korean [c610bb8] + +2015-04-13 Norbert Preining + + * add TODO, gitingore, and some tests [8f4de68] + +2015-04-13 Norbert Preining + + * fixes for Korean [287b64d] + +2015-04-11 Norbert Preining + + * fix subfonts in ttcs, add more fonts for Korea (not working) [243b61e] + +2015-04-08 Norbert Preining + + * more name fixes from Bruno [33fb493] + +2015-04-08 Norbert Preining + + * update font-definitions file [fb1135a] + +2015-04-08 Norbert Preining + + * Korean support (hopefully), fix some name errors [1bb8aed] + +2015-04-08 Norbert Preining + + * add some provides for TC SC and Korean, and fixes, thanks Bruno [5b754be] + +2015-04-08 Norbert Preining + + * fix spaces in file names [d7b1ab8] + +2015-04-08 Norbert Preining + + * fix Dumper usage [05e5789] + +2015-04-08 Norbert Preining + + * load Data::Dumper only when debugging [a839074] + +2015-04-08 Norbert Preining + + * add font-definitions for ease of access, but not really used [35302c0] + +2015-04-08 Norbert Preining + + * fully working script including aliases [283d64a] + +2015-04-07 Norbert Preining + + * more or less fully functional [88a478b] + +2015-04-07 Norbert Preining + + * fix typo in cjk-font-definitons [eed0614] + +2015-04-07 Norbert Preining + + * bummer [d111a8d] + +2015-04-07 Norbert Preining + + * fix warning for missing font defs [4130ced] + +2015-04-07 Norbert Preining + + * don't bail out if gs is not found, for now [b625240] + +2015-04-07 Norbert Preining + + * more work [5b4489d] + +2015-04-07 Norbert Preining + + * first commit [8011270] + diff --git a/fonts/utilities/cjk-gs-integrate/Makefile b/fonts/utilities/cjk-gs-integrate/Makefile new file mode 100644 index 0000000000..21f16209ff --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/Makefile @@ -0,0 +1,20 @@ +PROJECT=cjk-gs-integrate +TEXMF = $(shell kpsewhich -var-value=TEXMFHOME) + +.PHONY: default install release +default: README.md + + +README.md: cjk-gs-integrate.pl + perl cjk-gs-integrate.pl --markdown > README.md + +install: README.md + mkdir -p ${TEXMF}/doc/fonts/$(PROJECT) + cp *.md ${TEXMF}/doc/fonts/$(PROJECT)/ + mkdir -p ${TEXMF}/scripts/$(PROJECT) + cp *.pl ${TEXMF}/scripts/$(PROJECT)/ + mkdir -p ${TEXMF}/fonts/misc/$(PROJECT) + cp database/*.dat ${TEXMF}/fonts/misc/$(PROJECT)/ + +release: README.md + sh tools/release.sh diff --git a/fonts/utilities/cjk-gs-integrate/README.md b/fonts/utilities/cjk-gs-integrate/README.md new file mode 100644 index 0000000000..9f948f7b24 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/README.md @@ -0,0 +1,226 @@ +Configuring Ghostscript for CJK CID/TTF fonts +============================================= + +This script searches a list of directories for CJK fonts, and makes +them available to an installed Ghostscript. In the simplest case with +sufficient privileges, a run without arguments should effect in a +complete setup of Ghostscript. +Search is done using the kpathsea library, in particular `kpsewhich` +program. To run this script, you will need some TeX distribution in +your system. + +Usage +----- + +````` +[perl] cjk-gs-integrate[.pl] [OPTIONS] +````` + +#### Options #### + +````` + -o, --output DIR specifies the base output dir, if not provided, + the Resource directory of an installed Ghostscript + is searched and used. + -f, --fontdef FILE specify alternate set of font definitions, if not + given, the built-in set is used + --fontdef-add FILE specify additional set of font definitions, to + overwrite subset of built-in definitions; + can be given multiple times + -a, --alias LL=RR defines an alias, or overrides a given alias; + illegal if LL is provided by a real font, or + RR is neither available as real font or alias; + can be given multiple times + --filelist FILE read list of available font files from FILE + instead of searching with kpathsea + --link-texmf [DIR] link fonts into + DIR/fonts/opentype/cjk-gs-integrate + and + DIR/fonts/truetype/cjk-gs-integrate + where DIR defaults to TEXMFLOCAL + --otfps [DIR] generate configuration file (psnames-for-otf) into + DIR/dvips/ps2otfps + which is used by ps2otfps (developed by Akira Kakuto), + instead of generating snippets + --force do not bail out if linked fonts already exist + --remove try to remove instead of create + --cleanup try to clean up all possible links/snippets and + cidfmap.local/cidfmap.aliases, which could have been + generated in the previous runs + -n, --dry-run do not actually output anything + -q, --quiet be less verbose + -d, --debug output debug information, can be given multiple times + -v, --version outputs only the version information + -h, --help this help +````` + +#### Windows only options #### + +````` + --hardlink create hardlinks instead of symlinks + --winbatch [FILE] prepare a batch file for link generation, instead of + generating links right away + the batch file name defaults to makefontlinks.bat +````` + +#### Command like options #### + +````` + --dump-data [FILE] dump the set of font definitions which is currently + effective, where FILE (the dump output) defaults to + cjk-gs-integrate-data.dat; you can easily modify it, + and tell me with -f (or --fontdef) option + --only-aliases regenerate only cidfmap.aliases file, instead of all + --list-aliases lists the available aliases and their options, with the + selected option on top + --list-all-aliases list all possible aliases without searching for + actually present files + --list-fonts lists the fonts found on the system + --info combines the information of --list-aliases and + --list-fonts + --machine-readable output of --list-aliases is machine readable +````` + +Operation +--------- + +For each found TrueType (TTF) font it creates a cidfmap entry in + + /Init/cidfmap.local + -- if you are using tlgs win32, tlpkg/tlgs/lib/cidfmap.local instead + +and links the font to + + /CIDFSubst/ + +For each CID font it creates a snippet in + + /Font/ + +and links the font to + + /CIDFont/ + +The `` dir is either given by `-o`/`--output`, or otherwise searched +from an installed Ghostscript (binary name is assumed to be 'gs' on unix, +'gswin32c' on win32). + +Aliases are added to + + /Init/cidfmap.aliases + -- if you are using tlgs win32, tlpkg/tlgs/lib/cidfmap.aliases instead + +Finally, it tries to add runlib calls to + + /Init/cidfmap + -- if you are using tlgs win32, tlpkg/tlgs/lib/cidfmap + +to load the cidfmap.local and cidfmap.aliases. + +How and which directories are searched +-------------------------------------- + +Search is done using the kpathsea library, in particular using kpsewhich +program. By default the following directories are searched: + - all TEXMF trees + - `/Library/Fonts`, `/Library/Fonts/Microsoft`, `/System/Library/Fonts`, + `/System/Library/Assets`, `/Network/Library/Fonts`, + `~/Library/Fonts` and `/usr/share/fonts` (all if available) + - `/Applications/Microsoft Word.app/Contents/Resources/{Fonts,DFonts}`, + `/Applications/Microsoft Excel.app/Contents/Resources/{Fonts,DFonts}`, + `/Applications/Microsoft PowerPoint.app/Contents/Resources/{Fonts,DFonts}` + (all if available, meant for Office for Mac 2016) + - `c:/windows/fonts` (on Windows) + - the directories in `OSFONTDIR` environment variable + +In case you want to add some directories to the search path, adapt the +`OSFONTDIR` environment variable accordingly: Example: + +````` + OSFONTDIR="/usr/local/share/fonts/truetype//:/usr/local/share/fonts/opentype//" $prg +````` + +will result in fonts found in the above two given directories to be +searched in addition. + +Output files +------------ + +If no output option is given, the program searches for a Ghostscript +interpreter 'gs' and determines its Resource directory. This might +fail, in which case one need to pass the output directory manually. + +Since the program adds files and link to this directory, sufficient +permissions are necessary. + +Aliases +------- + +Aliases are managed via the Provides values in the font database. +At the moment entries for the basic font names for CJK fonts +are added: + +Japanese: + + Ryumin-Light GothicBBB-Medium FutoMinA101-Bold FutoGoB101-Bold + MidashiMin-MA31 MidashiGo-MB31 Jun101-Light + +Korean: + + HYSMyeongJo-Medium HYGoThic-Medium HYRGoThic-Medium + +Simplified Chinese: + + STSong-Light STSong-Regular STHeiti-Regular STHeiti-Light + STKaiti-Regular STFangsong-Light STFangsong-Regular + +Traditional Chinese: + + MSung-Light MSung-Medium MHei-Medium MKai-Medium + +In addition, we also include provide entries for the OTF Morisawa names: + + RyuminPro-Light GothicBBBPro-Medium + FutoMinA101Pro-Bold FutoGoB101Pro-Bold + MidashiMinPro-MA31 MidashiGoPro-MB31 Jun101Pro-Light + +The order is determined by the `Provides` setting in the font database. +That is, the first font found in this order will be used to provide the +alias if necessary. + +For the Japanese fonts: + Morisawa Pr6N, Morisawa, Hiragino ProN, Hiragino, + Kozuka Pr6N, Kozuka ProVI, Kozuka Pro, Kozuka Std, + Yu OS X, Yu Win, MS, + Moga-Mobo-ex, Moga-Mobo, IPAex, IPA, Ume + +For the Korean fonts: + (Hanyang,) Adobe, Solaris, MS, Unfonts, Baekmuk + +For the Simplified Chinese: + Adobe, Fandol, Hiragino, Founder, MS, CJKUnifonts, Arphic, CJKUnifonts-ttf + +For the Traditional Chinese: + Adobe, MS, CJKUnifonts, Arphic, CJKUnifonts-ttf + +#### Overriding aliases #### + +Using the command line option `--alias LL=RR` one can add arbitrary aliases, +or override ones selected by the program. For this to work the following +requirements of `LL` and `RR` must be fulfilled: + * `LL` is not provided by a real font + * `RR` is available either as real font, or as alias (indirect alias) + +Authors, Contributors, and Copyright +------------------------------------ + +The script and its documentation was written by Norbert Preining, based +on research and work by Yusuke Kuroki, Yusuke Terada, Bruno Voisin, +Hironobu Yamashita, Munehiro Yamamoto and the TeX Q&A wiki page. + +Maintained by Japanese TeX Development Community. For development, see + https://github.com/texjporg/cjk-gs-support + +The script is licensed under GNU General Public License Version 3 or later. +The contained font data is not copyrightable. + diff --git a/fonts/utilities/cjk-gs-integrate/cjk-gs-integrate.pl b/fonts/utilities/cjk-gs-integrate/cjk-gs-integrate.pl new file mode 100755 index 0000000000..6fce593611 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/cjk-gs-integrate.pl @@ -0,0 +1,2675 @@ +#!/usr/bin/env perl +# +# cjk-gs-integrate - setup Ghostscript for CID/TTF CJK fonts +# +# Copyright 2015-2019 by Norbert Preining +# Copyright 2016-2019 by Japanese TeX Development Community +# +# This work is based on research and work by (in alphabetical order) +# Yusuke Kuroki +# Yusuke Terada +# Bruno Voisin +# Munehiro Yamamoto +# Hironobu Yamashita +# and the Japanese TeX Q&A wiki page +# +# This file is licensed under GPL version 3 or any later version. +# For copyright statements see end of file. +# +# For development see +# https://github.com/texjporg/cjk-gs-support +# +# LIMITATIONS: +# - Running the script (with default mode = actual setup/removing operations) +# always overwrites "cidfmap.local" and "cidfmap.aliases" without asking, +# whose file names might be common enough. If you choose to run the script, +# leave these files untouched. (Do NOT edit these files by yourself!) +# (This note also applies to MacTeX pre-shipped configuration files.) +# +# TODO: +# - interoperability with kanji-config-updmap +# +# Note that symlink names should be consistent with ptex-fontmaps! + +$^W = 1; +use Getopt::Long qw(:config no_autoabbrev ignore_case_always); +use File::Basename; +use File::Path qw(make_path); +use Cwd 'abs_path'; +use strict; + +(my $prg = basename($0)) =~ s/\.pl$//; +my $version = '20190816.0'; + +if (win32()) { + # conversion between internal (utf-8) and console (cp932): + # multibyte characters should be encoded in cp932 at least during + # * kpathsea file search + # * abs_path existence test + # * input/output on console + # * batch file output + # routines. make sure all of these should be restricted to win32 mode! + # TODO: what to do with $opt_fontdef, @opt_aliases and $opt_filelist, + # with regard to encodings? + use utf8; + use Encode; + # some perl functions (symlink, -l test) does not work + print_warning("Sorry, we have only partial support for Windows!\n"); +} + +# The followings are installed by ptex-fontmaps (texjporg): +# * 2004-H +# * 2004-V +# The followings are created by Adobe but not considered official +# (see https://forums.adobe.com/thread/537415) +# * GB-RKSJ-H +# * GBT-RKSJ-H +# * KSC-RKSJ-H +# All others are provided in the latest Adobe CMap Resources: +# https://github.com/adobe-type-tools/cmap-resources +my %encode_list = ( + Japan => [ qw/ + 2004-H + 2004-V + 78-EUC-H + 78-EUC-V + 78-H + 78-RKSJ-H + 78-RKSJ-V + 78-V + 78ms-RKSJ-H + 78ms-RKSJ-V + 83pv-RKSJ-H + 90ms-RKSJ-H + 90ms-RKSJ-V + 90msp-RKSJ-H + 90msp-RKSJ-V + 90pv-RKSJ-H + 90pv-RKSJ-V + Add-H + Add-RKSJ-H + Add-RKSJ-V + Add-V + Adobe-Japan1-0 + Adobe-Japan1-1 + Adobe-Japan1-2 + Adobe-Japan1-3 + Adobe-Japan1-4 + Adobe-Japan1-5 + Adobe-Japan1-6 + Adobe-Japan1-7 + EUC-H + EUC-V + Ext-H + Ext-RKSJ-H + Ext-RKSJ-V + Ext-V + H + Hankaku + Hiragana + Identity-H + Identity-V + Katakana + NWP-H + NWP-V + RKSJ-H + RKSJ-V + Roman + UniJIS-UCS2-H + UniJIS-UCS2-HW-H + UniJIS-UCS2-HW-V + UniJIS-UCS2-V + UniJIS-UTF16-H + UniJIS-UTF16-V + UniJIS-UTF32-H + UniJIS-UTF32-V + UniJIS-UTF8-H + UniJIS-UTF8-V + UniJIS2004-UTF16-H + UniJIS2004-UTF16-V + UniJIS2004-UTF32-H + UniJIS2004-UTF32-V + UniJIS2004-UTF8-H + UniJIS2004-UTF8-V + UniJISPro-UCS2-HW-V + UniJISPro-UCS2-V + UniJISPro-UTF8-V + UniJISX0213-UTF32-H + UniJISX0213-UTF32-V + UniJISX02132004-UTF32-H + UniJISX02132004-UTF32-V + V + WP-Symbol + / ], + GB => [ qw/ + Adobe-GB1-0 + Adobe-GB1-1 + Adobe-GB1-2 + Adobe-GB1-3 + Adobe-GB1-4 + Adobe-GB1-5 + GB-EUC-H + GB-EUC-V + GB-H + GB-RKSJ-H + GB-V + GBK-EUC-H + GBK-EUC-V + GBK2K-H + GBK2K-V + GBKp-EUC-H + GBKp-EUC-V + GBT-EUC-H + GBT-EUC-V + GBT-H + GBT-RKSJ-H + GBT-V + GBTpc-EUC-H + GBTpc-EUC-V + GBpc-EUC-H + GBpc-EUC-V + Identity-H + Identity-V + UniGB-UCS2-H + UniGB-UCS2-V + UniGB-UTF16-H + UniGB-UTF16-V + UniGB-UTF32-H + UniGB-UTF32-V + UniGB-UTF8-H + UniGB-UTF8-V + / ], + CNS => [ qw/ + Adobe-CNS1-0 + Adobe-CNS1-1 + Adobe-CNS1-2 + Adobe-CNS1-3 + Adobe-CNS1-4 + Adobe-CNS1-5 + Adobe-CNS1-6 + Adobe-CNS1-7 + B5-H + B5-V + B5pc-H + B5pc-V + CNS-EUC-H + CNS-EUC-V + CNS1-H + CNS1-V + CNS2-H + CNS2-V + ETHK-B5-H + ETHK-B5-V + ETen-B5-H + ETen-B5-V + ETenms-B5-H + ETenms-B5-V + HKdla-B5-H + HKdla-B5-V + HKdlb-B5-H + HKdlb-B5-V + HKgccs-B5-H + HKgccs-B5-V + HKm314-B5-H + HKm314-B5-V + HKm471-B5-H + HKm471-B5-V + HKscs-B5-H + HKscs-B5-V + Identity-H + Identity-V + UniCNS-UCS2-H + UniCNS-UCS2-V + UniCNS-UTF16-H + UniCNS-UTF16-V + UniCNS-UTF32-H + UniCNS-UTF32-V + UniCNS-UTF8-H + UniCNS-UTF8-V + / ], + Korea => [ qw/ + Adobe-Korea1-0 + Adobe-Korea1-1 + Adobe-Korea1-2 + Identity-H + Identity-V + KSC-EUC-H + KSC-EUC-V + KSC-H + KSC-Johab-H + KSC-Johab-V + KSC-RKSJ-H + KSC-V + KSCms-UHC-H + KSCms-UHC-HW-H + KSCms-UHC-HW-V + KSCms-UHC-V + KSCpc-EUC-H + KSCpc-EUC-V + UniKS-UCS2-H + UniKS-UCS2-V + UniKS-UTF16-H + UniKS-UTF16-V + UniKS-UTF32-H + UniKS-UTF32-V + UniKS-UTF8-H + UniKS-UTF8-V + / ] ); + +# +# location where links to fonts in texmf are created, relative to TEXMF +my $otf_pathpart = "fonts/opentype/cjk-gs-integrate"; +my $ttf_pathpart = "fonts/truetype/cjk-gs-integrate"; + +# location where cidfmap, cidfmap.local and cidfmap.aliases are placed +# when found gs is tlgs (win32), then files will be placed in lib/ instead of Resource/Init/ +my $cidfmap_pathpart = "Init/cidfmap"; +my $cidfmap_local_pathpart = "Init/cidfmap.local"; +my $cidfmap_aliases_pathpart = "Init/cidfmap.aliases"; + +# support for ps2otfps by Akira Kakuto +my $akotfps_pathpart = "dvips/ps2otfps"; +my $akotfps_datafilename = "psnames-for-otf"; +my $akotfps_datacontent = ''; + +# if windows, we might create batch file for links +my $winbatch = "makefontlinks.bat"; +my $winbatch_content = ''; + +# dump output for data file (for easy editing for users) +my $dump_datafile = "$prg-data.dat"; + +my $opt_output; +my $opt_fontdef; +my @opt_fontdef_add; +my @opt_aliases; +my $opt_filelist; +my $opt_texmflink; +my $opt_akotfps; +my $opt_force = 0; +my $opt_remove = 0; +my $opt_cleanup = 0; +my $opt_hardlink = 0; +my $opt_winbatch; +my $opt_dump_data; +my $opt_only_aliases = 0; +my $opt_listaliases = 0; +my $opt_listallaliases = 0; +my $opt_listfonts = 0; +my $opt_info = 0; +my $opt_machine = 0; +my $opt_strictpsname = 0; +my $dry_run = 0; +my $opt_quiet = 0; +my $opt_debug = 0; +my $opt_help = 0; +my $opt_markdown = 0; + +if (! GetOptions( + "o|output=s" => \$opt_output, + "f|fontdef=s" => \$opt_fontdef, + "fontdef-add=s" => \@opt_fontdef_add, + "a|alias=s" => \@opt_aliases, + "filelist=s" => \$opt_filelist, + "link-texmf:s" => \$opt_texmflink, + "otfps:s" => \$opt_akotfps, + "force" => \$opt_force, + "remove" => \$opt_remove, + "cleanup" => \$opt_cleanup, + "hardlink" => \$opt_hardlink, + "winbatch:s" => \$opt_winbatch, + "dump-data:s" => \$opt_dump_data, + "only-aliases" => \$opt_only_aliases, + "list-aliases" => \$opt_listaliases, + "list-all-aliases" => \$opt_listallaliases, + "list-fonts" => \$opt_listfonts, + "info" => \$opt_info, + "machine-readable" => \$opt_machine, + "strict-psname" => \$opt_strictpsname, # hidden option for debugging + "n|dry-run" => \$dry_run, + "q|quiet" => \$opt_quiet, + "d|debug+" => \$opt_debug, + "h|help" => \$opt_help, + "markdown" => \$opt_markdown, + "v|version" => sub { print &version(); exit(0); }, ) ) { + die "Try \"$0 --help\" for more information.\n"; +} + +sub win32 { return ($^O=~/^MSWin(32|64)$/i); } +sub macosx { return ($^O=~/^darwin$/i); } +my $nul = (win32() ? 'nul' : '/dev/null') ; +my $sep = (win32() ? ';' : ':'); +my %fontdb; +my %aliases; +my %user_aliases; + +if ($opt_help || $opt_markdown) { + Usage(); + exit(0); +} + +# check for the existence of kpsewhich, otherwise we cannot do anything +if (system("kpsewhich --version >$nul 2>&1 <$nul" ) != 0) { + print_error("We need `kpsewhich' being installed! Exiting.\n"); + exit(1); +} + +if ($opt_debug >= 2) { + require Data::Dumper; + $Data::Dumper::Indent = 1; +} + +my $otfinfo_available; +chomp(my $otfinfo_help = `otfinfo --help 2>$nul`); +if ($?) { + # to tell the truth, we want to show below as a warning + # but BasicTeX (scheme-small) does not have 'otfinfo' (lcdf-typetools); + # show info only for debugging + print_debug("The program 'otfinfo' not found in PATH.\n"); + print_debug("Sorry, we can't be safe enough to distinguish\n"); + print_debug("uppercase / lowercase file names.\n"); + # but the below should be an error! + if ($opt_strictpsname) { + print_error("'otfinfo' not found, cannot proceed!\n"); + exit(1); + } + $otfinfo_available = 0; +} else { + $otfinfo_available = 1; +} + +if (macosx()) { + # due to frequent incompatible changes in font file names by Apple, + # our built-in database doesn't support OS X 10.11 El Capitan or + # later versions + my $macos_ver = `sw_vers -productVersion`; + my $macos_ver_major = $macos_ver; + $macos_ver_major =~ s/^(\d+)\.(\d+).*/$1/; + my $macos_ver_minor = $macos_ver; + $macos_ver_minor =~ s/^(\d+)\.(\d+).*/$2/; + if ($macos_ver_major==10 && $macos_ver_minor>=8) { + if (!$opt_cleanup && !$opt_fontdef && !@opt_fontdef_add) { # if built-in only + print_warning("Our built-in database does not support recent\n"); + print_warning("versions of Mac OS (10.8 Mountain Lion or later)!\n"); + print_warning("If you want to use Hiragino fonts bundled with\n"); + print_warning("your OS, obtain external database file and\n"); + print_warning("specify it with --fontdef-add option!\n"); + print_warning("I'll continue with my built-in database ...\n"); + } + } +} + +if (defined($opt_texmflink)) { + my $foo; + if ($opt_texmflink eq '') { + # option was passed but didn't receive a value + # -> use TEXMFLOCAL + chomp($foo = `kpsewhich -var-value=TEXMFLOCAL`); + } else { + # option was passed with an argument + # -> use it + $foo = $opt_texmflink; + } + $opt_texmflink = $foo; +} + +if (defined($opt_akotfps)) { + my $foo; + if ($opt_akotfps eq '') { + if (defined($opt_texmflink)) { + $foo = $opt_texmflink; + } else { + chomp($foo = `kpsewhich -var-value=TEXMFLOCAL`); + } + } else { + $foo = $opt_akotfps; + } + $opt_akotfps = $foo; +} + +if (defined($opt_winbatch)) { + if ($opt_winbatch ne '') { + $winbatch = $opt_winbatch; + } + if (win32()) { + $opt_winbatch = 1; + unlink $winbatch if (-f $winbatch); + } else { + print_warning("ignoring --winbatch option due to non-Windows\n"); + $opt_winbatch = 0; + } +} else { + $opt_winbatch = 0; +} +if ($opt_hardlink) { + if (win32()) { + $opt_hardlink = 1; + } else { + print_warning("ignoring --hardlink option due to non-Windows\n"); + $opt_hardlink = 0; + } +} + +if (defined($opt_dump_data)) { + if ($opt_dump_data ne '') { + $dump_datafile = $opt_dump_data; + } + $opt_dump_data = 1; + unlink $dump_datafile if (-f $dump_datafile); +} else { + $opt_dump_data = 0; +} + +if ($opt_cleanup) { + $opt_remove = 1; +} + +if ($opt_info) { + $opt_listfonts = 1; + $opt_listaliases = 1; +} + +# check exclusive options; unsafe due to make_all_available() +if ($opt_listallaliases && $opt_listaliases) { + print_error("Both --list-all-aliases and --list-aliases!? I'm confused!\n"); + exit(1); +} +if ($opt_listallaliases && $opt_listfonts) { + print_error("Options --list-all-aliases and --list-fonts cannot be used at the same time!\n"); + exit(1); +} +if ($opt_cleanup && $opt_listfonts) { + print_error("Options --cleanup and --list-fonts cannot be used at the same time!\n"); + exit(1); +} +if ($opt_cleanup && $opt_listaliases) { + print_error("Options --cleanup and --list-aliases cannot be used at the same time!\n"); + exit(1); +} + +main(@ARGV); + +# +# only sub definitions from here on +# +sub main { + # first, read font database to obtain %fontdb + print_info("reading font database ...\n"); + read_font_database(); + if ($opt_dump_data) { + # with --dump-data, dump only effective database and exit + dump_font_database(); + if (-f $dump_datafile) { + print_info("*** Data dumped to $dump_datafile ***\n"); + exit(0); + } else { + print_error("Failed to dump data to $dump_datafile!\n"); + exit(1); + } + } + # second, determine non-otf link name + # this is actually required only by info_found_fonts() and do_nonotf_fonts() + # operations, but it does no harm for other cases too + determine_nonotf_link_name(); # see comments there + + # set 'available' flags and 'type' by kpsewhich search + # if $opt_cleanup or $opt_listallaliases is given, treat all files + # in the database as if they were actually available as OTF + if (!$opt_cleanup && !$opt_listallaliases) { + print_info("checking for files ...\n"); + check_for_files(); + } else { + make_all_available(); + } + # obtain %aliases and %user_aliases + compute_aliases(); + + # informative operations + if ($opt_listfonts) { + info_found_fonts(); + } + if ($opt_listaliases || $opt_listallaliases) { + info_list_aliases(); + } + exit(0) if ($opt_listfonts || $opt_listaliases || $opt_listallaliases); + # if $opt_machine is still alive after the above exit(0), it's useless + if ($opt_machine) { + print_error("Option --machine-readable should be used with at least one of the followings:\n"); + print_error(" --list-aliases, --list-all-aliases, --list-fonts, --info\n"); + print_error("terminating.\n"); + exit(1); + } + + # do actual setup/removing operations + if (!$opt_output) { + print_info("searching for Ghostscript resource\n"); + my $gsres = find_gs_resource(); + if (!$gsres) { + print_error("Cannot find Ghostscript, terminating!\n"); + exit(1); + } else { + $opt_output = $gsres; + } + } + if (! -d $opt_output) { + $dry_run || mkdir($opt_output) || + die("Cannot create directory $opt_output: $!"); + } + if ($opt_cleanup) { + print_info("going to clean up $opt_output\n"); + } else { + print_info("output is going to $opt_output\n"); + } + if (!$opt_only_aliases) { + if ($opt_cleanup) { + # all font types are handled at the same time + print_info("cleaning up all links, snippets and cidfmap.local ...\n"); + do_all_fonts(); + } else { + # OTF and TTF/TTC/OTC must be handled separately, depending on the found files + print_info(($opt_remove ? "removing" : "generating") . " links and snippets for CID fonts ...\n"); + do_otf_fonts(); + print_info(($opt_remove ? "removing" : "generating") . " links, snippets and cidfmap.local for non-CID fonts ...\n"); + do_nonotf_fonts(); + } + write_winbatch() if $opt_winbatch; + } + print_info(($opt_remove ? "removing" : "generating") . " snippets and cidfmap.aliases for font aliases ...\n"); + do_aliases(); + write_akotfps_datafile() if $opt_akotfps; + if ($opt_texmflink && !$dry_run) { + print_info("running mktexlsr ...\n"); + system("mktexlsr"); + } + print_info("finished\n"); + if ($opt_winbatch) { + if (-f $winbatch) { + print_info("*** Batch file $winbatch created ***\n"); + print_info("*** to complete, run it as administrator privilege.***\n"); + } else { + print_error("Failed to create $winbatch!\n"); + exit(1); + } + } +} + +sub do_all_fonts { + # try to clean up all possible links/snippets/cidfmap which could have been + # generated in the previous runs + # previous versions of cjk-gs-integrate included following bugs: + # * the database sometimes identified GB/CNS classes wrongly + # * symlink names were sometimes invalid (some of which contained + # white-spaces, due to the absence of proper database entry) or + # inconsistent with ptex-fontmaps (Name <-> PSName or redundant Filename) + # * confused symlinks between TTF/TTC/OTC (including ttf <-> ttc links) + # also, current version generates OTC links into $otf_pathpart instead of + # $ttf_pathpart, which was not true in the older versions + # we'd like to clean up all such files + my $fontdest = "$opt_output/Font"; + my $ciddest = "$opt_output/CIDFont"; + my $cidfsubst = "$opt_output/CIDFSubst"; + for my $k (sort keys %fontdb) { + # + # remove snippets: note that $class = $fontdb{$k}{'class'} is not enough + # due to previous bugs + for my $class (%encode_list) { + for my $enc (@{$encode_list{$class}}) { + unlink "$fontdest/$k-$enc" if (-f "$fontdest/$k-$enc"); + } + } + # + # remove links; borrow link_font operation here for convenience + # since we don't need target in cleanup mode, initialize with stub "none" + # + # for OTF/TTF fonts, first remove both $k[.otf,ttf] and $fontdb{$k}{'origname'}[.otf] + # the links $k.otf and $fontdb{$k}{'origname'} are coming from previous bugs, + # and the links $k.ttf are (sometimes) coming from inconsistency + if ($fontdb{$k}{'origname'}) { # this test skips alias-only fonts (e.g. Ryumin-Light) + link_font("none", $ciddest, $k); + link_font("none", $cidfsubst, "$k.ttf"); + link_font("none", "$opt_texmflink/$otf_pathpart", "$k.otf") + if $opt_texmflink; + link_font("none", "$opt_texmflink/$ttf_pathpart", "$k.ttf") + if $opt_texmflink; + link_font("none", $ciddest, $fontdb{$k}{'origname'}); + link_font("none", "$opt_texmflink/$otf_pathpart", "$fontdb{$k}{'origname'}.otf") + if $opt_texmflink; + } + # for OTF/TTF/TTC/OTC fonts, loop through all file candidates + for my $f (keys %{$fontdb{$k}{'files'}}) { + # check for subfont extension + my $foo = $f; + $foo =~ s/^(.*)\(\d*\)$/$1/; + link_font("none", $cidfsubst, "$foo"); + link_font("none", "$opt_texmflink/$otf_pathpart", "$foo") if $opt_texmflink; + link_font("none", "$opt_texmflink/$ttf_pathpart", "$foo") if $opt_texmflink; + } + } + update_master_cidfmap('cidfmap.local'); + # we are in cleanup mode, also remove cidfmap.local itself + if (-f "$opt_output/$cidfmap_local_pathpart") { + unlink "$opt_output/$cidfmap_local_pathpart"; + } +} + +sub do_otf_fonts { + my $fontdest = "$opt_output/Font"; + my $ciddest = "$opt_output/CIDFont"; + make_dir($fontdest, "cannot create CID snippets there!"); + make_dir($ciddest, "cannot link CID fonts there!"); + make_dir("$opt_texmflink/$otf_pathpart", + "cannot link fonts to it!") + if $opt_texmflink; + for my $k (sort keys %fontdb) { + if ($fontdb{$k}{'available'} && $fontdb{$k}{'type'} eq 'OTF') { + generate_font_snippet($fontdest, + $k, $fontdb{$k}{'class'}, $fontdb{$k}{'target'}); + link_font($fontdb{$k}{'target'}, $ciddest, $k); + link_font($fontdb{$k}{'target'}, "$opt_texmflink/$otf_pathpart", "$fontdb{$k}{'origname'}.otf") + if $opt_texmflink; + } + } +} + +sub do_nonotf_fonts { + my $fontdest = "$opt_output/Font"; + my $cidfsubst = "$opt_output/CIDFSubst"; + my $outp = ''; + make_dir($fontdest, "cannot create CID snippets there!"); + make_dir($cidfsubst, "cannot link TTF fonts there!"); + make_dir("$opt_texmflink/$ttf_pathpart", + "cannot link fonts to it!") + if $opt_texmflink; + for my $k (sort keys %fontdb) { + if ($fontdb{$k}{'available'} && $fontdb{$k}{'type'} eq 'TTF') { + # generate_font_snippet($fontdest, + # $k, $fontdb{$k}{'class'}, $fontdb{$k}{'target'}); + $outp .= generate_cidfmap_entry($k, $fontdb{$k}{'class'}, $fontdb{$k}{'ttfname'}, -1); + link_font($fontdb{$k}{'target'}, $cidfsubst, $fontdb{$k}{'ttfname'}); + link_font($fontdb{$k}{'target'}, "$opt_texmflink/$ttf_pathpart", $fontdb{$k}{'ttfname'}) + if $opt_texmflink; + } elsif ($fontdb{$k}{'available'} && $fontdb{$k}{'type'} eq 'TTC') { + # generate_font_snippet($fontdest, + # $k, $fontdb{$k}{'class'}, $fontdb{$k}{'target'}); + $outp .= generate_cidfmap_entry($k, $fontdb{$k}{'class'}, $fontdb{$k}{'ttcname'}, $fontdb{$k}{'subfont'}); + link_font($fontdb{$k}{'target'}, $cidfsubst, $fontdb{$k}{'ttcname'}); + link_font($fontdb{$k}{'target'}, "$opt_texmflink/$ttf_pathpart", $fontdb{$k}{'ttcname'}) + if $opt_texmflink; + } elsif ($fontdb{$k}{'available'} && $fontdb{$k}{'type'} eq 'OTC') { + # currently Ghostscript does not have OTC support; not creating gs resource + print_debug("gs does not support OTC, not creating gs resource for $k\n"); + # generate_font_snippet($fontdest, + # $k, $fontdb{$k}{'class'}, $fontdb{$k}{'target'}); + # $outp .= generate_cidfmap_entry($k, $fontdb{$k}{'class'}, $fontdb{$k}{'otcname'}, $fontdb{$k}{'subfont'}); + # link_font($fontdb{$k}{'target'}, $cidfsubst, $fontdb{$k}{'otcname'}); + link_font($fontdb{$k}{'target'}, "$opt_texmflink/$otf_pathpart", $fontdb{$k}{'otcname'}) + if $opt_texmflink; + } + } + return if $dry_run; + if ($outp) { + if (! -d "$opt_output/Init") { + mkdir("$opt_output/Init") || + die("Cannot create directory $opt_output/Init: $!"); + } + open(FOO, ">$opt_output/$cidfmap_local_pathpart") || + die("Cannot open $opt_output/$cidfmap_local_pathpart: $!"); + print FOO $outp; + close(FOO); + } + update_master_cidfmap('cidfmap.local'); +} + +sub do_aliases { + my $fontdest = "$opt_output/Font"; + my $ciddest = "$opt_output/CIDFont"; # required for Heisei* check only + my $cidfsubst = "$opt_output/CIDFSubst"; + my $outp = ''; + # + # alias handling + # we use two levels of aliases + # * one is for the default generic names (these are not actual fonts) + # Ryumin-Light, GothicBBB-Medium, ... etc. + # * the second level of aliases is for Morisawa OTF font names + # RyuminPro-Light, GothicBBBPro-Medium, ... etc. + # the order of fonts selected is + # defined in the Provides(Priority): Name in the font definiton + # + $outp .= "\n\n% Aliases\n"; + # + my (@jal, @kal, @tal, @sal); + # + for my $al (sort keys %aliases) { + my $target; + my $class; + if ($user_aliases{$al}) { + $target = $user_aliases{$al}; + # determine class + if ($fontdb{$target}{'available'}) { + $class = $fontdb{$target}{'class'}; + } else { + # must be an aliases, we checked this when initializing %user_aliases + # reset the $al value + # and since $class is still undefined we will use the next code below + $al = $target; + } + } + if (!$class) { + if (!%{$aliases{$al}}) { + print_warning("Alias candidate for $al is empty, skipping!\n"); + next; + } + # search lowest number + my @ks = keys(%{$aliases{$al}}); + my $first = (sort { $a <=> $b} @ks)[0]; + $target = $aliases{$al}{$first}; + $class = $fontdb{$target}{'class'}; + } + # we also need to create font snippets in Font (or add configuration) + # for the aliases! + generate_font_snippet($fontdest, $al, $class, $target); + if ($class eq 'Japan') { + push @jal, "/$al /$target ;"; + } elsif ($class eq 'Korea') { + push @kal, "/$al /$target ;"; + } elsif ($class eq 'GB') { + push @sal, "/$al /$target ;"; + } elsif ($class eq 'CNS') { + push @tal, "/$al /$target ;"; + } else { + print STDERR "unknown class $class for $al\n"; + } + } + # special case for native CID fonts in ancient days + # if not readable, add aliases for substitution + push @jal, "/HeiseiMin-W3 /Ryumin-Light ;" if (! -r "$ciddest/HeiseiMin-W3"); + push @jal, "/HeiseiKakuGo-W5 /GothicBBB-Medium ;" if (! -r "$ciddest/HeiseiKakuGo-W5"); + # + $outp .= "\n% Japanese fonts\n" . join("\n", @jal) . "\n" if @jal; + $outp .= "\n% Korean fonts\n" . join("\n", @kal) . "\n" if @kal; + $outp .= "\n% Traditional Chinese fonts\n" . join("\n", @tal) . "\n" if @tal; + $outp .= "\n% Simplified Chinese fonts\n" . join("\n", @sal) . "\n" if @sal; + # + return if $dry_run; + if ($outp && !$opt_remove) { + if (! -d "$opt_output/Init") { + mkdir("$opt_output/Init") || + die("Cannot create directory $opt_output/Init: $!"); + } + open(FOO, ">$opt_output/$cidfmap_aliases_pathpart") || + die("Cannot open $opt_output/$cidfmap_aliases_pathpart: $!"); + print FOO $outp; + close(FOO); + } + update_master_cidfmap('cidfmap.aliases'); + # if we are in cleanup mode, also remove cidfmap.aliases itself + if (-f "$opt_output/$cidfmap_aliases_pathpart") { + unlink "$opt_output/$cidfmap_aliases_pathpart" if $opt_cleanup; + } +} + +sub update_master_cidfmap { + # what we have to do is: + # in add mode: + # * add an entry for the given argument + # * for tlgs.win32 pre-shipped cidfmap, prepend '%' to override + # the default of "(cidfmap.TeXLive) .runlibfile", + # in remove mode: + # * remove an entry for the given argument + # * for tlgs.win32 pre-shipped cidfmap, remove '%' to restore the default + my $add = shift; + my $cidfmap_master = "$opt_output/$cidfmap_pathpart"; + print_info(sprintf("%s $add %s cidfmap file ...\n", + ($opt_remove ? "removing" : "adding"), ($opt_remove ? "from" : "to"))); + if (-r $cidfmap_master) { + open(FOO, "<", $cidfmap_master) || + die("Cannot open $cidfmap_master for reading: $!"); + my $found = 0; + my $found_tl = 0; + my $newmaster = ""; + # in add mode: just search for the entry and set $found + # in remove mode: collect all lines that do not match + # also, we handle "cidfmap.TeXLive" now + while() { + if (m/^\s*\(\Q$add\E\)\s\s*\.runlibfile\s*$/) { + $found = 1; + } elsif (m/^\s*\(cidfmap\.TeXLive\)\s\s*\.runlibfile\s*$/) { + # if found, it has to be disabled in add mode in a way in which it can + # be detected in the (future) remove mode + next if $found_tl; # skip it as duplicate (though unlikely to happen) + $found_tl = 1; + $newmaster .= "\%" if (!$opt_remove); # in add mode, disable it + $newmaster .= $_; # pass it as-is + } elsif (m/^\s*\%\%*\s*\(cidfmap\.TeXLive\)\s\s*\.runlibfile\s*$/) { + # if found, it should be the one disabled by myself in the previous run; + # restore it in remove mode + next if $found_tl; # skip it as duplicate (though unlikely to happen) + $found_tl = 1; + $_ =~ s/\%//g if $opt_remove; # in remove mode, enable it + $newmaster .= $_; # pass it + } else { + $newmaster .= $_; + } + } + close(FOO); + # if the original master cidfmap has a new line at end of file, + # then $newmaster should end with "\n". + # otherwise we add a new line, since there is a possibility of %EOF comment + # without trailing new line (e.g. TL before r44039) + $newmaster =~ s/\n$//; + $newmaster =~ s/$/\n/; + if ($opt_remove) { + if ($found || $found_tl) { + return if $dry_run; + open(FOO, ">", $cidfmap_master) || + die("Cannot clean up $cidfmap_master: $!"); + print FOO $newmaster; + close FOO; + } + } else { + if ($found && !$found_tl) { + print_info("$add already loaded in $cidfmap_master, no changes\n"); + } else { + return if $dry_run; + open(FOO, ">", $cidfmap_master) || + die("Cannot open $cidfmap_master for appending: $!"); + print FOO $newmaster; + print FOO "($add) .runlibfile\n"; + close(FOO); + } + } + } else { + return if $dry_run; + return if $opt_remove; + open(FOO, ">", $cidfmap_master) || + die("Cannot open $cidfmap_master for writing: $!"); + print FOO "($add) .runlibfile\n"; + close(FOO); + } +} + +sub generate_cidfmap_entry { + my ($n, $c, $f, $sf) = @_; + return "" if $opt_remove; + # $f is already the link target name 'ttfname' (or 'ttcname' or 'otcname') + # as determined by minimal priority number + # extract subfont + my $s = "/$n << /FileType /TrueType + /Path pssystemparams /GenericResourceDir get + (CIDFSubst/$f) concatstrings\n"; + if ($sf >= 0) { # in this script, $sf < 0 represents TTF + $s .= " /SubfontID $sf\n"; + } + $s .= " /CSI [($c"; + if ($c eq "Japan") { + $s .= "1) 6]"; + } elsif ($c eq "GB") { + $s .= "1) 5]"; + } elsif ($c eq "CNS") { + $s .= "1) 5]"; + } elsif ($c eq "Korea") { + $s .= "1) 2]"; + } else { + print_warning("unknown class $c for $n, skipping.\n"); + return ''; + } + $s .= " >> ;\n"; + return $s; +} + +sub generate_font_snippet { + my ($fd, $n, $c, $f) = @_; + return if $dry_run; + if ($opt_akotfps) { + add_akotfps_data($n); + return; + } + for my $enc (@{$encode_list{$c}}) { + if ($opt_remove) { + unlink "$fd/$n-$enc" if (-f "$fd/$n-$enc"); + next; + } + open(FOO, ">$fd/$n-$enc") || + die("cannot open $fd/$n-$enc for writing: $!"); + print FOO "%!PS-Adobe-3.0 Resource-Font +%%DocumentNeededResources: $enc (CMap) +%%IncludeResource: $enc (CMap) +%%BeginResource: Font ($n-$enc) +($n-$enc) +($enc) /CMap findresource +[($n) /CIDFont findresource] +composefont +pop +%%EndResource +%%EOF +"; + close(FOO); + } +} + +sub add_akotfps_data { + my ($fn) = @_; + return if $dry_run; + if (!$opt_remove) { + $akotfps_datacontent .= "$fn\n"; + } +} + +# +# link_font operation +# $opt_force is *not* treated first to warn only +# at really critical cases +# case 1: +# exists, is link, link targets agree +# $opt_force is ignored +# remove or remove+add according to $opt_remove +# case 2: +# exists, is link, dangling symlink +# $opt_force is ignored +# remove or remove+add according to $opt_remove +# case 3: +# exists, is link, link target different +# if $opt_force +# warn, remove or remove+add according to $opt_remove +# else +# error message +# case 4: +# exists, not a link +# if $opt_force +# warn, remove or remove+add according to $opt_remove +# else +# error message +# case 5: +# not exists +# $opt_force is ignored +# do nothing or add according to $opt_remove +# +sub link_font { + my ($f, $cd, $n) = @_; + return if $dry_run; + if (!$n) { + $n = basename($f); + } + my $target = "$cd/$n"; + my $do_unlink = 0; + if (-l $target) { + if ($opt_cleanup) { + $do_unlink = 1; + } else { + my $linkt = readlink($target); + if ($linkt) { + if ($linkt eq $f) { + # case 1: exists, link, targets agree + $do_unlink = 1; + } elsif (-r $linkt) { + # case 3: exists, link, targets different + if ($opt_force) { + print_info("Removing link $target due to --force!\n"); + $do_unlink = 1; + } else { + print_error("Link $target already existing, but target different from $f, exiting!\n"); + exit(1); + } + } else { + # case 2: dangling symlink or link-to-link + print_warning("Removing dangling symlink $target to $linkt\n"); + $do_unlink = 1; + } + } else { + print_error("This should not happen, we have a link but cannot read the target?\n"); + exit(1); + } + } + } elsif (-r $target) { + # case 4: exists, but not link (NTFS hardlink on win32 falls into this) + if (-s $target) { + if ($opt_force) { + print_info("Removing $target due to --force!\n"); + $do_unlink = 1; + } else { + print_error("$target already existing, exiting!\n"); + exit(1); + } + } else { + # NTFS symlink on win32 has file size 0, we're safe to remove it + $do_unlink = 1; + } + } # case 5: otherwise it is not existing! + + # if we are still here and $do_unlink is set, remove it + maybe_unlink($target) if $do_unlink; + # recreate link if we are not in the remove case + if (!$opt_remove) { + maybe_symlink($f, $target) || die("Cannot link font $f to $target: $!"); + } +} + +sub make_dir { + my ($d, $w) = @_; + if (-r $d) { + if (! -d $d) { + print_error("$d is not a directory, $w\n"); + exit(1); + } + } else { + $dry_run || make_path($d); + } +} + +# perl symlink function does not work on windows, so leave it to +# cmd.exe mklink function (or write to batch file). +# if target already exists, do not try to override it. otherwise +# "mklink error: Cannot create a file when that file already exists" +# is thrown many times +sub maybe_symlink { + my ($realname, $targetname) = @_; + if (win32()) { + # hardlink vs. symlink -- HY 2017/04/26 + # * readablitiy: hardlink is easier, but it seems that current gs can read + # symlink properly, so it doesn't matter + # * permission: hardlink creation does not require administrator privilege, + # but is likely to fail for c:/windows/fonts/* system files + # due to "Access denied" + # symlink creation requires administrator privilege, but + # it can link to all files in c:/windows/fonts/ + # * versatility: symlink can point to a file on a different/remote volume + # for these reasons, we try to create symlink by default. + # if --hardlink option is given, we create hardlink instead. + # also, if --winbatch option is given, we prepare batch file for link generation, + # instead of creating links right away. + $realname =~ s!/!\\!g; + $targetname =~ s!/!\\!g; + if ($opt_winbatch) { + # re-encoding of $winbatch_content is done by write_winbatch() + $winbatch_content .= "if not exist \"$targetname\" mklink "; + $winbatch_content .= "/h " if $opt_hardlink; + $winbatch_content .= "\"$targetname\" \"$realname\"\n"; + } else { + # should be encoded in cp932 for win32 console + $realname = encode_utftocp($realname); + $targetname = encode_utftocp($targetname); + my $cmdl = "cmd.exe /c if not exist \"$targetname\" mklink "; + $cmdl .= "/h " if $opt_hardlink; + $cmdl .= "\"$targetname\" \"$realname\""; + my @ret = `$cmdl`; + # sometimes hard link creation may fail due to "Access denied" + # (especially when $realname is located in c:/windows/fonts). + # TODO: what should we do to ensure resources, which might be + # different from $realname? -- HY (2017/03/21) + # -- one possibility: + # if (@ret) { + # @ret ="done"; + # } else { + # print_info("Hard link creation for $realname failed. I will copy this file instead.\n"); + # $cmdl = "cmd.exe /c if not exist \"$targetname\" copy \"$realname\" \"$targetname\""; + # @ret = `$cmdl`; + # } + # -- however, both tlgs (TeX Live) and standalone gswin32/64 (built + # by Akira Kakuto) can search in c:/windows/fonts by default. + # Thus, copying such files is waste of memory + } + } else { + symlink ($realname, $targetname); + } +} + +# unlink function actually works also on windows, however, +# leave it to batch file for consistency. otherwise +# option $opt_force may not work as expected +sub maybe_unlink { + my ($targetname) = @_; + if (win32()) { + $targetname =~ s!/!\\!g; + if ($opt_winbatch) { + # re-encoding of $winbatch_content is done by write_winbatch() + $winbatch_content .= "if exist \"$targetname\" del \"$targetname\"\n"; + } else { + # should be encoded in cp932 for win32 console + $targetname = encode_utftocp($targetname); + my $cmdl = "cmd.exe /c if exist \"$targetname\" del \"$targetname\""; + my @ret = `$cmdl`; + } + } else { + unlink ($targetname); + } +} + +# write batch file (windows only) +sub write_winbatch { + return if $dry_run; + open(FOO, ">$winbatch") || + die("cannot open $winbatch for writing: $!"); + # $winbatch_content may contain multibyte characters, and they + # should be encoded in cp932 in batch file + $winbatch_content = encode_utftocp($winbatch_content); + print FOO "\@echo off\n", + "$winbatch_content", + "\@echo symlink ", ($opt_remove ? "removed\n" : "generated\n"), + "\@pause 1\n"; + close(FOO); +} + +# write to psnames-for-otfps +sub write_akotfps_datafile { + return if $dry_run; + make_dir("$opt_akotfps/$akotfps_pathpart", + "cannot create $akotfps_datafilename in it!"); + open(FOO, ">$opt_akotfps/$akotfps_pathpart/$akotfps_datafilename") || + die("cannot open $opt_akotfps/$akotfps_pathpart/$akotfps_datafilename for writing: $!"); + print FOO "% psnames-for-otf +% +% PostSctipt names for OpenType fonts +% +% This file is used by a program ps2otfps +% in order to add needed information to a ps file +% created by the dvips +% +$akotfps_datacontent"; + close(FOO); +} + +# +# dump found files +sub info_found_fonts { + print "List of found fonts:\n\n"; + for my $k (sort keys %fontdb) { + my @foundfiles; + if ($fontdb{$k}{'available'}) { + print "Font: $k\n"; + print "Type: $fontdb{$k}{'type'}\n"; + print "Class: $fontdb{$k}{'class'}\n"; + my $fn = $fontdb{$k}{'target'}; + # cp932 for win32 console + if (win32()) { + $fn = encode_utftocp($fn); + } + if ($fontdb{$k}{'type'} eq 'TTC' || $fontdb{$k}{'type'} eq 'OTC') { + $fn .= "($fontdb{$k}{'subfont'})"; + } + print "File: $fn\n"; + if ($fontdb{$k}{'type'} eq 'TTF') { + print "Link: $fontdb{$k}{'ttfname'}\n"; + } elsif ($fontdb{$k}{'type'} eq 'TTC') { + print "Link: $fontdb{$k}{'ttcname'}\n"; + } elsif ($fontdb{$k}{'type'} eq 'OTC') { + print "Link: $fontdb{$k}{'otcname'}\n"; + } + my @ks = sort { $fontdb{$k}{'files'}{$a}{'priority'} + <=> + $fontdb{$k}{'files'}{$b}{'priority'} } + keys %{$fontdb{$k}{'files'}}; + # remove the top element which is the winner and shown above + shift @ks; + if (@ks) { + print "Other candidates in decreasing order:\n"; + for my $f (@ks) { + print " ", $fontdb{$k}{'files'}{$f}{'target'}, "\n"; + } + } + print "\n"; + } + } +} + +# +# dump aliases +sub info_list_aliases { + print "List of ", ($opt_listallaliases ? "all" : "available"), " aliases and their options (in decreasing priority):\n" unless $opt_machine; + my (@jal, @kal, @tal, @sal); + for my $al (sort keys %aliases) { + my $cl; + my @ks = sort { $a <=> $b} keys(%{$aliases{$al}}); + my $foo = ''; + $foo = "$al:\n" unless $opt_machine; + for my $p (@ks) { + my $t = $aliases{$al}{$p}; + my $fn = ($opt_listallaliases ? "-" : $fontdb{$t}{'target'} ); + # cp932 for win32 console + if (win32()) { + $fn = encode_utftocp($fn); + } + # should always be the same ;-) + $cl = $fontdb{$t}{'class'}; + if (!$opt_listallaliases && ($fontdb{$t}{'type'} eq 'TTC' || $fontdb{$t}{'type'} eq 'OTC')) { + $fn .= "($fontdb{$t}{'subfont'})"; + } + if ($opt_machine) { + $foo .= "$al:$p:$aliases{$al}{$p}:$fn\n"; + } else { + $foo .= "\t($p) $aliases{$al}{$p} ($fn)\n"; + } + } + if ($cl eq 'Japan') { + push @jal, $foo; + } elsif ($cl eq 'Korea') { + push @kal, $foo; + } elsif ($cl eq 'GB') { + push @sal, $foo; + } elsif ($cl eq 'CNS') { + push @tal, $foo; + } else { + print STDERR "unknown class $cl for $al\n"; + } + } + if ($opt_machine) { + print @jal if @jal; + print @kal if @kal; + print @sal if @sal; + print @tal if @tal; + } else { + print "Aliases for Japanese fonts:\n", @jal, "\n" if @jal; + print "Aliases for Korean fonts:\n", @kal, "\n" if @kal; + print "Aliases for Simplified Chinese fonts:\n", @sal, "\n" if @sal; + print "Aliases for Traditional Chinese fonts:\n", @tal, "\n" if @tal; + } +} + +# +# make all fonts available for listing all aliases +sub make_all_available { + for my $k (keys %fontdb) { + $fontdb{$k}{'available'} = 1; + $fontdb{$k}{'type'} = 'OTF'; + delete $fontdb{$k}{'files'} if (!$opt_cleanup); + } +} + +# +# checks all file names listed in %fontdb +# and sets +sub check_for_files { + my @foundfiles; + if ($opt_filelist) { + open(FOO, "<", $opt_filelist) || die("Cannot open $opt_filelist: $!"); + @foundfiles = ; + close(FOO) || warn "Cannot close $opt_filelist: $!"; + } else { + # first collect all files: + my @fn; + for my $k (keys %fontdb) { + for my $f (keys %{$fontdb{$k}{'files'}}) { + # check for subfont extension + if ($f =~ m/^(.*)\(\d*\)$/) { + push @fn, $1; + } else { + push @fn, $f; + } + } + } + # + # collect extra directories for search + my @extradirs; + if (win32()) { + push @extradirs, "c:/windows/fonts//"; + } else { + # other dirs to check, for normal unix? + for my $d (qw!/Library/Fonts /System/Library/Fonts /System/Library/Assets + /Network/Library/Fonts /usr/share/fonts!) { + push @extradirs, "$d//" if (-d $d); # recursive search + } + # the path contains white space, so hack required + for my $d (qw!/Library/Application__Support/Apple/Fonts!) { + my $sd = $d; + $sd =~ s/__/ /; + push @extradirs, "$sd//" if (-d "$sd"); # recursive search + } + # office for mac 2016 + for my $d (qw!/Applications/Microsoft__Word.app + /Applications/Microsoft__Excel.app + /Applications/Microsoft__PowerPoint.app!) { + my $sd = $d; + $sd =~ s/__/ /; + push @extradirs, "$sd/Contents/Resources/Fonts/" if (-d "$sd/Contents/Resources/Fonts"); + push @extradirs, "$sd/Contents/Resources/DFonts/" if (-d "$sd/Contents/Resources/DFonts"); + } + my $home = $ENV{'HOME'}; + push @extradirs, "$home/Library/Fonts//" if (-d "$home/Library/Fonts"); + } + # + if (@extradirs) { + # TODO: we want that files in OSFONTDIR are found first, before + # links that we have created in TEXMFLOCAL + # Thus, instead of setting OSFONTDIR which is at the *END* of + # the kpsewhich variables OPENTYPEFONTS and TTFONTS, we'd like to + # put all these fonts at the front of them + # + # There are problems with case-insensitive file systems like HFS + # on MacOS, as we might catch different names (batang/Batang) + # and identify them wrongly. + # https://github.com/texjporg/cjk-gs-support/issues/9 + # For now until we have dealt with that, do not set the + # two variables (HY 2016/09/27) and think about a different approach. + push @extradirs, $ENV{'OSFONTDIR'} if $ENV{'OSFONTDIR'}; + if (@extradirs) { + # comment out -- HY (2016/09/27) + # my $newotf = join($sep, @extradirs) . $sep; + # my $newttf = $newotf; + # $newotf .= $ENV{'OPENTYPEFONTS'} if $ENV{'OPENTYPEFONTS'}; + # $newttf .= $ENV{'TTFONTS'} if $ENV{'TTFONTS'}; + # $ENV{'OPENTYPEFONTS'} = $newotf; + # $ENV{'TTFONTS'} = $newttf; + # new code for uppercase/lowercase workaround -- HY (2016/09/27) + my $extrafontdir = join($sep, @extradirs) . $sep; + $ENV{'OSFONTDIR'} = $extrafontdir; + } + } + # prepare for kpsewhich call, we need to do quoting + # we need as much candidate files as possible, so -all is needed + my $cmdl = 'kpsewhich -all '; + for my $f (@fn) { + $cmdl .= " \"$f\" "; + } + # shoot up kpsewhich + # this call (derived from the database) contains multibyte characters, + # and they should be encoded in cp932 for win32 console + if (win32()) { + $cmdl = encode_utftocp($cmdl); + } + print_ddebug("checking for $cmdl\n"); + @foundfiles = `$cmdl`; + } + # at this point, on windows, @foundfiles is encoded in cp932 + # which is suitable for the next few lines + chomp(@foundfiles); + print_ddebug("Found files @foundfiles\n"); + # map basenames to filenames + my %bntofn; + for my $f (@foundfiles) { + $f =~ s/[\r\n]+\z//; # perl's chomp() on git-bash cannot strip CR of CRLF ?? + my $realf = abs_path($f); + if (!$realf) { + print_warning("dead link or strange file found: $f - ignored!\n"); + next; + } + if (win32()) { + # abs_path cannot read NTFS symlink/hardlink, and it serves as + # identity transformation. + # this might lead to dangling links for multiple runs of cjk-gs-integrate, + # when $opt_texmflink (in the previous run) is contained in the (current) + # kpsewhich search path. + # to avoid this, ignore targets which contain $otf_pathpart or $ttf_pathpart + my $temp_realfdir = "$realf"; + $temp_realfdir =~ s!^(.*)/(.*)$!$1!; + next if ($temp_realfdir =~ $otf_pathpart || $temp_realfdir =~ $ttf_pathpart); + } + # decode now on windows! (cp932 -> internal utf-8) + if (win32()) { + $f = encode_cptoutf($f); + $realf = encode_cptoutf($realf); + } + my $bn = basename($f); + # kpsewhich -all might return multiple files with the same basename; + # collect all of them + $bntofn{$bn}{$realf} = 1; + } + + # show the %fontdb before file check + if ($opt_debug >= 2) { + print_ddebug("dumping font database before file check:\n"); + print_ddebug(Data::Dumper::Dumper(\%fontdb)); + } + if ($opt_debug >= 3) { + print_dddebug("dumping basename to filename list:\n"); + print_dddebug(Data::Dumper::Dumper(\%bntofn)); + } + + # update the %fontdb with the found files + for my $k (keys %fontdb) { + $fontdb{$k}{'available'} = 0; + for my $f (keys %{$fontdb{$k}{'files'}}) { + # check for subfont extension + my $realfile = $f; + $realfile =~ s/^(.*)\(\d*\)$/$1/; + # check for casefolding + # we might catch different names (batang/Batang) and identify them wrongly on + # * case-insensitive file systems (like HFS on MacOS) + # * kpathsea 6.3.0 or later, with casefolding fallback search (TL2018) + # check the actual psname using otfinfo utility, only when we "know" + # both uppercase/lowercase font files are possible and they are different + my $actualpsname; + my $bname; + for my $b (sort keys %{$bntofn{$realfile}}) { + $fontdb{$k}{'casefold'} = "debug" if $opt_strictpsname; + if ($fontdb{$k}{'casefold'} && $otfinfo_available && + ($fontdb{$k}{'files'}{$f}{'type'} eq 'OTF' || $fontdb{$k}{'files'}{$f}{'type'} eq 'TTF')) { + print_debug("We need to test whether\n"); + print_debug(" $b\n"); + print_debug("is the correct one. Invoking otfinfo ...\n"); + chomp($actualpsname = `otfinfo -p "$b"`); + if ($?) { + # something is wrong with the font file, or otfinfo does not support it; + # still there is a chance that Ghostscript supports, so don't discard it + print_debug("... command exited with $?!\n"); + print_debug("OK, I'll take this, but it may not work properly.\n"); + print_warning("otfinfo check failed for $b\n") if $opt_strictpsname; + $bname = $b; + last; + } + $actualpsname =~ s/[\r\n]+\z//; # perl's chomp() on git-bash cannot strip CR of CRLF ?? + if ($actualpsname ne $k) { + print_debug("... PSName returned by otfinfo ($actualpsname) is\n"); + print_debug("different from our database ($k), discarding!\n"); + print_warning("otfinfo check failed for $b\n") if $opt_strictpsname; + } else { + print_debug("... test passed.\n"); + $bname = $b; + last; + } + } else { + $bname = $b; + last; + } + } + if ($bname) { + # we found a representative, make it available + $fontdb{$k}{'files'}{$f}{'target'} = $bname; + $fontdb{$k}{'available'} = 1; + } else { + # delete the entry for convenience + delete $fontdb{$k}{'files'}{$f}; + } + } + } + # second round to determine the winner in case of more targets + for my $k (keys %fontdb) { + if ($fontdb{$k}{'available'}) { + my $mp = 1000000; my $mf; + for my $f (keys %{$fontdb{$k}{'files'}}) { + if ($fontdb{$k}{'files'}{$f}{'priority'} < $mp) { + $mp = $fontdb{$k}{'files'}{$f}{'priority'}; + $mf = $f; + } + } + # extract subfont if necessary + my $sf = 0; + if ($mf =~ m/^(.*)\((\d*)\)$/) { $sf = $2; } + $fontdb{$k}{'target'} = $fontdb{$k}{'files'}{$mf}{'target'}; + $fontdb{$k}{'type'} = $fontdb{$k}{'files'}{$mf}{'type'}; + $fontdb{$k}{'subfont'} = $sf if ($fontdb{$k}{'type'} eq 'TTC' || $fontdb{$k}{'type'} eq 'OTC'); + } + # not needed anymore + # delete $fontdb{$k}{'files'}; + } + if ($opt_debug >= 2) { + print_ddebug("dumping font database:\n"); + print_ddebug(Data::Dumper::Dumper(\%fontdb)); + } +} + +sub compute_aliases { + # go through fontdb to check for provides + # accumulate all provided fonts in @provides + for my $k (keys %fontdb) { + if ($fontdb{$k}{'available'}) { + for my $p (keys %{$fontdb{$k}{'provides'}}) { + # do not check alias if the real font is available in OTF/TTF/TTC format + if ($fontdb{$p}{'available'}) { + next if ($fontdb{$p}{'type'} ne 'OTC'); + } + # use the priority as key + # if priorities are double, this will pick one at chance + if ($aliases{$p}{$fontdb{$k}{'provides'}{$p}}) { + print_warning("duplicate provide levels:\n"); + print_warning(" current $p $fontdb{$k}{'provides'}{$p} $aliases{$p}{$fontdb{$k}{'provides'}{$p}}\n"); + print_warning(" ignored $p $fontdb{$k}{'provides'}{$p} $k\n"); + } else { + # if OTC font is caught, then skip it as Ghostscript doesn't support it (2016/12/12) + if ($fontdb{$k}{'type'} eq 'OTC') { + print_debug("Currently Ghostscript does not support OTC font,\n"); + print_debug("not adding $fontdb{$k}{'otcname'} to alias candidates\n"); + } else { + $aliases{$p}{$fontdb{$k}{'provides'}{$p}} = $k; + } + } + } + } + } + # check for user supplied aliases + for my $a (@opt_aliases) { + if ($a =~ m/^(.*)=(.*)$/) { + my $ll = $1; + my $rr = $2; + # check for consistency of user provided aliases: + # - ll must not be available + # - rr needs to be available as font or alias + # check whether $rr is available, either as real font or as alias + if ($fontdb{$ll}{'available'}) { + print_error("left side of alias spec is provided by a real font: $a\n"); + print_error("stopping here\n"); + exit(1); + } + if (!($fontdb{$rr}{'available'} || $aliases{$rr})) { + print_error("right side of alias spec is not available as real font or alias: $a\n"); + print_error("stopping here\n"); + exit(1); + } + $user_aliases{$ll} = $rr; + } + } + if ($opt_debug >= 2) { + print_ddebug("dumping aliases:\n"); + print_ddebug(Data::Dumper::Dumper(\%aliases)); + } +} + +# While the OTF link target is determined by the filename itself +# for TTF we can have ttc with several fonts. +# The following routine determines the link target by selecting +# the file name of the ttf candidates with the lowest priority +# as the link target name for TTF +sub determine_nonotf_link_name { + for my $k (keys %fontdb) { + my $ttfname = ""; + my $ttcname = ""; + my $otcname = ""; + my $mpttf = 10000000; + my $mpttc = 10000000; + my $mpotc = 10000000; + for my $f (keys %{$fontdb{$k}{'files'}}) { + if ($fontdb{$k}{'files'}{$f}{'type'} eq 'TTF') { + my $p = $fontdb{$k}{'files'}{$f}{'priority'}; + if ($p < $mpttf) { + $ttfname = $f; + $ttfname =~ s/^(.*)\(\d*\)$/$1/; + $mpttf = $p; + } + } elsif ($fontdb{$k}{'files'}{$f}{'type'} eq 'TTC') { + my $p = $fontdb{$k}{'files'}{$f}{'priority'}; + if ($p < $mpttc) { + $ttcname = $f; + $ttcname =~ s/^(.*)\(\d*\)$/$1/; + $mpttc = $p; + } + } elsif ($fontdb{$k}{'files'}{$f}{'type'} eq 'OTC') { + my $p = $fontdb{$k}{'files'}{$f}{'priority'}; + if ($p < $mpotc) { + $otcname = $f; + $otcname =~ s/^(.*)\(\d*\)$/$1/; + $mpotc = $p; + } + } + } + if ($ttfname) { + $fontdb{$k}{'ttfname'} = $ttfname; + } + if ($ttcname) { + $fontdb{$k}{'ttcname'} = $ttcname; + } + if ($otcname) { + $fontdb{$k}{'otcname'} = $otcname; + } + } +} + +sub read_font_database { + my @dbl; + # if --fontdef=foo is given, disregard built-in database and + # use "foo" as a substitute; otherwise, use built-in database + if ($opt_fontdef) { + my $foo = kpse_miscfont($opt_fontdef); + open(FDB, "<$foo") || + die("Cannot find $opt_fontdef: $!"); + @dbl = ; + close(FDB); + print_debug("New database file: $opt_fontdef...\n"); + } else { + @dbl = ; + } + read_each_font_database(@dbl); + # if --fontdef-add=bar is given, use "bar" as an addition + # to the current database; if the same Name entry appears, + # overwrite existing one (that is, the addition wins) + for (@opt_fontdef_add) { + my $foo = kpse_miscfont($_); + open(FDB, "<$foo") || + die("Cannot find $_: $!"); + @dbl = ; + close(FDB); + print_debug("Additional database file: $_...\n"); + read_each_font_database(@dbl); + } +} + +sub read_each_font_database { + my (@curdbl) = @_; + my $fontname = ""; + my $fontclass = ""; + my %fontprovides = (); + my $fontcasefold = ""; + my %fontfiles; + my $psname = ""; + my $lineno = 0; + chomp(@curdbl); + push @curdbl, ""; # add a "final empty line" to easy parsing + for my $l (@curdbl) { + $lineno++; + next if ($l =~ m/^\s*#/); # skip comment line + $l =~ s/\s*#.*$//; # skip comment after '#' + if ($l =~ m/^\s*$/) { # empty line is a separator between entries + if ($fontname || $fontclass || keys(%fontfiles)) { + if ($fontname && $fontclass && keys(%fontfiles)) { + my $realfontname = ($psname ? $psname : $fontname); + if ($fontdb{$realfontname}{'origname'}) { + # needed for --fontdef-add, which allows overwriting with external database given by user + print_debug("$fontdb{$realfontname}{'origname'} is already registered in database,\n"); + print_debug("overwriting with the new one ...\n"); + } + $fontdb{$realfontname}{'origname'} = $fontname; + $fontdb{$realfontname}{'class'} = $fontclass; + $fontdb{$realfontname}{'casefold'} = $fontcasefold; + $fontdb{$realfontname}{'files'} = { %fontfiles }; + $fontdb{$realfontname}{'provides'} = { %fontprovides }; + if ($opt_debug >= 3) { + print_dddebug("Dumping fontfiles for $realfontname: " . Data::Dumper::Dumper(\%fontfiles)); + } + # reset to start + $fontname = $fontclass = $psname = ""; + $fontcasefold = ""; + %fontfiles = (); + %fontprovides = (); + } else { + print_warning("incomplete entry above line $lineno for $fontname/$fontclass, skipping!\n"); + # reset to start + $fontname = $fontclass = $psname = ""; + $fontcasefold = ""; + %fontfiles = (); + %fontprovides = (); + } + } else { + # no term is set, so nothing to warn about + } + next; + } + if ($l =~ m/^!INCLUDE\s*(.*)$/) { # for remove-only database + next if (!$opt_cleanup); + my @dbl; + my $foo = kpse_miscfont($1); + if (!open(FDB, "<$foo")) { + print_warning("Cannot find $1, skipping!\n"); + next; + } + @dbl = ; + close(FDB); + print_debug("Reading database file $1...\n"); + read_each_font_database(@dbl); + next; + } + if ($l =~ m/^INCLUDE\s*(.*)$/) { + my @dbl; + my $foo = kpse_miscfont($1); + if (!open(FDB, "<$foo")) { + print_warning("Cannot find $1, skipping!\n"); + next; + } + @dbl = ; + close(FDB); + print_debug("Reading database file $1...\n"); + read_each_font_database(@dbl); + next; + } + if ($l =~ m/^Name:\s*(.*)$/) { $fontname = $1; next; } + if ($l =~ m/^PSName:\s*(.*)$/) { $psname = $1; next; } + if ($l =~ m/^Class:\s*(.*)$/) { $fontclass = $1 ; next ; } + if ($l =~ m/^Provides\((\d+)\):\s*(.*)$/) { $fontprovides{$2} = $1; next; } + if ($l =~ m/^Casefold:\s*(.*)$/) { $fontcasefold = $1 ; next ; } + # new code: distinguish 4 types (otf, otc, ttf, ttc) + if ($l =~ m/^OTFname(\((\d+)\))?:\s*(.*)$/) { + my $fn = $3; + $fontfiles{$fn}{'priority'} = ($2 ? $2 : 10); + # cp932 for win32 console + my $encoded_fn; + if (win32()) { + $encoded_fn = encode_utftocp($fn); + } + print_dddebug("filename: ", ($encoded_fn ? "$encoded_fn" : "$fn"), "\n"); + print_dddebug("type: otf\n"); + $fontfiles{$fn}{'type'} = 'OTF'; + next; + } + if ($l =~ m/^OTCname(\((\d+)\))?:\s*(.*)$/) { + my $fn = $3; + $fontfiles{$fn}{'priority'} = ($2 ? $2 : 10); + # cp932 for win32 console + my $encoded_fn; + if (win32()) { + $encoded_fn = encode_utftocp($fn); + } + print_dddebug("filename: ", ($encoded_fn ? "$encoded_fn" : "$fn"), "\n"); + print_dddebug("type: otc\n"); + $fontfiles{$fn}{'type'} = 'OTC'; + next; + } + if ($l =~ m/^TTFname(\((\d+)\))?:\s*(.*)$/) { + my $fn = $3; + $fontfiles{$fn}{'priority'} = ($2 ? $2 : 10); + # cp932 for win32 console + my $encoded_fn; + if (win32()) { + $encoded_fn = encode_utftocp($fn); + } + print_dddebug("filename: ", ($encoded_fn ? "$encoded_fn" : "$fn"), "\n"); + print_dddebug("type: ttf\n"); + $fontfiles{$fn}{'type'} = 'TTF'; + next; + } + if ($l =~ m/^TTCname(\((\d+)\))?:\s*(.*)$/) { + my $fn = $3; + $fontfiles{$fn}{'priority'} = ($2 ? $2 : 10); + # cp932 for win32 console + my $encoded_fn; + if (win32()) { + $encoded_fn = encode_utftocp($fn); + } + print_dddebug("filename: ", ($encoded_fn ? "$encoded_fn" : "$fn"), "\n"); + print_dddebug("type: ttc\n"); + $fontfiles{$fn}{'type'} = 'TTC'; + next; + } + # only for backward compatibility; guess type from the file extension + if ($l =~ m/^Filename(\((\d+)\))?:\s*(.*)$/) { + my $fn = $3; + $fontfiles{$fn}{'priority'} = ($2 ? $2 : 10); + # cp932 for win32 console + my $encoded_fn; + if (win32()) { + $encoded_fn = encode_utftocp($fn); + } + print_dddebug("filename: ", ($encoded_fn ? "$encoded_fn" : "$fn"), "\n"); + if ($fn =~ m/\.otf$/i) { + print_dddebug("type: otf\n"); + $fontfiles{$fn}{'type'} = 'OTF'; + } elsif ($fn =~ m/\.otc(\(\d+\))?$/i) { + print_dddebug("type: otc\n"); + $fontfiles{$fn}{'type'} = 'OTC'; + } elsif ($fn =~ m/\.ttf$/i) { + print_dddebug("type: ttf\n"); + $fontfiles{$fn}{'type'} = 'TTF'; + } elsif ($fn =~ m/\.ttc(\(\d+\))?$/i) { + print_dddebug("type: ttc\n"); + $fontfiles{$fn}{'type'} = 'TTC'; + } else { + print_warning("cannot determine font type of $fn at line $lineno, skipping!\n"); + delete $fontfiles{$fn}; + } + next; + } + # only for removing + if ($l =~ m/^RMVname(\((\d+)\))?:\s*(.*)$/) { + my $fn = $3; + $fontfiles{$fn}{'priority'} = ($2 ? $2 : 10); + # cp932 for win32 console + my $encoded_fn; + if (win32()) { + $encoded_fn = encode_utftocp($fn); + } + print_dddebug("filename: ", ($encoded_fn ? "$encoded_fn" : "$fn"), "\n"); + print_dddebug("type: remove\n"); + $fontfiles{$fn}{'type'} = 'RMV'; + next; + } + # we are still here?? + print_error("Cannot parse this file at line $lineno, exiting. + Strange line: >>>$l<<<\n"); + exit(1); + } +} + +sub dump_font_database { + open(FOO, ">$dump_datafile") || + die("cannot open $dump_datafile for writing: $!"); + for my $k (sort keys %fontdb) { + print FOO "Name: $fontdb{$k}{'origname'}\n"; + print FOO "PSName: $k\n" if ($fontdb{$k}{'origname'} ne $k); + print FOO "Class: $fontdb{$k}{'class'}\n"; + for my $p (sort keys %{$fontdb{$k}{'provides'}}) { + print FOO "Provides($fontdb{$k}{'provides'}{$p}): $p\n"; + } + print FOO "Casefold: $fontdb{$k}{'casefold'}\n" if ($fontdb{$k}{'casefold'}); + for my $f (sort { $fontdb{$k}{'files'}{$a}{'priority'} + <=> + $fontdb{$k}{'files'}{$b}{'priority'} } + keys %{$fontdb{$k}{'files'}}) { + print FOO "$fontdb{$k}{'files'}{$f}{'type'}name($fontdb{$k}{'files'}{$f}{'priority'}): $f\n"; + } + print FOO "\n"; # empty line is a separator between entries + } + close(FOO); +} + +sub find_gs_resource { + my $foundres = ''; + if (win32()) { + # determine tlgs or native gs + chomp(my $foo = `kpsewhich -var-value=SELFAUTOPARENT`); + if ( -d "$foo/tlpkg/tlgs" ) { + # should be texlive with tlgs + print_debug("Assuming tlgs win32 ...\n"); + $foundres = "$foo/tlpkg/tlgs/Resource"; + # for TL2016, tlgs binary has built-in Resource, + # so we cannot set up CJK fonts correctly. + # the following test forces to exit in such case + if ( ! -d $foundres ) { + print_error("No Resource directory available for tlgs,\n"); + print_error("we cannot support such gs, sorry.\n"); + $foundres = ''; + } + # change output location + $cidfmap_pathpart = "../lib/cidfmap"; + $cidfmap_local_pathpart = "../lib/cidfmap.local"; + $cidfmap_aliases_pathpart = "../lib/cidfmap.aliases"; + } else { + # we assume gswin32c is in the path + # TODO: what should we do for gswin64c? + chomp($foundres = `where gswin32c 2>$nul`); # assume 'where' is available + if ($?) { + print_error("Cannot run where gswin32c ...\n"); + } else { + # trial 1: assume the relative path + # when C:\path\to\bin\gswin32c.exe is found, then there should be + # C:\path\to\Resource (note that 'where' returns backslash-ed path) + print_debug("Finding gs resource by assuming relative path ...\n"); + $foundres = encode_cptoutf($foundres); # 99.99% unnecessary + $foundres =~ s!\\!/!g; + $foundres =~ s!/bin/gswin32c\.exe$!/Resource!; + if ( ! -d $foundres ) { + $foundres = ''; + } + if (!$foundres) { + print_debug("Found gs but no resource, try another routine ...\n"); + } + } + if (!$foundres) { + chomp(my $gsver = `gswin32c --version 2>$nul`); + if ($?) { + print_error("Cannot run gswin32c --version ...\n"); + } else { + # trial 2: assume the fixed path, c:/gs/gs$gsver/Resource + print_debug("Finding gs resource by assuming fixed path ...\n"); + $foundres = "c:/gs/gs$gsver/Resource"; + if ( ! -d $foundres ) { + $foundres = ''; + } + if (!$foundres) { + print_error("Found gs but no resource???\n"); + } + } + } + } + } else { + # we assume that gs is in the path + chomp(my $gsver = `gs --version 2>$nul`); + if ($?) { + print_error("Cannot run gs --version ...\n"); + } else { + # trial 1: assume the relative path + # when /path/to/bin/gs is found, then there should be + # /path/to/share/ghostscript/$(gs --version)/Resource + print_debug("Finding gs resource by assuming relative path ...\n"); + chomp($foundres = `which gs`); + $foundres =~ s!/bin/gs$!/share/ghostscript/$gsver/Resource!; + if ( ! -d $foundres ) { + $foundres = ''; + } + if (!$foundres) { + print_debug("Found gs but no resource, try another routine ...\n"); + } + } + if (!$foundres) { + chomp(my @ret = `gs --help 2>$nul`); + if ($?) { + print_error("Cannot run gs --help ...\n"); + } else { + # trial 2: parse gs help message + print_debug("Finding gs resource by parsing help message ...\n"); + $foundres = ''; + # try to find resource line + for (@ret) { + if (m!Resource/Font!) { + $foundres = $_; + # extract the first substring of non-space chars + # up to Resource/Font and drop the /Font part + $foundres =~ s!^.*\s(\S*Resource)/Font.*$!$1!; + last; + } + } + if (!$foundres) { + print_error("Found gs but no resource???\n"); + } + } + } + } + return $foundres; +} + +sub kpse_miscfont { + my ($file) = @_; + chomp(my $foo = `kpsewhich -format=miscfont $file`); + # for GitHub repository diretory structure + if ($foo eq "") { + $foo = "database/$file" if (-f "database/$file"); + } + return $foo; +} + +sub encode_utftocp { + my ($foo) = @_; + $foo = Encode::decode('utf-8', $foo); + $foo = Encode::encode('cp932', $foo); + return $foo; +} + +sub encode_cptoutf { + my ($foo) = @_; + $foo = Encode::decode('cp932', $foo); + $foo = Encode::encode('utf-8', $foo); + return $foo; +} + +sub version { + my $ret = sprintf "%s version %s\n", $prg, $version; + return $ret; +} + +sub Usage { + my $headline = "Configuring Ghostscript for CJK CID/TTF fonts"; + my $usage = "[perl] $prg\[.pl\] [OPTIONS]"; + my $options = " +-o, --output DIR specifies the base output dir, if not provided, + the Resource directory of an installed Ghostscript + is searched and used. +-f, --fontdef FILE specify alternate set of font definitions, if not + given, the built-in set is used +--fontdef-add FILE specify additional set of font definitions, to + overwrite subset of built-in definitions; + can be given multiple times +-a, --alias LL=RR defines an alias, or overrides a given alias; + illegal if LL is provided by a real font, or + RR is neither available as real font or alias; + can be given multiple times +--filelist FILE read list of available font files from FILE + instead of searching with kpathsea +--link-texmf [DIR] link fonts into + DIR/$otf_pathpart + and + DIR/$ttf_pathpart + where DIR defaults to TEXMFLOCAL +--otfps [DIR] generate configuration file (psnames-for-otf) into + DIR/$akotfps_pathpart + which is used by ps2otfps (developed by Akira Kakuto), + instead of generating snippets +--force do not bail out if linked fonts already exist +--remove try to remove instead of create +--cleanup try to clean up all possible links/snippets and + cidfmap.local/cidfmap.aliases, which could have been + generated in the previous runs +-n, --dry-run do not actually output anything +-q, --quiet be less verbose +-d, --debug output debug information, can be given multiple times +-v, --version outputs only the version information +-h, --help this help +"; + + my $winonlyoptions = " +--hardlink create hardlinks instead of symlinks +--winbatch [FILE] prepare a batch file for link generation, instead of + generating links right away + the batch file name defaults to $winbatch +"; + + my $commandoptions = " +--dump-data [FILE] dump the set of font definitions which is currently + effective, where FILE (the dump output) defaults to + $dump_datafile; you can easily modify it, + and tell me with -f (or --fontdef) option +--only-aliases regenerate only cidfmap.aliases file, instead of all +--list-aliases lists the available aliases and their options, with the + selected option on top +--list-all-aliases list all possible aliases without searching for + actually present files +--list-fonts lists the fonts found on the system +--info combines the information of --list-aliases and + --list-fonts +--machine-readable output of --list-aliases is machine readable +"; + + my $shortdesc = " +This script searches a list of directories for CJK fonts, and makes +them available to an installed Ghostscript. In the simplest case with +sufficient privileges, a run without arguments should effect in a +complete setup of Ghostscript. +Search is done using the kpathsea library, in particular `kpsewhich` +program. To run this script, you will need some TeX distribution in +your system. +"; + +my $operation = " +For each found TrueType (TTF) font it creates a cidfmap entry in + + /Init/cidfmap.local + -- if you are using tlgs win32, tlpkg/tlgs/lib/cidfmap.local instead + +and links the font to + + /CIDFSubst/ + +For each CID font it creates a snippet in + + /Font/ + +and links the font to + + /CIDFont/ + +The `` dir is either given by `-o`/`--output`, or otherwise searched +from an installed Ghostscript (binary name is assumed to be 'gs' on unix, +'gswin32c' on win32). + +Aliases are added to + + /Init/cidfmap.aliases + -- if you are using tlgs win32, tlpkg/tlgs/lib/cidfmap.aliases instead + +Finally, it tries to add runlib calls to + + /Init/cidfmap + -- if you are using tlgs win32, tlpkg/tlgs/lib/cidfmap + +to load the cidfmap.local and cidfmap.aliases. +"; + + my $dirsearch = ' +Search is done using the kpathsea library, in particular using kpsewhich +program. By default the following directories are searched: + - all TEXMF trees + - `/Library/Fonts`, `/Library/Fonts/Microsoft`, `/System/Library/Fonts`, + `/System/Library/Assets`, `/Network/Library/Fonts`, + `~/Library/Fonts` and `/usr/share/fonts` (all if available) + - `/Applications/Microsoft Word.app/Contents/Resources/{Fonts,DFonts}`, + `/Applications/Microsoft Excel.app/Contents/Resources/{Fonts,DFonts}`, + `/Applications/Microsoft PowerPoint.app/Contents/Resources/{Fonts,DFonts}` + (all if available, meant for Office for Mac 2016) + - `c:/windows/fonts` (on Windows) + - the directories in `OSFONTDIR` environment variable + +In case you want to add some directories to the search path, adapt the +`OSFONTDIR` environment variable accordingly: Example: + +````` + OSFONTDIR="/usr/local/share/fonts/truetype//:/usr/local/share/fonts/opentype//" $prg +````` + +will result in fonts found in the above two given directories to be +searched in addition. +'; + + my $outputfile = " +If no output option is given, the program searches for a Ghostscript +interpreter 'gs' and determines its Resource directory. This might +fail, in which case one need to pass the output directory manually. + +Since the program adds files and link to this directory, sufficient +permissions are necessary. +"; + + my $aliases = " +Aliases are managed via the Provides values in the font database. +At the moment entries for the basic font names for CJK fonts +are added: + +Japanese: + + Ryumin-Light GothicBBB-Medium FutoMinA101-Bold FutoGoB101-Bold + MidashiMin-MA31 MidashiGo-MB31 Jun101-Light + +Korean: + + HYSMyeongJo-Medium HYGoThic-Medium HYRGoThic-Medium + +Simplified Chinese: + + STSong-Light STSong-Regular STHeiti-Regular STHeiti-Light + STKaiti-Regular STFangsong-Light STFangsong-Regular + +Traditional Chinese: + + MSung-Light MSung-Medium MHei-Medium MKai-Medium + +In addition, we also include provide entries for the OTF Morisawa names: + + RyuminPro-Light GothicBBBPro-Medium + FutoMinA101Pro-Bold FutoGoB101Pro-Bold + MidashiMinPro-MA31 MidashiGoPro-MB31 Jun101Pro-Light + +The order is determined by the `Provides` setting in the font database. +That is, the first font found in this order will be used to provide the +alias if necessary. + +For the Japanese fonts: + Morisawa Pr6N, Morisawa, Hiragino ProN, Hiragino, + Kozuka Pr6N, Kozuka ProVI, Kozuka Pro, Kozuka Std, + Yu OS X, Yu Win, MS, + Moga-Mobo-ex, Moga-Mobo, IPAex, IPA, Ume + +For the Korean fonts: + (Hanyang,) Adobe, Solaris, MS, Unfonts, Baekmuk + +For the Simplified Chinese: + Adobe, Fandol, Hiragino, Founder, MS, CJKUnifonts, Arphic, CJKUnifonts-ttf + +For the Traditional Chinese: + Adobe, MS, CJKUnifonts, Arphic, CJKUnifonts-ttf + +#### Overriding aliases #### + +Using the command line option `--alias LL=RR` one can add arbitrary aliases, +or override ones selected by the program. For this to work the following +requirements of `LL` and `RR` must be fulfilled: + * `LL` is not provided by a real font + * `RR` is available either as real font, or as alias (indirect alias) +"; + + my $authors = " +The script and its documentation was written by Norbert Preining, based +on research and work by Yusuke Kuroki, Yusuke Terada, Bruno Voisin, +Hironobu Yamashita, Munehiro Yamamoto and the TeX Q&A wiki page. + +Maintained by Japanese TeX Development Community. For development, see + https://github.com/texjporg/cjk-gs-support + +The script is licensed under GNU General Public License Version 3 or later. +The contained font data is not copyrightable. +"; + + + if ($opt_markdown) { + print "$headline\n"; + print ("=" x length($headline)); + print "\n$shortdesc\nUsage\n-----\n\n`````\n$usage\n`````\n\n"; + print "#### Options ####\n\n`````"; + print_for_out($options, " "); + print "`````\n\n#### Windows only options ####\n\n`````"; + print_for_out($winonlyoptions, " "); + print "`````\n\n#### Command like options ####\n\n`````"; + print_for_out($commandoptions, " "); + print "`````\n\nOperation\n---------\n$operation\n"; + print "How and which directories are searched\n"; + print "--------------------------------------\n$dirsearch\n"; + print "Output files\n"; + print "------------\n$outputfile\n"; + print "Aliases\n"; + print "-------\n$aliases\n"; + print "Authors, Contributors, and Copyright\n"; + print "------------------------------------\n$authors\n"; + } else { + print "\nUsage: $usage\n\n$headline\n$shortdesc"; + print "\nOptions:\n"; + print_for_out($options, " "); + if (win32()) { + print "\nWindows only options:\n"; + print_for_out($winonlyoptions, " "); + } + print "\nCommand like options:\n"; + print_for_out($commandoptions, " "); + print "\nOperation:\n"; + print_for_out($operation, " "); + print "\nHow and which directories are searched:\n"; + print_for_out($dirsearch, " "); + print "\nOutput files:\n"; + print_for_out($outputfile, " "); + print "\nAliases:\n"; + print_for_out($aliases, " "); + print "\nAuthors, Contributors, and Copyright:\n"; + print_for_out($authors, " "); + print "\n"; + } + exit(0); +} + +sub print_for_out { + my ($what, $indent) = @_; + for (split /\n/, $what) { + next if m/`````/; + s/\s*####\s*//g; + if ($_ eq '') { + print "\n"; + } else { + print "$indent$_\n"; + } + } +} + +# info/warning can be suppressed +# verbose/error cannot be suppressed +sub print_info { + print STDOUT "$prg: ", @_ if (!$opt_quiet); +} +sub print_verbose { + print STDOUT "$prg: ", @_; +} +sub print_warning { + print STDERR "$prg [WARNING]: ", @_ if (!$opt_quiet) +} +sub print_error { + print STDERR "$prg [ERROR]: ", @_; +} +sub print_debug { + print STDERR "$prg [DEBUG]: ", @_ if ($opt_debug >= 1); +} +sub print_ddebug { + print STDERR "$prg [DEBUG]: ", @_ if ($opt_debug >= 2); +} +sub print_dddebug { + print STDERR "$prg [DEBUG]: ", @_ if ($opt_debug >= 3); +} + + +__DATA__ +# +# CJK FONT DEFINITIONS +# + +# Noto +INCLUDE cjkgs-notoserif.dat +INCLUDE cjkgs-notosans.dat + +# SourceHan +INCLUDE cjkgs-sourcehanserif.dat +INCLUDE cjkgs-sourcehansans.dat + +# +# JAPANESE FONTS +# + +# Morisawa -- Provides J10(Pr6N), J15(Pr6), J18(Pr5), J20(Pro) +INCLUDE cjkgs-morisawa.dat +#INCLUDE cjkgs-morisawa-extra.dat + +# Hiragino -- Provides J30(ProN), J40(Pro) +INCLUDE cjkgs-hiragino.dat + +# Kozuka -- Provides J50(Pr6N), J55(ProVI), J60(Pro), J65(Std) +INCLUDE cjkgs-kozuka.dat +INCLUDE cjkgs-ryokana.dat + +# Yu-fonts MacOS version -- Provides J80 +INCLUDE cjkgs-yu-osx.dat + +# Yu-fonts Windows/MSOffice version -- Provides J90 +INCLUDE cjkgs-yu-win.dat + +# MS -- Provides J95 +INCLUDE cjkgs-microsoft.dat + +# BIZ UD +INCLUDE cjkgs-bizud.dat + +# TypeBank +INCLUDE cjkgs-typebank.dat + +# Fontworks +INCLUDE cjkgs-fontworks.dat + +# Toppan +INCLUDE cjkgs-toppan.dat + +# Heisei +INCLUDE cjkgs-heisei.dat + +# Moga-Mobo from Y.Oz Vox (free) -- Provides J100(Ex), J110(none) +INCLUDE cjkgs-mogamobo.dat + +# IPA (free) -- Provides J120(Ex), J130(none) +INCLUDE cjkgs-ipa.dat + +# Ume-font (free) -- Provides J140 +INCLUDE cjkgs-ume.dat + +# Sazanami (free) +INCLUDE cjkgs-sazanami.dat + +# Osaka (Apple) + +Name: Osaka +Class: Japan +TTFname: Osaka.ttf + +Name: Osaka-Mono +Class: Japan +TTFname: OsakaMono.ttf + +# +# CHINESE FONTS +# + +# Adobe -- Provides S30, T30 +INCLUDE cjkgs-adobe.dat + +# Hiragino -- Provides S50 +# (already included in JAPANESE section) + +# Beijing Founder Electronics -- Provides S55 +INCLUDE cjkgs-founder.dat + +# Changzhou SinoType -- Provides S?? +INCLUDE cjkgs-sinotype.dat + +# DynaComware -- Provides T?? +INCLUDE cjkgs-dynacomware.dat + +# Monotype +INCLUDE cjkgs-monotype.dat + +# Apple +INCLUDE cjkgs-apple.dat + +# Shanghai Ikarus Ltd./URW Software & Type GmbH + +Name: SIL-Hei-Med-Jian +Class: GB +TTFname: Hei.ttf + +Name: SIL-Kai-Reg-Jian +Class: GB +TTFname: Kai.ttf + +# Fandol (free) -- Provides S40 +INCLUDE cjkgs-fandol.dat + +# Arphic (free) -- Provides S80, T80 +INCLUDE cjkgs-arphic.dat + +# CJK-Unifonts new ttc edition (free) -- Provides T70, S70 +# CJK-Unifonts old ttf edition (free) -- Provides T90, S90 +INCLUDE cjkgs-cjkuni.dat + +# WenQuanYi (free) +INCLUDE cjkgs-wenquanyi.dat + +# cwTeX (free) + +Name: cwTeXMing +Class: CNS +TTFname: cwming.ttf + +Name: cwTeXHeiBold +Class: CNS +TTFname: cwheib.ttf + +Name: cwTeXKai +Class: CNS +TTFname: cwkai.ttf + +Name: cwTeXYen +Class: CNS +TTFname: cwyen.ttf + +Name: cwTeXFangSong +Class: CNS +TTFname: cwfs.ttf + +# +# KOREAN FONTS +# + +# Adobe -- Provides K30/80 +# (already included in CHINESE section) + +# Solaris -- Provides K40 +INCLUDE cjkgs-solaris.dat + +# Baekmuk (free) +# This is a special case, because "batang.ttf" in baekmuk and +# "Batang.ttf" in Microsoft Mac Office font share the same filename; +# symlink name should be "Baekmuk-Batang.ttf" +# similar for "Gulim.ttf" -- HY (2016/09/29) + +Name: Baekmuk-Batang +Class: Korea +Provides(70): HYSMyeongJo-Medium +Casefold: true +TTFname(20): batang.ttf +TTFname(10): Baekmuk-Batang.ttf + +Name: Baekmuk-Dotum +Class: Korea +Provides(70): HYGoThic-Medium +TTFname(20): dotum.ttf +TTFname(10): Baekmuk-Dotum.ttf + +Name: Baekmuk-Gulim +Class: Korea +Provides(70): HYRGoThic-Medium +Casefold: true +TTFname(20): gulim.ttf +TTFname(10): Baekmuk-Gulim.ttf + +Name: Baekmuk-Headline +Class: Korea +TTFname(20): hline.ttf +TTFname(10): Baekmuk-Headline.ttf + +# Unfonts (free) -- Provides K60 +INCLUDE cjkgs-unfonts.dat + +# Nanum (free) +INCLUDE cjkgs-nanum.dat + +# Design font by Ho-Seok Ee, aka. "ALee's font" (free) + +Name: Bandal +Class: Korea +TTFname: Bandal.ttf + +Name: Bangwool +Class: Korea +TTFname: Bangwool.ttf + +Name: Eunjin +Class: Korea +TTFname: Eunjin.ttf + +Name: EunjinNakseo +Class: Korea +TTFname: EunjinNakseo.ttf + +Name: Guseul +Class: Korea +TTFname: Guseul.ttf + +# Woowa Brothers (free) + +Name: BMHANNA +Class: Korea +TTFname: BM-HANNA.ttf + +# Hancom HCR (free) +INCLUDE cjkgs-hancom.dat + + +# +# Microsoft Windows, Windows/Mac Office fonts +# + +# korea + +Name: Batang +Class: Korea +Casefold: true +TTFname(50): Batang.ttf +TTCname(20): batang.ttc(0) + +Name: BatangChe +Class: Korea +Provides(50): HYSMyeongJo-Medium +TTCname(20): batang.ttc(1) + +Name: Dotum +Class: Korea +TTCname(20): gulim.ttc(2) + +Name: DotumChe +Class: Korea +Provides(50): HYGoThic-Medium +TTCname(20): gulim.ttc(3) + +Name: Gulim +Class: Korea +Casefold: true +TTFname(50): Gulim.ttf +TTCname(20): gulim.ttc(0) + +Name: GulimChe +Class: Korea +Provides(50): HYRGoThic-Medium +Provides(90): HYGoThic-Medium +TTCname(20): gulim.ttc(1) + +Name: Gungsuh +Class: Korea +TTCname(20): batang.ttc(2) + +Name: GungsuhChe +Class: Korea +TTCname(20): batang.ttc(3) + +Name: MalgunGothicRegular +Class: Korea +TTFname: malgun.ttf + +Name: MalgunGothicBold +Class: Korea +TTFname: malgunbd.ttf + +Name: MalgunGothic-Semilight +Class: Korea +TTFname: malgunsl.ttf + +# simplified chinese + +Name: SimHei +Class: GB +Provides(60): STHeiti-Regular +Provides(60): STHeiti-Light +TTFname(50): SimHei.ttf +TTFname(20): simhei.ttf + +Name: SimSun +Class: GB +Provides(60): STSong-Light +Provides(60): STSong-Regular +TTFname(50): SimSun.ttf +TTFname(21): simsun.ttf +TTCname(20): simsun.ttc(0) + +Name: NSimSun +Class: GB +TTCname(20): simsun.ttc(1) + +Name: KaiTi +Class: GB +Provides(60): STKaiti-Regular +TTFname(40): Kaiti.ttf +TTFname(20): simkai.ttf + +Name: FangSong +Class: GB +Provides(60): STFangsong-Light +Provides(60): STFangsong-Regular +TTFname(40): Fangsong.ttf +TTFname(20): simfang.ttf + +Name: LiSu +Class: GB +TTCname(20): SIMLI.TTF +TTCname(19): simli.ttf + +Name: YouYuan +Class: GB +TTCname(20): SIMYOU.TTF +TTCname(19): simyou.ttf + +Name: MicrosoftYaHei +Class: GB +TTFname(20): msyh.ttf +TTCname(30): msyh.ttc(0) + +Name: MicrosoftYaHei-Bold +Class: GB +TTFname(20): msyhbd.ttf +TTCname(30): msyhbd.ttc(0) + +Name: MicrosoftYaHeiLight +Class: GB +TTFname(20): msyhl.ttf +TTCname(30): msyhl.ttc(0) + +Name: DengXian-Regular +Class: GB +TTFname: Deng.ttf + +Name: DengXian-Bold +Class: GB +TTFname: Dengb.ttf + +Name: DengXian-Light +Class: GB +TTFname: Dengl.ttf + +# traditional chinese + +Name: MingLiU +Class: CNS +Provides(60): MSung-Medium +Provides(60): MSung-Light +TTFname(50): MingLiU.ttf +TTCname(20): mingliu.ttc(0) + +Name: PMingLiU +Class: CNS +TTFname(50): PMingLiU.ttf +TTCname(20): mingliu.ttc(1) + +Name: DFKaiShu-SB-Estd-BF +Class: CNS +Provides(60): MKai-Medium +TTFname(50): BiauKai.ttf +TTFname(20): kaiu.ttf + +Name: MicrosoftJhengHeiRegular +Class: CNS +Provides(60): MHei-Medium +TTFname(40): MSJH.ttf +TTFname(20): msjh.ttf +TTCname(30): msjh.ttc(0) + +Name: MicrosoftJhengHeiBold +Class: CNS +TTFname(40): MSJHBD.ttf +TTFname(20): msjhbd.ttf +TTCname(30): msjhbd.ttc(0) + +Name: MicrosoftJhengHeiLight +Class: CNS +TTCname(30): msjhl.ttc(0) + +Name: MicrosoftMHei +Class: CNS +Provides(65): MHei-Medium +TTFname(10): MSMHei.ttf + +Name: MicrosoftMHei-Bold +Class: CNS +TTFname(10): MSMHei-Bold.ttf + +# Remove-only database (should begin with !INCLUDE) +# that is, entries which contain at least one 'RMVname' line +# note that this line should come at the _end_ of all INCLUDE files +!INCLUDE cjkgs-macos-removeonly.dat + + +### Local Variables: +### perl-indent-level: 2 +### tab-width: 2 +### indent-tabs-mode: nil +### End: +# vim: set tabstop=2 expandtab autoindent: diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-adobe.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-adobe.dat new file mode 100644 index 0000000000..0081d845d2 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-adobe.dat @@ -0,0 +1,58 @@ +# Adobe + +### SIMPLIFIED CHINESE ### + +Name: AdobeSongStd-Light +Class: GB +Provides(30): STSong-Light +Provides(30): STSong-Regular +OTFname(10): AdobeSongStd-Light.otf + +Name: AdobeHeitiStd-Regular +Class: GB +Provides(30): STHeiti-Regular +Provides(30): STHeiti-Light +OTFname(20): AdobeHeitiStd-Regular.otf + +Name: AdobeKaitiStd-Regular +Class: GB +Provides(30): STKaiti-Regular +OTFname(20): AdobeKaitiStd-Regular.otf + +Name: AdobeFangsongStd-Regular +Class: GB +Provides(30): STFangsong-Light +Provides(30): STFangsong-Regular +OTFname(20): AdobeFangsongStd-Regular.otf + +### TRADITIONAL CHINESE ### + +Name: AdobeMingStd-Light +Class: CNS +Provides(30): MSung-Light +Provides(30): MSung-Medium +OTFname(20): AdobeMingStd-Light.otf + +Name: AdobeFanHeitiStd-Bold +Class: CNS +Provides(30): MHei-Medium +Provides(30): MKai-Medium +OTFname(20): AdobeFanHeitiStd-Bold.otf + +### KOREAN ### + +Name: AdobeMyungjoStd-Medium +Class: Korea +Provides(30): HYSMyeongJo-Medium +OTFname: AdobeMyungjoStd-Medium.otf + +Name: AdobeGothicStd-Bold +Class: Korea +Provides(30): HYGoThic-Medium +Provides(80): HYRGoThic-Medium +OTFname: AdobeGothicStd-Bold.otf + +Name: AdobeGothicStd-Light +Class: Korea +OTFname: AdobeGothicStd-Light.otf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-apple.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-apple.dat new file mode 100644 index 0000000000..95d70a2610 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-apple.dat @@ -0,0 +1,119 @@ +# Apple + +### TRADITIONAL CHINESE ### + +# Note about Mac (Mac OS X 10.6 -- macOS 10.13) +# Apple LiSung Light.ttf +# Apple LiGothic Medium.ttf +# are bundled with macOS 10.12.6 Sierra or earlier versions. +# AppleLiSung-Light.ttf +# AppleLiGothic-Medium.ttf +# are bundled with macOS 10.13 High Sierra or later versions. + +Name: LiSungLight +Class: CNS +TTFname(20): Apple LiSung Light.ttf +TTFname(19): AppleLiSung-Light.ttf +TTFname(10): LiSungLight.ttf + +Name: LiGothicMed +Class: CNS +TTFname(20): Apple LiGothic Medium.ttf +TTFname(19): AppleLiGothic-Medium.ttf +TTFname(10): LiGothicMed.ttf + +### KOREAN ### + +# Note about Mac (Mac OS X 10.6 -- macOS 10.13) +# AppleMyungjo.ttf +# AppleGothic.ttf +# PCmyoungjo.ttf +# Pilgiche.ttf +# Gungseouche.ttf +# HeadlineA.ttf +# are bundled with all versions. +# AppleSDGothicNeo-Regular.otf +# AppleSDGothicNeo-Medium.otf +# AppleSDGothicNeo-SemiBold.otf +# AppleSDGothicNeo-Bold.otf +# AppleSDGothicNeo-Light.otf +# AppleSDGothicNeo-Thin.otf +# AppleSDGothicNeo-UltraLight.otf +# AppleSDGothicNeo-ExtraBold.otf +# AppleSDGothicNeo-Heavy.otf +# are bundled with OS X 10.10.5 Yosemite or earlier versions. +# AppleSDGothicNeo.ttc +# is bundled with OS X 10.11 El Capitan or later versions. + +Name: AppleMyungjo +Class: Korea +#Provides(??): HYSMyeongJo-Medium # fails +TTFname: AppleMyungjo.ttf + +Name: AppleGothic +Class: Korea +#Provides(??): HYGoThic-Medium # fails +#Provides(??): HYRGoThic-Medium # fails +TTFname: AppleGothic.ttf + +Name: AppleSDGothicNeo-Regular +Class: Korea +OTFname(10): AppleSDGothicNeo-Regular.otf +OTCname(20): AppleSDGothicNeo.ttc(0) + +Name: AppleSDGothicNeo-Medium +Class: Korea +OTFname(10): AppleSDGothicNeo-Medium.otf +OTCname(20): AppleSDGothicNeo.ttc(2) + +Name: AppleSDGothicNeo-SemiBold +Class: Korea +OTFname(10): AppleSDGothicNeo-SemiBold.otf +OTCname(20): AppleSDGothicNeo.ttc(4) + +Name: AppleSDGothicNeo-Bold +Class: Korea +OTFname(10): AppleSDGothicNeo-Bold.otf +OTCname(20): AppleSDGothicNeo.ttc(6) + +Name: AppleSDGothicNeo-Light +Class: Korea +OTFname(10): AppleSDGothicNeo-Light.otf +OTCname(20): AppleSDGothicNeo.ttc(8) + +Name: AppleSDGothicNeo-Thin +Class: Korea +OTFname(10): AppleSDGothicNeo-Thin.otf +OTCname(20): AppleSDGothicNeo.ttc(10) + +Name: AppleSDGothicNeo-UltraLight +Class: Korea +OTFname(10): AppleSDGothicNeo-UltraLight.otf +OTCname(20): AppleSDGothicNeo.ttc(12) + +Name: AppleSDGothicNeo-ExtraBold +Class: Korea +OTFname(10): AppleSDGothicNeo-ExtraBold.otf +OTCname(20): AppleSDGothicNeo.ttc(14) + +Name: AppleSDGothicNeo-Heavy +Class: Korea +OTFname(10): AppleSDGothicNeo-Heavy.otf +OTCname(20): AppleSDGothicNeo.ttc(16) + +Name: JCsmPC +Class: Korea +TTFname: PCmyoungjo.ttf + +Name: JCfg +Class: Korea +TTFname: Pilgiche.ttf + +Name: JCkg +Class: Korea +TTFname: Gungseouche.ttf + +Name: JCHEadA +Class: Korea +TTFname: HeadlineA.ttf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-arphic.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-arphic.dat new file mode 100644 index 0000000000..80b4b45d00 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-arphic.dat @@ -0,0 +1,46 @@ +# Arphic Technology + +### SIMPLIFIED/TRADITIONAL CHINESE ### + +# Note about TeX Live: +# gbsn00lp.ttf +# gkai00mp.ttf +# bsmi00lp.ttf +# bkai00mp.ttf +# are available as "arphic" package for free. + +# Note about Mac (Mac OS X 10.6 -- macOS 10.13) +# WeibeiSC-Bold.otf (PSName: Weibei-SC-Bold) +# WeibeiTC-Bold.otf (PSName: Weibei-TC-Bold) +# are bundled with macOS 10.12.6 Sierra or earlier versions. +# WeibeiSC-Bold.otf (PSName: WeibeiSC-Bold) +# WeibeiTC-Bold.otf (PSName: WeibeiTC-Bold) +# are bundled with macOS 10.13 High Sierra or later versions. + +Name: BousungEG-Light-GB +Class: GB +Provides(80): STSong-Light +Provides(80): STSong-Regular +Provides(80): STFangsong-Light +Provides(80): STFangsong-Regular +TTFname: gbsn00lp.ttf + +Name: GBZenKai-Medium +Class: GB +Provides(80): STKaiti-Regular +Provides(80): STHeiti-Regular +Provides(80): STHeiti-Light +TTFname: gkai00mp.ttf + +Name: ShanHeiSun-Light +Class: CNS +Provides(80): MSung-Light +Provides(80): MSung-Medium +TTFname: bsmi00lp.ttf + +Name: ZenKai-Medium +Class: CNS +Provides(80): MKai-Medium +Provides(80): MHei-Medium +TTFname: bkai00mp.ttf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-bizud.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-bizud.dat new file mode 100644 index 0000000000..3ab501673e --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-bizud.dat @@ -0,0 +1,60 @@ +# BIZ UD (Morisawa) + +### JAPANESE ### + +# Note: +# BIZ-UD*.ttc (3 files) +# are bundled with Windows 10 (October 2018 Update). +# Also available from https://bizplus.morisawa.co.jp for Win/Mac. + +Name: BIZ-UDGothic-Bold +Class: Japan +TTCname: BIZ-UDGothicB.ttc(0) + +Name: BIZ-UDPGothic-Bold +Class: Japan +TTCname: BIZ-UDGothicB.ttc(1) + +Name: BIZ-UDGothic +Class: Japan +TTCname: BIZ-UDGothicR.ttc(0) + +Name: BIZ-UDPGothic +Class: Japan +TTCname: BIZ-UDGothicR.ttc(1) + +Name: BIZ-UDMincho-Medium +Class: Japan +TTCname: BIZ-UDMinchoM.ttc(0) + +Name: BIZ-UDPMincho-Medium +Class: Japan +TTCname: BIZ-UDMinchoM.ttc(1) + +# Version 2018-10-23 or earlier (before official October 2018 Update) +# had different filename and PSName + +Name: BIZ-UDGothic-B +Class: Japan +TTCname: BIZ-UDGothic-B.ttc(0) + +Name: BIZ-UDPGothic-B +Class: Japan +TTCname: BIZ-UDGothic-B.ttc(1) + +Name: BIZ-UDGothic-R +Class: Japan +TTCname: BIZ-UDGothic-R.ttc(0) + +Name: BIZ-UDPGothic-R +Class: Japan +TTCname: BIZ-UDGothic-R.ttc(1) + +Name: BIZ-UDMincho-M +Class: Japan +TTCname: BIZ-UDMincho-M.ttc(0) + +Name: BIZ-UDPMincho-M +Class: Japan +TTCname: BIZ-UDMincho-M.ttc(1) + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-cjkuni.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-cjkuni.dat new file mode 100644 index 0000000000..9e63d805e2 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-cjkuni.dat @@ -0,0 +1,66 @@ +# CJK-Unifonts new ttc edition (free) + +### SIMPLIFIED/TRADITIONAL CHINESE ### + +Name: UMingCN +Class: GB +Provides(70): STSong-Light +Provides(70): STSong-Regular +Provides(70): STFangsong-Light +Provides(70): STFangsong-Regular +TTCname: uming.ttc(0) + +Name: UMingTW +Class: CNS +Provides(70): MSung-Light +Provides(70): MSung-Medium +TTCname: uming.ttc(2) + +Name: UKaiCN +Class: GB +Provides(70): STKaiti-Regular +Provides(70): STHeiti-Regular +Provides(70): STHeiti-Light +TTCname: ukai.ttc(0) + +Name: UKaiTW +Class: CNS +Provides(70): MKai-Medium +Provides(70): MHei-Medium +TTCname: ukai.ttc(2) + +# CJK-Unifonts old ttf edition (free) + +### SIMPLIFIED/TRADITIONAL CHINESE ### + +# CNS +Name: ShanHeiSun-Uni +Class: CNS +Provides(90): MSung-Light +Provides(90): MSung-Medium +TTFname: uming.ttf + +# GB +Name: ShanHeiSun-Uni-Adobe-GB1 +Class: GB +Provides(90): STSong-Light +Provides(90): STSong-Regular +Provides(90): STFangsong-Light +Provides(90): STFangsong-Regular +TTFname: uming.ttf + +# CNS +Name: ZenKai-Uni +Class: CNS +Provides(90): MKai-Medium +Provides(90): MHei-Medium +TTFname: ukai.ttf + +# GB +Name: ZenKai-Uni-Adobe-GB1 +Class: GB +Provides(90): STKaiti-Regular +Provides(90): STHeiti-Regular +Provides(90): STHeiti-Light +TTFname: ukai.ttf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-dynacomware.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-dynacomware.dat new file mode 100644 index 0000000000..8fef04f139 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-dynacomware.dat @@ -0,0 +1,148 @@ +# DynaComware, Dynacomware Taiwan + +### SIMPLIFIED/TRADITIONAL CHINESE ### + +# Note about Mac (Mac OS X 10.6 -- macOS 10.13) +# 儷黑 Pro.ttf +# 儷宋 Pro.ttf +# are bundled with macOS 10.12.6 Sierra or earlier versions. +# LiHeiPro.ttf +# LiSongPro.ttf +# are bundled with macOS 10.13 High Sierra or later versions. +# WawaSC-Regular.otf +# WawaTC-Regular.otf +# Hannotate.ttc +# Hanzipen.ttc +# are bundled with OS X 10.9 Mavericks or later versions. +# PingFang.ttc +# index 0--17: PingFang* +# index 18--35: .PingFang* (hidden fonts) +# is bundled with OS X 10.11 El Capitan or later versions. + +Name: LiHeiPro +Class: CNS +#Provides(??): MHei-Medium # fails +TTFname(20): 儷黑 Pro.ttf +TTFname(10): LiHeiPro.ttf + +Name: LiSongPro +Class: CNS +#Provides(??): MSung-Medium # fails +#Provides(??): MSung-Light # fails +TTFname(20): 儷宋 Pro.ttf +TTFname(10): LiSongPro.ttf + +Name: WawaSC-Regular +PSName: DFWaWaSC-W5 +Class: GB +OTFname: WawaSC-Regular.otf + +Name: WawaTC-Regular +PSName: DFWaWaTC-W5 +Class: CNS +OTFname: WawaTC-Regular.otf + +Name: HannotateSC-W5 +Class: GB +OTCname: Hannotate.ttc(0) + +Name: HannotateTC-W5 +Class: CNS +OTCname: Hannotate.ttc(1) + +Name: HannotateSC-W7 +Class: GB +OTCname: Hannotate.ttc(2) + +Name: HannotateTC-W7 +Class: CNS +OTCname: Hannotate.ttc(3) + +Name: HanziPenSC-W3 +Class: GB +OTCname: Hanzipen.ttc(0) + +Name: HanziPenTC-W3 +Class: CNS +OTCname: Hanzipen.ttc(1) + +Name: HanziPenSC-W5 +Class: GB +OTCname: Hanzipen.ttc(2) + +Name: HanziPenTC-W5 +Class: CNS +OTCname: Hanzipen.ttc(3) + +Name: PingFangHK-Regular +Class: CNS # HK +OTCname: PingFang.ttc(0) + +Name: PingFangTC-Regular +Class: CNS +OTCname: PingFang.ttc(1) + +Name: PingFangSC-Regular +Class: GB +OTCname: PingFang.ttc(2) + +Name: PingFangHK-Medium +Class: CNS # HK +OTCname: PingFang.ttc(3) + +Name: PingFangTC-Medium +Class: CNS +OTCname: PingFang.ttc(4) + +Name: PingFangSC-Medium +Class: GB +OTCname: PingFang.ttc(5) + +Name: PingFangHK-Semibold +Class: CNS # HK +OTCname: PingFang.ttc(6) + +Name: PingFangTC-Semibold +Class: CNS +OTCname: PingFang.ttc(7) + +Name: PingFangSC-Semibold +Class: GB +OTCname: PingFang.ttc(8) + +Name: PingFangHK-Light +Class: CNS # HK +OTCname: PingFang.ttc(9) + +Name: PingFangTC-Light +Class: CNS +OTCname: PingFang.ttc(10) + +Name: PingFangSC-Light +Class: GB +OTCname: PingFang.ttc(11) + +Name: PingFangHK-Thin +Class: CNS # HK +OTCname: PingFang.ttc(12) + +Name: PingFangTC-Thin +Class: CNS +OTCname: PingFang.ttc(13) + +Name: PingFangSC-Thin +Class: GB +OTCname: PingFang.ttc(14) + +Name: PingFangHK-Ultralight +Class: CNS # HK +OTCname: PingFang.ttc(15) + +Name: PingFangTC-Ultralight +Class: CNS +OTCname: PingFang.ttc(16) + +Name: PingFangSC-Ultralight +Class: GB +OTCname: PingFang.ttc(17) + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-fandol.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-fandol.dat new file mode 100644 index 0000000000..c2e10bd2b9 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-fandol.dat @@ -0,0 +1,39 @@ +# Fandol (free) + +### SIMPLIFIED CHINESE ### + +# Note about TeX Live: +# Fandol*.otf (6 files) +# are available as "fandol" package for free. + +Name: FandolSong-Regular +Class: GB +Provides(40): STSong-Light +OTFname(10): FandolSong-Regular.otf + +Name: FandolSong-Bold +Provides(40): STSong-Regular +Class: GB +OTFname(10): FandolSong-Bold.otf + +Name: FandolKai-Regular +Class: GB +Provides(40): STKaiti-Regular +OTFname(10): FandolKai-Regular.otf + +Name: FandolHei-Regular +Class: GB +Provides(40): STHeiti-Regular +Provides(40): STHeiti-Light +OTFname(10): FandolHei-Regular.otf + +Name: FandolHei-Bold +Class: GB +OTFname(10): FandolHei-Bold.otf + +Name: FandolFang-Regular +Class: GB +Provides(40): STFangsong-Light +Provides(40): STFangsong-Regular +OTFname(10): FandolFang-Regular.otf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-fontworks.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-fontworks.dat new file mode 100644 index 0000000000..0a40e4f5ef --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-fontworks.dat @@ -0,0 +1,69 @@ +# Fontworks (including Fontworks MacOS version) + +### JAPANESE ### + +# Note about Mac (Mac OS X 10.6 -- macOS 10.13) +# Klee.ttc +# Tsukushi{A,B}MaruGothic.ttc +# are bundled with OS X 10.11 El Capitan or later versions. + +Name: FOT-KleePro-M +PSName: KleePro-M +Class: Japan +OTFname: FOT-KleePro-M.otf + +Name: FOT-KleePro-DB +PSName: KleePro-DB +Class: Japan +OTFname: FOT-KleePro-DB.otf + +Name: FOT-TsukuARdGothicStd-L +PSName: TsukuARdGothicStd-L +Class: Japan +OTFname: FOT-TsukuARdGothicStd-L.otf + +Name: FOT-TsukuARdGothicStd-R +PSName: TsukuARdGothicStd-R +Class: Japan +OTFname: FOT-TsukuARdGothicStd-R.otf + +Name: FOT-TsukuARdGothicStd-M +PSName: TsukuARdGothicStd-M +Class: Japan +OTFname: FOT-TsukuARdGothicStd-M.otf + +Name: FOT-TsukuARdGothicStd-D +PSName: TsukuARdGothicStd-D +Class: Japan +OTFname: FOT-TsukuARdGothicStd-D.otf + +Name: FOT-TsukuARdGothicStd-E +PSName: TsukuARdGothicStd-E +Class: Japan +OTFname: FOT-TsukuARdGothicStd-E.otf + +Name: FOT-TsukuBRdGothicStd-L +PSName: TsukuBRdGothicStd-L +Class: Japan +OTFname: FOT-TsukuBRdGothicStd-L.otf + +Name: FOT-TsukuBRdGothicStd-R +PSName: TsukuBRdGothicStd-R +Class: Japan +OTFname: FOT-TsukuBRdGothicStd-R.otf + +Name: FOT-TsukuBRdGothicStd-M +PSName: TsukuBRdGothicStd-M +Class: Japan +OTFname: FOT-TsukuBRdGothicStd-M.otf + +Name: FOT-TsukuBRdGothicStd-D +PSName: TsukuBRdGothicStd-D +Class: Japan +OTFname: FOT-TsukuBRdGothicStd-D.otf + +Name: FOT-TsukuBRdGothicStd-E +PSName: TsukuBRdGothicStd-E +Class: Japan +OTFname: FOT-TsukuBRdGothicStd-E.otf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-founder.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-founder.dat new file mode 100644 index 0000000000..8951754865 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-founder.dat @@ -0,0 +1,112 @@ +# Beijing Founder Electronics + +### SIMPLIFIED CHINESE ### + +# Note: +# FZ****.TTF (13 files) +# are bundled with with WPS Office (formerly Kingsoft Office) Linux. +# Lantinghei.ttc +# is bundled with OS X 10.9 Mavericks or later versions. + +# FZShuSong-Z01 +Name: FZSSK--GBK1-0 +Class: GB +Provides(55): STSong-Light +TTFname: FZSSK.TTF + +# FZXiaoBiaoSong-B05 +Name: FZXBSK--GBK1-0 +Class: GB +Provides(55): STSong-Regular +TTFname: FZXBSK.TTF + +# FZXiHeiI-Z08 +Name: FZXH1K--GBK1-0 +Class: GB +Provides(55): STHeiti-Light +TTFname: FZXH1K.TTF + +# FZHei-B01 +Name: FZHTK--GBK1-0 +Class: GB +Provides(55): STHeiti-Regular +TTFname: FZHTK.TTF + +# FZKai-Z03 +Name: FZKTK--GBK1-0 +Class: GB +Provides(55): STKaiti-Regular +TTFname: FZKTK.TTF + +# FZFangSong-Z02 +Name: FZFSK--GBK1-0 +Class: GB +Provides(55): STFangsong-Light +Provides(55): STFangsong-Regular +TTFname: FZFSK.TTF + +# FZXingKai-S04 +Name: FZXKK--GBK1-0 +Class: GB +TTFname: FZXKK.TTF + +# FZWeiBei-S03 +Name: FZWBK--GBK1-0 +Class: GB +TTFname: FZWBK.TTF + +# FZChaoCuHei-M10 +Name: FZCCHK--GBK1-0 +Class: GB +TTFname: FZCCHK.TTF + +# FZLiShu-S01 +Name: FZLSK--GBK1-0 +Class: GB +TTFname: FZLSK.TTF + +# FZYaoTi-M06 +Name: FZYTK--GBK1-0 +Class: GB +TTFname: FZYTK.TTF + +# FZSongS-Extended +Name: FZSONGS--GB1-5 +Class: GB +TTFname: FZSongS_20100603.TTF + +# FZSongS-Extended(SIP) +Name: FZSONGS_SIP--GB1-5 +Class: GB +TTFname: FZSongS(SIP)_2010603.TTF + +# Lantinghei SC Demibold +Name: FZLTZHK--GBK1-0 +Class: GB +TTCname: Lantinghei.ttc(0) + +# Lantinghei SC Extralight +Name: FZLTXHK--GBK1-0 +Class: GB +TTCname: Lantinghei.ttc(1) + +# Lantinghei SC Heavy +Name: FZLTTHK--GBK1-0 +Class: GB +TTCname: Lantinghei.ttc(2) + +# Lantinghei TC Demibold +Name: FZLTZHB--B51-0 +Class: CNS +TTCname: Lantinghei.ttc(3) + +# Lantinghei TC Extralight +Name: FZLTXHB--B51-0 +Class: CNS +TTCname: Lantinghei.ttc(4) + +# Lantinghei TC Heavy +Name: FZLTTHB--B51-0 +Class: CNS +TTCname: Lantinghei.ttc(5) + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-hancom.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-hancom.dat new file mode 100644 index 0000000000..9f1609cde8 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-hancom.dat @@ -0,0 +1,26 @@ +# Hancom HCR (free) + +# Note: +# HAN*.ttf (4 files) +# are available from Hancom Office website for free. + +### KOREAN ### + +# note that all fonts have narrow metrics + +Name: HCRBatang +Class: Korea +TTFname: HANBatang.ttf + +Name: HCRBatang-Bold +Class: Korea +TTFname: HANBatangB.ttf + +Name: HCRDotum +Class: Korea +TTFname: HANDotum.ttf + +Name: HCRDotum-Bold +Class: Korea +TTFname: HANDotumB.ttf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-heisei.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-heisei.dat new file mode 100644 index 0000000000..9c092f4c90 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-heisei.dat @@ -0,0 +1,54 @@ +# Heisei (Adobe) + +### JAPANESE ### + +Name: HeiseiMinStd-W3 +Class: Japan +OTFname(20): Heisei Mincho Std W3.otf # ? +OTFname(10): HeiseiMinStd-W3.otf + +Name: HeiseiMinStd-W5 +Class: Japan +OTFname(20): Heisei Mincho Std W5.otf # ? +OTFname(10): HeiseiMinStd-W5.otf + +Name: HeiseiMinStd-W7 +Class: Japan +OTFname(20): Heisei Mincho Std W7.otf # ? +OTFname(10): HeiseiMinStd-W7.otf + +Name: HeiseiMinStd-W9 +Class: Japan +OTFname(20): Heisei Mincho Std W9.otf # ? +OTFname(10): HeiseiMinStd-W9.otf + +Name: HeiseiKakuGoStd-W3 +Class: Japan +OTFname(20): Heisei Kaku Gothic Std W3.otf # ? +OTFname(10): HeiseiKakuGoStd-W3.otf + +Name: HeiseiKakuGoStd-W5 +Class: Japan +OTFname(20): Heisei Kaku Gothic Std W5.otf # ? +OTFname(10): HeiseiKakuGoStd-W5.otf + +Name: HeiseiKakuGoStd-W7 +Class: Japan +OTFname(20): Heisei Kaku Gothic Std W7.otf # ? +OTFname(10): HeiseiKakuGoStd-W7.otf + +Name: HeiseiKakuGoStd-W9 +Class: Japan +OTFname(20): Heisei Kaku Gothic Std W9.otf # ? +OTFname(10): HeiseiKakuGoStd-W9.otf + +Name: HeiseiMaruGoStd-W4 +Class: Japan +OTFname(20): Heisei Maru Gothic Std W4.otf # ? +OTFname(10): HeiseiMaruGoStd-W4.otf + +Name: HeiseiMaruGoStd-W8 +Class: Japan +OTFname(20): Heisei Maru Gothic Std W8.otf # ? +OTFname(10): HeiseiMaruGoStd-W8.otf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-hiragino.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-hiragino.dat new file mode 100644 index 0000000000..94b4a07e69 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-hiragino.dat @@ -0,0 +1,160 @@ +# Hiragino + +### JAPANESE ### + +# Note about Mac (Mac OS X 10.6 -- macOS 10.13) +# ヒラギノ角ゴ {Pro,ProN} {W3,W6}.otf +# ヒラギノ角ゴ {Std,StdN} W8.otf +# ヒラギノ丸ゴ {Pro,ProN} W4.otf +# ヒラギノ明朝 {Pro,ProN} {W3,W6}.otf +# are bundled with OS X 10.10.5 Yosemite or earlier versions. +# ヒラギノ角ゴシック {W0,...W9}.ttc +# ヒラギノ丸ゴ ProN W4.ttc +# are bundled with OS X 10.11 El Capitan or later versions. +# ヒラギノ明朝 ProN {W3,W6}.ttc +# are bundled with OS X 10.11 El Capitan -- macOS 10.12.6 Sierra. +# ヒラギノ明朝 ProN.ttc +# is bundled with macOS 10.13 High Sierra or later versions. + +Name: HiraMinProN-W3 +Class: Japan +Provides(30): Ryumin-Light +Provides(30): RyuminPro-Light +# the following two are *not* the same +# one is in decomposed form (for Mac), one is in composed form (for the rest) +OTFname(20): ヒラギノ明朝 ProN W3.otf +OTFname(19): ヒラギノ明朝 ProN W3.otf +OTFname(10): HiraMinProN-W3.otf + +Name: HiraMinProN-W6 +Class: Japan +Provides(30): FutoMinA101-Bold +Provides(30): FutoMinA101Pro-Bold +Provides(30): MidashiMin-MA31 +Provides(30): MidashiMinPro-MA31 +OTFname(20): ヒラギノ明朝 ProN W6.otf +OTFname(19): ヒラギノ明朝 ProN W6.otf +OTFname(10): HiraMinProN-W6.otf + +Name: HiraKakuProN-W3 +Class: Japan +Provides(30): GothicBBB-Medium +Provides(30): GothicBBBPro-Medium +OTFname(20): ヒラギノ角ゴ ProN W3.otf +OTFname(19): ヒラギノ角ゴ ProN W3.otf +OTFname(10): HiraKakuProN-W3.otf + +Name: HiraKakuProN-W6 +Class: Japan +Provides(30): FutoGoB101-Bold +Provides(30): FutoGoB101Pro-Bold +OTFname(20): ヒラギノ角ゴ ProN W6.otf +OTFname(19): ヒラギノ角ゴ ProN W6.otf +OTFname(10): HiraKakuProN-W6.otf + +Name: HiraKakuStdN-W8 +Class: Japan +Provides(30): MidashiGo-MB31 +Provides(30): MidashiGoPro-MB31 +OTFname(20): ヒラギノ角ゴ StdN W8.otf +OTFname(19): ヒラギノ角ゴ StdN W8.otf +OTFname(10): HiraKakuStdN-W8.otf + +Name: HiraMaruProN-W4 +Class: Japan +Provides(30): Jun101-Light +Provides(30): Jun101Pro-Light +OTFname(20): ヒラギノ丸ゴ ProN W4.otf +OTFname(19): ヒラギノ丸ゴ ProN W4.otf +OTFname(10): HiraMaruProN-W4.otf + +Name: HiraMinPro-W3 +Class: Japan +Provides(40): Ryumin-Light +Provides(40): RyuminPro-Light +OTFname(20): ヒラギノ明朝 Pro W3.otf +OTFname(19): ヒラギノ明朝 Pro W3.otf +OTFname(10): HiraMinPro-W3.otf + +Name: HiraMinPro-W6 +Class: Japan +Provides(40): FutoMinA101-Bold +Provides(40): FutoMinA101Pro-Bold +Provides(40): MidashiMin-MA31 +Provides(40): MidashiMinPro-MA31 +OTFname(20): ヒラギノ明朝 Pro W6.otf +OTFname(19): ヒラギノ明朝 Pro W6.otf +OTFname(10): HiraMinPro-W6.otf + +Name: HiraKakuPro-W3 +Class: Japan +Provides(40): GothicBBB-Medium +Provides(40): GothicBBBPro-Medium +OTFname(20): ヒラギノ角ゴ Pro W3.otf +OTFname(19): ヒラギノ角ゴ Pro W3.otf +OTFname(10): HiraKakuPro-W3.otf + +Name: HiraKakuPro-W6 +Class: Japan +Provides(40): FutoGoB101-Bold +Provides(40): FutoGoB101Pro-Bold +OTFname(20): ヒラギノ角ゴ Pro W6.otf +OTFname(19): ヒラギノ角ゴ Pro W6.otf +OTFname(10): HiraKakuPro-W6.otf + +Name: HiraKakuStd-W8 +Class: Japan +Provides(40): MidashiGo-MB31 +Provides(40): MidashiGoPro-MB31 +OTFname(20): ヒラギノ角ゴ Std W8.otf +OTFname(19): ヒラギノ角ゴ Std W8.otf +OTFname(10): HiraKakuStd-W8.otf + +Name: HiraMaruPro-W4 +Class: Japan +Provides(40): Jun101-Light +Provides(40): Jun101Pro-Light +OTFname(20): ヒラギノ丸ゴ Pro W4.otf +OTFname(19): ヒラギノ丸ゴ Pro W4.otf +OTFname(10): HiraMaruPro-W4.otf + +# Following Hiragino fonts are not bundled with OS X, +# but used in ptex-fontmaps + +Name: HiraMinProN-W2 +Class: Japan +OTFname(20): ヒラギノ明朝 ProN W2.otf +OTFname(19): ヒラギノ明朝 ProN W2.otf +OTFname(10): HiraMinProN-W2.otf + +Name: HiraMinPro-W2 +Class: Japan +OTFname(20): ヒラギノ明朝 Pro W2.otf +OTFname(19): ヒラギノ明朝 Pro W2.otf +OTFname(10): HiraMinPro-W2.otf + +### SIMPLIFIED/TRADITIONAL CHINESE ### + +# Note about Mac OS X: +# Hiragino Sans GB {W3,W6}.otf +# are bundled with OS X 10.10.5 Yosemite or earlier versions. +# Hiragino Sans GB {W3,W6}.ttc +# are bundled with OS X 10.11 El Capitan -- macOS 10.12.6 Sierra. +# Hiragino Sans CNS.ttc +# is bundled with macOS 10.12 Sierra -- macOS 10.12.6 Sierra. +# Hiragino Sans GB.ttc +# Hiragino_Sans_CNS.ttc +# are bundled with macOS 10.13 High Sierra or later versions. + +Name: HiraginoSansGB-W3 +Class: GB +Provides(50): STHeiti-Light +OTFname(20): Hiragino Sans GB W3.otf +OTFname(10): HiraginoSansGB-W3.otf + +Name: HiraginoSansGB-W6 +Class: GB +Provides(50): STHeiti-Regular +OTFname(20): Hiragino Sans GB W6.otf +OTFname(10): HiraginoSansGB-W6.otf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-ipa.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-ipa.dat new file mode 100644 index 0000000000..132fe33c7f --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-ipa.dat @@ -0,0 +1,103 @@ +# IPA (free) + +### JAPANESE ### + +# Note about TeX Live: +# ipam.ttf +# ipag.ttf +# ipaexm.ttf +# ipaexg.ttf +# ipapm.ttf +# ipapg.ttf +# are available as "ipaex" package for free. + +Name: IPAMincho +Class: Japan +Provides(130): Ryumin-Light +Provides(130): RyuminPro-Light +Provides(130): HiraMinProN-W3 +Provides(130): HiraMinPro-W3 +Provides(130): FutoMinA101-Bold +Provides(130): FutoMinA101Pro-Bold +Provides(130): HiraMinProN-W6 +Provides(130): HiraMinPro-W6 +Provides(130): MidashiMin-MA31 +Provides(130): MidashiMinPro-MA31 +TTFname(20): ipam.ttf +#TTFname(21): IPAMincho.ttf + +Name: IPAGothic +Class: Japan +Provides(130): GothicBBB-Medium +Provides(130): GothicBBBPro-Medium +Provides(130): HiraKakuProN-W3 +Provides(130): HiraKakuPro-W3 +Provides(130): FutoGoB101-Bold +Provides(130): FutoGoB101Pro-Bold +Provides(130): HiraKakuProN-W6 +Provides(130): HiraKakuPro-W6 +Provides(130): MidashiGo-MB31 +Provides(130): MidashiGoPro-MB31 +Provides(130): HiraKakuStdN-W8 +Provides(130): HiraKakuStd-W8 +Provides(130): Jun101-Light +Provides(130): Jun101Pro-Light +Provides(130): HiraMaruProN-W4 +Provides(130): HiraMaruPro-W4 +TTFname(20): ipag.ttf +#TTFname(21): IPAGothic.ttf + +Name: IPAexMincho +Class: Japan +Provides(120): Ryumin-Light +Provides(120): RyuminPro-Light +Provides(120): HiraMinProN-W3 +Provides(120): HiraMinPro-W3 +Provides(120): FutoMinA101-Bold +Provides(120): FutoMinA101Pro-Bold +Provides(120): HiraMinProN-W6 +Provides(120): HiraMinPro-W6 +Provides(120): MidashiMin-MA31 +Provides(120): MidashiMinPro-MA31 +TTFname(20): ipaexm.ttf +#TTFname(21): IPAexMincho.ttf + +Name: IPAexGothic +Class: Japan +Provides(120): GothicBBB-Medium +Provides(120): GothicBBBPro-Medium +Provides(120): HiraKakuProN-W3 +Provides(120): HiraKakuPro-W3 +Provides(120): FutoGoB101-Bold +Provides(120): FutoGoB101Pro-Bold +Provides(120): HiraKakuProN-W6 +Provides(120): HiraKakuPro-W6 +Provides(120): MidashiGo-MB31 +Provides(120): MidashiGoPro-MB31 +Provides(120): HiraKakuStdN-W8 +Provides(120): HiraKakuStd-W8 +Provides(120): Jun101-Light +Provides(120): Jun101Pro-Light +Provides(120): HiraMaruProN-W4 +Provides(120): HiraMaruPro-W4 +TTFname(20): ipaexg.ttf +#TTFname(21): IPAexGothic.ttf + +# IPA proportional (free) + +Name: IPAPMincho +Class: Japan +TTFname(20): ipamp.ttf +#TTFname(21): IPAPMincho.ttf + +Name: IPAPGothic +Class: Japan +TTFname(20): ipagp.ttf +#TTFname(21): IPAPGothic.ttf + +# IPA MJ (free) + +Name: IPAmjMincho +Class: Japan +TTFname: ipamjm.ttf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-kozuka.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-kozuka.dat new file mode 100644 index 0000000000..f9fb1a44dd --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-kozuka.dat @@ -0,0 +1,302 @@ +# Kozuka (Adobe) + +### JAPANESE ### + +# Some of the {Pr6N,ProVI,Pro} variants are used in ptex-fontmaps. + +Name: KozMinPr6N-ExtraLight +Class: Japan +OTFname: KozMinPr6N-ExtraLight.otf + +Name: KozMinPr6N-Light +Class: Japan +OTFname: KozMinPr6N-Light.otf + +Name: KozMinPr6N-Regular +Class: Japan +Provides(50): Ryumin-Light +Provides(50): RyuminPro-Light +Provides(50): HiraMinProN-W3 +Provides(50): HiraMinPro-W3 +OTFname: KozMinPr6N-Regular.otf + +Name: KozMinPr6N-Medium +Class: Japan +OTFname: KozMinPr6N-Medium.otf + +Name: KozMinPr6N-Bold +Class: Japan +Provides(50): FutoMinA101-Bold +Provides(50): FutoMinA101Pro-Bold +Provides(50): HiraMinProN-W6 +Provides(50): HiraMinPro-W6 +OTFname: KozMinPr6N-Bold.otf + +Name: KozMinPr6N-Heavy +Class: Japan +Provides(50): MidashiMin-MA31 +Provides(50): MidashiMinPro-MA31 +OTFname: KozMinPr6N-Heavy.otf + +Name: KozMinProVI-ExtraLight +Class: Japan +OTFname: KozMinProVI-ExtraLight.otf + +Name: KozMinProVI-Light +Class: Japan +OTFname: KozMinProVI-Light.otf + +Name: KozMinProVI-Regular +Class: Japan +Provides(55): Ryumin-Light +Provides(55): RyuminPro-Light +Provides(55): HiraMinProN-W3 +Provides(55): HiraMinPro-W3 +OTFname: KozMinProVI-Regular.otf + +Name: KozMinProVI-Medium +Class: Japan +OTFname: KozMinProVI-Medium.otf + +Name: KozMinProVI-Bold +Class: Japan +Provides(55): FutoMinA101-Bold +Provides(55): FutoMinA101Pro-Bold +Provides(55): HiraMinProN-W6 +Provides(55): HiraMinPro-W6 +OTFname: KozMinProVI-Bold.otf + +Name: KozMinProVI-Heavy +Class: Japan +Provides(55): MidashiMin-MA31 +Provides(55): MidashiMinPro-MA31 +OTFname: KozMinProVI-Heavy.otf + +Name: KozMinPro-ExtraLight +Class: Japan +OTFname: KozMinPro-ExtraLight.otf + +Name: KozMinPro-Light +Class: Japan +OTFname: KozMinPro-Light.otf + +Name: KozMinPro-Regular +Class: Japan +Provides(60): Ryumin-Light +Provides(60): RyuminPro-Light +Provides(60): HiraMinProN-W3 +Provides(60): HiraMinPro-W3 +OTFname: KozMinPro-Regular.otf + +Name: KozMinPro-Medium +Class: Japan +OTFname: KozMinPro-Medium.otf + +Name: KozMinPro-Bold +Class: Japan +Provides(60): FutoMinA101-Bold +Provides(60): FutoMinA101Pro-Bold +Provides(60): HiraMinProN-W6 +Provides(60): HiraMinPro-W6 +OTFname: KozMinPro-Bold.otf + +Name: KozMinPro-Heavy +Class: Japan +Provides(60): MidashiMin-MA31 +Provides(60): MidashiMinPro-MA31 +OTFname: KozMinPro-Heavy.otf + +Name: KozMinStd-ExtraLight +Class: Japan +OTFname: KozMinStd-ExtraLight.otf + +Name: KozMinStd-Light +Class: Japan +OTFname: KozMinStd-Light.otf + +Name: KozMinStd-Regular +Class: Japan +Provides(65): Ryumin-Light +Provides(65): RyuminPro-Light +Provides(65): HiraMinProN-W3 +Provides(65): HiraMinPro-W3 +OTFname: KozMinStd-Regular.otf + +Name: KozMinStd-Medium +Class: Japan +OTFname: KozMinStd-Medium.otf + +Name: KozMinStd-Bold +Class: Japan +Provides(65): FutoMinA101-Bold +Provides(65): FutoMinA101Pro-Bold +Provides(65): HiraMinProN-W6 +Provides(65): HiraMinPro-W6 +OTFname: KozMinStd-Bold.otf + +Name: KozMinStd-Heavy +Class: Japan +Provides(65): MidashiMin-MA31 +Provides(65): MidashiMinPro-MA31 +OTFname: KozMinStd-Heavy.otf + +Name: KozGoPr6N-ExtraLight +Class: Japan +OTFname: KozGoPr6N-ExtraLight.otf + +Name: KozGoPr6N-Light +Class: Japan +OTFname: KozGoPr6N-Light.otf + +Name: KozGoPr6N-Regular +Class: Japan +OTFname: KozGoPr6N-Regular.otf + +Name: KozGoPr6N-Medium +Class: Japan +Provides(50): GothicBBB-Medium +Provides(50): GothicBBBPro-Medium +Provides(50): HiraKakuProN-W3 +Provides(50): HiraKakuPro-W3 +OTFname: KozGoPr6N-Medium.otf + +Name: KozGoPr6N-Bold +Class: Japan +Provides(50): FutoGoB101-Bold +Provides(50): FutoGoB101Pro-Bold +Provides(50): HiraKakuProN-W6 +Provides(50): HiraKakuPro-W6 +OTFname: KozGoPr6N-Bold.otf + +Name: KozGoPr6N-Heavy +Class: Japan +Provides(50): MidashiGo-MB31 +Provides(50): MidashiGoPro-MB31 +Provides(50): HiraKakuStdN-W8 +Provides(50): HiraKakuStd-W8 +Provides(50): Jun101-Light +Provides(50): Jun101Pro-Light +Provides(50): HiraMaruProN-W4 +Provides(50): HiraMaruPro-W4 +OTFname: KozGoPr6N-Heavy.otf + +Name: KozGoProVI-ExtraLight +Class: Japan +OTFname: KozGoProVI-ExtraLight.otf + +Name: KozGoProVI-Light +Class: Japan +OTFname: KozGoProVI-Light.otf + +Name: KozGoProVI-Regular +Class: Japan +OTFname: KozGoProVI-Regular.otf + +Name: KozGoProVI-Medium +Class: Japan +Provides(55): GothicBBB-Medium +Provides(55): GothicBBBPro-Medium +Provides(55): HiraKakuProN-W3 +Provides(55): HiraKakuPro-W3 +OTFname: KozGoProVI-Medium.otf + +Name: KozGoProVI-Bold +Class: Japan +Provides(55): FutoGoB101-Bold +Provides(55): FutoGoB101Pro-Bold +Provides(55): HiraKakuProN-W6 +Provides(55): HiraKakuPro-W6 +OTFname: KozGoProVI-Bold.otf + +Name: KozGoProVI-Heavy +Class: Japan +Provides(55): MidashiGo-MB31 +Provides(55): MidashiGoPro-MB31 +Provides(55): HiraKakuStdN-W8 +Provides(55): HiraKakuStd-W8 +Provides(55): Jun101-Light +Provides(55): Jun101Pro-Light +Provides(55): HiraMaruProN-W4 +Provides(55): HiraMaruPro-W4 +OTFname: KozGoProVI-Heavy.otf + +Name: KozGoPro-ExtraLight +Class: Japan +OTFname: KozGoPro-ExtraLight.otf + +Name: KozGoPro-Light +Class: Japan +OTFname: KozGoPro-Light.otf + +Name: KozGoPro-Regular +Class: Japan +OTFname: KozGoPro-Regular.otf + +Name: KozGoPro-Medium +Class: Japan +Provides(60): GothicBBB-Medium +Provides(60): GothicBBBPro-Medium +Provides(60): HiraKakuProN-W3 +Provides(60): HiraKakuPro-W3 +OTFname: KozGoPro-Medium.otf + +Name: KozGoPro-Bold +Class: Japan +Provides(60): FutoGoB101-Bold +Provides(60): FutoGoB101Pro-Bold +Provides(60): HiraKakuProN-W6 +Provides(60): HiraKakuPro-W6 +OTFname: KozGoPro-Bold.otf + +Name: KozGoPro-Heavy +Class: Japan +Provides(60): MidashiGo-MB31 +Provides(60): MidashiGoPro-MB31 +Provides(60): HiraKakuStdN-W8 +Provides(60): HiraKakuStd-W8 +Provides(60): Jun101-Light +Provides(60): Jun101Pro-Light +Provides(60): HiraMaruProN-W4 +Provides(60): HiraMaruPro-W4 +OTFname: KozGoPro-Heavy.otf + +Name: KozGoStd-ExtraLight +Class: Japan +OTFname: KozGoStd-ExtraLight.otf + +Name: KozGoStd-Light +Class: Japan +OTFname: KozGoStd-Light.otf + +Name: KozGoStd-Regular +Class: Japan +OTFname: KozGoStd-Regular.otf + +Name: KozGoStd-Medium +Class: Japan +Provides(65): GothicBBB-Medium +Provides(65): GothicBBBPro-Medium +Provides(65): HiraKakuProN-W3 +Provides(65): HiraKakuPro-W3 +OTFname: KozGoStd-Medium.otf + +Name: KozGoStd-Bold +Class: Japan +Provides(65): FutoGoB101-Bold +Provides(65): FutoGoB101Pro-Bold +Provides(65): HiraKakuProN-W6 +Provides(65): HiraKakuPro-W6 +OTFname: KozGoStd-Bold.otf + +Name: KozGoStd-Heavy +Class: Japan +Provides(65): MidashiGo-MB31 +Provides(65): MidashiGoPro-MB31 +Provides(65): HiraKakuStdN-W8 +Provides(65): HiraKakuStd-W8 +Provides(65): Jun101-Light +Provides(65): Jun101Pro-Light +Provides(65): HiraMaruProN-W4 +Provides(65): HiraMaruPro-W4 +OTFname: KozGoStd-Heavy.otf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-macos-removeonly.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-macos-removeonly.dat new file mode 100644 index 0000000000..ce9ff48eb2 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-macos-removeonly.dat @@ -0,0 +1,582 @@ +# Remove-only database for Mac OS + +### JAPANESE ### + +# Hiragino + +Name: HiraMinProN-W3 +Class: Japan +Provides(30): Ryumin-Light +Provides(30): RyuminPro-Light +OTFname(20): ヒラギノ明朝 ProN W3.otf +OTFname(19): ヒラギノ明朝 ProN W3.otf +OTFname(10): HiraMinProN-W3.otf +RMVname(30): ヒラギノ明朝 ProN W3.ttc(0) +RMVname(29): ヒラギノ明朝 ProN W3.ttc(0) +RMVname(28): HiraginoSerif-W3.ttc(0) +RMVname(40): ヒラギノ明朝 ProN.ttc(0) +RMVname(39): ヒラギノ明朝 ProN.ttc(0) +RMVname(38): HiraginoSerif.ttc(0) + +Name: HiraMinProN-W6 +Class: Japan +Provides(30): FutoMinA101-Bold +Provides(30): FutoMinA101Pro-Bold +Provides(30): MidashiMin-MA31 +Provides(30): MidashiMinPro-MA31 +OTFname(20): ヒラギノ明朝 ProN W6.otf +OTFname(19): ヒラギノ明朝 ProN W6.otf +OTFname(10): HiraMinProN-W6.otf +RMVname(30): ヒラギノ明朝 ProN W6.ttc(0) +RMVname(29): ヒラギノ明朝 ProN W6.ttc(0) +RMVname(28): HiraginoSerif-W6.ttc(0) +RMVname(40): ヒラギノ明朝 ProN.ttc(2) +RMVname(39): ヒラギノ明朝 ProN.ttc(2) +RMVname(38): HiraginoSerif.ttc(2) + +Name: HiraKakuProN-W3 +Class: Japan +Provides(30): GothicBBB-Medium +Provides(30): GothicBBBPro-Medium +OTFname(20): ヒラギノ角ゴ ProN W3.otf +OTFname(19): ヒラギノ角ゴ ProN W3.otf +OTFname(10): HiraKakuProN-W3.otf +RMVname(30): ヒラギノ角ゴシック W3.ttc(2) +RMVname(29): ヒラギノ角ゴシック W3.ttc(2) +RMVname(28): HiraginoSans-W3.ttc(2) + +Name: HiraKakuProN-W6 +Class: Japan +Provides(30): FutoGoB101-Bold +Provides(30): FutoGoB101Pro-Bold +OTFname(20): ヒラギノ角ゴ ProN W6.otf +OTFname(19): ヒラギノ角ゴ ProN W6.otf +OTFname(10): HiraKakuProN-W6.otf +RMVname(30): ヒラギノ角ゴシック W6.ttc(2) +RMVname(29): ヒラギノ角ゴシック W6.ttc(2) +RMVname(28): HiraginoSans-W6.ttc(2) + +Name: HiraKakuStdN-W8 +Class: Japan +Provides(30): MidashiGo-MB31 +Provides(30): MidashiGoPro-MB31 +OTFname(20): ヒラギノ角ゴ StdN W8.otf +OTFname(19): ヒラギノ角ゴ StdN W8.otf +OTFname(10): HiraKakuStdN-W8.otf +RMVname(30): ヒラギノ角ゴシック W8.ttc(3) +RMVname(29): ヒラギノ角ゴシック W8.ttc(3) +RMVname(28): HiraginoSans-W8.ttc(3) + +Name: HiraMaruProN-W4 +Class: Japan +Provides(30): Jun101-Light +Provides(30): Jun101Pro-Light +OTFname(20): ヒラギノ丸ゴ ProN W4.otf +OTFname(19): ヒラギノ丸ゴ ProN W4.otf +OTFname(10): HiraMaruProN-W4.otf +RMVname(30): ヒラギノ丸ゴ ProN W4.ttc(1) +RMVname(29): ヒラギノ丸ゴ ProN W4.ttc(1) +RMVname(28): HiraginoSansR-W4.ttc(1) + +Name: HiraMinPro-W3 +Class: Japan +Provides(40): Ryumin-Light +Provides(40): RyuminPro-Light +OTFname(20): ヒラギノ明朝 Pro W3.otf +OTFname(19): ヒラギノ明朝 Pro W3.otf +OTFname(10): HiraMinPro-W3.otf +RMVname(30): ヒラギノ明朝 ProN W3.ttc(1) +RMVname(29): ヒラギノ明朝 ProN W3.ttc(1) +RMVname(28): HiraginoSerif-W3.ttc(1) +RMVname(40): ヒラギノ明朝 ProN.ttc(1) +RMVname(39): ヒラギノ明朝 ProN.ttc(1) +RMVname(38): HiraginoSerif.ttc(1) + +Name: HiraMinPro-W6 +Class: Japan +Provides(40): FutoMinA101-Bold +Provides(40): FutoMinA101Pro-Bold +Provides(40): MidashiMin-MA31 +Provides(40): MidashiMinPro-MA31 +OTFname(20): ヒラギノ明朝 Pro W6.otf +OTFname(19): ヒラギノ明朝 Pro W6.otf +OTFname(10): HiraMinPro-W6.otf +RMVname(30): ヒラギノ明朝 ProN W6.ttc(1) +RMVname(29): ヒラギノ明朝 ProN W6.ttc(1) +RMVname(28): HiraginoSerif-W6.ttc(1) +RMVname(40): ヒラギノ明朝 ProN.ttc(3) +RMVname(39): ヒラギノ明朝 ProN.ttc(3) +RMVname(38): HiraginoSerif.ttc(3) + +Name: HiraKakuPro-W3 +Class: Japan +Provides(40): GothicBBB-Medium +Provides(40): GothicBBBPro-Medium +OTFname(20): ヒラギノ角ゴ Pro W3.otf +OTFname(19): ヒラギノ角ゴ Pro W3.otf +OTFname(10): HiraKakuPro-W3.otf +RMVname(30): ヒラギノ角ゴシック W3.ttc(3) +RMVname(29): ヒラギノ角ゴシック W3.ttc(3) +RMVname(28): HiraginoSans-W3.ttc(3) + +Name: HiraKakuPro-W6 +Class: Japan +Provides(40): FutoGoB101-Bold +Provides(40): FutoGoB101Pro-Bold +OTFname(20): ヒラギノ角ゴ Pro W6.otf +OTFname(19): ヒラギノ角ゴ Pro W6.otf +OTFname(10): HiraKakuPro-W6.otf +RMVname(30): ヒラギノ角ゴシック W6.ttc(3) +RMVname(29): ヒラギノ角ゴシック W6.ttc(3) +RMVname(28): HiraginoSans-W6.ttc(3) + +Name: HiraKakuStd-W8 +Class: Japan +Provides(40): MidashiGo-MB31 +Provides(40): MidashiGoPro-MB31 +OTFname(20): ヒラギノ角ゴ Std W8.otf +OTFname(19): ヒラギノ角ゴ Std W8.otf +OTFname(10): HiraKakuStd-W8.otf +RMVname(30): ヒラギノ角ゴシック W8.ttc(2) +RMVname(29): ヒラギノ角ゴシック W8.ttc(2) +RMVname(28): HiraginoSans-W8.ttc(2) + +Name: HiraMaruPro-W4 +Class: Japan +Provides(40): Jun101-Light +Provides(40): Jun101Pro-Light +OTFname(20): ヒラギノ丸ゴ Pro W4.otf +OTFname(19): ヒラギノ丸ゴ Pro W4.otf +OTFname(10): HiraMaruPro-W4.otf +RMVname(30): ヒラギノ丸ゴ ProN W4.ttc(0) +RMVname(29): ヒラギノ丸ゴ ProN W4.ttc(0) +RMVname(28): HiraginoSansR-W4.ttc(0) + +Name: HiraginoSans-W0 +Class: Japan +RMVname(30): ヒラギノ角ゴシック W0.ttc(0) +RMVname(29): ヒラギノ角ゴシック W0.ttc(0) +RMVname(28): HiraginoSans-W0.ttc(0) + +Name: HiraginoSans-W1 +Class: Japan +RMVname(30): ヒラギノ角ゴシック W1.ttc(0) +RMVname(29): ヒラギノ角ゴシック W1.ttc(0) +RMVname(28): HiraginoSans-W1.ttc(0) + +Name: HiraginoSans-W2 +Class: Japan +RMVname(30): ヒラギノ角ゴシック W2.ttc(0) +RMVname(29): ヒラギノ角ゴシック W2.ttc(0) +RMVname(28): HiraginoSans-W2.ttc(0) + +Name: HiraginoSans-W3 +Class: Japan +RMVname(30): ヒラギノ角ゴシック W3.ttc(0) +RMVname(29): ヒラギノ角ゴシック W3.ttc(0) +RMVname(28): HiraginoSans-W3.ttc(0) + +Name: HiraginoSans-W4 +Class: Japan +RMVname(30): ヒラギノ角ゴシック W4.ttc(0) +RMVname(29): ヒラギノ角ゴシック W4.ttc(0) +RMVname(28): HiraginoSans-W4.ttc(0) + +Name: HiraginoSans-W5 +Class: Japan +RMVname(30): ヒラギノ角ゴシック W5.ttc(0) +RMVname(29): ヒラギノ角ゴシック W5.ttc(0) +RMVname(28): HiraginoSans-W5.ttc(0) + +Name: HiraginoSans-W6 +Class: Japan +RMVname(30): ヒラギノ角ゴシック W6.ttc(0) +RMVname(29): ヒラギノ角ゴシック W6.ttc(0) +RMVname(28): HiraginoSans-W6.ttc(0) + +Name: HiraginoSans-W7 +Class: Japan +RMVname(30): ヒラギノ角ゴシック W7.ttc(0) +RMVname(29): ヒラギノ角ゴシック W7.ttc(0) +RMVname(28): HiraginoSans-W7.ttc(0) + +Name: HiraginoSans-W8 +Class: Japan +RMVname(30): ヒラギノ角ゴシック W8.ttc(0) +RMVname(29): ヒラギノ角ゴシック W8.ttc(0) +RMVname(28): HiraginoSans-W8.ttc(0) + +Name: HiraginoSans-W9 +Class: Japan +RMVname(30): ヒラギノ角ゴシック W9.ttc(0) +RMVname(29): ヒラギノ角ゴシック W9.ttc(0) +RMVname(28): HiraginoSans-W9.ttc(0) + +# Yu-fonts MacOS version + +Name: YuMin-Medium +Class: Japan +Provides(80): Ryumin-Light +Provides(80): RyuminPro-Light +Provides(80): HiraMinProN-W3 +Provides(80): HiraMinPro-W3 +OTFname(20): Yu Mincho Medium.otf +OTFname(10): YuMin-Medium.otf +RMVname(30): YuMincho.ttc(0) + +Name: YuMin-Demibold +Class: Japan +Provides(80): FutoMinA101-Bold +Provides(80): FutoMinA101Pro-Bold +Provides(80): HiraMinProN-W6 +Provides(80): HiraMinPro-W6 +Provides(80): MidashiMin-MA31 +Provides(80): MidashiMinPro-MA31 +OTFname(20): Yu Mincho Demibold.otf +OTFname(10): YuMin-Demibold.otf +RMVname(30): YuMincho.ttc(1) + +Name: YuMin-Extrabold +Class: Japan +RMVname(30): YuMincho.ttc(2) + +Name: YuMin_36pKn-Medium +Class: Japan +RMVname(30): YuMincho.ttc(3) + +Name: YuMin_36pKn-Demibold +Class: Japan +RMVname(30): YuMincho.ttc(4) + +Name: YuMin_36pKn-Extrabold +Class: Japan +RMVname(30): YuMincho.ttc(5) + +Name: YuKyo_Yoko-Medium +Class: Japan +RMVname: Kyokasho.ttc(0) + +Name: YuKyo_Yoko-Bold +Class: Japan +RMVname: Kyokasho.ttc(1) + +Name: YuKyo-Medium +Class: Japan +RMVname: Kyokasho.ttc(2) + +Name: YuKyo-Bold +Class: Japan +RMVname: Kyokasho.ttc(3) + +# Fontworks MacOS version + +Name: Klee-Medium +Class: Japan +RMVname: Klee.ttc(1) + +Name: Klee-Demibold +Class: Japan +RMVname: Klee.ttc(0) + +Name: TsukuARdGothic-Regular +Class: Japan +RMVname: TsukushiAMaruGothic.ttc(0) + +Name: TsukuARdGothic-Bold +Class: Japan +RMVname: TsukushiAMaruGothic.ttc(1) + +Name: TsukuBRdGothic-Regular +Class: Japan +RMVname: TsukushiBMaruGothic.ttc(0) + +Name: TsukuBRdGothic-Bold +Class: Japan +RMVname: TsukushiBMaruGothic.ttc(1) + +# Toppan MacOS version + +Name: ToppanBunkyuMincho-Regular +PSName: ToppanBunkyuMinchoPr6N-Regular +Class: Japan +RMVname(20): ToppanBunkyuMincho-Regular.otf + +#Name: ToppanBunkyuMinchoPr6N-Regular +#Class: Japan +#RMVname(10): ToppanBunkyuMinchoPr6N-Regular.otf + +Name: ToppanBunkyuGothicPr6N-DB +Class: Japan +RMVname(20): ToppanBunkyuGothic.ttc(0) +RMVname(10): ToppanBunkyuGothicPr6N.ttc(0) + +Name: ToppanBunkyuGothicPr6N-Regular +Class: Japan +RMVname(20): ToppanBunkyuGothic.ttc(1) +RMVname(10): ToppanBunkyuGothicPr6N.ttc(1) + +Name: ToppanBunkyuMidashiMincho-ExtraBold +PSName: ToppanBunkyuMidashiMinchoStdN-ExtraBold +Class: Japan +RMVname(20): ToppanBunkyuMidashiMincho-ExtraBold.otf + +#Name: ToppanBunkyuMidashiMinchoStdN-ExtraBold +#Class: Japan +#RMVname(10): ToppanBunkyuMidashiMinchoStdN-ExtraBold.otf + +Name: ToppanBunkyuMidashiGothic-ExtraBold +PSName: ToppanBunkyuMidashiGothicStdN-ExtraBold +Class: Japan +RMVname(20): ToppanBunkyuMidashiGothic-ExtraBold.otf + +#Name: ToppanBunkyuMidashiGothicStdN-ExtraBold +#Class: Japan +#RMVname(10): ToppanBunkyuMidashiGothicStdN-ExtraBold.otf + +### SIMPLIFIED/TRADITIONAL CHINESE ### + +# Hiragino chinese + +Name: HiraginoSansGB-W3 +Class: GB +Provides(50): STHeiti-Light +OTFname(20): Hiragino Sans GB W3.otf +OTFname(10): HiraginoSansGB-W3.otf +RMVname(30): Hiragino Sans GB W3.ttc(0) +RMVname(28): HiraginoSansGB-W3.ttc(0) +RMVname(40): Hiragino Sans GB.ttc(0) +RMVname(38): HiraginoSansGB.ttc(0) + +Name: HiraginoSansGB-W6 +Class: GB +Provides(50): STHeiti-Regular +OTFname(20): Hiragino Sans GB W6.otf +OTFname(10): HiraginoSansGB-W6.otf +RMVname(30): Hiragino Sans GB W6.ttc(0) +RMVname(28): HiraginoSansGB-W6.ttc(0) +RMVname(40): Hiragino Sans GB.ttc(2) +RMVname(38): HiraginoSansGB.ttc(2) + +Name: HiraginoSansCNS-W3 +Class: CNS +RMVname(30): Hiragino Sans CNS.ttc(0) +RMVname(29): Hiragino_Sans_CNS.ttc(0) +RMVname(28): HiraginoSansCNS.ttc(0) + +Name: HiraginoSansCNS-W6 +Class: CNS +RMVname(30): Hiragino Sans CNS.ttc(1) +RMVname(29): Hiragino_Sans_CNS.ttc(1) +RMVname(28): HiraginoSansCNS.ttc(1) + +# Changzhou SinoType + +Name: STSong +Class: GB +#Provides(??): STSong-Light # fails +#Provides(??): STSong-Regular # fails +TTFname(10): STSong.ttf +TTFname(11): STSONG.TTF +TTFname(20): 华文宋体.ttf +RMVname(30): Songti.ttc(4) +RMVname(39): Songti-mountainlion.ttc(3) +RMVname(40): 宋体.ttc(3) + +Name: STKaiti +Class: GB +#Provides(??): STKaiti-Regular # fails +TTFname(10): STKaiti.ttf +TTFname(11): STKAITI.TTF +TTFname(20): 华文楷体.ttf +RMVname(30): Kaiti.ttc(1) +RMVname(39): Kaiti-mountainlion.ttc(3) +RMVname(40): 楷体.ttc(3) + +Name: STKaiti-Adobe-CNS1 +Class: CNS +#Provides(??): MKai-Medium # fails +TTFname(10): STKaiti.ttf +TTFname(11): STKAITI.TTF +TTFname(20): 华文楷体.ttf +RMVname(30): Kaiti.ttc(1) +RMVname(39): Kaiti-mountainlion.ttc(3) +RMVname(40): 楷体.ttc(3) + +Name: STSongti-SC-Black +Class: GB +RMVname(30): Songti.ttc(0) +RMVname(39): Songti-mountainlion.ttc(0) +RMVname(40): 宋体.ttc(0) + +Name: STSongti-SC-Bold +Class: GB +RMVname(30): Songti.ttc(1) +RMVname(39): Songti-mountainlion.ttc(1) +RMVname(40): 宋体.ttc(1) + +Name: STSongti-TC-Bold +Class: CNS +RMVname(30): Songti.ttc(2) + +Name: STSongti-SC-Light +Class: GB +RMVname(30): Songti.ttc(3) +RMVname(39): Songti-mountainlion.ttc(2) +RMVname(40): 宋体.ttc(2) + +Name: STSongti-TC-Light +Class: CNS +RMVname(30): Songti.ttc(5) + +Name: STSongti-SC-Regular +Class: GB +RMVname(30): Songti.ttc(6) +RMVname(39): Songti-mountainlion.ttc(4) +RMVname(40): 宋体.ttc(4) + +Name: STSongti-TC-Regular +Class: CNS +RMVname(30): Songti.ttc(7) + +Name: STKaitiSC-Regular +Class: GB +RMVname(30): Kaiti.ttc(0) + +Name: STKaitiTC-Regular +Class: CNS +RMVname(30): Kaiti.ttc(2) + +Name: STKaitiSC-Bold +Class: GB +RMVname(30): Kaiti.ttc(3) + +Name: STKaitiTC-Bold +Class: CNS +RMVname(30): Kaiti.ttc(4) + +Name: STKaitiSC-Black +Class: GB +RMVname(30): Kaiti.ttc(5) + +Name: STKaitiTC-Black +Class: CNS +RMVname(30): Kaiti.ttc(6) + +Name: STKaiti-SC-Black +Class: GB +RMVname(30): Kaiti.ttc(0) +RMVname(39): Kaiti-mountainlion.ttc(0) +RMVname(40): 楷体.ttc(0) + +Name: STKaiti-SC-Bold +Class: GB +RMVname(30): Kaiti.ttc(1) +RMVname(39): Kaiti-mountainlion.ttc(1) +RMVname(40): 楷体.ttc(1) + +Name: STKaiTi-TC-Bold +Class: CNS +RMVname(30): Kaiti.ttc(2) + +Name: STKaiti-SC-Regular +Class: GB +RMVname(30): Kaiti.ttc(3) +RMVname(39): Kaiti-mountainlion.ttc(2) +RMVname(40): 楷体.ttc(2) + +Name: STKaiTi-TC-Regular +Class: CNS +RMVname(30): Kaiti.ttc(5) + +Name: STBaoliSC-Regular +Class: GB +RMVname(30): Baoli.ttc(0) + +Name: STBaoliTC-Regular +Class: CNS +RMVname(30): Baoli.ttc(1) + +Name: STBaoli-SC-Regular +Class: GB +RMVname(30): Baoli.ttc(0) + +Name: STLibianSC-Regular +Class: GB +RMVname(30): Libian.ttc(0) + +Name: STLibianTC-Regular +Class: CNS +RMVname(30): Libian.ttc(1) + +Name: STLibian-SC-Regular +Class: GB +RMVname(30): Libian.ttc(0) + +Name: STXingkaiSC-Bold +Class: GB +RMVname(30): Xingkai.ttc(0) + +Name: STXingkaiTC-Bold +Class: CNS +RMVname(30): Xingkai.ttc(1) + +Name: STXingkaiSC-Light +Class: GB +RMVname(30): Xingkai.ttc(2) + +Name: STXingkaiTC-Light +Class: CNS +RMVname(30): Xingkai.ttc(3) + +Name: STXingkai-SC-Bold +Class: GB +RMVname(30): Xingkai.ttc(0) + +Name: STXingkai-SC-Light +Class: GB +RMVname(30): Xingkai.ttc(1) + +Name: STYuanti-SC-Bold +Class: GB +RMVname(30): Yuanti.ttc(0) + +Name: STYuanti-TC-Bold +Class: CNS +RMVname(30): Yuanti.ttc(1) + +Name: STYuanti-SC-Light +Class: GB +RMVname(30): Yuanti.ttc(2) + +Name: STYuanti-TC-Light +Class: CNS +RMVname(30): Yuanti.ttc(3) + +Name: STYuanti-SC-Regular +Class: GB +RMVname(30): Yuanti.ttc(4) + +Name: STYuanti-TC-Regular +Class: CNS +RMVname(30): Yuanti.ttc(5) + +# Arphic Technology + +Name: WeibeiSC-Bold +PSName: Weibei-SC-Bold +Class: GB +OTFname: WeibeiSC-Bold.otf + +#Name: WeibeiSC-Bold +#Class: GB +#OTFname: WeibeiSC-Bold.otf + +Name: WeibeiTC-Bold +PSName: Weibei-TC-Bold +Class: CNS +OTFname: WeibeiTC-Bold.otf + +#Name: WeibeiTC-Bold +#Class: CNS +#OTFname: WeibeiTC-Bold.otf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-microsoft.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-microsoft.dat new file mode 100644 index 0000000000..19e70596ec --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-microsoft.dat @@ -0,0 +1,256 @@ +# Microsoft Windows, Windows/Mac Office fonts + +### JAPANESE ### + +# Note about Windows: +# MSMINCHO.TTC +# MSGOTHIC.TTC +# are bundled with Windows XP. +# msmincho.ttc +# msgothic.ttc +# are bundled with Windows Vista or later versions. +# meiryo.ttc +# meiryob.ttc +# are bundled with Windows Vista or later versions, +# and "Japanese ClearType fonts for Windows XP". + +# Note about MSOffice: +# MS Mincho.ttf +# MS Gothic.ttf +# Meiryo.ttf +# Meiryo Bold.ttf +# Meiryo Bold Italic.ttf +# Meiryo Italic.ttf +# are bundled with Office for Mac 2011. +# msmincho.ttc +# msgothic.ttc +# Meiryo.ttf +# MeiryoBold.ttf +# MeiryoBoldItalic.ttf +# MeiryoItalic.ttf +# are bundled with Office for Mac 2016. + +# [TODO] Check about HG* fonts, and move Chinese/Korean fonts + +Name: MS-Mincho +Class: Japan +Provides(95): Ryumin-Light +Provides(95): RyuminPro-Light +Provides(95): HiraMinProN-W3 +Provides(95): HiraMinPro-W3 +Provides(95): FutoMinA101-Bold +Provides(95): FutoMinA101Pro-Bold +Provides(95): HiraMinProN-W6 +Provides(95): HiraMinPro-W6 +Provides(95): MidashiMin-MA31 +Provides(95): MidashiMinPro-MA31 +TTFname(50): MS Mincho.ttf +TTFname(30): MS-Mincho.ttf +TTCname(20): msmincho.ttc(0) + +Name: MS-Gothic +Class: Japan +Provides(95): GothicBBB-Medium +Provides(95): GothicBBBPro-Medium +Provides(95): HiraKakuProN-W3 +Provides(95): HiraKakuPro-W3 +Provides(95): FutoGoB101-Bold +Provides(95): FutoGoB101Pro-Bold +Provides(95): HiraKakuProN-W6 +Provides(95): HiraKakuPro-W6 +Provides(95): MidashiGo-MB31 +Provides(95): MidashiGoPro-MB31 +Provides(95): HiraKakuStdN-W8 +Provides(95): HiraKakuStd-W8 +Provides(95): Jun101-Light +Provides(95): Jun101Pro-Light +Provides(95): HiraMaruProN-W4 +Provides(95): HiraMaruPro-W4 +TTFname(50): MS Gothic.ttf +TTFname(30): MS-Gothic.ttf +TTCname(20): msgothic.ttc(0) + +Name: MS-PMincho +Class: Japan +TTFname(50): MS PMincho.ttf +TTFname(30): MS-PMincho.ttf +TTCname(20): msmincho.ttc(1) + +Name: MS-PGothic +Class: Japan +TTFname(50): MS PGothic.ttf +TTFname(30): MS-PGothic.ttf +TTCname(20): msgothic.ttc(1) + +Name: MS-UIGothic +Class: Japan +TTCname(20): msgothic.ttc(2) + +Name: Meiryo +Class: Japan +TTFname(50): Meiryo.ttf +TTCname(20): meiryo.ttc(0) + +Name: Meiryo-Bold +Class: Japan +TTFname(50): Meiryo Bold.ttf +TTFname(40): MeiryoBold.ttf +TTFname(30): Meiryo-Bold.ttf +TTCname(20): meiryob.ttc(0) + +Name: Meiryo-BoldItalic +Class: Japan +TTFname(50): Meiryo Bold Italic.ttf +TTFname(40): MeiryoBoldItalic.ttf +TTFname(30): Meiryo-BoldItalic.ttf +TTCname(20): meiryob.ttc(1) + +Name: Meiryo-Italic +Class: Japan +TTFname(50): Meiryo Italic.ttf +TTFname(40): MeiryoItalic.ttf +TTFname(30): Meiryo-Italic.ttf +TTCname(20): meiryo.ttc(1) + +Name: MeiryoUI +Class: Japan +TTCname(20): meiryo.ttc(2) + +Name: MeiryoUI-Bold +Class: Japan +TTCname(20): meiryob.ttc(2) + +Name: MeiryoUI-BoldItalic +Class: Japan +TTCname(20): meiryob.ttc(3) + +Name: MeiryoUI-Italic +Class: Japan +TTCname(20): meiryo.ttc(3) + +Name: HGGothicE +Class: Japan +TTCname(50): HGRGE.ttc(0) +TTCname(20): HGRGE.TTC(0) + +Name: HGPGothicE +Class: Japan +TTCname(50): HGRGE.ttc(1) +TTCname(20): HGRGE.TTC(1) + +Name: HGSGothicE +Class: Japan +TTCname(50): HGRGE.ttc(2) +TTCname(20): HGRGE.TTC(2) + +Name: HGGothicM +Class: Japan +TTCname(20): HGRGM.TTC(0) + +Name: HGPGothicM +Class: Japan +TTCname(20): HGRGM.TTC(1) + +Name: HGSGothicM +Class: Japan +TTCname(20): HGRGM.TTC(2) + +Name: HGMinchoE +Class: Japan +TTCname(50): HGRME.ttc(0) +TTCname(20): HGRME.TTC(0) + +Name: HGPMinchoE +Class: Japan +TTCname(50): HGRME.ttc(1) +TTCname(20): HGRME.TTC(2) + +Name: HGSMinchoE +Class: Japan +TTCname(50): HGRME.ttc(2) +TTCname(20): HGRME.TTC(2) + +Name: HGMinchoB +Class: Japan +TTCname(20): HGRMB.TTC(0) + +Name: HGPMinchoB +Class: Japan +TTCname(20): HGRMB.TTC(1) + +Name: HGSMinchoB +Class: Japan +TTCname(20): HGRMB.TTC(2) + +Name: HGSoeiKakugothicUB +Class: Japan +TTCname(50): HGRSGU.ttc(0) +TTCname(20): HGRSGU.TTC(0) + +Name: HGPSoeiKakugothicUB +Class: Japan +TTCname(50): HGRSGU.ttc(1) +TTCname(20): HGRSGU.TTC(1) + +Name: HGSSoeiKakugothicUB +Class: Japan +TTCname(50): HGRSGU.ttc(2) +TTCname(20): HGRSGU.TTC(2) + +Name: HGSoeiKakupoptai +Class: Japan +TTCname(20): HGRPP1.TTC(0) + +Name: HGPSoeiKakupoptai +Class: Japan +TTCname(20): HGRPP1.TTC(1) + +Name: HGSSoeiKakupoptai +Class: Japan +TTCname(20): HGRPP1.TTC(2) + +Name: HGSoeiPresenceEB +Class: Japan +TTCname(20): HGRPRE.TTC(0) + +Name: HGPSoeiPresenceEB +Class: Japan +TTCname(20): HGRPRE.TTC(1) + +Name: HGSSoeiPresenceEB +Class: Japan +TTCname(20): HGRPRE.TTC(2) + +Name: HGKyokashotai +Class: Japan +TTCname(20): HGRKK.TTC(0) + +Name: HGPKyokashotai +Class: Japan +TTCname(20): HGRKK.TTC(1) + +Name: HGSKyokashotai +Class: Japan +TTCname(20): HGRKK.TTC(2) + +Name: HGGyoshotai +Class: Japan +TTCname(20): HGRGY.TTC(0) + +Name: HGPGyoshotai +Class: Japan +TTCname(20): HGRGY.TTC(1) + +Name: HGSGyoshotai +Class: Japan +TTCname(20): HGRGY.TTC(2) + +Name: HGMaruGothicMPRO +Class: Japan +TTFname(40): HGRSMP.ttf +TTFname(20): HGRSMP.TTF + +Name: HGSeikaishotaiPRO +Class: Japan +TTFname(20): HGRSKP.TTF + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-mogamobo.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-mogamobo.dat new file mode 100644 index 0000000000..bddebd45e1 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-mogamobo.dat @@ -0,0 +1,200 @@ +# Moga-Mobo from Y.Oz Vox (free) + +### JAPANESE ### + +Name: MogaMincho-Regular +Class: Japan +Provides(110): Ryumin-Light +Provides(110): RyuminPro-Light +Provides(110): HiraMinProN-W3 +Provides(110): HiraMinPro-W3 +TTCname: mogam.ttc(0) + +Name: MogaExMincho-Regular +Class: Japan +Provides(100): Ryumin-Light +Provides(100): RyuminPro-Light +Provides(100): HiraMinProN-W3 +Provides(100): HiraMinPro-W3 +TTCname: mogam.ttc(1) + +Name: MogaExMincho-Italic +Class: Japan +TTCname: mogam.ttc(2) + +Name: Moga90Mincho-Regular +Class: Japan +TTCname: mogam.ttc(3) + +Name: MogaEx90Mincho-Regular +Class: Japan +TTCname: mogam.ttc(4) + +Name: MogaEx90Mincho-Italic +Class: Japan +TTCname: mogam.ttc(5) + +Name: MogaMincho-Bold +Class: Japan +Provides(110): FutoMinA101-Bold +Provides(110): FutoMinA101Pro-Bold +Provides(110): HiraMinProN-W6 +Provides(110): HiraMinPro-W6 +Provides(110): MidashiMin-MA31 +Provides(110): MidashiMinPro-MA31 +TTCname: mogamb.ttc(0) + +Name: MogaExMincho-Bold +Class: Japan +Provides(100): FutoMinA101-Bold +Provides(100): FutoMinA101Pro-Bold +Provides(100): HiraMinProN-W6 +Provides(100): HiraMinPro-W6 +Provides(100): MidashiMin-MA31 +Provides(100): MidashiMinPro-MA31 +TTCname: mogamb.ttc(1) + +Name: Moga90Mincho-Bold +Class: Japan +TTCname: mogamb.ttc(2) + +Name: MogaEx90Mincho-Bold +Class: Japan +TTCname: mogamb.ttc(3) + +Name: MogaHMincho-Regular +Class: Japan +TTCname: mogahm.ttc(0) + +Name: MogaExHMincho-Regular +Class: Japan +TTCname: mogahm.ttc(1) + +Name: MogaExHMincho-Italic +Class: Japan +TTCname: mogahm.ttc(2) + +Name: Moga90HMincho-Regular +Class: Japan +TTCname: mogahm.ttc(3) + +Name: MogaEx90HMincho-Regular +Class: Japan +TTCname: mogahm.ttc(4) + +Name: MogaEx90HMincho-Italic +Class: Japan +TTCname: mogahm.ttc(5) + +Name: MogaHMincho-Bold +Class: Japan +TTCname: mogahmb.ttc(0) + +Name: MogaExHMincho-Bold +Class: Japan +TTCname: mogahmb.ttc(1) + +Name: Moga90HMincho-Bold +Class: Japan +TTCname: mogahmb.ttc(2) + +Name: MogaEx90HMincho-Bold +Class: Japan +TTCname: mogahmb.ttc(3) + +Name: MogaGothic-Regular +Class: Japan +Provides(110): GothicBBB-Medium +Provides(110): GothicBBBPro-Medium +Provides(110): HiraKakuProN-W3 +Provides(110): HiraKakuPro-W3 +TTCname: mogag.ttc(0) + +Name: MogaExGothic-Regular +Class: Japan +Provides(100): GothicBBB-Medium +Provides(100): GothicBBBPro-Medium +Provides(100): HiraKakuProN-W3 +Provides(100): HiraKakuPro-W3 +TTCname: mogag.ttc(1) + +Name: Moga90Gothic-Regular +Class: Japan +TTCname: mogag.ttc(2) + +Name: MogaEx90Gothic-Regular +Class: Japan +TTCname: mogag.ttc(3) + +Name: MogaGothic-Bold +Class: Japan +Provides(110): FutoGoB101-Bold +Provides(110): FutoGoB101Pro-Bold +Provides(110): HiraKakuProN-W6 +Provides(110): HiraKakuPro-W6 +Provides(110): MidashiGo-MB31 +Provides(110): MidashiGoPro-MB31 +Provides(110): HiraKakuStdN-W8 +Provides(110): HiraKakuStd-W8 +TTCname: mogagb.ttc(0) + +Name: MogaExGothic-Bold +Class: Japan +Provides(100): FutoGoB101-Bold +Provides(100): FutoGoB101Pro-Bold +Provides(100): HiraKakuProN-W6 +Provides(100): HiraKakuPro-W6 +Provides(100): MidashiGo-MB31 +Provides(100): MidashiGoPro-MB31 +Provides(100): HiraKakuStdN-W8 +Provides(100): HiraKakuStd-W8 +TTCname: mogagb.ttc(1) + +Name: Moga90Gothic-Bold +Class: Japan +TTCname: mogagb.ttc(2) + +Name: MogaEx90Gothic-Bold +Class: Japan +TTCname: mogagb.ttc(3) + +Name: MoboGothic-Regular +Class: Japan +Provides(110): Jun101-Light +Provides(110): Jun101Pro-Light +Provides(110): HiraMaruProN-W4 +Provides(110): HiraMaruPro-W4 +TTCname: mobog.ttc(0) + +Name: MoboExGothic-Regular +Class: Japan +Provides(100): Jun101-Light +Provides(100): Jun101Pro-Light +Provides(100): HiraMaruProN-W4 +Provides(100): HiraMaruPro-W4 +TTCname: mobog.ttc(1) + +Name: Mobo90Gothic-Regular +Class: Japan +TTCname: mobog.ttc(2) + +Name: MoboEx90Gothic-Regular +Class: Japan +TTCname: mobog.ttc(3) + +Name: MoboGothic-Bold +Class: Japan +TTCname: mobogb.ttc(0) + +Name: MoboExGothic-Bold +Class: Japan +TTCname: mobogb.ttc(1) + +Name: Mobo90Gothic-Bold +Class: Japan +TTCname: mobogb.ttc(2) + +Name: MoboEx90Gothic-Bold +Class: Japan +TTCname: mobogb.ttc(3) + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-monotype.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-monotype.dat new file mode 100644 index 0000000000..caeeb14e7a --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-monotype.dat @@ -0,0 +1,30 @@ +# Monotype Imaging, Monotype Hong Kong + +### SIMPLIFIED/TRADITIONAL CHINESE ### + +# Note about Mac (Mac OS X 10.6 -- macOS 10.13) +# YuppySC-Regular.otf +# YuppyTC-Regular.otf +# are bundled with OS X 10.9 Mavericks or later versions. +# LingWaiSC-Medium.otf +# LingWaiTC-Medium.otf +# are bundled with macOS 10.12 Sierra or later versions. + +Name: YuppySC-Regular +Class: GB +OTFname: YuppySC-Regular.otf + +Name: YuppyTC-Regular +Class: CNS +OTFname: YuppyTC-Regular.otf + +Name: LingWaiSC-Medium +PSName: MLingWaiMedium-SC +Class: GB +OTFname: LingWaiSC-Medium.otf + +Name: LingWaiTC-Medium +PSName: MLingWaiMedium-TC +Class: CNS +OTFname: LingWaiTC-Medium.otf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-morisawa.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-morisawa.dat new file mode 100644 index 0000000000..740c7b683c --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-morisawa.dat @@ -0,0 +1,705 @@ +# Morisawa standard sets + +### JAPANESE ### + +# Some of the {Pr6N,Pro} variants are used in morisawa (ptex-fontmaps) +# or in moriprop (S. Saito). + +# Note: +# A-OTF-Jun101Pr6N-Light appeared in otf-(up-)morisawa-pr6n.map +# which is older than jfontmaps 20140301.0 +# however, such a Pr6N variant never existed, so removed +# https://www.tug.org/pipermail/tex-live/2014-February/034855.html + +Name: A-OTF-RyuminPr6N-Light +PSName: RyuminPr6N-Light +Class: Japan +Provides(10): Ryumin-Light +Provides(10): RyuminPro-Light +Provides(10): HiraMinProN-W3 +Provides(10): HiraMinPro-W3 +OTFname: A-OTF-RyuminPr6N-Light.otf + +Name: A-OTF-RyuminPr6N-Regular +PSName: RyuminPr6N-Regular +Class: Japan +Provides(10): Ryumin-Regular +OTFname: A-OTF-RyuminPr6N-Regular.otf + +Name: A-OTF-RyuminPr6N-Medium +PSName: RyuminPr6N-Medium +Class: Japan +Provides(10): Ryumin-Medium +OTFname: A-OTF-RyuminPr6N-Medium.otf + +Name: A-OTF-RyuminPr6N-Bold +PSName: RyuminPr6N-Bold +Class: Japan +Provides(10): Ryumin-Bold +OTFname: A-OTF-RyuminPr6N-Bold.otf + +Name: A-OTF-RyuminPr6N-ExBold +PSName: RyuminPr6N-ExBold +Class: Japan +Provides(10): Ryumin-ExBold +OTFname: A-OTF-RyuminPr6N-ExBold.otf + +Name: A-OTF-RyuminPr6N-Heavy +PSName: RyuminPr6N-Heavy +Class: Japan +Provides(10): Ryumin-Heavy +OTFname: A-OTF-RyuminPr6N-Heavy.otf + +Name: A-OTF-RyuminPr6N-ExHeavy +PSName: RyuminPr6N-ExHeavy +Class: Japan +Provides(10): Ryumin-ExHeavy +OTFname: A-OTF-RyuminPr6N-ExHeavy.otf + +Name: A-OTF-RyuminPr6N-Ultra +PSName: RyuminPr6N-Ultra +Class: Japan +Provides(10): Ryumin-Ultra +OTFname: A-OTF-RyuminPr6N-Ultra.otf + +Name: A-OTF-RyuminPr6-Light +PSName: RyuminPr6-Light +Class: Japan +Provides(15): Ryumin-Light +Provides(15): HiraMinPro-W3 +OTFname: A-OTF-RyuminPr6-Light.otf + +Name: A-OTF-RyuminPr6-Regular +PSName: RyuminPr6-Regular +Class: Japan +Provides(15): Ryumin-Regular +OTFname: A-OTF-RyuminPr6-Regular.otf + +Name: A-OTF-RyuminPr6-Medium +PSName: RyuminPr6-Medium +Class: Japan +Provides(15): Ryumin-Medium +OTFname: A-OTF-RyuminPr6-Medium.otf + +Name: A-OTF-RyuminPr6-Bold +PSName: RyuminPr6-Bold +Class: Japan +Provides(15): Ryumin-Bold +OTFname: A-OTF-RyuminPr6-Bold.otf + +Name: A-OTF-RyuminPr6-ExBold +PSName: RyuminPr6-ExBold +Class: Japan +Provides(15): Ryumin-ExBold +OTFname: A-OTF-RyuminPr6-ExBold.otf + +Name: A-OTF-RyuminPr6-Heavy +PSName: RyuminPr6-Heavy +Class: Japan +Provides(15): Ryumin-Heavy +OTFname: A-OTF-RyuminPr6-Heavy.otf + +Name: A-OTF-RyuminPr6-ExHeavy +PSName: RyuminPr6-ExHeavy +Class: Japan +Provides(15): Ryumin-ExHeavy +OTFname: A-OTF-RyuminPr6-ExHeavy.otf + +Name: A-OTF-RyuminPr6-Ultra +PSName: RyuminPr6-Ultra +Class: Japan +Provides(15): Ryumin-Ultra +OTFname: A-OTF-RyuminPr6-Ultra.otf + +Name: A-OTF-RyuminPr5-Light +PSName: RyuminPr5-Light +Class: Japan +Provides(18): Ryumin-Light +Provides(18): HiraMinPro-W3 +OTFname: A-OTF-RyuminPr5-Light.otf + +Name: A-OTF-RyuminPr5-Regular +PSName: RyuminPr5-Regular +Class: Japan +Provides(18): Ryumin-Regular +OTFname: A-OTF-RyuminPr5-Regular.otf + +Name: A-OTF-RyuminPr5-Medium +PSName: RyuminPr5-Medium +Class: Japan +Provides(18): Ryumin-Medium +OTFname: A-OTF-RyuminPr5-Medium.otf + +Name: A-OTF-RyuminPr5-Bold +PSName: RyuminPr5-Bold +Class: Japan +Provides(18): Ryumin-Bold +OTFname: A-OTF-RyuminPr5-Bold.otf + +Name: A-OTF-RyuminPr5-ExBold +PSName: RyuminPr5-ExBold +Class: Japan +Provides(18): Ryumin-ExBold +OTFname: A-OTF-RyuminPr5-ExBold.otf + +Name: A-OTF-RyuminPr5-Heavy +PSName: RyuminPr5-Heavy +Class: Japan +Provides(18): Ryumin-Heavy +OTFname: A-OTF-RyuminPr5-Heavy.otf + +Name: A-OTF-RyuminPr5-ExHeavy +PSName: RyuminPr5-ExHeavy +Class: Japan +Provides(18): Ryumin-ExHeavy +OTFname: A-OTF-RyuminPr5-ExHeavy.otf + +Name: A-OTF-RyuminPr5-Ultra +PSName: RyuminPr5-Ultra +Class: Japan +Provides(18): Ryumin-Ultra +OTFname: A-OTF-RyuminPr5-Ultra.otf + +Name: A-OTF-RyuminPro-Light +PSName: RyuminPro-Light +Class: Japan +Provides(20): Ryumin-Light +Provides(20): HiraMinPro-W3 +OTFname: A-OTF-RyuminPro-Light.otf + +Name: A-OTF-RyuminPro-Regular +PSName: RyuminPro-Regular +Class: Japan +Provides(20): Ryumin-Regular +OTFname: A-OTF-RyuminPro-Regular.otf + +Name: A-OTF-RyuminPro-Medium +PSName: RyuminPro-Medium +Class: Japan +Provides(20): Ryumin-Medium +OTFname: A-OTF-RyuminPro-Medium.otf + +Name: A-OTF-RyuminPro-Bold +PSName: RyuminPro-Bold +Class: Japan +Provides(20): Ryumin-Bold +OTFname: A-OTF-RyuminPro-Bold.otf + +Name: A-OTF-RyuminPro-ExBold +PSName: RyuminPro-ExBold +Class: Japan +Provides(20): Ryumin-ExBold +OTFname: A-OTF-RyuminPro-ExBold.otf + +Name: A-OTF-RyuminPro-Heavy +PSName: RyuminPro-Heavy +Class: Japan +Provides(20): Ryumin-Heavy +OTFname: A-OTF-RyuminPro-Heavy.otf + +Name: A-OTF-RyuminPro-ExHeavy +PSName: RyuminPro-ExHeavy +Class: Japan +Provides(20): Ryumin-ExHeavy +OTFname: A-OTF-RyuminPro-ExHeavy.otf + +Name: A-OTF-RyuminPro-Ultra +PSName: RyuminPro-Ultra +Class: Japan +Provides(20): Ryumin-Ultra +OTFname: A-OTF-RyuminPro-Ultra.otf + +Name: A-OTF-FutoMinA101Pr6N-Bold +PSName: FutoMinA101Pr6N-Bold +Class: Japan +Provides(10): FutoMinA101-Bold +Provides(10): FutoMinA101Pro-Bold +Provides(10): HiraMinProN-W6 +Provides(10): HiraMinPro-W6 +OTFname: A-OTF-FutoMinA101Pr6N-Bold.otf + +Name: A-OTF-FutoMinA101Pr6-Bold +PSName: FutoMinA101Pr6-Bold +Class: Japan +Provides(15): FutoMinA101-Bold +Provides(15): HiraMinPro-W6 +OTFname: A-OTF-FutoMinA101Pr6-Bold.otf + +Name: A-OTF-FutoMinA101Pr5-Bold +PSName: FutoMinA101Pr5-Bold +Class: Japan +Provides(18): FutoMinA101-Bold +Provides(18): HiraMinPro-W6 +OTFname: A-OTF-FutoMinA101Pr5-Bold.otf + +Name: A-OTF-FutoMinA101Pro-Bold +PSName: FutoMinA101Pro-Bold +Class: Japan +Provides(20): FutoMinA101-Bold +Provides(20): HiraMinPro-W6 +OTFname: A-OTF-FutoMinA101Pro-Bold.otf + +Name: A-OTF-GothicBBBPr6N-Medium +PSName: GothicBBBPr6N-Medium +Class: Japan +Provides(10): GothicBBB-Medium +Provides(10): GothicBBBPro-Medium +Provides(10): HiraKakuProN-W3 +Provides(10): HiraKakuPro-W3 +OTFname: A-OTF-GothicBBBPr6N-Medium.otf + +Name: A-OTF-GothicBBBPr6-Medium +PSName: GothicBBBPr6-Medium +Class: Japan +Provides(15): GothicBBB-Medium +Provides(15): HiraKakuPro-W3 +OTFname: A-OTF-GothicBBBPr6-Medium.otf + +Name: A-OTF-GothicBBBPr5-Medium +PSName: GothicBBBPr5-Medium +Class: Japan +Provides(18): GothicBBB-Medium +Provides(18): HiraKakuPro-W3 +OTFname: A-OTF-GothicBBBPr5-Medium.otf + +Name: A-OTF-GothicBBBPro-Medium +PSName: GothicBBBPro-Medium +Class: Japan +Provides(20): GothicBBB-Medium +Provides(20): HiraKakuPro-W3 +OTFname: A-OTF-GothicBBBPro-Medium.otf + +Name: A-OTF-FutoGoB101Pr6N-Bold +PSName: FutoGoB101Pr6N-Bold +Class: Japan +Provides(10): FutoGoB101-Bold +Provides(10): FutoGoB101Pro-Bold +Provides(10): HiraKakuProN-W6 +Provides(10): HiraKakuPro-W6 +OTFname: A-OTF-FutoGoB101Pr6N-Bold.otf + +Name: A-OTF-FutoGoB101Pr6-Bold +PSName: FutoGoB101Pr6-Bold +Class: Japan +Provides(15): FutoGoB101-Bold +Provides(15): HiraKakuPro-W6 +OTFname: A-OTF-FutoGoB101Pr6-Bold.otf + +Name: A-OTF-FutoGoB101Pr5-Bold +PSName: FutoGoB101Pr5-Bold +Class: Japan +Provides(18): FutoGoB101-Bold +Provides(18): HiraKakuPro-W6 +OTFname: A-OTF-FutoGoB101Pr5-Bold.otf + +Name: A-OTF-FutoGoB101Pro-Bold +PSName: FutoGoB101Pro-Bold +Class: Japan +Provides(20): FutoGoB101-Bold +Provides(20): HiraKakuPro-W6 +OTFname: A-OTF-FutoGoB101Pro-Bold.otf + +Name: A-OTF-MidashiGoPr6N-MB31 +PSName: MidashiGoPr6N-MB31 +Class: Japan +Provides(10): MidashiGo-MB31 +Provides(10): MidashiGoPro-MB31 +Provides(10): HiraKakuStdN-W8 +Provides(10): HiraKakuStd-W8 +OTFname: A-OTF-MidashiGoPr6N-MB31.otf + +Name: A-OTF-MidashiGoPr6-MB31 +PSName: MidashiGoPr6-MB31 +Class: Japan +Provides(15): MidashiGo-MB31 +Provides(15): HiraKakuStd-W8 +OTFname: A-OTF-MidashiGoPr6-MB31.otf + +Name: A-OTF-MidashiGoPr5-MB31 +PSName: MidashiGoPr5-MB31 +Class: Japan +Provides(18): MidashiGo-MB31 +Provides(18): HiraKakuStd-W8 +OTFname: A-OTF-MidashiGoPr5-MB31.otf + +Name: A-OTF-MidashiGoPro-MB31 +PSName: MidashiGoPro-MB31 +Class: Japan +Provides(20): MidashiGo-MB31 +Provides(20): HiraKakuStd-W8 +OTFname: A-OTF-MidashiGoPro-MB31.otf + +Name: A-OTF-Jun101Pro-Light +PSName: Jun101Pro-Light +Class: Japan +Provides(20): Jun101-Light +Provides(20): HiraMaruPro-W4 +OTFname: A-OTF-Jun101Pro-Light.otf + +Name: A-OTF-Jun201Pro-Regular +PSName: Jun201Pro-Regular +Class: Japan +Provides(20): Jun201-Regular +OTFname: A-OTF-Jun201Pro-Regular.otf + +Name: A-OTF-Jun34Pro-Medium +PSName: Jun34Pro-Medium +Class: Japan +Provides(20): Jun34-Medium +OTFname: A-OTF-Jun34Pro-Medium.otf + +Name: A-OTF-Jun501Pro-Bold +PSName: Jun501Pro-Bold +Class: Japan +Provides(20): Jun501-Bold +OTFname: A-OTF-Jun501Pro-Bold.otf + +Name: A-OTF-ShinGoPr6N-ExLight +PSName: ShinGoPr6N-ExLight +Class: Japan +Provides(10): ShinGo-ExLight +OTFname: A-OTF-ShinGoPr6N-ExLight.otf + +Name: A-OTF-ShinGoPr6N-Light +PSName: ShinGoPr6N-Light +Class: Japan +Provides(10): ShinGo-Light +OTFname: A-OTF-ShinGoPr6N-Light.otf + +Name: A-OTF-ShinGoPr6N-Regular +PSName: ShinGoPr6N-Regular +Class: Japan +Provides(10): ShinGo-Regular +OTFname: A-OTF-ShinGoPr6N-Regular.otf + +Name: A-OTF-ShinGoPr6N-Medium +PSName: ShinGoPr6N-Medium +Class: Japan +Provides(10): ShinGo-Medium +OTFname: A-OTF-ShinGoPr6N-Medium.otf + +Name: A-OTF-ShinGoPr6N-DeBold +PSName: ShinGoPr6N-DeBold +Class: Japan +Provides(10): ShinGo-DeBold +OTFname: A-OTF-ShinGoPr6N-DeBold.otf + +Name: A-OTF-ShinGoPr6N-Bold +PSName: ShinGoPr6N-Bold +Class: Japan +Provides(10): ShinGo-Bold +OTFname: A-OTF-ShinGoPr6N-Bold.otf + +Name: A-OTF-ShinGoPr6N-Heavy +PSName: ShinGoPr6N-Heavy +Class: Japan +Provides(10): ShinGo-Heavy +OTFname: A-OTF-ShinGoPr6N-Heavy.otf + +Name: A-OTF-ShinGoPr6N-Ultra +PSName: ShinGoPr6N-Ultra +Class: Japan +Provides(10): ShinGo-Ultra +OTFname: A-OTF-ShinGoPr6N-Ultra.otf + +Name: A-OTF-ShinGoPr6-ExLight +PSName: ShinGoPr6-ExLight +Class: Japan +Provides(15): ShinGo-ExLight +OTFname: A-OTF-ShinGoPr6-ExLight.otf + +Name: A-OTF-ShinGoPr6-Light +PSName: ShinGoPr6-Light +Class: Japan +Provides(15): ShinGo-Light +OTFname: A-OTF-ShinGoPr6-Light.otf + +Name: A-OTF-ShinGoPr6-Regular +PSName: ShinGoPr6-Regular +Class: Japan +Provides(15): ShinGo-Regular +OTFname: A-OTF-ShinGoPr6-Regular.otf + +Name: A-OTF-ShinGoPr6-Medium +PSName: ShinGoPr6-Medium +Class: Japan +Provides(15): ShinGo-Medium +OTFname: A-OTF-ShinGoPr6-Medium.otf + +Name: A-OTF-ShinGoPr6-DeBold +PSName: ShinGoPr6-DeBold +Class: Japan +Provides(15): ShinGo-DeBold +OTFname: A-OTF-ShinGoPr6-DeBold.otf + +Name: A-OTF-ShinGoPr6-Bold +PSName: ShinGoPr6-Bold +Class: Japan +Provides(15): ShinGo-Bold +OTFname: A-OTF-ShinGoPr6-Bold.otf + +Name: A-OTF-ShinGoPr6-Heavy +PSName: ShinGoPr6-Heavy +Class: Japan +Provides(15): ShinGo-Heavy +OTFname: A-OTF-ShinGoPr6-Heavy.otf + +Name: A-OTF-ShinGoPr6-Ultra +PSName: ShinGoPr6-Ultra +Class: Japan +Provides(15): ShinGo-Ultra +OTFname: A-OTF-ShinGoPr6-Ultra.otf + +Name: A-OTF-ShinGoPr5-ExLight +PSName: ShinGoPr5-ExLight +Class: Japan +Provides(18): ShinGo-ExLight +OTFname: A-OTF-ShinGoPr5-ExLight.otf + +Name: A-OTF-ShinGoPr5-Light +PSName: ShinGoPr5-Light +Class: Japan +Provides(18): ShinGo-Light +OTFname: A-OTF-ShinGoPr5-Light.otf + +Name: A-OTF-ShinGoPr5-Regular +PSName: ShinGoPr5-Regular +Class: Japan +Provides(18): ShinGo-Regular +OTFname: A-OTF-ShinGoPr5-Regular.otf + +Name: A-OTF-ShinGoPr5-Medium +PSName: ShinGoPr5-Medium +Class: Japan +Provides(18): ShinGo-Medium +OTFname: A-OTF-ShinGoPr5-Medium.otf + +Name: A-OTF-ShinGoPr5-DeBold +PSName: ShinGoPr5-DeBold +Class: Japan +Provides(18): ShinGo-DeBold +OTFname: A-OTF-ShinGoPr5-DeBold.otf + +Name: A-OTF-ShinGoPr5-Bold +PSName: ShinGoPr5-Bold +Class: Japan +Provides(18): ShinGo-Bold +OTFname: A-OTF-ShinGoPr5-Bold.otf + +Name: A-OTF-ShinGoPr5-Heavy +PSName: ShinGoPr5-Heavy +Class: Japan +Provides(18): ShinGo-Heavy +OTFname: A-OTF-ShinGoPr5-Heavy.otf + +Name: A-OTF-ShinGoPr5-Ultra +PSName: ShinGoPr5-Ultra +Class: Japan +Provides(18): ShinGo-Ultra +OTFname: A-OTF-ShinGoPr5-Ultra.otf + +Name: A-OTF-ShinGoPro-ExLight +PSName: ShinGoPro-ExLight +Class: Japan +Provides(20): ShinGo-ExLight +OTFname: A-OTF-ShinGoPro-ExLight.otf + +Name: A-OTF-ShinGoPro-Light +PSName: ShinGoPro-Light +Class: Japan +Provides(20): ShinGo-Light +OTFname: A-OTF-ShinGoPro-Light.otf + +Name: A-OTF-ShinGoPro-Regular +PSName: ShinGoPro-Regular +Class: Japan +Provides(20): ShinGo-Regular +OTFname: A-OTF-ShinGoPro-Regular.otf + +Name: A-OTF-ShinGoPro-Medium +PSName: ShinGoPro-Medium +Class: Japan +Provides(20): ShinGo-Medium +OTFname: A-OTF-ShinGoPro-Medium.otf + +Name: A-OTF-ShinGoPro-DeBold +PSName: ShinGoPro-DeBold +Class: Japan +Provides(20): ShinGo-DeBold +OTFname: A-OTF-ShinGoPro-DeBold.otf + +Name: A-OTF-ShinGoPro-Bold +PSName: ShinGoPro-Bold +Class: Japan +Provides(20): ShinGo-Bold +OTFname: A-OTF-ShinGoPro-Bold.otf + +Name: A-OTF-ShinGoPro-Heavy +PSName: ShinGoPro-Heavy +Class: Japan +Provides(20): ShinGo-Heavy +OTFname: A-OTF-ShinGoPro-Heavy.otf + +Name: A-OTF-ShinGoPro-Ultra +PSName: ShinGoPro-Ultra +Class: Japan +Provides(20): ShinGo-Ultra +OTFname: A-OTF-ShinGoPro-Ultra.otf + +Name: A-OTF-ShinMGoPr6N-Light +PSName: ShinMGoPr6N-Light +Class: Japan +Provides(10): Jun101-Light +Provides(10): Jun101Pro-Light +Provides(10): HiraMaruProN-W4 +Provides(10): HiraMaruPro-W4 +Provides(10): ShinMGo-Light +OTFname: A-OTF-ShinMGoPr6N-Light.otf + +Name: A-OTF-ShinMGoPr6N-Regular +PSName: ShinMGoPr6N-Regular +Class: Japan +Provides(10): ShinMGo-Regular +OTFname: A-OTF-ShinMGoPr6N-Regular.otf + +Name: A-OTF-ShinMGoPr6N-Medium +PSName: ShinMGoPr6N-Medium +Class: Japan +Provides(10): ShinMGo-Medium +OTFname: A-OTF-ShinMGoPr6N-Medium.otf + +Name: A-OTF-ShinMGoPr6N-DeBold +PSName: ShinMGoPr6N-DeBold +Class: Japan +Provides(10): ShinMGo-DeBold +OTFname: A-OTF-ShinMGoPr6N-DeBold.otf + +Name: A-OTF-ShinMGoPr6N-Bold +PSName: ShinMGoPr6N-Bold +Class: Japan +Provides(10): ShinMGo-Bold +OTFname: A-OTF-ShinMGoPr6N-Bold.otf + +Name: A-OTF-ShinMGoPr6N-Heavy +PSName: ShinMGoPr6N-Heavy +Class: Japan +Provides(10): ShinMGo-Heavy +OTFname: A-OTF-ShinMGoPr6N-Heavy.otf + +Name: A-OTF-ShinMGoPr6N-Ultra +PSName: ShinMGoPr6N-Ultra +Class: Japan +Provides(10): ShinMGo-Ultra +OTFname: A-OTF-ShinMGoPr6N-Ultra.otf + +Name: A-OTF-ShinMGoPr6-Light +PSName: ShinMGoPr6-Light +Class: Japan +Provides(15): Jun101-Light +Provides(15): HiraMaruPro-W4 +Provides(15): ShinMGo-Light +OTFname: A-OTF-ShinMGoPr6-Light.otf + +Name: A-OTF-ShinMGoPr6-Regular +PSName: ShinMGoPr6-Regular +Class: Japan +Provides(15): ShinMGo-Regular +OTFname: A-OTF-ShinMGoPr6-Regular.otf + +Name: A-OTF-ShinMGoPr6-Medium +PSName: ShinMGoPr6-Medium +Class: Japan +Provides(15): ShinMGo-Medium +OTFname: A-OTF-ShinMGoPr6-Medium.otf + +Name: A-OTF-ShinMGoPr6-DeBold +PSName: ShinMGoPr6-DeBold +Class: Japan +Provides(15): ShinMGo-DeBold +OTFname: A-OTF-ShinMGoPr6-DeBold.otf + +Name: A-OTF-ShinMGoPr6-Bold +PSName: ShinMGoPr6-Bold +Class: Japan +Provides(15): ShinMGo-Bold +OTFname: A-OTF-ShinMGoPr6-Bold.otf + +Name: A-OTF-ShinMGoPr6-Heavy +PSName: ShinMGoPr6-Heavy +Class: Japan +Provides(15): ShinMGo-Heavy +OTFname: A-OTF-ShinMGoPr6-Heavy.otf + +Name: A-OTF-ShinMGoPr6-Ultra +PSName: ShinMGoPr6-Ultra +Class: Japan +Provides(15): ShinMGo-Ultra +OTFname: A-OTF-ShinMGoPr6-Ultra.otf + +Name: A-OTF-ShinMGoPro-Light +PSName: ShinMGoPro-Light +Class: Japan +Provides(20): ShinMGo-Light +OTFname: A-OTF-ShinMGoPro-Light.otf + +Name: A-OTF-ShinMGoPro-Regular +PSName: ShinMGoPro-Regular +Class: Japan +Provides(20): ShinMGo-Regular +OTFname: A-OTF-ShinMGoPro-Regular.otf + +Name: A-OTF-ShinMGoPro-Medium +PSName: ShinMGoPro-Medium +Class: Japan +Provides(20): ShinMGo-Medium +OTFname: A-OTF-ShinMGoPro-Medium.otf + +Name: A-OTF-ShinMGoPro-DeBold +PSName: ShinMGoPro-DeBold +Class: Japan +Provides(20): ShinMGo-DeBold +OTFname: A-OTF-ShinMGoPro-DeBold.otf + +Name: A-OTF-ShinMGoPro-Bold +PSName: ShinMGoPro-Bold +Class: Japan +Provides(20): ShinMGo-Bold +OTFname: A-OTF-ShinMGoPro-Bold.otf + +Name: A-OTF-ShinMGoPro-Heavy +PSName: ShinMGoPro-Heavy +Class: Japan +Provides(20): ShinMGo-Heavy +OTFname: A-OTF-ShinMGoPro-Heavy.otf + +Name: A-OTF-ShinMGoPro-Ultra +PSName: ShinMGoPro-Ultra +Class: Japan +Provides(20): ShinMGo-Ultra +OTFname: A-OTF-ShinMGoPro-Ultra.otf + +Name: A-OTF-MidashiMinPr6N-MA31 +PSName: MidashiMinPr6N-MA31 +Class: Japan +Provides(10): MidashiMin-MA31 +Provides(10): MidashiMinPro-MA31 +OTFname: A-OTF-MidashiMinPr6N-MA31.otf + +Name: A-OTF-MidashiMinPr6-MA31 +PSName: MidashiMinPr6-MA31 +Class: Japan +Provides(15): MidashiMin-MA31 +OTFname: A-OTF-MidashiMinPr6-MA31.otf + +Name: A-OTF-MidashiMinPr5-MA31 +PSName: MidashiMinPr5-MA31 +Class: Japan +Provides(18): MidashiMin-MA31 +OTFname: A-OTF-MidashiMinPr5-MA31.otf + +Name: A-OTF-MidashiMinPro-MA31 +PSName: MidashiMinPro-MA31 +Class: Japan +Provides(20): MidashiMin-MA31 +OTFname: A-OTF-MidashiMinPro-MA31.otf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-nanum.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-nanum.dat new file mode 100644 index 0000000000..533a3d9e99 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-nanum.dat @@ -0,0 +1,78 @@ +# Nanum (free) (including Nanum MacOS version) + +# Note about Mac (Mac OS X 10.6 -- macOS 10.13) +# Nanum*.ttc (3 files) +# are bundled with ???. + +### KOREAN ### + +# note that all fonts have narrow metrics + +Name: NanumMyeongjo +Class: Korea +TTFname(10): NanumMyeongjo.ttf +TTCname(20): NanumMyeongjo.ttc(0) + +Name: NanumMyeongjoBold +Class: Korea +TTFname(10): NanumMyeongjoBold.ttf +TTCname(20): NanumMyeongjo.ttc(1) + +Name: NanumMyeongjoExtraBold +Class: Korea +TTFname(10): NanumMyeongjoExtraBold.ttf +TTCname(20): NanumMyeongjo.ttc(2) + +Name: NanumGothic +Class: Korea +TTFname(10): NanumGothic.ttf +TTCname(20): NanumGothic.ttc(0) + +Name: NanumGothicBold +Class: Korea +TTFname(10): NanumGothicBold.ttf +TTCname(20): NanumGothic.ttc(1) + +Name: NanumGothicExtraBold +Class: Korea +TTFname(10): NanumGothicExtraBold.ttf +TTCname(20): NanumGothic.ttc(2) + +Name: NanumGothicLight +Class: Korea +TTFname(10): NanumGothicLight.ttf + +Name: NanumBarunGothic +Class: Korea +TTFname(10): NanumBarunGothic.ttf + +Name: NanumBarunGothicBold +Class: Korea +TTFname(10): NanumBarunGothicBold.ttf + +Name: NanumBarunGothicLight +Class: Korea +TTFname(10): NanumBarunGothicLight.ttf + +Name: NanumBarunGothicUltraLight +Class: Korea +TTFname(10): NanumBarunGothicUltraLight.ttf + +Name: NanumBarunpen +Class: Korea +TTFname(10): NanumBarunpenR.ttf + +Name: NanumBarunpen-Bold +Class: Korea +TTFname(10): NanumBarunpenB.ttf + +Name: NanumBrush +Class: Korea +TTFname(10): NanumBrush.ttf +TTCname(20): NanumScript.ttc(0) + +Name: NanumPen +Class: Korea +TTFname(10): NanumPen.ttf +TTCname(20): NanumScript.ttc(1) + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-notosans.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-notosans.dat new file mode 100644 index 0000000000..d93b43f73f --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-notosans.dat @@ -0,0 +1,182 @@ +# NotoSans + +Name: NotoSansCJKjp-Thin +Class: Japan +OTFname(10): NotoSansCJKjp-Thin.otf +OTCname(20): NotoSansCJK-Thin.ttc(0) + +Name: NotoSansCJKjp-Light +Class: Japan +OTFname(10): NotoSansCJKjp-Light.otf +OTCname(20): NotoSansCJK-Light.ttc(0) + +Name: NotoSansCJKjp-DemiLight +Class: Japan +OTFname(10): NotoSansCJKjp-DemiLight.otf +OTCname(20): NotoSansCJK-DemiLight.ttc(0) + +Name: NotoSansCJKjp-Regular +Class: Japan +OTFname(10): NotoSansCJKjp-Regular.otf +OTCname(20): NotoSansCJK-Regular.ttc(0) + +Name: NotoSansCJKjp-Medium +Class: Japan +OTFname(10): NotoSansCJKjp-Medium.otf +OTCname(20): NotoSansCJK-Medium.ttc(0) + +Name: NotoSansCJKjp-Bold +Class: Japan +OTFname(10): NotoSansCJKjp-Bold.otf +OTCname(20): NotoSansCJK-Bold.ttc(0) + +Name: NotoSansCJKjp-Black +Class: Japan +OTFname(10): NotoSansCJKjp-Black.otf +OTCname(20): NotoSansCJK-Black.ttc(0) + +Name: NotoSansCJKkr-Thin +Class: Korea +OTFname(10): NotoSansCJKkr-Thin.otf +OTCname(20): NotoSansCJK-Thin.ttc(1) + +Name: NotoSansCJKkr-Light +Class: Korea +OTFname(10): NotoSansCJKkr-Light.otf +OTCname(20): NotoSansCJK-Light.ttc(1) + +Name: NotoSansCJKkr-DemiLight +Class: Korea +OTFname(10): NotoSansCJKkr-DemiLight.otf +OTCname(20): NotoSansCJK-DemiLight.ttc(1) + +Name: NotoSansCJKkr-Regular +Class: Korea +OTFname(10): NotoSansCJKkr-Regular.otf +OTCname(20): NotoSansCJK-Regular.ttc(1) + +Name: NotoSansCJKkr-Medium +Class: Korea +OTFname(10): NotoSansCJKkr-Medium.otf +OTCname(20): NotoSansCJK-Medium.ttc(1) + +Name: NotoSansCJKkr-Bold +Class: Korea +OTFname(10): NotoSansCJKkr-Bold.otf +OTCname(20): NotoSansCJK-Bold.ttc(1) + +Name: NotoSansCJKkr-Black +Class: Korea +OTFname(10): NotoSansCJKkr-Black.otf +OTCname(20): NotoSansCJK-Black.ttc(1) + +Name: NotoSansCJKsc-Thin +Class: GB +OTFname(10): NotoSansCJKsc-Thin.otf +OTCname(20): NotoSansCJK-Thin.ttc(2) + +Name: NotoSansCJKsc-Light +Class: GB +OTFname(10): NotoSansCJKsc-Light.otf +OTCname(20): NotoSansCJK-Light.ttc(2) + +Name: NotoSansCJKsc-DemiLight +Class: GB +OTFname(10): NotoSansCJKsc-DemiLight.otf +OTCname(20): NotoSansCJK-DemiLight.ttc(2) + +Name: NotoSansCJKsc-Regular +Class: GB +OTFname(10): NotoSansCJKsc-Regular.otf +OTCname(20): NotoSansCJK-Regular.ttc(2) + +Name: NotoSansCJKsc-Medium +Class: GB +OTFname(10): NotoSansCJKsc-Medium.otf +OTCname(20): NotoSansCJK-Medium.ttc(2) + +Name: NotoSansCJKsc-Bold +Class: GB +OTFname(10): NotoSansCJKsc-Bold.otf +OTCname(20): NotoSansCJK-Bold.ttc(2) + +Name: NotoSansCJKsc-Black +Class: GB +OTFname(10): NotoSansCJKsc-Black.otf +OTCname(20): NotoSansCJK-Black.ttc(2) + +Name: NotoSansCJKtc-Thin +Class: CNS +OTFname(10): NotoSansCJKtc-Thin.otf +OTCname(20): NotoSansCJK-Thin.ttc(3) + +Name: NotoSansCJKtc-Light +Class: CNS +OTFname(10): NotoSansCJKtc-Light.otf +OTCname(20): NotoSansCJK-Light.ttc(3) + +Name: NotoSansCJKtc-DemiLight +Class: CNS +OTFname(10): NotoSansCJKtc-DemiLight.otf +OTCname(20): NotoSansCJK-DemiLight.ttc(3) + +Name: NotoSansCJKtc-Regular +Class: CNS +OTFname(10): NotoSansCJKtc-Regular.otf +OTCname(20): NotoSansCJK-Regular.ttc(3) + +Name: NotoSansCJKtc-Medium +Class: CNS +OTFname(10): NotoSansCJKtc-Medium.otf +OTCname(20): NotoSansCJK-Medium.ttc(3) + +Name: NotoSansCJKtc-Bold +Class: CNS +OTFname(10): NotoSansCJKtc-Bold.otf +OTCname(20): NotoSansCJK-Bold.ttc(3) + +Name: NotoSansCJKtc-Black +Class: CNS +OTFname(10): NotoSansCJKtc-Black.otf +OTCname(20): NotoSansCJK-Black.ttc(3) + +Name: NotoSansMonoCJKjp-Regular +Class: Japan +OTFname(10): NotoSansMonoCJKjp-Regular.otf +OTCname(20): NotoSansCJK-Regular.ttc(4) + +Name: NotoSansMonoCJKjp-Bold +Class: Japan +OTFname(10): NotoSansMonoCJKjp-Bold.otf +OTCname(20): NotoSansCJK-Bold.ttc(4) + +Name: NotoSansMonoCJKkr-Regular +Class: Korea +OTFname(10): NotoSansMonoCJKkr-Regular.otf +OTCname(20): NotoSansCJK-Regular.ttc(5) + +Name: NotoSansMonoCJKkr-Bold +Class: Korea +OTFname(10): NotoSansMonoCJKkr-Bold.otf +OTCname(20): NotoSansCJK-Bold.ttc(5) + +Name: NotoSansMonoCJKsc-Regular +Class: GB +OTFname(10): NotoSansMonoCJKsc-Regular.otf +OTCname(20): NotoSansCJK-Regular.ttc(6) + +Name: NotoSansMonoCJKsc-Bold +Class: GB +OTFname(10): NotoSansMonoCJKsc-Bold.otf +OTCname(20): NotoSansCJK-Bold.ttc(6) + +Name: NotoSansMonoCJKtc-Regular +Class: CNS +OTFname(10): NotoSansMonoCJKtc-Regular.otf +OTCname(20): NotoSansCJK-Regular.ttc(7) + +Name: NotoSansMonoCJKtc-Bold +Class: CNS +OTFname(10): NotoSansMonoCJKtc-Bold.otf +OTCname(20): NotoSansCJK-Bold.ttc(7) + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-notoserif.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-notoserif.dat new file mode 100644 index 0000000000..e913166807 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-notoserif.dat @@ -0,0 +1,141 @@ +# NotoSerif + +Name: NotoSerifCJKjp-ExtraLight +Class: Japan +OTFname(10): NotoSerifCJKjp-ExtraLight.otf +OTCname(20): NotoSerifCJK-ExtraLight.ttc(0) + +Name: NotoSerifCJKjp-Light +Class: Japan +OTFname(10): NotoSerifCJKjp-Light.otf +OTCname(20): NotoSerifCJK-Light.ttc(0) + +Name: NotoSerifCJKjp-Regular +Class: Japan +OTFname(10): NotoSerifCJKjp-Regular.otf +OTCname(20): NotoSerifCJK-Regular.ttc(0) + +Name: NotoSerifCJKjp-Medium +Class: Japan +OTFname(10): NotoSerifCJKjp-Medium.otf +OTCname(20): NotoSerifCJK-Medium.ttc(0) + +Name: NotoSerifCJKjp-SemiBold +Class: Japan +OTFname(10): NotoSerifCJKjp-SemiBold.otf +OTCname(20): NotoSerifCJK-SemiBold.ttc(0) + +Name: NotoSerifCJKjp-Bold +Class: Japan +OTFname(10): NotoSerifCJKjp-Bold.otf +OTCname(20): NotoSerifCJK-Bold.ttc(0) + +Name: NotoSerifCJKjp-Black +Class: Japan +OTFname(10): NotoSerifCJKjp-Black.otf +OTCname(20): NotoSerifCJK-Black.ttc(0) + +Name: NotoSerifCJKkr-ExtraLight +Class: Korea +OTFname(10): NotoSerifCJKkr-ExtraLight.otf +OTCname(20): NotoSerifCJK-ExtraLight.ttc(1) + +Name: NotoSerifCJKkr-Light +Class: Korea +OTFname(10): NotoSerifCJKkr-Light.otf +OTCname(20): NotoSerifCJK-Light.ttc(1) + +Name: NotoSerifCJKkr-Regular +Class: Korea +OTFname(10): NotoSerifCJKkr-Regular.otf +OTCname(20): NotoSerifCJK-Regular.ttc(1) + +Name: NotoSerifCJKkr-Medium +Class: Korea +OTFname(10): NotoSerifCJKkr-Medium.otf +OTCname(20): NotoSerifCJK-Medium.ttc(1) + +Name: NotoSerifCJKkr-SemiBold +Class: Korea +OTFname(10): NotoSerifCJKkr-SemiBold.otf +OTCname(20): NotoSerifCJK-SemiBold.ttc(1) + +Name: NotoSerifCJKkr-Bold +Class: Korea +OTFname(10): NotoSerifCJKkr-Bold.otf +OTCname(20): NotoSerifCJK-Bold.ttc(1) + +Name: NotoSerifCJKkr-Black +Class: Korea +OTFname(10): NotoSerifCJKkr-Black.otf +OTCname(20): NotoSerifCJK-Black.ttc(1) + +Name: NotoSerifCJKsc-ExtraLight +Class: GB +OTFname(10): NotoSerifCJKsc-ExtraLight.otf +OTCname(20): NotoSerifCJK-ExtraLight.ttc(2) + +Name: NotoSerifCJKsc-Light +Class: GB +OTFname(10): NotoSerifCJKsc-Light.otf +OTCname(20): NotoSerifCJK-Light.ttc(2) + +Name: NotoSerifCJKsc-Regular +Class: GB +OTFname(10): NotoSerifCJKsc-Regular.otf +OTCname(20): NotoSerifCJK-Regular.ttc(2) + +Name: NotoSerifCJKsc-Medium +Class: GB +OTFname(10): NotoSerifCJKsc-Medium.otf +OTCname(20): NotoSerifCJK-Medium.ttc(2) + +Name: NotoSerifCJKsc-SemiBold +Class: GB +OTFname(10): NotoSerifCJKsc-SemiBold.otf +OTCname(20): NotoSerifCJK-SemiBold.ttc(2) + +Name: NotoSerifCJKsc-Bold +Class: GB +OTFname(10): NotoSerifCJKsc-Bold.otf +OTCname(20): NotoSerifCJK-Bold.ttc(2) + +Name: NotoSerifCJKsc-Black +Class: GB +OTFname(10): NotoSerifCJKsc-Black.otf +OTCname(20): NotoSerifCJK-Black.ttc(2) + +Name: NotoSerifCJKtc-ExtraLight +Class: CNS +OTFname(10): NotoSerifCJKtc-ExtraLight.otf +OTCname(20): NotoSerifCJK-ExtraLight.ttc(3) + +Name: NotoSerifCJKtc-Light +Class: CNS +OTFname(10): NotoSerifCJKtc-Light.otf +OTCname(20): NotoSerifCJK-Light.ttc(3) + +Name: NotoSerifCJKtc-Regular +Class: CNS +OTFname(10): NotoSerifCJKtc-Regular.otf +OTCname(20): NotoSerifCJK-Regular.ttc(3) + +Name: NotoSerifCJKtc-Medium +Class: CNS +OTFname(10): NotoSerifCJKtc-Medium.otf +OTCname(20): NotoSerifCJK-Medium.ttc(3) + +Name: NotoSerifCJKtc-SemiBold +Class: CNS +OTFname(10): NotoSerifCJKtc-SemiBold.otf +OTCname(20): NotoSerifCJK-SemiBold.ttc(3) + +Name: NotoSerifCJKtc-Bold +Class: CNS +OTFname(10): NotoSerifCJKtc-Bold.otf +OTCname(20): NotoSerifCJK-Bold.ttc(3) + +Name: NotoSerifCJKtc-Black +Class: CNS +OTFname(10): NotoSerifCJKtc-Black.otf +OTCname(20): NotoSerifCJK-Black.ttc(3) diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-ryokana.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-ryokana.dat new file mode 100644 index 0000000000..9364cc55a2 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-ryokana.dat @@ -0,0 +1,141 @@ +# Ryo PlusN (Kana + Kozuka Std) and Ryo Std (Kana only) + +### JAPANESE ### + +# Note about Adobe Creative Suite: +# RyoTextStd: CS1, CS2, CS3 +# RyoTextPlusN: CS4, CS5, CS5.5 +# RyoDispStd: CS1, CS2, CS3, CS4 +# RyoDispPlusN: CS5, CS5.5 +# RyoGothicStd: CS3 +# RyoGothicPlusN: CS4, CS5, CS5.5 +# are bundled in DVD installer/data. + +Name: RyoTextPlusN-ExtraLight +Class: Japan +OTFname: RyoTextPlusN-ExtraLight.otf + +Name: RyoTextPlusN-Light +Class: Japan +OTFname: RyoTextPlusN-Light.otf + +Name: RyoTextPlusN-Regular +Class: Japan +OTFname: RyoTextPlusN-Regular.otf + +Name: RyoTextPlusN-Medium +Class: Japan +OTFname: RyoTextPlusN-Medium.otf + +Name: RyoDispPlusN-Medium +Class: Japan +OTFname: RyoDispPlusN-Medium.otf + +Name: RyoDispPlusN-SemiBold +Class: Japan +OTFname: RyoDispPlusN-SemiBold.otf + +Name: RyoDispPlusN-Bold +Class: Japan +OTFname: RyoDispPlusN-Bold.otf + +Name: RyoDispPlusN-ExtraBold +Class: Japan +OTFname: RyoDispPlusN-ExtraBold.otf + +Name: RyoDispPlusN-Heavy +Class: Japan +OTFname: RyoDispPlusN-Heavy + +Name: RyoTextStd-ExtraLight +Class: Japan +OTFname: RyoTextStd-ExtraLight.otf + +Name: RyoTextStd-Light +Class: Japan +OTFname: RyoTextStd-Light.otf + +Name: RyoTextStd-Regular +Class: Japan +OTFname: RyoTextStd-Regular.otf + +Name: RyoTextStd-Medium +Class: Japan +OTFname: RyoTextStd-Medium.otf + +Name: RyoDispStd-Medium +Class: Japan +OTFname: RyoDispStd-Medium.otf + +Name: RyoDispStd-SemiBold +Class: Japan +OTFname: RyoDispStd-SemiBold.otf + +Name: RyoDispStd-Bold +Class: Japan +OTFname: RyoDispStd-Bold.otf + +Name: RyoDispStd-ExtraBold +Class: Japan +OTFname: RyoDispStd-ExtraBold.otf + +Name: RyoDispStd-Heavy +Class: Japan +OTFname: RyoDispStd-Heavy.otf + +Name: RyoGothicPlusN-ExtraLight +Class: Japan +OTFname: RyoGothicPlusN-ExtraLight.otf + +Name: RyoGothicPlusN-Light +Class: Japan +OTFname: RyoGothicPlusN-Light.otf + +Name: RyoGothicPlusN-Regular +Class: Japan +OTFname: RyoGothicPlusN-Regular.otf + +Name: RyoGothicPlusN-Medium +Class: Japan +OTFname: RyoGothicPlusN-Medium.otf + +Name: RyoGothicPlusN-Bold +Class: Japan +OTFname: RyoGothicPlusN-Bold.otf + +Name: RyoGothicPlusN-Heavy +Class: Japan +OTFname: RyoGothicPlusN-Heavy.otf + +Name: RyoGothicPlusN-UltraHeavy +Class: Japan +OTFname: RyoGothicPlusN-UltraHeavy.otf + +Name: RyoGothicStd-ExtraLight +Class: Japan +OTFname: RyoGothicStd-ExtraLight.otf + +Name: RyoGothicStd-Light +Class: Japan +OTFname: RyoGothicStd-Light.otf + +Name: RyoGothicStd-Regular +Class: Japan +OTFname: RyoGothicStd-Regular.otf + +Name: RyoGothicStd-Medium +Class: Japan +OTFname: RyoGothicStd-Medium.otf + +Name: RyoGothicStd-Bold +Class: Japan +OTFname: RyoGothicStd-Bold.otf + +Name: RyoGothicStd-Heavy +Class: Japan +OTFname: RyoGothicStd-Heavy.otf + +Name: RyoGothicStd-UltraHeavy +Class: Japan +OTFname: RyoGothicStd-UltraHeavy.otf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-sazanami.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-sazanami.dat new file mode 100644 index 0000000000..a8ee6a481e --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-sazanami.dat @@ -0,0 +1,12 @@ +# Sazanami (free) + +### JAPANESE ### + +Name: Sazanami-Mincho-Regular +Class: Japan +TTFname: sazanami-mincho.ttf + +Name: Sazanami-Gothic-Regular +Class: Japan +TTFname: sazanami-gothic.ttf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-sinotype.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-sinotype.dat new file mode 100644 index 0000000000..37a032391e --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-sinotype.dat @@ -0,0 +1,194 @@ +# Changzhou SinoType + +### SIMPLIFIED/TRADITIONAL CHINESE ### + +# Note about Mac (Mac OS X 10.6 -- macOS 10.13) +# STHeiti Light.ttc +# STHeiti Medium.ttc +# are bundled with all versions. +# 华文细黑.ttf +# 华文黑体.ttf +# 华文仿宋.ttf +# are bundled with macOS 10.12.6 Sierra or earlier versions. +# STXIHEI.ttf +# STHEITI.ttf +# STFANGSO.ttf +# are bundled with macOS 10.13 High Sierra or later versions. +# 华文宋体.ttf +# 华文楷体.ttf +# are bundled with Mac OS X 10.7.5 Lion or earlier versions. +# 宋体.ttc +# 楷体.ttc +# are bundled with OS X 10.8 -- 10.8.5 Mountain Lion. +# Songti.ttc +# index 0: STSongti-SC-Black +# index 1: STSongti-SC-Bold +# index 2: STSongti-TC-Bold +# index 3: STSongti-SC-Light +# index 4: STSong +# index 5: STSongti-TC-Light +# index 6: STSongti-SC-Regular +# index 7: STSongti-TC-Regular +# is bundled with OS X 10.9 or later versions. +# Kaiti.ttc +# index 0: STKaiti-SC-Black +# index 1: STKaiti-SC-Bold +# index 2: STKaiTi-TC-Bold +# index 3: STKaiti-SC-Regular +# index 4: STKaiti +# index 5: STKaiTi-TC-Regular +# is bundled with OS X 10.9 -- 10.11.6 El Capitan. +# Kaiti.ttc +# index 0: STKaitiSC-Regular +# index 1: STKaiti +# index 2: STKaitiTC-Regular +# index 3: STKaitiSC-Bold +# index 4: STKaitiTC-Bold +# index 5: STKaitiSC-Black +# index 6: STKaitiTC-Black +# is bundled with macOS 10.12 Sierra or later versions. +# Baoli.ttc +# index 0: STBaoli-SC-Regular +# Libian.ttc +# index 0: STLibian-SC-Regular +# Xingkai.ttc +# index 0: STXingkai-SC-Bold +# index 1: STXingkai-SC-Light +# are bundled with OS X 10.9 Mavericks -- 10.11.6 El Capitan. +# Baoli.ttc +# index 0: STBaoliSC-Regular +# index 1: STBaoliTC-Regular +# Libian.ttc +# index 0: STLibianSC-Regular +# index 1: STLibianTC-Regular +# Xingkai.ttc +# index 0: STXingkaiSC-Bold +# index 1: STXingkaiTC-Bold +# index 2: STXingkaiSC-Light +# index 3: STXingkaiTC-Light +# are bundled with macOS 10.12 Sierra or later versions. +# Yuanti.ttc +# index 0: STYuanti-SC-Bold +# index 1: STYuanti-SC-Light +# index 2: STYuanti-SC-Regular +# is bundled with OS X 10.9 Mavericks -- 10.10.5 Yosemite. +# Yuanti.ttc +# index 0: STYuanti-SC-Bold +# index 1: STYuanti-TC-Bold +# index 2: STYuanti-SC-Light +# index 3: STYuanti-TC-Light +# index 4: STYuanti-SC-Regular +# index 5: STYuanti-TC-Regular +# is bundled with OS X 10.11 -- 10.11.6 El Capitan. +# Yuanti.ttc +# index 0: STYuanti-SC-Regular +# index 1: STYuanti-TC-Regular +# index 2: STYuanti-SC-Bold +# index 3: STYuanti-TC-Bold +# index 4: STYuanti-SC-Light +# index 5: STYuanti-TC-Light +# is bundled with macOS 10.12 Sierra or later versions. + +# Note about MSOffice: +# STZHONGS.ttf +# STXINWEI.ttf +# STXINGKA.ttf +# STLITI.ttf +# STHUPO.ttf +# are bundled with Office for Mac 2016. + +Name: STSong +Class: GB +#Provides(??): STSong-Light # fails +#Provides(??): STSong-Regular # fails +TTFname(10): STSong.ttf +TTFname(11): STSONG.TTF +TTFname(20): 华文宋体.ttf + +Name: STKaiti +Class: GB +#Provides(??): STKaiti-Regular # fails +TTFname(10): STKaiti.ttf +TTFname(11): STKAITI.TTF +TTFname(20): 华文楷体.ttf + +Name: STKaiti-Adobe-CNS1 +Class: CNS +#Provides(??): MKai-Medium # fails +TTFname(10): STKaiti.ttf +TTFname(11): STKAITI.TTF +TTFname(20): 华文楷体.ttf + +Name: STXihei +Class: GB +#Provides(??): STHeiti-Light # fails +TTFname(10): STXihei.ttf +TTFname(11): STXIHEI.TTF +TTFname(19): STXIHEI.ttf +TTFname(20): 华文细黑.ttf + +Name: STHeiti +Class: GB +#Provides(??): STHeiti-Regular # fails +TTFname(10): STHeiti.ttf +TTFname(19): STHEITI.ttf +TTFname(20): 华文黑体.ttf + +Name: STFangsong +Class: GB +#Provides(??): STFangsong-Light # fails +#Provides(??): STFangsong-Regular # fails +TTFname(10): STFangsong.ttf +TTFname(11): STFANGSO.TTF +TTFname(19): STFANGSO.ttf +TTFname(20): 华文仿宋.ttf + +Name: STZhongsong +Class: GB +TTFname(11): STZHONGS.TTF +TTFname(12): STZHONGS.ttf + +Name: STXinwei +Class: GB +TTFname(11): STXINWEI.TTF +TTFname(12): STXINWEI.ttf + +Name: STXingkai +Class: GB +TTFname(11): STXINGKA.TTF +TTFname(12): STXINGKA.ttf + +Name: STLiti +Class: GB +TTFname(11): STLITI.TTF +TTFname(12): STLITI.ttf + +Name: STHupo +Class: GB +TTFname(11): STHUPO.TTF +TTFname(12): STHUPO.ttf + +Name: STCaiyun +Class: GB +TTFname(11): STCAIYUN.TTF + +Name: STHeitiSC-Light +Class: GB +TTCname(30): STHeiti-Light.ttc(1) +TTCname(40): STHeiti Light.ttc(1) + +Name: STHeitiTC-Light +Class: CNS +TTCname(30): STHeiti-Light.ttc(0) +TTCname(40): STHeiti Light.ttc(0) + +Name: STHeitiSC-Medium +Class: GB +TTCname(30): STHeiti-Medium.ttc(1) +TTCname(40): STHeiti Medium.ttc(1) + +Name: STHeitiTC-Medium +Class: CNS +TTCname(30): STHeiti-Medium.ttc(0) +TTCname(40): STHeiti Medium.ttc(0) + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-solaris.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-solaris.dat new file mode 100644 index 0000000000..157f84327f --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-solaris.dat @@ -0,0 +1,33 @@ +# Solaris + +# All these fonts are bundled with Solaris 10, 11. + +### KOREAN ### + +Name: Myeongjo +Class: Korea +Provides(40): HYSMyeongJo-Medium +TTFname: h2mjsm.ttf + +Name: Gothic +Class: Korea +Provides(40): HYGoThic-Medium +TTFname: h2gtrm.ttf + +Name: RoundedGothic +Class: Korea +Provides(40): HYRGoThic-Medium +TTFname: h2drrm.ttf + +Name: Haeseo +Class: Korea +TTFname: h2hsrm.ttf + +Name: SunDotum +Class: Korea +TTFname: sundotump.ttf + +Name: SunDotumChe +Class: Korea +TTFname: sundotumf.ttf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-sourcehansans.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-sourcehansans.dat new file mode 100644 index 0000000000..e480b7dc6b --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-sourcehansans.dat @@ -0,0 +1,182 @@ +# SourceHanSans + +Name: SourceHanSans-ExtraLight +Class: Japan +OTFname(10): SourceHanSans-ExtraLight.otf +OTCname(20): SourceHanSans-ExtraLight.ttc(0) + +Name: SourceHanSans-Light +Class: Japan +OTFname(10): SourceHanSans-Light.otf +OTCname(20): SourceHanSans-Light.ttc(0) + +Name: SourceHanSans-Normal +Class: Japan +OTFname(10): SourceHanSans-Normal.otf +OTCname(20): SourceHanSans-Normal.ttc(0) + +Name: SourceHanSans-Regular +Class: Japan +OTFname(10): SourceHanSans-Regular.otf +OTCname(20): SourceHanSans-Regular.ttc(0) + +Name: SourceHanSans-Medium +Class: Japan +OTFname(10): SourceHanSans-Medium.otf +OTCname(20): SourceHanSans-Medium.ttc(0) + +Name: SourceHanSans-Bold +Class: Japan +OTFname(10): SourceHanSans-Bold.otf +OTCname(20): SourceHanSans-Bold.ttc(0) + +Name: SourceHanSans-Heavy +Class: Japan +OTFname(10): SourceHanSans-Heavy.otf +OTCname(20): SourceHanSans-Heavy.ttc(0) + +Name: SourceHanSansK-ExtraLight +Class: Korea +OTFname(10): SourceHanSansK-ExtraLight.otf +OTCname(20): SourceHanSans-ExtraLight.ttc(1) + +Name: SourceHanSansK-Light +Class: Korea +OTFname(10): SourceHanSansK-Light.otf +OTCname(20): SourceHanSans-Light.ttc(1) + +Name: SourceHanSansK-Normal +Class: Korea +OTFname(10): SourceHanSansK-Normal.otf +OTCname(20): SourceHanSans-Normal.ttc(1) + +Name: SourceHanSansK-Regular +Class: Korea +OTFname(10): SourceHanSansK-Regular.otf +OTCname(20): SourceHanSans-Regular.ttc(1) + +Name: SourceHanSansK-Medium +Class: Korea +OTFname(10): SourceHanSansK-Medium.otf +OTCname(20): SourceHanSans-Medium.ttc(1) + +Name: SourceHanSansK-Bold +Class: Korea +OTFname(10): SourceHanSansK-Bold.otf +OTCname(20): SourceHanSans-Bold.ttc(1) + +Name: SourceHanSansK-Heavy +Class: Korea +OTFname(10): SourceHanSansK-Heavy.otf +OTCname(20): SourceHanSans-Heavy.ttc(1) + +Name: SourceHanSansSC-ExtraLight +Class: GB +OTFname(10): SourceHanSansSC-ExtraLight.otf +OTCname(20): SourceHanSans-ExtraLight.ttc(2) + +Name: SourceHanSansSC-Light +Class: GB +OTFname(10): SourceHanSansSC-Light.otf +OTCname(20): SourceHanSans-Light.ttc(2) + +Name: SourceHanSansSC-Normal +Class: GB +OTFname(10): SourceHanSansSC-Normal.otf +OTCname(20): SourceHanSans-Normal.ttc(2) + +Name: SourceHanSansSC-Regular +Class: GB +OTFname(10): SourceHanSansSC-Regular.otf +OTCname(20): SourceHanSans-Regular.ttc(2) + +Name: SourceHanSansSC-Medium +Class: GB +OTFname(10): SourceHanSansSC-Medium.otf +OTCname(20): SourceHanSans-Medium.ttc(2) + +Name: SourceHanSansSC-Bold +Class: GB +OTFname(10): SourceHanSansSC-Bold.otf +OTCname(20): SourceHanSans-Bold.ttc(2) + +Name: SourceHanSansSC-Heavy +Class: GB +OTFname(10): SourceHanSansSC-Heavy.otf +OTCname(20): SourceHanSans-Heavy.ttc(2) + +Name: SourceHanSansTC-ExtraLight +Class: CNS +OTFname(10): SourceHanSansTC-ExtraLight.otf +OTCname(20): SourceHanSans-ExtraLight.ttc(3) + +Name: SourceHanSansTC-Light +Class: CNS +OTFname(10): SourceHanSansTC-Light.otf +OTCname(20): SourceHanSans-Light.ttc(3) + +Name: SourceHanSansTC-Normal +Class: CNS +OTFname(10): SourceHanSansTC-Normal.otf +OTCname(20): SourceHanSans-Normal.ttc(3) + +Name: SourceHanSansTC-Regular +Class: CNS +OTFname(10): SourceHanSansTC-Regular.otf +OTCname(20): SourceHanSans-Regular.ttc(3) + +Name: SourceHanSansTC-Medium +Class: CNS +OTFname(10): SourceHanSansTC-Medium.otf +OTCname(20): SourceHanSans-Medium.ttc(3) + +Name: SourceHanSansTC-Bold +Class: CNS +OTFname(10): SourceHanSansTC-Bold.otf +OTCname(20): SourceHanSans-Bold.ttc(3) + +Name: SourceHanSansTC-Heavy +Class: CNS +OTFname(10): SourceHanSansTC-Heavy.otf +OTCname(20): SourceHanSans-Heavy.ttc(3) + +Name: SourceHanSansHW-Regular +Class: Japan +OTFname(10): SourceHanSansHW-Regular.otf +OTCname(20): SourceHanSans-Regular.ttc(4) + +Name: SourceHanSansHW-Bold +Class: Japan +OTFname(10): SourceHanSansHW-Bold.otf +OTCname(20): SourceHanSans-Bold.ttc(4) + +Name: SourceHanSansHWK-Regular +Class: Korea +OTFname(10): SourceHanSansHWK-Regular.otf +OTCname(20): SourceHanSans-Regular.ttc(5) + +Name: SourceHanSansHWK-Bold +Class: Korea +OTFname(10): SourceHanSansHWK-Bold.otf +OTCname(20): SourceHanSans-Bold.ttc(5) + +Name: SourceHanSansHWSC-Regular +Class: GB +OTFname(10): SourceHanSansHWSC-Regular.otf +OTCname(20): SourceHanSans-Regular.ttc(6) + +Name: SourceHanSansHWSC-Bold +Class: GB +OTFname(10): SourceHanSansHWSC-Bold.otf +OTCname(20): SourceHanSans-Bold.ttc(6) + +Name: SourceHanSansHWTC-Regular +Class: CNS +OTFname(10): SourceHanSansHWTC-Regular.otf +OTCname(20): SourceHanSans-Regular.ttc(7) + +Name: SourceHanSansHWTC-Bold +Class: CNS +OTFname(10): SourceHanSansHWTC-Bold.otf +OTCname(20): SourceHanSans-Bold.ttc(7) + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-sourcehanserif.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-sourcehanserif.dat new file mode 100644 index 0000000000..a3c3ec1bee --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-sourcehanserif.dat @@ -0,0 +1,142 @@ +# SourceHanSerif + +Name: SourceHanSerif-ExtraLight +Class: Japan +OTFname(10): SourceHanSerif-ExtraLight.otf +OTCname(20): SourceHanSerif-ExtraLight.ttc(0) + +Name: SourceHanSerif-Light +Class: Japan +OTFname(10): SourceHanSerif-Light.otf +OTCname(20): SourceHanSerif-Light.ttc(0) + +Name: SourceHanSerif-Regular +Class: Japan +OTFname(10): SourceHanSerif-Regular.otf +OTCname(20): SourceHanSerif-Regular.ttc(0) + +Name: SourceHanSerif-Medium +Class: Japan +OTFname(10): SourceHanSerif-Medium.otf +OTCname(20): SourceHanSerif-Medium.ttc(0) + +Name: SourceHanSerif-SemiBold +Class: Japan +OTFname(10): SourceHanSerif-SemiBold.otf +OTCname(20): SourceHanSerif-SemiBold.ttc(0) + +Name: SourceHanSerif-Bold +Class: Japan +OTFname(10): SourceHanSerif-Bold.otf +OTCname(20): SourceHanSerif-Bold.ttc(0) + +Name: SourceHanSerif-Heavy +Class: Japan +OTFname(10): SourceHanSerif-Heavy.otf +OTCname(20): SourceHanSerif-Heavy.ttc(0) + +Name: SourceHanSerifK-ExtraLight +Class: Korea +OTFname(10): SourceHanSerifK-ExtraLight.otf +OTCname(20): SourceHanSerif-ExtraLight.ttc(1) + +Name: SourceHanSerifK-Light +Class: Korea +OTFname(10): SourceHanSerifK-Light.otf +OTCname(20): SourceHanSerif-Light.ttc(1) + +Name: SourceHanSerifK-Regular +Class: Korea +OTFname(10): SourceHanSerifK-Regular.otf +OTCname(20): SourceHanSerif-Regular.ttc(1) + +Name: SourceHanSerifK-Medium +Class: Korea +OTFname(10): SourceHanSerifK-Medium.otf +OTCname(20): SourceHanSerif-Medium.ttc(1) + +Name: SourceHanSerifK-SemiBold +Class: Korea +OTFname(10): SourceHanSerifK-SemiBold.otf +OTCname(20): SourceHanSerif-SemiBold.ttc(1) + +Name: SourceHanSerifK-Bold +Class: Korea +OTFname(10): SourceHanSerifK-Bold.otf +OTCname(20): SourceHanSerif-Bold.ttc(1) + +Name: SourceHanSerifK-Heavy +Class: Korea +OTFname(10): SourceHanSerifK-Heavy.otf +OTCname(20): SourceHanSerif-Heavy.ttc(1) + +Name: SourceHanSerifSC-ExtraLight +Class: GB +OTFname(10): SourceHanSerifSC-ExtraLight.otf +OTCname(20): SourceHanSerif-ExtraLight.ttc(2) + +Name: SourceHanSerifSC-Light +Class: GB +OTFname(10): SourceHanSerifSC-Light.otf +OTCname(20): SourceHanSerif-Light.ttc(2) + +Name: SourceHanSerifSC-Regular +Class: GB +OTFname(10): SourceHanSerifSC-Regular.otf +OTCname(20): SourceHanSerif-Regular.ttc(2) + +Name: SourceHanSerifSC-Medium +Class: GB +OTFname(10): SourceHanSerifSC-Medium.otf +OTCname(20): SourceHanSerif-Medium.ttc(2) + +Name: SourceHanSerifSC-SemiBold +Class: GB +OTFname(10): SourceHanSerifSC-SemiBold.otf +OTCname(20): SourceHanSerif-SemiBold.ttc(2) + +Name: SourceHanSerifSC-Bold +Class: GB +OTFname(10): SourceHanSerifSC-Bold.otf +OTCname(20): SourceHanSerif-Bold.ttc(2) + +Name: SourceHanSerifSC-Heavy +Class: GB +OTFname(10): SourceHanSerifSC-Heavy.otf +OTCname(20): SourceHanSerif-Heavy.ttc(2) + +Name: SourceHanSerifTC-ExtraLight +Class: CNS +OTFname(10): SourceHanSerifTC-ExtraLight.otf +OTCname(20): SourceHanSerif-ExtraLight.ttc(3) + +Name: SourceHanSerifTC-Light +Class: CNS +OTFname(10): SourceHanSerifTC-Light.otf +OTCname(20): SourceHanSerif-Light.ttc(3) + +Name: SourceHanSerifTC-Regular +Class: CNS +OTFname(10): SourceHanSerifTC-Regular.otf +OTCname(20): SourceHanSerif-Regular.ttc(3) + +Name: SourceHanSerifTC-Medium +Class: CNS +OTFname(10): SourceHanSerifTC-Medium.otf +OTCname(20): SourceHanSerif-Medium.ttc(3) + +Name: SourceHanSerifTC-SemiBold +Class: CNS +OTFname(10): SourceHanSerifTC-SemiBold.otf +OTCname(20): SourceHanSerif-SemiBold.ttc(3) + +Name: SourceHanSerifTC-Bold +Class: CNS +OTFname(10): SourceHanSerifTC-Bold.otf +OTCname(20): SourceHanSerif-Bold.ttc(3) + +Name: SourceHanSerifTC-Heavy +Class: CNS +OTFname(10): SourceHanSerifTC-Heavy.otf +OTCname(20): SourceHanSerif-Heavy.ttc(3) + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-toppan.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-toppan.dat new file mode 100644 index 0000000000..f4bc4a54fa --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-toppan.dat @@ -0,0 +1,69 @@ +# Toppan (including Fontworks MacOS version) + +### JAPANESE ### + +# Note about Mac (Mac OS X 10.6 -- macOS 10.13) +# ToppanBunkyuMincho-Regular.otf +# ToppanBunkyuGothic.ttc +# ToppanBunkyuMidashiMincho-ExtraBold.otf +# ToppanBunkyuMidashiGothic-ExtraBold.otf +# are bundled with macOS 10.12 -- 10.12.6 Sierra. +# ToppanBunkyuMinchoPr6N-Regular.otf +# ToppanBunkyuGothicPr6N.ttc +# ToppanBunkyuMidashiMinchoStdN-ExtraBold.otf +# ToppanBunkyuMidashiGothicStdN-ExtraBold.otf +# are bundled with macOS 10.13 High Sierra or later versions. + +# based on Morisawa Passport +# ("P" stands for pair kerning) + +Name: AP-OTF-BunkyuMinPr6N-R +PSName: PBunkyuMinPr6N-R +Class: Japan +OTFname: AP-OTF-BunkyuMinPr6N-R.otf + +Name: AP-OTF-BunkyuMinPr6-R +PSName: PBunkyuMinPr6-R +Class: Japan +OTFname: AP-OTF-BunkyuMinPr6-R.otf + +Name: AP-OTF-BunkyuMdMinStdN-EB +PSName: PBunkyuMdMinStdN-EB +Class: Japan +OTFname: AP-OTF-BunkyuMdMinStdN-EB.otf + +Name: AP-OTF-BunkyuMdMinStd-EB +PSName: PBunkyuMdMinStd-EB +Class: Japan +OTFname: AP-OTF-BunkyuMdMinStd-EB.otf + +Name: AP-OTF-BunkyuGoPr6N-DB +PSName: PBunkyuGoPr6N-DB +Class: Japan +OTFname: AP-OTF-BunkyuGoPr6N-DB.otf + +Name: AP-OTF-BunkyuGoPr6N-R +PSName: PBunkyuGoPr6N-R +Class: Japan +OTFname: AP-OTF-BunkyuGoPr6N-R.otf + +Name: AP-OTF-BunkyuGoPr6-DB +PSName: PBunkyuGoPr6-DB +Class: Japan +OTFname: AP-OTF-BunkyuGoPr6-DB.otf + +Name: AP-OTF-BunkyuGoPr6-R +PSName: PBunkyuGoPr6-R +Class: Japan +OTFname: AP-OTF-BunkyuGoPr6-R.otf + +Name: AP-OTF-BunkyuMdGoStdN-EB +PSName: PBunkyuMdGoStdN-EB +Class: Japan +OTFname: AP-OTF-BunkyuMdGoStdN-EB.otf + +Name: AP-OTF-BunkyuMdGoStd-EB +PSName: PBunkyuMdGoStd-EB +Class: Japan +OTFname: AP-OTF-BunkyuMdGoStd-EB.otf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-typebank.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-typebank.dat new file mode 100644 index 0000000000..d0fac9c1f7 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-typebank.dat @@ -0,0 +1,33 @@ +# TypeBank + +### JAPANESE ### + +# Note about Windows: +# UDDigiKyokashoN-R.ttc +# UDDigiKyokashoN-B.ttc +# are bundled with Windows 10 (Fall Creators Update). + +Name: UDDigiKyokashoN-R +Class: Japan +TTCname: UDDigiKyokashoN-R.ttc(0) + +Name: UDDigiKyokashoNP-R +Class: Japan +TTCname: UDDigiKyokashoN-R.ttc(1) + +Name: UDDigiKyokashoNK-R +Class: Japan +TTCname: UDDigiKyokashoN-R.ttc(2) + +Name: UDDigiKyokashoN-B +Class: Japan +TTCname: UDDigiKyokashoN-B.ttc(0) + +Name: UDDigiKyokashoNP-B +Class: Japan +TTCname: UDDigiKyokashoN-B.ttc(1) + +Name: UDDigiKyokashoNK-B +Class: Japan +TTCname: UDDigiKyokashoN-B.ttc(2) + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-ume.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-ume.dat new file mode 100644 index 0000000000..dc0e129b8f --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-ume.dat @@ -0,0 +1,106 @@ +# Ume-font (free) + +### JAPANESE ### + +# Note: +# in the current release (2016-09-03 umefont_660.7z), +# ume-tms.ttf and ume-pms.ttf ("studybook" family) share the same PSName +# as ume-tmo.ttf and ume-pmo.ttf; we don't add these database +# intentionally -- HY (2017/01/17) + +Name: Ume-Mincho +Class: Japan +Provides(140): Ryumin-Light +Provides(140): RyuminPro-Light +Provides(140): HiraMinProN-W3 +Provides(140): HiraMinPro-W3 +Provides(140): FutoMinA101-Bold +Provides(140): FutoMinA101Pro-Bold +Provides(140): HiraMinProN-W6 +Provides(140): HiraMinPro-W6 +Provides(140): MidashiMin-MA31 +Provides(140): MidashiMinPro-MA31 +TTFname(10): ume-tmo3.ttf +#TTFname(11): ume-tms3.ttf + +Name: Ume-Gothic +Class: Japan +Provides(140): GothicBBB-Medium +Provides(140): GothicBBBPro-Medium +Provides(140): HiraKakuProN-W3 +Provides(140): HiraKakuPro-W3 +Provides(140): FutoGoB101-Bold +Provides(140): FutoGoB101Pro-Bold +Provides(140): HiraKakuProN-W6 +Provides(140): HiraKakuPro-W6 +Provides(140): MidashiGo-MB31 +Provides(140): MidashiGoPro-MB31 +Provides(140): HiraKakuStdN-W8 +Provides(140): HiraKakuStd-W8 +Provides(140): Jun101-Light +Provides(140): Jun101Pro-Light +Provides(140): HiraMaruProN-W4 +Provides(140): HiraMaruPro-W4 +TTFname(10): ume-tgo4.ttf + +Name: Ume-Gothic-O5 +Class: Japan +TTFname(10): ume-tgo5.ttf + +Name: Ume-Gothic-C4 +Class: Japan +TTFname(10): ume-tgc4.ttf + +Name: Ume-Gothic-C5 +Class: Japan +TTFname(10): ume-tgc5.ttf + +Name: Ume-Gothic-S4 +Class: Japan +TTFname(10): ume-tgs4.ttf + +Name: Ume-Gothic-S5 +Class: Japan +TTFname(10): ume-tgs5.ttf + +Name: Ume-P-Mincho +Class: Japan +TTFname(10): ume-pmo3.ttf +#TTFname(11): ume-pms3.ttf + +Name: Ume-P-Gothic +Class: Japan +TTFname(10): ume-pgo4.ttf + +Name: Ume-P-Gothic-O5 +Class: Japan +TTFname(10): ume-pgo5.ttf + +Name: Ume-P-Gothic-C4 +Class: Japan +TTFname(10): ume-pgc4.ttf + +Name: Ume-P-Gothic-C5 +Class: Japan +TTFname(10): ume-pgc5.ttf + +Name: Ume-P-Gothic-S4 +Class: Japan +TTFname(10): ume-pgs4.ttf + +Name: Ume-P-Gothic-S5 +Class: Japan +TTFname(10): ume-pgs5.ttf + +Name: Ume-UI-Gothic +Class: Japan +TTFname(10): ume-ugo4.ttf + +Name: Ume-UI-Gothic-O5 +Class: Japan +TTFname(10): ume-ugo5.ttf + +Name: Ume-Hy-Gothic +Class: Japan +TTFname(10): ume-hgo4.ttf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-unfonts.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-unfonts.dat new file mode 100644 index 0000000000..1b1201b478 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-unfonts.dat @@ -0,0 +1,112 @@ +# Unfonts (free) + +### KOREAN ### + +# Note about TeX Live: +# Un*.ttf (23 files, excluding UnBom.ttf for license issue) +# are available as "unfonts-{core,extra}" package for free. + +# Unfonts-core (free) + +Name: UnBatang +Class: Korea +Provides(60): HYSMyeongJo-Medium +TTFname: UnBatang.ttf + +Name: UnBatang-Bold +Class: Korea +TTFname: UnBatangBold.ttf + +Name: UnDotum +Class: Korea +Provides(60): HYGoThic-Medium +TTFname: UnDotum.ttf + +Name: UnDotum-Bold +Class: Korea +TTFname: UnDotumBold.ttf + +Name: UnDinaru +Class: Korea +Provides(60): HYRGoThic-Medium +TTFname: UnDinaru.ttf + +Name: UnDinaru-Bold +Class: Korea +TTFname: UnDinaruBold.ttf + +Name: UnDinaru-Light +Class: Korea +TTFname: UnDinaruLight.ttf + +Name: UnGraphic +Class: Korea +TTFname: UnGraphic.ttf + +Name: UnGraphic-Bold +Class: Korea +TTFname: UnGraphicBold.ttf + +Name: UnGungseo +Class: Korea +TTFname: UnGungseo.ttf + +Name: UnPilgi +Class: Korea +TTFname: UnPilgi.ttf + +Name: UnPilgi-Bold +Class: Korea +TTFname: UnPilgiBold.ttf + +# Unfonts-extra (free) + +#Name: UnBom +#Class: Korea +#TTFname: UnBom.ttf + +Name: UnPen +Class: Korea +TTFname: UnPen.ttf + +Name: UnPenheulim +Class: Korea +TTFname: UnPenheulim.ttf + +Name: UnPilgia +Class: Korea +TTFname: UnPilgia.ttf + +Name: UnShinmun +Class: Korea +TTFname: UnShinmun.ttf + +Name: UnVada +Class: Korea +TTFname: UnVada.ttf + +Name: UnYetgul +Class: Korea +TTFname: UnYetgul.ttf + +Name: UnTaza +Class: Korea +TTFname: UnTaza.ttf + +# UnJamo... family has proportional metrics +Name: UnJamoBatang +Class: Korea +TTFname: UnJamoBatang.ttf + +Name: UnJamoDotum +Class: Korea +TTFname: UnJamoDotum.ttf + +Name: UnJamoNovel +Class: Korea +TTFname: UnJamoNovel.ttf + +Name: UnJamoSora +Class: Korea +TTFname: UnJamoSora.ttf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-wenquanyi.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-wenquanyi.dat new file mode 100644 index 0000000000..8d0f2264a8 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-wenquanyi.dat @@ -0,0 +1,56 @@ +# WenQuanYi (free) + +### SIMPLIFIED/TRADITIONAL CHINESE ### + +# GB +Name: WenQuanYiMicroHei +Class: GB +TTCname(10): wqy-microhei.ttc(0) + +# CNS +Name: WenQuanYiMicroHei-Adobe-CNS1 +Class: CNS +TTCname(10): wqy-microhei.ttc(0) + +# GB +Name: WenQuanYiMicroHeiMono +Class: GB +TTCname(10): wqy-microhei.ttc(1) + +# CNS +Name: WenQuanYiMicroHeiMono-Adobe-CNS1 +Class: CNS +TTCname(10): wqy-microhei.ttc(1) + +# GB +Name: WenQuanYiZenHei +Class: GB +TTCname(10): wqy-zenhei.ttc(0) +TTFname(20): wqy-zenhei.ttf + +# CNS +Name: WenQuanYiZenHei-Adobe-CNS1 +Class: CNS +TTCname(10): wqy-zenhei.ttc(0) +TTFname(20): wqy-zenhei.ttf + +# GB +Name: WenQuanYiZenHeiMono +Class: GB +TTCname(10): wqy-zenhei.ttc(1) + +# CNS: +Name: WenQuanYiZenHeiMono-Adobe-CNS1 +Class: CNS +TTCname(10): wqy-zenhei.ttc(1) + +# GB +Name: WenQuanYiZenHeiSharp +Class: GB +TTCname(10): wqy-zenhei.ttc(2) + +# CNS +Name: WenQuanYiZenHeiSharp-Adobe-CNS1 +Class: CNS +TTCname(10): wqy-zenhei.ttc(2) + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-yu-osx.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-yu-osx.dat new file mode 100644 index 0000000000..68866fe2f9 --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-yu-osx.dat @@ -0,0 +1,79 @@ +# Yu-fonts MacOS version + +### JAPANESE ### + +# Note about Mac (Mac OS X 10.6 -- macOS 10.13) +# Yu Gothic Medium.otf +# Yu Gothic Bold.otf +# are bundled with OS X 10.9 Mavericks -- macOS 10.12.6 Sierra. +# YuGothic-Medium.otf +# YuGothic-Bold.otf +# are bundled with macOS 10.13 High Sierra or later versions. +# Yu Mincho Medium.otf +# Yu Mincho Demibold.otf +# are bundled with OS X 10.9 Mavericks -- 10.10.5 Yosemite. +# YuMincho.ttc +# index 0: YuMin-Medium +# index 1: YuMin-Demibold +# index 2: YuMin_36pKn-Medium +# index 3: YuMin_36pKn-Demibold +# is bundled with OS X 10.11 -- 10.11.6 El Capitan. +# YuMincho.ttc +# index 0: YuMin-Medium +# index 1: YuMin-Demibold +# index 2: YuMin-Extrabold +# index 3: YuMin_36pKn-Medium +# index 4: YuMin_36pKn-Demibold +# index 5: YuMin_36pKn-Extrabold +# is bundled with macOS 10.12 Sierra or later versions. +# Kyokasho.ttc +# is bundled with macOS 10.12 Sierra or later versions. + +Name: YuMin-Medium +Class: Japan +Provides(80): Ryumin-Light +Provides(80): RyuminPro-Light +Provides(80): HiraMinProN-W3 +Provides(80): HiraMinPro-W3 +OTFname(20): Yu Mincho Medium.otf +OTFname(10): YuMin-Medium.otf + +Name: YuMin-Demibold +Class: Japan +Provides(80): FutoMinA101-Bold +Provides(80): FutoMinA101Pro-Bold +Provides(80): HiraMinProN-W6 +Provides(80): HiraMinPro-W6 +Provides(80): MidashiMin-MA31 +Provides(80): MidashiMinPro-MA31 +OTFname(20): Yu Mincho Demibold.otf +OTFname(10): YuMin-Demibold.otf + +Name: YuGo-Medium +Class: Japan +Provides(80): GothicBBB-Medium +Provides(80): GothicBBBPro-Medium +Provides(80): HiraKakuProN-W3 +Provides(80): HiraKakuPro-W3 +OTFname(20): Yu Gothic Medium.otf +OTFname(19): YuGothic-Medium.otf +OTFname(10): YuGo-Medium.otf + +Name: YuGo-Bold +Class: Japan +Provides(80): FutoGoB101-Bold +Provides(80): FutoGoB101Pro-Bold +Provides(80): HiraKakuProN-W6 +Provides(80): HiraKakuPro-W6 +Provides(80): MidashiGo-MB31 +Provides(80): MidashiGoPro-MB31 +Provides(80): HiraKakuStdN-W8 +Provides(80): HiraKakuStd-W8 +Provides(80): Jun101-Light +Provides(80): Jun101Pro-Light +Provides(80): HiraMaruProN-W4 +Provides(80): HiraMaruPro-W4 +OTFname(20): Yu Gothic Bold.otf +OTFname(19): YuGothic-Bold.otf +OTFname(10): YuGo-Bold.otf + diff --git a/fonts/utilities/cjk-gs-integrate/database/cjkgs-yu-win.dat b/fonts/utilities/cjk-gs-integrate/database/cjkgs-yu-win.dat new file mode 100644 index 0000000000..34d2e1be6f --- /dev/null +++ b/fonts/utilities/cjk-gs-integrate/database/cjkgs-yu-win.dat @@ -0,0 +1,119 @@ +# Yu-fonts Windows/MSOffice version + +### JAPANESE ### + +# Note about Windows: +# yugothi{b,c,l}.ttf +# yumin.ttf, yumin{db,l}.ttf +# are bundled with Windows 8.1. +# YuGoth{B,L,M,R}.ttc +# yumin.ttf, yumin{db,l}.ttf +# are bundled with Windows 10. +# YUGOTH{B,L,M,R}.TTC +# YUMIN.TTF, YUMIN{DB,L}.TTF +# are bundled with "Yu Font Pack for MSOffice 2010/2013". +# YuGothic.ttf +# YuGothic-Bold.ttf +# are bundled with VS2013 or later versions. + +# Note about MSOffice: +# YuGoth{B,L,M,R}.ttf +# yumin.ttf, yumin{db,l}.ttf +# are bundled with Office for Mac 2016. + +# In the following database, Yu Font Pack entries do not appear +# as separate lines, but they are implied by Windows 10 entries +# since win32 is case-insensitive. +# Currently we don't add VS2013 YuGothic.ttf (YuGothic) and +# YuGothic-Bold.ttf (YuGothic-Bold) on purpose, because these files +# are smaller than Windows 8.1 yugothic.ttf and yugothib.ttf + +Name: YuMincho-Regular +Class: Japan +Provides(90): Ryumin-Light +Provides(90): RyuminPro-Light +Provides(90): HiraMinProN-W3 +Provides(90): HiraMinPro-W3 +TTFname(20): yumin.ttf +#TTFname(50): YuMincho-Regular.ttf # never existed + +Name: YuMincho-Light +Class: Japan +TTFname(20): yuminl.ttf +#TTFname(50): YuMincho-Light.ttf # never existed + +Name: YuMincho-DemiBold +Class: Japan +Provides(90): FutoMinA101-Bold +Provides(90): FutoMinA101Pro-Bold +Provides(90): HiraMinProN-W6 +Provides(90): HiraMinPro-W6 +Provides(90): MidashiMin-MA31 +Provides(90): MidashiMinPro-MA31 +TTFname(20): yumindb.ttf +#TTFname(50): YuMincho-DemiBold.ttf # never existed + +Name: YuGothic-Regular +Class: Japan +Provides(90): GothicBBB-Medium +Provides(90): GothicBBBPro-Medium +Provides(90): HiraKakuProN-W3 +Provides(90): HiraKakuPro-W3 +TTFname(25): yugothic.ttf +TTCname(20): YuGothR.ttc(0) +TTFname(40): YuGothR.ttf +#TTFname(50): YuGothic-Regular.ttf # never existed + +Name: YuGothic-Medium +Class: Japan +TTCname(20): YuGothM.ttc(0) +TTFname(40): YuGothM.ttf + +Name: YuGothic-Light +Class: Japan +TTFname(25): yugothil.ttf +TTCname(20): YuGothL.ttc(0) +TTFname(40): YuGothL.ttf +#TTFname(50): YuGothic-Light.ttf # never existed + +Name: YuGothic-Bold +Class: Japan +Provides(90): FutoGoB101-Bold +Provides(90): FutoGoB101Pro-Bold +Provides(90): HiraKakuProN-W6 +Provides(90): HiraKakuPro-W6 +Provides(90): MidashiGo-MB31 +Provides(90): MidashiGoPro-MB31 +Provides(90): HiraKakuStdN-W8 +Provides(90): HiraKakuStd-W8 +Provides(90): Jun101-Light +Provides(90): Jun101Pro-Light +Provides(90): HiraMaruProN-W4 +Provides(90): HiraMaruPro-W4 +TTFname(25): yugothib.ttf +TTCname(20): YuGothB.ttc(0) +TTFname(40): YuGothB.ttf +#TTFname(50): YuGothic-Bold.ttf + +# Yu-UI-fonts (Windows only) + +Name: YuGothicUI-Semilight +Class: Japan +TTCname(20): YuGothR.ttc(1) + +Name: YuGothicUI-Regular +Class: Japan +TTCname(20): YuGothM.ttc(1) + +Name: YuGothicUI-Light +Class: Japan +TTCname(20): YuGothL.ttc(1) + +Name: YuGothicUI-Bold +Class: Japan +TTCname(20): YuGothB.ttc(1) + +Name: YuGothicUI-Semibold +Class: Japan +TTCname(20): YuGothB.ttc(2) + -- cgit v1.2.3