diff options
Diffstat (limited to 'language/chinese/CJK/cjk-4.8.5')
443 files changed, 82046 insertions, 0 deletions
diff --git a/language/chinese/CJK/cjk-4.8.5/ChangeLog b/language/chinese/CJK/cjk-4.8.5/ChangeLog new file mode 100644 index 0000000000..d5563c1f7b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/ChangeLog @@ -0,0 +1,2603 @@ +2021-10-16 Werner LEMBERG <wl@gnu.org> + + Version 4.8.5 released + ====================== + + Set version to 4.8.5. + + * doc/history.txt: Updated. + + Update headers in all text files. + +2021-10-16 Werner LEMBERG <wl@gnu.org> + + [hbf2gf] Update config and auxiliary scripts. + + * utils/hbf2gf/config.guess, utils/hbf2gf/config.sub, + utils/hbf2gf/install-sh, utils/hbf2gf/mkinstalldirs: Updated to + current versions. + + * utils/hbf2gf/configure: Regenerated with autoconf 2.71. + +2021-10-16 Werner Lemberg <wl@gnu.org> + + Update to current LaTeX version. + + Currently, there is a first-aid patch in the LaTeX kernel to make + the CJK package work. This commit moves the corresponding code to + here so that the first-aid stuff can be removed. + + * texinput/CJK.sty (\IfFormatAtLeastTF): New macro. + (\selectfont): Use the `\selectfont' hook for recent LaTeX versions. + +2018-11-25 Werner Lemberg <wl@gnu.org> + + Generate pinyin hyphenation pattern files from last commit. + + * utils/pyhyphen/hyph-zh-latn-pinyin.tex, + utils/pyhyphen/hyph-zh-latn-tonepinyin.tex: New files. + +2018-11-25 Werner Lemberg <wl@gnu.org> + + Rewrite pinyin hyphenation support. + + Investigation has shown that the apostrophe before a syllable + starting with `a', `e', or `o' should vanish if a line break occurs. + This commit fixes this bug: The apostrophe should now be entered + with the Babel shorthand "'; character ' itself is no longer part of + the hyphenation patterns. + + It also adds support for pinyin syllables with tone markers, to be + used with Unicode engines like XeTeX or luatex. + + Finally, the license for the resulting pattern files have been + changed from GPL to MIT to allow broader usage. + + * utils/pyhyphen/GNUmakefile: New file. Saying `make' will generate + the hyphenation pattern files `hyph-zh-latn-pinyin.tex' and + `hyph-zh-latn-tonepinyin.tex'. + + * utils/pyhyphen/hyph-zh-latn-pinyin.in, + utils/pyhyphen/make-patterns.sh: New auxiliary files. + + * utils/pyhyphen/pyhyph.tex: Removed. Obsolete. + + * utils/pyhyphen/pytestutf8.tex: New file to demonstrate patterns + for tone pinyin. + + * utils/pyhyphen/pinyin.c, utils/pyhyphen/pinyin.ldf, + utils/pyhyphen/pinyin.tr, utils/pytest.tex: Updated. + + * doc/pyhyphen.txt, MANIFEST: Updated. + +2016-12-27 Werner Lemberg <wl@gnu.org> + + * utils/lisp/emacs/cjk-enc.el (cjk-coding): Remove `chinese-big5'. + + Hin-Tak reports this doesn't work... + +2016-12-26 Hin-Tak Leung <htl10@users.sourceforge.net> + + [cjk-enc.el] Updated to work with Emacs 25 and later. + + In batch mode, `message' in Emacs 25+ obeys coding-system-for-write. + + http://git.savannah.gnu.org/cgit/emacs.git/commit/?h=emacs-25&id=c63246628461f748d66a8a07ba008de2e00fd33a + + `cjk-encode' can mis-behave and, at worst, crash from `message' + recursing. + + https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25203 + + The charset priority system introduced with Emacs 23+ changes + further in Emacs 25+. Charset `big5' has been updated (together + with `big5-hkscs') and now takes priority over the historical + `chinese-big5-2' and `chinese-big5-1'. + + http://git.savannah.gnu.org/cgit/emacs.git/commit/?h=emacs-25&id=9f89ea1f84dbf708228ced0202774b36f30f2b01 + http://git.savannah.gnu.org/cgit/emacs.git/commit/?h=emacs-25&id=49fa1919e9be863f22ec8042704bf3436d0ec26d + + Also worth noting is that, "Wrote output.cjk" is no longer seen with + Emacs 25+. + + http://git.savannah.gnu.org/cgit/emacs.git/commit/?h=emacs-25&id=d20f82e6f1ab902469723ebd530ca21bea9cc41b + + Tested against example/{Big5.tex, Big5vert.tex, CJKbabel.tex, + muletest.tex, rubytest.tex, thai.tex}, and LANG'ed non-'coding:'ed + big5 example, with emacs 21.4, 22.3, 23.3, 24.5 and 25.1. + + Thanks for advice from Eli Zaretskii. + + * utils/lisp/emacs/cjk-enc.el (cjk-enc-table, + cjk-format-spec-table): Add `big5' encoding. + (cjk-coding): Add `chinese-big5'. + (cjk-encode): Adjust Big5 language detection heuristics for Emacs + 25+; support `big5' encoding. + Use `terminal-coding-system' while emitting messages. + +2015-04-18 Werner LEMBERG <wl@gnu.org> + + Version 4.8.4 released + ====================== + + Set version to 4.8.4. + + * doc/history.txt: Updated. + + * Makefile (distsrc, distdoc): Use tar's `ustar' format. + Compress better. + + Update headers in all text files. + +2015-04-18 Werner LEMBERG <wl@gnu.org> + + [hbf2gf] Update aux scripts. + + * utils/hbf2gf/config.guess, utils/hbf2gf/config.sub, + utils/hbf2gf/install-sh: Updated to current versions. + +2014-08-31 Peter Breitenlohner <peb@mppmu.mpg.de> + + [hbf2gf]: Avoid undefined behaviour when `char' is signed. + + * utils/hbf2gf/hbf.c (match, add_property, skip_word, get_line): Use + proper cast. + * utils/hbf2gf/hbf2gf.w (fsearch, <Check for environment + variables>): Ditto. + +2014-08-31 Peter Breitenlohner <peb@mppmu.mpg.de> + + * utils/hbf2gf/hbf2hf.w (path_open): Drop unused variable. + +2014-06-28 Leo Liu <leoliu.pku@gmail.com> + + [CJKutf8] Fix space handing of non-CJK characters. + + * texinput/CJKutf8.sty (\CJK@XX, \CJK@XXp, \CJK@XXX, \CJK@XXXp): + Only apply \CJK@ignorespaces for CJK characters (or rather, only for + multibyte sequences that don't map to a `\u8:...' macro). + +2012-09-13 Werner LEMBERG <wl@gnu.org> + + * examples/CJKutf8.tex: Add Greek. + + This finally works due to the recent lgrx package which delivers + good Babel UTF8 support for LGR encoding. + + An unsolved problem yet, however, is proper cut-and-paste support. + While dvipdfmx properly generates CMaps for CJK encodings (even + for virtual fonts which pdftex doesn't handle at all), it doesn't + handle encodings like LGR correctly, something the `cmap' package + provides for pdflatex. + +2012-08-26 Werner LEMBERG <wl@gnu.org> + + * texinput/CJK.sty (\Unicode): Fix conditional to allow line breaks. + + Problem reported by Jinsong Zhao <jszhao@yeah.net>; it seems that + this bug has been there since from the beginning. + +2012-06-21 Werner LEMBERG <wl@gnu.org> + + Make some commands robust. + + * texinput/CJK.sty (\CJKtilde, \standardtilde, \CJKspace, + \CJKnospace): Use \DeclareRobustCommand. + +2012-05-20 Peter Breitenlohner <peb@mppmu.mpg.de> + + [hbf2gf] Build fix for 64-bit Mac OS X 10.7.3. + + * utils/hbf2gf/hbf2gf.w: Clang does not like non-static inline + functions as used here. While at it, all local functions are + declared static. + Do not extend #ifdef HAVE_EMTEXDIR...#endif over several sections. + +2012-05-08 Werner LEMBERG <wl@gnu.org> + + * texlive/cjk.pl: Add missing file. + +2012-05-07 Werner LEMBERG <wl@gnu.org> + + Version 4.8.3 released + ====================== + + Set version to 4.8.3. + + * doc/history.txt: Updated. + + * Makefile (CJK2DVI, LATEX2DVI): Set TFMFONTS. + + Update headers in all text files. + +2012-05-07 Werner LEMBERG <wl@gnu.org> + + * utils/hbf2gf/config.guess, utils/hbf2gf/config.sub, + utils/hbf2gf/install-sh, utils/hbf2gf/mkinstalldirs: Updated to + current versions. + + * utils/hbf2gf/configure: Regenerated with autoconf 2.69. + +2012-05-07 Werner LEMBERG <wl@gnu.org> + + [thai] Update to font-tlwg 0.5. + + * doc/thaifont.txt, utils/thaifont/tools/INSTALL: Updated. + + * utils/thaifont/texmf/fonts/tfm/public/norasi/ftnr8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/norasi/ftnb8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/norasi/ftnbo8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/norasi/ftno8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/garuda/fgdr8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/garuda/fgdb8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/garuda/fgdbo8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/garuda/fgdo8z.tfm: Regenerated + with fontinst. + +2012-05-05 Hin-Tak Leung <htl10@users.sourceforge.net> + + [cjk-enc.el] Accept Thai input in utf-8 encoding. + + * utils/lisp/emacs/cjk-enc.el: Treat Unicode 0x0EXX inputs as Thai. + + * examples/thai_utf8.tex: New sample file. + + * Makefile (DISTTARGETS): Add `thai_utf8.tex'. + (thai_utf8): New target. + + * MANIFEST, texlive/cjk.pl: Updated. + +2012-05-05 Werner LEMBERG <wl@gnu.org> + + Remove xCJK files. + + The stuff is obsolete and no longer works out of the box. Given + that there exists the `xeCJK' package, those files are really + useless today. + + * examples/xCJK.tex, texinput/UTF8/xUTF8.chr, + texinput/UTF8/xUTF8.enc, texinput/xCJK.sty, texinput/xpmC.chr, + texinput/xpmC.enc, doc/xCJK.txt: Removed. + + * MANIFEST, texlive/cjk.pl: Updated. + + * Makefile (XELATEX, xCJK): Removed. + (DISTTARGETS): Updated. + +2012-05-05 Qing Lee <sobenlee@gmail.com> + + [CJKfntef] Fix incompatibility with `ulem.sty'. + + * texinput/CJKfntef.tex (\CJKunderdot): Version 2010-01-21 of + `ulem.sty' silently adds a line which redefines \par (its author + says this was an oversight). This exhibits a bug in \CJKunderdot + which implicitly emits \par by inserting an \hskip command in + vertical mode. Simply omitting this \hskip fixes the issue. + +2012-04-20 Werner LEMBERG <wl@gnu.org> + + * texinput/Bg5/Bg5.cpx, texinput/JIS/JIS.cpx: Fix typos. + +2012-04-20 Werner LEMBERG <wl@gnu.org> + + * texinput/UTF8/zh-Hans.cpx: Synchronize. + +2012-04-20 Jiangsheng Yu <yujs@ittc.ku.edu> + + * texinput/GB/GB.cap, texinput/GB/GB.cpx: Improve. + +2011-12-16 Hin-Tak Leung <htl10@users.sourceforge.net> + + [cjk-enc.el] Make it work with emacs 23 and newer. + + Emacs 23+ introduces native Unicode support and uses a new charset + priority system: `char-charset' and `split-char' preferably now + return the Unicode charset and code points, respectively; + non-Unicode charsets and code points are only used if they have a + higher charset priority. On the other hand, information on the + original charset is preserved in the text property `charset'. + + Another change is the new charset/text-property called `tis620-2533' + (a superset of `ascii' and `thai-tis620'), introduced in emacs 23. + This has the tendency of swallowing up every ASCII character and + goes into an infinite loop with `examples/thai.tex', so we have to + handle this also. + + Tested with emacs 22.3 and 23.3, and + EMACS_PRETEST_24_0_92-142-g559675b on examples/{CJKbabel.tex, + muletest.tex, rubytest.tex, thai.tex}. + + * utils/lisp/emacs/cjk-enc.el [emacs version >= 23]: + `make-coding-system' is deprecated -- use `define-coding-system' + instead. + + Use the `charset' text property instead of the outcome of + `char-charset' to explicitly set the charset priority; this makes + `split-char' work as with emacs 22 and earlier. + + Set new optional `restriction' argument of `char-charset' to avoid + problems with `tis620-2533'. + +2011-12-03 Werner LEMBERG <wl@gnu.org> + + * examples/thai.tex: Improve prologue comments. + +2011-10-04 Werner LEMBERG <wl@gnu.org> + + [CEFconv, SJISconv] Document missing range 0xF0-0xFC. + + * utils/CEFconv/cefsconv.w, utils/SJISconv/sjisconv.w: Do it. + +2011-10-04 Peter Breitenlohner <peb@mppmu.mpg.de> + + [cjklatex] Don't include `kpathsea/win32lib.h'. + This is already done from `kpathsea/config.h'. + + * utils/cjklatex/cjklatex.c: Implement it. + +2011-10-04 Peter Breitenlohner <peb@mppmu.mpg.de> + + [cefconv] Various fixes. + + * utils/CEFconv/cef5conv.w: Fix output so that it really works as + bg5conv + cefconv. + * utils/CEFconv/cefsconv.w: Fix output so that it really works as + sjisconv + cefconv. + * utils/CEFconv/cefconv.w: Typo. + +2011-09-03 Peter Breitenlohner <peb@mppmu.mpg.de> + + [cjklatex] Introduce `LATEX' preprocessor macro. + + * utils/cjklatex/cjklatex.c (LATEX): New macro. Use it where + appropriate to remove the hardcoded usage of `latex'. For example, + LATEX can be defined as `pdflatex' (as done in TeXLive). + +2011-09-03 Peter Breitenlohner <peb@mppmu.mpg.de> + + [cjklatex] Various updates to stay in sync with TeXLive. + + * utils/cjklatex/cjklatex.c: Include kpathsea/win32lib.h instead of + win32lib.h directly. + Decorate with `const'. + (usage_str, CJKtable): Updated. + +2011-09-03 Werner LEMBERG <wl@gnu.org> + + [hbf2gf] Update manpage. + + * utils/hbf2gf/hbf2gf.1, doc/hbf2gf.txt: Remove information on + ancient kpathsea versions. + +2011-09-03 Peter Breitenlohner <peb@mppmu.mpg.de> + + [hbf2gf] Update kpathsea support. + + * utils/hbf2gf/hbf2gf.w (OLD_KPATHSEA, VERY_OLD_KPATHSEA): Removed. + (DllImport, KPSEDLL): Removed. + [HAVE_CONFIG_H]: Include `c-auto.h'. + +2011-09-03 Peter Breitenlohner <peb@mppmu.mpg.de> + + [hbf2gf] Decorate with `const'. + + * utils/hbf2gf/hbf2gf.w, utils/hbf2gf/hbf.c: Do it. + +2011-09-03 Peter Breitenlohner <peb@mppmu.mpg.de> + + Adapt utility programs to ANSI C. + + * utils/Bg5conv/bg5conv.w, utils/CEFconv/cefconv.w, + utils/CEFconv/cef5conv.w, utils/CEFconv/cefsconv.w, + utils/SJISconv/sjisconv.w, utils/extconv/extconv.w, + utils/hbf2gf/hbf.c, utils/hbf2gf/hbf2gf.w: Do it. + +2011-02-07 Werner LEMBERG <wl@gnu.org> + + * doc/CJK.txt: Document possible problems in `tabular' environment. + Problem reported by LI Ruo-Meng <15003990378@163.com>. + +2010-01-04 Werner LEMBERG <wl@gnu.org> + + * doc/CJK.txt: Document Babel bug related to ^^xx notation. + Problem reported by Peter Grzybek <peter.grzybek@uni-graz.at>. + +2009-11-07 Werner LEMBERG <wl@gnu.org> + + Fix line breaks with furigana. + + * texinput/ruby.txt (\ruby): If the furigana is smaller than + the base glyph, really behave as documented, this is, behave like an + ordinary CJK character. + +2009-08-25 Werner LEMBERG <wl@gnu.org> + + * examples/CJKfntef.tex: Updated. + +2009-08-25 Wenchang Sun <sunwch@hotmail.com> + + New macros for CJKfntef.sty. + + * texinput/CJKfntef.sty (\varCJKunderline, \CJKunderanyline, + \CJKunderanysymbol): New macros. + (\CJKunderdot): Fix interaction with XeTeX. + + * doc/history.txt: Document it. + +2009-08-25 Wenchang Sun <sunwch@hotmail.com> + + * texinput/CJKfntef.sty: Replace \global with \CJKf@global. + +2009-01-19 Werner LEMBERG <wl@gnu.org> + + * texlive/cjk-build.pl: Remove unused stuff. + From Karl Berry. + +2009-01-05 Werner LEMBERG <wl@gnu.org> + + * doc/CJK.txt: Document usage of CJKutf8.sty with beamer class. + +2008-12-29 Werner LEMBERG <wl@gnu.org> + + Version 4.8.2 released + ====================== + + Set version to 4.8.2. + + * doc/history.txt: Updated. + + Update headers in all text files. + +2008-12-29 Werner LEMBERG <wl@gnu.org> + + * utils/hbf2gf/config.guess, utils/hbf2gf/config.sub, + utils/hbf2gf/install-sh, utils/hbf2gf/mkinstalldirs: Updated to + current versions. + + * utils/hbf2gf/configure: Regenerated with autoconf 2.63. + +2008-12-29 Werner LEMBERG <wl@gnu.org> + + * doc/TeXLive.txt: Replaced with... + * texlive/*.pl: These new files which define the various TeXLive + packages derived from the CJK bundle. + + * MANIFEST: Updated. + +2008-12-28 Werner LEMBERG <wl@gnu.org> + + * doc/history.txt: Updated. + + * doc/CJKnumb.txt: New file. + + * MANIFEST: Updated. + +2008-12-28 Werner LEMBERG <wl@gnu.org> + + Rename garuda & norasi stuff to garuda-c90 & norasi-c90. + + * MANIFEST, doc/thaifont.txt, utils/thaifont/tools/INSTALL: Updated. + + * utils/thaifont/texmf/dvips/garuda/config.garuda: Moved to... + * utils/thaifont/texmf/dvips/garuda-c90/config.garuda-c90: This + file. Updated. + * utils/thaifont/texmf/dvips/norasi/config.norasi: Moved to... + * utils/thaifont/texmf/dvips/norasi-c90/config.norasi-c90: This + file. Updated. + * utils/thaifont/texmf/fonts/map/dvips/garuda/garuda.map: Moved + to... + * utils/thaifont/texmf/fonts/map/dvips/garuda-c90/garuda-c90.map: + This file. + * utils/thaifont/texmf/fonts/map/dvips/norasi/norasi.map: Moved + to... + * utils/thaifont/texmf/fonts/map/dvips/norasi-c90/norasi-c90.map: + This file. + * utils/thaifont/texmf/fonts/tfm/public/garuda/*: Moved to... + * utils/thaifont/texmf/fonts/tfm/public/garuda-c90/*: This + directory. + * utils/thaifont/texmf/fonts/tfm/public/norasi/*: Moved to... + * utils/thaifont/texmf/fonts/tfm/public/norasi-c90/*: This + directory. + * utils/thaifont/tools/garuda.fontinst: Moved to... + * utils/thaifont/tools/garuda-c90.fontinst: This file. + * utils/thaifont/tools/norasi.fontinst: Moved to... + * utils/thaifont/tools/norasi-c90.fontinst: This file. + +2008-12-28 Werner LEMBERG <wl@gnu.org> + + * contrib/wadalab/DNP.txt: Renamed to... + * contrib/wadalab/wadalab.txt: This. + * MANIFEST: Updated. + +2008-12-28 Werner LEMBERG <wl@gnu.org> + + Use same font names as in thailatex. + + * doc/thaifont.txt, + utils/thaifont/texmf/fonts/map/dvips/garuda/garuda.map, + utils/thaifont/texmf/fonts/map/dvips/norasi/norasi.map: Updated. + + + Update to thailatex 0.4.2. + + * doc/thaifont.txt, + utils/thaifont/texmf/fonts/tfm/public/norasi/ftnr8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/norasi/ftnb8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/norasi/ftnbo8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/norasi/ftno8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/garuda/fgdr8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/garuda/fgdb8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/garuda/fgdbo8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/garuda/fgdo8z.tfm: Regenerated + with fontinst. + +2008-11-25 Werner LEMBERG <wl@gnu.org> + + * texinput/CJKnumb.sty: Use U+3007 (IDEOGRAPHIC NUMBER ZERO), + not U+25CB (WHITE CIRCLE). + + * texinput/UTF8/c70bkai.fdx, texinput/UTF8/c70bsmi.fdx: Map U+25CB + to U+3007. + * texinput/UTF8/c70gbsn.fdx, texinput/UTF8/c70gkai.fdx, + texinput/UTF8/c70mj.fdx: New files which do the same. + + * MANIFEST: Updated. + +2008-11-25 Werner LEMBERG <wl@gnu.org> + + * texinput/CJK.sty (\Unicode): Use vertical glyph representation + forms. + +2008-11-25 Werner LEMBERG <wl@gnu.org> + + * texinput/CJKnumb.sty (\CJKdigits*): New command to use traditional + form of glyph zero. + + * doc/history.txt: Updated. + +2008-10-01 Werner LEMBERG <wl@gnu.org> + + * *.fd: Add \CJKnormal to all font families which use \CJKbold. This + is necessary because NFSS doesn't call \selectfont if a font gets + substituted by another one (and \selectfont resets the \CJK@bold@ + flag). Here an example (where `gbsn' uses \CJKbold for boldface + emulation): + + \begin{CJK*}{GB}{gbsn} + {\bf\CJKchar{"D6}{"D0}} + {\em\CJKchar{"D6}{"D0}} + \end{CJK*} + +2008-09-23 Werner LEMBERG <wl@gnu.org> + + * utils/subfonts/subfonts.pe: Fix error message for too-old + FontForge versions. + +2008-08-21 Werner LEMBERG <wl@gnu.org> + + * utils/subfonts/subfonts.pe: Handle CID-keyed fonts. + +2008-08-10 Werner LEMBERG <wl@gnu.org> + + Version 4.8.1 released + ====================== + + Set version to 4.8.1. + + * doc/history.txt, README: Updated. + + * doc/TeXLive.txt: Updated. + PDF man pages are now autogenerated in TeXLive. + + Update headers in all text files. + + * utils/hbf2gf/config.sub: Updated to current version. + +2008-08-03 Werner LEMBERG <wl@gnu.org> + + Add some missing files. Found by Daniel Flipo. + + * texinput/Bg5/c00bkai.fd, texinput/GB/c10gkai.fd, + texinput/GB/c10gkai.fdx: New files. + + * MANIFEST: Updated. + +2008-07-11 Werner LEMBERG <wl@gnu.org> + + Make macros in pinyin.sty robust. + + Problem reported by Denis Roegel <roegel@loria.fr>. + + * texinput/pinyin.sty (\py@macron): Make it work again with Plain + TeX. + (\py@@@): No longer needed. + (\py@): Do what \py@@@ did formerly. + (py@DRC): New macro to make the pinyin syllables robust. + Update all pinyin syllable macro definitions to use it. + + * doc/history.txt: Updated. + +2008-07-11 Werner LEMBERG <wl@gnu.org> + + Incorporate Wen-Chang's CJKspace package. + + * texinput/CJKspace.sty, examples/CJKspace.tex, doc/CJKspace.txt: + New files. + * texinput/CJK.sty (\CJK@@@): New signature macro for CJKspace.sty. + (\CJK@namedef, \CJK@namepdef, \CJK@nameppdef, \CJK@namepppdef, + \CJK@nameppppdef): Use it. + + * Makefile, doc/history.txt, MANIFEST: Updated. + +2008-05-22 Werner LEMBERG <wl@gnu.org> + + Version 4.8.0 released + ====================== + + Set version to 4.8.0. + + * doc/history.txt, doc/INSTALL, doc/TeXLive.txt, README: Updated. + + Update headers in all text files. + + * utils/hbf2gf/config.guess, utils/hbf2gf/config.sub: Updated to + current versions. + + * utils/hbf2gf/configure: Regenerated with autoconf 2.62. + +2008-05-18 Werner LEMBERG <wl@gnu.org> + + * Makefile (DISTDIRS): We are now using git, not CVS. + +2008-05-18 Werner LEMBERG <wl@gnu.org> + + * doc/history.txt: Mention xCJK.sty. + +2008-05-17 Werner LEMBERG <wl@gnu.org> + + * texinput/CJK.sty (\CJK@UnicodeEnc): New macro (so that xCJK.sty + can overwrite it). + * texinput/CJKnumb.sty: Use it. + + * texinput/xCJK.sty: Simplify -- unicode mappings to other encodings + are no longer supported (since it hasn't worked for Big5 or GBK + anyway). + + (\xCJK@xUTF): Removed. + (\CJKsymbol): Simplified. + (\toutf@XXX): Removed. + (\xCJK@CJKenc, \CJKenc): Removed. + (\CJK@envStart): Produce error if encoding is not `UTF8'. + Simplified. + (\xCJK@setenc, \CJK@xpmC, \xCJK@enc@UTF8, \xCJK@xUTF8@hook): + Removed. + (\CJK@xUTF8@hook, \CJK@UnicodeEnc): New macros. + (\xCJK@@char): Removed. + (\CJK@XXpdf): Simplified. + (\CJK@@XXpdf): Removed. + + Add support for non-BMP Unicode. + + (\CJK@nameppppdef): New macro. + (\xCJK@char): Redefined. + (\xCJK@@char, \xCJK@@@char): New macros. + (\CJK@XXp, \CJK@XXXp): Redefined. + (\CJK@XXXXp): New macro. + + xdvipdfmx automatically handles UTF-8 encoded bookmarks. + + (\xCJK@four, \xCJK@@@char, <\if@filesw>): Removed. + + (\special): Use \utfout. + +2008-05-12 Danai SAE-HAN <danai.sae-han@edpnet.be> + + * utils/hbf2gf/hbf2gf.1: Replace some `-' with `\-'. + +2008-03-10 Werner LEMBERG <wl@gnu.org> + + * utils/hbf2gf/hbf2gf.1: s|-|\-| where appropriate. + +2008-03-09 Werner LEMBERG <wl@gnu.org> + + * Makefile (XELATEX): Call xelatex twice. + (manpages): Increase font size to 11pt for DVI and PDF output. + +2008-03-09 Werner LEMBERG <wl@gnu.org> + + Add support for EUC-JP with DNP font encoding. + + * texinput/CJK.enc (\CJK@@@EUC-JPdnp@hook, \CJK@EUC-JPdnp@enc): New + macros. + + * texinput/JIS/EUC-JPdnp.enc: New file. + + * texinput/JIS/EUC-JP.chr (\CJK@shiftchar): Define \CJK@plane as + empty. + + * doc/history.txt, MANIFEST: Updated. + +2008-03-09 Werner LEMBERG <wl@gnu.org> + + Make \CJK@bold work with C49 encoding too. The idea is to handle + the font as a CJK font but with \CJK@plane set to empty. + + * texinput/SJIS/SJIS.chr, texinput/SJIS/SJIdnp.chr (\CJK@sjischar): + Define \CJK@plane as empty. + + * texinput/SJIS/c49song.fd: Use `CJK' size function. + + * doc/history.txt: Updated. + +2008-03-03 Werner LEMBERG <wl@gnu.org> + + * texinput/CJKutf8.sty, texinput/xCJK.sty, + texinput/mule/MULEenc.sty: Use \ProvidesPackage, not \ProvidesFile. + +2008-03-03 Werner LEMBERG <wl@gnu.org> + + Better control for \baselinestretch with CJKvert.sty. + + * texinput/CJKvert.sty (usebaselinestretch): New option. + (\CJKbaselinestretch): New macro. + + * doc/history.txt, doc/vertical.txt: Document it. + +2008-02-11 Werner LEMBERG <wl@gnu.org> + + * doc/xCJK.txt: New file. + * MANIFEST: Updated. + +2008-02-11 Werner LEMBERG <wl@gnu.org> + + * doc/fonts.txt: Document installation of cyberbit.ttf. + +2008-02-05 Werner LEMBERG <wl@gnu.org> + + Add SUN Wen-Chang's xCJK bundle. + + * examples/xCJK.tex, texinput/UTF8/xUTF8.chr, + texinput/UTF8/xUTF8.enc, texinput/xCJK.sty, texinput/xpmC.chr, + texinput/xpmC.enc: New files. + + * MANIFEST: Updated. + + * Makefile (XELATEX): New macro. + (xCJK): New target. + (CJK2DVI, LATE2DVI): Simplify. + +2008-01-15 Gernot Hassenpflug <aikishugyo@gmail.com> + + * contrib/wadalab/c70goth.fdx, contrib/wadalab/c70min.fdx, + contrib/wadalab/c70maru.fdx: Rotate more glyphs for vertical + typesetting. + Shift small kana for vertical typesetting. + Other minor improvements. + +2007-12-27 Werner LEMBERG <wl@gnu.org> + + * utils/subfonts/vertical.pe, utils/subfonts/vertref.pe: Abort if no + vertical glyph representation forms are available. + +2006-12-05 Werner LEMBERG <wl@gnu.org> + + Make pinyin syllables work with \MakeUppercase and \MakeLowercase. + + * pinyin.sty: Almost completely rewrite macro logic to replace e.g. + `\py@@@a' with `\py@ a' so that the argument gets handled by + \MakeUppercase. + +2006-12-04 Werner LEMBERG <wl@gnu.org> + + Make pinyin syllables work with hyperref bookmarks. + + * pinyin.sty: Use \AtBeginDocument hook to add missing characters to + PU encoding needed for pinyin syllables. + Use \AtBeginDocument hook to set up some replacement macros for + bookmarks. + (\py@hr@macron, \py@hr@v): New replacement macros for + bookmarks. + +2007-11-23 Werner LEMBERG <wl@gnu.org> + + * texinput/CJK.enc: Add punctuation tables for GBK encoding. + +2007-11-06 Werner LEMBERG <wl@gnu.org> + + * utils/subfonts/subfonts.pe, utils/subfonts/vertical.pe, + utils/subfonts/vertref.pe: Put current time stamp into copyright + string. + Need FontForge 20071105 or newer. + +2007-11-02 SUN Wenchang <sunwch@hotmail.com> + + * texinput/CJKfntef.sty (\CJK@preUnderdot): Use \cdot (in math mode). + (\CJKxout): Use `/' in math mode. + (\CJKunderdotbasesep, \CJKunderdotsep): Adjusted. + +2007-10-26 Werner LEMBERG <wl@gnu.org> + + * utils/subfonts/vertical.pe: Use glyph names of the horizontal + representation glyphs with an appended `.vert'. This makes dvipdfmx + automatically create a correct /ToUnicode CMap. + +2007-10-25 Werner LEMBERG <wl@gnu.org> + + Provide final fix for patch 2007-10-04. + + * utils/subfonts/makefdx.pl: Provide flag `-u' to produce a CMap + macro in the FDX file. + Don't specify FDX file directly on the command line but give family + name and encoding separately which are then concatenated to give the + FDX name (we need the family name separately). + Add code to produce a macro which provides a /ToUnicode CMap entry + as needed by pdfTeX. + Fix loop to not omit last glyph. + + * texinput/UTF8/c70bsmi.fdx, texinput/UTF8/c70bkai.fdx: Regenerated. + These now provide the macros \CJK@cmap@bsmiv and \CJK@cmap@bkaiv, + respectively. + + * texinput/CJKutf8.sty (\pickup@font): Call `\CJK@cmap@...' if it + exists. + +2007-10-04 Werner LEMBERG <wl@gnu.org> + + * texinput/CJKutf8.sty (\pickup@font): Disable generation of + ToUnicode cmap for `v' subfont (which holds vertical representation + glyphs). This is a temporary hack; the right solution is to modify + makefdx.pl so that it creates a ToUnicode macro for the specific + font; \CJK@addcmap should be then modified to use this macro instead + of autogenerating a cmap. + + Problem reported by Edward G.J. Lee. + +2007-09-10 Werner LEMBERG <wl@gnu.org> + + * utils/subfonts/vertical.pe, utils.subfonts/vertref.pe: Adapt to + FontForge version 2007-Sep-10 and newer. + +2007-07-26 Gernot Hassenpflug <gernot@nict.go.jp> + + * contrib/wadalab/c70goth.fdx, contrib/wadalab/c70min.fdx, + contrib/wadalab/c70maru.fdx: New files to support vertical writing + with Unicode encoded Wadalab fonts. + +2007-07-07 Werner LEMBERG <wl@gnu.org> + + * texinput/pinyin.sty (\ding): Rename to... + (\py@ding): This to make \ding work actually. + +2007-05-04 Werner LEMBERG <wl@gnu.org> + + * texinput/CJKvert.sty (\CJKsymbol): Honour \CJKhdef{offset}{...}. + * doc/fdxfiles.txt, doc/history.txt: Document it. + +2007-04-08 Werner LEMBERG <wl@gnu.org> + + * utils/pyhyphen/pyhyph.tex: Replace latin-1 characters with + ^^xx sequences. Suggested by David Kastrup. + + * doc/cjk-enc.txt: Document special space handling for Emacs quail + input methods. + +2006-11-06 Werner LEMBERG <wl@gnu.org> + + * texinput/pinyin.sty (\py@macron, \py@@@v): Support T5 encoding. + * doc/history.txt: Document it. + +2006-10-31 Werner LEMBERG <wl@gnu.org> + + * doc/CJK.txt, doc/CJKutf8.txt: Mention Byte Order Mark in UTF-8. + +2006-10-19 Werner LEMBERG <wl@gnu.org> + + * doc/TeXLive.txt, MANIFEST: Minor fixes. + + * Makefile (DVI2PDF): Add argument for paper format. + (CONVERT, MULE, LATEX): Add optional argument for paper format; + default to `letter'. + (manpages, cweb): Use letter paper format. + (READMEb5): Use A4 paper. + + * examples/README: Minor fix. + +2006-10-17 Werner LEMBERG <wl@gnu.org> + + Version 4.7.0 released + ====================== + + Set version to 4.7.0. + + * doc/history.txt, doc/INSTALL, doc/TeXLive.txt, README: Updated. + + Update headers in all text files. + +2006-10-09 Werner LEMBERG <wl@gnu.org> + + * Makefile (abs-distdir): Fix assignment. + (distdoc): Remove generated C files. + + * utils/hbf2gf/hbf2gf.1: s/`/\(oq/ and s/'/\(cq/ where appropriate. + +2006-10-06 Werner LEMBERG <wl@gnu.org> + + * doc/CJKutf8.txt, doc/history.txt: Minor additions. + * MANIFEST: Sorted and updated. + +2006-10-05 Werner LEMBERG <wl@gnu.org> + + * texinput/CJKutf8.sty (\CJK@surr): Use \expandafter to make + \uppercase work actually. + + * texinput/CJK.sty (\CJK@makeActive, \CJK@makeInactive): Handle 0x80 + also (which is needed for UTF8). + +2006-10-05 Werner LEMBERG <wl@gnu.org> + + * texinput/CJKutf8.sty (\CJK@surr): New function. + (\CJK@addcmap): Use \CJK@surr so that values > U+FFFF are correctly + represented as surrogates. + +2006-09-30 Werner LEMBERG <wl@gnu.org> + + In CJKutf8.sty, add ToUnicode cmaps for pdfTeX. Note, however, that + it currently fails with virtual fonts: pdftex 3.141592-1.30.4-2.2 + can't resolve them to the used base fonts. + + * texinput/CJKutf8.sty: Require ifpdf package. + (\pickup@font) [\ifpdf]: Redefine, adding a call to CJK@addcmap. + (\CJK@addcmap) [\ifpdf]: New function. + + * doc/history.txt: Updated. + +2006-09-16 Werner LEMBERG <wl@gnu.org> + + * texinput/CJK.sty (\CJK@ifundefined): New macro. + Update all affected files where possible to use it instead of + \@ifundefined. This fixes a bug reported by Danai which made + \chapter work in the `scrartcl' article class (instead of + reporting an error) after using a CJK caption file. + + * *.cap, *.cpx: Don't redefine \thepart but use its previous + definition for \partformat. This fixes a bug reported by Danai + which produced bad TOC entries. + + * doc/history.txt: Updated. + +2006-09-12 Werner LEMBERG <wl@gnu.org> + + * texinput/UTF8/ko-Hanj.cpx: Renamed to... + * texinput/UTF8/ko-Hani.cpx: This to use the correct ISO 15924 + script tag. + + * doc/history.txt, doc/CJK.txt: Updated. + +2006-09-08 Werner LEMBERG <wl@gnu.org> + + Add caption files for UTF8 encoding. + + * texinput/UTF8/{ja,ko-Hang,ko-Hang2,ko-Hanj,zh-Hans,zh-Hant}.cap: + New files. + + * doc/history.txt, doc/CJK.txt: Mention them. + +2006-08-31 Werner LEMBERG <wl@gnu.org> + + Reimplement the \CJKbold mechanism to call the last argument of + \DeclareFontShape each time the font is selected only if a CJK size + function has been used. This fixes shape declarations like the ones + in the fourier package which rely on being called only once. + + * texinput/CJK.sty (\CJK@curr@fontshape): New macro. + (\CJK@empty, \CJK@fixed, \CJK@sub, \CJK@DNPgen, \CJK@DNP): Define a + macro where the name is the argument of \CJK@curr@fontshape. + (\selectfont): Execute macro where the name is the argument of + \CJK@curr@fontshape only if it exists. + + * doc/history.txt, doc/CJK.txt: Mention it. + +2006-08-29 Danai SAE-HAN <danai.sae-han@skynet.be> + + * utils/subfonts/hlatex2agl.pl: Make it accept a third parameter + which specifies the used SFD file. + (process_afmfile, process_pfbfile): Add minor tweaks to handle fonts + generated with other tools than FontForge. + +2006-08-29 Werner LEMBERG <wl@gnu.org> + + * utils/Bg5conv/bg5conv.w, utils/extconv/extconv.w, + utils/hbf2gf/hbf2gf.w, utils/CEFconv/cefconv.w, + utils/CEFconv/cef5conv.w, utils/CEFconv/cefsconv.w, + utils/SJISconv/sjisconv.w: s/@/@@/ in email address. + + * utils/Bg5conv/bg5conv.c, utils/extconv/extconv.c, + utils/hbf2gf/hbf2gf.c, utils/CEFconv/cefconv.c, + utils/CEFconv/cef5conv.c, utils/CEFconv/cefsconv.c, + utils/SJISconv/sjisconv.c: Removed. These files are now generated + by the Makefile. + + * Makefile (version): Set to 4.7.0. + (CJK2DVI, LATEX2DVI): Add `texlive' subdirectory + (distsrc): Build .c from .w files. + +2006-08-28 Werner LEMBERG <wl@gnu.org> + + * texinput/*: Add various replacement files for TeXLive. + +2006-08-17 Werner LEMBERG <wl@gnu.org> + + * doc/CJK.txt: Mention problem with fourier.sty. + +2006-08-01 Werner LEMBERG <wl@gnu.org> + + * doc/cjk-enc.txt: Mention problems with UTF-8. + +2006-07-30 Werner LEMBERG <wl@gnu.org> + + * contrib/wadalab/DNP.txt: Fix patch for wftodm.c. + +2006-04-25 Danai SAE-HAN <danai.sae-han@skynet.be> + + * <many files>: Add GPL. + * MANIFEST: New file. + +2006-03-25 Werner LEMBERG <wl@gnu.org> + + * texinput/CJKutf8.sty (\pdfstringdefPreHook): Don't overwrite but + prepend to this macro. + +2006-03-23 Werner LEMBERG <wl@gnu.org> + + * utils/subfonts/hlatex2agl.pl: New script (which has been used + to create the Korean fonts in TeXLive 2005). + + + * texinput/CJKutf8.sty: Add support for Unicode bookmarks. + (\CJK@UnicodeFourBytesFirst, \CJK@UnicodeFourBytesSecond, + \CJK@UnicodeFourBytesThird, \CJK@UnicodeThreeBytesFirst, + \CJK@UnicodeThreeBytesSecond, \CJK@UnicodeTwoBytesFirst, + \CJK@UnicodeLast): New macros to convert UTF-8 into UTF-16BE. + (\CJK@XXpdf, \CJK@XXXpdf, \CJK@XXXXpdf): Replacements for the + \CJK@XX, \CJK@XXX, and \CJK@XXXX macros, respectively. + (\pdfstringdefPreHook): Activate them. + +2006-03-22 Werner LEMBERG <wl@gnu.org> + + * texinput/KS/HLaTeX/c63sh.fd, texinput/KS/HLaTeX/c64sh.fd, + texinput/KS/HLaTeX/c65sh.fd: Fix font declaration. Bug reported by + Danai SAE-HAN <danai.sae-han@skynet.be>. + +2006-02-20 Werner LEMBERG <wl@gnu.org> + + * texinput/UTF8/UTF8.bdg: Bugfix: Handle 0x80 also. + + * doc/history.txt: Mention it. + +2006-02-09 Werner LEMBERG <wl@gnu.org> + + Support complete Unicode range (up to U+10FFFF). + + * texinput/UTF8/UTF8.bdg: Handle leading characters 0xF0-0xF4. + + * texinput/UTF8/UTF8.enc: Ditto. + + * texinput/UTF8/UTF8.chr (\CJK@altxchar): New macro for four-byte + Unicode values. + + * texinput/CJK.enc (\CJK@unicodexError): New error macro. + + * texinput/CJK.sty (\CJK@numbxToHex): New auxiliary macro to convert + a number to a four-digit hex number string. + (\Unicode): Accept values greater than U+FFFF. + + * doc/command.txt, doc/CJK.txt: Document extended \Unicode (and + \CJKchar) command. + * doc/history.txt: Updated. + +2006-01-23 Werner LEMBERG <wl@gnu.org> + + * texinput/CJK.enc (\CJK@HK@enc): Load `HK' encoding, not `Bg5'. + Use \def, not \@namedef. + + * doc/CJK.txt: Mention `HKtext' environment. + +2006-01-22 Werner LEMBERG <wl@gnu.org> + + Add new encoding `HK' (C05) for Hong Kong's HKSCS-2004. + + * texinput/Bg5/HK.enc, texinput/Bg5/c05song.fd: New files. + * texinput/CJK.enc: Add support for `HK' (C05). + * texinput/CJKnumb.sty: Handle `HK'. + + * doc/CJK.txt: Bg5+ *cannot* be used for HKSCS. Fix this. + * doc/history.txt: Document `HK' encoding. + +2006-01-19 Werner LEMBERG <wl@gnu.org> + + * doc/CJK.txt: Mention usage of Bg5+ for HKSCS-2001/HKSCS-2004. + +2006-01-04 Werner LEMBERG <wl@gnu.org> + + * texinput/pinyin.sty (\PYding): New \let. + (\PYactivate, \PYdeacticate): Handle \ding (from pifont.sty). + + * doc/pinyin.tex: Document possible problems with pifont.sty. + + * doc/history.txt: Updated. + +2005-12-27 Werner LEMBERG <wl@gnu.org> + + * utils/hbf2gf/cfg/csso12.cfg: Fix typo. + +2005-10-31 Danai SAE-HAN <danai.sae-han@skynet.be> + + * utils/subfonts/makefdx.pl: Provide header for output. + Add \CJKvlet lines. + +2005-08-19 Werner LEMBERG <wl@gnu.org> + + * doc/TeXLive.txt: New file, describing the relationship between + CJK files and TeXLive packages. + +2005-08-18 Werner LEMBERG <wl@gnu.org> + + * texinput/mule/MULEenc.sty: Define \CJK@verbatim correctly if not + already defined. Reported by Andre Dierker. + + * doc/pdf/*: Move to... + * doc/pdfhowto/*: This. + +2005-08-11 Werner LEMBERG <wl@gnu.org> + + Version 4.6.0 released + ====================== + + Set version to 4.6.0. + + * doc/history.txt, doc/INSTALL, Makefile (version): Updated. + + Update headers in all text files. + +2005-08-10 Werner LEMBERG <wl@gnu.org> + + * doc/CEF.txt, doc/CJK.txt, doc/CJKutf8.txt, doc/INSTALL, + doc/TDS.txt, doc/cjk-enc.txt, doc/commands.txt, doc/dvidrv.txt, + doc/fonts.txt, doc/hbf2gf.txt, doc/history.2_5, doc/history.txt, + doc/pinyin.txt, doc/pyhyphen.txt, doc/ruby.txt, doc/thaifont.txt, + doc/vertical.txt: Updated and revised. + +2005-08-05 Werner LEMBERG <wl@gnu.org> + + * COPYING: Updated to new FSF address. + +2005-08-05 Werner LEMBERG <wl@gnu.org> + + After email exchange with Ross Paterson, the old (too restrictive) + license of the hbf module has been changed to the three-clause BSD + license -- Ross no longer maintains and distributes this code. + + * utils/hbf2gf/hbf.c: Change license to BSD. + (strdup) [WIN32]: Define. Change taken from teTeX distribution. + + * utils/hbf2gf/hbf.h: Change license to BSD. + + * utils/hbf2gf/config.guess, utils/hbf2gf/config.sub: Updated to + current versions. + + * utils/hbf2gf/configure: Regenerated with autoconf 2.59b. + +2005-08-04 Werner LEMBERG <wl@gnu.org> + + Update files to compile with the forthcoming TeXLive 2005. + + * doc/README: Updated, extended. + + * examples/muletest.tex: Updated to new VnTeX (for Vietnamese). + Use type1ec.sty. + Suppress hyphenation. + + * examples/CJKbabel.tex: Don't use t5.sty but `vietnam' option of + babel. + Use type1ec.sty. + + * examples/CJKmixed.tex: Define and use `TChinese' environment. + Call \CJKhorz at the beginning of document. + + * examples/CJKutf8.tex: Don't use cyberbit but the new Unicode + (virtual) fonts of gbsn, bsmi, and mj. + + * texinput/Bg5/c00bsmi.fdx: Updated to new bsmi vertical glyph font. + + * texinput/Bg5/c00bkai.fdx: New file. + + * texinput/UTF8/c70bkai.fd, texinput/UTF8/c70bkai.fdx, + texinput/UTF8/c70bsmi.fd, texinput/UTF8/c70bsmi.fdx, + texinput/UTF8/c60gbsn.fd, texinput/UTF8/c70gkai.fd, + texinput/UTF8/c70mj.fd: New files. + + * utils/pyhyphen/pytest.tex: Usae type1ec.sty. + + * Makefile: Add rules for new example and documentation files. + (version): Set top 4.5.3. + (CJK2DVI, LATEX2DVI): Add `utils/pyhyphen' to TEXINPUTS variable. + (DVI2PS): Replace it with... + (DVI2PDF): New variable. + Update all callers. + (MULE): Add path to `cjk-enc.el' while calling emacs. + (DISTTARGETS): Add new example and documentation files. + (predistdoc): Don't create `ps' but `pdf' subdirectories. + (manpages): Add `-ww' option to groff. + Don't create `ps' but `pdf' files. + (cweb): Don't create `ps' but `pdf' file. + +2005-08-04 Werner LEMBERG <wl@gnu.org> + + * doc/*.doc, doc/japanese/*.doc, doc/chinese/*.doc, + contrib/wadalab/DNP.doc: Renamed to ... + * doc/*.txt, doc/japanese/*.txt, doc/chinese/*.txt, + contrib/wadalab/DNP.txt: This. + + Update all references. + +2005-08-03 Werner LEMBERG <wl@gnu.org> + + * texinput/CJKvert.sty (\CJKvert, \CJKhorz): Make commands act + completely local. + * doc/history.txt: Mention it. + + * doc/pdf/HOWTO.txt: Mention new $SFDFONTS variable from TDS 1.1. + +2005-08-02 Werner LEMBERG <wl@gnu.org> + + Update of HLaTeX support to version 1.0.1. + + * texinput/KS/HLaTeX/c63mg.fd, texinput/KS/HLaTeX/c63mgt.fd, + texinput/KS/HLaTeX/c63mmj.fd, texinput/KS/HLaTeX/c63mnv.fd, + texinput/KS/HLaTeX/c63msr.fd, texinput/KS/HLaTeX/c63ol.fd, + texinput/KS/HLaTeX/c63pbm.fd, texinput/KS/HLaTeX/c63pgr.fd, + texinput/KS/HLaTeX/c63pgs.fd, texinput/KS/HLaTeX/c63pgt.fd, + texinput/KS/HLaTeX/c63pmg.fd, texinput/KS/HLaTeX/c63pmgt.fd, + texinput/KS/HLaTeX/c63pmj.fd, texinput/KS/HLaTeX/c63pmmj.fd, + texinput/KS/HLaTeX/c63pmnv.fd, texinput/KS/HLaTeX/c63pmsr.fd, + texinput/KS/HLaTeX/c63pol.fd, texinput/KS/HLaTeX/c63ppg.fd, + texinput/KS/HLaTeX/c63ppn.fd, texinput/KS/HLaTeX/c63psm.fd, + texinput/KS/HLaTeX/c63ptt.fd, texinput/KS/HLaTeX/c63pyt.fd, + texinput/KS/HLaTeX/c63sm.fd, texinput/KS/HLaTeX/c63tt.fd, + texinput/KS/HLaTeX/c64mg.fd, texinput/KS/HLaTeX/c64mgt.fd, + texinput/KS/HLaTeX/c64mmj.fd, texinput/KS/HLaTeX/c64mnv.fd, + texinput/KS/HLaTeX/c64msr.fd, texinput/KS/HLaTeX/c64ol.fd, + texinput/KS/HLaTeX/c64pbm.fd, texinput/KS/HLaTeX/c64pgr.fd, + texinput/KS/HLaTeX/c64pgs.fd, texinput/KS/HLaTeX/c64pgt.fd, + texinput/KS/HLaTeX/c64pmg.fd, texinput/KS/HLaTeX/c64pmgt.fd, + texinput/KS/HLaTeX/c64pmj.fd, texinput/KS/HLaTeX/c64pmmj.fd, + texinput/KS/HLaTeX/c64pmnv.fd, texinput/KS/HLaTeX/c64pmsr.fd, + texinput/KS/HLaTeX/c64pol.fd, texinput/KS/HLaTeX/c64ppg.fd, + texinput/KS/HLaTeX/c64ppn.fd, texinput/KS/HLaTeX/c64psm.fd, + texinput/KS/HLaTeX/c64ptt.fd, texinput/KS/HLaTeX/c64pyt.fd, + texinput/KS/HLaTeX/c64sm.fd, texinput/KS/HLaTeX/c64tt.fd, + texinput/KS/HLaTeX/c65mg.fd, texinput/KS/HLaTeX/c65mgt.fd, + texinput/KS/HLaTeX/c65mmj.fd, texinput/KS/HLaTeX/c65mnv.fd, + texinput/KS/HLaTeX/c65msr.fd, texinput/KS/HLaTeX/c65ol.fd, + texinput/KS/HLaTeX/c65pbm.fd, texinput/KS/HLaTeX/c65pgr.fd, + texinput/KS/HLaTeX/c65pgs.fd, texinput/KS/HLaTeX/c65pgt.fd, + texinput/KS/HLaTeX/c65pmg.fd, texinput/KS/HLaTeX/c65pmgt.fd, + texinput/KS/HLaTeX/c65pmj.fd, texinput/KS/HLaTeX/c65pmmj.fd, + texinput/KS/HLaTeX/c65pmnv.fd, texinput/KS/HLaTeX/c65pmsr.fd, + texinput/KS/HLaTeX/c65pol.fd, texinput/KS/HLaTeX/c65ppg.fd, + texinput/KS/HLaTeX/c65ppn.fd, texinput/KS/HLaTeX/c65psm.fd, + texinput/KS/HLaTeX/c65ptt.fd, texinput/KS/HLaTeX/c65pyt.fd, + texinput/KS/HLaTeX/c65sm.fd, texinput/KS/HLaTeX/c65tt.fd: Removed. + + * texinput/KS/HLaTeX/c63dn.fd, texinput/KS/HLaTeX/c63jgt.fd, + texinput/KS/HLaTeX/c63jmj.fd, texinput/KS/HLaTeX/c63jnv.fd, + texinput/KS/HLaTeX/c63jsr.fd, texinput/KS/HLaTeX/c63pga.fd, + texinput/KS/HLaTeX/c63ph.fd, texinput/KS/HLaTeX/c63sh.fd, + texinput/KS/HLaTeX/c63tz.fd, texinput/KS/HLaTeX/c63vd.fd, + texinput/KS/HLaTeX/c64dn.fd, texinput/KS/HLaTeX/c64jgt.fd, + texinput/KS/HLaTeX/c64jmj.fd, texinput/KS/HLaTeX/c64jnv.fd, + texinput/KS/HLaTeX/c64jsr.fd, texinput/KS/HLaTeX/c64pga.fd, + texinput/KS/HLaTeX/c64ph.fd, texinput/KS/HLaTeX/c64sh.fd, + texinput/KS/HLaTeX/c64tz.fd, texinput/KS/HLaTeX/c64vd.fd, + texinput/KS/HLaTeX/c65dn.fd, texinput/KS/HLaTeX/c65jgt.fd, + texinput/KS/HLaTeX/c65jmj.fd, texinput/KS/HLaTeX/c65jnv.fd, + texinput/KS/HLaTeX/c65jsr.fd, texinput/KS/HLaTeX/c65pga.fd, + texinput/KS/HLaTeX/c65ph.fd, texinput/KS/HLaTeX/c65sh.fd, + texinput/KS/HLaTeX/c65tz.fd, texinput/KS/HLaTeX/c65vd.fd: New files. + + * texinput/KS/HLaTeX/c63bm.fd, texinput/KS/HLaTeX/c63gr.fd, + texinput/KS/HLaTeX/c63gs.fd, texinput/KS/HLaTeX/c63gt.fd, + texinput/KS/HLaTeX/c63mj.fd, texinput/KS/HLaTeX/c63pg.fd, + texinput/KS/HLaTeX/c63pn.fd, texinput/KS/HLaTeX/c63yt.fd, + texinput/KS/HLaTeX/c64bm.fd, texinput/KS/HLaTeX/c64gr.fd, + texinput/KS/HLaTeX/c64gs.fd, texinput/KS/HLaTeX/c64gt.fd, + texinput/KS/HLaTeX/c64mj.fd, texinput/KS/HLaTeX/c64pg.fd, + texinput/KS/HLaTeX/c64pn.fd, texinput/KS/HLaTeX/c64yt.fd, + texinput/KS/HLaTeX/c65bm.fd, texinput/KS/HLaTeX/c65gr.fd, + texinput/KS/HLaTeX/c65gs.fd, texinput/KS/HLaTeX/c65gt.fd, + texinput/KS/HLaTeX/c65mj.fd, texinput/KS/HLaTeX/c65pg.fd, + texinput/KS/HLaTeX/c65pn.fd, texinput/KS/HLaTeX/c65yt.fd: Updated. + + * texinput/KS/HLaTeX/pshan.sty: No longer needed. Make it empty for + backwards compatibility. + + * texinput/CJK.enc (\CJK@KSHL@enc): Updated. + + * doc/history.txt, doc/CJK.doc: Updated. + +2005-08-01 Werner LEMBERG <wl@gnu.org> + + * utils/subfont/uni2sfd.pl (read_tfmfile): Fix reading CHARWD, + CHARHT, and CHARDP. + +2005-07-31 Werner LEMBERG <wl@gnu.org> + + * utils/subfont/sfd2uni.pl: New script to produce Unicode virtual + subfonts from encoding specific subfonts. + +2005-07-29 Werner LEMBERG <wl@gnu.org> + + * contrib/wadalab/DNP.sfd: Fix typo. Found by Shunsaku Hirata. + * contrib/wadalab/fixwada2.pl: Since Wadalab fonts have already + been uploaded to CTAN, and the bug in DNP.sfd makes it necessary to + regenerate the fonts, and to update the version number and creation + date. + +2005-07-18 Werner LEMBERG <wl@gnu.org> + + * utils/subfonts/makefdx.pl, utils/subfonts/uni2sfd.pl: Fix typos. + + * utils/subfonts/clonevf.pl: New script to produce a VF clone of + a TFM file. + +2005-07-18 Werner LEMBERG <wl@gnu.org> + + * utils/subfonts/makefdx.pl: New script to create FDX entries. + +2005-07-17 Werner LEMBERG <wl@gnu.org> + + * utils/subfonts/subfonts.pe, utils/subfonts/uni2sfd.pl, + utils/subfonts/vertical.pe, utils/vertref.pe: New perl and FontForge + scripts for creating and handling subfonts. + +2005-07-12 Werner LEMBERG <wl@gnu.org> + + * contrib/wadalab/fixwada2.pl, contrib/wadalab/makeuniwada.pl: New + scripts which fix glyph names and create virtual Unicode fonts for + the Wadalab font families. + + * contrib/wadalab/DNP.sfd: A subfont definition file used by + `fixwada2.pl' and `makeuniwada.pl'. + + * contrib/wadalab/c70goth.fd, contrib/wadalab/c70maru.fd, + contrib/wadalab/c70min.fd: New font definition files for Wadalab + fonts in Unicode encoding. + + * contrib/wadalab/DNP.doc: Completely revised and updated. + +2005-07-07 Werner LEMBERG <wl@gnu.org> + + * doc/history.txt: Updated. + +2005-07-05 Werner LEMBERG <wl@gnu.org> + + * utils/thaifont/tools/c90.etx: Fix some typos. + +2005-07-04 Werner LEMBERG <wl@gnu.org> + + Update Thai support: + + . Use fontinst. We no longer need virtual fonts. + . Replace support for dbtt (which has an uncertain license) with + garuda. + . Update to TDS 1.1. + + * utils/thaifont/texmf/dvips/base/dbtt.enc: Removed. + * utils/thaifont/texmf/dvips/config/config.dbtt: Removed. + * utils/thaifont/texmf/dvips/config/dbtt.map: Removed. + * utils/thaifont/texmf/fonts/tfm/public/dbtt/*: Removed. + * utils/thaifont/texmf/fonts/vf/public/dbtt/*: Removed. + + * utils/thaifont/texmf/dvips/base/norasi.enc: Removed. + * utils/thaifont/texmf/dvips/config/config.norasi: Move to... + * utils/thaifont/texmf/dvips/norasi/config.norasi: Here. + * utils/thaifont/texmf/dvips/config/norasi.map: Moved to... + * utils/thai/font/texmf/fonts/map/dvips/norasi/norasi.map: Here. + Updated. + * utils/thaifont/texmf/fonts/tfm/public/norasi/ftnr9z.tfm, + utils/thaifont/texmf/fonts/tfm/public/norasi/ftnb9z.tfm, + utils/thaifont/texmf/fonts/tfm/public/norasi/ftnbo9z.tfm, + utils/thaifont/texmf/fonts/tfm/public/norasi/ftno9z.tfm: Removed. + * utils/thaifont/texmf/fonts/tfm/public/norasi/ftnr8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/norasi/ftnb8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/norasi/ftnbo8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/norasi/ftno8z.tfm: Updated. + * utils/thaifont/texmf/fonts/vf/public/norasi/*: Removed. + + * utils/thaifont/texmf/dvips/garuda/config.garuda: New file. + * utils/thaifont/texmf/fonts/map/dvips/garuda/garuda.map: New file. + * utils/thaifont/texmf/fonts/tfm/public/garuda/fgdr8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/garuda/fgdb8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/garuda/fgdbo8z.tfm, + utils/thaifont/texmf/fonts/tfm/public/garuda/fgdo8z.tfm: New files. + + * utils/thaifont/texmf/fonts/enc/dvips/thai/c90.enc: New file, + generated by fontinst. + + * utils/thaifont/tools/c90.etx: New file. + * utils/thaifont/tools/c90.mtx: New file. + * utils/thaifont/tools/garuda.fontinst: New file. + * utils/thaifont/tools/norasi.fontinst: New file. + * utils/thaifont/tools/INSTALL: New file. + * utils/thaifont/tools/dbtt-old/*: New files. + * utils/thaifont/tools/README: Removed. + * utils/thaifont/tools/thai-dummy.afm: Removed. + * utils/thaifont/tools/thai.enc: Removed. + * utils/thaifont/tools/thailigs.vpl: Removed. + + * texinput/thai/c90cmss.fd, texinput/thai/c90cmtt.fd, + texinput/thai/c90nrsr.fd: Updated. + * texinput/thai/c90dbss.fd: Removed. + * texinput/thai/c90gar.fd: New file. + +2005-06-27 Werner LEMBERG <wl@gnu.org> + + Remove the `rotate' keyword for vertical typesetting and introduce + the opposite, `norotate'. + + * texinput/Bg5/c00bsmir.fdx, texinput/Bg5/c00kair.fdx: New files. + + * doc/fdxfiles.doc, doc/vertical.doc, texinput/Bg5/c00bsmi.fdx, + texinput/GB/c10gbsn.fdx, texinput/CJKvert.sty: Updated. + +2005-06-25 Werner LEMBERG <wl@gnu.org> + + * examples/CJKmixed.tex: New example file to demonstrate how to + use CJK scripts vertically and horizontally at the same time. + +2005-06-24 Werner LEMBERG <wl@gnu.org> + + * doc/vertical.doc: Mention that you need an `.fdx' file if you + want to use rotated glyphs for vertical typesetting. + +2005-05-23 Werner LEMBERG <wl@gnu.org> + + * doc/CJK.doc: Improve documentation of `encapsulated' option. + Suggested by Brian Murphy. + +2005-04-26 Werner LEMBERG <wl@gnu.org> + + * texinput/UTF8/UTF8.chr (\CJK@punctchar): Wrap code after \usefont + into three groups to make it work with CJKulem.sty. + + * texinput/CJKutf8.sty, examples/CJKutf8.tex, doc/CJKutf8.doc: New + files. + + * doc/history.txt: Updated. + +2005-04-22 Werner LEMBERG <wl@gnu.org> + + * utils/lisp/emacs/cjk-enc.el (cjk-viscii-lower, cjk-viscii-upper), + utils/lisp/mule-2.3/cjk-enc.el (cjk-viscii-lower, cjk-viscii-upper): + Update to next vntex version which no longer uses dblaccnt.sty. + +2005-03-27 Werner LEMBERG <wl@gnu.org> + + * texinput/CJK.sty (\CJKspace): Don't use \relax but \@empty. + +2005-03-02 Werner LEMBERG <wl@gnu.org> + + * doc/CJK.doc: Mention `CJKbookmarks' option of hyperref package. + +2005-02-23 Werner LEMBERG <wl@gnu.org> + + * README: Updated. No public CVS access possible currently. + +2004-07-26 Werner LEMBERG <wl@gnu.org> + + * utils/lisp/emacs/thai-word.el (thai-word-table): Use Thai word + list from IBM's ICU4J project; it is slightly larger and uses an + X license. + +2004-07-25 Werner LEMBERG <wl@gnu.org> + + * utils/lisp/emacs-20.3/*: Moved to... + * utils/lisp/emacs/*: This. + + * utils/thaifont/tools/thai.enc: Minor updates. Will be replaced + with a fontinst solution soon. + +2004-06-08 Werner LEMBERG <wl@gnu.org> + + * doc/reftex.doc: New file. + * doc/history.txt: Updated. + +2004-06-07 Werner LEMBERG <wl@gnu.org> + + * utils/lisp/emacs-20.3/cjk-enc.el (cjk-write-all-files): Handle + case where files are in other directories. Bug reported by Hartwig + Crailsheim. + + * doc/cjk-enc.doc, doc/history.txt: Updated. + +2004-06-04 Werner LEMBERG <wl@gnu.org> + + * contrib/wadalab/c42goth.fdx, contrib/wadalab/c42maru.fdx, + contrib/wadalab/c42min.fdx: Don't rotate the Hiragana-Katagana + prolongation mark. + + * doc/vertical.doc: Updated. + Move text describing .fdx files to... + * doc/fdxfiles.doc: New file. + + * texinput/CJK.sty: Minor spelling improvements. + +2004-06-03 Werner LEMBERG <wl@gnu.org> + + * contrib/wadalab/DNP.doc: Improve patch for wftodm.c. + +2004-04-29 Werner LEMBERG <wl@gnu.org + Wenchang Sun <sunwch@hotmail.com> + + Add a style file for various CJK font effects. + + * texinput/CJKfntef.sty, examples/CJKfntef.tex: New files. + * doc/CJK.doc, doc/history.txt: Document it. + +2004-03-13 Werner LEMBERG <wl@gnu.org> + + * texinput/*.enc: Replace \relax with \@empty in the \CJK@namegdef + assignments to assure that we only have expansion at this macro + level. + + * doc/history.txt: Updated. + +2004-02-08 Werner LEMBERG <wl@gnu.org> + + Bug fix: Umlaut u with diacritic appears bold. + + * texinput/pinyin.sty (\py@@@v): Apply kerning at correct place. + +2004-02-07 Werner LEMBERG <wl@gnu.org> + + Bug fix: Umlaut u with macron above was broken. + + * texinput/pinyin.sty (\py@macron): Add second argument to + initialize \dimen@. Update all callers. + +2004-02-06 Werner LEMBERG <wl@gnu.org> + + Bug fix: Use user-defined \CJKglue value. + + * texinput/CJKulem.sty (\CJK@skip): New skip register. + (\UL@CJKglue): Use it. + (\UL@hook): Initialize \CJK@skip. + Move assignments of \LA@CJKglue, \LA@Thaiglue, and \LA@Thaibreak + to here. + +2004-02-05 Wenchang Sun <sunwch@hotmail.com> + + Bug fix: Disable line breaks before a post-punctuation CJK glyph + when \uline, \uwave, etc., are used. + + * texinput/CJK.sty (\CJKnobreakglue): New macro. + (\Unicode): Use it. + + * texinput/CJKulem.sty (\UL@CJKnobreakglue): New macro. + + * texinput/standard.chr, texinput/extended.chr, texinput/pmC.chr, + texinput/Bg5/bg5.chr, texinput/JIS/EUC-JP.chr, + texinput/SJIS/SJIS.chr, texinput/SJIS/SJISdnp.chr, + texinput/UTF8/UTF8.chr, texinput/CNS/EUC-TW.chr (\CJK@char, + \CJK@charx, \CJK@punctchar, \CJK@punctcharx): Use \CJKnobreakglue. + +2004-02-02 Hin-Tak Leung <htl10@users.sourceforge.net> + + * doc/pdf/*: New directory tree documenting usage of CJK for + improved PDF output. + * doc/history.txt: Document it. + +2004-01-29 Wenchang Sun <sunwch@hotmail.com> + + * texinput/CJK.sty (\CJKpunctsymbol): New \let to \CJKsymbol. + + * texinput/standard.chr, texinput/extended.chr, texinput/pmC.chr, + texinput/Bg5/bg5.chr, texinput/JIS/EUC-JP.chr, texinput/KS/KS.chr, + texinput/SJIS/SJIS.chr, texinput/SJIS/SJISdnp.chr, + texinput/UTF8/UTF8.chr, texinput/CNS/EUC-TW.chr (\CJK@punctchar, + \CJK@punctcharx): Replace \CJKsymbol with \CJKpunctsymbol. + +2003-10-12 Werner LEMBERG <wl@gnu.org> + + A first step to allow modification of horizontal character widths + which is needed for CJK fonts which don't have punctuation glyphs + centered within the CJK square. The same mechanism will work with + vertical glyphs also; since a common interface will differ from the + current implementation, *.fdv files are renamed to *.fdx. Note that + special character width handling of punctuation characters is still + missing. + + * texinput/CJK.sty (\CJK@load@fdx): New function, used as a hook + for \try@load@fontshape. It defines the macros \CJKhdef, \CJKhlet, + \CJKvdef, and \CJKvlet. The writing direction is appended to the + character macros -- this also fixes a bug for vertical writing + support with Big5 encoding (some characters disappeared in the + output without any warning due to character macro name clashes with + the subfont macro names). + (\CJK@direction): New macro to select the writing direction. + (\ifCJK@vertical@): Moved to CJKvert.sty. + + * texinput/CJKvert.sty (\ifCJK@vertical@): Moved from CJK.sty. + (\CJKvert, \CJKhorz): Set \CJK@direction. + (\CJKsymbol): Updated to use writing direction. + (\CJK@load@fdv): Removed. + + * texinput/*.chr: Simplified since \ifCJK@vertical@ is no longer + needed. + + * texinput/*.fdv, contrib/wadalab/*.fdv: Renamed to... + * texinput/*.fdx, contrib/wadalab/*.fdx: This. + +2003-10-25 Werner LEMBERG <wl@gnu.org> + + * texinput/mule/MULEenc.sty: Fix positions of \texordfeminine and + \textordmasculine. + +2003-09-20 Werner LEMBERG <wl@gnu.org> + + With the help of Paul Eggert <eggert@twinsum.com> and Edward G.J. + Lee <edt1023@ms17.hinet.net>, the conversion scripts now accept + parameters. + + * utils/Bg5conv/bg5{pdf,}latex, + utils/CEFconv/{cef5{pdf,}latex,cef{pdf,}latex,cefs{pdf,}latex}, + utils/SJISconv/sjis{pdf,}latex, + utils/extconv/{bg5+{pdf,}latex,gbk{pdf,}latex}: Rewritten to accept + arguments. + * doc/history.txt: Updated. + +2003-09-16 Werner LEMBERG <wl@gnu.org> + + * utils/Bg5conv/bg5pdflatex, + utils/CEFconv/{cef5pdflatex,cefpdflatex,cefspdflatex}, + utils/SJISconv/sjispdflatex, + utils/extconv/{bg5+pdflatex,gbkpdflatex}: New scripts to call + pdflatex. + * doc/history.txt: Updated. + +2003-07-06 Werner LEMBERG <wl@gnu.org> + + * texinput/mule/MULEenc.sty: Add some \@gobble macros in commands + defined with \mule@def. + Change definition of Thai EOL macro to make it really work. + (\mule@ignorespaces, \Thaispace, \Thainospace): New macros. + + * doc/cjk-enc.doc, doc/history.txt: Document \Thaispace and + \Thainospace. + +2003-03-30 Werner LEMBERG <wl@gnu.org> + + * doc/CJK.doc: Add item how to handle \bibliography which has + author names containing CJK characters. + + * utils/hbf2gf/hbf2gf.1: Minor workarounds for current grohtml bugs. + +2003-03-28 Werner LEMBERG <wl@gnu.org> + + Version 4.5.2 released + ====================== + + Update version numbers and time stamps in all non-binary files. + +2003-03-19 Werner LEMBERG <wl@gnu.org> + + Add improved support for pseudo-vertical typesetting. Based on + ideas by Robert Fendt <robert.fendt@epost.de>. + + * texinput/CJK.sty (\ifCJK@vertical@): New if. + + * texinput/CJKvert.sty: Require `graphicx' package. + (\CJKvert, \CJKhorz, \CJKvdef, \CJKvlet, \CJKsymbolsimple): New + commands. + (\CJKsymbol): Add support for vertical parameters (`rotate', + `offset', `fullheight, `height') in the new *.fdv files. + (\CJK@load@fdv): New command to be appended to LaTeX's + \try@load@fontshape. + + * texinput/*/*.chr: Replace calls to \CJKsymbol with an extended + version which, if \CJKvert is active, checks the existence of a + macro + + \<encoding>/<family>/<series>/<shape>/<plane>/<code> + + This macro is then called if it exists, instead of calling + \CJKsymbol. For halfwidth katakana, the macro is called + + \<encoding>/<family>/<series>/<shape>/<code> + + For HLaTeX, the macro is called + + \<encoding>/<family>/<series>/<shape>/<first byte>/<second byte> + + For UTF8, only characters in the range 0x800-0xFFFF get the new + code. + + <code>, <first byte>, and <second byte> are decimal numbers. + + * contrib/wadalab/c42{goth,maru,min}.fdv, + contrib/wadalab/c52{maru,min}.fdv, texinput/Bg5/c00bsmi.fdv, + texinput/GB/c10gbsn.fdv: New files containing information for + vertical typesetting. + + * examples/Big5vert.tex: Use font shape `bsmi'. + + * doc/history.txt, doc/chinese/README, contrib/wadalab/DNP.doc, + doc/vertical.doc, examples/README, README: Updated. + + * Makefile (DVI2PS): Load bsmilp.map and gbsnlp.map. + (cweb): Fix typo (cms->cmz). + + * utils/hbf2gf/config.guess, utils/hbf2gf/config.sub: Updated to + current versions. + + * utils/extconv/extconv.w: Remove duplicated lines. + Fix incorrect use of \@. + * utils/extconv/extconv.c: Regenerated. + +2003-03-18 Werner LEMBERG <wl@gnu.org> + + * texinput/pinyin.sty (\rua): New syllable. While only dialect, it + actually is used... + +2003-03-12 Werner LEMBERG <wl@gnu.org> + + * texinput/pinyin.sty (\den, \chua): Add missing syllables (found by + Jean-Luc Koning <Jean-Luc.Koning@esisar.inpg.fr>). + +2003-03-07 Werner LEMBERG <wl@gnu.org> + + * texinput/pinyin.sty (\py@hy): Assure horizontal mode. + +2003-02-10 Werner LEMBERG <wl@gnu.org> + + * texinput/CJK.sty (\CJKchar): Make \CJKchar accept 7bit input for + character definitions other than standard.chr. + * doc/history.txt: Updated. + +2003-02-06 Werner LEMBERG <wl@gnu.org> + + Horizontal hints in Wadalab fonts weren't shifted vertically, + causing inferior results at small sizes. + + * contrib/wadalab/makefont: Rewritten using awk. + * contrib/wadalab/fixwada: New. + * contrib/wadalab/DNP.doc, doc/history.txt: Updated. + * doc/INSTALL: Minor fixes. Mention wadalab.doc and pfaedit. + +2003-01-31 Werner LEMBERG <wl@gnu.org> + + Add two commands \CJKhwkatakana and \CJKnohwkatakana to control + whether C49 encoding is used or whether SJIS half-width katakana are + mapped to full-width glyphs instead. + + * texinput/CJK.sty (\CJKhwkatakana, \CJK@nohwkatakana): New commands. + (\ifCJK@hwkatakana@): New if-macro. + + * texinput/SJIS/SJIS.chr, texinput/SJIS/SJISdnp.chr (\CJK@sjischar): + Add second and third parameter to call \CJK@XXX conditionally. + * texinput/SJIS/SJIS.enc (\CJK@SJISEncoding): Fill second and + third parameters for half-width katakana. + * texinput/SJIS/SJISdnp.enc (\CJK@SJISdnpEncoding): Ditto. + * doc/commands.doc, doc/CJK.doc, doc/history.txt: Updated. + + * examples/README: New file. + +2002-07-29 Werner LEMBERG <wl@gnu.org> + + * texinput/CNS/EUC-TW.chr (\CJK@shiftchar): Pass correct parameters + to \CJKchar. + +2002-06-19 Werner LEMBERG <wl@gnu.org> + + Version 4.5.1 released + ====================== + + Update version numbers and time stamps in all non-binary files. + +2002-06-17 Werner LEMBERG <wl@gnu.org> + + Preparation of release 4.5.1. + + * README: Updated. + * texinput/CJK.sty, doc/CJK.doc: Require LaTeX 2001/06/01 to have + support for \textkra, \texttstroke, and \textTstroke. + Other minor documentation updates. + * doc/*: Updated. + +2002-06-16 Werner LEMBERG <wl@gnu.org> + + * doc/chinese/READMEgb.tex: Use `gbsn' font. + * Makefile (CJK2DVI): Remove *.toc also. + (LATEX2DVI): Take two arguments. + (LATEX): Ditto. + (DISTTARGETS): Add READMEb5 and pytest. + (READMEgb, pytest): New rules + (GB...): Updated. + (predistdoc): Create README file. + (distdoc): Depend also on `cweb'. + (cweb): New target. + +2002-06-14 Edward Lee <edt1023@ms17.hinet.net> + + * texinput/Bg5/c00bsmi.fd, texinput/Bg5/c00bsmir.fd: Fix typo. + +2002-06-13 Werner LEMBERG <wl@gnu.org> + + * Makefile: New file, used for creating the tarballs. + * README: Updated. + * texinput/GB/c10gbsn.fd, texinput/Bg5/c00bsmi.fd, + texinput/Bg5/c00bsmir.fd: New files for fonts from the TeXLive CD. + * doc/chinese/READMEb5.tex, examples/*: Changed to use the fonts + provided by the TeXLive CD. + +2002-06-12 Werner LEMBERG <wl@gnu.org> + + * texinput/JISdnp.enc (\CJK@JISdnpEncoding): Fix position of closing + brace. + +2002-06-07 Werner LEMBERG <wl@gnu.org> + + * texinput/thai/c90enc.def: New file, contributed by Dominique + Unruh <dominique@unruh.de>. + * texinput/thai/thaicjk.ldf: Use it. + * doc/history.txt: Updated. + +2002-05-16 Werner LEMBERG <wl@gnu.org> + + * doc/cjk-enc.doc: Document behaviour for master files without CJK + characters. + * doc/CJK.doc: Explain usage of `~' for BibTeX. + +2002-05-10 Werner LEMBERG <wl@gnu.org> + + * texinput/CJKnumb.sty (\CJKnullspace): New macro to control the + additional space inserted before and after a circle used as a + CJK zero digit. + * doc/history.txt: Updated. + +2002-05-09 Werner LEMBERG <wl@gnu.org> + + * texinput/CJKnumb.sty (\CJK@traditionalNumbers, + \CJK@simplifiedNumbers): New macros. + Use them for GB, GBK, Bg5, Bg5+ hooks. + +2002-05-01 Werner LEMBERG <wl@gnu.org> + + * doc/commands.doc: Minor fix. + + * utils/hbf2gf/config.guess, utils/hbf2gf/config.sub: Updated to + current versions. + * utils/hbf2gf/configure.in: Renamed to... + * utils/hbf2gf/configure.ac: This. + Updated to autoconf 2.53. + * utils/hbf2gf/configure: Regenerated with autoconf 2.53. + * utils/hbf2gf/README: Text improved. + * utils/hbf2gf/hbf2gf.1: Minor typographical fixes. + +2002-04-30 Werner LEMBERG <wl@gnu.org> + + * texinput/CJK.sty (\CJK@errxx, \CJKindent): New macros. + * texinput/CJK.enc (\CJK@spaceChar): Define it for all encodings. + It is used by \CJKindent. + (\CJK@KSHL@enc): Add \CJK@min and \CJK@max. + * texinput/SJIS/SJISdnp.enc (\CJK@SJISdnpEncoding), + texinput/JIS/JISdnp.enc (\CJK@JISdnpEncoding), + texinput/KS/HLaTeX/KSHL.enc (\CJK@KSHLEncoding): Use \CJK@errxx + for unused slots. + + * doc/history.txt, doc/commands.doc: Document \CJKindent. + + * utils/CEFconv/cef5conv.w, utils/CEFconv/cefconv.w: Fix + documentation errors. + * utils/CEFconv/cef5conv.c, utils/CEFconv/cefconv.c: Regenerated. + +2002-04-29 Werner LEMBERG <wl@gnu.org> + + * texinput/CJK.sty (\pickup@font): Add comment character. + +2002-04-28 Werner LEMBERG <wl@gnu.org> + + Preparation of release 4.5.0. + + * README: Updated. + +2002-04-27 Werner LEMBERG <wl@gnu.org> + + * texinput/CJK.sty (\CJKsymbol, \CJKsymbols): Simplified. + (\Unicode, \CJKenc): Fix error text. + +2001-10-08 Mike Fabian <mfabian@suse.de> + + * contrib/wadalab/c42goth.fd: Use `dgj' for normal series and add + `\CJKbold' for bold series. + +2001-07-31 Werner LEMBERG <wl@gnu.org> + + * doc/CJK.doc: Note use of \cleardoublepage if problems occur with + two-column printing. + +2001-07-27 Fabrice Popineau <Fabrice.Popineau@supelec.fr> + + * utils/cjklatex/cjklatex.c: New file. + +2001-06-27 Werner LEMBERG <wl@gnu.org> + + * doc/CJK.doc: Add info how to use a CJK environment in the + preamble. + * doc/cjk-enc.doc: Simplify usage of AUC TeX. + Modify definition of `TeX-run-CJK-LaTeX' to handle directories + properly. + +2001-06-15 Werner LEMBERG <wl@gnu.org> + + * texinput/CJK.enc (\CJK@disableMakeUppercase): Define it as \relax + if in preprocessed mode. + +2001-06-14 HANDA Ken'ichi <handa@etl.go.jp> + + * utils/lisp/emacs-20.3/cjk-enc.el (cjk-set-buffer-multibyte): + Use backquote operator to make cjk-enc.elc work correctly. + +2001-06-08 Werner LEMBERG <wl@gnu.org> + + The next LaTeX release will use \textkra, \texttstroke, and + \textTstroke for the missing latin-4 characters. + + * texinput/mule/MULEenc.sty: Use \textkra. Add \TEXTTSTROKE. + * utils/lisp/emacs-20.3/cjk-enc.el, utils/lisp/mule-2.3/cjk-enc.el: + Use \texttstroke and \TEXTTSTROKE. + +2001-05-26 Werner LEMBERG <wl@gnu.org> + + * texinputs/CJK.sty: Restore EOL character before loading `CJK.cfg'. + +2001-05-18 Werner LEMBERG <wl@gnu.org> + + * contrib/wadalab/DNP.doc: Document installation for pdfTeX. + * contrib/wadalab/makefont: Updated to normalize font matrix of + PS fonts. + +2001-04-24 Werner LEMBERG <wl@gnu.org> + + * utils/hbf2gf/config.guess, utils/hbf2gf/config.sub: Updated to + latest version from gnu.org. + +2001-04-21 Werner LEMBERG <wl@gnu.org> + + * examples/muletest.tex: Remove Thai support so that this file can + really be run with Mule 2.3. + Update comment. + * example/CJKbabel.tex, example/rubytest.tex: Update comment. + + * utils/lisp/emacs-20.3/cjk-enc.el (cjk-format-spec-table): Fix + Thai. + * texinput/mule/MULEenc.sty (\mule@char): Don't use delimiter. + * texinput/SJIS/sjisdnp.enc: Update this file also to the changes + introduced 2001-03-15. + +2001-04-17 Werner LEMBERG <wl@gnu.org> + + * examples/*.tex: Added local variables for Emacs to specify + encoding. + * doc/history.txt: Emphasize the need of local variables for the + encoding if `cjk-enc.el' is used. + +2001-04-02 Werner LEMBERG <wl@gnu.org> + + * utils/lisp/emacs-20.3/cjk-enc.el: Fix documentation to follow + Elisp documentation conventions. + +2001-04-01 Werner LEMBERG <wl@gnu.org> + + Make UTF8 encoding work in TOC. + + * texinput/CJK.sty (\CJK@namedef): New macro. + * texinput/UTF8/UTF8.bdg: Use it. + +2001-03-28 Werner LEMBERG <wl@gnu.org> + + * texinput/mule/MULEenc.sty: Use \textnumero instead of \CYRNo + (found by Vladimir Volovich). + +2001-03-18 Werner LEMBERG <wl@gnu.org> + + * utils/lisp/cjkspace.el, INSTALL: Fix documentation. + +2001-03-15 Werner LEMBERG <wl@gnu.org> + + A major change: Preprocessed and non-preprocessed mode can be used + simultaneously! For example, you can now use include a file encoded + in UTF-8 in another file encoded in Big5. + + To achieve this, ^^7f will always start a command in preprocessed + mode, even for CJK macros. + + * texinput/CJK.sty: Require MULEenc.sty. + Remove ^^7f handling. + Remove preprocessed versions of \CJK@XX, \CJK@XXX, and \CJK@XXXX. + (\CJKcaption): Always include .cpx files. + + * texinput/CJK.enc (\CJK@disableMakeUppercase): New macro. + (\CJK@shiftError): New macro. + (\CJK@unicodeError): New macro. + (\CJK@makeEnvironment): Don't handle \MakeUppercase. + (\CJK@*@enc): Always use `true' branch in \CJKpreproc conditionals. + + * texinput/mule/MULEenc.sty (\mule@@@arg, \mule@def): Use \string. + (\mule@@def): New function to set up macros for leading bytes in the + range ^^81-^^fe. + * texinput/extended.enc (\CJK@extendedEncoding), + texinput/Bg5/Bg5.enc (\CJK@Bg5Encoding), texinput/SJIS/SJIS.enc + (\CJK@SJISEncoding): Use \CJK@disableMakeUppercase. + * texinput/pmCbig.enc (\CJK@pmCbigEncoding), texinput/pmCsmall.enc + (\CJK@pmCsmallEncoding), texinput/standard.enc + (\CJK@standardEncoding): Add \relax. + * texinput/CNS/EUC-TW.enc (\CJK@EUC-TWEncoding), + texinput/JIS/EUC-JP.enc (\CJK@EUC-JPEncoding): Use \CJK@shiftError + for single shifts. Add \relax for all other macros. + * texinput/UTF8/UTF8.enc (\CJK@UTF8Encoding): Use \CJK@unicodeError + for three-byte sequences. Add \relax for all other macros. + + * texinput/*/*.cpx: Updated to new preprocessing scheme. + + * utils/*conv/*conv.w: Updated to new preprocessing scheme. + * utils/*conv/*conv.c: Regenerated. + + * utils/lisp/emacs-20.3/cjk-enc.el (cjk-format-spec-table): Updated + to new preprocessing scheme. + (cjk-encode): Fix file header insertion strings. + * utils/lisp/mule-2.3/cjk-enc.el (cjk-enc-table): Updated to new + preprocessing scheme. + (cjk-encode): Fix file header insertion strings. + + * doc/*: Updated and revised. + +2001-03-13 Werner LEMBERG <wl@gnu.org> + + Implement \CJKinput. + + * mule/MULEenc.sty (\CJKinput): New macro. + (\CJKinclude): Fix error message. + + * utils/lisp/emacs-20.3/cjk-enc.el (cjk-write-all-files): Update + docstring. + (tex-input-regexp): New test for \CJKinput. + (do-batch-cjk-write-file): Fix typo. + + * texinput/thai/thaicjk.ldf: Fix typo. + +2001-02-21 Werner LEMBERG <wl@gnu.org> + + * doc/INSTALL: Minor improvements. + +2001-02-13 Werner LEMBERG <wl@gnu.org> + + * utils/hbf2gf/config.{guess,sub}: Updated (from ftp.gnu.org). + +2000-12-17 Werner LEMBERG <wl@gnu.org> + + * utils/SJISconv/sjisconv.w: Fix typo ff -> 7f. + * utils/CEFconv/cef5conv.w, utils/CEFconv/cefconv.w: Ditto. + + * utils/*conv/*conv.w: \XXXpreproc will now contain the version of + the conversion program. + * utils/*conv/*conv.c: Updated. + + * doc/history.txt: Updated. + + * all files: Version number changed to 4.4.0. + +2000-12-03 Werner LEMBERG <wl@gnu.org> + + * utils/hbf2gf/configure.in: Fix kpathsea checking message. + * utils/hbf2gf/configure: Updated. + +2000-12-02 Werner LEMBERG <wl@gnu.org> + + * doc/cjk-enc.doc: Clarify usage of cjk-coding. + * doc/INSTALL: Add hints how to use kpsewhich to check + configuration. + +2000-12-01 Werner LEMBERG <wl@gnu.org> + + * doc/INSTALL: Fix documentation of --with-kpathsea-include. + * doc/cjk-enc.doc: Fix typo. + +2000-09-21 Werner LEMBERG <wl@gnu.org> + + * texinput/{CJK.sty, CJKulem.sty, pinyin.sty, ruby.sty}: Replacing + some \ifdim with \ifnum. + +2000-09-20 Werner LEMBERG <wl@gnu.org> + + * texinput/CJKulem.sty: Fixed two nasty bugs (spotted by Sim Ing + <sim@ubs-aptsocap.org>): No underlining for \CJKglue and no \CJKglue + before and after \uline. + +2000-08-28 Werner LEMBERG <wl@gnu.org> + + * utils/thaifont/texmf/dvips/config/config.{norasi,dbtt}: New files. + * doc/thaifont.doc: Added info about PS font configuration. + +2000-08-24 Werner LEMBERG <wl@gnu.org> + + * utils/lisp/emacs-20.3/thai-word.el (thai-update-word-table): Add + documentation string. + +2000-08-24 HANDA Ken'ichi <handa@etl.go.jp> + + * utils/lisp/emacs-20.3/thai-word.el (thai-update-word-table): New + function. + (thai-find-word-ends): Fix loop. + +2000-08-23 Werner LEMBERG <wl@gnu.org> + + * texinput/thai/thaicjk.ldf: Remove warning about nonexistent + hyphenation patterns. + +2000-08-20 Werner LEMBERG <wl@gnu.org> + + Another big sigh. Wrong glyph names for Norasi's Thai digits. + Additionally, all ligature rules no longer use `>' to make kerning + possible. + + * utils/thaifont/texmf/dvips/base/norasi.enc: Fixed. + * utils/thaifont/tools/{thai.enc,thailigs.vpl}: Updated. + * utils/thaifont/texmf/fonts/{tfm,vf}/public/{dbtt,norasi}/*: + Regenerated. + +2000-08-19 Werner LEMBERG <wl@gnu.org> + + * examples/thai.tex: New file. + * doc/history.txt: Updated. + + * examples/CJKbabel.tex: Doc fixes. + +2000-08-17 Werner LEMBERG <wl@gnu.org> + + * doc/cjk-enc.el, doc/thaifont.doc: Give better URL for thailatex + package. + +2000-08-15 Werner LEMBERG <wl@gnu.org> + + Sigh, another forgotten Thai ligature rule. + + * utils/thaifont/tools/{thai.enc,thailigs.vpl}: Updated. + * utils/thaifont/texmf/fonts/{tfm,vf}/public/{dbtt,norasi}/*: + Regenerated. + +2000-08-15 Werner LEMBERG <wl@gnu.org> + + * texinput/thai/c90{cmr,cmss.cmtt}.fd: Make font substitution + silent. + + * utils/thaifont/texmf/dvips/base/norasi.enc: Fixing typo. + * utils/thaifont/texmf/fonts/{tfm,vf}/public/norasi/*: Updated. + +2000-08-13 Werner LEMBERG <wl@gnu.org> + + Improved support for Thai. + + * doc/thaifont.doc: New file. + + * utils/thaifont/*: Metrics and support files for Thai fonts. + + * texinput/thai/c90{nrsr,dbss}.fd: New font definition files for + dbtt and norasi font families. + * texinput/thai/c90{cmr,cmss,cmtt}.fd: Font alias files. + * texinput/thai/thaicjk.ldf: New file for thai support in Babel. + * texinput/thai/thai.sty: Removed. + + * utils/lisp/emacs20.3/cjk-enc.el: Redesigned Thai support by + HANDA Ken'ichi <handa@etl.go.jp>. + Will now run under XEmacs also (with help of Martin Buchholz + <martin@xemacs.org>). No Thai support yet due to limitations in + current XEmacs version (21.2). + (cjk-write-all-files): New optional argument to force the processing + of all files. + (do-batch-cjk-write-file): New function. + (batch-cjk-write-file): Use do-batch-cjk-write-file. + (batch-force-cjk-write-file): New function. Uses + do-batch-cjk-write-file also. + * utils/lisp/mule-2.3/cjk-enc.el: Rename write-cjk-file to + cjk-write-file for consistency. + * utils/lisp/emacs20.3/thai-word.el: New file written by HANDA + Ken'ichi for Thai word breaking support. Replaces thaiconv. + * utils/thaiconv: Removed. + + * utils/lisp/emacs20/cjk-enc.el: Removed. No longer supported. + + * texinput/mule/MULEenc.sty: Adapted to new cjk-enc.el version. + Make it robust for CJKulem.sty. + + * examples/CJKbabel.tex: Use CJKulem.sty and thaicjk module for + Babel. + * examples/muletest.tex: Remove \if... \fi clause for Thai. + + * doc/history.txt, doc/INSTALL: Updated. + +2000-08-12 Werner LEMBERG <wl@gnu.org> + + * texinput/CJKulem.sty: New file which provides CJK support for + ulem.sty. + * doc/history.txt, doc/CJK.doc: Updated. + +2000-08-09 Werner LEMBERG <wl@gnu.org> + + * utils/hbf2gf/configure.in: Replaced --with-kpathsea-dir with + --with-kpathsea-lib and --with-kpathsea-include. + * utils/hbf2gf/configure, doc/history.txt, doc/INSTALL, + doc/hbf2gf.doc: Updated. + + * texinput/CJK.sty, texinput/mule/MULEenc.sty: New command + \CJKverbatim which disables \Thaiglue and \CJKglue in verbatim + environments if the `verbatim' package is loaded. + * doc/history.txt, doc/CJK.doc, doc/commands.doc: Updated. + +2000-07-30 Werner LEMBERG <wl@gnu.org> + + * utils/hbf2gf/config.guess, utils/hbf2gf/config.sub: Updated to + latest version from ftp.gnu.org. + +2000-07-27 Werner LEMBERG <wl@gnu.org> + + * utils/thaiconv/thaiconv.c: Improve comment. + + * *.fd: Set \hyphenchar to -1 for all CJK fonts. + +2000-06-23 Werner LEMBERG <wl@gnu.org> + + * utils/hbf2gf/config.guess, utils/hbf2gf/config.sub: Updated to + latest version from ftp.gnu.org. + + * texinput/CJK.enc: Removed redefinition of C42 and C49. + +2000-05-03 Werner LEMBERG <wl@gnu.org> + + * texinput/CJK.sty: Specifying an optional argument to the `CJK' + size function will no longer produce a warning message for each + subfont. + + * contrib/wadalab/*.fd, doc/CJK.doc, doc/fonts.doc: Wadalab PS fonts + now use `CJK' size functions instead of `DNP' ones. + + * doc/history.txt: Updated. + +2000-05-02 Werner LEMBERG <wl@gnu.org> + + * texinput/*/*.cpx: Replace incorrect 0xFF with 0x7F. + +2000-04-18 Werner LEMBERG <wl@gnu.org> + + * texinput/CJK.sty, texinput/pinyin.sty, texinput/ruby.sty: + Balancing the small kern control values, e.g. using + `\kern -1sp\kern 1sp' instead of `\kern 1sp' only. + + Replacing kern value of 3sp with 5sp to avoid clash with ulem.sty. + +2000-04-01 Werner LEMBERG <wl@gnu.org> + + Version 4.3.0 released + ====================== + + This version exists on the Tex Live CD 5 only; a lot of files have + been adapted to the special needs of the CD's texmf tree -- these + changes are not in the CVS tree. + +2000-03-15 Werner LEMBERG <wl@gnu.org> + + * contrib/wadalab/wadalab.map: Renamed from Wadalab.map + * contrib/wadalab/DNP.doc: Updated accordingly. + + * utils/hbf2gf/cfg/*: Updated -- if possible, the foundry is used + as the target directory instead of the encoding, e.g. + `tfm/ntu/b5ka12'. + +2000-03-14 Werner LEMBERG <wl@gnu.org> + + * texinput/SJIS/SJISdnp.{chr,enc}: New files to support SJIS + encoding with DNP fontencoding. + * texinput/CJK.enc: Add SJISdnp. + Add forgotten punctuation pattern macro to KSHL encoding. + * doc/history.txt, doc/CJK.doc, doc/command.doc: Update. + +2000-03-13 Werner LEMBERG <wl@gnu.org> + + * texinput/CJK.sty: Fixing definition of ^^7f to do nothing if + written to the TOC file. + +2000-03-12 Werner LEMBERG <wl@gnu.org> + + * texinput/KS/HLaTeX/pshan.sty: Fix typo. + + Call \mj to activate default family correctly. + + * contrib/wadalab/makefont: Add echo commands. + * contrib/wadalab/DNP.doc: Updated. Add info about gsftopk. + +2000-03-03 Werner LEMBERG <wl@gnu.org> + + * utils/hbf2gf/README: New file. + * utils/hbf2gf/hbf2gf.1, doc/hbf2gf.doc: Small improvements. + + * README: Removed `romaji environment' from TODO section. According + to HANDA Ken'ichi <handa@etl.go.jp> it is impossible to provide + hyphenation patterns for transcribed Japanese without semantic + analysis. + +2000-03-02 Werner LEMBERG <wl@gnu.org> + + * README, doc/INSTALL: Slight improvements. + + * utils/hbf2gf/Makefile.in, utils/hbf2gf/configure.in: Fix incorrect + test for NO_STRDUP. Thanks to <Andries.Brouwer@cwi.nl>. + +2000-02-06 Werner LEMBERG <wl@gnu.org> + + * texinput/CJK.sty, texinput/mule/MULEenc.sty, + utils/lisp/*/cjk-enc.el, utils/*conv/*conv.[cw], history.txt, + CJK.doc, cjk-enc.doc: Use 0x7F both as the multiplex character and + as a delimiter -- apparently no package uses this character... + This solves all problems with \uppercase and \lowercase. + + * utils/hbf2gf/cfg/j2so12.cfg: Added `min_char' parameter to get + correct offsets (thanks to Martin Minich + <minich5@kepler.fmph.uniba.sk> for finding this bug). + +2000-01-26 Werner LEMBERG <wl@gnu.org> + + * doc/cjk-enc.doc, doc/history.txt, examples/CJKbabel.tex, + examples/muletest.tex, texinput/mule/MULEenc.sty, + utils/lisp/*/cjk-enc.el: Change X5 to T5. + +2000-01-20 Werner LEMBERG <wl@gnu.org> + + * examples/muletest.tex: Greek added; updated to X5 encoding. + * examples/CJKbabel.tex: Greek added; updated to X5 encoding. + + * texinput/mule/MULEenc.sty: Use \AtBeginDocument for \mule@<accent> + definitions. + +2000-01-14 Werner LEMBERG <wl@gnu.org> + + * doc/cjk-enc.doc: Added info about file variables to specify + document encoding. + +2000-01-03 Ching-Mo CHANG <chingmo@mail.onweb.com.tw> + + * utils/lisp/emacs-20.3/cjk-enc.el (cjk-write-all-files): Always + returned nul for include and bib file names due to incorrect + pattern matching. + +1999-12-18 Werner LEMBERG <wl@gnu.org> + + * utils/hbf2gf/configure.in: Removed `-pedantic' flag which causes + problems with newer gcc versions. + +1999-11-19 Werner LEMBERG <wl@gnu.org> + + * examples/muletest.tex, examples/CJKbabel.tex: Fixing a typo. + +1999-11-07 Werner LEMBERG <wl@gnu.org> + + * doc/CEF.doc: Minor fixes. + + * doc/CJK.doc: Updated; minor fixes. + +1999-11-06 Werner LEMBERG <wl@gnu.org> + + * doc/cjk-enc.doc, doc/commands.doc, doc/fonts.doc: Minor fixes. + + * doc/vertical.doc, doc/history.txt: Updated. + +1999-11-05 Werner LEMBERG <wl@gnu.org> + + * texinput/mule/MULEenc.sty: Added \CJKinclude{<file>} and + \CJKbibliography{<file>}. These functions act identically to + \include resp. \bibliography but load <file>.cjk + resp. <file>-cjk.bib. + + * utils/lisp/emacs-20.3/cjk-enc.el: Using `cjk' throughout as the + prefix to variable and function names. This causes a renaming of + virtually all functions. Some other local variables were renamed + also for consistency. + + Changing ET5 to X5 encoding for Vietnamese. + + (decompose-char): Removed. Not needed at all. + + (cjk-tex-in-comment): New function. Similar to AUC TeX's + TeX-in-comment function; has been added to be independent from AUC + TeX. + + (cjk-write-all-files): New function. It checks for \CJKinclude + and \CJKbibliography commands in the master file and converts the + referenced files accordingly if necessary. Intended as a hook to + AUC TeX to make multiple files work as expected. + +1999-11-02 Werner LEMBERG <wl@gnu.org> + + * doc/cjk-enc.doc: Small improvement in explanation of usage with + AUC TeX. + +1999-10-24 Werner LEMBERG <wl@gnu.org> + + * utils/lisp/emacs-20.3/cjk-enc.el (get-cjk-name): New function. + + (file-write-cjk-file, batch-write-cjk-file): New functions which + do the same as write-cjk-file but operate on a given file (resp. a + suite of files and directories given on the command line). + + (write-cjk-file): Will now properly ask for a file name if the + current buffer is not visiting a file. + + * doc/cjk-enc.doc: Expanded TeX-translate-location-hook to cover + CJK BibTeX input files also. + + TeX-run-CJK-LaTeX now checks whether it must call write-cjk-file + at all (emacs > 20.3 only). + +1999-10-07 Werner LEMBERG <wl@gnu.org> + + * texinput/mule/MULEenc.sty: Removed \textendash wrapper macro. + + * utils/lisp/{emacs-20.3,emacs-20,mule-2.3}/cjk-enc.el: Added + iso-8859-9 (Greek) support (mapped to LGR encoding as used in the + Babel package). + + Fixed character `SOFT-HYPHEN' in iso-8859-x encodings (using `\-' + instead of \textendash). + + * README, doc/cjk-enc.doc, doc/history.txt: Updated. + + * doc/CJK.doc: Fixed a typo. + + * texinput/CJK.enc, texinput/CJK.sty, texinput/*/{*.cap,*.cpx}: + Replaced `\ifx\foo \undefined' with `\@ifundefined{}{}' to fix the + case that a not-defined macro has been tested with \@ifundefined + before. In this case, it is no longer undefined but identical to + \relax. + + * texinput/pmC.chr: Fixed punctuation macros for pmC. + +1999-10-02 Werner LEMBERG <wl@gnu.org> + + * texinput/pinyin.sty: The method with appending `\-' to all + syllables fails (stupid I am :-), so here a solution which really + works. It uses a small kern (4sp, similar to the ruby and CJK + packages) to tell the following pinyin syllable that a + discretionary has to be inserted. + +1999-10-01 Werner LEMBERG <wl@gnu.org> + + * texinput/mule/MULEenc.sty: \lccode and \uccode of ^^ff must not + be modified, otherwise hyphenation patterns containing \ss will + fail (which happens e.g. in German). + +1999-09-28 Werner LEMBERG <wl@gnu.org> + + * doc/history.txt: Updated. + + * utils/pyhyphen/pyhyph.tex, utils/pyhyphen/pytest.tex, + utils/pyhyphen/pinyin.ldf, doc/pyhpyhen.doc: Hyphenation patterns + for unaccented pinyin syllables to be used with the Babel package. + + * utils/pyhyphen/pinyin.c, utils/pyhpyhen/pinyin.tr: Utility files + for creating pinyin hyphenation patterns. + +1999-09-27 Werner LEMBERG <wl@gnu.org> + + * doc/history.txt: Updated. + +1999-09-21 Werner LEMBERG <wl@gnu.org> + + * texinput/pinyin.sty: Adding hyphenation points at the end of all + syllables. + +1999-09-18 Werner LEMBERG <wl@gnu.org> + + * texinput/pinyin.sty: Making accent commands like \py@a robust. + + Added option `useCMmacron' (for LaTeX only) to use a macron accent + from the CM fonts in case the used font doesn't have it + (e.g. some versions of virtual files for Palatino). + +1999-08-26 Werner LEMBERG <wl@gnu.org> + + * utils/hbf2gf/hbf2gf.1: Added some documentation how to find out + the expanded value of a kpathsea variable (like $MISCFONT). + +1999-08-07 Werner LEMBERG <wl@gnu.org> + + * utils/thaiconv/thaiconv.c (adj): Fixed invalid array index in + case of marks without base characters. + +1999-07-07 Werner LEMBERG <wl@gnu.org> + + * texinput/Bg5/Bg5.chr, + texinput/extended.chr: Fixed a typo \CJK@temp->\CJK@gtemp + +1999-06-30 Werner LEMBERG <wl@gnu.org> + + * utils/lisp/emacs-20/cjk-enc.el, + utils/lisp/emacs-20.3/cjk-enc.el, + utils/lisp/mule-2.3: Fixed code for 0x80 multiplex character. + +1999-06-22 Werner LEMBERG <wl@gnu.org> + + * doc/TDS.doc: Completely revised. + +1999-06-10 Werner LEMBERG <wl@gnu.org> + + * utils/hbf2gf/configure.in: Removed `-ansi' flag which can cause + problems with the kpathsea library (which is not compiled with + -ansi). + +1999-06-07 Werner LEMBERG <wl@gnu.org> + + * utils/hbf2gf/hbf2gf.1: Added documentation about MiKTeX. + + * utils/hbf2gf/hbf2gf.w: Added support for MiKTeX file search + library. + + * texinput/CEF/*.fd: Removed -- these files were erroneously + included into the CVS repository. + +1999-06-04 Werner LEMBERG <wl@gnu.org> + + * *.fd files: minor documentation addition regarding font + encoding. + + * all files: Changed date/version to 4.3.0. + +1999-06-02 Werner LEMBERG <wl@gnu.org> + + * README: Added info about http and ftp home sites and how to + access the CVS repository. + +1999-06-01 Werner LEMBERG <wl@gnu.org> + + * README: Added info about CVS mailing list. + +1999-05-29 Werner LEMBERG <wl@gnu.org> + + * README: Added mailing list. + + * doc/INSTALL: Small correction. + + * README: Small additions. + +;; Local Variables: +;; coding: utf-8 +;; End: + + Copyright (C) 1999, 2001-2012 + Werner Lemberg <wl@gnu.org> + + This file is part of the CJK package for using Asian logographs + (Chinese/Japanese/Korean) with LaTeX2e. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU Emacs; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. diff --git a/language/chinese/CJK/cjk-4.8.5/MANIFEST b/language/chinese/CJK/cjk-4.8.5/MANIFEST new file mode 100644 index 0000000000..bea2d544c7 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/MANIFEST @@ -0,0 +1,466 @@ +Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program in doc/COPYING; if not, write to the Free +Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +MA 02110-1301 USA + +This license applies to all files of the CJK package, unless otherwise +stipulated in the source file. + + +The CJK package contains the following files: + + ChangeLog + MANIFEST + Makefile + README + TODO + contrib/wadalab/DNP.sfd + contrib/wadalab/c42goth.fd + contrib/wadalab/c42goth.fdx + contrib/wadalab/c42maru.fd + contrib/wadalab/c42maru.fdx + contrib/wadalab/c42min.fd + contrib/wadalab/c42min.fdx + contrib/wadalab/c52maru.fd + contrib/wadalab/c52maru.fdx + contrib/wadalab/c52min.fd + contrib/wadalab/c52min.fdx + contrib/wadalab/c70goth.fd + contrib/wadalab/c70goth.fdx + contrib/wadalab/c70maru.fd + contrib/wadalab/c70maru.fdx + contrib/wadalab/c70min.fd + contrib/wadalab/c70min.fdx + contrib/wadalab/fixwada + contrib/wadalab/fixwada2.pl + contrib/wadalab/makefont + contrib/wadalab/makeuniwada.pl + contrib/wadalab/wadalab.map + contrib/wadalab/wadalab.txt + doc/CEF.txt + doc/CJK.txt + doc/CJKnumb.txt + doc/CJKspace.txt + doc/CJKutf8.txt + doc/COPYING + doc/INSTALL + doc/TDS.txt + doc/chinese/README + doc/chinese/READMEb5.tex + doc/chinese/READMEgb.tex + doc/chinese/emTeXb5.txt + doc/chinese/teTeXb5.txt + doc/cjk-enc.txt + doc/commands.txt + doc/dvidrv.txt + doc/fdxfiles.txt + doc/fonts.txt + doc/hbf2gf.txt + doc/history.2_5 + doc/history.txt + doc/japanese/README + doc/japanese/ascii.txt + doc/japanese/japanese.jis + doc/japanese/japanese.txt + doc/japanese/jp-fonts.txt + doc/japanese/jp-tex.txt + doc/japanese/preview.txt + doc/japanese/shibuaki.txt + doc/pdfhowto/HOWTO.txt + doc/pdfhowto/examples/bkai.map + doc/pdfhowto/examples/cid-x.map + doc/pdfhowto/examples/cwtb.map + doc/pdfhowto/examples/dvipdfmx.cfg + doc/pdfhowto/examples/gen-map.pl + doc/pdfhowto/examples/map.list + doc/pdfhowto/examples/texinput/Bg5/c00cwtb.fd + doc/pdfhowto/examples/texinput/Bg5/c00tmpl.fd + doc/pdfhowto/examples/texinput/GB/c10tmpl.fd + doc/pdfhowto/examples/texinput/JIS/c40tmpl.fd + doc/pdfhowto/examples/texinput/SJIS/c49tmpl.fd + doc/pdfhowto/examples/updmap.my + doc/pdfhowto/examples/wcl.sfd + doc/pinyin.txt + doc/pyhyphen.txt + doc/reftex.txt + doc/ruby.txt + doc/thaifont.txt + doc/vertical.txt + examples/Big5.tex + examples/Big5vert.tex + examples/CEF_test.tex + examples/CJKbabel.tex + examples/CJKfntef.tex + examples/CJKmixed.tex + examples/CJKspace.tex + examples/CJKutf8.tex + examples/GB.tex + examples/JIS.tex + examples/KS.tex + examples/README + examples/SJIS.tex + examples/UTF8.tex + examples/muletest.tex + examples/py_test.tex + examples/rubytest.tex + examples/thai.tex + examples/thai_utf8.tex + texinput/Bg5/Bg5.cap + texinput/Bg5/Bg5.chr + texinput/Bg5/Bg5.cpx + texinput/Bg5/Bg5.enc + texinput/Bg5/HK.enc + texinput/Bg5/c00bkai.fd + texinput/Bg5/c00bkai.fdx + texinput/Bg5/c00bsmi.fd + texinput/Bg5/c00bsmi.fdx + texinput/Bg5/c00bsmir.fd + texinput/Bg5/c00bsmir.fdx + texinput/Bg5/c00cns.fd + texinput/Bg5/c00fs.fd + texinput/Bg5/c00kai.fd + texinput/Bg5/c00kair.fd + texinput/Bg5/c00kair.fdx + texinput/Bg5/c00song.fd + texinput/Bg5/c01song.fd + texinput/Bg5/c05song.fd + texinput/Bg5/c09song.fd + texinput/CEF/c80song.fd + texinput/CEF/c81song.fd + texinput/CJK.enc + texinput/CJK.sty + texinput/CJKfntef.sty + texinput/CJKnumb.sty + texinput/CJKspace.sty + texinput/CJKulem.sty + texinput/CJKutf8.sty + texinput/CJKvert.sty + texinput/CNS/EUC-TW.bdg + texinput/CNS/EUC-TW.chr + texinput/CNS/EUC-TW.enc + texinput/CNS/c31song.fd + texinput/CNS/c32song.fd + texinput/CNS/c33song.fd + texinput/CNS/c34song.fd + texinput/CNS/c35song.fd + texinput/CNS/c36song.fd + texinput/CNS/c37song.fd + texinput/GB/GB.cap + texinput/GB/GB.cpx + texinput/GB/c10fs.fd + texinput/GB/c10gbsn.fd + texinput/GB/c10gbsn.fdx + texinput/GB/c10gkai.fd + texinput/GB/c10gkai.fdx + texinput/GB/c10song.fd + texinput/GB/c11song.fd + texinput/GB/c19song.fd + texinput/GB/c20song.fd + texinput/GB/c21song.fd + texinput/JIS/EUC-JP.bdg + texinput/JIS/EUC-JP.chr + texinput/JIS/EUC-JP.enc + texinput/JIS/EUC-JPdnp.enc + texinput/JIS/JIS.cap + texinput/JIS/JIS.cpx + texinput/JIS/JISdnp.enc + texinput/JIS/c40song.fd + texinput/JIS/c41song.fd + texinput/JIS/c42song.fd + texinput/JIS/c43song.fd + texinput/JIS/c50song.fd + texinput/KS/HLaTeX/HLaTeX.chr + texinput/KS/HLaTeX/KSHL.enc + texinput/KS/HLaTeX/c63bm.fd + texinput/KS/HLaTeX/c63dn.fd + texinput/KS/HLaTeX/c63gr.fd + texinput/KS/HLaTeX/c63gs.fd + texinput/KS/HLaTeX/c63gt.fd + texinput/KS/HLaTeX/c63jgt.fd + texinput/KS/HLaTeX/c63jmj.fd + texinput/KS/HLaTeX/c63jnv.fd + texinput/KS/HLaTeX/c63jsr.fd + texinput/KS/HLaTeX/c63mj.fd + texinput/KS/HLaTeX/c63pg.fd + texinput/KS/HLaTeX/c63pga.fd + texinput/KS/HLaTeX/c63ph.fd + texinput/KS/HLaTeX/c63pn.fd + texinput/KS/HLaTeX/c63sh.fd + texinput/KS/HLaTeX/c63tz.fd + texinput/KS/HLaTeX/c63vd.fd + texinput/KS/HLaTeX/c63yt.fd + texinput/KS/HLaTeX/c64bm.fd + texinput/KS/HLaTeX/c64dn.fd + texinput/KS/HLaTeX/c64gr.fd + texinput/KS/HLaTeX/c64gs.fd + texinput/KS/HLaTeX/c64gt.fd + texinput/KS/HLaTeX/c64jgt.fd + texinput/KS/HLaTeX/c64jmj.fd + texinput/KS/HLaTeX/c64jnv.fd + texinput/KS/HLaTeX/c64jsr.fd + texinput/KS/HLaTeX/c64mj.fd + texinput/KS/HLaTeX/c64pg.fd + texinput/KS/HLaTeX/c64pga.fd + texinput/KS/HLaTeX/c64ph.fd + texinput/KS/HLaTeX/c64pn.fd + texinput/KS/HLaTeX/c64sh.fd + texinput/KS/HLaTeX/c64tz.fd + texinput/KS/HLaTeX/c64vd.fd + texinput/KS/HLaTeX/c64yt.fd + texinput/KS/HLaTeX/c65bm.fd + texinput/KS/HLaTeX/c65dn.fd + texinput/KS/HLaTeX/c65gr.fd + texinput/KS/HLaTeX/c65gs.fd + texinput/KS/HLaTeX/c65gt.fd + texinput/KS/HLaTeX/c65jgt.fd + texinput/KS/HLaTeX/c65jmj.fd + texinput/KS/HLaTeX/c65jnv.fd + texinput/KS/HLaTeX/c65jsr.fd + texinput/KS/HLaTeX/c65mj.fd + texinput/KS/HLaTeX/c65pg.fd + texinput/KS/HLaTeX/c65pga.fd + texinput/KS/HLaTeX/c65ph.fd + texinput/KS/HLaTeX/c65pn.fd + texinput/KS/HLaTeX/c65sh.fd + texinput/KS/HLaTeX/c65tz.fd + texinput/KS/HLaTeX/c65vd.fd + texinput/KS/HLaTeX/c65yt.fd + texinput/KS/HLaTeX/pshan.sty + texinput/KS/KS.chr + texinput/KS/KS.enc + texinput/KS/c60dr.fd + texinput/KS/c60gr.fd + texinput/KS/c60gs.fd + texinput/KS/c60gt.fd + texinput/KS/c60hgt.fd + texinput/KS/c60hmj.fd + texinput/KS/c60hol.fd + texinput/KS/c60hpg.fd + texinput/KS/c60mj.fd + texinput/KS/c61dr.fd + texinput/KS/c61gr.fd + texinput/KS/c61gs.fd + texinput/KS/c61gt.fd + texinput/KS/c61hgt.fd + texinput/KS/c61hmj.fd + texinput/KS/c61hol.fd + texinput/KS/c61hpg.fd + texinput/KS/c61mj.fd + texinput/KS/c62song.fd + texinput/KS/hangul.cap + texinput/KS/hangul.cpx + texinput/KS/hangul2.cap + texinput/KS/hangul2.cpx + texinput/KS/hanja.cap + texinput/KS/hanja.cpx + texinput/SJIS/SJIS.bdg + texinput/SJIS/SJIS.cap + texinput/SJIS/SJIS.chr + texinput/SJIS/SJIS.cpx + texinput/SJIS/SJIS.enc + texinput/SJIS/SJISdnp.chr + texinput/SJIS/SJISdnp.enc + texinput/SJIS/c49song.fd + texinput/UTF8/UTF8.bdg + texinput/UTF8/UTF8.chr + texinput/UTF8/UTF8.enc + texinput/UTF8/c70bkai.fd + texinput/UTF8/c70bkai.fdx + texinput/UTF8/c70bsmi.fd + texinput/UTF8/c70bsmi.fdx + texinput/UTF8/c70gbsn.fd + texinput/UTF8/c70gbsn.fdx + texinput/UTF8/c70gkai.fd + texinput/UTF8/c70gkai.fdx + texinput/UTF8/c70mj.fd + texinput/UTF8/c70mj.fdx + texinput/UTF8/c70song.fd + texinput/UTF8/ja.cpx + texinput/UTF8/ko-Hang2.cpx + texinput/UTF8/ko-Hang.cpx + texinput/UTF8/ko-Hani.cpx + texinput/UTF8/zh-Hans.cpx + texinput/UTF8/zh-Hant.cpx + texinput/extended.chr + texinput/extended.enc + texinput/mule/MULEenc.sty + texinput/pinyin.sty + texinput/pmC.chr + texinput/pmCbig.enc + texinput/pmCsmall.enc + texinput/ruby.sty + texinput/standard.bdg + texinput/standard.chr + texinput/standard.enc + texinput/thai/c90cmr.fd + texinput/thai/c90cmss.fd + texinput/thai/c90cmtt.fd + texinput/thai/c90enc.def + texinput/thai/c90gar.fd + texinput/thai/c90nrsr.fd + texinput/thai/thaicjk.ldf + texlive/README + texlive/bin-cjkutils.pl + texlive/c63mj.fd + texlive/c64mj.fd + texlive/c65mj.fd + texlive/c90.pl + texlive/cjk-build.pl + texlive/cjk.pl + texlive/dnp.pl + texlive/garuda-c90.pl + texlive/norasi-c90.pl + utils/Bg5conv/bg5conv.1 + utils/Bg5conv/bg5conv.c + utils/Bg5conv/bg5conv.w + utils/Bg5conv/bg5latex + utils/Bg5conv/bg5latex.bat + utils/Bg5conv/bg5latex.cmd + utils/Bg5conv/bg5pdflatex + utils/CEFconv/cef5conv.1 + utils/CEFconv/cef5conv.c + utils/CEFconv/cef5conv.w + utils/CEFconv/cef5latex + utils/CEFconv/cef5ltx.bat + utils/CEFconv/cef5ltx.cmd + utils/CEFconv/cef5pdflatex + utils/CEFconv/cefconv.1 + utils/CEFconv/cefconv.c + utils/CEFconv/cefconv.w + utils/CEFconv/ceflatex + utils/CEFconv/ceflatex.bat + utils/CEFconv/ceflatex.cmd + utils/CEFconv/cefpdflatex + utils/CEFconv/cefsconv.1 + utils/CEFconv/cefsconv.c + utils/CEFconv/cefsconv.w + utils/CEFconv/cefslatex + utils/CEFconv/cefsltx.bat + utils/CEFconv/cefsltx.cmd + utils/CEFconv/cefspdflatex + utils/SJISconv/sjisconv.1 + utils/SJISconv/sjisconv.c + utils/SJISconv/sjisconv.w + utils/SJISconv/sjislatex + utils/SJISconv/sjisltx.bat + utils/SJISconv/sjisltx.cmd + utils/SJISconv/sjispdflatex + utils/cjklatex/cjklatex.c + utils/extconv/bg5+latex + utils/extconv/bg5+pdflatex + utils/extconv/bg5pltx.bat + utils/extconv/bg5pltx.cmd + utils/extconv/extconv.1 + utils/extconv/extconv.c + utils/extconv/extconv.w + utils/extconv/gbklatex + utils/extconv/gbklatex.bat + utils/extconv/gbklatex.cmd + utils/extconv/gbkpdflatex + utils/f_name.bat + utils/hbf2gf/Makefile.gnu + utils/hbf2gf/Makefile.in + utils/hbf2gf/README + utils/hbf2gf/c-auto.h + utils/hbf2gf/cfg/README + utils/hbf2gf/cfg/b5ka12.cfg + utils/hbf2gf/cfg/b5kr12.cfg + utils/hbf2gf/cfg/b5so12.cfg + utils/hbf2gf/cfg/c1so12.cfg + utils/hbf2gf/cfg/c2so12.cfg + utils/hbf2gf/cfg/c3so12.cfg + utils/hbf2gf/cfg/c4so12.cfg + utils/hbf2gf/cfg/c5so12.cfg + utils/hbf2gf/cfg/c6so12.cfg + utils/hbf2gf/cfg/c7so12.cfg + utils/hbf2gf/cfg/csso12.cfg + utils/hbf2gf/cfg/gsfs14.cfg + utils/hbf2gf/cfg/j2so12.cfg + utils/hbf2gf/cfg/jsso12.cfg + utils/hbf2gf/cfg/ksso17.cfg + utils/hbf2gf/config.guess + utils/hbf2gf/config.sub + utils/hbf2gf/configure + utils/hbf2gf/configure.ac + utils/hbf2gf/dvidrv.btm + utils/hbf2gf/emdir.c + utils/hbf2gf/emdir.h + utils/hbf2gf/emtexdir.c + utils/hbf2gf/emtexdir.h + utils/hbf2gf/hbf.c + utils/hbf2gf/hbf.h + utils/hbf2gf/hbf2gf.1 + utils/hbf2gf/hbf2gf.c + utils/hbf2gf/hbf2gf.def + utils/hbf2gf/hbf2gf.w + utils/hbf2gf/install-sh + utils/hbf2gf/mkinstalldirs + utils/hbf2gf/scripts/teTeX-0.4/MakeTeXPK.diff + utils/hbf2gf/scripts/teTeX-0.4/MakeTeXTFM.diff + utils/hbf2gf/scripts/web2c-6.1/MakeTeXPK.diff + utils/hbf2gf/scripts/web2c-6.1/README + utils/hbf2gf/scripts/web2c-7.0/MakeTeXPK.diff + utils/hbf2gf/scripts/web2c-7.0/MakeTeXTFM.diff + utils/hbf2gf/scripts/web2c-7.1/MakeTeXPK.diff + utils/hbf2gf/scripts/web2c-7.1/MakeTeXTFM.diff + utils/hbf2gf/scripts/web2c-7.2/mktexpk.diff + utils/hbf2gf/scripts/web2c-7.2/mktextfm.diff + utils/lisp/cjkspace.el + utils/lisp/cjktilde.el + utils/lisp/emacs/cjk-enc.el + utils/lisp/emacs/thai-word.el + utils/lisp/mule-2.3/cjk-enc.el + utils/pyhyphen/GNUmakefile + utils/pyhyphen/hyph-zh-latn-pinyin.in + utils/pyhyphen/make-patterns.sh + utils/pyhyphen/pinyin.c + utils/pyhyphen/pinyin.ldf + utils/pyhyphen/pinyin.tr + utils/pyhyphen/pytest.tex + utils/pyhyphen/pytestutf8.tex + utils/subfonts/clonevf.pl + utils/subfonts/hlatex2agl.pl + utils/subfonts/makefdx.pl + utils/subfonts/sfd2uni.pl + utils/subfonts/subfonts.pe + utils/subfonts/uni2sfd.pl + utils/subfonts/vertical.pe + utils/subfonts/vertref.pe + utils/thaifont/texmf/dvips/garuda-c90/config.garuda-c90 + utils/thaifont/texmf/dvips/norasi-c90/config.norasi-c90 + utils/thaifont/texmf/fonts/enc/dvips/thai/c90.enc + utils/thaifont/texmf/fonts/map/dvips/garuda-c90/garuda-c90.map + utils/thaifont/texmf/fonts/map/dvips/norasi-c90/norasi-c90.map + utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdb8z.tfm + utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdbo8z.tfm + utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdo8z.tfm + utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdr8z.tfm + utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnb8z.tfm + utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnbi8z.tfm + utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftni8z.tfm + utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnr8z.tfm + utils/thaifont/tools/INSTALL + utils/thaifont/tools/c90.etx + utils/thaifont/tools/c90.mtx + utils/thaifont/tools/dbtt-old/config.dbtt-old + utils/thaifont/tools/dbtt-old/dbtt-old-alias.etx + utils/thaifont/tools/dbtt-old/dbtt-old-alias.mtx + utils/thaifont/tools/dbtt-old/dbtt-old-alias.tex + utils/thaifont/tools/dbtt-old/dbtt-old.fontinst + utils/thaifont/tools/dbtt-old/dbtt-old.map + utils/thaifont/tools/garuda-c90.fontinst + utils/thaifont/tools/norasi-c90.fontinst + +---End of MANIFEST--- diff --git a/language/chinese/CJK/cjk-4.8.5/Makefile b/language/chinese/CJK/cjk-4.8.5/Makefile new file mode 100644 index 0000000000..bb2d1e0753 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/Makefile @@ -0,0 +1,216 @@ +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +# You need GNU make to run this Makefile. +# +# Some issues: +# +# o This Makefile is intended to build the distribution tarballs only, +# not to compile binaries. +# +# o Binaries of the CJK utility programs (and the standard tex stuff, +# including dvipdfmx) must work. +# +# o GNU extensions of various utility programs are used. +# +# o emacs 22 (or newer) and the `cweave' program from the `c2cweb' +# package, renamed to `cweavex', are needed. +# +# o The TeXLive version of some font definition files are used (in the +# `texlive' subdirectory). + +version=4.8.5 + +distdir=cjk-$(version) +abs-distdir=$(shell pwd)/$(distdir) + +DISTDIRS=$(shell find . -type d | grep -v .git | grep -v $(distdir)) + +# expected: subdirs `dvi' and `cjk' +CJK2DVI=\ + (cd dvi; \ + TEXINPUTS=$(abs-distdir)/{texlive,texinput//,contrib/wadalab,utils/pyhyphen}: \ + TFMFONTS=$(abs-distdir)/utils/thaifont/texmf/fonts/tfm//: \ + texi2dvi -l latex ../cjk/$@.cjk; \ + rm -f $@.aux $@.log $@.toc) + +# LATEX2DVI srcdir targetdir +# expected: targetdir/dvi +LATEX2DVI=\ + cp $(1)/$@.tex $(2)/dvi; \ + (cd $(2)/dvi; \ + TEXINPUTS=$(abs-distdir)/{texlive,texinput//,contrib/wadalab,utils/pyhyphen}: \ + TFMFONTS=$(abs-distdir)/utils/thaifont/texmf/fonts/tfm//: \ + texi2dvi -l latex $@.tex; \ + rm -f $@.tex $@.aux $@.log $@.toc) + +# DVI2PDF paper-format +# expected: subdir `pdf' and `dvi' +DVI2PDF=\ + dvipdfmx -v -p $(1) -o pdf/$@.pdf dvi/$@.dvi + + +# CONVERT converter srcdir targetdir [paper-format] +CONVERT=\ + cd $(distdir); \ + $(1) < $(2)/$@.tex > $(3)/cjk/$@.cjk; \ + cd $(3); \ + $(CJK2DVI); \ + $(if $(4),$(call DVI2PDF,$(4)),$(call DVI2PDF,letter)) + +# MULE srcdir targetdir [paper-format] +MULE=\ + cd $(distdir); \ + emacs --batch \ + --load utils/lisp/emacs/cjk-enc.el \ + --funcall batch-cjk-write-file \ + $(1)/$@.tex; \ + mv $(1)/$@.cjk $(2)/cjk; \ + cd $(2); \ + $(CJK2DVI); \ + $(if $(3),$(call DVI2PDF,$(3)),$(call DVI2PDF,letter)) + +# LATEX srcdir targetdir [paper-format] +LATEX=\ + cd $(distdir); \ + $(call LATEX2DVI,$(1),$(2)); \ + cd $(2); \ + $(if $(3),$(call DVI2PDF,$(3)),$(call DVI2PDF,letter)) + + +DISTTARGETS=\ + READMEb5 \ + READMEgb \ + Big5 \ + Big5vert \ + CEF_test \ + CJKbabel \ + CJKfntef \ + CJKutf8 \ + CJKspace \ + CJKmixed \ + GB \ + JIS \ + KS \ + SJIS \ + UTF8 \ + muletest \ + pytest \ + py_test \ + rubytest \ + thai \ + thai_utf8 \ + c90 + + +all: + @echo + @echo " Say \`make dist' to build the tarballs." + @echo + + +READMEb5: + $(call CONVERT,bg5conv,doc/chinese,doc,a4) +READMEgb: + $(call LATEX,doc/chinese,doc) +Big5 Big5vert: + $(call CONVERT,bg5conv,examples,examples) +CEF_test: + $(call CONVERT,cefconv,examples,examples) +SJIS: + $(call CONVERT,sjisconv,examples,examples) +CJKbabel muletest rubytest thai thai_utf8: + $(call MULE,examples,examples) +GB JIS KS UTF8 py_test CJKfntef CJKutf8 CJKspace CJKmixed: + $(call LATEX,examples,examples) +pytest: + $(call LATEX,utils/pyhyphen,examples) +c90: + (cd $(abs-distdir)/utils/thaifont/tools; \ + ln -s c90.etx c90.tex) + $(call LATEX,utils/thaifont/tools,doc) + + +dist: distsrc predistdoc distdoc + +distsrc: + -rm -rf $(distdir) + rm -f $(distdir).tar.gz + rm -f $(distdir)-doc.tar.gz + mkdir $(distdir) + srcdir=`pwd`; \ + for d in $(DISTDIRS); do \ + mkdir -p $(distdir)/$$d; \ + (cd $(distdir)/$$d; \ + f=`find $$srcdir/$$d -maxdepth 1 -type f`; \ + test -z "$$f" || ln -s $$f . || true); \ + done + for f in `find $(abs-distdir)/utils -name '*.w'`; do \ + ctangle $$f - `echo $$f | sed s/w$$/c/`; \ + done + tar -H ustar -chf - $(distdir) | gzip -9 -c > $(distdir).tar.gz + +predistdoc: + mkdir -p $(distdir)/doc/{cjk,dvi,pdf} + mkdir -p $(distdir)/examples/{cjk,dvi,pdf} + mkdir -p $(distdir)/doc/man/{dvi,html,pdf,txt} + echo "This directory contains files which are \`preprocessed' with" \ + > $(distdir)/doc/cjk/README + echo "cjk-enc.el, bg5conv, etc." \ + >> $(distdir)/doc/cjk/README + echo \ + >> $(distdir)/doc/cjk/README + echo "You can feed them directly into LaTeX." \ + >> $(distdir)/doc/cjk/README + +distdoc: $(DISTTARGETS) manpages cweb + for f in `find $(distdir) -type l`; do \ + rm $$f; \ + done + for f in `find $(distdir) -name '*.c'`; do \ + rm $$f; \ + done + -for d in `find $(distdir) -depth -type d`; do \ + rmdir --ignore-fail-on-non-empty $$d; \ + done + tar -H ustar -chf - $(distdir) | gzip -9 -c > $(distdir)-doc.tar.gz + rm -rf $(distdir) + +manpages: + for f in `find utils -type f -name '*.1'`; do \ + groff -ww -Tdvi -dpaper=letter -P-pletter -mec -man -rS11 $$f > \ + $(abs-distdir)/doc/man/dvi/`basename $$f .1`.dvi; \ + groff -ww -Tps -dpaper=letter -P-pletter -man -rS11 $$f | \ + ps2pdf - $(abs-distdir)/doc/man/pdf/`basename $$f .1`.pdf; \ + groff -ww -Tlatin1 -man -P-bcu $$f > \ + $(abs-distdir)/doc/man/txt/`basename $$f .1`.txt; \ + groff -ww -Thtml -man $$f > \ + $(abs-distdir)/doc/man/html/`basename $$f .1`.html; \ + done + +cweb: + for f in `find utils -type f -name '*.w'`; do \ + cp $$f $(abs-distdir)/doc/dvi; \ + (cd $(abs-distdir)/doc/dvi; \ + F=`basename $$f .w`; \ + cweavex +a $$F.w; \ + tex $$F; \ + rm -rf $$F.idx $$F.log $$F.scn $$F.tex $$F.toc $$F.w; \ + dvipdfmx -v -p letter -o ../pdf/$$F.pdf $$F); \ + done + +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/README b/language/chinese/CJK/cjk-4.8.5/README new file mode 100644 index 0000000000..17f44a66d9 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/README @@ -0,0 +1,36 @@ +Welcome to CJK version 4.8.5 (16-Oct-2021), a LaTeX2e macro package which +enables the use of CJK scripts (Chinese/Japanese/Korean) in various +encodings, written by Werner Lemberg <wl@gnu.org>. + +A mailing list exists at cjk-list@nongnu.org; to subscribe, send a mail +with the subject `subscribe' (without the quotes) to +cjk-list-request@nongnu.org. A web interface can be found at + + https://lists.nongnu.org/mailman/listinfo/cjk-list + +If you are interested in the process of development you may observe + + http://git.savannah.gnu.org/gitweb/?p=cjk.git;a=summary + +to see the commitments to the git repository of the CJK package, and which +also provides snapshots. + +The home site of the CJK package is + + http://www.nongnu.org/cjk + +Additionally, the latest non-development version can be found on all CTAN +hosts and its mirrors in the directory <CTAN>/language/chinese. + + +The package comes in two parts: + + cjk-4.8.5.tar.gz: The source files. Needed for all platforms. + cjk-4.8.5-doc.tar.gz: Preformatted documentation files: DVI, PS, + output from cjk-enc.el, etc. + +Note that on CTAN and its mirrors, the `src' archive is unpacked; you must +thus get all files and subdirectories from language/chinese/CJK/. + + +---End of README--- diff --git a/language/chinese/CJK/cjk-4.8.5/TODO b/language/chinese/CJK/cjk-4.8.5/TODO new file mode 100644 index 0000000000..208aaf855f --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/TODO @@ -0,0 +1,6 @@ +READMEs in Korean. + +More support for Omega. + + +---End of TODO--- diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/DNP.sfd b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/DNP.sfd new file mode 100644 index 0000000000..cd27942265 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/DNP.sfd @@ -0,0 +1,42 @@ +# DNP.sfd +# +# subfont numbers for JIS character set in DNP font encoding to be used +# with the CJK package for LaTeX. + +sy 1: 0xA1A1_0xA1FE 101: 0xA2A1_0xA2FE +roma 33: 0xA3A1_0xA3FE +hira 1: 0xA4A1_0xA4FE +kata 1: 0xA5A1_0xA5FE +greek 1: 0xA6A1_0xA6FE +russian 1: 0xA7A1_0xA7FE +keisen 1: 0xA8A1_0xA8FE + +ka 0xB0A1_0xB0FE 0xB1A1_0xB1FE 0xB2A1_0xB2E4 +kb 0xB2E5_0xB2FE 0xB3A1_0xB3FE 0xB4A1_0xB4FE 0xB5A1_0xB5CA +kc 0xB5CB_0xB5FE 0xB6A1_0xB6FE 0xB7A1_0xB7FE 0xB8A1_0xB8B0 +kd 0xB8B1_0xB8FE 0xB9A1_0xB9FE 0xBAA1_0xBAF4 +ke 0xBAF5_0xBAFE 0xBBA1_0xBBFE 0xBCA1_0xBCFE 0xBDA1_0xBDDA +kf 0xBDDB_0xBDFE 0xBEA1_0xBEFE 0xBFA1_0xBFFE 0xC0A1_0xC0C0 +kg 0xC0C1_0xC0FE 0xC1A1_0xC1FE 0xC2A1_0xC2FE 0xC3A1_0xC3A6 +kh 0xC3A7_0xC3FE 0xC4A1_0xC4FE 0xC5A1_0xC5EA +ki 0xC5EB_0xC5FE 0xC6A1_0xC6FE 0xC7A1_0xC7FE 0xC8A1_0xC8D0 +kj 0xC8D1_0xC8FE 0xC9A1_0xC9FE 0xCAA1_0xCAFE 0xCBA1_0xCBB6 +kk 0xCBB7_0xCBFE 0xCCA1_0xCCFE 0xCDA1_0xCDFA +kl 0xCDFB_0xCDFE 0xCEA1_0xCEFE 0xCFA1_0xCFFE + +km 0xD0A1_0xD0FE 0xD1A1_0xD1FE 0xD2A1_0xD2E4 +kn 0xD2E5_0xD2FE 0xD3A1_0xD3FE 0xD4A1_0xD4FE 0xD5A1_0xD5CA +ko 0xD5CB_0xD5FE 0xD6A1_0xD6FE 0xD7A1_0xD7FE 0xD8A1_0xD8B0 +kp 0xD8B1_0xD8FE 0xD9A1_0xD9FE 0xDAA1_0xDAF4 +kq 0xDAF5_0xDAFE 0xDBA1_0xDBFE 0xDCA1_0xDCFE 0xDDA1_0xDDDA +kr 0xDDDB_0xDDFE 0xDEA1_0xDEFE 0xDFA1_0xDFFE 0xE0A1_0xE0C0 +ks 0xE0C1_0xE0FE 0xE1A1_0xE1FE 0xE2A1_0xE2FE 0xE3A1_0xE3A6 +kt 0xE3A7_0xE3FE 0xE4A1_0xE4FE 0xE5A1_0xE5EA +ku 0xE5EB_0xE5FE 0xE6A1_0xE6FE 0xE7A1_0xE7FE 0xE8A1_0xE8D0 +kv 0xE8D1_0xE8FE 0xE9A1_0xE9FE 0xEAA1_0xEAFE 0xEBA1_0xEBB6 +kw 0xEBB7_0xEBFE 0xECA1_0xECFE 0xEDA1_0xEDFA +kx 0xEDFB_0xEDFE 0xEEA1_0xEEFE 0xEFA1_0xEFFE 0xF0A1_0xF0E0 +ky 0xF0E1_0xF0FE 0xF1A1_0xF1FE 0xF2A1_0xF2FE 0xF3A1_0xF3C6 +kz 0xF3C7_0xF3FE 0xF4A1_0xF4FE + +# eof diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42goth.fd b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42goth.fd new file mode 100644 index 0000000000..cc73302057 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42goth.fd @@ -0,0 +1,22 @@ +% This is the file c42goth.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c42goth.fd}[\filedate\space\fileversion] + +% Japanese characters in JIS encoding scheme using Wadalab fonts: +% wadalab-gothic-0-13 + +\DeclareFontFamily{C42}{goth}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C42}{goth}{m}{n} + { <-> CJK * dgj}{\CJKnormal} +\DeclareFontShape{C42}{goth}{bx}{n} + { <-> CJKb * dgj}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42goth.fdx b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42goth.fdx new file mode 100644 index 0000000000..0d90d5d318 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42goth.fdx @@ -0,0 +1,66 @@ +% This is the file c42goth.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c42goth.fdx}[\filedate\space\fileversion] + + +\CJKvdef{rotate}{} +\CJKvdef{offset}{.5em} + +\CJKvdef{m/n/sy/2}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{2}\hss}} +\CJKvdef{m/n/sy/3}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{3}\hss}} +\CJKvdef{m/n/sy/4}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{4}\hss}} +\CJKvdef{m/n/sy/5}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{5}\hss}} +\CJKvdef{m/n/sy/28}{\CJKsymbolsimple{28}} +\CJKvdef{m/n/sy/33}{\CJKsymbolsimple{33}} +\CJKvdef{m/n/sy/36}{\CJKsymbolsimple{36}} +\CJKvdef{m/n/sy/37}{\CJKsymbolsimple{37}} +\CJKvdef{m/n/sy/42}{\CJKsymbolsimple{42}} +\CJKvdef{m/n/sy/43}{\CJKsymbolsimple{43}} +\CJKvdef{m/n/sy/44}{\CJKsymbolsimple{44}} +\CJKvdef{m/n/sy/45}{\CJKsymbolsimple{45}} +\CJKvdef{m/n/sy/46}{\CJKsymbolsimple{46}} +\CJKvdef{m/n/sy/47}{\CJKsymbolsimple{47}} +\CJKvdef{m/n/sy/48}{\CJKsymbolsimple{48}} +\CJKvdef{m/n/sy/49}{\CJKsymbolsimple{49}} +\CJKvdef{m/n/sy/50}{\CJKsymbolsimple{50}} +\CJKvdef{m/n/sy/51}{\CJKsymbolsimple{51}} +\CJKvdef{m/n/sy/52}{\CJKsymbolsimple{52}} +\CJKvdef{m/n/sy/53}{\CJKsymbolsimple{53}} +\CJKvdef{m/n/sy/54}{\CJKsymbolsimple{54}} +\CJKvdef{m/n/sy/55}{\CJKsymbolsimple{55}} +\CJKvdef{m/n/sy/56}{\CJKsymbolsimple{56}} +\CJKvdef{m/n/sy/57}{\CJKsymbolsimple{57}} + +\CJKvlet{bx/n/sy/2}{m/n/sy/2} +\CJKvlet{bx/n/sy/3}{m/n/sy/3} +\CJKvlet{bx/n/sy/4}{m/n/sy/4} +\CJKvlet{bx/n/sy/5}{m/n/sy/5} +\CJKvlet{bx/n/sy/28}{m/n/sy/28} +\CJKvlet{bx/n/sy/33}{m/n/sy/33} +\CJKvlet{bx/n/sy/36}{m/n/sy/36} +\CJKvlet{bx/n/sy/37}{m/n/sy/37} +\CJKvlet{bx/n/sy/42}{m/n/sy/42} +\CJKvlet{bx/n/sy/43}{m/n/sy/43} +\CJKvlet{bx/n/sy/44}{m/n/sy/44} +\CJKvlet{bx/n/sy/45}{m/n/sy/45} +\CJKvlet{bx/n/sy/46}{m/n/sy/46} +\CJKvlet{bx/n/sy/47}{m/n/sy/47} +\CJKvlet{bx/n/sy/48}{m/n/sy/48} +\CJKvlet{bx/n/sy/49}{m/n/sy/49} +\CJKvlet{bx/n/sy/50}{m/n/sy/50} +\CJKvlet{bx/n/sy/51}{m/n/sy/51} +\CJKvlet{bx/n/sy/52}{m/n/sy/52} +\CJKvlet{bx/n/sy/53}{m/n/sy/53} +\CJKvlet{bx/n/sy/54}{m/n/sy/54} +\CJKvlet{bx/n/sy/55}{m/n/sy/55} +\CJKvlet{bx/n/sy/56}{m/n/sy/56} +\CJKvlet{bx/n/sy/57}{m/n/sy/57} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42maru.fd b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42maru.fd new file mode 100644 index 0000000000..ba987c1f67 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42maru.fd @@ -0,0 +1,23 @@ +% This is the file c42maru.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c42maru.fd}[\filedate\space\fileversion] + + +% Japanese characters in JIS encoding scheme using Wadalab fonts: +% wadalab-maru-0-8 + +\DeclareFontFamily{C42}{maru}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C42}{maru}{m}{n} + { <-> CJK * mrj}{\CJKnormal} +\DeclareFontShape{C42}{maru}{bx}{n} + { <-> CJKb * mrj}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42maru.fdx b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42maru.fdx new file mode 100644 index 0000000000..b5ce14177b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42maru.fdx @@ -0,0 +1,66 @@ +% This is the file c42maru.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c42maru.fdx}[\filedate\space\fileversion] + + +\CJKvdef{rotate}{} +\CJKvdef{offset}{.5em} + +\CJKvdef{m/n/sy/2}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{2}\hss}} +\CJKvdef{m/n/sy/3}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{3}\hss}} +\CJKvdef{m/n/sy/4}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{4}\hss}} +\CJKvdef{m/n/sy/5}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{5}\hss}} +\CJKvdef{m/n/sy/28}{\CJKsymbolsimple{28}} +\CJKvdef{m/n/sy/33}{\CJKsymbolsimple{33}} +\CJKvdef{m/n/sy/36}{\CJKsymbolsimple{36}} +\CJKvdef{m/n/sy/37}{\CJKsymbolsimple{37}} +\CJKvdef{m/n/sy/42}{\CJKsymbolsimple{42}} +\CJKvdef{m/n/sy/43}{\CJKsymbolsimple{43}} +\CJKvdef{m/n/sy/44}{\CJKsymbolsimple{44}} +\CJKvdef{m/n/sy/45}{\CJKsymbolsimple{45}} +\CJKvdef{m/n/sy/46}{\CJKsymbolsimple{46}} +\CJKvdef{m/n/sy/47}{\CJKsymbolsimple{47}} +\CJKvdef{m/n/sy/48}{\CJKsymbolsimple{48}} +\CJKvdef{m/n/sy/49}{\CJKsymbolsimple{49}} +\CJKvdef{m/n/sy/50}{\CJKsymbolsimple{50}} +\CJKvdef{m/n/sy/51}{\CJKsymbolsimple{51}} +\CJKvdef{m/n/sy/52}{\CJKsymbolsimple{52}} +\CJKvdef{m/n/sy/53}{\CJKsymbolsimple{53}} +\CJKvdef{m/n/sy/54}{\CJKsymbolsimple{54}} +\CJKvdef{m/n/sy/55}{\CJKsymbolsimple{55}} +\CJKvdef{m/n/sy/56}{\CJKsymbolsimple{56}} +\CJKvdef{m/n/sy/57}{\CJKsymbolsimple{57}} + +\CJKvlet{bx/n/sy/2}{m/n/sy/2} +\CJKvlet{bx/n/sy/3}{m/n/sy/3} +\CJKvlet{bx/n/sy/4}{m/n/sy/4} +\CJKvlet{bx/n/sy/5}{m/n/sy/5} +\CJKvlet{bx/n/sy/28}{m/n/sy/28} +\CJKvlet{bx/n/sy/33}{m/n/sy/33} +\CJKvlet{bx/n/sy/36}{m/n/sy/36} +\CJKvlet{bx/n/sy/37}{m/n/sy/37} +\CJKvlet{bx/n/sy/42}{m/n/sy/42} +\CJKvlet{bx/n/sy/43}{m/n/sy/43} +\CJKvlet{bx/n/sy/44}{m/n/sy/44} +\CJKvlet{bx/n/sy/45}{m/n/sy/45} +\CJKvlet{bx/n/sy/46}{m/n/sy/46} +\CJKvlet{bx/n/sy/47}{m/n/sy/47} +\CJKvlet{bx/n/sy/48}{m/n/sy/48} +\CJKvlet{bx/n/sy/49}{m/n/sy/49} +\CJKvlet{bx/n/sy/50}{m/n/sy/50} +\CJKvlet{bx/n/sy/51}{m/n/sy/51} +\CJKvlet{bx/n/sy/52}{m/n/sy/52} +\CJKvlet{bx/n/sy/53}{m/n/sy/53} +\CJKvlet{bx/n/sy/54}{m/n/sy/54} +\CJKvlet{bx/n/sy/55}{m/n/sy/55} +\CJKvlet{bx/n/sy/56}{m/n/sy/56} +\CJKvlet{bx/n/sy/57}{m/n/sy/57} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42min.fd b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42min.fd new file mode 100644 index 0000000000..3ef9cdee49 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42min.fd @@ -0,0 +1,26 @@ +% This is the file c42min.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c42min.fd}[\filedate\space\fileversion] + + +% Japanese characters in JIS encoding scheme using Wadalab fonts: +% wadalab-mincho-0-8 (`light' series) +% wadalab-mincho-0-12 (`normal' series) + +\DeclareFontFamily{C42}{min}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C42}{min}{l}{n} + { <-> CJK * mcj}{} +\DeclareFontShape{C42}{min}{m}{n} + { <-> CJK * dmj}{\CJKnormal} +\DeclareFontShape{C42}{min}{bx}{n} + { <-> CJKb * dmj}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42min.fdx b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42min.fdx new file mode 100644 index 0000000000..1c519596de --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c42min.fdx @@ -0,0 +1,91 @@ +% This is the file c42min.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c42min.fdx}[\filedate\space\fileversion] + + +\CJKvdef{rotate}{} +\CJKvdef{offset}{.5em} + +\CJKvdef{m/n/sy/2}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{2}\hss}} +\CJKvdef{m/n/sy/3}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{3}\hss}} +\CJKvdef{m/n/sy/4}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{4}\hss}} +\CJKvdef{m/n/sy/5}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{5}\hss}} +\CJKvdef{m/n/sy/28}{\CJKsymbolsimple{28}} +\CJKvdef{m/n/sy/33}{\CJKsymbolsimple{33}} +\CJKvdef{m/n/sy/36}{\CJKsymbolsimple{36}} +\CJKvdef{m/n/sy/37}{\CJKsymbolsimple{37}} +\CJKvdef{m/n/sy/42}{\CJKsymbolsimple{42}} +\CJKvdef{m/n/sy/43}{\CJKsymbolsimple{43}} +\CJKvdef{m/n/sy/44}{\CJKsymbolsimple{44}} +\CJKvdef{m/n/sy/45}{\CJKsymbolsimple{45}} +\CJKvdef{m/n/sy/46}{\CJKsymbolsimple{46}} +\CJKvdef{m/n/sy/47}{\CJKsymbolsimple{47}} +\CJKvdef{m/n/sy/48}{\CJKsymbolsimple{48}} +\CJKvdef{m/n/sy/49}{\CJKsymbolsimple{49}} +\CJKvdef{m/n/sy/50}{\CJKsymbolsimple{50}} +\CJKvdef{m/n/sy/51}{\CJKsymbolsimple{51}} +\CJKvdef{m/n/sy/52}{\CJKsymbolsimple{52}} +\CJKvdef{m/n/sy/53}{\CJKsymbolsimple{53}} +\CJKvdef{m/n/sy/54}{\CJKsymbolsimple{54}} +\CJKvdef{m/n/sy/55}{\CJKsymbolsimple{55}} +\CJKvdef{m/n/sy/56}{\CJKsymbolsimple{56}} +\CJKvdef{m/n/sy/57}{\CJKsymbolsimple{57}} + +\CJKvlet{bx/n/sy/2}{m/n/sy/2} +\CJKvlet{bx/n/sy/3}{m/n/sy/3} +\CJKvlet{bx/n/sy/4}{m/n/sy/4} +\CJKvlet{bx/n/sy/5}{m/n/sy/5} +\CJKvlet{bx/n/sy/28}{m/n/sy/28} +\CJKvlet{bx/n/sy/33}{m/n/sy/33} +\CJKvlet{bx/n/sy/36}{m/n/sy/36} +\CJKvlet{bx/n/sy/37}{m/n/sy/37} +\CJKvlet{bx/n/sy/42}{m/n/sy/42} +\CJKvlet{bx/n/sy/43}{m/n/sy/43} +\CJKvlet{bx/n/sy/44}{m/n/sy/44} +\CJKvlet{bx/n/sy/45}{m/n/sy/45} +\CJKvlet{bx/n/sy/46}{m/n/sy/46} +\CJKvlet{bx/n/sy/47}{m/n/sy/47} +\CJKvlet{bx/n/sy/48}{m/n/sy/48} +\CJKvlet{bx/n/sy/49}{m/n/sy/49} +\CJKvlet{bx/n/sy/50}{m/n/sy/50} +\CJKvlet{bx/n/sy/51}{m/n/sy/51} +\CJKvlet{bx/n/sy/52}{m/n/sy/52} +\CJKvlet{bx/n/sy/53}{m/n/sy/53} +\CJKvlet{bx/n/sy/54}{m/n/sy/54} +\CJKvlet{bx/n/sy/55}{m/n/sy/55} +\CJKvlet{bx/n/sy/56}{m/n/sy/56} +\CJKvlet{bx/n/sy/57}{m/n/sy/57} + +\CJKvlet{l/n/sy/2}{m/n/sy/2} +\CJKvlet{l/n/sy/3}{m/n/sy/3} +\CJKvlet{l/n/sy/4}{m/n/sy/4} +\CJKvlet{l/n/sy/5}{m/n/sy/5} +\CJKvlet{l/n/sy/28}{m/n/sy/28} +\CJKvlet{l/n/sy/33}{m/n/sy/33} +\CJKvlet{l/n/sy/36}{m/n/sy/36} +\CJKvlet{l/n/sy/37}{m/n/sy/37} +\CJKvlet{l/n/sy/42}{m/n/sy/42} +\CJKvlet{l/n/sy/43}{m/n/sy/43} +\CJKvlet{l/n/sy/44}{m/n/sy/44} +\CJKvlet{l/n/sy/45}{m/n/sy/45} +\CJKvlet{l/n/sy/46}{m/n/sy/46} +\CJKvlet{l/n/sy/47}{m/n/sy/47} +\CJKvlet{l/n/sy/48}{m/n/sy/48} +\CJKvlet{l/n/sy/49}{m/n/sy/49} +\CJKvlet{l/n/sy/50}{m/n/sy/50} +\CJKvlet{l/n/sy/51}{m/n/sy/51} +\CJKvlet{l/n/sy/52}{m/n/sy/52} +\CJKvlet{l/n/sy/53}{m/n/sy/53} +\CJKvlet{l/n/sy/54}{m/n/sy/54} +\CJKvlet{l/n/sy/55}{m/n/sy/55} +\CJKvlet{l/n/sy/56}{m/n/sy/56} +\CJKvlet{l/n/sy/57}{m/n/sy/57} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c52maru.fd b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c52maru.fd new file mode 100644 index 0000000000..d9bbfe5fc2 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c52maru.fd @@ -0,0 +1,23 @@ +% This is the file c52maru.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c52maru.fd}[\filedate\space\fileversion] + + +% Japanese characters in JIS2 encoding scheme using Wadalab fonts: +% wadalab-maru-1-8 + +\DeclareFontFamily{C52}{maru}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C52}{maru}{m}{n} + { <-> CJK * mr2j}{\CJKnormal} +\DeclareFontShape{C52}{maru}{bx}{n} + { <-> CJKb * mr2j}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c52maru.fdx b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c52maru.fdx new file mode 100644 index 0000000000..10a6796aa3 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c52maru.fdx @@ -0,0 +1,16 @@ +% This is the file c52maru.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c52maru.fdx}[\filedate\space\fileversion] + + +\CJKvdef{rotate}{} +\CJKvdef{offset}{.5em} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c52min.fd b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c52min.fd new file mode 100644 index 0000000000..eaa908f4f5 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c52min.fd @@ -0,0 +1,23 @@ +% This is the file c52min.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c52min.fd}[\filedate\space\fileversion] + + +% Japanese characters in JIS2 encoding scheme using Wadalab fonts: +% wadalab-mincho-1-8 + +\DeclareFontFamily{C52}{min}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C52}{min}{m}{n} + { <-> CJK * mc2j}{\CJKnormal} +\DeclareFontShape{C52}{min}{bx}{n} + { <-> CJKb * mc2j}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c52min.fdx b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c52min.fdx new file mode 100644 index 0000000000..8a92df0175 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c52min.fdx @@ -0,0 +1,16 @@ +% This is the file c52min.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c52min.fdx}[\filedate\space\fileversion] + + +\CJKvdef{rotate}{} +\CJKvdef{offset}{.5em} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70goth.fd b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70goth.fd new file mode 100644 index 0000000000..91b307381d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70goth.fd @@ -0,0 +1,25 @@ +% This is the file c70goth.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c70goth.fd}[\filedate\space\fileversion] + + +% character set: Unicode U+0080 - U+FFFD +% font encoding: Unicode +% +% udgj is Wadalab gothic-0-13. + +\DeclareFontFamily{C70}{goth}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C70}{goth}{m}{n} + { <-> CJK * udgj}{\CJKnormal} +\DeclareFontShape{C70}{goth}{bx}{n} + { <-> CJKb * udgj}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70goth.fdx b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70goth.fdx new file mode 100644 index 0000000000..5ba61060d5 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70goth.fdx @@ -0,0 +1,137 @@ +% This is the file c70goth.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Gernot Hassenpflug <gernot@nict.go.jp> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c70goth.fdx}[\filedate\space\fileversion] + + +\CJKvdef{rotate}{} +\CJKvdef{offset}{.5em} + +\CJKvdef{m/n/00/163}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{163}\hss}} +\CJKvdef{m/n/00/167}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{167}\hss}} + +\CJKvdef{m/n/20/24}{\CJKsymbolsimple{24}} +\CJKvdef{m/n/20/25}{\CJKsymbolsimple{25}} +\CJKvdef{m/n/20/28}{\CJKsymbolsimple{28}} +\CJKvdef{m/n/20/29}{\CJKsymbolsimple{29}} +\CJKvdef{m/n/20/37}{\CJKsymbolsimple{37}} +\CJKvdef{m/n/20/38}{\CJKsymbolsimple{38}} + +\CJKvdef{m/n/30/1}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{1}\hss}} +\CJKvdef{m/n/30/2}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{2}\hss}} +\CJKvdef{m/n/30/8}{\CJKsymbolsimple{8}} +\CJKvdef{m/n/30/9}{\CJKsymbolsimple{9}} +\CJKvdef{m/n/30/10}{\CJKsymbolsimple{10}} +\CJKvdef{m/n/30/11}{\CJKsymbolsimple{11}} +\CJKvdef{m/n/30/12}{\CJKsymbolsimple{12}} +\CJKvdef{m/n/30/13}{\CJKsymbolsimple{13}} +\CJKvdef{m/n/30/14}{\CJKsymbolsimple{14}} +\CJKvdef{m/n/30/15}{\CJKsymbolsimple{15}} +\CJKvdef{m/n/30/16}{\CJKsymbolsimple{16}} +\CJKvdef{m/n/30/17}{\CJKsymbolsimple{17}} +\CJKvdef{m/n/30/20}{\CJKsymbolsimple{20}} +\CJKvdef{m/n/30/21}{\CJKsymbolsimple{21}} +\CJKvdef{m/n/30/28}{\CJKsymbolsimple{28}} +\CJKvdef{m/n/30/252}{\CJKsymbolsimple{252}} + +\CJKvdef{m/n/ff/8}{\CJKsymbolsimple{8}} +\CJKvdef{m/n/ff/9}{\CJKsymbolsimple{9}} +\CJKvdef{m/n/ff/12}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{12}\hss}} +\CJKvdef{m/n/ff/14}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{14}\hss}} +\CJKvdef{m/n/ff/59}{\CJKsymbolsimple{59}} +\CJKvdef{m/n/ff/61}{\CJKsymbolsimple{61}} +\CJKvdef{m/n/ff/91}{\CJKsymbolsimple{91}} +\CJKvdef{m/n/ff/93}{\CJKsymbolsimple{93}} + +% Reposition small kana letters for vertical typesetting. + +\CJKvdef{m/n/30/65}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{65}\hss}} +\CJKvdef{m/n/30/67}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{67}\hss}} +\CJKvdef{m/n/30/69}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{69}\hss}} +\CJKvdef{m/n/30/71}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{71}\hss}} +\CJKvdef{m/n/30/73}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{73}\hss}} +\CJKvdef{m/n/30/99}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{99}\hss}} +\CJKvdef{m/n/30/131}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{131}\hss}} +\CJKvdef{m/n/30/133}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{133}\hss}} +\CJKvdef{m/n/30/135}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{135}\hss}} +\CJKvdef{m/n/30/142}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{142}\hss}} + +\CJKvdef{m/n/30/161}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{161}\hss}} +\CJKvdef{m/n/30/163}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{163}\hss}} +\CJKvdef{m/n/30/165}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{165}\hss}} +\CJKvdef{m/n/30/167}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{167}\hss}} +\CJKvdef{m/n/30/169}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{169}\hss}} +\CJKvdef{m/n/30/195}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{195}\hss}} +\CJKvdef{m/n/30/227}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{227}\hss}} +\CJKvdef{m/n/30/229}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{229}\hss}} +\CJKvdef{m/n/30/231}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{231}\hss}} +\CJKvdef{m/n/30/238}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{238}\hss}} +\CJKvdef{m/n/30/245}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{245}\hss}} +\CJKvdef{m/n/30/246}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{246}\hss}} + + +\CJKvlet{bx/n/00/163}{m/n/00/163} +\CJKvlet{bx/n/00/167}{m/n/00/167} + +\CJKvlet{bx/n/20/24}{m/n/20/24} +\CJKvlet{bx/n/20/25}{m/n/20/25} +\CJKvlet{bx/n/20/28}{m/n/20/28} +\CJKvlet{bx/n/20/29}{m/n/20/29} +\CJKvlet{bx/n/20/37}{m/n/20/37} +\CJKvlet{bx/n/20/38}{m/n/20/38} + +\CJKvlet{bx/n/30/1}{m/n/30/1} +\CJKvlet{bx/n/30/2}{m/n/30/2} +\CJKvlet{bx/n/30/8}{m/n/30/8} +\CJKvlet{bx/n/30/9}{m/n/30/9} +\CJKvlet{bx/n/30/10}{m/n/30/10} +\CJKvlet{bx/n/30/11}{m/n/30/11} +\CJKvlet{bx/n/30/12}{m/n/30/12} +\CJKvlet{bx/n/30/13}{m/n/30/13} +\CJKvlet{bx/n/30/14}{m/n/30/14} +\CJKvlet{bx/n/30/15}{m/n/30/15} +\CJKvlet{bx/n/30/16}{m/n/30/16} +\CJKvlet{bx/n/30/17}{m/n/30/17} +\CJKvlet{bx/n/30/20}{m/n/30/20} +\CJKvlet{bx/n/30/21}{m/n/30/21} +\CJKvlet{bx/n/30/28}{m/n/30/28} +\CJKvlet{bx/n/30/65}{m/n/30/65} +\CJKvlet{bx/n/30/67}{m/n/30/67} +\CJKvlet{bx/n/30/69}{m/n/30/69} +\CJKvlet{bx/n/30/71}{m/n/30/71} +\CJKvlet{bx/n/30/73}{m/n/30/73} +\CJKvlet{bx/n/30/99}{m/n/30/99} +\CJKvlet{bx/n/30/131}{m/n/30/131} +\CJKvlet{bx/n/30/133}{m/n/30/133} +\CJKvlet{bx/n/30/135}{m/n/30/135} +\CJKvlet{bx/n/30/142}{m/n/30/142} +\CJKvlet{bx/n/30/161}{m/n/30/161} +\CJKvlet{bx/n/30/163}{m/n/30/163} +\CJKvlet{bx/n/30/165}{m/n/30/165} +\CJKvlet{bx/n/30/167}{m/n/30/167} +\CJKvlet{bx/n/30/169}{m/n/30/169} +\CJKvlet{bx/n/30/195}{m/n/30/195} +\CJKvlet{bx/n/30/227}{m/n/30/227} +\CJKvlet{bx/n/30/229}{m/n/30/229} +\CJKvlet{bx/n/30/231}{m/n/30/231} +\CJKvlet{bx/n/30/238}{m/n/30/238} +\CJKvlet{bx/n/30/245}{m/n/30/245} +\CJKvlet{bx/n/30/246}{m/n/30/246} +\CJKvlet{bx/n/30/252}{m/n/30/252} + +\CJKvlet{bx/n/ff/8}{m/n/ff/8} +\CJKvlet{bx/n/ff/9}{m/n/ff/9} +\CJKvlet{bx/n/ff/12}{m/n/ff/12} +\CJKvlet{bx/n/ff/14}{m/n/ff/14} +\CJKvlet{bx/n/ff/59}{m/n/ff/59} +\CJKvlet{bx/n/ff/61}{m/n/ff/61} +\CJKvlet{bx/n/ff/91}{m/n/ff/91} +\CJKvlet{bx/n/ff/93}{m/n/ff/93} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70maru.fd b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70maru.fd new file mode 100644 index 0000000000..9419907643 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70maru.fd @@ -0,0 +1,25 @@ +% This is the file c70maru.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c70maru.fd}[\filedate\space\fileversion] + + +% character set: Unicode U+0080 - U+FFFD +% font encoding: Unicode +% +% umrj is Wadalab maru-0-8 combined with maru-1-8. + +\DeclareFontFamily{C70}{maru}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C70}{maru}{m}{n} + { <-> CJK * umrj}{\CJKnormal} +\DeclareFontShape{C70}{maru}{bx}{n} + { <-> CJKb * umrj}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70maru.fdx b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70maru.fdx new file mode 100644 index 0000000000..b2840a42a0 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70maru.fdx @@ -0,0 +1,137 @@ +% This is the file c70maru.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Gernot Hassenpflug <gernot@nict.go.jp> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c70maru.fdx}[\filedate\space\fileversion] + + +\CJKvdef{rotate}{} +\CJKvdef{offset}{.5em} + +\CJKvdef{m/n/00/163}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{163}\hss}} +\CJKvdef{m/n/00/167}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{167}\hss}} + +\CJKvdef{m/n/20/24}{\CJKsymbolsimple{24}} +\CJKvdef{m/n/20/25}{\CJKsymbolsimple{25}} +\CJKvdef{m/n/20/28}{\CJKsymbolsimple{28}} +\CJKvdef{m/n/20/29}{\CJKsymbolsimple{29}} +\CJKvdef{m/n/20/37}{\CJKsymbolsimple{37}} +\CJKvdef{m/n/20/38}{\CJKsymbolsimple{38}} + +\CJKvdef{m/n/30/1}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{1}\hss}} +\CJKvdef{m/n/30/2}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{2}\hss}} +\CJKvdef{m/n/30/8}{\CJKsymbolsimple{8}} +\CJKvdef{m/n/30/9}{\CJKsymbolsimple{9}} +\CJKvdef{m/n/30/10}{\CJKsymbolsimple{10}} +\CJKvdef{m/n/30/11}{\CJKsymbolsimple{11}} +\CJKvdef{m/n/30/12}{\CJKsymbolsimple{12}} +\CJKvdef{m/n/30/13}{\CJKsymbolsimple{13}} +\CJKvdef{m/n/30/14}{\CJKsymbolsimple{14}} +\CJKvdef{m/n/30/15}{\CJKsymbolsimple{15}} +\CJKvdef{m/n/30/16}{\CJKsymbolsimple{16}} +\CJKvdef{m/n/30/17}{\CJKsymbolsimple{17}} +\CJKvdef{m/n/30/20}{\CJKsymbolsimple{20}} +\CJKvdef{m/n/30/21}{\CJKsymbolsimple{21}} +\CJKvdef{m/n/30/28}{\CJKsymbolsimple{28}} +\CJKvdef{m/n/30/252}{\CJKsymbolsimple{252}} + +\CJKvdef{m/n/ff/8}{\CJKsymbolsimple{8}} +\CJKvdef{m/n/ff/9}{\CJKsymbolsimple{9}} +\CJKvdef{m/n/ff/12}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{12}\hss}} +\CJKvdef{m/n/ff/14}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{14}\hss}} +\CJKvdef{m/n/ff/59}{\CJKsymbolsimple{59}} +\CJKvdef{m/n/ff/61}{\CJKsymbolsimple{61}} +\CJKvdef{m/n/ff/91}{\CJKsymbolsimple{91}} +\CJKvdef{m/n/ff/93}{\CJKsymbolsimple{93}} + +% Reposition small kana letters for vertical typesetting. + +\CJKvdef{m/n/30/65}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{65}\hss}} +\CJKvdef{m/n/30/67}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{67}\hss}} +\CJKvdef{m/n/30/69}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{69}\hss}} +\CJKvdef{m/n/30/71}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{71}\hss}} +\CJKvdef{m/n/30/73}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{73}\hss}} +\CJKvdef{m/n/30/99}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{99}\hss}} +\CJKvdef{m/n/30/131}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{131}\hss}} +\CJKvdef{m/n/30/133}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{133}\hss}} +\CJKvdef{m/n/30/135}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{135}\hss}} +\CJKvdef{m/n/30/142}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{142}\hss}} + +\CJKvdef{m/n/30/161}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{161}\hss}} +\CJKvdef{m/n/30/163}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{163}\hss}} +\CJKvdef{m/n/30/165}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{165}\hss}} +\CJKvdef{m/n/30/167}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{167}\hss}} +\CJKvdef{m/n/30/169}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{169}\hss}} +\CJKvdef{m/n/30/195}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{195}\hss}} +\CJKvdef{m/n/30/227}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{227}\hss}} +\CJKvdef{m/n/30/229}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{229}\hss}} +\CJKvdef{m/n/30/231}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{231}\hss}} +\CJKvdef{m/n/30/238}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{238}\hss}} +\CJKvdef{m/n/30/245}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{245}\hss}} +\CJKvdef{m/n/30/246}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{246}\hss}} + + +\CJKvlet{bx/n/00/163}{m/n/00/163} +\CJKvlet{bx/n/00/167}{m/n/00/167} + +\CJKvlet{bx/n/20/24}{m/n/20/24} +\CJKvlet{bx/n/20/25}{m/n/20/25} +\CJKvlet{bx/n/20/28}{m/n/20/28} +\CJKvlet{bx/n/20/29}{m/n/20/29} +\CJKvlet{bx/n/20/37}{m/n/20/37} +\CJKvlet{bx/n/20/38}{m/n/20/38} + +\CJKvlet{bx/n/30/1}{m/n/30/1} +\CJKvlet{bx/n/30/2}{m/n/30/2} +\CJKvlet{bx/n/30/8}{m/n/30/8} +\CJKvlet{bx/n/30/9}{m/n/30/9} +\CJKvlet{bx/n/30/10}{m/n/30/10} +\CJKvlet{bx/n/30/11}{m/n/30/11} +\CJKvlet{bx/n/30/12}{m/n/30/12} +\CJKvlet{bx/n/30/13}{m/n/30/13} +\CJKvlet{bx/n/30/14}{m/n/30/14} +\CJKvlet{bx/n/30/15}{m/n/30/15} +\CJKvlet{bx/n/30/16}{m/n/30/16} +\CJKvlet{bx/n/30/17}{m/n/30/17} +\CJKvlet{bx/n/30/20}{m/n/30/20} +\CJKvlet{bx/n/30/21}{m/n/30/21} +\CJKvlet{bx/n/30/28}{m/n/30/28} +\CJKvlet{bx/n/30/65}{m/n/30/65} +\CJKvlet{bx/n/30/67}{m/n/30/67} +\CJKvlet{bx/n/30/69}{m/n/30/69} +\CJKvlet{bx/n/30/71}{m/n/30/71} +\CJKvlet{bx/n/30/73}{m/n/30/73} +\CJKvlet{bx/n/30/99}{m/n/30/99} +\CJKvlet{bx/n/30/131}{m/n/30/131} +\CJKvlet{bx/n/30/133}{m/n/30/133} +\CJKvlet{bx/n/30/135}{m/n/30/135} +\CJKvlet{bx/n/30/142}{m/n/30/142} +\CJKvlet{bx/n/30/161}{m/n/30/161} +\CJKvlet{bx/n/30/163}{m/n/30/163} +\CJKvlet{bx/n/30/165}{m/n/30/165} +\CJKvlet{bx/n/30/167}{m/n/30/167} +\CJKvlet{bx/n/30/169}{m/n/30/169} +\CJKvlet{bx/n/30/195}{m/n/30/195} +\CJKvlet{bx/n/30/227}{m/n/30/227} +\CJKvlet{bx/n/30/229}{m/n/30/229} +\CJKvlet{bx/n/30/231}{m/n/30/231} +\CJKvlet{bx/n/30/238}{m/n/30/238} +\CJKvlet{bx/n/30/245}{m/n/30/245} +\CJKvlet{bx/n/30/246}{m/n/30/246} +\CJKvlet{bx/n/30/252}{m/n/30/252} + +\CJKvlet{bx/n/ff/8}{m/n/ff/8} +\CJKvlet{bx/n/ff/9}{m/n/ff/9} +\CJKvlet{bx/n/ff/12}{m/n/ff/12} +\CJKvlet{bx/n/ff/14}{m/n/ff/14} +\CJKvlet{bx/n/ff/59}{m/n/ff/59} +\CJKvlet{bx/n/ff/61}{m/n/ff/61} +\CJKvlet{bx/n/ff/91}{m/n/ff/91} +\CJKvlet{bx/n/ff/93}{m/n/ff/93} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70min.fd b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70min.fd new file mode 100644 index 0000000000..19b11619dc --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70min.fd @@ -0,0 +1,28 @@ +% This is the file c70min.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c70min.fd}[\filedate\space\fileversion] + + +% character set: Unicode U+0080 - U+FFFD +% font encoding: Unicode +% +% udmj is Wadalab mincho-0-12 combined with mincho-1-8. +% umcj is Wadalab mincho-0-8 combined with mincho-1-8. + +\DeclareFontFamily{C70}{min}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C70}{min}{l}{n} + { <-> CJK * umcj}{} +\DeclareFontShape{C70}{min}{m}{n} + { <-> CJK * udmj}{\CJKnormal} +\DeclareFontShape{C70}{min}{bx}{n} + { <-> CJKb * udmj}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70min.fdx b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70min.fdx new file mode 100644 index 0000000000..8305091587 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/c70min.fdx @@ -0,0 +1,203 @@ +% This is the file c70min.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Gernot Hassenpflug <gernot@nict.go.jp> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c70min.fdx}[\filedate\space\fileversion] + + +\CJKvdef{rotate}{} +\CJKvdef{offset}{.5em} + +\CJKvdef{m/n/00/163}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{163}\hss}} +\CJKvdef{m/n/00/167}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{167}\hss}} + +\CJKvdef{m/n/20/24}{\CJKsymbolsimple{24}} +\CJKvdef{m/n/20/25}{\CJKsymbolsimple{25}} +\CJKvdef{m/n/20/28}{\CJKsymbolsimple{28}} +\CJKvdef{m/n/20/29}{\CJKsymbolsimple{29}} +\CJKvdef{m/n/20/37}{\CJKsymbolsimple{37}} +\CJKvdef{m/n/20/38}{\CJKsymbolsimple{38}} + +\CJKvdef{m/n/30/1}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{1}\hss}} +\CJKvdef{m/n/30/2}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{2}\hss}} +\CJKvdef{m/n/30/8}{\CJKsymbolsimple{8}} +\CJKvdef{m/n/30/9}{\CJKsymbolsimple{9}} +\CJKvdef{m/n/30/10}{\CJKsymbolsimple{10}} +\CJKvdef{m/n/30/11}{\CJKsymbolsimple{11}} +\CJKvdef{m/n/30/12}{\CJKsymbolsimple{12}} +\CJKvdef{m/n/30/13}{\CJKsymbolsimple{13}} +\CJKvdef{m/n/30/14}{\CJKsymbolsimple{14}} +\CJKvdef{m/n/30/15}{\CJKsymbolsimple{15}} +\CJKvdef{m/n/30/16}{\CJKsymbolsimple{16}} +\CJKvdef{m/n/30/17}{\CJKsymbolsimple{17}} +\CJKvdef{m/n/30/20}{\CJKsymbolsimple{20}} +\CJKvdef{m/n/30/21}{\CJKsymbolsimple{21}} +\CJKvdef{m/n/30/28}{\CJKsymbolsimple{28}} +\CJKvdef{m/n/30/252}{\CJKsymbolsimple{252}} + +\CJKvdef{m/n/ff/8}{\CJKsymbolsimple{8}} +\CJKvdef{m/n/ff/9}{\CJKsymbolsimple{9}} +\CJKvdef{m/n/ff/12}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{12}\hss}} +\CJKvdef{m/n/ff/14}{\raise .55em \hbox to 1em {\kern -.6em \CJKsymbol{14}\hss}} +\CJKvdef{m/n/ff/59}{\CJKsymbolsimple{59}} +\CJKvdef{m/n/ff/61}{\CJKsymbolsimple{61}} +\CJKvdef{m/n/ff/91}{\CJKsymbolsimple{91}} +\CJKvdef{m/n/ff/93}{\CJKsymbolsimple{93}} + +% Reposition small kana letters for vertical typesetting. + +\CJKvdef{m/n/30/65}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{65}\hss}} +\CJKvdef{m/n/30/67}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{67}\hss}} +\CJKvdef{m/n/30/69}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{69}\hss}} +\CJKvdef{m/n/30/71}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{71}\hss}} +\CJKvdef{m/n/30/73}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{73}\hss}} +\CJKvdef{m/n/30/99}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{99}\hss}} +\CJKvdef{m/n/30/131}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{131}\hss}} +\CJKvdef{m/n/30/133}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{133}\hss}} +\CJKvdef{m/n/30/135}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{135}\hss}} +\CJKvdef{m/n/30/142}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{142}\hss}} + +\CJKvdef{m/n/30/161}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{161}\hss}} +\CJKvdef{m/n/30/163}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{163}\hss}} +\CJKvdef{m/n/30/165}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{165}\hss}} +\CJKvdef{m/n/30/167}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{167}\hss}} +\CJKvdef{m/n/30/169}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{169}\hss}} +\CJKvdef{m/n/30/195}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{195}\hss}} +\CJKvdef{m/n/30/227}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{227}\hss}} +\CJKvdef{m/n/30/229}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{229}\hss}} +\CJKvdef{m/n/30/231}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{231}\hss}} +\CJKvdef{m/n/30/238}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{238}\hss}} +\CJKvdef{m/n/30/245}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{245}\hss}} +\CJKvdef{m/n/30/246}{\raise .2em \hbox to 1em {\kern -.2em \CJKsymbol{246}\hss}} + + +\CJKvlet{bx/n/00/163}{m/n/00/163} +\CJKvlet{bx/n/00/167}{m/n/00/167} + +\CJKvlet{bx/n/20/24}{m/n/20/24} +\CJKvlet{bx/n/20/25}{m/n/20/25} +\CJKvlet{bx/n/20/28}{m/n/20/28} +\CJKvlet{bx/n/20/29}{m/n/20/29} +\CJKvlet{bx/n/20/37}{m/n/20/37} +\CJKvlet{bx/n/20/38}{m/n/20/38} + +\CJKvlet{bx/n/30/1}{m/n/30/1} +\CJKvlet{bx/n/30/2}{m/n/30/2} +\CJKvlet{bx/n/30/8}{m/n/30/8} +\CJKvlet{bx/n/30/9}{m/n/30/9} +\CJKvlet{bx/n/30/10}{m/n/30/10} +\CJKvlet{bx/n/30/11}{m/n/30/11} +\CJKvlet{bx/n/30/12}{m/n/30/12} +\CJKvlet{bx/n/30/13}{m/n/30/13} +\CJKvlet{bx/n/30/14}{m/n/30/14} +\CJKvlet{bx/n/30/15}{m/n/30/15} +\CJKvlet{bx/n/30/16}{m/n/30/16} +\CJKvlet{bx/n/30/17}{m/n/30/17} +\CJKvlet{bx/n/30/20}{m/n/30/20} +\CJKvlet{bx/n/30/21}{m/n/30/21} +\CJKvlet{bx/n/30/28}{m/n/30/28} +\CJKvlet{bx/n/30/65}{m/n/30/65} +\CJKvlet{bx/n/30/67}{m/n/30/67} +\CJKvlet{bx/n/30/69}{m/n/30/69} +\CJKvlet{bx/n/30/71}{m/n/30/71} +\CJKvlet{bx/n/30/73}{m/n/30/73} +\CJKvlet{bx/n/30/99}{m/n/30/99} +\CJKvlet{bx/n/30/131}{m/n/30/131} +\CJKvlet{bx/n/30/133}{m/n/30/133} +\CJKvlet{bx/n/30/135}{m/n/30/135} +\CJKvlet{bx/n/30/142}{m/n/30/142} +\CJKvlet{bx/n/30/161}{m/n/30/161} +\CJKvlet{bx/n/30/163}{m/n/30/163} +\CJKvlet{bx/n/30/165}{m/n/30/165} +\CJKvlet{bx/n/30/167}{m/n/30/167} +\CJKvlet{bx/n/30/169}{m/n/30/169} +\CJKvlet{bx/n/30/195}{m/n/30/195} +\CJKvlet{bx/n/30/227}{m/n/30/227} +\CJKvlet{bx/n/30/229}{m/n/30/229} +\CJKvlet{bx/n/30/231}{m/n/30/231} +\CJKvlet{bx/n/30/238}{m/n/30/238} +\CJKvlet{bx/n/30/245}{m/n/30/245} +\CJKvlet{bx/n/30/246}{m/n/30/246} +\CJKvlet{bx/n/30/252}{m/n/30/252} + +\CJKvlet{bx/n/ff/8}{m/n/ff/8} +\CJKvlet{bx/n/ff/9}{m/n/ff/9} +\CJKvlet{bx/n/ff/12}{m/n/ff/12} +\CJKvlet{bx/n/ff/14}{m/n/ff/14} +\CJKvlet{bx/n/ff/59}{m/n/ff/59} +\CJKvlet{bx/n/ff/61}{m/n/ff/61} +\CJKvlet{bx/n/ff/91}{m/n/ff/91} +\CJKvlet{bx/n/ff/93}{m/n/ff/93} + + +\CJKvlet{l/n/00/163}{m/n/00/163} +\CJKvlet{l/n/00/167}{m/n/00/167} + +\CJKvlet{l/n/20/24}{m/n/20/24} +\CJKvlet{l/n/20/25}{m/n/20/25} +\CJKvlet{l/n/20/28}{m/n/20/28} +\CJKvlet{l/n/20/29}{m/n/20/29} +\CJKvlet{l/n/20/37}{m/n/20/37} +\CJKvlet{l/n/20/38}{m/n/20/38} + +\CJKvlet{l/n/30/1}{m/n/30/1} +\CJKvlet{l/n/30/2}{m/n/30/2} +\CJKvlet{l/n/30/8}{m/n/30/8} +\CJKvlet{l/n/30/9}{m/n/30/9} +\CJKvlet{l/n/30/10}{m/n/30/10} +\CJKvlet{l/n/30/11}{m/n/30/11} +\CJKvlet{l/n/30/12}{m/n/30/12} +\CJKvlet{l/n/30/13}{m/n/30/13} +\CJKvlet{l/n/30/14}{m/n/30/14} +\CJKvlet{l/n/30/15}{m/n/30/15} +\CJKvlet{l/n/30/16}{m/n/30/16} +\CJKvlet{l/n/30/17}{m/n/30/17} +\CJKvlet{l/n/30/20}{m/n/30/20} +\CJKvlet{l/n/30/21}{m/n/30/21} +\CJKvlet{l/n/30/28}{m/n/30/28} +\CJKvlet{l/n/30/65}{m/n/30/65} +\CJKvlet{l/n/30/67}{m/n/30/67} +\CJKvlet{l/n/30/69}{m/n/30/69} +\CJKvlet{l/n/30/71}{m/n/30/71} +\CJKvlet{l/n/30/73}{m/n/30/73} +\CJKvlet{l/n/30/99}{m/n/30/99} +\CJKvlet{l/n/30/131}{m/n/30/131} +\CJKvlet{l/n/30/133}{m/n/30/133} +\CJKvlet{l/n/30/135}{m/n/30/135} +\CJKvlet{l/n/30/142}{m/n/30/142} +\CJKvlet{l/n/30/161}{m/n/30/161} +\CJKvlet{l/n/30/163}{m/n/30/163} +\CJKvlet{l/n/30/165}{m/n/30/165} +\CJKvlet{l/n/30/167}{m/n/30/167} +\CJKvlet{l/n/30/169}{m/n/30/169} +\CJKvlet{l/n/30/195}{m/n/30/195} +\CJKvlet{l/n/30/227}{m/n/30/227} +\CJKvlet{l/n/30/229}{m/n/30/229} +\CJKvlet{l/n/30/231}{m/n/30/231} +\CJKvlet{l/n/30/238}{m/n/30/238} +\CJKvlet{l/n/30/245}{m/n/30/245} +\CJKvlet{l/n/30/246}{m/n/30/246} +\CJKvlet{l/n/30/252}{m/n/30/252} + +\CJKvlet{l/n/ff/8}{m/n/ff/8} +\CJKvlet{l/n/ff/9}{m/n/ff/9} +\CJKvlet{l/n/ff/12}{m/n/ff/12} +\CJKvlet{l/n/ff/14}{m/n/ff/14} +\CJKvlet{l/n/ff/59}{m/n/ff/59} +\CJKvlet{l/n/ff/61}{m/n/ff/61} +\CJKvlet{l/n/ff/91}{m/n/ff/91} +\CJKvlet{l/n/ff/93}{m/n/ff/93} + +% Move down small katalana `tsu' in horizontal mode. It sits too high and +% is possibly confusable with the large `tsu'. + +\CJKhdef{m/n/30/195}{\raise -.05em \hbox to 1em {\kern 0em \CJKsymbol{195}\hss}} +\CJKhlet{bx/n/30/195}{m/n/30/195} +\CJKhlet{l/n/30/195}{m/n/30/195} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/fixwada b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/fixwada new file mode 100644 index 0000000000..8f37b5bc9e --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/fixwada @@ -0,0 +1,81 @@ +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +# This script fixes the Wadalab fonts which have been created with the +# `makefont' script of the CJK package version 4.5.1 or earlier. +# +# It converts all PFB files in the current directory. + + +for i in *.pfb; do + echo $i + mv $i $i.old + cat $i.old | \ + t1disasm | \ + awk ' + { + sub(/001\.001/, "001.002") + + if (/%%Creation/) { + print "%%CreationDate: 2003-Feb-07" + next + } + + if (/0 -160 rmoveto/ && last_is_hsbw) { + last_is_hsbw = 0 + next + } + + if (/hsbw/) { + last_is_hsbw = 1 + waiting_for_Xmoveto = 1 + } + else + last_is_hsbw = 0 + + if (waiting_for_Xmoveto) { + if (/rmoveto/) { + printf "\t%d %d rmoveto\n", $1, $2 - 160 + waiting_for_Xmoveto = 0 + next + } + else if (/vmoveto/) { + printf "\t%d vmoveto\n", $1 - 160 + waiting_for_Xmoveto = 0 + next + } + else if (/hmoveto/) { + printf "\t%d %d rmoveto\n", $1, -160 + waiting_for_Xmoveto = 0 + next + } + } + + if (/moveto/) + print "\tclosepath" + + if (/hstem/) { + printf "\t%d %d hstem\n", $1 - 160, $2 + next + } + + print + } + ' | \ + t1asm > $i + rm $i.old +done diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/fixwada2.pl b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/fixwada2.pl new file mode 100644 index 0000000000..af2477c306 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/fixwada2.pl @@ -0,0 +1,242 @@ +#! /usr/bin/perl -w +# +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +# This script fixes the Wadalab fonts which have been created with the +# `makefont' script version 1.0 (from CJK 4.8.5), or which have been updated +# with the `fixwada' script. +# +# . Make all glyph names compliant to the Adobe Glyph List (AGL) to +# get proper ToUnicode mappings in PDF documents. +# +# . Fix the encoding vector in the PFBs to contain only glyphs which +# actually have an outline. +# +# . Update the version number and creation date. +# +# . Fix a typo in the original fonts (`UniqueId' -> `UniqueID'). +# +# The files `JIS0208.TXT' and `JIS0212.TXT' from the `OBSOLETE' directory in +# the `MAPPINGS' tree on ftp.unicode.org are necessary for running this +# script. It also reads the file `DNP.sfd' which gives the relationship +# between JIS X 0208 (and JIS X 0212) in EUC encoding and wadalab's DNP font +# encoding. Finally, the programs `t1asm' and `t1disasm' must be available +# (and in the path). +# +# Call the script as +# +# perl fixwada2.pl wadalab_namestem [JIS0208|JIS0212] +# +# Example: +# +# perl fixwada2.pl dmj JIS0208 +# +# `fixwada2' reads all PFB and AFM files from the given wadalab font +# family and replaces them with new versions. + +use strict; + +my $prog = $0; +$prog =~ s@.*/@@; + +if ($#ARGV != 1) { + die("usage: $prog wadalab_namestem [JIS0208|JIS0212]\n"); +} + +my $namestem = $ARGV[0]; +my $encoding = $ARGV[1]; +my $encfile; +my $doshift; + + +if ("\U$encoding" eq "JIS0208") { + $encfile = "JIS0208.TXT"; + $doshift = 1; +} +elsif ("\U$encoding" eq "JIS0212") { + $encfile = "JIS0212.TXT"; + $doshift = 0; +} +else { + die("$prog: unknown encoding\n"); +} + + +# Read `DNP.sfd'. + +my %sfd; +my @subfonts; + +print("Reading \`DNP.sfd'...\n"); + +open(DNP, "DNP.sfd") +|| die("$prog: can't open \`DNP.sfd': $!\n"); + +# This loop doesn't handle the complete syntax of SFD files yet. +while (<DNP>) { + chop; + my @field = split(" "); + next if ($#field < 0); + next if ($field[0] =~ /^#/); + + my $suffix = $field[0]; + push(@subfonts, $suffix); + + shift(@field); + my $index = 0; + + while (@field) { + if ($field[0] =~ /(.*):$/) { + $index = $1; + } + elsif ($field[0] =~ /(0x[0-9A-Fa-f]+)_(0x[0-9A-Fa-f]+)/) { + foreach my $i (hex($1) .. hex($2)) { + $sfd{$suffix . "c" . sprintf("%02X", $index)} = $i; + $index++; + } + } + shift(@field); + } +} + + +# Read encoding file. + +print("Reading \`$encfile'...\n"); + +my %jisx; + +open(JISX, $encfile) +|| die("$prog: can't open \`$encfile': $!\n"); + +while (<JISX>) { + chop; + my @field = split(" "); + next if ($#field < 0); + next if ($field[0] =~ /^#/); + + if ($doshift) { + shift(@field); + } + + my $unicode = $field[1]; + $unicode =~ s/0x//; + my $value = hex($field[0]) + 0x8080; + $jisx{$value} = $unicode; +} + + +# Process AFM files. + +foreach my $afm (@subfonts) { + my $filename = "$namestem$afm.afm"; + print("Processing \`$filename'...\n"); + + if (!-f $filename) { + print("$prog: \`$filename' doesn't exist\n"); + next; + } + + rename($filename, "$filename.old"); + + open(INFILE, "$filename.old") + || die("$prog: can't open \`$filename.old': $!\n"); + open(OUTFILE, ">", "$filename") + || die("$prog: can't open \`$filename': $!\n"); + + while (<INFILE>) { + # Replace the `cXX' entries with correct `uniXXXX' glyph names. + s/ N (.*?) ;/ N uni$jisx{$sfd{$afm . $1}} ;/; + + # Update version number. + s/001\.001/001.004/; + + print(OUTFILE $_); + } + + close(INFILE); + close(OUTFILE); + + unlink("$filename.old"); +} + + +# Process PFB files. + +foreach my $pfb (@subfonts) { + my $arg; + my $filename = "$namestem$pfb.pfb"; + print("Processing \`$filename'...\n"); + + if (!-f $filename) { + print("$prog: \`$filename' doesn't exist\n"); + next; + } + + rename($filename, "$filename.old"); + + $arg = "t1disasm < $filename.old > $filename.disasm.old"; + system("$arg") == 0 + || die("$prog: calling \`$arg' failed: $?"); + + open(INFILE, "$filename.disasm.old") + || die("$prog: can't open \`$filename.disasm.old': $!\n"); + open(OUTFILE, ">", "$filename.disasm") + || die("$prog: can't open \`$filename.disasm': $!\n"); + + while (<INFILE>) { + # Replace the `cXX' entries with correct `uniXXXX' glyph names + # (or `.notdef' if there isn't one). + if (m@/(c.*?) @) { + my $replacement; + if (defined ($sfd{$pfb . $1}) + && defined ($jisx{$sfd{$pfb . $1}})) { + $replacement = "uni$jisx{$sfd{$pfb . $1}}"; + } + else { + $replacement = ".notdef"; + } + s@/(c.*?) @/$replacement @; + } + + # Fix a typo in original fonts. + s/UniqueId/UniqueID/; + + # Update version number. + s/001\.002/001.004/; + + # Update creation date. + s/2003-Feb-07/2005-Jul-29/; + + print(OUTFILE $_); + } + + close(INFILE); + close(OUTFILE); + + $arg = "t1asm < $filename.disasm > $filename"; + system("$arg") == 0 + || die("$prog: calling \`$arg' failed: $?"); + + unlink("$filename.disasm.old", "$filename.disasm"); + unlink("$filename.old"); +} + +print("Done.\n"); + +# eof diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/makefont b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/makefont new file mode 100644 index 0000000000..98b20cd541 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/makefont @@ -0,0 +1,108 @@ +#!/bin/sh +# +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +# Version 1.0 +# +# This script transforms Wadalab PFA and AFM files created by the +# wftodm program into PFB and TFM files. All files in the current +# directory and its subdirectories are converted. +# +# Additionally, it normalizes the font matrix so that the subfonts work +# with pdfTeX; for convenience, it also inserts `closepath' commands to +# end subpaths in glyphs. +# +# Note that an older version of this script (without a version number) has +# some flaws; you should either regenerate all Wadalab subfonts or use the +# `fixwada' script to fix PFB fonts which have already been created with +# this older version. +# +# The programs t1asm, t1disasm, and afm2tfm must be in the path. + +for f in `find . -name '*.pfa' -print`; do + echo processing $f + name=`basename $f .pfa` + t1disasm < $name.pfa > $name.old + + cat $name.old | \ + awk ' + { + sub(/001\.001/, "001.002") + sub(/\[.001 0 0 .001 0 -0.16\]/, "[.001 0 0 .001 0 0]") + sub(/\[0 0 1000 1000\]/, "[0 -160 1000 840]") + + if (/%%Creation/) { + print "%%CreationDate: 2003-Feb-07" + next + } + + if (/hsbw/) + waiting_for_Xmoveto = 1 + + if (waiting_for_Xmoveto) { + if (/rmoveto/) { + printf "\t%d %d rmoveto\n", $1, $2 - 160 + waiting_for_Xmoveto = 0 + next + } + if (/vmoveto/) { + printf "\t%d vmoveto\n", $1 - 160 + waiting_for_Xmoveto = 0 + next + } + if (/hmoveto/) { + printf "\t%d %d rmoveto\n", $1, -160 + waiting_for_Xmoveto = 0 + next + } + } + + if (/moveto/) + print "\tclosepath" + + if (/hstem/) { + printf "\t%d %d hstem\n", $1 - 160, $2 + next + } + + print + } + ' > $name.asm + rm $name.old + + t1asm < $name.asm > $name.pfb + rm $name.asm +done + +for f in `find . -name '*.afm' -print`; do + echo processing $f + name=`basename $f .afm` + mv $name.afm $name.old + + cat $name.old | \ + sed -e " + s/FontBBox 0 0 1000 1000/FontBBox 0 -160 1000 840/ + s/B 0 0 1000 1000/B 0 -160 1000 840/ + " > $name.afm + + rm $name.old + + afm2tfm $name.afm &> /dev/null +done + +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/makeuniwada.pl b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/makeuniwada.pl new file mode 100644 index 0000000000..826ea3d3cb --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/makeuniwada.pl @@ -0,0 +1,333 @@ +#! /usr/bin/perl -w +# +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +# This script creates virtual subfonts in Unicode encoding for Wadalab +# subfonts. It can merge a JIS X 0208 and JIS X 0212 family into a single +# set of Unicode subfonts. +# +# As prerequisites, it needs the files `JIS0208.TXT' and `JIS0212.TXT' from +# the `OBSOLETE' directory in the `MAPPINGS' tree on ftp.unicode.org. It +# also needs the file `DNP.sfd' which gives the relationship between JIS X +# 0208 (and JIS X 0212) in EUC encoding and wadalab's DNP font encoding. +# The program `vptovf' must be available (and in the path). +# +# Call the script as +# +# perl makeuniwada.pl namestem1 [namestem2] uni_namestem +# +# `namestem1' is the font in JIS X 0208 encoding. The optional `namestem2' +# argument is the font in JIS X 0212, and `uni_namestem' holds the prefix +# for the Unicode subfonts. `makeuniwada.pl' reads all AFM files from the +# given wadalab font families. +# +# Example: +# +# perl makeuniwada.pl dmj mc2j udmj +# +# This call mixes the mincho-0-12 (dmj) with mincho-1-8 (mc2j) families. + +use strict; + +my $prog = $0; +$prog =~ s@.*/@@; + +if ($#ARGV < 1 || $#ARGV > 2) { + die("usage: $prog namestem1 [namestem2] uni_namestem\n"); +} + +my $namestem1; +my $namestem2; +my $two_encodings = 0; +my @args = @ARGV; + +$namestem1 = $ARGV[0]; +if ($#ARGV == 2) { + $namestem2 = $ARGV[1]; + $two_encodings = 1; + shift; +} +my $uninamestem = $ARGV[1]; + + +# Read `DNP.sfd'. + +my %sfd; +my @subfonts; + +read_sfdfile("DNP.sfd", \%sfd, \@subfonts); + + +# Read encoding files. +# +# The files `JIS0208.TXT' and `JIS0212.TXT' are from the `OBSOLETE' +# directory in the `MAPPINGS' tree on ftp.unicode.org. + +my %jisx0208; +my %jisx0212; + +read_encfile("JIS0208.TXT", \%jisx0208, 1); +if ($two_encodings) { + read_encfile("JIS0212.TXT", \%jisx0212, 0); +} + + +# Read AFM files. + +my @unicode; + +foreach my $sub (@subfonts) { + my $afmname = "$namestem1$sub.afm"; + + if (-f $afmname) { + read_afmfile($afmname, \@unicode, \%sfd, \%jisx0208, $sub); + } +} +if ($two_encodings) { + foreach my $sub (@subfonts) { + my $afmname = "$namestem2$sub.afm"; + + if (-f $afmname) { + read_afmfile($afmname, \@unicode, \%sfd, \%jisx0212, $sub); + } + } +} + + +# Write VPL files. + +my $index = 0; +foreach my $i (0 .. 255) { + my @entries; + + foreach my $j (0 .. 255) { + if (defined ($unicode[$index])) { + push(@entries, "$j $unicode[$index]"); + } + $index++; + } + + if ($#entries >= 0) { + write_vplfile($uninamestem . sprintf("%02x.vpl", $i), \@entries); + } +} + + +# Generate VF and TFM files, then remove the VPL files. + +my @vplfiles = glob("$uninamestem*.vpl"); +foreach my $vplfile (@vplfiles) { + print("Processing \`$vplfile'...\n"); + my $arg = "vptovf $vplfile"; + system($arg) == 0 + || die("$prog: calling \`$arg' failed: $?");; + print("Removing \`$vplfile'...\n"); + unlink($vplfile); +} + + +# Read an SFD file. +# +# $1: Name of the SFD file. +# $2: Reference to the target hash file, mapping from the subfont index +# to the character code. The format of the hash key is the +# concatenation of the subfont suffix, a space, and the index. +# $3: Reference to a target array which holds the subfont suffixes. + +sub read_sfdfile { + my ($sfdfile, $sfdhash, $sfdarray) = @_; + + print("Reading subfont definition file \`$sfdfile'...\n"); + + open(SFD, $sfdfile) + || die("$prog: can't open \`$sfdfile': $!\n"); + + # This loop doesn't handle the complete syntax of SFD files yet. + while (<SFD>) { + chop; + my @field = split(" "); + next if ($#field < 0); + next if ($field[0] =~ /^#/); + + my $suffix = $field[0]; + push(@{$sfdarray}, $suffix); + + shift(@field); + my $index = 0; + + while (@field) { + if ($field[0] =~ /(.*):$/) { + $index = $1; + } + elsif ($field[0] =~ /(0x[0-9A-Fa-f]+)_(0x[0-9A-Fa-f]+)/) { + foreach my $i (hex($1) .. hex($2)) { + $sfdhash->{"$suffix $index"} = $i; + $index++; + } + } + shift(@field); + } + } + close(SFD); +} + + +# Read encoding file. +# +# $1: Name of the encoding file. +# $2: Reference to the target hash file, mapping from the charset +# to Unicode. +# $3: Set to 1 if the needed mapping data is not in field 1 and 2, but in +# field 2 and 3. + +sub read_encfile { + my ($encfile, $enchash, $doshift) = @_; + + print("Reading encoding file \`$encfile'...\n"); + + open(ENC, $encfile) + || die("$prog: can't open \`$encfile': $!\n"); + + while (<ENC>) { + chop; + my @field = split(" "); + next if ($#field < 0); + next if ($field[0] =~ /^#/); + + if ($doshift) { + shift(@field); + } + + my $unicode = $field[1]; + $unicode =~ s/0x//; + my $value = hex($field[0]) + 0x8080; + $enchash->{$value} = hex($unicode); + } + close(ENC); +} + + +# Read AFM file. +# +# $1: Name of the AFM file. +# $2: Reference to the target array which maps from Unicode to the string +# "<subfont name> <subfont index> <width> <height> <depth>". +# $3: Reference to the SFD hash (as extracted by `read_sfdfile'). +# $4: Reference to the encoding hash (as extracted by `read_encfile'). +# $5: Suffix. + +sub read_afmfile { + my ($afmfile, $unicarray, $sfdhash, $enchash, $suffix) = @_; + + print("Reading metric file \`$afmfile'...\n"); + + open(AFM, $afmfile) + || die("$prog: can't open \`$afmfile': $!\n"); + + $afmfile =~ s/\.[^.]*$//; + while (<AFM>) { + if (/^C (\d+) ;/) { + my $key = "$suffix $1"; + my $value = $sfdhash->{$key}; + my $unicvalue = $enchash->{$value}; + my $s = "$afmfile $1"; + + # Add advance width. + / WX (.*?) ;/; + $s .= " $1"; + + # Add glyph height and depth. + / B .*? (.*?) .*? (.*?) ;/; + $s .= " $1 $2"; + + $unicarray->[$unicvalue] = $s; + } + } + close(AFM); +} + + +# Write VPL file. +# +# $1: Name of the VPL file. +# $2: Reference to list which holds the font entries. An entry has the +# form `<idx> <subfont> <subfont_idx> <adv_width> <height> <depth>'. + +sub write_vplfile { + my ($vplfile, $glypharray) = @_; + + my %subfonts; + my $subcount = 0; + + foreach my $entry (@{$glypharray}) { + my @field = split(" ", $entry); + my $subfont = $field[1]; + if (!defined ($subfonts{$subfont})) { + $subfonts{$subfont} = $subcount; + $subcount++; + } + } + + print("Writing virtual property list file \`$vplfile'...\n"); + + open(VPL, ">", $vplfile) + || die("$prog: can't open \`$vplfile': $!\n"); + my $oldfh = select(VPL); + + print("(VTITLE Created by \`$prog " . join(" ", @args) . "')\n"); + print("(FAMILY TEX-\U$uninamestem\E)\n"); + print("(CODINGSCHEME DNPUNICODE)\n"); + print("(FONTDIMEN\n"); + print(" (SPACE R 0.5)\n"); + print(" (XHEIGHT R 0.4)\n"); + print(" (QUAD R 1)\n"); + print(" )\n"); + + foreach my $subfont + (sort { $subfonts{$a} <=> $subfonts{$b} } keys %subfonts) { + print("(MAPFONT D $subfonts{$subfont}\n"); + print(" (FONTNAME $subfont)\n"); + print(" )\n"); + } + + foreach my $entry (@{$glypharray}) { + my @field = split(" ", $entry); + my $index = $field[0]; + my $subnumber = $subfonts{$field[1]}; + my $subindex = $field[2]; + my $adv_width = $field[3] / 1000.0; + my $depth = $field[4] / -1000.0; + my $height = $field[5] / 1000.0; + + print("(CHARACTER D $index\n"); + print(" (CHARWD R $adv_width)\n"); + print(" (CHARHT R $height)\n"); + print(" (CHARDP R $depth)\n"); + print(" (MAP\n"); + print(" (SELECTFONT D $subnumber)\n"); + print(" (SETCHAR D $subindex)\n"); + print(" )\n"); + print(" )\n"); + } + + close(VPL); + select($oldfh); +} + + +# eof diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/wadalab.map b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/wadalab.map new file mode 100644 index 0000000000..dd008d525f --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/wadalab.map @@ -0,0 +1,187 @@ + +% Wadalab Japanese fonts + +dgjgreek dgjgreek <dgjgreek.pfb +dgjhira dgjhira <dgjhira.pfb +dgjkata dgjkata <dgjkata.pfb +dgjkeisen dgjkeisen <dgjkeisen.pfb +dgjroma dgjroma <dgjroma.pfb +dgjrussian dgjrussian <dgjrussian.pfb +dgjsy dgjsy <dgjsy.pfb +dgjka dgjka <dgjka.pfb +dgjkb dgjkb <dgjkb.pfb +dgjkc dgjkc <dgjkc.pfb +dgjkd dgjkd <dgjkd.pfb +dgjke dgjke <dgjke.pfb +dgjkf dgjkf <dgjkf.pfb +dgjkg dgjkg <dgjkg.pfb +dgjkh dgjkh <dgjkh.pfb +dgjki dgjki <dgjki.pfb +dgjkj dgjkj <dgjkj.pfb +dgjkk dgjkk <dgjkk.pfb +dgjkl dgjkl <dgjkl.pfb +dgjkm dgjkm <dgjkm.pfb +dgjkn dgjkn <dgjkn.pfb +dgjko dgjko <dgjko.pfb +dgjkp dgjkp <dgjkp.pfb +dgjkq dgjkq <dgjkq.pfb +dgjkr dgjkr <dgjkr.pfb +dgjks dgjks <dgjks.pfb +dgjkt dgjkt <dgjkt.pfb +dgjku dgjku <dgjku.pfb +dgjkv dgjkv <dgjkv.pfb +dgjkw dgjkw <dgjkw.pfb +dgjkx dgjkx <dgjkx.pfb +dgjky dgjky <dgjky.pfb +dgjkz dgjkz <dgjkz.pfb + +dmjgreek dmjgreek <dmjgreek.pfb +dmjhira dmjhira <dmjhira.pfb +dmjkata dmjkata <dmjkata.pfb +dmjkeisen dmjkeisen <dmjkeisen.pfb +dmjroma dmjroma <dmjroma.pfb +dmjrussian dmjrussian <dmjrussian.pfb +dmjsy dmjsy <dmjsy.pfb +dmjka dmjka <dmjka.pfb +dmjkb dmjkb <dmjkb.pfb +dmjkc dmjkc <dmjkc.pfb +dmjkd dmjkd <dmjkd.pfb +dmjke dmjke <dmjke.pfb +dmjkf dmjkf <dmjkf.pfb +dmjkg dmjkg <dmjkg.pfb +dmjkh dmjkh <dmjkh.pfb +dmjki dmjki <dmjki.pfb +dmjkj dmjkj <dmjkj.pfb +dmjkk dmjkk <dmjkk.pfb +dmjkl dmjkl <dmjkl.pfb +dmjkm dmjkm <dmjkm.pfb +dmjkn dmjkn <dmjkn.pfb +dmjko dmjko <dmjko.pfb +dmjkp dmjkp <dmjkp.pfb +dmjkq dmjkq <dmjkq.pfb +dmjkr dmjkr <dmjkr.pfb +dmjks dmjks <dmjks.pfb +dmjkt dmjkt <dmjkt.pfb +dmjku dmjku <dmjku.pfb +dmjkv dmjkv <dmjkv.pfb +dmjkw dmjkw <dmjkw.pfb +dmjkx dmjkx <dmjkx.pfb +dmjky dmjky <dmjky.pfb +dmjkz dmjkz <dmjkz.pfb + +mcjgreek mcjgreek <mcjgreek.pfb +mcjhira mcjhira <mcjhira.pfb +mcjkata mcjkata <mcjkata.pfb +mcjkeisen mcjkeisen <mcjkeisen.pfb +mcjroma mcjroma <mcjroma.pfb +mcjrussian mcjrussian <mcjrussian.pfb +mcjsy mcjsy <mcjsy.pfb +mcjka mcjka <mcjka.pfb +mcjkb mcjkb <mcjkb.pfb +mcjkc mcjkc <mcjkc.pfb +mcjkd mcjkd <mcjkd.pfb +mcjke mcjke <mcjke.pfb +mcjkf mcjkf <mcjkf.pfb +mcjkg mcjkg <mcjkg.pfb +mcjkh mcjkh <mcjkh.pfb +mcjki mcjki <mcjki.pfb +mcjkj mcjkj <mcjkj.pfb +mcjkk mcjkk <mcjkk.pfb +mcjkl mcjkl <mcjkl.pfb +mcjkm mcjkm <mcjkm.pfb +mcjkn mcjkn <mcjkn.pfb +mcjko mcjko <mcjko.pfb +mcjkp mcjkp <mcjkp.pfb +mcjkq mcjkq <mcjkq.pfb +mcjkr mcjkr <mcjkr.pfb +mcjks mcjks <mcjks.pfb +mcjkt mcjkt <mcjkt.pfb +mcjku mcjku <mcjku.pfb +mcjkv mcjkv <mcjkv.pfb +mcjkw mcjkw <mcjkw.pfb +mcjkx mcjkx <mcjkx.pfb +mcjky mcjky <mcjky.pfb +mcjkz mcjkz <mcjkz.pfb + +mrjgreek mrjgreek <mrjgreek.pfb +mrjhira mrjhira <mrjhira.pfb +mrjkata mrjkata <mrjkata.pfb +mrjkeisen mrjkeisen <mrjkeisen.pfb +mrjroma mrjroma <mrjroma.pfb +mrjrussian mrjrussian <mrjrussian.pfb +mrjsy mrjsy <mrjsy.pfb +mrjka mrjka <mrjka.pfb +mrjkb mrjkb <mrjkb.pfb +mrjkc mrjkc <mrjkc.pfb +mrjkd mrjkd <mrjkd.pfb +mrjke mrjke <mrjke.pfb +mrjkf mrjkf <mrjkf.pfb +mrjkg mrjkg <mrjkg.pfb +mrjkh mrjkh <mrjkh.pfb +mrjki mrjki <mrjki.pfb +mrjkj mrjkj <mrjkj.pfb +mrjkk mrjkk <mrjkk.pfb +mrjkl mrjkl <mrjkl.pfb +mrjkm mrjkm <mrjkm.pfb +mrjkn mrjkn <mrjkn.pfb +mrjko mrjko <mrjko.pfb +mrjkp mrjkp <mrjkp.pfb +mrjkq mrjkq <mrjkq.pfb +mrjkr mrjkr <mrjkr.pfb +mrjks mrjks <mrjks.pfb +mrjkt mrjkt <mrjkt.pfb +mrjku mrjku <mrjku.pfb +mrjkv mrjkv <mrjkv.pfb +mrjkw mrjkw <mrjkw.pfb +mrjkx mrjkx <mrjkx.pfb +mrjky mrjky <mrjky.pfb +mrjkz mrjkz <mrjkz.pfb + +mc2jka mc2jka <mc2jka.pfb +mc2jkb mc2jkb <mc2jkb.pfb +mc2jkc mc2jkc <mc2jkc.pfb +mc2jkd mc2jkd <mc2jkd.pfb +mc2jke mc2jke <mc2jke.pfb +mc2jkf mc2jkf <mc2jkf.pfb +mc2jkg mc2jkg <mc2jkg.pfb +mc2jkh mc2jkh <mc2jkh.pfb +mc2jki mc2jki <mc2jki.pfb +mc2jkj mc2jkj <mc2jkj.pfb +mc2jkk mc2jkk <mc2jkk.pfb +mc2jkl mc2jkl <mc2jkl.pfb +mc2jkm mc2jkm <mc2jkm.pfb +mc2jkn mc2jkn <mc2jkn.pfb +mc2jko mc2jko <mc2jko.pfb +mc2jkp mc2jkp <mc2jkp.pfb +mc2jkq mc2jkq <mc2jkq.pfb +mc2jkr mc2jkr <mc2jkr.pfb +mc2jks mc2jks <mc2jks.pfb +mc2jkt mc2jkt <mc2jkt.pfb +mc2jku mc2jku <mc2jku.pfb +mc2jkv mc2jkv <mc2jkv.pfb +mc2jkw mc2jkw <mc2jkw.pfb + +mr2jka mr2jka <mr2jka.pfb +mr2jkb mr2jkb <mr2jkb.pfb +mr2jkc mr2jkc <mr2jkc.pfb +mr2jkd mr2jkd <mr2jkd.pfb +mr2jke mr2jke <mr2jke.pfb +mr2jkf mr2jkf <mr2jkf.pfb +mr2jkg mr2jkg <mr2jkg.pfb +mr2jkh mr2jkh <mr2jkh.pfb +mr2jki mr2jki <mr2jki.pfb +mr2jkj mr2jkj <mr2jkj.pfb +mr2jkk mr2jkk <mr2jkk.pfb +mr2jkl mr2jkl <mr2jkl.pfb +mr2jkm mr2jkm <mr2jkm.pfb +mr2jkn mr2jkn <mr2jkn.pfb +mr2jko mr2jko <mr2jko.pfb +mr2jkp mr2jkp <mr2jkp.pfb +mr2jkq mr2jkq <mr2jkq.pfb +mr2jkr mr2jkr <mr2jkr.pfb +mr2jks mr2jks <mr2jks.pfb +mr2jkt mr2jkt <mr2jkt.pfb +mr2jku mr2jku <mr2jku.pfb +mr2jkv mr2jkv <mr2jkv.pfb +mr2jkw mr2jkw <mr2jkw.pfb + diff --git a/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/wadalab.txt b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/wadalab.txt new file mode 100644 index 0000000000..0a99fa084b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/contrib/wadalab/wadalab.txt @@ -0,0 +1,384 @@ +This file describes how to set up the CJK package with Wadalab postscript +fonts for Japanese under Unix-like operating systems using distributions +based on web2c (teTeX, TeXLive, etc.). + +The printer does not need to have resident Japanese fonts. + + +By Hin-Tak Leung <htl10@users.sourceforge.net>, September 1997. + +Revised November 1998. + +Last revised by Werner Lemberg, July 2006. + +=================== + + +Summary steps +------------- + + 1. Download the CJK package and install it. + + 2. Download and install the Wadalab font bundles for the CJK package from + CTAN. + + 3a. Update `<TEXMF>/dvips/psfont.map', or update your `~/.dvipsrc' file. + Use the updmap script if possible. + + 3b. Alternatively, create a `config.wadalab' file. + + 3c. For pdfTeX, update `pdftex.map' (normally handled already by the updmap + script). Omit this step for recent teTeX and TeXLive versions. + + 3d. For dvipdfmx (and dvipdfm), update `dvipdfm.map' (normally handled + already by the updmap script). Omit this step for recent teTeX and + TeXLive versions. + + 4. Run mktexlsr. + + 5. Test it! + + +Details of each step +-------------------- + +1. The following files are essential and must be in your $TEXINPUTS path. + + CJK/texinput/: + CJK.enc CJK.sty CJKnumb.sty + CJKulem.sty ruby.sty standard.bdg + standard.chr standard.enc + + CJK/texinput/JIS/: + JIS.cap JIS.cpx JISdnp.enc + c42song.fd EUC-JP.bdg EUC-JP.chr + EUC-JP.enc + + CJK/texinput/UTF8/: + UTF8.bdg UTF8.chr UTF8.enc + c70song.fd + + [Even if you don't use `c42song.fd' and `c70song.fd' these two files + should be here to avoid a strange LaTeX error message if a font shape is + missing.] + + [The EUC-JP files support real EUC-JP with single shift to access + JIS X 0212.] + + And one or more of the following files: + + file name Description + ------------------------------------------------------------------------ + c42goth.fd Gothic JIS X 0208 (level 1,2 kanji), DNP font encoding + c42maru.fd Maru + c42min.fd Mincho + + c52maru.fd Maru JIS X 0212 (level 3 kanji), DNP font encoding + c52min.fd Mincho + + c70goth.fd Gothic JIS X 0208, Unicode font encoding + + c70maru.fd Maru JIS X 0208 + 0212, Unicode font encoding + c70min.fd Mincho + + And finally, `wadalab.map'. + + Also keep `CJK/examples/JIS.tex' for testing. The rest of the CJK files + are not essential for this setup. Usage is documented in + `CJK/examples/JIS.tex' but reading `CJK/doc/CJK.txt' and + `CJK/doc/ruby.txt' is recommended. + + For pseudo vertical typesetting you need the `*.fdx' files accompaning + the above `*.fd' files, together with the `CJKvert.sty' file. + + For using Unicode as the input encoding you should use `CJKutf8.sty'. + +2. The CJK sub font packages of the Wadalab fonts can be found on CTAN in + the directory `fonts/wadalab'. The real TeX font names consist of the + concatenation of the family name with the subfont suffix. Examples: + `dgjkeisen', `mrjkj', `umcj5d'. + + file name TeX font family + DNP Unicode + --------------------------------------------- + gothic-0-13.tar.gz dgj udgj + maru-0-8.tar.gz mrj umrj + maru-1-8.tar.gz mr2j + mincho-0-12.tar.gz dmj udmj [*] + mincho-0-8.tar.gz mcj umcj + mincho-1-8.tar.gz mc2j + + [*] The `udmj' family uses mc2j for glyphs Level 3 Kanji. It doesn't + really fit (mc2j is too thin), but it is still better than having + no Level 3 Kanji at all. + + Installation should be straightforward since the directories in the + font bundles already follow the TDS standard. + +3a. Append `wadalab.map' to `<TEXMF>/dvips/config/psfont.map; or, for + non-root users, create a `~/.dvipsrc' file containing this single line: + +========================================================================= +p +/my-home/where_I_want_it/wadalab.map +========================================================================= + + (or add this line to your `~/.dvipsrc' if it already exists) and set + $DVIPSFONTS to the location of the `*.pfb' files. + + teTeX and TeXLive users should do the following instead of the above: + + a) Copy `wadalab.map' into the `<TEXMF>/fonts/map/dvips/wadalab' + directory. If you are non-root, create a private TEXMF tree in your + home directory, and copy the file to a similar location in your + private tree. + + Users of older versions of teTeX and TeXLive should use the + directory `<TEXMF>/dvips/config' instead. + + b) Add the following line to <TEXMF>/web2c/updmap.cfg: + +========================================================================= +Map wadalab.map +========================================================================= + + and call the updmap script to regenerate all program specific map + files. If you are non-root, copy `updmap.cfg' from the main TEXMF + tree to a similar location in your private tree and modify it there. + + Users of older version of teTeX and TeXLive should add `wadalab.map' + to the `extra_modules' variable directly in the updmap script. + +3b. Another solution is to just copy wadalab.map to the location in + step 3a. After creating a file `config.wadalab', containing a single line + +========================================================================= +p +wadalab.map +========================================================================= + + you can use the `-P wadalab' switch while calling dvips. + + The preferred location of `config.wadalab' is `<TEXMF>/dvips/wadalab' for + recent teTeX and TeXLive versions, and `<TEXMF>/dvips/config' otherwise. + +3c. [This step is optional and should be omitted for recent teTeX and + TeXLive versions.] + + Append `wadalab.map' to `<TEXMF>/dvips/config/pdftex.map' so that pdfTeX + can use the Wadalab fonts. The updmap script does this automatically. + +3d. [This step is optional and should be omitted for recent teTeX and + TeXLive versions.] + + Append `wadalab.map' to <TEXMF>/dvipdfm/config/dvipdfm.map so that + dvipdfmx (and dvipdfm) can use the Wadalab fonts. The updmap script does + this automatically. + + +4. Run mktexlsr to make your TeX system actually find your font data files. + + +5. Edit CJK/examples/JIS.tex and replace `\begin{CJK*}{JIS}{song}' by + `\begin{CJK*}[dnp]{JIS}{xxx}'; `xxx' can be `min' (for mincho), `goth' + (for gothic), or `maru'. To see the mincho-0-8 font (which is in `light' + series), insert + + \fontseries{l} + \selectfont + + in the CJK environment. All fonts use the poor-man's bold mechanism of + the CJK package. + + Then do the sequence + + latex JIS.tex + dvips JIS.dvi -j -o JIS.ps + + or + + dvips JIS.dvi -j -P wadalab -o JIS.ps + + if you haven't modified `psfonts.map'. The `-j' switch activates partial + font downloading (which usually is the default). + + At this stage running ghostview on `JIS.ps' should display it on screen. + Send `JIS.ps' to a postscript printer or run ghostscript for + non-postscript printers as you wish; and there you have your first + printed Japanese document. Enjoy! + + Note: The level 3 Kanji fonts are generated in a DNP-like encoding also. + A single level 3 Kanji character can be most easily input with + + \CJKchar[JIS2]{<first-byte>}{<second-byte>} , + + provided that you have said + + \CJKfontenc{JIS2}{dnp} + \CJKencfamily{JIS2}{xxx} + + in the preamble of your document to activate dnp font encoding for + the JIS2 encoding in font shape `xxx' (which can be either `maru' + or `min'). + + In case you use Emacs or Mule together with cjk-enc.el (of the CJK + package), JIS X 0212 characters can be displayed directly; they + will be automatically converted into appropriate CJK macros. + + +How the Wadalab fonts have been created +--------------------------------------- + +This section contains a description of the conversion process which +transforms the raw Wadalab PS files into subfonts usable by the CJK package. + +1. The Wadalab PS files are available from the original host + + ftp://ftp.ipl.t.u-tokyo.ac.jp/Font/ + + Alternative locations are CTAN hosts like ftp.dante.de or ftp.tug.org and + its mirrors: + + ftp://ftp.dante.de/pub/tex/support/ghostscript/3rdparty + /fonts/kanji/Font + + Obtain the following files (if you download the files from CTAN, the + final extension is `.gz' instead of `.Z'): + + wadalab-sym.7.tar.Z (symbols + Greek letters, necessary) + + wadalab-mincho-0-12.8.tar.Z (JIS X 0208 level 1,2 kanji) + wadalab-gothic-0-13.5.tar.Z + wadalab-mincho-0-8.4.tar.Z + wadalab-maru-0-8.4.tar.Z + + wadalab-maru-1-8.tar.Z (JIS X 0212 level 3 kanji) + wadalab-mincho-1-8.tar.Z + + tools/wftodm.c (conversion program, c.f. step 2) + + Unpack the font archives in a temporary directory; you should get + subdirectories called `wadalab-sym', `wadalab-mincho-0-12', etc. + + Note: DO NOT read the misleading `readme.ghostscript' document which + accompanies the fonts. + + +2. Patch `wftodm.c' with the following to enable partial font downloading. + You can simply say + + patch < wadalab.txt + + to do that. + +========================================================================= +--- wftodm-orig2.c Tue Sep 23 22:45:32 1997 ++++ wftodm.c Sun Jul 30 08:56:43 2006 +@@ -1,6 +1,8 @@ + #include <stdio.h> ++#include <string.h> ++#include <stdlib.h> + #include <sys/types.h> +-#include <sys/time.h> ++#include <time.h> + char *charstrs[34][256]; + int charlens[34][256]; + char *version_str="001.001"; +@@ -157,6 +159,7 @@ + output_afm(i); + } + } ++return 0; + } + output_afm(file) + { +@@ -209,14 +212,13 @@ + fprintf(ofp,"/UnderlineThickness 0 def\n"); + fprintf(ofp,"end readonly def\n"); + fprintf(ofp,"/FontName /%s def\n",fontname); +- fprintf(ofp,"/DmEncoding [\n"); ++ fprintf(ofp,"/Encoding 256 array\n"); ++ fprintf(ofp,"0 1 255 {1 index exch /.notdef put} for\n"); + for(i=0;i<16;i++){ + for(j=0;j<16;j++) +- fprintf(ofp," /c%02X",i*16+j); +- putc('\n',ofp); ++ fprintf(ofp,"dup %d /c%02X put\n",i*16+j,i*16+j); + } +- fprintf(ofp,"] readonly def\n"); +- fprintf(ofp,"/Encoding DmEncoding def\n"); ++ fprintf(ofp,"readonly def\n"); + fprintf(ofp,"/PaintType 0 def\n"); + fprintf(ofp,"/FontType 1 def\n"); + fprintf(ofp,"/FontMatrix [.001 0 0 .001 0 -0.16] readonly def\n"); +========================================================================= + + After compilation with + + cc -O -o wftodm wftodm.c + + use it as follows: + + wftodm -FontBase dg wadalab-sym/jis*.ps wadalab-gothic-0-13/goth-*.ps + wftodm -FontBase dm wadalab-sym/jis*.ps wadalab-mincho-0-12/min-*.ps + wftodm -FontBase mc wadalab-sym/jis*.ps wadalab-mincho-0-8/min-*.ps + wftodm -FontBase mr wadalab-sym/jis*.ps wadalab-maru-0-8/maru-*.ps + wftodm -FontBase mc2 wadalab-mincho-1-8/min*.ps + wftodm -FontBase mr2 wadalab-maru-1-8/maru*.ps + + [Note: The order of the PS files on the command line doesn't matter.] + + You should then get a whole set of {dg,dm,mc,mr}j[*].{afm,pfa} files in + your current directory, with [*]={greek,keisen,roma,russian,sy} coming + from sym-dir, and [*]={hira,kata,ka-kz} from the Kanji fonts. + {mc2,mr2}j[*].{afm,pfa} with [*]={ka-kw} are JIS X 0212 level 3 Kanji + font files. + + Note: `wftodm.c' has been updated in Oct 97; previous versions will fail. + + +3. Run the `makefont' script. It first normalizes the font matrix (to make + the subfonts work with pdfTeX), then it calls afm2tfm on each of the afm + files, and run t1disasm/t1asm (which are part of the t1utils package) on + each of the PFA files to convert them to PFB files which are much + smaller. + + +4. Run the `fixwada2.pl' script to correct the glyph names. This needs the + perl program and the files `DNP.sfd' (from the CJK package), + `JIS0208.TXT', and `JIS0212.TXT' (from ftp.unicode.org, in the `OBSOLETE' + directory). + + perl fixwada2.pl dgj jis0208 + perl fixwada2.pl mrj jis0208 + perl fixwada2.pl mr2j jis0212 + perl fixwada2.pl dmj jis0208 + perl fixwada2.pl mcj jis0208 + perl fixwada2.pl mc2j jis0212 + + +5. Run the `makeuniwada.pl' script -- it needs the same auxiliary files + as `fixwada2.pl' -- to create virtual fonts for Unicode input encoding. + + perl makeuniwada.pl dgj udgj + perl makeuniwada.pl mrj mr2j umrj + perl makeuniwada.pl dmj mc2j udmj + perl makeuniwada.pl mcj mc2j umcj + + +Thanks +------ + + Werner Lemberg <wl@gnu.org> for creating CJK and comments to this help + document. + +and + + Joshua Redstone <redstone@cs.washington.edu> for contribution to non-root + setups. + +Also check out the following variables: $TEXFORMATS, $TEXINPUTS, $TEXFONTS, +$DVIPSFONTS. + + +Please send any suggestions or comments to LEUNG Hin-Tak <htl10@cam.ac.uk>. + +---End of wadalab.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/CEF.txt b/language/chinese/CJK/cjk-4.8.5/doc/CEF.txt new file mode 100644 index 0000000000..0cc2bccfd5 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/CEF.txt @@ -0,0 +1,86 @@ +This is the file CEF.txt of the CJK macro package ver. 4.8.5 (16-Oct-2021). + +The Chinese Encoding Framework (CEF) +------------------------------------ + +Christian Wittern (http://www.kanji.zinbun.kyoto-u.ac.jp/~wittern/), +developed CEF, the Chinese Encoding Framework. It is a method to embed CJK +characters in seldom used encodings (which usually no editor provides) in +ordinary text (which may be of any encoding). This is done by using SGML +(Standardized Generalized Markup Language) macros of the form + + &xx-yyzz; + +To input these characters Wittern wrote KanjiBase for Windows, essentially a +character data base search engine written in Visual Basic. This application +is rather obsolete today. + + +`xx' in the SGML macro can have the following values: + + C0 Big 5 encoded characters + C1 characters from CNS plane 1 + ... + C7 characters from CNS plane 7 + CX characters from a reserved encoding defined by IRIZ + CY private encoding + U Unicode characters + +`yy' and `zz' are the first and second byte in hexadecimal notation. +For C0-C7, CX, and CY the 7bit notation must be used (GL). + +Examples: + + &C0-A4CD; + &C4-275F; + &U-DCFF; + + +TeX can't process these macros directly. They must be converted with one of +the following preprocessors: + + cefconv standard converter (also for use with cjk-enc.el) + cef5conv also converts Big 5 characters to preprocessed form + cefsconv also converts SJIS characters to preprocessed form + +ceflatex.bat is a simple batch file for DOS to show how to use the converter +(cef5ltx.bat and cefsltx.bat are its siblings---for Unix, the scripts are +called ceflatex, cef5latex, and cefslatex, respectively). + +Say + + ceflatex mytext[.tex] + +to get mytext.tex processed. All CEF macros must be inside of a CJK (or +CJK*) environment. + +To input CEF characters without preprocessing you can use the \CJKchar +macro. Here an example: + + \CJKchar[CNS4]{"27}{"5F} + +Note: The OS/2 script files ceflatex.cmd, etc., need REXX which you probably + have to install first. + + +Availability +------------ + +The file + + http://iriz.hanazono.ac.jp/pdf/eb4/x-level_kanjibase_codes.pdf + +contains a list of X level CJK characters defined by IRIZ. It isn't very +useful because the document is a just a scan of some pages of the magazine +`The Electronic Bodhidharma', published by the International Research +Institute for Zen Buddhism (IRIZ) at the Hanazono University in Kyoto, Japan +(iriz.hanazono.ac.jp). Note that this institute still publishes many +Buddhist documents using CEF (there it is called `KanjiBase'). + +More data about CEF and KanjiBase can be found at Christian Wittern's old +home page + + http://www.chibs.edu.tw/~chris/gwdg/home.htm + + +---End of CEF.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/CJK.txt b/language/chinese/CJK/cjk-4.8.5/doc/CJK.txt new file mode 100644 index 0000000000..fe1660bbc8 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/CJK.txt @@ -0,0 +1,1273 @@ + +This is the LaTeX2e style package CJK Version 4.8.5 (16-Oct-2021) +================================================================= + +It is freely distributable under the GNU Public License. + + + ************************************************** + * * + * You need LaTeX 2e version 2001/06/01 or newer! * + * * + ************************************************** + + +Usage +----- + +Use CJK.sty as a package, e.g., + + \documentclass{article} + \usepackage[<option>]{CJK} . + +See section `Caveats' below for the available options. Normally, you don't +need them. + +Two new environments, + + \begin{CJK}[<fontencoding>]{<encoding>}{<family>} + ... + \end{CJK} + +and + + \begin{CJK*}[<fontencoding>]{<encoding>}{<family>} + ... + \end{CJK*} + +are defined. The parameters have the following meaning: + + <encoding> These character sets and encodings are currently + implemented in CJK.enc: + + Bg5 (For traditional Chinese. Mainly used in Taiwan. + Character set: Big 5. + Encoding: Big 5 without UDA2 and UDA3.) + Bg5+ (For traditional Chinese. Obsolete. + Character set: Big 5+. + Encoding: GBK.) + + HK (For traditional Chinese. Used in Hong Kong. + Character set: Big 5 + HKSCS-2004. + Encoding: Full Big 5.) + + GB (For simplified Chinese. Mainly used in + PR China. Also called `EUC-CN'. + Character set: GB 2312-1980. + Encoding: EUC.) + GBt (For traditional Chinese. Rarely used in + PR China. + Character set: GB/T 12345-1990. + Encoding: EUC.) + GBK (For Chinese. An extension of GB 2312. + Character set: GBK. + Encoding: GBK.) + + JIS (For Japanese. + Character set: JIS X 0208:1997. + Encoding: EUC.) + JIS2 (Japanese supplementary character set, + Character set: JIS X 0212-1990. + Encoding: EUC.) + SJIS (For Japanese. Used mainly on PCs. Also known + as `MS Kanji'. + Character sets: + 1-byte characters from JIS X 0201-1997 + (half-width katakana), + 2-byte characters from JIS X 0208:1997. + Encoding: SJIS.) + + KS (For Korean. Also called `EUC-KR'. + Character set: KS X 1001:1992 = KS C 5601-1992. + Encoding: EUC.) + + UTF8 (Unicode Transformation format 8, also called + `UTF-2' or `FSS-UTF'. + Character set: Unicode. + Encoding: UTF-8.) + + CNS1 (Chinese National Standard Plane 1, + Character set: CNS 11643-1992 plane 1. + Encoding: EUC.) + CNS2 + ... + CNS7 (Character set: CNS 11643-1992 plane 2 - 7. + Encoding: EUC.) + + CEFX (reserved CEF character set for IRIZ. + Encoding: EUC.) + CEFY (private CEF character set. + Encoding: EUC.) + + Note: The value `HK' can be also used for complete Big 5 + support which needs user-defined areas 2 and 3 + (UDA2 and UDA3), located in the ranges + 0x8E40-0xA0FE and 0x8140-0x8DFE, respectively. + + For details on HKSCS-2004 see + + http://www.info.gov.hk/digital21/eng + /hkscs/download/e_sect3_2004.pdf + + + These encodings (except Big 5, Big 5+, HK, GBK, SJIS, and + UTF-8) are simplified EUC (Extended Unix Code) character + sets without single shifts. The used character set slot + G1 stands for two-byte encodings with byte values taken + from the GR (Graphic Right) character range 0xA1-0xFE + (as defined in ISO 2022). + + Note that CNS1 and CNS2 contain almost the same + characters in the same order as Big 5 (but in EUC). + + For CEF and CNS character sets see CEF.txt also. + + Big 5+ and GBK have exactly the same encoding layout + (but their origins differ). + + Additionally, the following encodings *with* single + shifts are implemented, using some of the above defined + character sets: + + EUC-JP (for Japanese. + Character sets: + Half-width katakana (from JIS X 0201-1997), + JIS X 0208:1997, + JIS X 0212-1992.) + + EUC-TW (for traditional Chinese. + Character sets: + CNS 11643-1992 planes 1-7.) + + EUC-JP, EUC-TW, and UTF-8 encodings can't be used in + preprocessed mode (see below) because it makes no sense. + (To be more precise, UTF-8 sequences with more than two + bytes can't be used.) + + + If you use this parameter it is the same as you would + have used \CJKenc: Writing e.g., + + \begin{CJK}{Bg5}{...} + ... + + is identical to + + \begin{CJK}{}{...} + \CJKenc{Bg5} + ... + + Note: A `character set' is an ordered collection of + glyphs. The order of the glyphs is just for + defining purposes and for reference. + + An `encoding' is an ordering scheme to access a + character set. LaTeX 2e also uses the term `input + encoding'. + + A character set can have many encodings + (cf. JIS X 0208 -> EUC, SJIS). + + An encoding can be used for many character sets + (cf. EUC -> KS X 1001, GB 2312, etc.). + + Sometimes, the character set has the same name + as the encoding (Big 5, Big 5+, GBK). + + For more details I suggest to read the document + cjk.inf from Ken Lunde; it is available from + + ftp://ftp.ora.com/pub/examples/cjkvinfo/ + doc/cjk.inf + + A really thorough reference is his latest book + `CJKV Information Processing' (O'Reilly). + + Throughout this CJK documentation, `encoding' + refers to the valid encoding/character set + combinations defined just above. + + <fontencoding> These font encodings are currently defined: `' (empty; + the default), `pmC' (available for Bg5, GB, GBt, JIS, + and KS), `dnp' (for JIS and SJIS), `wn' (for JIS), and + `HL' (for KS). + + `Font encoding' means the order of characters in the + subfonts itselves. A change of the font encoding neither + alters the meaning of a CJK character nor changes the + character code in the selected encoding. + + The font encoding `pmC' is defined for compatibility + with the pmC package (which is obsolete). It is not + encouraged to use this font encoding because of wasting + subfonts. If possible, convert your original CJK bitmap + fonts with hbf2gf (see hbf2gf.txt) or other tools to CJK + encodings. + + `dnp' implements the character order of the Dai Nippon + Printing fonts and is only available for JIS and SJIS + encoding. `wn' (only available for JIS) is the font + encoding for watanabe jfonts. There exists a linking + package which maps the watanabe jfonts onto the dnp + naming scheme (thus you can use the real dnp fonts for + printing and the mapped jfonts for previewing). See the + documentation files in the `japanese' subdirectory for + further details. + + `HL' allows the use of the new HLaTeX fonts (starting + with version 1.0); note that the definition of fonts is + rather different compared to HLaTeX. See the section + `Korean input' below for a detailed description. + + You can change the font encoding per encoding with the + command \CJKfontenc; the first parameter is the + encoding, the second the font encoding. + + <family> It is impossible to know in advance what fonts are + available at your site; look at the example FD (font + definition) files how to create or modify appropriate FD + files suiting your needs. See fonts.txt also for further + hints. + + If this parameter is empty, the default value given in + CJK.enc is selected: `song' for all encodings except KS + (which defaults to `mj'). If you use this parameter it + is the same as you would have used \CJKfamily; all + encodings then use this family: + + \begin{CJK}{...}{song} + ... + + is identical to + + \begin{CJK}{...}{} + \CJKfamily{song} + ... + + You can change the families per encoding (and font + encoding) with the command \CJKencfamily; the first + parameter is the encoding, the second the family, the + optional argument is the font encoding. This overrides + the default value. + + Note that \CJKfamily or a non-empty `family' parameter + of the CJK environment overrides any \CJKencfamily + commands. Say `\CJKfamily{}' to enable \CJKencfamily + again. + + + The CJK* environment swallows unprotected spaces and newlines after a + CJK character (the usual habit for Chinese and Japanese text), whereas + CJK does not (for European and Korean text). You can switch between + these two `modes' with \CJKspace (CJK* -> CJK) and \CJKnospace (CJK -> + CJK*). + + If you use cjk-enc.el, you don't need to specify a CJK environment. This + is done automatically. See cjk-enc.txt for details. + + +This is a typical example: + + \begin{CJK*}{GB}{kai} + ... + Chinese simplified text in GB encoding + ... + \end{CJK*} + + +How it works +------------ + +Asian logographs can't be represented completely with one byte per +character. (At least) two bytes are needed, and the most common encoding +schemes (UTF-8, GB, Big 5, JIS, KS, etc.) have a certain range for the first +byte (usually 0xA1-0xFE or a part of it) which signals that this and the +next byte represent an Asian logograph. This means almost all plain ASCII +characters (characters between 0x00 and 0x7E) are left undisturbed, and the +remaining character codes (0x80-0xFF) are assigned to a CJK encoding, +creating a multiple-byte encoding with 1-byte and 2-byte characters (and +even 3-byte and 4-byte characters for UTF-8). + +The character 0x7F is reserved also for the CJK package. See the section +`Preprocessors' below. + +Encodings like EUC-TW access additional character sets using escape +characters (0x8E and 0x8F) which signals that the next character comes +from another character set (which is `shifted' to the GR range); up to +four bytes are needed for a single character. Example: + + 0x8E 0xA3 0xB7 0xCE + + 0x8E is a single shift escape character; 0xA3 selects CNS plane 3, and + 0xB7CE is the character code (in GR representation) in this plane. + +CJK.sty makes the character codes 0x7F and 0x81-0xFE active inside of the +CJK environment and assigns macros to the active characters which then +select the proper font and character. The real mechanism is a bit more +complex to assure robustness (it was borrowed and modified from LaTeX 2e's +inputenc.sty) and correct handling of punctuation characters. + +* emTeX users: you must activate 8bit input and output while creating the +* LaTeX2e format file! Do this by using the switches -o and -8 (additional +* to the iniTeX switch -i). +* +* Example: +* +* tex386 -i -o -8 latex.ltx + + +Some internals +-------------- + +Internally three levels (bindings, encodings, character macro sets) are +defined: + + active characters + | + +--------------> bindings (standard, SJIS, UTF8) + | + active character macros + | + +--------------> encodings (GB, Big 5, ...) + + | font encodings (none, dnp, wn, pmC, HL) + | + subfont selecting macros + | + +--------------> character macro sets (standard, Big 5, ...) + | + character selecting macros + +User-selectable are only the encoding and the font encoding (as explained +above); the other levels are selected by the CJK package. + +These levels correspond to the following internal macros: + + \CJK@xxxxBinding (`xxxx.bdg' files): + Possible values for `xxxx' are: standard, SJIS, UTF8, EUC-JP, and + EUC-TW. + + \CJK@xxxxEncoding (`xxxx.enc' files): + Possible values for `xxxx' are: standard, extended, Bg5, SJIS, KS, UTF8, + pmCsmall, pmCbig, JISdnp, SJISdnp, KSHL, EUC-JP, and EUC-TW. + + \CJK@xxxxChr (`xxxx.chr' files): + Possible values for `xxxx' are: standard, Bg5, KS, SJIS, UTF8, pmC, + HLaTeX, EUC-JP, and EUC-TW. + +In preprocessed mode (see below), no bindings are used. + + +And now a more detailed description of the various encodings. Please note +that you should never access these macros directly. + + \CJK@standardEncoding is used for EUC encodings with the first and second + byte in the range 0xA1-0xFE (GB, GBt, JIS, JIS2, CNS, CEF). + + \CJK@extendedEncoding is used for Big 5+ and GBK encodings. The first byte + is in the range 0x81-0xFE, the second byte in the range 0x40-0xFE (with a + gap at 0x7F). + + \CJK@Bg5Encoding is used for Big 5 encoding with the first byte in the + range 0xA1-0xFE and the second byte in the range 0x40-0xFE (with a gap + from 0x7F-0xA0). + + \CJK@SJISEncoding is used for SJIS encoding; one-byte characters are in + the range 0xA1-0xDF, two-byte characters have the first byte in the ranges + 0x81-0x9F and 0xE0-0xEF, the second byte runs from 0x40 to 0xFC except + 0x7F. Since SJIS only squeezes the JIS X 0208 character set into a new + scheme without changing the ordering, fonts produced by hbf2gf or ttf2pk + look the same for EUC and SJIS encoding except one-byte SJIS characters. + For more details see below the section `SJIS encoding'. + + \CJK@KSEncoding is used for the KS X 1001 character set in EUC encoding. + Two sets of subfonts are defined, one for Hangul syllables and elements, + and a second for Hanja. For more details see below the section `Korean + input'. + + \CJK@UTF8Encoding is used for Unicode in UTF-8 encoding. The first byte is + in the range 0xC0-0xDF for two-byte values, 0xE0-0xEF for three-byte + values, and 0xF0-0xF4 for four-byte values. The other byte(s) are in the + range 0x80-0xBF. Note that CJK expects two hexadecimal digits as a running + number in the font name (as defined in UTF8.enc) instead of two decimal + digits for subfonts covering characters up to U+FFFF. Subfonts for Unicode + values greater than 0xFFFF use four hexadecimal digits in the font name. + Select the option `unicode yes' in the hbf2gf config file if you use + hbf2gf to transform bitmap fonts in HBF format to PK fonts as used by + CJK.sty . Three commands (\CJKCJKchar, \CJKhangulchar, and \CJKlatinchar) + control the handling of intercharacter glue: \CJKCJKchar (the default) + selects CJK style (using \CJKglue), \CJKhangulchar selects hangul style + (using \CJKtolerance), and \CJKlatinchar selects none of them. This + encoding does not work in preprocessed mode. + + \CJK@pmCsmallEncoding and \CJK@pmCbigEncoding can be activated with + \pmCsmall (this is the default) and \pmCbig inside the CJK environment. + Note that the original pmC fonts have two character sizes per font (the + bigger ones with an offset of -128); Bg5pmC encoded fonts cannot contain + big characters. The names of the fonts in the FD files reflect the + modifications added by Marc Leisher <mleisher@nmsu.edu> to the original + poor man's Chinese (pmC) package written by Thomas Ridgeway + <ridgeway@blackbox.hacc.washington.edu>. + + \CJK@JISdnpEncoding is the JIS X 0208 character set in EUC encoding with + dnp fonts. The main difference (besides the offsets) is the composition of + real font names; a dnp font name consists of name stem + subfont name + + designsize: an example is dmjkata10. Note that the wadalab PS fonts omit + the designsize part in the font names, thus it is sufficient (and even + better) to use the `CJK' size functions in FD files instead of the `DNP' + ones. \CJK@JISwnEncoding is similar to JISdnp encoding but uses Watanabe + jfonts; \CJK@SJISdnpEncoding maps SJIS onto dnp encoded fonts. + + \CJK@KSHLEncoding finally uses the new fonts of the HLaTeX package for + Korean; three internal encodings are necessary to represent it. See the + next section for details. + + \CJK@EUC-TWEncoding and \CJK@EUC-JPEncoding are quite similar to + \CJK@standardEncoding but implement single shift access additionally. They + can't be used in preprocessed mode. + + +Korean input +------------ + +There is already a package which handles Hangul and Hanja (but no other +CJK character sets): HLaTeX. + +To use KS encoding, say + + \begin{CJK}{KS}{} + ... + \end{CJK} . + +These font switches are available inside the environment: + + hangul fonts from former hlatex (in the han font packages): + + * \mj MyoungJo (default) + \gt Gothic + \gs BootGulssi + \gr Graphic + \dr Dinaru + + hangul fonts from former jhtex (in the han1 font packages): + + * \hgt Hangul Gothic + * \hmj Hangul MyoungJo (MunHwaBu fonts) + * \hpg Hangul Pilgi + \hol Hangul Outline (MyoungJo) + + +If a font is marked with a star, real bold series are available. All other +bold fonts are defined using poor man's boldface (see below the section +`Poor man's boldface'). + +See the file INSTALL how to get these fonts. Both `han' and `han1' packages +contain bitmap fonts only (in PK format). + +Note that the font switches are abbreviations for \CJKencfamily and not for +\CJKfamily. + + +For characters with the first byte in the ranges 0xA1-0xAF (except 0xA4) and +0xC9-0xFD (graphic characters, hanja, archaic hangul, etc.) fonts with the +encoding C60 are used. C61 is assigned to hangul fonts (for hangul elements +with the first byte 0xA4 and hangul characters in the range 0xB0-0xC8). This +enables the use of many hangul fonts and perhaps only one or two different +hanja fonts. If you want to use C60 encoding for hangul characters also say +\CJKhanja. The opposite command is \CJKhangul (of course this works only if +you have hangul characters in the C60 font). + +Archaic hangul elements (KS X 1001 0xA4D5-0xA4FE) and the character +KS X 1001 0xA4D4 are only accessible if \CJKhanja is active. + +You should convert your KS X 1001 hanja fonts using hbf2gf (or ttf2pk) as +described above. + + +To use HLaTeX fonts, say + + \begin{CJK}[HL]{KS}{} + ... + \end{CJK} . + +All HLaTeX fonts are PS fonts; these font switches are available inside the +environment (as defined in HLaTeX 1.0; this differs from older versions): + + \bm Bom + * \dn Dinaru + * \gr Graphic + + \gs Gungseo + + * \gt Gothic + \jgt Jamo Gothic + \jmj Jamo Myoungjo + \jnv Jamo Novel + \jsr Jamo Sora + + * \mj Myoungjo + * \pg Pilgi + \pga Pilgia + \ph Pen Heulim + \pn Pen + + \sh Shinmun Myoungjo + + \tz Typewriter + \vd Vada + \yt Yetgul + +If a font is marked with an asterisk, real bold series are available. All +other fonts are defined using poor man's boldface (see below). Only fonts +marked with a plus sign are available for hanja too; the other font families +are mapped to these six hanja families. For backwards compatibility, \ol and +\sm are defined also; both are now equivalent to \mj. + +UN Koaung-Hi <koaunghi@kornet.net>, the author of HLaTeX, defines three +groups of fonts: hangul, hanja, and symbols. The CJK package needs three +internal encodings (C63 for hanja, C64 for symbols, and C65 for hangul) to +represent the font encoding scheme of HLaTeX. + +HLaTeX options: + +The option `hardbold' has been integrated into the FD files---I consider the +fact whether you have bold series available or not as a fundamental local +font setup decision which should be coded into the FD files and not into the +document. As a consequence you have to change your FD files to emulate the +`softbold' option with CJK's poor man's boldface. Example: + + \DeclareFontShape{C63}{gt}{bx}{n}{<-> CJK * wgtb}{} + +should be changed to + + \DeclareFontShape{C63}{gt}{bx}{n}{<-> CJKb * wgt}{\CJKbold} . + +and similar font definitions too. + +[Well, it is not really necessary to modify the FD files to emulate the + `softbold' option: just insert the appropriate \DeclareFontShape and/or + \DeclareFontFamily commands in the preamble of your document.] + +Finally a warning: Please bear in mind that CJK does not emulate the +behaviour of HLaTeX, it only supports its fonts. + + +Big 5 encoding +-------------- + +See below the section `Preprocessors' for the preferred input method using +bg5conv. + +The characters `\', `{', and `}' are used as second bytes in the Big 5 +encoding. This collides with TeX. If you write Big 5 text mixed with other +encodings (and you don't want/can't use Mule, Emacs or bg5conv), you should +use the Bg5text environment which changes the category codes of these +characters. The command prefix is now the forward slash `/', and the +grouping characters are `(' and `)', respectively. + +An example: + + \begin{CJK}{Bg5}{song} + \begin{Bg5text} + ... + /begin(center) + ... + /end(center) + ... + /end(Bg5text) + \end{CJK} + +To get the `/', `(', and `)' characters, write `//', `/(', and `/)' inside +the Bg5text environment. + +This environment is ugly, and some commands like \newcommand don't work in +it. Starting with CJK version 3.0 it is also possible to use different +encodings in preprocessed mode, thus this environment is almost obsolete. + +Instead of using the Bg5text environment you can protect the offending +second bytes with a backslash, i.e., `\{', `\}', `\\' (using a non-Chinese +editor). This doesn't increase the readability of the Chinese text, but for +short texts it is perhaps more comfortable. Alas, it doesn't work in page +header commands because the macros `\{', etc., are not expanded. + +Be careful not to use any commands inside the Bg5text environment which +write something into an external file (commands like \chapter, etc.). + +If it is not possible to avoid Big 5 character codes with `\', `{', or `}' +outside of the Bg5text environment (e.g., having Big 5 text in a \chapter or +\section command), you can replace them with the \CJKchar macro manually: + + \section{This is a problematic Big 5 character: \CJKchar{169}{92}} + +The parameters are the first and second byte of the Big 5 character code. +You can also use hexadecimal or octal notation. See commands.txt for a full +description of \CJKchar. + +An environment `HKtext' similar to `Bg5text' is defined for the `HK' +encoding; the same restrictions as explained above hold. + + +SJIS encoding +------------- + +See below the section `Preprocessors' for the preferred input method using +sjisconv. + +Shift-JIS encoding is widely used on PCs for Japanese. A special feature is +the simultaneous use of one-byte and two-byte encoded characters which arose +because of backwards compatibility. The two-byte encoded character set is +completely identical to the JIS X 0208 character set, even the ordering is +the same. Thus there is no need for special two-byte SJIS FD files; the font +definition files for JIS X 0208 are used. + +The situation is different for one-byte SJIS characters, the so called +`half-width' Katakana (encoding C49) from JIS X 0201. Usually you should use +full-width Katakana fonts too to get a typographically correct output. The +exception is a typewriter font which should really have only the half width +of normal Kanji or Katakana to represent screen snapshots or similar things. +The use of C49 encoding can be controlled with the \CJKhwkatakana and +\CJKnohwkatakana macros (see commands.txt for more information). + +Fonts in C49 encoding scheme must have the character glyphs at the code +points 0xA1-0xDF. + +An environment `SJIStext' similar to `Bg5text' is defined; the same +restrictions as explained in the previous section hold. + + +Big 5+ and GBK encodings +------------------------ + +See below the section `Preprocessors' for the preferred input method using +extconv. + +These relatively new encodings are used in some older MS Windows versions in +Taiwan (Big 5+) and Mainland China (GBK). Both encodings implement the whole +CJK character repertory of Unicode in the Basic Multilingual Plane +(U+4E00-U+9FFF, approx. 21000 characters) and a few other characters but +still try to be backwards compatible. All code points of Big 5 are identical +to the code points in Big 5+, and the same holds for GB 2312-1980 and GBK. +Note that the default CJK font encodings for Big 5+ and Big 5 are *not* +compatible. The same is true for GBK and GB2312. + +Two new environments, `Bg5+text' and `GBKtext' similar to `Bg5text' are +defined also; the same restrictions as above hold. + + +CJK captions +------------ + +To use the supplied caption files you need the koma-script package. The main +reason why I choose these style files instead of the standard classes is the +fact that the author of koma-script is willing to support CJK. On the other +hand, the philosophy of the LaTeX 2e maintainers is not to add new features +to the standard classes. + +The koma-script style files are maintained by Markus Kohm +(Markus.Kohm@gmx.de); they are available at the CTAN hosts. + + +If you say \CJKcaption{<caption>} inside of a CJK environment, the file +<caption>.cpx is loaded (.cpx is a preprocessed version of .cap) + +Example: + + \documentclass{scrartcl}% this is a KOMA-script class + \usepackage{CJK} + + \begin{document} + \begin{CJK*}{GB}{kai} + \CJKcaption{GB}% loading GB.cpx + + \chapter{blablabla}% is formatted in Chinese + + ... + + \end{CJK*} + \end{document} + + +Note that for Korean three caption files are available: hanja.cap for +captions using hanja (this corresponds to HLaTeX's `hanja' option) and +two caption files (hangul.cap and hangul2.cap) using hangul. + +For GBK encoding use the GB.cap file. Similarly, use Big5.cap for Big 5+ +encoding. + +In case you want to edit a CAP file, you must create its corresponding +CPX file too. After editing, preprocess the file with + + bg5conv < xxx.cap > xxx.cpx + +(for caption files in SJIS encoding use sjisconv instead), then change +the file name identification strings in the CPX file accordingly. + +In UTF-8 encoding, the following caption files are available. + + ja Japanese + ko-Hang Korean using Hangul + ko-Hang2 another version using Hangul + ko-Hani Korean using Hanja + zh-Hans Chinese simplified + zh-Hant Chinese traditional + +Since those files are identical to its encoding-specific counterparts, +only CPX versions are provided. + + +Underlining and other font effects +---------------------------------- + +Full support for Donald Arseneau's ulem.sty package (beginning with version +2000-05-26) is available by using CJKulem.sty (which loads ulem.sty +automatically). No changes to ulem's interface. + +Even more font effects specific to CJK scripts can be found in CJKfntef.sty; +usage examples can be found in the file CJKfntef.tex . + +A word of caution: Don't use \CJKfamily{...} or similar commands within the +argument to \uline and friends. + + +Poor man's boldface +------------------- + +Most CJK fonts available in the public domain do not have bold series. To +emulate boldface by printing the character three times with slight +horizontal offsets some special features are used: + + CJK uses \CJKsymbol internally instead of \symbol to access CJK + characters (after the correct font has been selected). This macro + honours the \ifCJK@bold@ flag; if set it emulates boldface. The default + value of the horizontal offset is 0.015em; to change it you should + redefine \CJKboldshift, the macro which holds this shift. + + \ifCJK@bold@ can be set and unset globally with the commands \CJKbold + and \CJKnormal. These commands are intended to be used with + \DeclareFontShape as follows: + + \DeclareFontShape{C00}{CNS}{m}{n}{<-> CJK * csso12}{} + \DeclareFontShape{C00}{CNS}{bx}{n}{<-> CJKb * csso12}{\CJKbold} + + It should be never necessary to use \CJKnormal since \selectfont has + been modified to always reset \ifCJK@bold@ and to call the + loading-settings (i.e., the sixth parameter) of \DeclareFontShape if + a CJK size function is in use. + + Additionally, new size functions (CJKb, sCJKb, CJKfixedb, sCJKfixedb, + and others; see fonts.txt for details) have been introduced which are + completely identical to its counterparts without the final `b'. The only + reason to use them is, as shown in the above example, to make the fifth + parameter of \DeclareFontShape for bold series different from the one + for medium series (LaTeX 2e uses this parameter as a macro name to + execute loading-settings, thus they must not be equal). + + +Embedding non-CJK words into CJK text +------------------------------------- + +To enable line breaking you should separate non-CJK words and CJK characters +with horizontal space. But the ordinary space dimensions inserted by TeX +based on the current non-CJK font often looks bad because the surrounding +CJK characters are printed almost side by side (the non-stretched value of +\CJKglue is 0pt). Especially in extreme cases which happen in underfull +\hbox commands the default space distorts the CJK text too much. + +If you say \CJKtilde, the active `~' character doesn't produce an +unbreakable space; instead, the following definition is used: + + \def~{\hspace{0.25em plus 0.125em minus 0.08em}} . + +This defines a space which has a normal width of a quarter (CJK) space. See +the file japanese/shibuaki.txt for some further details. + +Here an example: + + ThisIsChineseText~test~ThisIsChineseText + + ^^^^^^ + +Simply use tilde characters instead of spaces at the border between CJK and +non-CJK characters. + +In BibTeX entries, you have to use `{~}' instead of `~'. + +The original definition of `~' is available as \nbs (non-breakable space, a +shorthand for the LaTeX command \nobreakspace). To return to the standard +`~' macro definition say \standardtilde. + +Note that the opposite is not true: To embed CJK words into non-CJK text an +ordinary space is optimal. + +If you use Mule or Emacs 20 please consider the use of cjktilde.el in +utils/lisp. This small package defines a minor mode (cjk-tilde-mode) which +exchanges the space key with the tilde key. It is convenient to bind this +mode to a key, e.g., C-insert. + +For AUC TeX you can also use cjkspace.el which is similar (but not +identical) to cjktilde.el . + + +Preprocessors +------------- + +Using the `XXXtext' environments like `Bg5text' is a mess. Thus three +preprocessors are provided to overcome the restrictions of the XXXtext +environments: bg5conv and sjisconv Big 5 and SJIS encoding, and extconv for +GBK and Big 5+ encoding characters. Compile them with + + cc -O -s -o bg5conv bg5conv.c + cc -O -s -o sjisconv sjisconv.c + cc -O -s -o extconv extconv.c + +and move the binaries to a location in your path, e.g., /usr/local/bin in +a Unix system. [`cc' is the C compiler.] + +See the batch files bg5latex[.bat], etc., for examples how to use them. + +Each Big 5, Big 5+, or GBK character (and each two-byte encoded SJIS +character) `XY' is converted into the form `^^7fX^^7fZZZ^^7f'; ZZZ is the +decimal equivalent of Y, and ^^7f is a character with the hex value 0x7F. +The use of bg5conv/sjisconv/extconv is completely transparent; no changes to +your documents are necessary. + +It is possible to mix preprocessed and non-preprocessed data; simply use +\CJKenc to change the encoding; you can use \CJKinput and \CJKinclude to +load preprocessed data (see commands.txt for a detailed description). + +If you use traditional Chinese characters within Mule or Emacs 20, it is not +necessary to call bg5conv after the use of *cjk-coding* output encoding (but +it is necessary if you write out the file in Big 5 encoding). + +Note 1: The OS/2 script files bg5latex.cmd, etc., need REXX which you + probably have to install first. + +Note 2: With extconv, you can also preprocess encodings like GB or SJIS. + This has the advantage that such data is robust against any changes + of the uc/lccodes in the range 0xA1-0xFE. Only three encodings can't + be preprocessed: UTF8, EUC-TW, and EUC-JP. + + +Customization +------------- + +In case you want to add encodings, font encodings, and related things, or if +you must change or customize some CJK settings, you should use a +configuration file called `CJK.cfg' which is loaded (if it exists) by +CJK.sty just before the final \endinput command. + + +Caveats +------- + + o You can of course use CJK environments inside of a CJK environment, + but it is possible that you must increase the so called `save size' + of TeX (with emTeX you can adjust this with -ms=...; web2c users + can control it with the `save_size' parameter in texmf.cnf). + + The CJK package has optional arguments which control the scope of + CJK environments: + + lowercase If you want to use \lowercase with encodings + inside CJK environments. You need less save size + using the `encapsulated' option if `lowercase' + is not set. You must use bg5conv (sjisconv) or + cjk-enc.el to use Big 5 (SJIS) characters with + this option. + + Use this with caution! All \lccode values in the + range 0x80-0xFF are set to zero, thus disabling + TeX's hyphenation mechanism for words which + contain characters of this range in the *input + encoding* (e.g., Latin-1 encoded words with + accents). This is due to an unfortunate mangling + of the input and output encoding mechanism in + TeX itself. + + global \lccode (if `lowercase' set), \uccode, \catcode + and the activation of the characters 0x81-0xFE + are globally modified (\lccode and \uccode reset + to 0). This is the most economical mode + concerning save size, but you can't have CJK + environments inside of CJK environments or other + environments which manipulate the character + range 0x81-0xFE. + + All CJK font selection commands are globally too! + + Packages which change some of the above values + only once (e.g., in the preamble) also don't + work after the first use of a CJK environment. + + cjk-enc.el automatically selects this option. + + local \lccode (if `lowercase' set) and \uccode + together with bindings are modified globally. + This is the default. You can stack CJK + environments. + + active If activated, bindings are local additionally. + You need this option if you want to mix + preprocessed text with non-preprocessed text in + nested CJK environments. This can happen if you + merge texts in various encodings. + + encapsulated If you want to access e.g., T1 fonts directly + (i.e., without the macros defined in t1enc.def) + or if you want to use a non-CJK LaTeX 2e input + encoding outside of the CJK environment (e.g., + `latin1' for Western European, `latin2' for + Eastern European), you must use this option. + This also ensures that \uppercase and \lowercase + (together with \MakeUppercase and + \MakeLowercase) work correctly. All values + mentioned above are local, so you can stack + environments. This option probably causes an + overflow of the save size. + + Note: All macro packages which access T1 fonts + with the macros defined in t1enc.def work in CJK + environments! E.g., the command `"s' of + german.sty works with \MakeUppercase too. + + + Say + + \usepackage[<option>]{CJK} + + to activate <option>. + + o There is another way to overcome the problem of stacked + environments. CJK implements four CJK attribute switches: \CJKenc, + \CJKfontenc, \CJKencfamily, and \CJKfamily; see commands.txt for a + detailed description. If you need two different encodings/families + at the same output line, you must use these macros. + + An example for \CJKfamily: + + \begin{CJK}{GB}{song} + ... Text in GB song ... \CJKenc{GBt} + ... Text in GBt song ... \CJKfamily{kai} + ... Text in GBt kai ... + \end{CJK} + + An example for \CJKencfamily: + + \CJKencfamily{Bg5}{fs}% fangsong + \CJKencfamily{GB}{kai} + + \begin{CJK*}{}{} + \CJKenc{Bg5} ... Text in Big 5 fangsong ... + \CJKenc{GB} ... Text in GB kai ... + \end{CJK*} + + Contrary to \begin{CJK}{...}{...} it is not necessary to start a new + line in your TeX document file after \CJKenc. + + o A similar command to \CJKchar is \Unicode{<byte1>}{<byte2>} to + access Unicode characters (real Unicode values, not UTF-8 encoded + Unicode) directly; the parameters are the first (high) and second + (low) byte of the Unicode. \Unicode works only in UTF-8 encoding; in + all other encodings you must use \CJKchar[UTF8]{<byte1>}{<byte2>} + instead. + + For Unicode characters greater than U+FFFF, put the first two bytes + into the first argument, and the third byte into the second + argument. Examples are \Unicode{"25E}{"9A} and + \CJKchar[UTF8]{"25E}{"9A} to represent U+25E9A. + + o CJK disables \MakeUppercase (preserving the command as + \CJKuppercase) if you select Big 5 or SJIS encoding without using + bg5conv or sjisconv. This usually affects the headers of the LaTeX + 2e standard classes only. + + o Because CJK.sty and MULEenc.sty insert glue between CJK (and Thai) + characters, it is possible to get unwanted line breaks in verbatim + environments if lines are too long. To avoid this, use the command + \CJKverbatim in combination with the `verbatim' package. It installs + a hook which disables \CJKglue and \Thaiglue in verbatim + environments. + + +Possible errors +--------------- + + o If you write Chinese (or Japanese) text, don't forget to suppress + the linefeed character with a trailing `%' in the CJK environment, + otherwise you get unwanted spaces in the output. On the other side, + say `\ ' or something similar inside the CJK* environment to get a + space after a CJK character. + + o To suppress a line break before a CJK character, say \CJKkern. This + command prevents the insertion of \CJKglue before the CJK character. + + You may wonder about the strange name: a small kern (2 sp) between + two CJK characters signals that the first one is a punctuation + character. + + o If you get the error message: `\CJK... undefined' or other `... + undefined ...' messages and you can't find an error, try inserting + \newpage, \clearpage, or \cleardoublepage (the latter for two-column + printing) before saying \end{CJK} or \end{CJK*}. This can happen if + LaTeX 2e writes headers, footers, or index entries (both \index and + \printindex) of a page containing CJK characters after closing the + CJK environment. + + In case of footnotes with CJK characters which are split across + pages, you have to close the CJK environment on the page on which + the particular footnote ends (probably preceded by a \newpage + command). + + A similar error message from CJKutf8.sty (with the same solution) is + + Package inputenc Error: + Unicode char \u 8: XXX not set up for use with LaTeX + + o A similar message to the one mentioned in the last item can be + caused by using the \EveryShipout command from everyshi.sty; here + the reason is exactly the opposite, namely the possible use of a + non-CJK font within an implicit CJK environment. For example, if + you have + + \EveryShipout{ + \fontfamily{phv}% + \selectfont + ... + } + + it can happen that LaTeX tries to use family `phv' for a `CXX' + encoding. The solution is to specify the encoding in \EveryShipout + also: + + \EveryShipout{ + \fontfamily{phv}% + \fontencoding{T1}% + \selectfont + ... + } + + o Some file editors insert a Byte Order Mark (BOM, U+FEFF) even if + they emit UTF-8. This sequence consists of the three bytes 0xEF + 0xBB 0xBF, always to be found at the very beginning of a file, + and which should be ignored. + + Unfortunately, there is no way to handle them automatically in the + CJK package so that they don't produce output or warnings (or even + error messages) -- it would be necessary to add a hack to the LaTeX + kernel itself. In other words, these three bytes must be removed + before LaTeX is called. + + o If you get overfull \hbox'es caused by CJK characters, try to + increase \CJKglue. It defines the glue between CJK characters; the + default definition is + + \newcommand{\CJKglue}{\hskip 0pt plus 0.08\baselineskip} . + + \CJKglue is inserted by CJK.sty between CJK characters (except + punctuation characters as defined in the punctuation tables; see + CJK.enc for the lists). You should separate non-CJK text from CJK + characters with spaces to enable hyphenation, or you write + \CJKtilde and then use `~' instead of spaces to embed non-CJK text + into CJK characters. + + o If you get overfull \hbox'es caused by Hangul syllables, try to + increase \CJKtolerance. The default definition is + + \newcommand{\CJKtolerance}{400} . + + Alternatively, try to increase \emergencystretch (which is a TeX + primitive), setting it to a reasonable value. + + o The default definition of \CJKglue can cause problems with CJK + characters within a `tabular' environment since the environment sets + \baselineskip to zero, effectively disabling inter-character glue. + If you need stretching (for example by using \makebox with the `s' + position argument), you must redefine \CJKglue, before entering the + `tabular' environment, to something like this: + + \def\CJKglue{\hskip 0pt plus 1pt} + + o It is not possible to start a new encoding inside of a verbatim + environment which has not been loaded before (CJK.sty emits an + \input ... command which causes the encoding file to be printed + verbatim instead of being executed). In this case, write a proper + \CJKenc{...} command before opening the verbatim environment. + + Example: + + \CJKenc{JIS} % this loads standard.enc and standard.chr + + \begin{verbatim} + ... + first time JIS characters appear + ... + \end{verbatim} + + + cjk-enc.el does this automatically for you. + + o If you get an error message which looks like this: + + + ! Undefined control sequence. + try@size@range ...extract@rangefontinfo font@info + <-*>@nil <@nnil + + + then you are using an unknown family for a CJK encoding. + + Reason: If you declare an NFSS font encoding in the standard way the + corresponding FD file for the default font is loaded. For the CJK + package this would be almost 30 files which is inacceptable. To + avoid this overhead NFSS is faked with some rudimentary definitions + just enough to pass the NFSS tests. Of course this has a + disadvantage: An unknown CJK family causes the above error instead + of switching to the fallback family usually defined with + \DeclareFontSubstitution. Nevertheless, replacing an undefined + series or shape works correctly. + + The CJK package's default family value is `song' for all encodings + except KS; to avoid the error just described in cases you start an + environment with an empty family parameter the files `XXXsong.fd' + for all encodings `XXX' (except for KS) are already provided. + + o It is neither possible to use a CJK character in a \cite command of + standard LaTeX, nor is it possible to use the `alpha' citation + style. This is a limitation of LaTeX and not of the CJK package. + + o Sometimes it is necessary to define or redefine a command or + environment globally in the preamble, using CJK characters. Example: + + \newtheorem{Them}{some Chinese characters}[section] + + This won't work directly because of the Chinese characters, + producing an error. The next idea is to use a CJK environment in the + preamble: + + \begin{CJK}{...}{...} + \newtheorem{Them}{some Chinese characters}}[section] + \end{CJK} + + Don't be surprised that this also fails! Most commands like + \newtheorem expand to \def which define a macro locally only; + consequently, the just defined command is undefined again after + leaving the CJK environment. + + The correct solution is to use a globally defined macro: + + \begin{CJK}{...}{...} + \gdef\ChineseTheorem{some Chinese characters} + \end{CJK} + + \newtheorem{Them}{\ChineseTheorem}[section] + + In case you still have problems caused by premature expansion, add + \protect, e.g. + + \newcites{Them}{\protect\ChineseTheorem} + + o The \makelabels command of letter.sty needs special treatment if you + have an address with CJK characters because it uses the + \AtEndDocument hook to write out its data. Since \AtEndDocument is + called by \end{document} after all environments have been closed + already, a CJK environment must be explicitly inserted into the AUX + file. Example: + + \documentclass{letter} + + \usepackage{CJK} + + \makeatletter + \AtBeginDocument{% + \if@filesw + \immediate\write\@mainaux{\string\begin{CJK*}{...}{...}}% + \fi} + \makelabels + \AtEndDocument{% + \if@filesw + \immediate\write\@mainaux{\string\end{CJK*}}% + \fi} + \makeatother + + + \begin{CJK*}{...}{...} + \address{An address\\ + with some CJK characters} + \signature{...} + \end{CJK*} + + + \begin{document} + + \begin{CJK*}{...}{...} + + \begin{letter}{Another address\\ + with some CJK characters} + \opening{...} + + Your letter text + + \closing{...} + \end{letter} + + \end{CJK*} + + \end{document} + + o A similar solution is needed if you use \bibliography and your + bibliographic database contains author names with CJK characters. + + \makeatletter + \AtBeginDocument{% + \if@filesw + \immediate\write\@mainaux{\string\begin{CJK*}{...}{...}}% + \immediate\write\@mainaux{\string\makeatletter}% + \fi} + \AtEndDocument{% + \if@filesw + \immediate\write\@mainaux{\string\end{CJK*}}% + \fi} + \makeatother + + o The `beamer' class, if used with the CJKutf8 package, should open + and close the document's `CJK' environment with the \AtBeginDocument + and \AtEndDocument hooks, respectively: + + \AtBeginDocument{% + \begin{CJK*}{UTF8}{...}} + \AtEndDocument{% + \end{CJK*}} + + o If you get strange error messages while using the hyperref package, + add the `CJKbookmarks' option: + + \usepackage[CJKbookmarks]{hyperref} + + o Some versions of fourier.sty cause the following error message: + + ! Undefined control sequence. + \<->futr8t ->\SetFourierSpace + + A simple solution is to insert the line + + \providecommand{\SetFourierSpace}{} + + right before loading fourier.sty . + + o Combining the `slovak', `esperanto', or `kurmanji' option of Babel + (tested 2010/01/04) with the CJK package fails as soon as you try to + open a CJK environment. This error is a Babel bug not related to + CJK: After loading one of these language modules, the ^^xx notation + fails due to an incorrect \catcode value of the `^' character (even + outside of those language environments). + + A workaround is to insert the line + + \catcode`\^ 7\relax + + right before a starting a CJK environment. + + +Author +------ + +Werner Lemberg <wl@gnu.org> + +Please report any errors or suggestions to cjk-list@nongnu.org. + + +---End of CJK.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/CJKnumb.txt b/language/chinese/CJK/cjk-4.8.5/doc/CJKnumb.txt new file mode 100644 index 0000000000..16723f8bc0 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/CJKnumb.txt @@ -0,0 +1,25 @@ +This is the file CJKnumb.txt of the CJK macro package ver. 4.8.5 +(16-Oct-2021). + +CJKnumb.sty +------------ + +This package provides commands to typeset CJK representations of +numbers (within a CJK or CJK* environment). + + \CJKnumber{number} + Convert `number' to a full CJK representation. + + \CJKdigits{arg} + \CJKdigits*{arg} + Handle `arg' as a string of digits and convert each of them into the + corresponding CJK digit. The starred version uses the traditional glyph + for digit zero; the unstarred version uses the CJK circle glyph. + +Usage: + + \usepackage{CJK} + \usepackage{CJKnumb} + + +---End of CJKnumb.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/CJKspace.txt b/language/chinese/CJK/cjk-4.8.5/doc/CJKspace.txt new file mode 100644 index 0000000000..87d2a7e621 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/CJKspace.txt @@ -0,0 +1,22 @@ +This is the file CJKspace.txt of the CJK macro package ver. 4.8.5 +(16-Oct-2021). + +CJKspace.sty +------------ + +This package provides a modified `CJK*' environment which suppresses spaces +between CJK characters only. Its main usage are documents written in +English with frequent insertions of CJK words or phrases and modern Chinese +documents which do the opposite. + +Note that this package is not optimal for Japanese since typographic +conventions mandate the use of shibuaki spaces (see `japanese/shibuaki.txt' +for more details); this can't be handled automatically with traditional TeX. + +Usage: + + \usepackage{CJK} + \usepackage{CJKspace} + + +---End of CJKspace.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/CJKutf8.txt b/language/chinese/CJK/cjk-4.8.5/doc/CJKutf8.txt new file mode 100644 index 0000000000..c0c6f2c8f4 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/CJKutf8.txt @@ -0,0 +1,40 @@ +This is the file CJKutf8.txt of the CJK macro package ver. 4.8.5 +(16-Oct-2021). + +CJKutf8.sty +----------- + +This package merges base LaTeX's and CJK's UTF-8 support. If a Unicode +character (within a CJK environment) corresponds to a glyph from the +selected LaTeX font encoding, use it, otherwise it is taken from the +selected CJK unicode font. + +Usage: + + \usepackage[<font encoding>]{CJKutf8} + + The <font encoding> value is directly passed to the `fontenc' package. + Besides `fontenc', CJKutf8.sty also loads the CJK package with the + `encapsulated' option so that you can use UTF-8 outside of the CJK + environment also. + + Note that only font encodings with a corresponding DFU file actually + have Unicode definitions (for example, `t1enc.dfu'). + + Only use UTF-8 encoding for the CJK environment! Other encodings + don't give an error but might replace some CJK characters with glyphs + from the selected LaTeX encoding. + +If pdftex is used, ToUnicode cmaps are automatically generated (for C70 +encoding); use it in combination with Vladimir Volovich's `cmap' package. + +If CJKutf8.sty is used together with the `unicode' option of the hyperref +package, pdftex automatically produces correct Unicode bookmarks. + +Both ToUnicode cmaps and Unicode bookmarks support characters greater than +U+FFFF. + +Please read section `Possible errors' in CJK.txt regarding the Byte Order +Mark (BOM) -- this should always be removed. + +---End of CJKutf8.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/COPYING b/language/chinese/CJK/cjk-4.8.5/doc/COPYING new file mode 100644 index 0000000000..b2fe7b6af3 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/language/chinese/CJK/cjk-4.8.5/doc/INSTALL b/language/chinese/CJK/cjk-4.8.5/doc/INSTALL new file mode 100644 index 0000000000..396187f01e --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/INSTALL @@ -0,0 +1,686 @@ +This is the file INSTALL of the CJK macro package ver. 4.8.5 (16-Oct-2021). + +Installation Guide +================== + +It is probably a good idea to get a packaged version of CJK---be warned that +installing CJK is *not* trivial. + +The easiest solution is to use the TeX Live CD which is distributed among +members of TeX user groups worldwide. It comes with a ready-to-run CJK setup +together with basic CJK fonts (in outline format if freely available) for +almost all encodings. To get a recent snapshot, try the SVN archive. See + + http://www.tug.org/texlive/svn/ + +for more details. + +. Using web sites like http://rpmseek.com you can find and download CJK + packages for most GNU/Linux distributions like SuSE or Debian. + +. For FreeBSD try this: + + http://www.freebsd.org/ports/chinese.html + +. MikTeX also provides packages for CJK. + + +Here a check list for the impatient (experienced) user which tries to show +whether you've done all steps to install the CJK package and fonts. It is +assumed that you want to install both ttf2pk and hbf2gf. + +Detailed explanations can be found below. + + +--- begin checklist --------------------------------------------------------- + +. Have you installed a LaTeX 2e version newer or equal to 2001/06/01? The + version of LaTeX is given in each log file produced by LaTeX. For using + CJKutf8.sty you even need version 2003/12/01. + +. Have you removed an older version of CJK? If not, do it now but don't + forget to save your FD and other files which you have changed! Don't + forget also to remove the ttf2pk and hbf2gf binaries. + +. Can the texinput tree of the CJK package be found by your TeX + implementation? Have you activated subdirectory searching? + +. Have you downloaded the needed font packages (either ps, hbf or ttf)? See + also contrib/wadalab/DNP.txt for the Japanese Wadalab fonts. Have you + moved the TFM files into your TFM-tree (or updated TFMINPUTS accordingly)? + Ditto for VF files if needed. + +. Have you installed ttf2pk and ttf2tfm from the FreeType 1 package (only + needed for TrueType fonts)? Note that FreeType 2 won't work. + +. Have you run ttf2tfm to create the proper TFM files from your TrueType + fonts? This won't be done automatically via mktextfm or MakeTeXTFM! + +. Have you updated the ttfonts.map file for ttf2pk? Have you updated the + various hbf2gf config files? Have you copied them to the right places? + Don't forget to install ttf2pk's SFD and other data files which define the + various CJK subfonts and encodings. + +. Have you modified and installed the script files for automatic font + generation (not necessary for teTeX 1.0 or newer)? + +. If you want Thai support, have you followed the instructions given in + thaifont.txt? + + +web2c/teTeX users: + +. Do you have a C compiler and a make program available for compilation? GNU + gcc and GNU make are recommended. + +. Have you updated special.map? + +. Have you used the options --with-kpathsea-include=... and + --with-kpathsea-lib=... while calling the configure script of hbf2gf + (or ttf2pk)? Otherwise no file searching library is used which yields + surprising results... Note: Don't use `/usr/include/kpathsea', for + example, but `/usr/include' as an argument to --with-kpathsea-include. + +. To check whether kpathsea correctly finds HBF files and configuration + files for hbf2gf, say: + + kpsewhich -progname=hbf2gf -format='misc fonts' <your_font>.hbf + kpsewhich -progname=hbf2gf -format='other text files' <your_file>.cfg + + The same for TrueType fonts and the ttf2pk config file: + + kpsewhich -progname=ttf2pk <your_font>.ttf + kpsewhich -progname=ttf2pk -format='other text files' ttfonts.map + + [Recent kpathsea versions (like 3.5.5) which come with the new teTeX or + TeXLive distributions have a new variable `TEXFONTMAPS' for map files; + you should use this test + + kpsewhich -progname=ttf2pk -format=map ttfonts.map + + instead of the last one.] + +. Have you compiled the various *conv utility programs (like bg5conv)? Have + you installed them together with the caller scripts (like bg5latex) in + your path? FOR BIG 5 ENCODING YOU SHOULD ALWAYS USE bg5latex or + bg5pdflatex (except if you use cjk-enc.el). FOR SJIS ENCODING YOU SHOULD + ALWAYS USE sjislatex or sjispdflatex. + +. Have you updated and controlled the texmf.cnf configuration file or set + the various environment variables? (TEXINPUTS, TFMFONTS, PKFONTS, + MISCFONTS, TTFONTS, probably TTF2PKINPUTS, TTF2TFMINPUTS, HBF2GFINPUTS) + +. ttf2pk and hbf2gf should be in the same directory where your TeX binaries + like `texconfig' or `gftopk' are (or you must set TEXMFCNF and probably + TEXMF in the environment). Soft links won't work! + +. Finally, have you run texhash (or mktexlsr) after finishing all other + things? + + +emTeX users: + +. Have you created a LaTeX format file which allows plain 8bit input and + output without using any TeX Code Page (tcp)? + +. Have you installed 4DOS (4OS2 or Take Command) for running the file + dvidrv.btm? + +. Have you configured dvidrv.btm? + +. Have you installed the various *conv utility programs (like bg5conv)? + together with the caller scripts (like bg5latex.bat)? FOR BIG 5 ENCODING + YOU SHOULD ALWAYS USE bg5latex.bat . FOR SJIS ENCODING YOU SHOULD ALWAYS + USE sjisltx.bat . + +. Have you created and installed TFM files for fonts not in a CJK font + package? + +. Check whether you have updated all needed environment variables (TEXINPUT, + TEXTFM, TTFONTS, TTFCFG, HBFONTS, HBFCFG) and your dvidrv configuration + file or files (+font-files, +virtual-fonts). + + +In case of errors, verify the list step by step. Detailed information for +each step can be found in the documentation files of CJK. Under web2c or +teTeX, you can set the KPATHSEA_DEBUG environment variable to -1, then all +debugging info is shown and sent to stderr; it is *highly* recommended that +you read the kpathsea.info files. Under emTeX, read the various +documentation files, especially dvidrv.doc and tex.doc, and check the log +file of your dvi driver. + +For hbf2gf, read hbf2gf.txt and its manual page (hbf2gf.1 or a formatted +version of it). Similarly, more info on ttf2tfm and ttf2pk can be found in +ttf2pk.doc and the manual pages ttf2pk.1 and ttf2tfm.1 (or a formatted +version). + +--- end checklist ----------------------------------------------------------- + + + +Unix (web2c and teTeX) +---------------------- + +. If you can become root, rename the `texinput' directory tree of CJK into + `CJK' or something else and add it to your (local) web2c texinput tree + (for example, /usr/local/share/texmf.local/tex/latex/CJK). + +. If you can't become root, modify the TEXINPUTS environment variable + instead so that it includes the CJK directory; use a command similar to + + setenv TEXINPUTS :<your CJK directory>// + + to let TeX search the standard directories and your CJK tree, e.g., + + setenv TEXINPUTS :/home/joe_user/CJK/4_3.0/texinput// + + (Note the leading double colon to append a path, and the double slash to + activate subdirectory searching---for details see the kpathsea info + files.) + + [Recent teTeX and TeXLive versions automatically search a TEXMF tree in + your home directory called `texmf'.] + + See contrib/wadalab/DNP.txt for the Japanese Wadalab fonts. + +. Edit the FD files of the encodings you want to use to specify the fonts + you have. An explanation of the additional size commands CJK provides can + be found in fonts.txt . + + Note: Most FD example files from the CJK package are set up for PS fonts + from the TeXLive distribution. + + If you use the CJK font packages (see below) no changes are needed. + +. [In case you plan to use only outline fonts (PFB, TTF) you can omit the + installation of hbf2gf and HBF fonts.] + + If necessary, create TFM (and PK) files from CJK bitmaps with hbf2gf + (found in utils/hbf2gf). This program comes with a configure script; say + `./configure --help' in the utils/hbf2gf directory for configuration + options. You need a compiled kpathsea library and its header files; in + most cases you say + + ./configure --prefix=/usr/local/TeX \ + --with-kpathsea-include=<INCLUDEDIR> \ + --with-kpathsea-lib=<LIBDIR> + make + make install + + for a normal compilation and installation. Replace `/usr/local/TeX' with a + path to your TeX distribution, and <DIR> with the directory one level + higher than the library and the include files themselves. Example: + libkpathsea.a is in /usr/local/TeX/lib/i686-linux, kpathsea.h is in + /usr/local/TeX/include/kpathsea; then <LIBDIR> should be + `/usr/local/TeX/TeX/lib/i686-linux', and <INCLUDEDIR> should be + `/usr/local/TeX/include' (and not `/usr/local/TeX/include/kpathsea). + + See hbf2gf.txt, the man page (hbf2gf.1), and the documentation of the + source file (hbf2gf.dvi) for further details. Usually it is sufficient to + let hbf2gf create a complete set of TFM files; PK fonts are then created + on demand. + + Older kpathsea versions need a patched MakeTeXPK or mktexpk script; you + should apply the proper patch(es) from utils/hbf2gf/scripts. No changes to + the script files are necessary for teTeX 1.0 and newer. + + The CJK font packages already contain TFM (and VF) files arranged for the + (new) TDS directory structure; add it directly to your TEXMF tree. + +. Free Chinese TrueType fonts (for both simplified and traditional Chinese) + with a license similar to the GPL can be found on + + ftp://ftp.gnu.org/gnu/nongnu + + and its mirrors worldwide. You might also search websites of companies + offering WWW browser; they often come with CJK language packs which + contain CJK TrueType fonts. + + Please note that many CJK TrueType fonts only have a Unicode mapping + table. You should use the SFD files from the ttf2pk package starting with + the letter `U' (e.g., UKS.sfd) which maps Unicode fonts to language + specific encoded subfonts as needed by the CJK package. + + The ttf2pk package found in the contrib/ttf2pk directory of + + ftp://ftp.freetype.org/pub/ + freetype/unstable/freetype1-contrib-current.tar.gz + + contains the two programs ttf2tfm and ttf2pk for converting TrueType fonts + into TFM and PK fonts, respectively. By the way, this package is not + restricted to CJK TrueType fonts; it works with other TrueType fonts too. + Read the manual pages and the documentation for further information. For + compilation you also need the FreeType 1 package: + + ftp://ftp.freetype.org/pub/freetype/unstable/freetype-current.tar.gz + +. The font editor `fontforge' (available from http://fontforge.sf.net) is + capable of generating Type 1 subfonts as needed by CJK from other formats + like TTF, OTF or CID (using the subfont definition files from ttf2pk). + Such subfonts should be usable by virtually all platforms. + + (Funnnily, fontforge uses the `.sfd' extension also for saving font files + it creates.) + + Although fontforge needs the X Window System, it can be compiled without a + graphical interface, using a scripting language to control font + conversion. The directory `utils/subfonts' of the CJK package contains + useful scripts for manipulating subfonts. + +. It is recommended to add all CJK fonts which are converted to the PK font + format (either with hbf2gf or ttf2pk) to the file special.map: Assuming + that your PK fonts should be generated in + + $TEXMF/fonts/pk/modeless/gb2312/gsfs14/ + + the proper entries would be + + gsfs1401 gb2312 gsfs14 + gsfs1402 gs2312 gsfs14 + ... + +. Compile the small preprocessors in the utils subdirectories with + + cc -O -s -o bg5conv bg5conv.c + cc -O -s -o sjisconv sjisconv.c + cc -O -s -o cefconv cefconv.c + cc -O -s -o cef5conv cef5conv.c + cc -O -s -o cefsconv cefsconv.c + cc -O -s -o extconv extconv.c + + and move them into TeX's bin directory (together with the shell scripts) + or modify the PATH environment variable appropriately. (`cc' can be any C + compiler.) + + The script files `...latex' make the use of these programs transparent. + +. Move the man pages into your man1 directory tree. + +. If you want to use Mule, emacs, or XEmacs together with the CJK package, + you should install cjk-enc.el (in utils/lisp). See cjk-enc.txt for + documentation. Choose the correct cjk-enc.el version---note that the Mule + version has limited capabilities compared to the Emacs version. + + Move cjk-enc.el to a place which is searched by Mule (e.g., + /usr/local/lib/mule/site-lisp) and put the following line into your emacs + file: + + (load-library "cjk-enc") + + The default directory for emacs is /usr/local/share/emacs/site-lisp. + + Note that you don't need cjk-enc.el in case you are editing UTF-8 encoded + files only. + +. If you mainly write Chinese or Japanese with Emacs or Mule, consider the + use of cjktilde.el (in utils/lisp). This file contains a minor mode which + exchanges the tilde key with the space key. See the documentation of + \CJKtilde in CJK.txt for the reasons to use `~' in most cases instead of + a space character. + + To install, move cjktilde.el to a place which is searched by Emacs or Mule + (e.g., /usr/local/share/emacs/site-lisp) and put the following line into + your .emacs file: + + (load-library "cjktilde") + + To toggle the CJK tilde mode say + + M-x cjk-tilde-mode + + You can then assign cjk-tilde-mode to a key, e.g., shift-insert. + +. If you use AUCTeX you can try cjkspace.el instead of cjktilde.el; it works + in a similar (but not identical) way and is special to LaTeX buffers. Move + the file to the local lisp directory and put the following lines into your + .emacs file: + + (autoload 'CJK-insert-space "cjkspace" + "Insert tildes appropriately in CJK document." t) + (defun my-LaTeX-mode-hook () + "My personal key definitions for LaTeX mode." + (define-key LaTeX-mode-map " " 'CJK-insert-space)) + (add-hook 'LaTeX-mode-hook 'my-LaTeX-mode-hook) + + Please read the documentation in the file cjkspace.el . + +. For Thai support please follow the instructions given in `thaifont.txt'. + + +DOS and OS/2 (emTeX) +-------------------- + +web2c has been ported to MS-DOS. If you use this (which I recommend), follow +the instructions above. + +. Note that some Unix specific shell scripts and other files have names + longer than 8 characters. You don't need them. Some of the TeX input files + have lower and uppercase characters in its filenames, but none of the + filenames collide under DOS. + +. Move the `texinput' directory tree to a place where TeX scans for input + files (and rename it to `cjk' or something else). Note that its + subdirectories are specific to encoding schemes. emTeX allows for + recursively scanned search paths, thus retaining the directory tree is + possible. + + Example: + + CJK files: c:\emtex\texinput\cjk\... + environment: set emtexdir=c:\emtex + set texinput=%emtexdir%\texinput!! + + See contrib/wadalab/DNP.txt for the Japanese Wadalab fonts. + +. [In case you plan to use only outline fonts (PFB, TTF) you can omit + this step.] + + Compile hbf2gf. You need GNU make and either the emx (DOS and OS/2) or + the djgpp (DOS and Windows) compiler. + + Say `make -f Makefile.gnu' to see the possible options; more info can be + found in hbf2gf.txt . + +. Compile the utility programs. + + cc -O -s -o bg5conv bg5conv.c + cc -O -s -o sjisconv sjisconv.c + cc -O -s -o cefconv cefconv.c + cc -O -s -o cef5conv cef5conv.c + cc -O -s -o cefsconv cefsconv.c + cc -O -s -o extconv extconv.c + +. Move the various BAT files (for DOS) and/or the CMD REXX scripts (for + OS/2) into a directory in the path (e.g., c:\emtex\bin). + +. Edit the FD files of your encoding(s) to specify the fonts you have. An + explanation of the additional size commands CJK provides can be found in + fonts.txt . + + Note: Most FD example files from the CJK package are set up for PS fonts + from the TeXLive distribution. + + If you use the CJK font packages (see below) no changes are needed. + +. [In case you plan to use only outline fonts (PFB, TTF) you can omit this + step.] + + If necessary, create TFM (and PK) files from CJK bitmaps with hbf2gf + (found in utils\hbf2gf). See hbf2gf.txt and the documentation of the + source file (hbf2gf.dvi) for explanation. Usually it is sufficient to let + hbf2gf create a complete set of TFM files; PK fonts are then created on + demand (this is done with the dvidrv.btm shell script of the CJK package). + + You need 4DOS or 4OS/2 (these are shareware replacements for command.com) + to run dvidrv.btm. + + dvidrv.btm should also work with Take Command/16, Take Command/32, or Take + Command for OS/2. + + The CJK font packages already contain TFM (and VF) files (arranged for the + (new) TDS directory structure; unpack the font packages in the root + directory with + + gzip -d CJK_font_archive.tgz + tar xvf CJK_font_archive.tar + + Rearrange the directory structure as suggested below (to make the file + search mechanism of emTeX faster) and modify the appropriate environment + variables to include the additional directories. The same holds for the + CJK bitmap fonts, its HBF header files and the hbf2gf configuration files. + + [Note: Binaries for the gzip and tar archive programs can be found on CTAN + in the `utils' subdirectory.] + + Example: + + jfs56.tar.gz (should be ftp'ed as jfs56.tgz if you work under DOS + since two dots are not allowed) + + suggested final directory structure (after unpacking and rearranging): + + c:\texmf\fonts\tfm\gsfs1401.tfm ... + c:\texmf\hbf2gf\gsfs14.cfg + c:\texmf\fonts\hbf\gb2312\jfs56\jfs56.a ... + [ c:\texmf\fonts\pk\modeless\XXXdpi\gsfs1401.pk ... ] + + Add these lines to the end of autoexec.bat: + + set texmfdir=c:\texmf + set cjkpk=%texmfdir%\fonts\pk + set textfm=%textfm%;%texmfdir%\fonts\tfm + + Under OS/2, add similar lines (but with expanded pathnames) to the end + of config.sys: + + set texmfdir=c:\texmf + set cjkpk=c:\texmf\fonts\pk + set textfm=<your old textfm path>;c:\texmf\fonts\tfm + + Changes in gsfs14.cfg: + + pk_directory $texmfdir\fonts\pk\modeless\432dpi\ + tfm_directory $texmfdir\fonts\tfm\ + + Changes in dvidrv.btm: + + set pkdir=%texmfdir%\fonts\pk + set ttfcfg=%texmfdir%\ttf2pk + set hbfcfg=%texmfdir%\hbf2gf + + set pre_dpi= + set post_dpi=dpi + + Changes in a dvi driver configuration file (.cnf) for emTeX: + + +font-files:{<your old pk path>,$texmfdir:fonts\modeless}\@Rrdpi\@f.pk + +. Free Chinese TrueType fonts (for both simplified and traditiional Chinese) + with a license similar to the GPL can be found on + ftp://ftp.gnu.org/gnu/nongnu and its mirrors worldwide. You might also + search websites of companies offering WWW browser; they often come with + CJK language packs which contain CJK TrueType fonts. + + Please note that many CJK TrueType fonts only have a Unicode mapping + table. You should use the SFD files from the ttf2pk package starting with + the letter `U' (e.g., UKS.sfd) which maps Unicode fonts to language + specific encoded subfonts as needed by the CJK package. + + The ttf2pk package can be found in the contrib/ttf2pk directory of + + ftp://ftp.freetype.org/ + freetype/unstable/freetype1-contrib-current.tar.gz + + contains the two programs ttf2tfm and ttf2pk for converting TrueType fonts + into TFM and PK fonts, respectively. By the way, this package is not + restricted to CJK TrueType fonts; it works with other TrueType fonts too. + Read the manual pages and the documentation for further information. For + compilation you also need the FreeType 1 package: + + ftp://ftp.freetype.org/pub/freetype/unstable/freetype-current.tar.gz + +. The font editor `fontforge' (available from http://fontforge.sf.net) is + capable to generate Type 1 subfonts as needed by CJK from other formats + like TTF, OTF or CID (using the subfont definition files from ttf2pk). + Such subfonts should be usable by virtually all platforms. + + (Funnnily, fontforge uses the `.sfd' extension also for saving font files + it creates.) + + Although fontforge needs the X Window System, it can be compiled without a + graphical interface, using a scripting language to control font + conversion. The directory `utils/subfonts' of the CJK package contains + useful scripts for manipulating subfonts. + +. You find the some standard Hangul PK fonts for 300dpi (cx) and 600dpi + (ljfour) resolution in the following archives: + + han.300.tar.gz + han1.300.tar.gz + han.600.tar.gz + han1.600.tar.gz + han.tfmvf.tar.gz + han1.tfmvf.tar.gz + + It is necessary to rearrange not only the directory structure but the + names of the dpi directories too: The TeX directory standards specifies + `dpiXXX', but emTeX provides by default `XXXdpi'. + + The final locations of the packages' files should be + + c:\texmf\fonts\tfm\ + c:\texmf\fonts\vf\ + c:\texmf\fonts\pk\{cx,ljfour}\XXXdpi\ + + Additionally to the above example you should add this to the end of + autoexec.bat: + + set cjkvf=%texmfdir%\fonts\vf + + or config.sys for OS/2: + + set cjkvf=c:\texmf\fonts\vf + + Assuming that you use the 300dpi Hangul PK fonts (for a cx printer) you + should do the following changes in your dvi driver configuration file + (suffix `.cnf') for emTeX (still continuing the above example): + + +font-files:{<your old pk path>,$texmfdir:fonts\{modeless,cx}}\@Rrdpi\@f.pk + +virtual-fonts:{<your old vf path>,$texmfdir:fonts}\@f.vf + +. For Thai support please follow the instructions given in `thaifont.txt'. + + +Other systems +------------- + +Recent versions of CJK have only been tested with web2c; nevertheless, it +should run on other systems too: + + The font editor `fontforge' (available from http://fontforge.sf.net) is + capable to generate Type 1 subfonts as needed by CJK from other formats + like TTF, OTF or CID (using the subfont definition files from ttf2pk). + Such subfonts should be usable by virtually all platforms. + + (Funnnily, fontforge uses the `.sfd' extension also for saving font files + it creates.) + + Although fontforge needs the X Window System, it can be compiled without a + graphical interface, using a scripting language to control font + conversion. The directory `utils/subfonts' of the CJK package contains + useful scripts for manipulating subfonts. + + If no outline fonts are available and you have to use HBF fonts, try to + compile hbf2gf. Since it is written in ANSI C it should be fairly portable + (if patches are needed please send them to the author; most likely you + have to modify the file operating routines). If this fails it is necessary + to build the various PK fonts on a different machine. It has been reported + that older GNU compilers on the NeXT have difficulties with `%i' + formatting parameters in the HBF API (hbf.c): replace all occurrences of + `%i' with `%d'. + + If there exists an equivalent to mktexpk (or dvidrv.btm), try to modify it + similar to CJK's changes so that CJK fonts can be created on the fly. If + this fails you can only use precompiled sets of CJK fonts (this is, using + PK fonts generated on another platform). + + The rest should be rather trivial for the experienced user; again, please + write the author if you have successfully installed the package and send a + report how to install. + + +How to get CJK and related software +----------------------------------- + +. You find CJK and software related to TeX at the CTAN hosts (Comprehensive + TeX Archive Network). These completely identical ftp servers (concerning + TeX software) are + + ftp.dante.de DANTE (Deutsche Anwendervereinigung fuer TeX) + Hamburg (Germany) + ftp.tex.ac.uk Cambridge University + Cambridge (England) + ctan.tug.org TUG (TeX Users Group) + Massachusetts (USA) + + You should use the nearest one, or even better, a local mirror of a CTAN + host: The file `CTAN.sites' on CTAN contains a list. + + On CTAN, the CJK package itself is unpacked. To receive the complete + package, go to the parent directory of CJK and say + + get CJK.zip + + or + + get CJK.tar.gz + + whatever is appropriate for your system. + + The CJK directory and all its subdirectories are sent to you in compressed + form. Be aware that not all mirrors of CTAN sites support compression of + directories. + +. The documentation bundle of the CJK package is not unpackaged; download it + as + + get cjk-4.8.5-doc.tar.gz + + or + + get cjk-4.8.5-doc.tar.gz cjkdoc.tgz + + whatever is appropriate for your system. It contains precompiled versions + (in DVI, PDF, text format) of all documentation and example files. + +. PostScript font packages with subfonts which can be directly used by the + CJK package are already available on CTAN: + + traditional Chinese: + fonts/arphic/bkai00mp-<version>.tar.gz + fonts/arphic/bsmi00lp-<version>.tar.gz + + simplified Chinese: + fonts/arphic/gbsn00lp-<version>.tar.gz + fonts/arphic/gkai00mp-<version>.tar.gz + + Japanese: + fonts/wadalab/gothic-0-13-<version>.tar.gz + fonts/wadalab/maru-0-8-<version>.tar.gz + fonts/wadalab/maru-1-8-<version>.tar.gz + fonts/wadalab/mincho-0-12-<version>.tar.gz + fonts/wadalab/mincho-0-8-<version>.tar.gz + fonts/wadalab/mincho-1-8-<version>.tar.gz + + Korean: + fonts/korean/HLaTeX/uhc-bom.tar.gz + fonts/korean/HLaTeX/uhc-dinaru.tar.gz + fonts/korean/HLaTeX/uhc-fonts.tar.gz + fonts/korean/HLaTeX/uhc-gothic.tar.gz + fonts/korean/HLaTeX/uhc-graphic.tar.gz + fonts/korean/HLaTeX/uhc-gungseo.tar.gz + fonts/korean/HLaTeX/uhc-jamo.tar.gz + fonts/korean/HLaTeX/uhc-myoungjo.tar.gz + fonts/korean/HLaTeX/uhc-pen.tar.gz + fonts/korean/HLaTeX/uhc-pilgi.tar.gz + fonts/korean/HLaTeX/uhc-pilgia.tar.gz + fonts/korean/HLaTeX/uhc-shinmun.tar.gz + fonts/korean/HLaTeX/uhc-taza.tar.gz + fonts/korean/HLaTeX/uhc-vada.tar.gz + fonts/korean/HLaTeX/uhc-yetgul.tar.gz + + You should consult the documentation and the font samplers of those + packages (if available) for more informations. + +. Mule 2.3 can be downloaded from this Japanese host: + + ftp://ftp.m17n.org/pub/mule/mule-2.3.tar.gz + + [Note: You need Mule 2.3 only for right-to-left scripts like Arabic or + Hebrew which aren't yet supported in emacs. Otherwise, I strongly + recommend to get FSF emacs 22 or newer, or XEmacs 21.1 or newer which is + available from ftp.gnu.org (USA) and ftp.xemacs.org, respectively, and + its many mirrors.] + + +---End of INSTALL--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/TDS.txt b/language/chinese/CJK/cjk-4.8.5/doc/TDS.txt new file mode 100644 index 0000000000..2473659bc8 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/TDS.txt @@ -0,0 +1,172 @@ +This is the file TDS.txt of the CJK macro package ver. 4.8.5 (16-Oct-2021). + +The TeX Directory Structure (TDS) +--------------------------------- + +A working group of the American TeX Users Group (TUG) has developed the TDS +standard (available from the CTAN hosts in tex-archive/tds). That document +describes a default directory structure where and how to store the many +different files needed for a complete TeX system. + +The following describes the recommended default directories used in the CJK +package for its files; $TEXMF stands for the place where the texmf directory +resides (a possibly better place for distributions based on web2c is +$TEXMFLOCAL; see texmf.cnf of your TeX package for details): + +We follow TDS 1.1 and the setup of TeXLive 2005; this corresponds to +kpathsea 3.5.5. Some of the variables don't exist in older kpathsea +implementations---please read the man page of ttf2tfm for more information +on the old locations. + + +CJK TeX files (you should move the whole `texinput' tree of the CJK package + to this place): + + $TEXMF/tex/latex/CJK/<CJK subdirs>/<CJK TeX files> + + example: + /usr/local/web2c-7.0/texmf/tex/latex/CJK/Bg5/Bg5.cap + + affected variable: $TEXINPUTS + + +TrueType fonts: + + $TEXMF/fonts/truetype/<supplier>/<truetype font> + + example: + /usr/local/teTeX/texmf/fonts/truetype/arphic/gbsn00lp.ttf + + affected variable: $TTFONTS + + You should append proper entries for all subfonts to special.map to make + web2c's name parsing algorithm happy (otherwise it can happen that the + created PK and TFM files are placed into rather strangely named + directories). + + Example lines to append for the above font: + + gbsnlp01 arphic gbsnlp + gbsnlp02 arphic gbsnlp + ... + + +HBF fonts: + + $TEXMF/fonts/misc/hbf/<supplier>/<hbf name stem>/<hbf files> + + [If no supplier is given, you should use `public' instead.] + + example: + /usr/local/share/texmf/fonts/misc/hbf/public/kanji48/kanji48.{bin,hbf} + + affected variable: $MISCFONTS + + You should append proper entries for all subfonts to special.map to make + web2c's name parsing algorithm happy (otherwise it can happen that the + created PK and TFM files are placed into rather strangely named + directories). + + Example lines to append for the above font: + + kanji4801 public kanji48 + kanji4802 public kanji48 + ... + + +ttf2pk configuration and replacement files (ttf2pk.cfg and *.rpl): + + $TEXMF/ttf2pk + + example: + /usr/local/texmf/ttf2pk/ttf2pk.cfg + + affected variable: $TTF2PKINPUTS + + +ttf2pk map files (*.map): + + $TEXMF/fonts/map/ttf2pk + + example: + /usr/local/texmf/fonts/map/ttf2pk/config/ttfonts.map + + affected variable: $TEXFONTMAPS + + +ttf2pk encoding files (*.enc): + + $TEXMF/fonts/enc/ttf2pk + + example: + /usr/local/texmf.local/fonts/enc/ttf2pk/base/T1-WGL4.enc + + affected variable: $ENCFONTS + + [Note that this location is normally found by ttf2tfm also since the + `ttf2pk' path component doesn't appear explicitly in web2c's $ENCFONTS + value. Instead, it starts subdirectory searching one level higher.] + + +ttf2pk subfont definition files (*.sfd): + + $TEXMF/fonts/sfd + + example: + /home/sx0005/texmf/fonts/sfd/Bg5.sfd + + affected variable: $SFDFONTS + + +hbf2gf configuration files: + + $TEXMF/hbf2gf/<config files> + + example: + /dos/texmf/hbf2gf/gsfs14.cfg + + affected variable: $HBF2GFINPUTS + + +TFM files (<supplier> and <name stem> as specified in special.map): + + $TEXMF/fonts/tfm/<supplier>/<name stem>/<tfm file> + + example: + /usr/local/teTeX/texmf/fonts/tfm/arphic/gbsnlp/gbsnlp23.tfm + + affected variable: $TFMFONTS + + +PK files (<supplier> and <name stem> as specified in special.map) + + $TEXMF/fonts/pk/modeless/<supplier>/<name stem>/<pk file> + + example: + /usr/local/share/texmf/fonts/pk/modeless/uw/uwcxmf/uwcxmf23.3252pk + + affected variable: $PKFONTS + +[There are further possibilities how to store PK files: + + 1. instead of <name>.<dpi>pk you can use dpi<dpi>/<name>.pk + + example: + /texmf/fonts/pk/modeless/public/b5ka12/dpi600/b5ka1217.pk + + 2. teTeX additionally allows you to omit either <supplier> or <name stem> + or both (for PK, TFM, and MF files) + + example: + /texmf/fonts/pk/modeless/b5ka12/dpi600/b5ka1217.pk + + + The first option is necessary on operating systems like DOS which only + allow 8.3 filenames. The second option enables you to use the `!' feature + of the emTeX subdirectory searching algorithm (only one level) instead of + `!!' (search all subdirectory levels) together with its template mechanism + to make emTeX much faster in finding PK files. Now teTeX and emTeX could + share one common texmf tree.] + + +---End of TDS.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/chinese/README b/language/chinese/CJK/cjk-4.8.5/doc/chinese/README new file mode 100644 index 0000000000..90f621fd40 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/chinese/README @@ -0,0 +1,7 @@ +The file emTeXb5.txt describes version 4.1.0 . + +The file teTeXb5.txt describes version 4.2.0 . + +The file READMEb5.tex describes version 4.1.0 . + +The file READMEgb.tex describes version 4.1.3 . diff --git a/language/chinese/CJK/cjk-4.8.5/doc/chinese/READMEb5.tex b/language/chinese/CJK/cjk-4.8.5/doc/chinese/READMEb5.tex new file mode 100644 index 0000000000..ac1fff7b50 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/chinese/READMEb5.tex @@ -0,0 +1,1150 @@ +%%% The file READMEb5.tex . This file is part of LaTeX2e CJK package. +%%% +%%% Note that this document is a very first version. Therefore, lots +%%% of installation steps and issues are still left blank. Please be +%%% patient and wait for the next new release. I'm sorry for any +%%% inconveniences. I also deeply expect that everyone who is +%%% interested in this topic gives me suggestions and corrections in +%%% any respects. Thanks in advance. +%%% +%%% Revision 1.5 1996/11/22 10:49:00 d791013 +%%% * modify some context presentations. +%%% +%%% Revision 1.4 1996/10/23 03:59:40 d791013 +%%% Revision control by CVS. +%%% +%%% Revision 1.3 1996/07/27 11:19:20 d791013 +%%% 1. In compliance with CJK version 4.0.0 +%%% 2. Fill up some unfinished sections in previous versions of this +%%% file. +%%% 3. Add more usages for MULE and AUCTeX. +%%% + +\documentclass[12pt,a4paper]{article} +\usepackage{array,CJK} +\RequirePackage{shortvrb} +\MakeShortVerb{\|} + +% enlarge text width and height (for saving number of pages) +\addtolength{\textwidth}{1in} +\addtolength{\oddsidemargin}{-.5in} +\addtolength{\textheight}{1in} +\addtolength{\topmargin}{-.5in} + +\begin{document} +\begin{CJK*}{Bg5}{bsmi} +\CJKtilde + +% local commands +\newcommand{\ntutocjk}{~\textsf{ntu2cjk}~} +\newcommand{\ttftopk}{~\textsf{ttf2pk}~} +\newcommand{\hookstroke}{\raisebox{2pt}{\scriptsize $\surd$}} +\newcommand{\crossmark}{$\times$} +\newcommand{\bigfive}{~\textrm{Big-5}~½X} +\renewcommand{\figurename}{¹Ï~} +\renewcommand{\tablename}{ªí~} + +%% end of header + +\title{\bigfive¤¤¤å¨t²Î¤Uªº~CJK \LaTeXe~±Æª©¨t²Î\\ + (For CJK version 4.1.0)} +\author{ + §õ§g¦t\thanks{The author of the \textsf{ntu2cjk} package. + \textsf{E-mail:} d791013@ce.ntu.edu.tw}\ (Chun-Yu Lee) \and + Werner Lemberg\thanks{The author of the \LaTeXe\ CJK package. + \textsf{E-mail:} wl@gnu.org}} +\date{20 Nov. 1996} +\maketitle + +\tableofcontents + +\section{²¤¶} +\label{sec:introduction} + +¥»¤å¥Dn°w¹ï¤º®e¥H\bigfive¬°¥Dªº¤¤¤å¤å¥ó¡]·íµM¥ç¥i¥]§t¥~¤å¤Î¹Ï§Îµ¥¡^¡A +±ý¨Ï¥Î~\LaTeXe~¤Î~CJK~¨t²Î¶i¦æ±Æª©¦C¦L¡A¨ä©Ò»Ýªº°ò¥»n¨D»P¦w¸Ë¨BÆJµ¥¡A +°µ¤@²nªº¤¶²Ð¡C¨ä½d³òÁö¤£¯à²[»\n½s¦n¤@½g¡]©Î¤@¥»¡^¹Ï¤å¨ÃZªº¤å³¹©Ò»Ý +¤§¥DÃD¡A¦ý¤]¨¬°÷À³¥I¤@¯ë©Êªº¤å¥ó\footnote{¥»¤å±N·|¦b¤é«áºCºC¦a×¥¿»P¸É + ¥R¬ÛÃö¥DÃD¡A¥H¥[±j¨äµ²ºc¤Î¤º®e¡C¦P®É¤]´Á«ÝŪªÌ¯à´£¨ÑÄ_¶Qªº·N¨£¡A¥H¬° + ¤U¤@¦¸¥Xª©¤§°Ñ¦Ò¡C}¡C + +¥»¤åªº¤º®e¥H°t¦X~CJK 4.x.x~¨t²Îªº³]©w¬°¥D¡Cק糧¤å¤§¦P®É¡ACJK~ªºª©¥» +¬O~4.1.0¡C + +\subsection{¾\Ū«ü¤Þ} +\label{sec:reading-guides} + +¤U±¬O²³æªº¾\Ū«ü¤Þ¡G +\begin{itemize} +\item ¥ý½T©w§A±ý¦w¸Ëªº~CJK~ª©¥»¬O§_¬O¥»¤å©Ò´yzªº¡AY¤£¦P¡A½Ð¨ú±o»P¥» + ¤å¬Û®eªº~CJK~ª©¥»¡A©Î¨ú±o³Ì·sªº~CJK~ª©¥»¡A¨Ã¾\Ū¨ä©Ò¥]§tªº¥»¤å¥óÀɮסC +\item Y¦]ª©¥»¤§¤£¦P¡A±z¥ç¥i¥H~CJK~¤å¥ó¤¤ªº~INSTALL~¬°¥D¡A¦õ¥H¦r«¬¦w¸Ë + ¨t²Î¡]\textsf{ntu2cjk}~©Î~\textsf{ttf2pk}¡^¤¤¬ÛÃöªº»¡©ú¤å¥ó¡A¦AÂsÄý + ¥»¤å¤º®e§@¬°°ÑÊ÷©Ê½è¡A¾A·í¦a¦w¸Ë¾ãÓ¤¤¤å±Æª©¨t²Î¡C +\item Y±z´¿¸g¦w¸Ë¹L~CJK¡A±z¥iª½±µ°Ñ¦Ò²Ä~\ref{sec:steps}~¸`¡§¦w¸Ë¨BÆJ¡¨¡C +\item Y¦b±zªº¨t²Î¤¤¡A©|¥¼¦w¸Ë¦³¤¤¤å~TFM¡BPK¡B©Î~PFB~µ¥ÀɮסA¥i°Ñ¦Ò²Ä~ + \ref{sec:install-fonts}~¸`¡§¦r«¬¦w¸Ë¡¨¡C +\item Y±zı±o¤Wzªº¦w¸Ë¨BÆJ¤£°÷¨ãÅé¡A½Ð°Ñ¦Ò²Ä~\ref{sec:my-settings}~ + ¸`¡§§Úªº¨Ò¤l¡¨¡C +\item Y·Qª¾¹D¦p¦ó¨ú±o¬ÛÃöÀɮסA½Ð°Ñ¦Òªþ¿ý~\ref{sec:getting-files}¡§ÀÉ + ®×¨ú±o¡¨¡C +\item Y·Q¹ï¥»¤å©Ò¨Ï¥Î¤§¦rµü¦³©ÒºÃ´b¡A½Ð°Ñ¦Òªþ¿ý~\ref{sec:terms}¡§¦Wµü + ¸ÑÄÀ¡¨¡C +\end{itemize} + +ª`·N¡G¥»¤å¤º®e¦b¦r«¬ªº¦w¸Ë¤è±¡A¹ï©ó\ttftopkªº¤¶²Ð¸û¤Ö\footnote{¦]¥»¤å + ªº¥Dn§@ªÌ¥u¦³¨Ï¥Î\ntutocjk¨Ó¦w¸Ë¦r«¬¡A¹ï¤@¨Ç\ttftopk·sªº§ïÅܤw¤£¼ô±x¡C} +ŪªÌ¥i¦Û~CJK~ªº¤å¥ó®M¥ó¤¤¦³Ãö¤¤¤åªº»¡©úÀÉ~|NTeXb5.doc|~¡]»P¥»Àɮ׸m©ó¦P +¤@¥Ø¿ý¤¤¡^±o¨ì¸Ô²Óªº¸Ñ»¡¡C + +¥t¥~¥»¤å¦b¹ï©ó~em\TeX~Àô¹Ò¤Uªº¦w¸Ë¸Ñ»¡¡A¤]¥u¬O½Ķ¦Û~CJK~¤å¥ó¤¤ªº~ +|INSTALL|~³oÓÀÉ¡A¥»¤å§@ªÌ¨Ã¥¼¹ê§@¹L¡C + +\subsection{¶i¤@¨Bªº¸ê°T¨Ó·½} +\label{sec:further-information} + +\begin{itemize} +\item ¤åÄm~\cite{latex2nd}~¬°°ò¥»¤â¥U¡C +\item ¤åÄm~\cite{latex-companion:1993}~¥i¬°¶i¶¥¤â¥U¡C +\item °Ñ¦Ò~Newsgroup |comp.text.tex|~ªº~FAQ¡C +\item ¦³Ãö~\TeX/\LaTeX~±`°Ýªº°ÝÃD¡A¥i°ÑÊ÷¤åÄm~\cite{tex-faq:1.9c}¡]ª©¥» + µy¡^¡C +\end{itemize} + +\section{¨t²Î»Ý¨D} +\label{sec:requirements} + +\subsection{µwÅéÀô¹Ò} +\label{sec:hardware-requirements} + +\TeX/\LaTeX~¨t²Î¥Ø«e´X¥Gµ´¤j³¡¤Àªº§@·~¨t²Î¬Ò¦³¤ä´©¡C¦b~RAM~ªº»Ý¨D¤W«h +µø±ý½s±ÆÀɮתº¤j¤p¡A¤p«h¼Æ¤Q¸U¦ì¤¸¡A¤j«h¼Æ¦Ê¸U¦ì¤¸¡CÁöµM~\TeX/\LaTeX~ +¨t²Î¦b~286~¥H«eªº¾÷¾¹´N¯à¶]¡]¨S°O¿ùªº¸Ü¡^¡A¦ý³Ì¦nÁÙ¬O¦³~8MB~¥H¤Wªº°O¾Ð +Åé¡A¥HÀ³¥I¤¤¤å¦r¤§©Ò»Ý¡C¦Ü©óµwºÐªÅ¶¡¡A¦b¤¤¤å¦r«¬ªº¨Ï¥Î»Ý¤U¡A³Ì¦n¯à¦³~ +150MB~ªºªÅ¶¡¡]\TeX~¨t²Î¬ù~30MB¡A8~ºØ~NTU~¥þ¯u¦r«¬¤Î¨äÂà´«¦r«¬¡APS~¤Î~ +PK~¦r«¬µ¥¡A¬ù~80MB¡^¡C + +\subsection{³nÅé»Ý¨D} +\label{sec:software-requirement} + +\begin{itemize} +\item ¹ï~\LaTeX~¨t²Î¦³·§¬Aªº»{ÃÑ»P¹ï¦¹¨t²Î¨ã°ò¥»¾Þ§@ªº¯à¤O¡C³Ì¦n§A¦³¤å + Äm~\cite{latex2nd,latex-companion:1993}~³o¨â¥»®Ñ¦b¤âÃä¡C +\item \LaTeXe~ªº°õ¦æÀô¹Ò¡C¥]¬A~\TeX/\LaTeX~ªº¬ÛÃöÀô¹Ò¡C +\item \LaTeXe\ CJK~¨t²Î¡C +\item Y·Q¦w¸Ë~PS~¦r«¬\footnotemark\addtocounter{footnote}{-1}¡A±z»Ýn + \begin{enumerate} + \item \textsf{ntu2cjk}~¨t²Î¡C + \item NTU TrueType~¦r«¬¡C + \item gcc~½sĶ¾¹¤Î¬ÛÃöÀô¹Ò¡BGNU make¡C + \item GhostScript(3.12~¥H¤Wªºª©¥»)¡C + \item |afm2tfm|¡C + \item ¸ÑÀ£ÁYµ{¦¡¡G |arj|¡B|gzip|¡B|tar|¡C + \item Y·Q±q~PS~¦r«¬«Ø¥ß~PK~¦r«¬¡A«h»Ý~|ps2pk|~©Î~|gsftopk|¡C + \end{enumerate} +\item Y±ý¦w¸Ë~PK~¦r«¬\footnote{´N¤¤¤å¤å¥óªº±Æª©¡B¹wÄý¤Î¦C¦L©Ò»Ýªº¦r«¬ + ¦Ó¨¥¡A¥i¥H³æ¿W¥u¦s¦b¦³~PK~¦r«¬©Î~PS~¦r«¬¡F¦ý´N¤è«K©Ê»P¥iÄâ©Ê¦Ó¨¥¡A + µ§ªÌ«Øij¡A¥H°ÊºAªº¤è¦¡²£¥Í~PK~¦r«¬¨Ã«O¦³§¹¾ã¡]©Î±`¥Î¤Î°ÊºA¡^ªº~PS~ + ¦r«¬¡A¬O¸û¨Îªº²Õ¦X¡C}¡A°Ñ¦Ò²Ä~\ref{sec:install-pk-fonts}~¸`¤§´yz¡C +\item ¿é¥X¡G|dvips|¡B|dvi2xx|¡B¤Î¨ä¥L~dvi~®æ¦¡ªºÂà´«µ{¦¡»P¨ä¤U´åªºÂà´« + µ{¦¡¡C +\end{itemize} + + +\section{¦w¸Ë¨BÆJ} +\label{sec:steps} + +¥»¸`±N¥Dnªº¦w¸Ë¬yµ{¡A±ø¦C¦p¤U¡A¦U¶µ¤¤¸Ô²Óªº¦w¸Ë«ü¤Þ¡A±N¦b¥H«áªº¦U¸`¤¤ +ÄÄz¡G +\begin{enumerate} +\item Y¬O~\TeX/\LaTeX~¨t²Î¤v¦w¸Ë¦n¡A½Ð¸õ¤U¤@¨B¡C§_«h®Ú¾Ú¦Û¤v¨Ï¥Îªº§@ + ·~¨t²Î¡A¨M©wÀ³¨Ï¥Î¦óºØ~\TeX~¨t²Î¡A¨Ã°Ñ¦Ò¨t²Î»Ý¨D¡]²Ä~ + \ref{sec:requirements}~¸`¡^¡BÀɮרú±o¡]ªþ¿ý~\ref{sec:getting-files}¡^ + ¤Î¨ä¥L©óªþ¿ý¤¤¦U¸`¤§¸ê®Æ¡A¨ú±o¬ÛÃöÀɮסA¨Ã«ö©Ò¨ú±o¸ê®Æ¤¤ªº«ü¥Ü¦w¸Ë¡C + Y¨ú±oªº¨t²Î¨S¦³~\LaTeXe~¨t²Î¡A©Î¬O±z·Q§ó·s¦Ü¸ûªñªºª©¥»¡A«h¥i¥t¥~¦Û~ + CTAN~¨ú±o¡A¦b¤w¦w¸Ë¦nªº~\TeX~Àô¹Ò¤¤¬[¤W~\LaTeXe¡C +\item ½T©w~\LaTeXe~¤v¦w¸Ë§´·í¡C¥i¥H¤@~\LaTeXe~®æ¦¡¥B¤º®e¬°^¤åªºÀÉ®× + ¡]¦p~|sample.|\linebreak[1]|tex|¡^¡A±q°õ¦æ~|latex|~½sĶ¡A¥H~|xdvi|~ + ©Î~|dviscr|¡B|dvisvga|~µ¥µ¥¡^¹wµø¡B¨ì~|dvips|~©Î~|dvilj|~Âন¦Lªí®æ + ¦¡¡]PostScript~©Î~PCL~µ¥®æ¦¡¡^¨Ã¦L¥X¡A¥H§PÂ_¬O§_¦w¸Ë¥¿½T¡C +\item ¦w¸Ë~CJK~¤¤¤å~\LaTeXe~¨t²Î¡]°Ñ¦Ò²Ä~\ref{sec:install-CJK}~¸`¡^¡C +\item ¿ï¾Ü¦w¸Ë~PK~©Î~PS~¦r«¬©Î¤GªÌ¬Ò¦w¸Ë¡]°Ñ¦Ò²Ä~ + \ref{sec:install-pk-fonts}~¸`©Î²Ä~\ref{sec:install-ps-fonts}~¸`¡^¡C +\item ¥H~CJK~¨t²Î¤¤©Ò´£¨Ñ¤§¤¤¤å~\LaTeXe~ÀÉ¡A|READMEb5.tex|¡A°µ´ú¸Õ¡]°Ñ + ¦Ò²Ä~\ref{sec:my-settings}~¸`¡^¡C +\item Y¦³°ÝÃD¡A½Ð°Ñ¦Ò²Ä~\ref{sec:trouble-shooting}~¸`¡§°ÝÃD¸Ñ¨M¡¨¡C +\end{enumerate} + + +\section{¦w¸Ë~CJK~¤¤¤å~\LaTeXe~¨t²Î} +\label{sec:install-CJK} + +½Ð°w¹ï±z©Ò¨Ï¥Î§@·~¨t²Î¡A°Ñ¦Ò¤U±¹ïÀ³ªº¤p¸`¡C + +\subsection{¦b~UNIX~¨t²Î¤U~(web2c)} +\label{sec:install-under-unix} + +\begin{enumerate} +\item §äÓ¾A·íªº¥Ø¿ý±N¨ú¦^ªº~CJK~À£ÁYÀɸѶ}¡C¨Ò¦p±z±N¨ä¸Ñ¶}¦Ü~ + |/tmp/CJK|¡C +\item ¦pªG±z¯à¥H¨t²ÎºÞ²zªÌªº¨¥÷¡]root¡^¦w¸Ë¡A«h¥i±N¸ÑÀ£«áªº~CJK~¥Ø¿ý + ¤¤~|texinput|~¥Ø¿ý¤Uªº©Ò¦³Àɮס]«O«ùì¥Ø¿ýµ²ºc¡^²¾¦Ü~\TeX~¨t²Î¯à§ä¨ì + ªº¦a¤è¡]³q±`¬O~ + |${TEXMF}/|\linebreak[1]|tex/|\linebreak[1]|latex/|\ldots¡A + |${TEXMF}|~¬O~web2c~ªº~home¡A¤@¯ë¬°~ + |/usr/|\linebreak[1]|local/|\linebreak[1]|lib/|\linebreak[1]|texmf|¡^¡A + ¨Ã±N¦¹¥Ø¿ý¦W§ï¦¨~CJK~©Î¾A·íªº¦WºÙ¡C¦pªG±z¤£¬O¨Ï¥Î¸û·sª©ªº~\TeX~¡]¹³~ + web2c¡A³o¨Ç~\TeX~¨t²Î¡A´£¨Ñ¤F»¼°j·j´M¤l¥Ø¿ýÀɮתº¯à¤O¡^¡A«h±N~ + |texinput|~¥Ø¿ý¤Uªº©Ò¦³Àɮײ¾¦Ü~\TeX~¨t²Î¯à§ä¨ìªº¦a¤è¡C¨Ò¦p¡G + \begin{verbatim} + $ cd /usr/local/lib/texmf/tex/latex + $ mv CJK CJK.old + $ cd /tmp/CJK + $ cd 4_1.0 + $ mv texinput /usr/local/lib/texmf/tex/latex/CJK + \end{verbatim} + ¦pªG±z¤£¯à¥H~root~ªºÅv¦w¸Ë¡A½Ð¥HÃþ¦ü©ó¤U±ªº«ü¥Oµy§@קï¡]¦pªG¨Ï¥Î~ + |csh|¡^¡A¨Ã«Øij±N¤§¥[¤J~|.login|¡]¥Î©ó~|/bin/csh|¡^©Î~|.profile|¡]¥Î + ©ó~|/bin/sh|¡^¤¤¡A¨Ï±o~\TeX~¯à·j´M¨ì~CJK~¥Ø¿ý¡G + \begin{verbatim} + setenv TEXINPUTS: §Aªº CJK ¥Ø¿ý¦W// + \end{verbatim} + ª`·N¡AY±z©Ò¨Ï¥Îªº~\TeX~¨t²Î¤£¤ä´©¦h¼h¤l¥Ø¿ý·j´M¡A«h±N½T¤Áªº¥Ø¿ý¦WºÙ + ¸s¡A¥[¤J¦Ü~|TEXINPUTS|~ªºÀô¹ÒÅܼƤ¤¡F©ÎªÌ±N~|texinput|~¥Ø¿ý¤U¤Î~ + |Bg5|~¥Ø¿ý¤Uªº©Ò¦³Àɮײ¾¦Ü¬Yӥؿý¤¤¡A¨Ãµø¦¹¥Ø¿ý¬°~CJK~¥Ø¿ý¡C + + ¨Ò¦p¡]¥H~|sh|~«ü¥O¬°¨Ò¡^¡G + \begin{verbatim} + ¡]°²³]±z·Q±N CJK ªº texinput ¥Ø¿ý²¾¦Ü ~/CJK/texinput¡^ + # cd ~/CJK ¡]¦Ü CJK ¤l¥Ø¿ý¡^ + # mv texinput texinput.old ¡]¦pªG±z¦³Âªº texinput ¥Ø¿ý¡A¥ý³Æ¥÷¡^ + # cd /tmp/CJK ¡]¦Ü¸Ñ¶} CJK ªº¦a¤è¡^ + # cd 4_1.0 ¡]¦Ü¥Ø«eªºª©¥»¤U¡^ + # mv texinput ~/CJK ¡]±N texinput ¤l¥Ø¿ý²¾¦Ü ~/CJK¡^ + # TEXINPUTS=":~/CJK/texinput//" ¡]©w¸qÀô¹ÒÅܼơ^ + # export TEXINPUTS ¡]³]¬°³q¥ÎªºÀô¹ÒÅܼơ^ + \end{verbatim} +\item °Ñ¦Ò²Ä~\ref{sec:install-fonts}~¸`¦r«¬¦w¸Ë¡A±N~|.tfm|~ÀÉ¡APK~¦r«¬ + ©Î~PS~¦r«¬¦w¸Ë¦Ü¾A·íªº¥Ø¿ý¤U¡C +\item °Ñ¦Ò²Ä~\ref{sec:install-.fd}~¸`¦w¸Ë~|.fd|~ÀÉ¡A©Î°Ñ¦Ò~|fonts.txt|¡A + ¨Ã®Ú¾Ú¦r«¬¦w¸Ëªºµ²ªG¡A³]©w¬ÛÃöªº~|.fd|~ÀÉ¡C¥H¥»¤å°w¹ïªº\bigfive¤¤¤å¦Ó + ¨¥¡A¥²¶·×§ï~|c00kai.fd|¡]¦pªG±z±N·¢®Ñ¦r±Ú³]¬°~|kai|¡^¡B|c00fs.fd| + ¡]¦pªG±z¨Ï¥Î¥é§º¦r±Ú¨Ã©w¬°~|fs|¡^¡Kµ¥¬ÛÃöÀɮס]¥ç¥i°Ñ¦Ò\ttftopk©Î + \ntutocjk©Ò´£¨Ñªº½d¨Ò¡^¡C +\item ¦b¸Ñ¶}ªº~CJK~¥Ø¿ý¤¤¡A¶i¤J~\texttt{utils/Bg5conv}~¥Ø¿ý¤¤¡A½sĶ~ + |bg5conv.c|¡A¦p¡G + \begin{verbatim} + gcc -O -s -o bg5conv bg5conv.c + \end{verbatim} + ±N²£¥Íªº°õ¦æÀÉ~|bg5conv|~³s¦P~|bg5latex|~³oÓÀÉ¡A²¾¦Ü~\TeX~¨t²Î¤¤©ñ + ¸m°õ¦æÀɪº¥Ø¿ý¤¤¡]¦pªGÅv¨¬°÷¡^¡C©Î¸m©óÓ¤Hªº¥Ø¿ý¤¤¡A¨Ã½T©w¦¹¥Ø¿ý¦s + ¦b©óÀô¹ÒÅܼÆ~|PATH|~¤¤¡]©Î¦b~|PATH|~¤¤¼W¥[¤@°õ¦æ¸ô®|¡A«Øij±N¦¹¸ô®|ªº + ³]©w¥[¨ì~login~ªº±Ò©lÀɤ¤¡^¡C + + ¨Ò¦p¡G + \begin{verbatim} + # cd /tmp/CJK/4_1.0 + # cd utils/Bg5conv + # gcc -O -s -o bg5conv bg5conv.c + # mv bg5conv bg5latex ~/bin + # export PATH=$PATH:~/bin + \end{verbatim} + ª`·N¡A¦pªG±z¦³Âªº~|bg5conv|~°õ¦æÀÉ¡A½Ð°È¥²§ó·s¡A¦]~4.0~¥H¤Wªºª©¥»»P + ¸û¦ªºª©¥»¤£¦P¡]¥H~``|^^FF|''~¬°¤À¬É¦r¤¸¦Ó¤£¬O~``|.|''¡^¡C + +\item ¶i¤J¤l¥Ø¿ý~|doc/chinese|~¤¤¡A´ú¸Õ±zªº³]©w¡G + \begin{verbatim} + # cd /tmp/CJK/4_1.0 + # cd doc/chinese + # bg5latex READMEb5.tex + \end{verbatim} + ¬Ý¬O§_¯à¶¶§Q§¹¦¨½sö¡C +\end{enumerate} + +\subsection{¦b~DOS~©Î~OS/2~¨t²Î¤U} +\label{sec:install-under-dos} + +\begin{enumerate} +\item §äÓ¾A·íªº¥Ø¿ý±N¨ú¦^ªº~CJK~À£ÁYÀɸѶ}¡C +\item ±N~CJK~¨t²Î¤¤~|texinput|~¥Ø¿ý¤Uªº©Ò¦³Àɮס]«O«ùì¥Ø¿ýµ²ºc¡^²¾¦Ü~ + \TeX~¨t²Î¯à§ä¨ìªº¦a¤è¡A¨Ã±N¦¹¥Ø¿ý¦W§ï¦¨~|CJK|~©Î¾A·íªº¦WºÙ¡C¦pªG±z¤£ + ¬O¨Ï¥Î¸û·sª©ªº~\TeX¡]¹³~em\TeX¡A³o¨Ç~\TeX~¨t²Î¡A´£¨Ñ¤F»¼°j·j´M¤l¥Ø¿ý + Àɮתº¯à¤O¡^¡A«h±N~|texinput|~¥Ø¿ý¤U»P¤Î±zn¨Ï¥Îªº¤º½X¥Ø¿ý¡]Bg5¡^¤U + ªº©Ò¦³Àɮײ¾¦Ü~\TeX~¯à§ä¨ìªº¦a¤è¡C + + ¥H~em\TeX~¨t²Î¬°¨Ò¡A±N~CJK~ªº~|texinput|~¤¤ªºÀɮײ¾¦Ü~ + |c:\emtex\|\linebreak[1]|texinput\|\linebreak[1]|CJK\|\ldots¡A¨Ã¥H + ¤U±ªº«ü¥Oµy§@קï¡A¥H¨Ï±o~\TeX~¯à·j´M¨ì~CJK~¥Ø¿ý¡G + \begin{verbatim} + set emtexdir=c:\emtex + set texinput=%emtexdir%\texinput!! + \end{verbatim} +\item ¦b~CJK~¨t²Î¤¤ªº~|utils\|\linebreak[1]|Bg5conv|~¥Ø¿ý¤¤¡A±N~ + |bg5conv.|\linebreak[0]|exe|~³s¦P~|bg5latex.|\linebreak[0]|bat|~²¾¦Ü~ + \TeX~ªº°õ¦æ¸ô®|~(|PATH|)~¤¤ªº¬Yӥؿý¡]©Î¼W¥[¤@°õ¦æ¸ô®|¡^¡C +\item °Ñ¦Ò~\ref{sec:install-fonts}~¦w¸Ë¦r«¬¤@¸`¡A±N~|.tfm|~ÀÉ¡APK~¦r«¬ + ©Î~PS~¦r«¬¦w¸Ë¦Ü¾A·íªº¥Ø¿ý¤U¡C +\item °Ñ¦Ò~\ref{sec:install-.fd}~¦w¸Ë~|.fd|~Àɤ@¸`¡A®Ú¾Ú¦r«¬¦w¸Ëªºµ²ªG¡A + ³]©w¬ÛÃöªº~|.fd|~ÀÉ¡C¡]¥i°Ñ¦Ò\ttftopk©Î\ntutocjk©Ò´£¨Ñªº½d¨Ò¡^¡C +\end{enumerate} + + +\section{¦r«¬¦w¸Ë} +\label{sec:install-fonts} + +¥»¤å¶È¥H¥Ñ~True Type~¦r«¬²£¥Íªº~PK~¦r«¬©Î~PS~¦r«¬¬°»¡©ú¡C¦r«¬¤§¨ú±o°Ñ +¦Òªþ¿ý~\ref{sec:getting-files}~¤§»¡©ú¡C + +PK~¦r«¬¡]©Î~PS~¦r«¬¡^³Ì¦n¦w¸Ë¦b·í§An¤É¯Å~\TeX/\LaTeX~¨t²Î®É¤£·|¼vÅTªº +¦ì¸m\footnote{¨Æ¹ê¤W¡A³Ì¦n±N¨º¨Ç¥¿±`¦w¸Ë~\TeX/\LaTeX~¨t²Î¥H«á¡A§A¥²»Ý + ÃB¥~קï©Î¦w¸ËªºÀɮפε{¦¡¡A³£©ñ¦b¥t¥~¸û¨p¦³ªº¥Ø¿ý¤¤¡AµM«á¦A¥H~link~ + ªº¤è¦¡¸m©ñ©ó쥻À³³Bªº¦ì¸m¡C¦b~DOS~¤U¡A¦r«¬ÀÉ¥H¥[¦bÀô¹ÒÅܼƪº¸ô®|¤¤ + ¬°¥D¡A¨ä¥¦ªº«h¥H½Æ»sªº¤è¦¡¨ú¥N~link¡C}¡A¦]¬°¤@¥¹¦¹Ãþ¦r«¬²£¥Í«á¡A§Y¥i +ªø®É´Áªº¨Ï¥Î¡F¥t¥~¡A¦pªG¨C¦¸n¤É¯Å~CJK~¨t²Î©Î~\TeX/\LaTeX~¨t²Î®É¡A¤]¥i +©ñ¤ß¤jÁxªº¤U¤â¡C + +\subsection{PK~¦r«¬} +\label{sec:install-pk-fonts} + +\subsubsection{¦Û°Ê²£¥Í~PK~¦r«¬} +[©|¥¼§¹¦¨¡A½Ð°Ñ¦Ò\ttftopk©Î\ntutocjkªº¦w¸Ë»¡©ú] + +\subsubsection{¹w¥ý²£¥Í~PK~¦r«¬} +[©|¥¼§¹¦¨¡A½Ð°Ñ¦Ò\ttftopkªº¦w¸Ë»¡©ú] + +\subsubsection{¥Ñ~PS~¦r«¬²£¥Í~PK~¦r«¬} +°Ñ¦Ò~\ref{sec:install-ps-fonts} PS~¦r«¬¤@¸`¡C + +\subsection{PS~¦r«¬} +\label{sec:install-ps-fonts} + +¦¹³B©Ò«üªº~PS~¦r«¬¬°¤¤¤å~PostScript Type 1~¦r«¬¡A¦pªG¦A¥[¤W¤@өΤGÓ +ªº~PS~¦r«¬¡]¥H³o¨Ç¤¤¤å~Type 1~¦r«¬¬°°ò©³©Òºc¦¨ªº¦r«¬¡^¡A¥i²Õ¦¨~ +PostScript Type 0~ªº¦r«¬¡C¦ý~\TeX~¨t²Î¥Ø«e¤´µLªk¨ú¥Î~Type 0~ªº¦r¡A©Ò¥H +¥»¤å¤]¤£·|´£¤Î¡C¥t¥~ª½±µ¨ú¥Î~TTF~¦r«¬¦b¥¼¨Ó¤]¥i¯à¹ê²{¡A¨Ò¦p~ +Ghostscript~¦b·sªºª©¥»¤¤¡]4.01¡^¤w¯à¨Ï¥Î~TTF~¦r«¬¡C + +¥H¦w¸Ë·¢®Ñ~PS~¦r«¬¬°¨Ò¡A²z¨ä¬yµ{¦p¤U¡]¸Ô²Ó½Ð°Ñ¦Ò\ntutocjk¤¤ªº~ +|README|~ÀÉ¡^¡G +\begin{enumerate} +\item ¨C¦¸°w¹ï¤@Ó¦r±Ú¡]font family¡A¦p·¢®Ñ¡^²£¥Í~|.tfm|~¤Î~|.pfb|~ÀÉ + ®×¡C +\item קï¦r±Ú¬ÛÃöªº~makefile~ÀÉ¡A¦pקï~|kai.mak|~ªº¤º®e¡]¥H¤U¥H·¢®Ñ + ¬°¨Ò¡^¡C +\item Y±z¨Ï¥Î~UNIX~¨t²Î¡A¿é¤J¤U±ªº«ü¥O + \begin{verbatim} + make unix FONTMAK=kai.mak + \end{verbatim} + Y±z¦b~DOS~¤U¡A½Ð¤U¡G + \begin{verbatim} + make dos FONTMAK=kai.mak + \end{verbatim} + Y¤@¤Á¶¶§Q¡AÀ³¦³~55~Óªº~|.pfb|~ÀɮשM~55~Ó¡]©Î~110~Ó¡A¦pªG~ + |EXTENDED_FONT|~¬O³]~|YES|¡^|.tfm|~ÀɮסA¥B~TFM~Àɮתº¤j¤p¡A¨CÓ¬ù¬°~ + 1.2kB~¥ª¥k¡C +\item ¤U~|make install-fonts|~¦¹«ü¥O¡A¥i±N©Ò¦³²£¥Íªº¦r«¬¦w¸Ë¦Ü±z³]©w¦b~ + |kai.mak|~Àɮפ¤©Ò«ü©wªº¥Ø¿ý¤¤¡C±z¥i¯à¤]»Ýn¥H~|make install-maps|~ + ³oÓ«ü¥O¦w¸Ë~|Fontmap|~¤Î~|psfonts.map|~µ¥¡C +\item ®Ú¾Ú¥H¤W©Ò©w¸q¦r«¬¬ÛÃöªº¦WºÙ¡A±z¥²¶·×§ï~|c00kai.fd|~¨Ã²¾¦Ü~ + \TeX~§ä±o¨ìªº¥Ø¿ý¡C©ÎªÌקï~|c00kai.fdx|¡A¦pªG~|EXTENDED_FONT|~¬O³] + ¬°~|YES|¡A²¾¦Ü¾A·í¥Ø¿ý«á¡A¥²¶·±N¨ä¦WºÙ§ï¬°~|c00kai.fd|¡C +\end{enumerate} + +\subsubsection{¥Ñ~PS~¦r«¬²£¥Í~PK~¦r«¬} + +¥Ñ~PS~¦r«¬²£¥Í~PK~¦r«¬¡A³q±`±z»ÝnÂÇ~|gsftopk|~©Î~|ps2pk|~¨Ó§¹¦¨¡C + +¦pªG¥H~|gsftopk|~²£¥Í~PK~¦r¡AÁÙ»Ýn~|gs|¡]Ghostscript¡^ªº»²§U¡A¦]¦¹¦b +±z®×¸Ë¦n~PS~¦r«¬«á¡A°O¦ín±N¦r«¬©Ò¦bªº¥Ø¿ý¦W¡A¥[¨ì~|GS_LIB|~³oÓÀô¹ÒÅÜ +¼Æ¤¤¡A©ÎªÌ±N¥Ñ\ntutocjk©Ò²£¥Í~|.pfb|~ÀÉ¡A¥H~symbolic link~ªº¤è¦¡¡A¥þ³¡~ +link~¨ì~|gs|~©Ò©w¸qªº¦r«¬¥Ø¿ý¤¤¡C + +¦pªG¥Î~|ps2pk|¡A±z»Ýn~AFM~ÀÉ¡]¦b\ntutocjk»s³y~|.pfb|~Àɮתº¹Lµ{¤¤¡A·| +²£¥Í~AFM~ÀÉ¡^¡C³Ì¦n¨ú±o³Ì·sªºª©¥»¡A¥H«Oµý¦bŪ¨ú~PS~¦r«¬»P~AFM~ÀɮɡA¤£ +P²£¥Í°ÝÃD¡C + +¦b±z©Ò¨Ï¥Îªº~\TeX/\LaTeX~¨t²Î¤¤¡A¤j·§³£¦³~|MakeTeXPK|~³oÓÀÉ¡A¥¦ªº¥\¥Î +§Y¬O¦b¨t²Îµo²{¬YÓ~PK~¦r«¬¤£¦s¦b®É¡A¦Û°Ê²£¥Í¤§¡C¦Ó¦¹Àɦü¥G¤£»Ý¯S§OªºÃB +¥~³]©w¡A³£¦³¦Û°Ê¥Ñ~PS~Àɲ£¥Í~PK~¦r«¬ªº¥\¯à¡C·íµM«e´£¬O³o¨Ç~PS~¦r«¬¥²¶· +¥X²{¦b~|psfonta.map|~¤¤¡A|MakeTeXPK|~¥Î¦¹Àɤ¤ªº¦r«¬§PÂ_¥¿n²£¥Í¦r¬O§_ +¬°~PS~¦r«¬¡]¨ä¹ê³o»Ýnµø±z©Ò¦w¸Ëªº¬ÛÃö¨t²Î¦Ó©w¡^¡C + +%\section{¤£¦P¹q¸£¥»O¤U¤§ª`·N¨Æ¶µ} +%\label{sec:platforms} + +%\subsection{DOS} +%\label{sec:platform-dos} + +%\subsection{UNIX} +%\label{sec:platform-unix} + +\subsection{¦w¸Ë~\texttt{.fd}~ÀÉ} +\label{sec:install-.fd} + +·í§Anªº¦r«¬¡]TFM~ÀɮסBPK~¦r«¬¡B©Î~PS~¦r«¬¡^«ö·Ó¤Wz´X¸`¤è¦¡¦w¸Ë§´·í +«á¡A±z¤]¶·n¾A·í¦a³]©w¬ÛÃöªº~|.fd|~ÀÉ¡C¥»¸`±N²z¤§¡C + +\LaTeXe~ªº~\textsf{NFSS}~³W®æ¤¤¡An´yz¤@ºØ¦r«¬¥]§t¦³¤U¦C°Ñ¼Æ¡G +\begin{enumerate} +\item Encoding¡G½s½X¤è¦¡¡A¦p~|T1|¡B|OT1|¡B|DC|~µ¥¡C|U|~ªí¥Ü~unknown¡C + CJK~¨t²Îªº½s½X¤è¦¡¡]°Ñ¦Ò~|fonts.txt|¡^¤@¬°¤å¥ó¤¶±©Ò¥Î¡A¦p~|Bg5|¡B + |GB|¡B|Bg5pmC|~µ¥¡A¤@¬°~\textsf{NFSS}~©Ò¨Ï¥Î¡A¦p~|C00|¡B~|C10|¡B + |C01|~µ¥¡C¦¹³B¡A§Y©w¸q¦b~|.fd|~Àɤ¤ªº½s½X¤è¦¡»Ý¨Ï¥Î«áªÌ¡C¥H§^¤H©Ò¨Ï + ¥Îªº\bigfive¬°¨Ò¡A~|C00|~¬O¥²»Ý©w¸qªº¡C +\item Family¡G¦r±Ú¡A¦p~|cm|¡B|cmss|¡B|cmtt|~µ¥¡ACJK~¨t²Î¦b¦w¸Ë\bigfiveªº + ¦r«¬»Ý¦Û¦æ©w¸q¡A¦ý»Ý²Å¦X~\textsf{NFSS}~ªº³W©w¡A§Y©w¸q¦r±Úªº¦r¼Æ¤£¥i + ¶W¹L¤Ó¦r¥À¡C±z¥i°Ñ¦Ò¥]§t¦b¸Ñ¶}Àɮפ¤ªº½d¨Ò¡A¦p~|c00kai.fd|¡CCJK~¨t + ²Î¥H·¢®Ñ¡B©úÅé¡B´Ð®Ñµ¥ªí¥Ü¦r±Ú¡C§^¤H¥i¥Î~|kai|¡B|song|¡B|ming|¡B|fs|¡B + |black|¡B|round|~µ¥µ¥ªí¥Ü\bigfiveªº¦r±Ú¡C +\item Series¡G¦r¨t¦C¡]¾î¦Vªº¤Ø¤o¡^¡A¦p~|m| (medium)¡B|b| (bold)¡B|bx| + (extended bold)~µ¥¡ACJK~ªu¥Î¦¹³W®æ¡C +\item Shape¡G¦r§Îª¬¡A¦p~|n|¡B|sl|¡B|ol|¡B|it|~µ¥¡CCJK~ªu¥Î¤§¡C +\item Size¡G¦r¤j¤p¡]ÂI¼Æ¡^¡A¦p~|10|¡B|12|~µ¥ +\item |\baselineskip|¡G¬Û¾F¨â¦æªº°ò·Ç½u¶¡¶Z¡A¤j³¡¤À±¡ªp¥Î¤£¨ì¦¹°Ñ¼Æ¡C +\end{enumerate} + +®Ú¾Ú¥H¤Wªº±Ôz¡A¥H¤U²³æ¤¶²Ð¸ÓÀɪºµ²ºc»P»yªk¡A¥H~|c00kai.fd|¡]¦b~ +\texttt{texinput/Bg5}~¥Ø¿ý¤U¡^ÀÉ¥]§t¤TÓ¥Dnªº«ü¥O¡G +\begin{enumerate} +\item |\ProvidesFile{c00kai.fd}{|{\em release-info}|}|¡G»¡©ú¥»ÀɦW¨ÃÁ× + §K«½Æ¸ü¤J¡C +\item |\DeclareFontFamily{C00}{kai}{}|¡G»¡©ú¦¹ÀÉ¥H~|C00|~ªº½s½X¥B´yz~ + |kai|~¦r±Ú¡C¨ä¤¤~|C00|~¬O~\textsf{NFSS} encoding¡C +\item |\DeclareFontShape{C00}{kai}{m}{n}{<-> CJK * b5ka}{}|¡G¦¹©R¥Oªº + ²Ä¤Ó°Ñ¼Æ¸û½ÆÂø¡A¥i°Ñ¦Ò~|fonts.txt|~ªº»¡©ú¡C¨ä¤¤~|*|~¸¹¥kªº°Ñ¼Æ§Y¬O + ¤@²Õ¦r«¬ÀɦWªº¦rº¡ACJK~¨t²Î·|¦b§ÀºÝ¥[¤W¤G¦ì¼Æ¦r¡A¦¨¬°¦r«¬¦WºÙ + ¡]sub-font name¡^¡A¤£½×¬O~|.tfm|~ÀÉ¡B|.pfb|~ÀÉ©Î~|pk|~ÀɬһݻP¦¹¦W¤@ + P¡C|CJK|~«h¬O¦r«¬¤j¤p¨ç¼Æ¡]size function¡^¡ACJK~¨t²Î©w¸q¤F¼ÆÓ¦¹Ãþ + ¨ç¼Æ¡A¦p¡G + \begin{verbatim} + CJK ¬Û·í©ó `' (empty) ·N«ü¨Ï¥Î¦rªº¤j¤p»P latex ½sĶªº¤@P¡C + sCJK ¬Û·í©ó `s' ¦P¤W¡A¦ý¨ú¦r¦³»~®É¤£Äµ§i¡]silent¡^¡C + CJKfixed ¬Û·í©ó `fixed' Y»Ý¨Dªº¦r¤j¤p¦b©w¸qªº½d³ò¤º¡A¤@«ß + ¨Ï¥Î«ü©wªº¦r¡C + sCJKfixed ¬Û·í©ó `sfixed' ¦P¤W¡A¦ý keep silent¡C + CJKsub ¬Û·í©ó `sub' ¥H¥t¤@Ãþ¦r«¬´À¥N¡C + CJKssub ¬Û·í©ó `ssub' ¦P¤W¡A¦ý keep silent¡C + \end{verbatim} + ¦p¦¹¥i¥H«Ü¤è«Kªº¦P®É¨Ï¥ÎÂI°}¦r¤Î¦V¶q¦r¡C +\end{enumerate} + +³Ì²³æªº¦w¸Ë¤è¦¡´N¬O¡A¦pªG§A¬O¥Î\ttftopk¨Ó²£¥Í¦r«¬¡A«h±N¨ä©Ò´£¨Ñªº~ +|c00?????.fd|~½Æ»s¨ì~\texttt{texinput/Bg5}~¤U¡FY¬O¥H\ntutocjk¬°¥D¡A¥ç +¦P²z¬°¤§¡F¥H¦¹Ãþ±À¡C + +\subsection{¿é¥X¤¤¤å~\LaTeX~¤å¥ó»P¦r«¬ªºÃö«Y} +\label{sec:portability} + +¦¹³B©Ò«üªº¿é¥X¥]¬A±q¿Ã¹õ¡BÀɮפίȱiµ¥¡Cªí~\ref{tab:soft-vs-fonts}~¬O +¥»¤å©Ò´£¤Îªº¤@¨Ç³n¥X³nÅé»P¨ä©Ò¨Ï¥Î¦r«¬¶¡ªºÃö«Y¡]°£¤F¯S§O»¡©ú¥~¡A³nÅ餧 +ª©¥»¤jP¬Ò¬°¥»¤å¼¶¼g®É³Ìªñªºª©¥»¡^¡C¥Ñ¦¹ªí¥iª¾¡APK~¦r¦b¹wµø®É¬O¤£¥i©Î +¯Êªº¡A¦Ó~PS~¦r¦b¦C¦L¥]§t¦³~PostScript~Àɮס]|.eps|¡B|.ps|~µ¥¡^ªº¤å¥ó®É +¥ç¥²»Ý¥Î¨ì¡C +\begin{table}[htbp] + \begin{center} + \leavevmode + + \begin{tabular}{|>{\ttfamily}c|c|c|c|} \hline + ¿é¥X³nÅé & ¥\¯à & CJK PK~¦r«¬ + & CJK PS~¦r«¬ \\ \hline + xdvi & ¹wµø & \hookstroke + & \crossmark \\ + & & + & ¡]¯à¦³¤@Ó¹w³]¦r¡^ \\ \hline + dvisvga & ¹wµø & \hookstroke + & \crossmark \\ \hline + dvips & ¿é¥X¦ÜÀɮשΦLªí¾÷ & \hookstroke + & \hookstroke \\ + ¡]5.60~ª©¥»¥H¤U¡^ & & + & ¡]¦ý¬°¥þ³¡¸ü¤J¡^ \\ \hline + dvihp & ¿é¥X¦ÜÀɮשΦLªí¾÷ & \hookstroke + & \crossmark \\ \hline + gs & ¹wµø¤Î¿é¥X & \crossmark + & \hookstroke \\ \hline + \end{tabular} + + \caption{~\TeX~¬ÛÃö³nÅé»P¨Ï¥Î~CJK~¦r«¬¶¡¤§Ãö«Y¡C} + \label{tab:soft-vs-fonts} + \end{center} +\end{table} + +n²£»s¤@½g¹Ï¤å¨ÃZªº¤å³¹¡A¤×¨ä¬O¤¤¤å¤å³¹¡A¦r±Ú¡]font family¡^»P¨ä¤Ø¤o +¤j¤p¡]font size¡^ªºÅܤƬO¤£¥i©Î¯Êªº¡C¹ï¿é¥X®É¥²¶·ªº~PK~»P~PS~¦r«¬¦Ó¨¥¡A +Y¦b¦¹ª¬ªp¤U¤ñ¸û¤GªÌªº®t§O¡A¦Lªíªº¤è«K©Ê¤]¥i»¡¬O¦U¦³¤d¬î¡FY¦bºÏºÐªÅ¶¡ +ªº¨Ï¥Î¤W¡A¥i¯à´N¦³©Ò®t²§¡C¦]¬°¦P¤@¦r±Ú¦ý¤£¦P¤j¤pªº¦r¡APK~¦r«¬¥²»Ý¨CºØ +¨Ï¥Î¨ìªº¤Ø¤o¬Ò¸ü¤J¦Ü¨ä¿é¥XÀɤ¤¡A¦Ó~PS~¦r«¬¥u»Ý¤@¦¸¡C + +¥Ø«e¡A¤å³¹¤¤©Ò¦³¨Ï¥Î¨ìªº~PFB~¦r«¬¡AYn²£¥Í¤º§t¦¡ªº~PS~ÀÉ®× +¡]self-contained Postscript output¡^¡A|dvips|~·|¥þ³¡¸ü¤J¦Ü¨ä¿é¥X¤¤¡C¦Ó +¤U¤@¦¸¥Xª©ªº~|dvips|~µ{¦¡¤¤¡A±N¥i¯à°w¹ï¨ä¿é¥XÀɤ¤ªº¦¹¶µ¯ÊÂI¦³©Ò§ï¶i¡F +·N§Y·sªºª©¥»¥u·|¸ü¤J¦b¤å³¹¤¤¦³¨Ï¥Î¨ìªº¦r¨ä¦b~|.pfb|~Àɤ¤©Ò¹ïÀ³¤§©w¸qªº +³¡¤À¡C¡]¦bµ§ªÌ´ú¸Õ~|dvips| 5.60~ª©®É¡A¼È®ÉµLªk¦¨¥\¦a¨Ï¥Î¤¤¤å~CJK PS~¦r +«¬¡A¤£¹L¬Û«H§Ö¤F¡C¡^ + +¥Ø«e¼È®É¥i¥Î~|fontload|~³oÓ³nÅé¡A¹F¦¨³oÓ¥\¯à¡C + + +\section{§Úªº¨Ò¤l} +\label{sec:my-settings} + +¥Ø«e§Ú¨Ï¥Îªº¬O~Linux~§@·~¨t²Î¡A\TeX/\LaTeX~«h¨Ï¥Î~te\TeX~Àô¹Ò¡A¬ÛÃöªº +¥Ø¿ý¦p¤U¡G +\begin{itemize} +\item |/usr/local/lib/texmf| ¦s©ñ~\TeX/\LaTeX~¨t²Î¡C +\item |/usr/local/lib/ghostscript| ¦s©ñ~Ghostscript¡C +\item |/usr/local/lib/ntuttf| ¦s©ñ~NTU TrueType~¦r«¬¤Î¥Ñ\ntutocjk©Ò²£ + ¥Íªº¬ÛÃö¦r«¬¡C +\item |~/CJK/4_1.0| ¦s©ñ¸Ñ¶}ªº~CJK~¨t²Î¡C +\end{itemize} + +§Ú¥H¥¿±`ªº¦w¸Ëµ{§Ç¡A±N~te\TeX~¦w¸Ë¦b~|/usr/local/lib/texmf|¡F¤§«á±N~ +CJK~¦b§Úªº~|$HOME/CJK|~¤U¸Ñ¶}¡ACJK~³nÅ餤©Ò¦³ªºÀɮ׫K²£¥Í¦b~|CJK|~¤l¥Ø +¿ý¤¤\footnote{¤§©Ò¥H±N~CJK ¦w¸Ë¦b¦Û¤vÓ¤Hªº¥Ø¿ý¤U¡A¬O¦]¬°~CJK~±`§ó·s¡A + ¤£¤è«K±`½Ð¨t²ÎºÞ²zªÌÀWÀW§ïÅܳ]©w¡C¦A¥[¤W¬°¤F¦Û¤vÀɮ׬y³q©Êªº¦Ò¼{¡A¦³ + ¦Û¤v¤@¥÷~CJK~ªº³]©w¡AÓ¤H»{¬°¡A¦Û¤vªº~CJK~¤å¥ó¤~·|¦³¸û°ªµ{«×ªº²¾´Ó©Ê¡C + Y§A¤S¬O¨t²Î¤¤t³d~CJK~³nÅ骺¤H¡A¬Æ©Î¬O¾ãÓ~\TeX/\LaTeX~ªººûÅ@ªÌ¡A¦b + ¦Û¤v¨p¤Hªº¥Ø¿ý¤UºÞ²z¨Ã©w´Á§ó·s~CJK¡A¬OÓ¤£¿ùªº¤è¦¡}¡A¨Ò¦p¡G +\begin{verbatim} + % cd + % gunzip CJK-4.1.0.src.tar.gz | tar xvf - +\end{verbatim} +¨Ã°µ¥H¤Uªº³B²z¡G +\begin{enumerate} +\item ¦b~|~/CJK|~¤U«Ø¥ß¤@²Å¸¹¦¡ªºÀɮ׳sµ²¡]symbolic link¡^¡A¦W¬°~ + |texinput|~¥B³sµ²¦Ü¥Ø«e~CJK~ª©¥»¦W¤Uªº~|texinput| ¡A + \begin{verbatim} + % cd ~/CJK + % rm -f texinput + % ln -s 4_1.0/texinput texinput + \end{verbatim} +\item ½sĶ¤@Ó·sªº~|bg5conv|~°õ¦æÀÉ¡C + \begin{verbatim} + % cd ~/CJK/4_1.0/utils/Bg5conv + % gcc -O -o bg5conv bg5conv.c + % mv bg5conv bg5latex ~/bin + \end{verbatim} + Y¤£¥u¬O¦w¸Ëµ¹¦Û¤v¥Î¡A«h¥i¥H~|root|~ªº¨¥÷~|cp|~¦Ü~|/usr/local/bin|~ + ¥Ø¿ý¤U¡C +\item ¦b§Úªº~|$HOME|~¥Ø¿ý¤U~|.cshrc|~Àɤ¤¡]¦]¬°§Ú¥Îªº¬O~tcsh¡^¡A¼W¥[¤@ + ¦æ + \begin{verbatim} + setenv TEXINPUTS ":~/CJK/texinput//" + \end{verbatim} +\item ²£¥Í~|.tfm|~ÀɤÎ~|.pfb|~¦r«¬¡C¦b¦¹§Ú«ö·Ó\ntutocjk¤¤¡A¤@¤@~ + ``make''~¥X¬Û¹ïªº~|.pfb|~¦r«¬¡A¦@~8~²Õ¡A¨C²Õ~55~Ó~ |.tfm|~¤Î~|.pfb|~ + ÀÉ¡C§Ú±N³o¨ÇÀɮײ¾¦Ü~ + \texttt{/usr/local/lib/\linebreak[1]ntuttf/\linebreak[1]type1/}~¤Î~ + \texttt{/usr/local/lib/ntuttf/afm/}~¬ÛÃö©ó¨ä¦r±Úªº¥Ø¿ý¤U¡C¨Ã±N + ~|config.CJK|~¤Î~|CJK.map|~²¾¦Ü~|$TEXMF/dvips|~¤U¡C +\item ³]©w~|.fd|~ÀÉ¡C¦]¬°§Ú¨Ï¥Îªº¬O¥H~PS~¦r«¬¬°¥Dªº~PFB¡]¥Ñ\ntutocjk²£ + ¥Í¡^¤Î¥Ñ¨ä²£¥Íªº~PK~¦r«¬¡]¥Ñ~|gsftopk|~²£¥Í¡^¡A©Ò¥H§Úª½±µ±Ä¥Î + \ntutocjk©Ò´£¨Ñªº~|c00|*|.fd|~ÀÉ¡A¨S¦³§@¥ô¦ó§ó§ï¡]¦]¬°§Ú¦³³d¥ô¨Ï¥¦»P + §Úªº¤u§@Àô¹Ò¤@P :-¡^¡C§Ú±N¨ä²¾¦Ü~|~/CJK/texinput/Bg5/|~¥Ø¿ý¤U¡C +\end{enumerate} + +\subsection{«Ø¥ß¤å½Z} +\label{sec:creating-tex} + +¤¤¤å~CJK \TeX~¤å½Z»P¤@¯ë~\TeX~¤å½Zªº¤£¦P¥Dn¦b©ó¡G +\begin{itemize} +\item ¦b©Ò¿×~\LaTeX~¤å¥óªº~preamble¡]|\documentclass|~¦Ü~ + |\begin{document}|¡^°Ï°ì¤¤¡A¥²¶·¦³~|\usepackage{CJK}|~³oÓ©R¥O¡A§Y¥² + ¶·¸ü¤J~|CJK.sty|¡C +\item ¤¤¤å¦r¥²¶·¦b~|CJK|~©Î~|CJK*|~ªº¤¤¤åÀô¹Ò¤¤¡C§Y¡G + \begin{verbatim} + \begin{CJK*}{}{} + ¤¤¤å¬q¸¨¡B³¹¸`¡B¹Ï§Î¡Bªí®æ¡B°Ñ¦Ò¤åÄm¡B¡Kµ¥ + ... + \newpage + \end{CJK*} + \end{verbatim} +\item nÅÜ´«¦r«¬¥i¥Î~|\CJKfamily|~©R¥O¡A¦p~|\CJKfamily{fs}|~±N¥H¤Uªº¦r + «¬§ï¦¨¥é§º¦r¡]·íµM~|fs|~³oÓ¦r§Î¦WºÙ¥²¶·©w¸q¦b~|c00fs.fd|~¤¤¡^¡C +\end{itemize} + +§Úªº¥Îªk³£¬O¥H¤@Ó¤¤¤åÀô¹Ò¥]¦í©Ò¦³ªº¤å³¹¤º®e¡A¦p¹Ï~ +\ref{fig:my-example}~©Ò¥Ü¡C + +\newsavebox{\myex} +\begin{lrbox}{\myex} + \begin{minipage}{.9\textwidth} + \footnotesize + \begin{verbatim} + \documentclass[12pt]{article} + \usepackage{CJK} + + \begin{document} + \begin{CJK*}{Bg5}{fs} + \CJKtilde + + \section{²Ä¤@¸`} + \label{sec:section-1} + °Ñ¦Ò¹Ï~\ref{fig:apply-pk-and-ps-fonts}¡C + + \begin{figure}[htbp] + \begin{center} + \leavevmode + \includegraphics{pkpsapps.eps} + \caption{|pk|~¦r«¬»P~|.pfb|~¦r«¬ªºÀ³¥Î¹ïÀ³¹Ï} + \label{fig:apply-pk-and-ps-fonts} + \end{center} + \end{figure} + + \bibliographystyle{plain} + \bibliography{mybib} + + \newpage %¨Ï¦³¥¿½Tªº¤¤¤å¿é¥X¡C + \end{CJK*} + \end{document} + \end{verbatim} + \end{minipage} +\end{lrbox} + +\begin{figure}[htbp] + \begin{center} + \leavevmode + \fbox{\usebox{\myex}} + \caption{§Úªº~CJK~¤å¥ó½d¨Ò¡C} + \label{fig:my-example} + \end{center} +\end{figure} + +\subsection{¥H~\LaTeXe\ CJK~½s±Æª©±} +\label{sec:clatexing} + +´N¦P¤@¯ëªº~\LaTeX~Àɤ@¼Ë¡A¦ý¥H~|bg5latex|~¨ú¥N~|latex|¡A¦p¡G +\begin{verbatim} + % bg5latex mylatex.tex + ©ÎªÌ + % bg5latex mylatex +\end{verbatim} + +\subsection{¹wÄý} +\label{sec:preview} + +¤j³¡¤À±¡ªp¤U§Ú¥H~|xdvi|~¹wÄý~|.dvi|~ÀÉ¡]¦b~Emacs~©Î~Mule~¤¤Y¨Ï¥Î~ +AUC\TeX~³o®M³nÅé¡A§ó¯àÅã¥X¨ä¬ð¥Xªº¦a¤è¡A¤×¨ä¬O¥u¹wÄý¤å³¹¤¤ªº¤@¶ô°Ï°ì¡A +ÀH®É¥iÀ˵ø¸Ó°Ï°ìªº±Æª©±¡§Î¡^¡C + +¥t¥~¡A§Ú¤]·|µø±¡ªp¥Î¤£¦Pªº¹wµøµ{¦¡¡C¤ñ¦p¦b~Linux~ªº~virtual terminal +mode~§Ú¥H~|dvisvga|~¹wµø¡C¦b¯Ê¥F~|pk|~¦r«¬©Î¨S¦³~|xdvi|~ªº¤Ö¼Æ±¡§Î¤U¡A +§Ú¤]¥Î~|ghostview|~¹wµø¸g¥Ñ~|dvips|~²£¥Íªº~|.ps|~ÀɮסC + +\subsection{¦C¦L} +\label{sec:printing} + +²£¥Í¤Î¦C¦L~|PostScript|~Àɮ׬O§Ú³Ì±`¥Îªº¤è¦¡¡A¦]¬°¦b§Úªº¤å³¹¤¤¡A¹Ï§Î¬O¤£ +¥i¤Öªº¸ê®Æ¡A¦Ó¥¦Ì´X¥G³£¬O~|.eps|~ªº®æ¦¡¡]¥Ñ~|xfig|¡BAutoCAD¡B|GnuPlot|¡B +|xv|¡B¡Kµ¥©Ò²£¥Í¡^¡C©Ò²£¥Íªº~|.ps|~ÀÉ¡A©ÎªÌ¬O¥Ñ~PostScript~¦Lªí¾÷¡A¥ç©Î +ªÌ³z¹L~ Ghostscript~ªºÂà´«¡A¦Ó¿é¥X¨ì~Laserjet~©Î~Deskjet~¬Æ©Î¨ìÂI°}¦¡¦L +ªí¾÷¥h¡C + +¤@¯ë¦Ó¨¥¡A¥H~|dvips cjk-doc|~·|²£¥Í¥i¦C¦Lªº¿é¥X¡A¦A¥H~|lpr cjk-doc.ps|~ +ªº¦Lªí«ü¥O¦C¦L§Y¥i¡C¦ý±zY¤£Ä@²£¥Í¤¤¤å~PK~¦r«¬¡A¥B±z¤£¬O¨Ï¥Î~PostScript~ +¦Lªí¾÷¡A¤S¥Î\ntutocjk¦w¸Ë~PS~¦r«¬¡A¤]°w¹ï~ Ghostscript~ªº³]©w¦w¸Ë¦n³o¨Ç +¦r«¬¡A¦Ó¥B±zªº¦LªíÁͰʵ{¦¡¯à¥H~|gs|~¬°¥D¡]Linux¨t²Î¤W¦h¼Æ³£¥H¦¹¤è¦¡³]©w¡^¡A +«h§A¥i¥Hª½±µ¥H~|lpr|~³oÓ©R¥O¦C¦L~ |.ps|~ÀÉ¡]¬Æ¦Ü¬O~|.dvi|~ÀÉ¡^¡C¦p¡G +\begin{verbatim} + % dvips -P CJK cjk-doc + % lpr cjk-doc.ps +\end{verbatim} + +¥H~|dvihp|~²£¥Í¦C¦LÀɤ]¬O¤è¦¡¤§¤@¡A¨ä¿é¥X®æ¦¡¬°~PCL¡A©Î¬O~HP~¦Lªí¾÷ªº®æ +¦¡¡C¦ý¦]µLªk³B²z¤å³¹¤¤¥]§tªº~PostScript~ÀɮסA©Ò¥H§Ú¨Ã¤£±`¥Î¡C + +·ín²£¥Í¥iÄ⪺¦C¦LÀɮ׮榡¡]self-contained PostScript file¡^¡A§Ú·|¥H²£¥Í~ +Post\-Script~¡]|.ps|¡^ªº®æ¦¡¬°¥D¡C¦r«¬¨Ó·½¤§¤@¬O¥Ñ¹wµø«á¦Û°Ê²£¥Íªº~PK~ +¦r«¬§@¬°~ |dvips|~ªº¿é¤J¦r«¬¡C¦¹¤è¦¡¥i¥H¤U¦C©R¥O§¹¦¨¡G +\begin{verbatim} + % dvips cjk_doc -o cjk-doc-contains-pk-fonts.ps +\end{verbatim} +¦¹®É~|psfonts.map|~¤¤»Ý¤£§t\ntutocjk©Ò²£¥Íªº¤¤¤å¦r«¬¡]CJK 4.0 ¥H¤Wªºª©¥» +¤¤©Ò§tªº\ntutocjk¡A¹w³]¬°¦¹±¡§Î¡^¡A|dvips|~¤~·|¨ú¥Î¤¤¤å~PK~¦r¡A©Î¦pªG¤¤ +¤å~PK~¦r«¬¤£¦s¦bªº¸Ü¡A·|¦Û°Ê²£¥Í¤§¡C¦b¨Ï¥Î~|xdvi|~©Î¬ÛÃö³nÅé¹wµø®É¡A¦]¥H~ +PK~¦r«¬¬°¥D¡A¦b¦r«¬§ä¤£¨ìªº±¡ªp¤U¡A¥ç·|¦Û°Ê²£¥Í¤§¡C + +¥t¥~«h¬O¥O~|dvips|~¨ú¥Î¤¤¤å~PS~¦r¡A¦b«ö·Ó\ntutocjk¤¤»¡©ú¦w¸Ë«á¡A©Ò¦³ªº¤¤ +¤å~PS~¦rªº¹ïÀ³ÀÉ·|¦s¦b©ó~|CJK.map|~Àɤ¤¡CYn¥H¦¹¤è¦¡²£¥Í¥iÄ⦡ªº~|.ps|~ +ÀÉ¡A¥²¶·¶i¤@¨B¦a¥H~|gs|~©Î~|fontload|~µ¥Ãþ¦üªº³nÅé¡A±N~PS~¦r«¬¸ü¤J¨ì¿é¥X +ªºÀɮפ¤¡CY¥H~|fontload|~¦Ó¨¥¡A¦b~UNIX~¨t²Î¤U¡A¥i¥H¤U±ªº«ü¥O¹F¦¨¡G +\begin{verbatim} + % dvips -P CJK -o cjk-doc-no-ps-fonts-contained.ps cjk_doc.dvi + % fload cjk-doc-no-ps-fonts-contained.ps > cjk-doc-contains-ps-fonts.ps + % lpr cjk-doc-contains-ps-fonts.ps +\end{verbatim} +¦¹®É~|cjk-doc-contains-ps-fonts.ps|~©Î~|cjk-doc-contains-ps-fonts.ps|~´N +¬O§¹¾ãªº~PS~ÀɮפF¡A¤]´N¬O»¡¡A±z¥i¥H¥á¨ì¥ô¦ó¤@¥x¤ä´©¦³¦C¦L~PostScript~ÀÉ +®×ªº¦Lªí¾÷©Îµ{¦¡¤F¡C + +¥H¤W´N¬O§ÚÓ¤H¹ï~CJK~¤¤¤å~\LaTeX~¨t²Îªº³]©w¡A¦³¤HÄ@·N´£¨Ñ¦Û¤vªº¦w¸Ë¸gÅç¶Ü¡S + + +\section{°ÝÃD¸Ñ¨M} +\label{sec:trouble-shooting} + +¦b¨Ï¥Î¹wÄýµ{¦¡ªº®ÉÔ¡A¥i¯à·|¹J¨ìªº°ÝÃD»P¨ä¸Ñ¨Mªº¤è¦¡¦p¤U¡G +\begin{itemize} +\item PK~¦r«¬§ä¤£¨ì¡C +\item ¤£·|¦Û°Ê²£¥Í~PK~¦r«¬¡C +\end{itemize} + +[³\¦h°ÝÃD»P¨ä¸Ñ¨M¤è¦¡©|¥¼¾ã²z¯Ç¤J] + + +%\section{¨ä¥L} +%\label{sec:misc} + + +\section{·PÁÂ} +\label{sec:acknowledgements} + +\begin{itemize} +\item ¦³³o»ò¦h¤H¡A°^Äm³\¦h¤ß¤O¡A§¹¦¨³\¦h¤è«K¥B¤º®eÂ×´Iªºµ{¦¡¡C +\item ¦³§ó¦hªº¨Ï¥ÎªÌ¡A¨Ï¥Î³o¨Çµ{¦¡¡A¨Ï¥Ļó¤W¼h¼Ó¡C +\item ³oºØ¯S§Oªº¬Û¤¬¼vÅT¡A¥Í¥Í¤£®§¦a´`ÀôµÛ¡A¤~´£¤É¤F§Ú̪º¥Í¬¡¼h±¡C +\end{itemize} + + +%\section{¥»¤å§@ªÌ} +%\label{sec:the-author} + +%§õ§g¦t (Chun-Yu Lee) +%d791013@ce.ntu.edu.tw ©Î \\ +%chunylee@ms1.hinet.net + + +%\bibliography{READMEb5} +%\bibliographystyle{plain} + + +\begin{thebibliography}{1} + +\bibitem{latex-companion:1993} +Michel Goossens, Frank Mittelbach, and Alexander Samarin. +\newblock {\em The \LaTeX Companion}. +\newblock Addison Wesley, 1993. + +\bibitem{tex-faq:1.9c} +Bobby Bodenheimer. +\newblock The new \TeX\ FAQ --- your 100 questions answered: + Version 1.9c, date 1994/12/06. +\newblock 1994. + +\bibitem{latex2nd} +Leslie Lamport. +\newblock {\em \LaTeX\ --- A Document Preparation System --- User's + Guide and Reference Manual}. +\newblock Addison Wesley, 2 edition, 1994. + +\end{thebibliography} + + +\appendix +\section{¦Wµü¸ÑÄÀ} +\label{sec:terms} + +¤U¦C¦Wµü¬°¥»¤å¤¤©Ò¨Ï¥Î¡A¨Ã§½©ó¤U¦C·N«ä¡G + +\begin{description} +\item[PK~¦r«¬:] PK fonts¡C¤@ºØÀ£ÁY¹LªºÂI°}¦r«¬®æ¦¡¡C¼sªx¨Ï¥Î¦b~ + TeX/\LaTeX~»Ýn¿é¥XÂI°}¦rªº¦a¤è¡C¦p¹wµø©Î¦C¦L¿é¥X¡C¦b¦¹°¾«ü¤¤¤å~CJK + PK~¦r«¬¡C +\item[PS~¦r«¬:] PostScript Type 1 fonts¡CPostScript~¦r¦³¼ÆºØ«¬¦¡¡A¥»¤å + ·N«ü~Type 1~¦r«¬¡C¨ä¦³¨âºØ®æ¦¡¡GPFA (Printer Font Ascii)~¤Î~PFB + (Printer Font Binary)¡C¦b¦¹°¾«ü¤¤¤å~CJK PS~¦r«¬¡C +\item[¥D¾÷¡B¤u§@¯¸:] A host computer, work station, etc¡Cªx«ü¬Y»O´£¨Ñ + ¸ê·½©ÎªA°Èªº¹q¸£¡C¦p~FTP~¯¸¡C +\item[CTAN:] Comprehensive \TeX\ Archive Network¡C¥»¤å«ü¦¬¶°´X¥G©Ò¦³¦³ + Ãö~TeX/\LaTeX~¨t²Î¤Î¤å¥óªº~FTP~¯¸¡C¥Ø«e¤wª¾ªº~CTAN~¸Ô¦C©óªþ¿ý~ + \ref{sec:ctan-mirrors}¡C +\item[IFCSS:] The CCIC (Chinese Community Information Center) of IFCSS + (Independent Federation of Chinese Students and Scholars)¡Cªþ¿ý~ + \ref{sec:ifcss-mirrors}~¤¤¬O´XÓ¦³¦Wªº~ifcss~¯¸¡C +\item[AFM~ÀÉ®×:] Adobe Font Metrics¡C¦s¦³½s½X¤Î¦r½d³òµ¥¸ê®Æ¡C +\item[TFM~ÀÉ®×:] \TeX\ Font Metrics¡C +\item[|.fd|~ÀÉ®×:] ¦r«¬´yzÀÉ~(font description files)¡C°O¿ý¬ÛÃö©ó¬Y¤@ + ºØ¤º½X¡C +\item[GS~©Î~GhostScript:] ±`¥Îªº~PostScript~»y¨¥¸ÑĶ¾¹¡]interpreter¡^ + ¤§¤@¡C +\item[|afm2tfm|:] ±N~AFM~Àɮ׮榡Âà´«¦¨~TFM~Àɮ׮榡ªºµ{¦¡¡C +\item[¤@²Õ¦r«¬ÀÉ:] ¦pªG¬O¨Ï¥ÎÀ£ÁY¹Lªº¦r«¬¡A§Y¤£¬O¨Ï¥Î~pmC~¶}ÀYªº¦r±Ú¡A + ¦@¦³~55~Ó¤l¦r«¬ÀÉ¡C¨Ò¦p¡G|b5ka01.pfb|¡B|b5ka02.pfb|¡B¡K¡B + |b5ka55.pfb|¡C +\item[\textsf{NFSS}:] New Font Selection Scheme¡C¥Ñ~Frank Mittelbach~ + ©M~Rainer Sch\"opf~©Ò´£¥Xªº¦r«¬¿ï¾Ü¨t²Î¡C +\end{description} + +\section{Àɮרú±o} +\label{sec:getting-files} + +\begin{description} +\item[\LaTeXe~°õ¦æÀô¹Ò¡G] ¤@¯ë¬Ò¦³¦¨®Mªº¨t²Î¨Ñ¨Ï¥ÎªÌ²³æ¦w¸Ë¡A¦p¦b~DOS~ + ¤Uªº~em\TeX¡F¦b~Linux~¤U¦³~N\TeX¡B~te\TeX~µ¥¡FUNIX~¤W«h¦p~web2c~ªºª© + ¥»µ¥¡C³o¨Ç³£´²¦b~CTAN~ªº¥Ø¿ý¤U¡CÄ´¦p~em\TeX~¦b~ + |systems/|\linebreak[1]|msdos/|\linebreak[1]|emtex|~¤¤¡FN\TeX~¦b¡S¡S¡F + web2c~ªºª©¥»¦b¡S¡S¡C\LaTeXe~¨t²Î¥»¨«h¦b~CTAN¡G + |macros/|\linebreak[1]|latex/|\linebreak[1]|base|~¤U¡C +\item[\LaTeXe~CJK~¨t²Î¡G] CTAN: |language/chinese/CJK|~©Î~IFCSS host: + |tex/|\linebreak[1]|CJK.X_X.|\linebreak[1]|tar.gz|¡C +\item[NTU TrueType~¦r«¬¡G] IFCSS host: |fonts/big5/ms-win|¡C±N·¢®Ñ¡B©ú + Åé¡B¥é§ºÅéµ¥³¡¤À¡]©Î¥þ³¡¡^ªº~ARJ~Àɨú¦^«á¡A°Ñ¦Ò»P³o¨Ç¦r«¬¦b¦P¤@¥Ø¿ý + ªº»¡©úÀÉ¡]©Î°Ñ¦Òªþ¦b\ntutocjk¤¤ªº~|README|~ÀÉ¡^¡A±N¨äÁÙ즨ӧO~TTF~ + ¦r«¬¡C +\item[\textsf{ntu2cjk, ttf2pk}:] ¦r«¬²£¥Íµ{¦¡¡C¥¦¥]§t¦b~¡§\LaTeXe\ CJK~ + ¨t²Î¡¨¤¤¡C +\item[GhostScript:] CTAN: + |support/|\linebreak[1]|ghostscript/|\linebreak[1]|aladdin|~©Î~ + |support/|\linebreak[1]|ghostscript/|\linebreak[1]|gnu|¡C +\item[|dvips|:] CTAN host: UNIX~ª©¦b~|dviware/dvips|¡FDOS~ª©¦b~ + |systems/msdos/|\linebreak[1]|dviware/|\linebreak[1]|dvips/|% + \linebreak[1]|dvips558.pc|¡C +\item[|afm2tfm|:] ¥]§t¦b~dvips~¨t²Î¤¤¡C +\item[|ps2pk|:] CTAN: |fonts/utilities/ps2pk|¡A©Î¥]§t¦b¤@¯ë®M¸Ëªº~ + \TeX/\LaTeX~¨t²Î¤¤¡C +\item[|gsftopk|:] CTAN: |fonts/utilities/gsftopk|¡A©Î¥]§t¦b¤@¯ë®M¸Ëªº~ + \TeX/\LaTeX~¨t²Î¤¤¡C +\item[|dvi2|xx:] ¦p~|dvilj|¡B|dvidm|¡B¡K¡C¦b~CTAN: |dviware|~¥Ø¿ý¤U¡C +\item[AUC\TeX:] CTAN: |support/auctex|~¥Ø¿ý¤¤ªº~ + |auctex.tar.gz|\linebreak[1]¡]~unix~¡^©Î~|auctex.zip|~¡]dos¡^¡C +\item[|fontload|:] CTAN: |fonts/utilities/fontload|¡C +\item[Mule~ªº¤¤¤å¿é¤Jªk¡G] IFCSS: |mule/lisp/quail-b5|¡C +\end{description} + + +\section{¨ä¥L¬ÛÃöªº³nÅé»P¤u¨ã} +\label{sec:other-stuffs} + +\subsection{¦b~Linux~¨t²Î¤Wªº\bigfive¤¤¤å¨t²Î¤Î¼ÒÀÀ²×ºÝ¾÷µ{¦¡} +\label{sec:chinese-systems} + +\begin{itemize} +\item chdrv +\item yact +\item CXterm +\item xcin +\end{itemize} + +\subsection{¤¤¤å½s¿è\ -- Mule} +\label{sec:mule} + +¨Ï¥Î~Mule~¬°½s¿è¤¤¤å~\LaTeX~¤å¥óªº¤u¨ãªº¨Ï¥ÎªÌ¡A¥i±N¤U±ªº³]©w¥[¦Ü~ +|$HOME/|\linebreak[1]|.emacs|~Àɤ¤¡G +\begin{verbatim} + ;;; Chinese Big-5 environment + (set-primary-environment 'chinese) + (set-default-file-coding-system '*big5*) + (setq display-coding-system '*big5*) + (setq keyboard-coding-system '*big5*) + ;; input methods + (add-hook 'quail-package-alist '("tsangchi-b5" "quail/tsangchi-b5")) + (add-hook 'quail-package-alist '("quick-b5" "quail/quick-b5")) + ; the default input method + (setq-default quail-current-package + (assoc "tsangchi-b5" quail-package-alist)) +\end{verbatim} + +¤Á´«¤¤^¤å¿é¤J¥i«ö~|C-]|¡An¿ï¾Ü¨ä¥Lªº¿é¤Jªk¥i«ö~|M-s|¡]|Alt-s|¡^¡C + +³]©w¿é¤Jªk®É¥i¿ï¾Ü¦Û¤v²ßºDªº¡C¦b~IFCSS Mule~ªº¥Ø¿ý¤¤¡]°Ñ¦Ò²Ä~ +\ref{sec:getting-files}~¸`¡^¦³¤@¨Ç¤¤¤å¿é¤Jªk¡A¨ä¤¤¥]¬A¦³¡G +\begin{center} + \begin{tabular}{ll}\hline + ÀÉ®× & ¹ïÀ³¤§¿é¤Jªk \\\hline + cns-b5-input.tar.gz & ¤º§t~|tsangchi-b5.el|¡]ܾe¡^¤Î \\ + & |quick-b5.el|¡]²©ö¡^µ¥¿é¤Jªk \\ + zozy.el.gz & ¹s³üª`µ \\ + cj.el.gz & ܾe \\ + simplex.el.gz & ²©ö \\ + punct-b5.el.gz & ¼ÐÂI²Å¸¹ \\ + qj-b5.el.gz & ¥þ§Î \\ + etzy.el.gz & ʤѪ`µ \\ + boshiamy.el.gz & åF½¼¦Ì \\ + array30.el.gz & ¦æ¦C~30 \\\hline + \end{tabular} +\end{center} + +¥H¤W¬°¸û±`¨£ªº¿é¤Jªk¡C¸Ó¥Ø¿ý¤¤¥ç¥]§t¤U¦C¿é¤Jªk¡G +\begin{center} + \begin{tabular}{ll} \hline + ÀÉ®× & ¹ïÀ³¤§¿é¤Jªk \\\hline + 4corner.el.gz & ¥|¨¤¸¹½X \\ + ctlaub.el.gz & ¼B¿ü²»¦¡¸fµ \\ + ecdict.el.gz & ^º~Ãã¨å \\ + hs.el.gz & µØ¶H \\ + hsu.el.gz & ³\¤óª`µ \\ + py-b5.el.gz & º~»y«÷µ \\ + roman.el.gz & ù°¨«÷µ \\\hline + \end{tabular} +\end{center} + + +Áä¦nªº~\LaTeX~¤å¥óÀÉ¡A¥i°õ¦æ~|bg5latex|~½sĶ¡C¥ç¥i§Q¥Î~|cjk-enc.el|~³oÓ~ +Emacs Lisp~ÀÉ¡A±N¤å¥ó¥ý¦æÂà´«¦¨~|.cjk|~ÀÉ¡A¦A¥H~|latex|~¶i¦æ½sĶ¡C§@ªk¬O +¦b~|~/.emacs|~Àɮפ¤¥[¤J¤U¦C¼Æ¦æ¡]¨ä¤¤¨ç¼Æ~ |write-cjk-file|~½Ð°Ñ¦Ò~ +|cjk-enc.txt|~¡^¡G +\begin{verbatim} + (load-library "cjk-enc") + + (defun write-cjk-file () + "Save current buffer and <buffername>.cjk in *cjk-coding*" + (interactive) + (setq coding file-coding-system) + (setq bufname (buffer-file-name)) + (string-match "\\(.*\\)\\.[^/]*$" bufname) + (setq body (substring bufname 0 (match-end 1))) + (setq newbufname (concat body ".cjk")) + (message "Saving %s and %s" bufname newbufname) + (write-file newbufname *cjk-coding*) + (write-file bufname coding)) +\end{verbatim} +¤§«á«K¥i¦b¨C¦¸n°õ¦æ~|latex|~«e¡A¥Î~|M-x write-cjk-file|~©R¥O¥ý¦sÀÉ¡A +µM«á¦A¥H~|latex|~½sö¥DÀɦW»P±zªº¤å¥ó¥DÀɦW¤@¼Ë¡A¦ý©µ¦ùÀɦW¬°~|.cjk|~ +ªºÀɮסC + +\subsection{\TeX/\LaTeX~ªº¦nÀ°¤â\ -- AUC\TeX} +\label{sec:auctex} + +²©ö«ü¤Þ¡G +\begin{enumerate} +\item ·Ó²Ä~\ref{sec:mule}~¸`ªº¤è¦¡±N~Mule~³]©w§´·í¡C +\item «ö·Ó~AUC\TeX~ªº¦w¸Ë«ü¥Ü¦w¸Ë¡C©Î«ö·Ó~AUC\TeX~ªº~default~¤è¦¡¦w¸Ë¡C + ¤U¦C¼Æ¶µ¥i°µ¥i¤£°µ¡C +\item «Ø¥ß¤@Ó~|bg5latex-batch|~ÀÉ¡A¤À§O¦p¤U¡G + \begin{verbatim} + #! /bin/sh + f=`echo $1 | sed -e 's|\(.*\)\.[^/]*$|\1|'` + bg5conv < $1 > $f.cjk + latex \\nonstopmode\\input{$f.cjk} + \end{verbatim} +\item \label{CJK-C-cC-c}¦b~|.emacs|~¤¤¥[¤J¡G + \begin{verbatim} + (setq TeX-command-list + (append TeX-command-list + '(("CLaTeX" "bg5latex-batch %s " TeX-run-LaTeX nil t) + ("CLaTeX Interactive" "bg5latex %s " TeX-run-interactive nil t) + ("CPrint" "fload %f | lpr" TeX-run-command t nil) + ))) + \end{verbatim} + «h¥i¦b°õ¦æ~|C-c C-c|~©Î~|C-c C-r|~®É¡A¦bn¿é¤J~|LaTeX|~ªº®É¾÷¡A¿é¤J~ + |CLaTeX|¡C +\item ¦b~|.emacs|~¤¤¥[¤J¤U¦C¼Æ¦æ¡A¥H«K±zªº¤å¥ó¦b±Æª©®É¡]¥þ¤å«h°õ¦æ + ~|C-c C-c CLaTeX|~¡A°Ï°ì¥Î~|C-c C-r CLaTeX|¡^¡AY¦³¿ù»~¥i¥Î~|C-c `|~ + ¬dÅç¿ù»~©Ò¦b¡A¨Ã¥i§ó¥¿¤§¡C + \begin{verbatim} + (add-hook 'TeX-translate-location-hook + '(lambda () + (if (string-match "\\(.*\\)\.cjk$" file) + (setq file + (concat + (substring file + (match-beginning 1) + (match-end 1)) + ".tex"))))) + \end{verbatim} +\item ©ÎªÌ±z¦Ò¼{¥Î~|cjk-enc.el|¡A«h¦b~|.emacs|~¤¤¥[¤J¤U¦C¼Æ¦æ¡G + \begin{verbatim} + (defun TeX-run-CJK-LaTeX (name command file) + "Create a process for NAME using COMMAND to format + FILE with CJK/LaTeX." + (write-cjk-file) + (TeX-run-LaTeX name command file)) + + (if (not (assoc "CJKLaTeX" TeX-command-list)) + (setq TeX-command-list + (append TeX-command-list + '(("CJKLaTeX" "%l '\\nonstopmode\\input{%s.cjk}'" + TeX-run-CJK-LaTeX nil t) + )))) + \end{verbatim} + ¥un±N¤Wz¨Ï¥Î~|CLaTeX|~ªº®É¾÷¡A§ï¦¨¨Ï¥Î~|CJKLaTeX|~§Y¥i¡C¬d¿ù¦P¼Ë¥Î + ~|C-c `|~¡C + + ¦ýnª`·N¡A¨Ï¥Î~|CJKLaTeX|~®É¡A¤å¥ó¤¤½Ð¤£n¨Ï¥Î~|\usepackage{CJK}|~©Î + Ãþ¦üªº©R¥O¡C +\end{enumerate} + +ª`·N¡A¤Wz¨BÆJ¥u¾A¥Î³æ¤@~CJK \LaTeXe~¤å¥ó¡C + +% Not ready yet... +%¦pªG¦b±zªº¤å¥ó¤¤¦³¥Î¨ì~|\include|~³oÓ©R¥O¡A¦Ó±z¤´·Q¥Î¨ì~AUC\TeX~ªº¥\¯à¡A +%¥i§@¦p¤Uªº¥Ø¿ý¦w±Æ¡G + +% ./ ==> ¥»¼h¥Ø¿ý¡Aì©l¤å¥ó¤§©ñ¸m¥Ø¿ý¡C +% ../ ==> ¤W¼h¥Ø¿ý¡A¸m©ñ¥Ñ~latex~«e¥Ñ~bg5conv~Âà´«¹Lªº~|.cjk|~ÀÉ¡]¦]¦¹ +% Y¦b¦¹¤W¼h¥Ø¿ý¤¤¦³ì©l¤å¥ó¡A«h»Ý¯S§Oª`·N¡A¤£n¨Ï¥Î»P¥»¼h¥Ø¿ý¤¤¦P¦Wªº +% ¤å¥ó¡^¡C¥t¥~¥]§t¤@~|Makefile|~¡]°Ñ¦Ò¹Ï~ +% \ref{fig:makefile-for-multifile-latexing}~¤§¨Ò¤l¡^¡A¨ä¤º®e¥Dn¬°¦b¨C +% ¦¸~latex~«e¡A§ó·s~|.cjk|~ÀÉ¡C + +% \begin{verbatim} +% #! /bin/sh +% make bg5conv +% cd CJK +% latex \\nonstopmode\\input{$1} +% \end{verbatim} + + +% \begin{lrbox}{\myex} +% \begin{minipage}{.9\textwidth} +% \footnotesize +%\begin{verbatim} +%TEXs = abstract.tex archi.tex codebase.tex conclude.tex details.tex \ +% dsgnbase.tex engtool.tex examples.tex introd.tex kb_lsp.tex \ +% pjfinal.tex prg_gi.tex prg_s2c.tex related.tex represnt.tex \ +% sscdcb.tex sscddb.tex sscdgi.tex sta2con.tex title_pg.tex +%MISC = Makefile LaTeXsrc +%RCSs = $(wildcard $(SRCDIR)/*,v) + +%SRCDIR = CJK + +%.PHONY: check_srcdir bg5conv default + +%.DEFAULT: .tex .sty .bib .dvi .ps .lj .toc .lof .lot + +%default: +% @echo "There are the following targets:" +% @echo " bg5conv : Big5 CJK LaTeX file converted to LaTeX file." + +%bg5conv: check_srcdir $(TEXs) + +%check_srcdir: +% @if [ -f LaTeXsrc ]; then \ +% echo "Don't make at the LaTex source directory!"; \ +% echo "Copy the Makefile to upper directory and make there."; \ +% echo "e.g., cp Makefile ..; cd ..; make"; \ +% exit 1; \ +% fi +% @if [ ! -d $(SRCDIR) ]; then \ +% echo "$(SRCDIR) not found!"; \ +% exit 1; \ +% fi + +%$(TEXs): %.tex : $(SRCDIR)/%.tex +% bg5conv < $< > $@ +%\end{verbatim} +% \end{minipage} +% \end{lrbox} + +% \begin{figure}[htbp] +% \begin{center} +% \leavevmode +% \framebox[.9\texwidth]{\myex} +% \caption{À³¥I¦h«~CJK~¤å¥óÀɪº~Makefile~½d¨Ò¡C} +% \label{fig:makefile-for-multifile-latexing} +% \end{center} +% \end{figure} + + + +\section{CTAN¦b¦U¦aªºÀÉ®×°Ï} +\label{sec:ctan-mirrors} +(¥»¸`ºK¦Û~CTAN host~¤Wªº~README.mirrors) + +¬°´î¤Öºô¸ô¤Wªºt²ü¡A«Øij©Ò¦³¨Ï¥Î~CTAN~¸ê·½ªººô¤Í¡A¯à¨Ï¥Î·í¦aªº©Î³Ìªñªº~ +CTAN host¡C + +¥Ø«e¤wª¾½Æ»s³¡¤À~CTAN~Àɮתº~FTP~¯¸: +\begin{verbatim} + ftp.fcu.edu.tw (Taiwan) /pub2/tex + gate.sinica.edu.tw (Taiwan) /TeX + ftp.adfa.oz.au (Australia) /pub/tex/ctan + ftp.germany.eu.net (Deutschland) /pub/packages/TeX + ftp.uu.net (Virginia, USA) /pub/text-processing/TeX + nic.switch.ch (Switzerland) /mirror/tex + sunsite.dsi.unimi.it (Italia) /pub/TeX + sunsite.snu.ac.kr (Korea) /shortcut/CTAN +\end{verbatim} + +¥Ø«e¤wª¾½Æ»s¥þ³¡~CTAN~Àɮתº~FTP~¯¸: +\begin{verbatim} + dongpo.math.ncu.edu.tw (Taiwan) /tex-archive + ftp.ccu.edu.tw (Taiwan) /pub/tex + cis.utovrm.it (Italia) /TeX + ctan.unsw.edu.au (NSW, Australia) /tex-archive + ftp.center.osaka-u.ac.jp (Japan) /CTAN + ftp.cdrom.com (West coast, USA) /pub/tex/ctan + ftp.comp.hkbu.edu.hk (Hong Kong) /pub/TeX/CTAN + ftp.cs.rmit.edu.au (Australia) /tex-archive + ftp.cs.ruu.nl (The Netherlands) /pub/tex-archive + ftp.cstug.cz (The Czech Republic) /pub/tex/CTAN + ftp.duke.edu (North Carolina, USA) /tex-archive + ftp.ee.up.ac.za (South Africa) /tex-archive + ftp.funet.fi (Finland) /pub/TeX/CTAN + ftp.gwdg.de (Deutschland) /pub/dante + ftp.jussieu.fr (France) /pub4/TeX/CTAN + ftp.loria.fr (France) /pub/unix/tex/ctan + ftp.mpi-sb.mpg.de (Deutschland) /pub/tex/mirror/ftp.dante.de + ftp.nada.kth.se (Sweden) /pub/tex/ctan-mirror + ftp.rge.com (New York, USA) /pub/tex + ftp.riken.go.jp (Japan) /pub/tex-archive + ftp.tu-chemnitz.de (Deutschland) /pub/tex + ftp.uni-augsburg.de (Deutschland) /tex-archive + ftp.uni-bielefeld.de (Deutschland) /pub/tex + ftp.unina.it (Italia) /pub/TeX + ftp.uni-stuttgart.de (Deutschland) /tex-archive (/pub/tex) + ftp.univie.ac.at (\"Osterreich) /packages/tex + ftp.u-aizu.ac.jp (Japan) /pub/tex/CTAN + ftpserver.nus.sg (Singapore) /pub/zi/TeX + kadri.ut.ee (Estonia) /pub/tex + src.doc.ic.ac.uk (England) /packages/tex/uk-tex + sunsite.icm.edu.pl (Poland) /pub/CTAN + sunsite.queensu.ca (Canada) /pub/tex-archive + sunsite.unc.edu (North Carolina, USA) /pub/packages/TeX + wuarchive.wustl.edu (Missouri, USA) /packages/TeX +\end{verbatim} + +¨âÓ¥Dnªº~CTAN~¥D¾÷: +\begin{verbatim} + ftp.dante.de (Deutschland) + -- anonymous ftp + /tex-archive (/pub/tex /pub/archive) + -- gopher on node gopher.dante.de + -- e-mail via ftpmail@dante.de + -- World Wide Web access on www.dante.de + -- Administrator: <ftpmaint@dante.de> + + ftp.tex.ac.uk (England) + -- anonymous ftp + /tex-archive (/pub/tex /pub/archive) + -- gopher on node gopher.tex.ac.uk + -- NFS mountable from + nfs.tex.ac.uk:/public/ctan/tex-archive + -- World Wide Web access on www.tex.ac.uk + -- Administrator: <ctan-uk@tex.ac.uk> +\end{verbatim} + + +\section{IFCSS~¦b¦U¦aªº~FTP~¯¸} +\label{sec:ifcss-mirrors} + +¥Dnªº~IFCSS~¯¸¡G \verb|ftp.ifcss.org:/pub/software| + +¨ä¥Lªº~FTP~¯¸: +\begin{verbatim} +Taiwan: ftp.edu.tw:/Chinese/ifcss/software [full] + ftp.ntu.edu.tw:/Chinese/ifcss/software [full] + iiiafs.iii.org.tw:/Chinese/ifcss/software [full] +CHINA, + Beijing: info.bta.net.cn:/pub/software [partial] + Guangdong: + info.gz.gdpta.net.cn:/pub/mirror/chnsoftware [partial] + Shanghai: info.sta.net.cn:/pub/software [partial] +HONG KONG,: ftp.cuhk.hk:/pub/chinese/ifcss/software [full] +SINGAPORE,: ftp.technet.sg:/pub/chinese [full] +USA, + California: cnd.org:/pub/software [full] + New Mexico: phaiakon.nmsu.edu:/pub/software [full] +\end{verbatim} + +%% start of trailer +\newpage +\end{CJK*} + +\end{document} + +%% Local Variables: +%% TeX-header-end: "%+ *[Ee]nd[ -]*[oO]f[ -]*[hH]eader" +%% TeX-trailer-start: "%+ *[Ss]tart[ -]*[oO]f[ -]*[tT]railer" +%% TeX-command-default: "CLaTeX" +%% TeX-master: t +%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/doc/chinese/READMEgb.tex b/language/chinese/CJK/cjk-4.8.5/doc/chinese/READMEgb.tex new file mode 100644 index 0000000000..3081e2896b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/chinese/READMEgb.tex @@ -0,0 +1,92 @@ +% This is the file READMEgb.tex of the CJK package +% for installing the CJK package for LaTeX 2e (in GB encoding). +% +% written by Fude Yao <yao@everest.micro.umass.edu} +% Version 4.1.3 (20-Jun-1997) + +\documentclass[12pt]{report} + +\usepackage{CJK} + +\begin{document} + +\begin{CJK*}{GB}{gbsn} +\CJKtilde + +\chapter*{CJK~°²×°ËµÃ÷Êé} + +¡¡¡¡±¾ÎÄÊÇ~Werner Lemberg~µÄ~CJK~µÄ°²×°ËµÃ÷Êé. Ôڴ˽ö¾Í×÷ÕßʹÓÃµÄ +~Alpha-Linux~ƽ̨½øÐÐÌÖÂÛ, ²¢×ÅÖØÓÚ~teTeX-0.4p16~ÕâÒ»°æ±¾µÄ~\TeX + +\begin{enumerate} +\item + ÓÃ~ftp~ÄäÃû´æÈ¡·½Ê½»ñµÃ~CJK£®ÀýÈç: \\ + ftp ftp.tex.ac.uk (or ftp.dante.de) \\ + anonymous \\ + yao@everest.micro.umass.edu \\ + bin \\ + cd tex-archive/language/chinese \\ + get CJK.tar.gz CJK-4.1.3.src.tar.gz (°´£ºËäÈ»¿´²»µ½~CJK.tar.gz, + µ«±¾ÃüÁîÈÔÓÐЧ£¬²Î¿´~CJK-4.1.3.src/README) \\ + bye +\item + ½«Ñ¹ËõÎļþ½âѹ£º\\ + gzip -d CJK-4.1.3.src.tar.gz \\ + tar xvf CJK-4.1.3.src.tar \\ + cd CJK/4$_{-}$1.3 +\item + ½«~doc/teTeX~ÀïµÄÈ«²¿²¹¶¡Îļþ~*.diff~ÒÆÖÁ~\$TEXDIR/bin/alpha-linux \\ + ÓÃ~patch~ÃüÁîÐÞ²¹£¬±ÈÈç: patch $<$ MakeTeXPK.diff \\ + (ÆäÖÐ~special.map.diff~Ó¦ÒÆÖÁ~\$TEXMF/fontname~ÐÞ²¹) \\ + ×¢ÒâÐÞ²¹ÊÇ·ñÈ«²¿³É¹¦ \\ + (×¢£º\$TEXDIR=/usr/lib/texmf; \$TEXMF=/usr/lib/texmf/texmf) +\item + ½«~CJK~ÖÐÈ«²¿ÎļþÒÆÖÁ~\$TEXMF/tex/latex/CJK (±£Áô¸Ã½á¹¹) +\item + ½«~utils/ttf2pk~µÄÈ«²¿ÎļþÒÆÖÁ~\$TEXMF/ttf2pk£º \\ + cd \$TEXMF/ttf2pk/src \\ + make all OS=unix \\ + ½«~utils/hbf2gf~µÄÈ«²¿ÎļþÒÆÖÁ~\$TEXMF/hbf2gf£º \\ + cd \$/TEXMF/hbf2gf \\ + make all OS=unix +\item + cd utils/Bg5conv (CEFconv, SJISconv) \\ + compile *conv.c, ±ÈÈ磺~gcc cefconv.c -o cefconv \\ + ½«ËùµÃµÄ¶þ½øÖÆÎļþÁ¬Í¬~*latex~Ò»ÆðÒÆÖÁ~\$TEXDIR/bin/alpha-linux +\item + ½«È«²¿¿ÉÖ´ÐÐÎļþÒƵ½~\$TEXDIR/bin/alpha-linux~ÖУ¬»ò½¨Á¢ÁªÏµ£¬±ÈÈç \\ + ln -s \$TEXMF/ttf2pk/ttf2pk \$TEXDIR/bin/alpha-linux +\item + ¼ì²é~\$TEXDIR/texmf.cnf~ÖÐ~\$HBF2GFDIR~Óë~\$TTF2PKDIR \\ + ÊÇ·ñÕýÈ· +\item + °²×°~CJK~×Ö¿â, truetype~»ò~hbf~¸ñʽµÄ¹ú±ê£¬´óÎ壬ÈÕÎÄ£¬³¯ÏÊÎÄ \\ + ÔÚ~ftp.tex.ac.uk/tex-archive/fonts/CJK~ÀïÓи÷ÖÖ×ֿ⣬ÓÃÄäÃû´æÈ¡·½Ê½ + È¡»Ø£¬×¢ÒâʹÓöþ½øÖÆ·½Ê½ +\item + ½âѹÎļþ \\ + ½«×Ö¿â·ÅÔÚ~\$TEXMF/fonts/hbf(truetype)/chinese(japanese, korean) \\ + Èç¹ûÊÇ~hbf~×ֿ⣬½«~*.cfg~ÒÆÖÁ~\$TEXMF/hbf2gf£» \\ + Èç¹ûÊÇ~truetype~×ֿ⣬¼ì²é\$TEXMF/ttf2pk/ttf2pk.cfg~ÖÐÊÇ·ñÓиÃ×Ö¿âÃû + ×Ö +\item + ÊÔÑéÑù±¾Îļþ£¬¼ì²éÉèÖÃÊÇ·ñÍêÕû£¬±ÈÈç~GB.tex£º \\ + GB.tex~ÖÐÓõ½Ê²Ã´×ֿ⣺$\backslash$begin\{CJK*\}\{GB\}\{so\} \\ + \$TEXMF/tex/latex/CJK~ÖÐÓÐ~c10so.fd~×Ö¿âÂð£¿ËüÉæ¼°ÄÄЩÃû×Ö£¿ \\ + \$TEXMF/fontname/special.map~ÖÐÊÇ·ñÓиÃ×Ö¿âµÄÃû×Ö£¿ \\ + \$TEXDIR/texmf.cnf~ÖÐ~\$HBF2GFDIR~Óë~\$TTF2PKDIR~ÕýÈ·Â𣿠\\ + Èç¹ûÊÇ~hbf~×ֿ⣬\$TEXMF/hbf2gf~ÖÐÓиÃ×Ö¿âµÄ~cfg~ÎļþÂ𣿠\\ + ¼ì²é~cfg~ÎļþµÄ·¾¶ÃûÊÇÊÇ·ñÕýÈ·£¿ \\ + Èç¹ûÊÇ~truetype~×ֿ⣬\$TEXMF/ttf2p/ttf2pk.cfg~ÖÐÓиÃ×Ö¿âÃû×ÖÂ𣿠\\ + ·¾¶ÃûÕýÈ·Â𣿠+\item + ÔËÐÐ~texhash (ÿ´Î¸Ä¶¯Ö®ºó£¬¶¼ÒªÔËÐÐ~texhash) +\item + latex examples/GB.tex, ¿´ÊÇ·ñÕý³££®ÔÚ~doc/~×ÓĿ¼ÖÐÓкܶà°ïÖúÎļþ£¬ + Ó¦×ÐϸÔĶÁ +\end{enumerate} + +\end{CJK*} +\end{document} + +\EOF diff --git a/language/chinese/CJK/cjk-4.8.5/doc/chinese/emTeXb5.txt b/language/chinese/CJK/cjk-4.8.5/doc/chinese/emTeXb5.txt new file mode 100644 index 0000000000..b37c80aff3 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/chinese/emTeXb5.txt @@ -0,0 +1,357 @@ +From c300711@ms5.hinet.net Fri Feb 07 02:13:02 1997 +Newsgroups: tw.bbs.comp.tex +Subject: emtex+cjk410(ttf2pk) on Msdos ¦w¸Ë¬ö. +From: KUO Yi-Liang <c300711@ms5.hinet.net> +Date: Thu, 06 Feb 1997 18:13:02 GMT + +¥»¤å¥Hemtex\doc\english\quick.eng¬°°ò¦: +¸Õ¹Ï¦w¸Ëemtex+cjk4.1.0(ttf2pk) on MSDOS +-------- +ÀÉ®× +-------- +º¥ý¦b mirror CTAN ªº ftp¯¸ +¨Ò¦p dongpo.math.ncu.edu.tw: /tex-archive/systems/msdos/emtex/¤U§ì +*.zipÀÉ, +-rw-rw-r-- 1 mattes server 160090 Aug 7 1995 bibtex4b.zip +-rw-rw-r-- 1 mattes server 1148514 Apr 10 16:22 dvid16f1.zip +-rw-rw-r-- 1 mattes server 824290 Apr 10 16:22 dvid16f2.zip +-rw-rw-r-- 1 mattes server 94959 Aug 7 1995 dvisp10b.zip +-rw-rw-r-- 1 mattes server 180206 May 24 14:17 emxrsx.zip +-rw-rw-r-- 1 mattes server 127810 Sep 2 13:24 first.zip +-rw-rw-r-- 1 mattes server 651946 Jun 26 1995 fontams.zip +-rw-rw-r-- 1 mattes server 411129 Jun 26 1995 fontcm.zip +-rw-rw-r-- 1 mattes server 1031835 Sep 2 13:24 fontdc.zip +-rw-rw-r-- 1 mattes server 7080 Jun 26 1995 fontemsy.zip +-rw-rw-r-- 1 mattes server 47495 Jun 26 1995 fontltx.zip +-rw-rw-r-- 1 mattes server 110991 May 4 21:05 german.zip +-rw-rw-r-- 1 mattes server 930861 Jun 21 14:59 l2base.zip +-rw-rw-r-- 1 mattes server 409888 Jun 21 14:59 l2input.zip +-rw-rw-r-- 1 mattes server 87336 Jun 26 1995 l2kurz.zip +-rw-rw-r-- 1 mattes server 209194 Jun 21 14:59 l2tools.zip +-rw-rw-r-- 1 mattes server 347068 Jun 26 1995 latex209.zip +-rw-rw-r-- 1 mattes server 81115 Jun 26 1995 lkurz.zip +-rw-rw-r-- 1 mattes server 83493 Jun 26 1995 makeindx.zip +-rw-rw-r-- 1 mattes server 990552 Jun 21 14:59 mf4b.zip +-rw-rw-r-- 1 mattes server 166052 Sep 19 1995 mfjob12c.zip +-rw-rw-r-- 1 mattes server 227054 Jun 26 1995 mfware.zip +-rw-rw-r-- 1 mattes server 39887 Jun 26 1995 pictex.zip +-rw-rw-r-- 1 mattes server 113473 Jun 26 1995 pkedit.zip +-rw-rw-r-- 1 mattes server 38705 Jun 26 1995 srcmkidx.zip +-rw-rw-r-- 1 mattes server 88251 Jun 26 1995 srctcad.zip +-rw-rw-r-- 1 mattes server 1173697 Jun 21 14:59 tex4b.zip +-rw-rw-r-- 1 mattes server 131010 Jun 26 1995 texcad.zip +-rw-rw-r-- 1 mattes server 260671 Sep 11 1995 texware.zip +-rw-rw-r-- 1 mattes server 236301 Jun 26 1995 unz512.exe +-rw-rw-r-- 1 mattes server 236134 Jun 26 1995 unz512x3.exe +-rw-rw-r-- 1 mattes server 124738 Aug 23 1995 web.zip +¤£¹L¥i¥H¥ý§ì³o´XÓ(¥H¦w¸ËLaTeX2e¨Ó»¡) + first.zip......¤@¨Ç»¡©úÀÉ + emxrsx.zip.....Ãþ¦üdos extenderªºªF¦è(¯ÂÄÝÓ¤H²q´ú) + mfjob12c.zip...±N.mf(^¤å¦r«¬ªºsourceÀÉ)Âà´«¦¨.pk©Ò»Ýnªº¸ê®Æ + dvid16f1.zip...¦U¦¡ªºdvi driver-partI + dvid16f2.zip...¦U¦¡ªºdvi driver-partII + tex4b.zip......texªº¥D°õ¦æÀÉ + mf4b.zip.......³o...§Ú¤]¤£ª¾¹D, sorry + fontcm.zip.....cm¨t¦Cªº¦r«¬ÀÉ.mf + fontltx.zip....latex©Ò»Ýªº¦r«¬ÀÉ.mf + l2input.zip....latex©Ò»ÝªºtexinputÀÉ + l2tools.zip....ÃB¥~ªºtexinputÀÉ + +¸É¥R¤@ÂI:pkunzip³oÓ¸ÑÀ£µ{¦¡¨S¦³ªº¤HÀ³¸Ó¤£¦h§a,¦pªG¨S¦³ªº¸Ü¥h§ìÓunzip¦^¨Ó! +-rw-rw-r-- 1 mattes server 236301 Jun 26 1995 unz512.exe +-rw-rw-r-- 1 mattes server 236134 Jun 26 1995 unz512x3.exe +¦ADOS ´£¥Ü²Å¸¹¤U(³o¬Oquick.eng ©Òz,Ó¤H§Ú¨S¸Õ¹L) + unz512x3 unzip386.exe + ren unzip386.exe unzip.exe + +ÁÙ¦³¬Ý§A¥Î¨º¥xprinter +´N§ì¨º¤@Ó¦r«¬ÀÉ(¤£§ì¤]¥i¥H,Ó¤H§Ú´N¬O¦Û¤v«Ø³y°_¨Óªº) + bj_base.fli Base fonts for the Canon BubbleJet (360 DPI) + dj_base.fli Base fonts for the HP DeskJet (300 DPI) + fax_base.fli Base fonts for Fax (204x196 DPI) + fx_base.fli Base fonts for 9-pin printers (240x216 DPI) + ito_base.fli Base fonts for the C.ITOH 8510A (160x144 DPI) + ljh_base.fli Base fonts for the HP LaserJet 4 (600 DPI) + lj_base.fli Base fonts for the HP LaserJet (300 DPI) + p6h_base.fli Base fonts for 24-pin printers (360 DPI) + p6l_base.fli Base fonts for 24-pin printers (180 DPI) + p6m_base.fli Base fonts for 24-pin printers (360x180 DPI) + qj_base.fli Base fonts for the HP QuietJet (192 DPI) + sty_base.fli Base fonts for the EPSON Stylus 800 (360 DPI) + +¦A¶i¨ì./dvips(©Î../dviware/dvips/dvips558.pc) ¤U§ì +-rw-rw-r-- 1 ftpmaint server 27831 Nov 6 1995 dvips.doc +-rw-rw-r-- 1 ftpmaint server 182491 Nov 6 1995 dvipsfnt.zip +-rw-rw-r-- 1 ftpmaint server 421777 Nov 6 1995 dvipsini.zip +-rw-rw-r-- 1 ftpmaint server 173767 Nov 6 1995 dvipssrc.zip +..sourceÀÉ,À³¸Ó¤£¥Î§ì +----------- +ªì¨B³]©w +----------- +¥HÓ¤H§Ú¦w¸Ë¦bD:ºÐ¬°¨Ò,¦Ó©Ò¦³ªº.zipÀÉÂ\¦bd:\emtex.zip\¤U + d: + cd d:\ + pkunzip -d +d:\emtex.zip\*.zip......¦p¦¹·|¨ÌÀ£ÁY«eìq¥Ø¿ý¦ì¸m¸ÑÀ£Â\¦n + +¨Ã·Óquick.eng¤¤«Øij±Nd:\emtex\bin»Pd:\emx\bin¥[¤Jpath¤¤ +¨Ã©ó c:\autoexec.bat ¤¤ ¥[¤J: + set emtexdir=d:\emtex + set dvidrvfonts=d:\texfonts + set mfjobopt=/3 + set tmp=c:\temp + +¦bc:\config.sys¤¤ files=xx¨ä¤¤xx»Ý¤j©ó20 +ÁÙ¦³±Nconfig.sys¤¤`BREAK=ON'¨º¦æ§R±¼ +µM«á«¶}¾÷¨Ï autoexec.bat ³]©w·sªºpath + +¸É¥R¤@ÂI:Ó¤H§Ú¨Ã«D¦p¤W©Òz,¦Ó¬O±Nemtex\bin\set_tex.bat ¥[¥HÂX¥R, + ±N¤W±ªºpath,emtexdir,dvidrvfont,mfjobopt,tmp,...³o¨ÇÀô¹ÒÅÜ¼Æ + ¥þ³£¥[¦bset_tex.bat¤F,¤Ï¥¿µy«áÁÙ¦³¥t¥~¤@¨ÇÀô¹ÒÅܼÆn³]. +------------------------- +«Ø³ypk¦r«¬ +------------------------- +¥H¤U±qinstall.eng¤¤ ¸`¿ý + ¦pªG§A©M§Ú¤@¼Ë¨S¦³§ì¤W±xxx_base.fliªº¸Ü,½Ð§A¸ò§Ú³o¼Ë§@ + ¨ì\emtex\mfjob\modes.mfj ¤¤ + ±N 'def target=[............]'§ï¦¨§A©ñ¸m.pkªºtexfonts¥Ø¿ý + ¨Ò¦p §Úªº def target=[d:\texfonts]; + °²³]¤w¸g±Nfontcm.zip »P fontltx.zip ®i¶}«á, + «h¦bdos ´£¥Ü²Å¸¹¤U°õ¦æ + mfjob base m=MODE + fli_base PREFIX RES c:\texfonts +where MODE, PREFIX, and RES depend on the font set: + +MODE | PREFIX | RES | Font library | Description +-----+--------+-----+--------------+------------------------- +bj | bj | 360 | bj_base.fli | Canon BubbleJet (360 DPI) +dj | dj | 300 | dj_base.fli | HP DeskJet (300 DPI) +FAX | fax | 204 | fax_base.fli | Fax (204x196 DPI) +fx | fx | 240 | fx_base.fli | 9-pin printers (240x216 DPI) +ito | ito | 160 | ito_base.fli | C.ITOH 8510A (160x144 DPI) +lj | lj | 300 | lj_base.fli | HP LaserJet (300 DPI) +ljh | ljh | 600 | ljh_base.fli | HP LaserJet 4 (600 DPI) +lqh | p6h | 360 | p6h_base.fli | 24-pin printers (360 DPI) +lql | p6l | 180 | p6l_base.fli | 24-pin printers (180 DPI) +lqm | p6m | 360 | p6m_base.fli | 24-pin printers (360x180 DPI) +qj | qj | 192 | qj_base.fli | HP QuietJet (192 DPI) +sty | sty | 360 | sty_base.fli | EPSON Stylus 800 (360 DPI) + +To let MFjob call mf386, use the /3 option. It is recommended to set +this option in the MFJOBOPT environment variable: + + set mfjobopt=/3 + + ¨Ò¦p§Ú¥Îªº epson stylus 200 «h + mfjob base m=sty + fli_base sty 360 d:\texfonts.........(¤U±ªº³o¦æ§Ú¨S¦³§@¹L:() + +µM«á ¦p ¸`¿ý¦Ü quick.eng ªº ¤ù¬q,step by step +--------------------------------------------------------------------- +6. Creating format files +--------------------------------------------------------------------- + +Type the following commands to create format files: + + cd \emtex\btexfmts + makefmt 386 plain US <--- if you need PLAIN TeX + makefmt 386 latex2e US 8bit -b \emtex\bin\latex2e <---²£¥Í¤@Ó +latex2e.bat + +--------------------------------------------------------------------- +7. Creating base files +--------------------------------------------------------------------- + +Type the following commands to create the PLAIN base file: + + cd \emtex\bmfbases + makebas 386 plain + +--------------------------------------------------------------------- +8. Testing the installation +--------------------------------------------------------------------- + +Type the following commands to typeset a sample document: + + md \test + cd \test + latex2e sample2e <----´ú¸Õemtex\bin\latex2e.bat¥i¤£¥i¥H°Ê?? + +8.1. Viewing the sample output under DOS +---------------------------------------- + +Type + + v @XX sample2e +---->¥H§Úªºepson stylus 200 ¬°¨Ò,«h¬OÁä¤J "v @sty sample2e" +.....µM«á¤@°}®Dù¼M°Õªº°T®§,¤jP¤W¬O»¡¥¦¯Ê¤F¨Ç¦r«¬,n¤£n²{¡y§@¡z? + +The following message will be displayed: + + Warning 1209: do you want to call MFjob to generate 1 missing +font now? + Type Y, N, or ?: + +Reply `y'. If you have not installed fonts, computing the fonts for +the sample will take a while. + +When the page shows up (white background), you can scale the output +by +typing `-'. To quit, type `q'. + +¦^µª'y'¤§«áÀ³¸Ó¥i¥H¬Ý¨ì¤F something output on screen +¥i¥Hzoom in/zoom out ¥Î '+' / '-' +---------------------------------------------------- +Ãö©óCJK 410§ìÀÉ-----¥Î¥H³]©wttf2pkªº³¡¥÷,¤£§tntu2cjk +---------------------------------------------------- +¥ýarchie §ä CJK-4.1.0.bin.tar.gz + ¨Ã§ì¦^¨Ó CJK-4.1.0.rest.tar.gz + CJK-4.1.0.src.tar.gz--------? +¸É¥R¤@ÂI:§Ú¬O±q¤U±³oÓ¦a¤è,±N¾ãӾ𪬤l¥Ø¿ýftp¦^¨Óªº,¥ÎmodemC,¦n²Ö:( + dongpo.math.ncu.edu.tw:/tex-archive/language/chinese/CJK/4_1.0 + ÁöµM¬Ý¨ìCJK/4_1.0/readme¤¤©Ò¼gµÛ¦³CJK-4.1.0.src.tar.gz³oÓÀÉ®× + ¦ý¬O«oarchie¤£¨ì:( +¸É¥R¤GÂI:¨Ï¥Î¦bmsdos¤U¨Ï¥Îcjk»Ýn4dos/ndos,¦pªG¨S¦³½Ð¦Û¦æ³]ªk. + ¨ä¤¤4dos/ndos ¬O©R¥O¸ÑĶ¾¹,¨ú¥Nmsdosªºcommand.com¥Îªº +------------------------ +¸Ñ¶} +------------------------ + ¸Ñ¶}ªºµ{§Ç¤jP¤W¬O: + gzip386 -d xxx.tgz (©Îxxx.gz) ±o¨ì xxx.tar(©Îxxx.) + tar -xvf xxx.tar (©Î xxx.) + (ps:gzip386 ¸ÑÀ£®É,·|±Nì¥ýªºÀÉ®×»\¨ì(rename?); + ....»Parj,pkunzip¤£¤Ó¤@¼Ë;¦pªG©È¾Þ§@¿ù»~,¥ýcopy¤@¥÷°_¨Ó) + µM«á±N¤TÓcjk-4.1.0.bin.tar.gz ®i¶} + Åܦ¨¤@Ӿ𪬤l¥Ø¿ýcjk/4_1.0/.................? +¸É¥R¤@ÂI: + ³o¨ÇÀɮ׬O.tar.gz,¸Ñ¶}¥¦Ì»Ýndos ª©ªºgzip»Ptar + §Ú¬O¦b¥æ¤j¥Xªº¶³Æ[CD¤ù¤W§Ë¨ìªº,¤£n°Ý§Úºô¸ô¤W¨º¸Ì¦³,sorry! +--------------------------------- +«·sÀɮפÀ°t¦ì¸m +-------------------------------- +¥H¤U¬O§Úªº°t¸m,¥u¬O¥i¥H°õ¦æ,¨Ã«D³Ì¨Î³]©w +bin/¤U ©Ò¦³ªºexe,bat,btm·h¨ìemtex/bin/ +¨Ò¦p +BG5CONV.EXE +BG5LATEX.BAT +F_NAME.BAT +INSTFONT.BTM +MAKETEXP.BTM +MAKETTFP.BTM +TTF2PK.EXE +util/f_name.bat ¤]·h¨ìemtex/bin +texinput ¾ãÓ¤l¥Ø¿ý ·h¨ìemtex/texinput/¤U ¨Ã§ï¦W¬°emtex/texinput/cjk +texinputs/bg5 ¾ãÓ¤l¥Ø¿ý ·h¨ìemtex/texinput/bg5 +---------------- +קï¤@¨ÇÀɮ׳]©w +---------------- +--------------------------------------- +emtex/texinput/bg5/ttf2pk/ttf2pk.cfg¤¤: + ntukai: -e Big5 $TEXMF/fonts/truetype/chinese/ntu_kai.ttf + ------ -------- ----------------------------------------- + ^ ^ ^ + | | |__§A¥Îªº.ttfÀɦW(§t¥þ³¡¸ô®|) + | | ¤£nºÞ$texmf,ª½±µc:\cwin31\system\....ttf + | |__½s½X«¬ºA? + |__¦r§Î¦WºÙ,³Ì¦n¤£n¶W¹L¤»Ó¦r + +¥[¤J¼Æ¦æÃö©ó§Aªº¦r§ÎÀɪº±Ôz,¥H¥þ¯u¦r®w¬°¨Ò: +avkv: -e Big5 c:/cwin\cttf/avkv.ttf +avbkv: -e Big5 c:/cwin/cttf/avbkv.ttf +avmv: -e Big5 c:/cwin/cttf/avmmv.ttf +avbmv: -e Big5 c:/cwin/cttf/avbmv.ttf +------------------------------------------- + +emtex/texinput/bg5/c00kai.fd: + \DeclareFontShape{C00}{kai}{m}{n}{<-> CJK * avkv}{} + ^^^^ + \DeclareFontShape{C00}{kai}{bx}{n}{<-> CJKb * avbkv}{\CJKbold} +©Î¬O §A»Ýn©úÅé¤Î²Ê©úÅé´N: ^^^^^ +emtex/texinput/bg5/c00ming.fd + \DeclareFontShape{C00}{ming}{m}{n}{<-> CJK * avmv}{} + ^^^^ + \DeclareFontShape{C00}{ming}{bx}{n}{<-> CJKb * avbmv}{\CJKbold} + ^^^^^ +½b¸¹^^^^³B±N»Pttf2pk.cfg©Ò¥[¤Jªº¨º´X¦æ¬Û¹ïÀ³,¥H«K§ä¨ì¹ê»ÚªºTrueTypeFont +-------------------------------------------- + +emtex/data/dvipsªº¤l¥Ø¿ý¤U¥[¤J§A©Ò»Ýªº.cfg + + ¥H§Úªºepson stylus 200¬°¨Ò«K¬O¤@Ósty.cfg + ©ó¬O¨Ì¾Údj.cfg ¨Ã°Ñ¦Ò../sty.cnf »P ../dj.cnf + ¦Û¤vÙT¥X¤@Ósty.cfg,(À³¸Ó¤£ºâÃø¤~¹ï) + ¨ä¤¤ ¦³¤@¦æì¥ý¦bdj.cfg¤¤¬O + P $(DVIDRVFONTS)\pixel.dj\%ddpi\%f.%p; + §ï¦¨ + P +$(DVIDRVFONTS)\pixel.sty\%ddpi\%f.%p;$(DVIDRVFONTS)\pixel.cjk\%ddpi\% +f.%p + + ¥¦ªº·N«ä¤j·§¬O·|¦bd:\texfont\pixel.sty\???dpi\*.pk + »Pd:\texfont\pixel.cjk\???dpi\*.pk §ä©Ò»Ýªºpk¦r«¬ÀÉ + + ¨Ã©óautoexec.bat ©Î¬O emtex\bin\set_tex.bat¤¤ + ³]©w SET PRINTER=STY ¨Ï dvips16 ¤Î dvips32 °Ñ¦Ò¨Ï¥Î + ³]©w SET DVIPS_STDERR ¨Ïdvips ±N stderr «·s¾É¦V¿é¥X + ³]©w SET MAKETEXPK=MAKETEXP %%N %%D %%B %%M ¨Ïdvips¯àcall +MakeTexPK? + SET EMXOPT=-P .........µ¹emx¥Îªº, I don't know + SET GS_LIB=.............³]©w§Aªºghostscript©Ò¦b + SET DVIDRVGRAPH=.........³]©w......I don't know +----------- +BTMÀɪº×§ï +----------- +.btm¬O«ü4dos/ndos±M¥Îªº§å¦¸ÀÉ. + +¦b¦¹¥Ñ©óì¥ýCJK410ªºpackageµ¹©w¤§btmÀɤ£¦X©ó§Ú¥Ø«e¨Ï¥Î¤¤¤§4dos/ndos, + ©ó¬Oªá¤F¦n¤jªº¤O®ð"§V¤O"ªº¶Ã§ï¤@³q,±z¤j·§¤â®ð¤£·|¹³§Ú¨º»òÁV, +----------------- +Instfont ¦w¸Ë¦r«¬ +----------------- +Áä¤J Instfont xxx -e enc res [res2] +¨ä¤¤xxx ¦r«¬¦WºÙ¦pntukai,avkv,avbkv,... + -e enc ¦p -e BIg5 + res ¦p 360 +§Úªºepson stylus 200«h¬OÁä¤J: + instfont avkv -e Big5 360 +µM«á·|«Ø¦n55Ó¦r§Î +-------- +´ú¸Õ +-------- +¦b"ì¥ý"ªºcjk/4_1.0/example/¤U¦³Óbig5.tex + ¥i¥HÁä¤J + bg5latex big5.tex + ±Nbig5.tex ½sĶ¦¨ big5.dvi,µM«áÁä¤J + dvips16 big5 + ·|Åã¥Ü¤@¨Ç°T®§,»¡¬O¯Ê¤F¤@¨Ç¦r«¬(.pkÀÉ?), + n²{¦b«Ø³y,¤§«á"À³¸Ó"´N¥i¥H±o¨ìbig5.ps,¥i¥H¥ÎGhostScript¨Ó¬Ý + ¤]¥i¥H v @xx big5 ±q¿Ã¹õ¤W¬Ý¨ìoutputs +¥t¥~¦bcjk/4_1.0/doc/chinese/big5/¤U¦³¤@Óreadmeb5.tex¤]¥i¥H¥Î¨Ó´ú¸Õ + ¦ý¬On¥ý¦w¸Ël2tools.zip: + ¥ýpkunzip -d l2tools.zip ±N·|§âÀɮ׸Ѧb +emtex\dist....\tool\.........¤U + ¦A¸õ¨ìemtex\dist..\tool\...¤U Áä¤J: + latex2e xxxx.ins(´N¬O¨ºÓ°ß¤@ªº.ins) + §¹¦¨«á´N§â¤µ¤Ñ¦b³o¥Ø¿ý¤U·s²£¥ÍªºÀÉ¥þ·h¨ìemtex\texinput\latex2e\ + ¦pªG§Aªº«¢ºwªÅ¶¡¤£°÷,²{¦bÀ³¸Ó´N¥i¥H§âemtex\dist..\tool\...¥ý¬å¤F + ¦w¸Ë¦n¤F¤§«á´N¥i¥H + bg5latex readme.tex + ÁöµMÁÙ¬O²£¥Í«Ü¦hĵ§i°T®§,¥i¬OÁÙ¥i¥H²£¥Íreadmeb5.dvi + ¤§«áÁÙ¬O¥Îdvips16 ©Î dvips32 ²£¥Í readmeb5.ps + »P v @xx readmeb5 ¬Ý¿é¥X +--------- +«áµù +--------- +¤@¡B§Ú¦b¦w¸ËCJKªº®ÉÔ,¹J¨ì¤@¨Ç³Â·Ð,¥i¯à¬O4dos/ndosªºª©¥»¦³©Ò®t²§, + ¦³¨Ç¥\¯à¤Î¨ç¼Æ¨Ã¥¼´£¨Ñ,©Ò¥H¹ïì¥ýµ¹©w¤§btmÀɦ³¦h³Bקï,¤£¤Î³Æ¸ü? + ¦p±z¤£©¯¤]¾D¹JÃþ¦ü³Â·Ð,¨º´N......!-R +¤G¡B§Úªºdvips16 ¦b³B²zreadmeb5.dvi®É¥X²{°O¾ÐÅ餣¨¬ªº°T¸¹, + ¦Ódvips32¤SµLªk¦Û°Ê©I¥sMakeTexPk ¨Ó²£¥Ífonts.btm, + ©Ò¥H¥u¦n¦Û¤v°Ê¤â¼g¤F¤@Ófontss.btm ¨Ó¤ÀªR%dvips_stderr%ªº¿é¥XÀÉ, + ¦A©I¥sMakeTexPK ¨Ó²£¥Ífonts.btm,¦h¦¹¤@Á|:( +¤T¡B³o¤å¥ó¨Ã«D¤@Ãä¦w¸Ë¤@Ã伶¼g,¦Ó¬O¨Æ«á¦A¦æ¾ã²z,¥i¯à¦³¨Ç¶µ¥Ø¦³©Ò²¨º|, + «Ü¦³¥i¯àµLªk·ÓµÛ STEP by STEP +ªº¶i¦æ,¦Ó¥B§Ú²Ä¤@¦¸¼g³oºØªø½gªºpost(?) + ¦p¦³¤£·í¤§³B½Ð«ü¥¿!-R, + Thank you! + diff --git a/language/chinese/CJK/cjk-4.8.5/doc/chinese/teTeXb5.txt b/language/chinese/CJK/cjk-4.8.5/doc/chinese/teTeXb5.txt new file mode 100644 index 0000000000..ee28bc3564 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/chinese/teTeXb5.txt @@ -0,0 +1,327 @@ + +¥»¤å´£¨Ñ¤@Ó²³æªº½d¨Ò¡A»¡©ú¦p¦ó±N CJK-4_2.0 ¦w¸Ë¦b tetex-0.9, kpathsea-3.2 +ªºÀô¹Ò¤U¡C¥Ñ©ó¦Û 4_2.0 ª©¥H«á¡A CJK ±N¤£¦A¥]§t ttf2pk µ¥¤u¨ãµ{¦¡¡A¦Ó ttf2pk +¤]¤w²¾¨ì FreeType package ¤§¤¤¡C¦]¦¹Y·Qn¨Ï¥Î TTF ¦r«¬¨ÓÂà´«¦¨ CJK ªº¦r«¬ +ªº¸Ü¡AÁÙn¥t¥~§ì FreeType package ¦^¨Ó¦w¸Ë¡C¥»¤å¸Õ¹Ï±N¾ãÓ¨BÆJ°µ¤@Ó¾ã²z¡A +¥H¤è«K¤j®a°Ñ¦Ò¡C + +(PS. ·PÁ CJK ªº§@ªÌ Werner LEMBERG <wl@gnu.org> ¹ï¥»¤å©Ò°µªº comment :-)) + + +A. ©Ò»Ýªº package: +=================== + +1. CJK-4_2.0: + ftp://ftp1.sinica.edu.tw/pub2/tex/languages/chinese/CJK + +2. FreeType: + ftp://ftp.freetype.org/pub/freetype/devel/freetype-current.tar.gz + ftp://apollo.ce.ntu.edu.tw/pub/freetype + + +B. ¦w¸Ë¸ô®|: +============= + +¥Ñ©ó§Úªº tetex-0.9 ¬OÀHµÛ Debian Linux 2.0 distribution ¦Ó¨Óªº¡A¨ä©Ò¦b +ªº¥D¸ô®|¬O /usr, ¦Ó²{¦bn¥[¸Ë CJK ªº¤ä´©¡A§Ú¥´ºâ±N CJK »P ttf2pk ªº³¡¤À +¾¨¥i¯à¦a¦w¸Ë¦b /usr/local ¤§¤U¡A¥H«K»P Debian ©Òªþªº distribution ¦³©Ò +°Ï®æ¡C¦]¦¹¡A§Ú«K§â©Ò»Ýªº¦w¸Ë¸ô®|¦w±Æ¦p¤U: + + °õ¦æÀÉ: BINLOCAL=/usr/local/bin + CJK »P ttf2pk ªº¬ÛÃö³]©wÀÉ: TEXMFLOCAL=/usr/local/lib/texmf + +¦P®É§ÚÌÁÙ»Ýn°t¦X (קï) TEXMFCNF=/etc/texmf/texmf.cnf ¤¤ªº¬ÛÃö³]©w¨Ó +¦w¸ËÀÉ®×, ¨Ï±o latex »P ttf2pk ¦b¹B§@¹Lµ{¤¤¯à§ä¨ì©Ò¦³©Ò»ÝªºÀɮסC + +PS. 1. $TEXMFCNF ¬O tetex ªº¦UºØ¸ô®|³]©wÀÉ¡AÀɦW¬° texmf.cnf, ¦ý¥¦ªº¦ì + ¸m¥i¯à¨Ì¤£¦Pªº distribution ¦Ó¦³¤£¦P: ¥i¯à¦b /etc/ ¤U¡A¤]¥i¯à¦b + /etc/texmf/ ¤U¡C + + 2. $TEXMFLOCAL ªºÈ¬O¨Ì $TEXMFCNF ªº³]©w¦Ó©w¡A½Ð¦Û¦æ°Ñ¦Ò±z¨t²Î¤¤ªº + ³]©w¡C + + 3. ¦b§Úªº¨t²Î¤¤¡A $TEXMFCNF ¤¤¦³¤@¦æ¬O³o¼Ëªº: + + TEXMF = {$HOMETEXMF,!!$TEXMFLOCAL,!!$TEXMFMAIN} + + ¨ä·N¸q¬O¡A¤Z¬O¨Ï¥Î $TEXMF °µ¬°¸ô®|¶}ÀYªÌ¡A«h¨t²Î¦b·j´M®É·|¦Û°Ê´M + §ä $HOMETEXMF, $TEXMFLOCAL, $TEXMFMAIN µ¥¥Ø¿ý©³¤Uªº¸ô®|¡C¨ä¤¤: + + HOMETEXMF = $HOME/texmf % ¨Ï¥ÎªÌ¦Û¤vªº tex ¥Ø¿ý¦ì¸m + TEXMFMAIN = /usr/lib/texmf % tetex ¥D¥Ø¿ý + + 4. latex/xdvi/dvips/ttf2pk µ¥µ{¦¡¦b¹B§@ªº¹Lµ{¤¤¡A©Ò²£¥Íªº tfm »P pk ¦r + «¬ÀÉ¡A·|©ñ¨ì $VARTEXFONTS ©³¤U¡C®Ú¾Ú $TEXMFCNF ªº¹w³]¡A¨äȬ° + + VARTEXFONTS = /var/spool/texmf + + 5. Ãö©ó¬ÛÃöªº¦r«¬¸ô®|¦WºÙ¡A¥i¥H°Ñ¦Ò CJK-4_2.0..../doc/TDS.txt ªº«Øij¡C + + +C. ¦w¸Ë¨BÆJ: +============= + +1. TTF ¦r«¬§Ú¥Î moe_kai.ttf, ©ñ¦b $TEXMFLOCAL/fonts/truetype ¤U¡C + (PS. $TEXMFCNF ¤¤ªº¹w³]¬°: TTFONTS = .:$TEXMF/fonts/truetype//) + +2. ±N CJK-4_2.0/.../texinput/ ¾ãÓ«þ¨ì $TEXMFLOCAL/tex/CJK¡C + (PS. $TEXMFCNF ¤¤ªº¹w³]¬°: + TEXINPUTS.latex2e = .:$TEXMF/tex/{latex,generic,latex209,}// + TEXINPUTS.latex = .:$TEXMF/tex/{latex,generic,latex209,}//) + +3. קï /usr/lib/texmf/tex/latex/CJK/Bg5/c00kai.fd, ¨º¬O©w¸q CJK kai + ©Ò¥Îªº¦r«¬¡A¦b¦¹§Ú̱N¨Ï¥Î moe_kai ªº¦r«¬¡C½Ð±N + +\DeclareFontShape{C00}{kai}{m}{n}{<-> CJK * b5ka12}{} +\DeclareFontShape{C00}{kai}{bx}{n}{<-> CJKb * b5ka12}{\CJKbold} + + §ï¦¨ + +\DeclareFontShape{C00}{kai}{m}{n}{<-> CJK * moekai}{} +\DeclareFontShape{C00}{kai}{bx}{n}{<-> CJKb * moekai}{\CJKbold} + + ¥Ñ©ó¥Ø«eªº FreeType - ttf2pk ©|¤£¤ä´©±N¤¤¤å¦rÂà 90 «×¡A¬G¦b¦¹§ÚÌ + ¤£¥hקï c00kair.fd ÀÉ¡C + + (PS. ½Ðª`·N¡A¦b¦¹©Ò¨Ï¥Îªº¦r«¬¦W½Ð¾¨¶q¤£n¦³ "_" ¦r¤¸¡A¥H§K³y¦¨°ÝÃD) + +4. קï $TEXMFMAIN/fontnames/special.map, ¥[¤J + +moekai big5 moekai + + ¨ä¸q·N¬O¡A CJK ©Ò»Ýªº .tfm, .pk µ¥¦r«¬±N·|©ñ¦b: + + moekai*.tfm ===> $VARTEXFONTS/tfm/big5/moekai/ + moekai*pk ===> $VARTEXFONTS/pk/big5/moekai/ + + ©³¤U¡C + +5. Compile ¤@¤U CJK-4_2.0/utils/Bg5conv/bg5conv.c, ¨Ã±N¥¦©ñ¨ì $BINLOCAL + ¤U¡C¦P®É¤]±N bg5latex ¤]©ñ¹L¥h¡C + +6. ¦w¸Ë FreeType lib ¡C½Ð¨ì FreeType ªº¥Ø¿ý¤U¡A°õ¦æ: + + ./configure --prefix=/usr/local --with-locale-dir=/usr/share/locale + make + make install + +7. ¦w¸Ë ttf2pk ¡C½Ð¨ì freetype/contrib/ttf2pk ©³¤U¡A°õ¦æ: + + ./configure --prefix=/usr/local --with-kpathsea-dir=/usr + make + make install + + ¦b¦¹¦]¬°§Úªº¨t²Î¤¤¦³ kpathsea lib, ¬O©ñ¦b /usr ©³¤U¡A¦]¦¹§Ú°µ¤F³o¼Ëªº + ªº³]©w¡CY±zªº¨t²Î¤¤¨S¦³ kpathsea lib, «h¤£n³] --with-kpathsea-dir¡C + «Øij±z¨Ï¥Î kpathsea lib, ¦]¬°³o¼Ëªº¸Ü ttf2pk package ¥i¥H«Ü§¹¾ã¦a»P + tetex ¨t²Î¾ã¦X¦b¤@°_¡C + + (PS. ½Ðª`·N¡A®Ú¾Ú Werner LEMBERG ªº comment, ³o¼Ëªº°µªk¥i¯à¦b¬Y¨Ç + ±¡ªp¤U·|¥¢®Ä¡C³Ì¤@¯ëªº°µªk¡A¬O±N ttf2pk ªº°õ¦æÀɦw¸Ë¦b»P¨ä¥L + tetex ªº°õ¦æÀɬۦPªº¥Ø¿ý¤U¡A¦b¤Wzªº¨Ò¤l§Y¬° /usr/bin ¡C¦P®É¡A + ¦b configure ®É --prefix ¤]À³¸Ó³]¬° /usr ¤~¹ï¡CY±zµo²{¥Î¤Wz + ªº¤è¦¡µLªk work ®É¡A½Ð±z¸ÕµÛ±N ttf2pk ¦w¸Ë¦b»P tetex ªº°õ¦æÀÉ + ¦w¸Ë¦b¤@°_¡C°£¦¹¤§¥~¡A¨Ï¥Î symbolic link ±N /usr/local/bin/ttf2pk + link ¨ì /usr/bin/ttf2pk ¥i¯à¤]¨S¥Î) + +8. ²{¦b§Ú±N ttf2pk ªº¬ÛÃö¸ê®ÆÀÉ©ñ¨ì $TEXMFLOCAL/ttf2pk ¤U: + + mkdir $TEXMFLOCAL/ttf2pk + cp freetype/contrib/ttf2pk/data/* $TEXMFLOCAL/ttf2pk + ln -s $TEXMFLOCAL/ttf2pk $TEXMFLOCAL/ttf2tfm + + µM«áקï $TEXMFCNF, ¥[¤J¥H¤U¨â¦æ: + + TTF2PKINPUTS = $TEXMF/ttf2pk/ + TTF2TFMINPUTS = $TEXMF/ttf2pk/ + + ¥H©ú½T«ü©w ttf2tfm ¥H¤Î ttf2pk ©Ò»Ýªº³]©w»P¸ê®ÆÀɪº¦ì¸m) + +9. °µ¥X©Ò¦³ªº tfm ¦r«¬ (¥»«ü¥Oªº¸Ô²Ó·N¸q½Ð¨£ man ttf2tfm): + + ttf2tfm moe_kai -P 3 -E 4 moekai@Big5@ + + ¦bµ{¦¡°õ¦æ²×¤F·|¦L¥X³o¤@¦æ: + +moekai@Big5@ moe_kai Pid=3 Eid=4 + + ½Ð±N³o¤@¦æ¼g¨ì $TEXMFLOCAL/ttf2pk/ttfonts.map Àɤ¤¡Cttf2pk §Y¨Ï¥Î¦¹¸ê + ®Æ¨Ó²£¥Í©Ò»Ýªº pk ¦r«¬ÀÉ¡C + + µM«á¡A¦A±N²£¥Í¥X¨Óªº .tfm ¦r«¬¥þ³¡²¾¨ì $VARTEXFONTS/tfm/big5/moekai + ©³¤U¡C + +10. ¶]¤@¤U texconfig rebuild ls-R data base. Y±zªº¨t²Î¨S¦³³oÓ«ü¥O¡A«h + ¶]¤@¤U mktexlsr <path_name>. ½Ðª`·N¡A¨C¦¸±z«·s°µ¥X tfm ¦r«¬¡A©Î¼W¥[¡B + §R°£ tetex ©³¤UªºÀɮ׮ɡA±z³£¥²¶·°µ³o¤@¨B¡A¥H§ó·s ls-R data base ªº¤º + ®e¡C¨Ï¥Î texconfig ®É·|¥X²{¤@Ó¿ï³æ¡A±z¥i¥H¿ï¨ú "rebuild ls-R database" + §Y¥i¡CY±z¨Ï¥Î mktexlsr, «hn«ü©ú¸ô®|¡A¦p + + mktexlsr /var/spool/texmf + mktexlsr /usr/local/lib/texmf + +11. Patch tetex-0.9 ªº mktexpk script¡C¨ä diff ÀɬO¦b + freetype/contrib/ttf2pk/scripts/web2c-7.2/ ©³¤U¡C¦p¦¹ latex ¨t²Î + ¦b»Ýn®É¡A´N·|©I¥s ttf2pk ¨Ó²£¥Í©Ò»Ýªº pk ¦r«¬¡C + + (PS. Y±z©Ò¥Îªº¬O³Ì·sªº teTeX 0.9-beta ªº¸Ü¡A¨ä mktexpk ¤w¥]§t¤F¥H¤W + ªº patch, ©Ò¥H±z¤£¥²°µ³o¤@¨B¡C³Ì·sªº teTeX 0.9-beta ¥i¥H¦b³oùØ + §ä¨ì: + + ftp://ftp.rrzn.uni-hannover.de/pub/local/misc/teTeX-beta/) + +12. §¹¦¨! ±z¥i¥H¸Õ¸Õ½sĶ CJK_4_2.0/doc/chinese/READMEb5.tex, ¬Ý¦³¨S + ¦³¨ä¥L°ÝÃD¡C + + + +C. LaTeX/CJK ªº¤u§@ì²z (for tetex-0.9, CJK-4_2.0): +==================================================== + +¥H¤U¬°´N§Ú©Òª¾ªº LaTeX ½sĶ¤å³¹ªº¨BÆJ»P¥Ø«e CJK ªº¤u§@ì²zµy·L»¡©ú¤@¤U¡A +¥HÀ°§UŪ¤F¸Ñ¥H¤W³]©wªº·N¸q¡C + +º¥ý¡A·í TeX/LaTeX ¦bŪ¤J¤@Ó .tex ÀÉ¡A¨Ã¸Õ¹Ï¦a°µ¥X¤@Ó .dvi ÀɮɡA¥¦¥²¶· +n¥Î¨ì .tfm ªº¦r«¬¡C .tfm ªº¦r«¬ÀÉ¥u°O¿ý¤F¸ÓºØ¦r«¬³Ì°ò¥»ªº¸ê°T¡A¥¦¬Æ¦Ü»P +¦r«¬ªº¹ê»Ú¤j¤pµLÃö¡A¥¦¯Âºé¥u¥Î¨Ó°µ±Æª©¥Îªº¡CTeX/LaTeX ¹w³]ª¬ªp¤U³£·|¨ì +$TEXMFDIR/fonts/tfm/ ©³¤U§ä .tfm ¦r«¬ (¦U¦ì¥i¥H¬Ý¬Ý /etc/texmf/texmf.cnf +ªº³]©w) ¡A¦]¦¹¡A°²³]¦b tfm/ ¤UÁÙ¦³«Ü¦h¥Ø¿ý¡A¦p + + ..../tfm/big5/moekai/ + ..../tfm/big5/moesung/ + ..../tfm/ams/ + ........... + +µ¥µ¥¡A«h³o¨Ç¤l¥Ø¿ý©³¤U©Ò¦³ªº .tfm ¦r«¬Àɳ£·|³Q·j´M¨ì¡C¦Ó $TEXMFDIR «h¥Nªí +¤F§A¨t²Î¤¤ TeX ªº¥D¥Ø¿ý¡C¸U¤@§ä¤£¨ì¦r«¬¡A¥¦·|©I¥s mktextfm ¨Ó²£¥Í¦r«¬¡A©Ò +²£¥Í¥X¨Óªº¦r«¬´N¥á¨ì $TEXMFDIR/fonts/tfm/.... ¤U¡C + +mktextfm ¬O¤@Ó shell script ¡A¥¦¦b¤u§@®Éº¥ý·|¥ý¤ÀªR©Ò»Ý²£¥Íªº¦r«¬ºØÃþ»P +À³¦bªº¸ô®|¦W¡A¨Ã¦A¦¸Àˬd¸Ó¦r«¬¬O§_¦s¦b¡A¦pªG¯u¤£¦s¦b¡A«h¥¦·|©I¥s¦r«¬²£¥Í +µ{¦¡ mf ¨Ó§â¦r«¬°µ¥X¨Ó¡C + +µM¦Ó¡A¤£ºÞ¬O°µ¤°»ò¼Ëªº¦r«¬¡A³£¤@©wn¦³¤@ӨѰѦҪº¦r«¬¡u¼ËªO¡v¤~¦æ¡A¦b TeX +¨t²Î¤¤¡A¹w³]ªº¦r«¬¼Ëª©¬° MetaFont, ³o¬O¨t²Î³Ì°ò¥»ªº¦r«¬¼Ëª©¡C·íµM¡A§ÚÌ¥i +¥H¥[¤J¨ä¥Lªº¦r«¬°µ¬°¼Ëª©¡A¦Ó³o¨Ç¥[¤Jªº¦r«¬´N°O¿ý¦b¤@Ó¥s special.map ªºÀÉ +¤¤¡A¦¹Àɦ³¤TÓÄæ¦ì¦p¤U: + +% Font source typeface +% +A public hieroglyph +Aa public hieroglyph +B public hieroglyph +C public hieroglyph +D public hieroglyph +DeadSea public hebrew + +¨ä¤¤²Ä¤@Äæ¬O¦r«¬¦WºÙ¡A²Ä¤GÄæ©M²Ä¤TÄæ¬O¦r«¬Ãþ§O¡CTeX/LaTeX §Y®Ú¾Ú special.map +ªº¤º®e¡A¦b $TEXMF/fonts/tfm ¤U´M§ä©Ò»Ýªº .tfm ¦r«¬¡C¹w³]±¡ªp¤U¡A¥¦´N¥H +¦r«¬Ãþ§O¦WºÙ°µ¬°¸Ó¦r«¬ªº¦s¦b¸ô®|¡A¨Ò¦p·í»Ýn DeadSea*.tfm ®É¡A¨ä¦s¦bªº¸ô¦æ§Y +¬° $TEXMF/fonts/tfm/public/hebrew/ ¡CY¸ô®|¤£¦s¦b©Î¦r«¬¤£¦s¦b¡A«hµø»Ýn +²£¥Í¸Ó¸ô®|¡A¨Ã©I¥s mktextfm ¨Ó²£¥Í¦r«¬ÀÉ¡A mktextfm «h·|¶i¤@¨B©I¥s mf µ{¦¡¨Ó +¤u§@¡C + +·í .dvi ÀÉ¥X¨Ó«á¡A§ÚÌ¥i¥H¥Î xdvi ¨Ó°µ¹wµø¡A³o®ÉÔ´N»Ýn .pk ªº¦r«¬¡A¦¹¬° +ÂI°}¦r«¬¡A´N»P¹ê»Ú©Ò»Ýªº¦r«¬¤j¤p¦³Ãö¡C¦P¼Ëªº¡A xdvi ·|¥ý¨ì +$TEXMF/fonts/pk/..../ ¬Ý¬Ý¸Ó¦r«¬¬O§_¤w¦s¦b¡A§ä¤£¨ì¥¦´N·|¥h©I¥s +mktexpk ¨Ó°µ¥X¦r«¬¡Cmktexpk ªº¤u§@¾÷¨î»P mktextfm §¹¥þ¤@¼Ë¡A©Ò¥H´N¤£¦A«ÂСC +·íµM¡A§Ṳ́]¥i¥H¥Î dvips ¨Ó²£¥Í PostScript ªº¤å¥óÀÉ¡A¦b³oùئP¼Ën¨Ï¥Î .pk +ªº¦r«¬¡A¤]¬O¥Î mktexpk ¨Ó°µ¡C + +´N¥H¤Wªº»¡©ú¡A§ÚÌ¥i¥Hª¾¹D¡AYn¥Î CJK ¨Ó²£¥Í¤¤¤å¤å¥ó¡A«h»Ýn¨ã³Æ¥H¤U±ø¥ó: + +1. ¥Î¨Ó©w¸q¤¤¤å¤å¥ó®æ¦¡ªº texinput style ÀÉ¡C + +2. ¤¤¤å¦r«¬ .tfm ¥H¤Î .pk ¡C + +¨ä¤¤²Ä¤@Ó±ø¥ó«Ü®e©ö¡A¤]´N¬O§Ú¦b¤W¤@¸`ªº¡u¦w¸Ë¨BÆJ¡v¤¤ªº²Ä¤G¨B©Ò´£¨ìªº¡C°£ +¦¹¤§¥~¡A§ÚÌÁÙ»Ýn¤@Ó bg5conv ªºµ{¦¡¡A¥¦t³dŪ¤J¤¤¤å .tex ì©lÀÉ¡A¸g½s½X +«áÂন .cjk ½s¿é¥X¡AµM«á¤~¥æµ¹ latex ¶i¦æ²£¥Í .dvi Àɪº°Ê§@¡C + +¤ñ¸û³Â·Ðªº¬O¦r«¬ªº³¡¤À¡C´N .tfm ¦r«¬¦Ó¨¥¡A¦b¹L¥h¦w¸Ë CJK ®É¡A§ÚÌ¥i¯à¤£·| +¹w¥ý±N©Ò¦³»Ýnªº .tfm ¹w¥ý°µ¥X¨Ó¡A¦Ó¬O±Ä¥Î½u¤W²£¥Íªº¤è¦¡¡A³o®É§ÚÌ»Ýn× +§ï mktextfm, ¥H«K¦b»Ýn®É©I¥s ttf2pk ¤§Ãþªºµ{¦¡¦Û TTF ¦r«¬°µ¥X .tfm ¦r«¬¡C +¦ý²{¦b§Ų́ϥηsª©ªº ttf2pk package, ¨ä ttf2tfm µ{¦¡¥i¥H«Ü®e©ö¦a±N©Ò¦³ªº +.tfm ¦r«¬²£¥Í¥X¨Ó¡A¨Ã¹w¥ý¦w¸Ë¨ì¥¿½Tªº¥Ø¿ý¤¤¡A¦p¦¹§ÚÌ´N¤£»Ýn¥hקï mktextfm +¤F¡C¦Ó³o´N¬O¤W¤@¸`¡u¦w¸Ë¨BÆJ¡v¤¤ªº²Ä 9 ¨B©Ò°µªº¤u§@¡A¨ä©R¥Oªº·N¸q¬°: + + ttf2tfm <TTF filename> -P <platform ID> -E <encoding ID> <TFM filename> + +¨ä¤¤ <TTF filename> ÀɦW®æ¦¡¬° <name>XX.tfm, <name> ¬O¦r«¬¦WºÙ¡A XX ¬O¤@Ó +¼Æ¦r¡A¥Nªí¤F¸Ó¦r«¬ encoding ªº§Ç¸¹¡A¨Ò¦p: moekai03.tfm ¡C¹ï©ó¤@®M§¹¾ãªº +¦r«¬¡A¨ä§Ç¸¹¥²¶·¨¬¥H¥]§t©Ò¦³ªº¤¤¤å¦r¡A¥H Big5 ½X¬°¨Ò¡A¨ä§¹¾ãªº§Ç¸¹¬O±q 01 +¨ì 58, ¤]´N¬O¥²¶·²£¥Í 58 Ó¦r«¬ÀÉ¡C¦b·sª©ªº ttf2tfm ¤¤¡A±z¤£»Ýn©I¥s ttf2tfm +58 ¦¸¡Aª`·N¨ì¦b¦w¸Ë¨BÆJ¤¤¡A <TFM filename> ³o¤@ӰѼƬO + + moekai@Big5@ + +¨ä¤¤ moekai §Y¬° <name>, ¦Ó @Big5@ ¬O«ü§Ç¸¹ªº³¡¤À¡A¦b³oùجO¥Î¤@Ó +Big5.sfd ³oÓÀɨӥN´À (µ{¦¡·|¦Û°Ê¥[¤J .sfd ³oÓªþÀɦW) ¡Aª`·N¨ì¦b¡u¦w¸Ë +¨BÆJ¡v¤¤ªº²Ä 8 ¨B§Ṳ́w±N³oÓÀɮ׫þ¨ì¤F¾A·í¦ì¸m¡A¦Ó¸ÓÀÉ´N°O¿ý¤F Big5 ½X¦r +«¬©Ò¦³§Ç¸¹µ¥¬ÛÃö¸ê°T¡A ttf2tfm ¥i¥Hª½±µ°Ñ¦Ò³oÓÀɪº¤º®e±N©Ò¦³ªº¦r«¬¥þ³¡ +°µ¥X¨Ó¡C + +¦b ttf2tfm ¤u§@§¹¦¨¤§«á¡A¥¦·|¦L¥X¤@¦æ°T®§ (¨£¡u¦w¸Ë¨BÆJ¡v²Ä 9 ¨B)¡A³o¤@ +¦æ¬Oµ¹ ttf2pk °Ñ¦Ò¥Îªº¡A¥²¶·¼g¤J ttf2pk ±MÄݪº³]©wÀÉ ttfonts.map ¤¤¡C³Ì +«á¡A§Ú̦A±N©Ò¦³ªº .tfm ¦r«¬²¾¦Ü¾A·í¥Ø¿ý¡A§Y§¹¦¨¤F .tfm ¦r«¬ªº³¡¤À¡C + +¹ï©ó .pk ¦r«¬¡A¥Ñ©ó³oùØÁÙ²o¯A¤F¤£¦Pªº¦r«¬¤j¤p¦³¤£¦PªºÀÉ¡A§Ú̵Lªk¹w¥ýª¾ +¹D»Ýn¨º¨Ç¤j¤pªº¦r«¬¡A¦]¦¹¦b¦¹§Ú̱ĥΤF½u¤W²£¥Íªº¤è¦¡¡A»Ýn®É¤~²£¥Í pk +¦r«¬¡C©ó¬O¡A§ÚÌ¥²¶·×§ï mktexpk¡A¦b»Ýn¤¤¤å¦r«¬®É©I¥s ttf2pk ¦Û TTF ¦r +«¬±N©Ò»Ýªº¦r«¬°µ¥X¨Ó (¨£¡u¦w¸Ë¨BÆJ¡v²Ä 11 ¨B)¡C + +pk ¦r«¬ÀɦWªº®æ¦¡¦p¤U: + + <name>XX.<SSSS>pk + +¨ä¤¤ <name> ¬O¦r«¬¦W¡A XX ¬O encoding §Ç¸¹¡A <SSSS> §Y¬°¸Ó¦r«¬ªº¤j¤p (dpi)¡C + +ÁÙ¦³¤@ÂI¡A¥Ñ©ó·sª©ªº ttf2pk ¤w¯à¨Ï¥Î kpathsea lib ¨Ó·j´M¥¦©Ò»ÝªºÀɮסA¥] +¬A¦r«¬ÀÉ¥H¤Î³]©wÀÉ¡A¦Ó³]©wÀɪº³¡¤À§ÚÌ´N¥²¶·±N¥¦ªº¦ì¸m¼g¦b +/etc/texmf/texmf.cnf ¤¤¡A¨Ã¥Bn¶] mktexlsr ©Î texconfig «á (¨£¡u¦w¸Ë¨BÆJ¡v +ªº²Ä 8 ¨B»P²Ä 10 ¨B)¡A¦p¦¹ kpathsea lib ¤~¯à§ä¨ì³]©wÀɪº¦ì¸m¡C + + +ºî¤W©Òz¡A¥H¤U§Ú´yz¤@¤U¾ãÓ LaTeX/CJK ªº compile ¹Lµ{¡A°µ¬°Á`µ²¡C + + +1. °õ¦æ bg5latex, ³o¬O¤@Ó script, ¥¦©I¥s bg5conv Ū¤J .tex ì©lÀÉ¡A¨ÃÂà + ¦¨½s½X«áªº .cjk ÀÉ¡C + +2. bg5latex ±µµÛ©I¥s latex, Ū¤J .cjk ÀÉ¡A¦b§P©w¥¦»Ýn CJK package ®É¡A + ¦p: + + \usepackage{CJK} + \begin{CJK*}{Bg5}{kai} + + «KŪ¤J¤@¨t¦Cªº CJK texinput style ÀÉ¡A¨Ã¸ò¾Ú Bg5, kai, Ū¨ú + .../Bg5/c00kai.fd ³oÓ¦r«¬©w¸qÀÉ¡C + +3. ®Ú¾Ú c00kai.fd Àɪº©w¸q¡A latex ª¾¹D¤¤¤åªº³¡¤À»Ýn moe_kai ¦r«¬¡C©ó¬O¡A + ¦b²£¥Í .dvi Àɪº¹Lµ{¤¤¡A¥¦®Ú¾Ú special.map Àɪº¤º®e¡A¦b¾A·íªº¸ô®|¤¤´M§ä + ©Ò»Ýªº .tfm ÀÉ¡AY§ä¤£¨ì«h©I¥s mktextfm ¨Ó²£¥Í¥¦¡C¥Ñ©ó¨Æ¥ý§Ṳ́w¦w¸Ë¦n + ©Ò¦³ªº .tfm ¦r«¬¡A¦]¦¹³o¤@¨B¤£»Ýn©I¥s mktextfm §Y¥i§¹¦¨¡C + +4. .dvi ÀÉ¥X¨Ó«á¡A°²³]§ÚÌn¥Î dvips ¨Ó²£¥Í .ps ÀÉ¡A«h dvips ¦bµo²{»Ýn + moekai ¦r«¬®É¡A·|¸ò¾Ú special.map ªº¤º®e¡A¨ì¾A·íªº¸ô®|¥h´M§ä moekai*pk + ÀÉ¡C + +5. Y§ä¤£¨ì¡A«h¥¦·|©I¥s mktexpk ¨Ó²£¥Í¦r«¬ÀÉ¡Cקï¹Lªº mktexpk ¦bµo²{©Ò»Ý + ²£¥Íªº¦r«¬¬O moekai ®É¡A«K·|©I¥s ttf2pk ¨Ó¤u§@¡C + +6. ttf2pk º¥ý³z¹L kpathsea lib, ÂÇ¥Ñ /etc/texmf/texmf.cnf ¤¤ªº³]©w§ä¨ì¨ä + ³]©wÀÉ ttfonts.map ªº¦ì¸m¡AŪ¤J³]©wÀÉ«á¡A®Ú¾Ú moekai ¨º¤@¦æ¡A¥¦ª¾¹D¤F: + + a. ©Ò»Ýnªº¦r«¬¼Ëª©¬° $TEXMFLOCAL/fonts/truetype/moe_kai.ttf ¡C + + b. ¸Ó¦r«¬ªº encoding §Ç¸¹¸ê®Æ¦s©ñ¦b»P ttfonts.map ¬Û¦P¥Ø¿ý¤Uªº Big5.sfd + Àɤ¤¡C + + c. ¨ä¥L¦p Platform ID »P Encoding ID ªº¸ê°T¡C + + ttf2pk §Y§Q¥Î³o¨Ç¸ê°T¡A±N©Ò»Ýªº moekai*pk ÀÉ°µ¥X¨Ó¡A¨Ã¥æ¥Ñ mktexpk ±N¸Ó + ÀÉ©ñ¨ì¥¿½Tªº¸ô®|¤U¡A¥H³Æ¤é«á«½Æ§Q¥Î¡C + +7. §¹¦¨¡C + + diff --git a/language/chinese/CJK/cjk-4.8.5/doc/cjk-enc.txt b/language/chinese/CJK/cjk-4.8.5/doc/cjk-enc.txt new file mode 100644 index 0000000000..67ad57fc4f --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/cjk-enc.txt @@ -0,0 +1,438 @@ +This is the file cjk-enc.txt of the CJK macro package ver. 4.8.5 +(16-Oct-2021). + +cjk-enc.el +---------- + +Mule, the multilingual Emacs, is one of the most powerful editors available +for Unix systems like Linux. It is capable to edit and display texts which +are, among other scripts, written in various CJK languages; as an example +you can have traditional and simplified Chinese at the same time. Mule is +distributed under the GNU Public License; it is now integrated into the +source code emacs 20. + +The CJK package enables LaTeX to do the same (with some restrictions, see +below), but the interface is different. Mule uses additional bits internally +to store the encoding of a character, whereas the CJK package needs \CJKenc +macros to select encodings. + +Now enters cjk-enc.el . This small output filter for Mule (written in Lisp) +converts text as entered in Mule into a form TeX can understand. Double-byte +encodings which can be processed by CJK are usually converted into EUC form +preceded by \CJKenc{...} macros, single-byte encodings (Latin-1, etc.) into +equivalent LaTeX 2e macros (e.g., Latin-1 character 0xC4 (umlaut A) into +\"A). Some of these macros are undefined by default in standard LaTeX 2e +because CM or EC fonts have no characters for it. Vietnamese, Cyrillic +scripts, Modern Greek, and Thai are also supported (see below). + +cjk-enc.el comes in two versions. + + . An old version for Mule 2.3 with limited capabilities since it is no + longer supported (but updated if necessary). + + . A new version with enhanced commands which works with emacs versions + >= 20.3 and xemacs versions >= 21.1 (the latter without Thai support). + +Support for emacs versions < 20.3 has been dropped. Please upgrade. In the +following, `Mule' is used for all emacs flavours. + + +Installation +------------ + +To load cjk-enc.el into Mule, put the following line into your .emacs file: + + (load-library "cjk-enc") + +this assumes that cjk-enc.el is in a directory searched by Mule. A good +place for it is the site-lisp subdirectory (e.g., +/usr/local/share/emacs/site-lisp). + +After loading, a new (output) encoding scheme is defined: `*cjk-coding*'. +[This is called `cjk-coding' under emacs 20---Please note further that the + prefix for Mule commands has changed to `C-x RET' for emacs 20 instead of + `C-x C-k'.] + +Note: `*cjk-coding*' (`cjk-coding') can't be used to save documents! It + is intended only to create the *.cjk file which is then directly + processed by LaTeX. + + +Usage (LaTeX 2e part) +--------------------- + +A sample of a multilingual document (muletest.{tex,cjk,dvi,pdf}) can be +found in the examples subdirectory (only the TEX file is in the src package +of CJK, the other files are in the doc package). + +European languages based on the Latin script: + + Simply write your documents! Characters like `u umlaut' or `c hacek' are + converted into LaTeX 2e macros. You don't need to write "u or something + else (nevertheless it's possible). It is recommended to use LaTeX 2e's + T1 font encoding scheme to have a) most of the European diacritics + available and b) correct hyphenation for accented characters. + + The lower half of JIS X 0201 is treated similarly. + + Note that the default CM fonts of LaTeX are OT1 encoded. You should + rather use the EC fonts which are based on T1 (or virtual T1 fonts + mapped onto OT1). + + For correct hyphenation you still have to change languages, thus a + system like Babel should be used additionally. + +CJK languages: + + Don't start a CJK (or CJK*) environment! cjk-enc.el does this + automatically for you at the `\begin{document}' command. It also inserts + \CJKspace and \CJKnospace commands (\CJKspace for Korean, \CJKnospace + for all other CJK scripts; but see the section `Problems' below also). + + In CJK.enc the default font family for all encodings is `song' (except + for Korean Hangul where it is `mj'). Two commands are available to + change the CJK font encoding and family in combination with cjk-enc.el + (see CJK.txt and commands.txt for a detailed description): + + \CJKencfamily[<fontencoding>]{<encoding>}{<family>} + Change family for a certain encoding (and fontencoding). + + \CJKfontenc{<encoding>}{<fontencoding>} + Change fontencoding for a certain encoding. + + The second command is primarily for users who use Japanese DNP fonts + (see the Japanese documentation subdirectory for further details) or + Korean HLaTeX fonts. + + For the upper half of JIS X 0201 encoding, the katakana range of the + SJIS encoding of the CJK package is used. + +Vietnamese: + + Vietnamese uses accented characters not contained in EC or CM fonts. To + assure proper kerning you must explicitly activate T5 font encoding + (this can't be done automatically) to access a Vietnamese font. + + The VnTeX bundle contains Vietnamese fonts and support files; it also + defines T5 encoding. It is available from http://vntex.sf.net. + (Note that the now obsolete vncmr package is no longer supported.) + +Russian and other languages using the cyrillic script: + + Cyrillic LaTeX encodings (T2A, T2B, T2C, and X2) are now supported + within the LaTeX 2e distribution (starting with version 1998/12/01). + Cyrillic fonts and auxiliary files supporting these encodings are + available at CTAN from fonts/cyrillic and macros/latex/contrib/t2); most + TeX distributions already come with Cyrillic fonts installed. + + The current implemention needs a lot of temporary disk space for + Cyrillic scripts (e.g., a 100 kByte document written only with Cyrillic + letters has an intermediate output file of about 800 kByte). On the + other hand, it is still possible to recognize the Cyrillic characters + name macros in the log file in case of error messages---if I used the + shortest possible representation, only numbers would be visible, and the + size of the intermediate output file would still have 500 kByte... + + You must explicitly activate one of the T2* (or X2) encodings for + Cyrillic. Russian needs T2A. + +Greek: + + You must use the LGR encoding and fonts as defined in the Babel package: + ISO-8859-7 characters are mapped back to ASCII characters which are then + displayed as Greek characters, using the ligature mechanism extensively. + +Thai: + + It is implemented only in the emacs 20.3 version of cjk-enc.el. Instead + of using an external program, Ken'ichi Handa has written thai-word.el + which implements the word-breaking algorithm in Lisp, based on the the + C-TTeX package version 1.15 written by Vuthichai Ampornaramveth + <vuthi@ctrl.titech.ac.jp>. `thai.sty' is still very rudimentary---any + improvements are welcome. + + The used encoding is C90 (this is the only case where you have to + specify a `C' encoding directly, either by using the `thaicjk' language + for Babel or by saying `\DeclareFontEncoding{C90}{}{}' in the preamble); + the default fonts specified in c90gar.fd and c90nrsr.fd are taken from + the thailatex package, which can be found at + + http://linux.thai.net/plone/TLWG/thailatex + + You should use version 0.3.5.1 or newer. Note that this package is not + compatible with CJK; neither its metric files nor its LaTeX support + files should be used. Please read the file thaifont.txt for details how + to install the fonts. + + Whitespace between Thai characters are always respected; newlines + together with trailing and leading whitespace are not by default. Use + \Thaispace to make trailing and leading whitespace respected also (the + opposite command is \Thainospace). Note that the space width of the Thai + font (which is usually larger than for a Roman font) is used for + whitespace between Thai words: + + Thai Thai + Thai + + is approximately translated to + + {\thaifont Thai Thai\nospaces + Thai} + + (if \Thainospace is active), whereas + + Thai\ Thai\ + Thai + + is approximately translated to + + {\thaifont Thai}{\romanfont\ }{\thaifont Thai}{\romanfont\ } + {\thaifont Thai} + + To improve appearance, \Thaiglue (which is defined in MULEenc.sty) is + used as intercharacter glue; this value can be modified similarly to + \CJKglue. + + +Usage (Mule part) +----------------- + +Simply load your document into Mule and call cjk-write-file (which is +defined in cjk-enc.el) to create a preprocessed file. For most files this +file's name is formed by replacing the extension with `.cjk'. However, +BibTeX files are given the extension `-cjk.bib' because the BibTeX program +requires `.bib' as the extension. This also avoids conflicts with the CJK +file produced by a LaTeX file by the same name. Because of this you should +use the command \CJKbibliography{foo} in your LaTeX source file (which +finally expands to foo-cjk.bib). A similar macro is \CJKinclude{bar} which +expands to `bar.cjk' instead of bar.tex. Finally, you can say +\CJKinput{foo.bar} to input file `foo.bar'; if the file name has no +extension, `cjk' is appended: \CJKinput{foo} loads `foo.cjk'. + +cjk-write-file is the only user function provided by cjk-enc.el for +Mule 2.3. + +If you want to process a file which includes some other files, use the +function cjk-write-all-files in combination with \CJKinclude, \CJKinput, and +\CJKbibliography. If used interactively, you have to supply a file name +which is then scanned for occurrences of \CJKinclude, \CJKinput, and +\CJKbibliography; all files found plus the master file are converted. + +Example: + + `a.tex' contains: + + \CJKenc{Bg5} + Chinese text + + `b.tex' contains: + + \CJKenc{JIS} + Japanese text + + `c.tex' contains: + + \CJKenc{UTF8} + Some Unicode text + + `master.tex' can now include the files as follows: + + Some Korean text + + \CJKinput{a} + \input{b} + \input{c} + + Calling cjk-write-all-files automatically converts `master.tex' and + `a.tex'. + +The functions batch-cjk-write-file and batch-force-write-file are intended +to be used in Makefiles; please read the function documentation for more +details. + +It is recommended that you assign cjk-write-file or cjk-write-all-files to a +key (e.g., with global-set-key) in your `.emacs' configuration file. + + +Unicode encoding +................ + +Note that the forthcoming Emacs 22 has no native Unicode support. Instead, +Unicode encoded date is mapped onto the internal character sets of Emacs; +this process heavily depends on the selected (Emacs) language environment. +For example, if you select `Chinese-BIG5', Emacs first tries to map Unicode +characters to Big 5. If that fails, it tries the GB 2312 character set, then +KS X 1001, and so on. To get typographically satisfying output you would +need identical font shapes for different CJK encodings, a very unlikely +situation. + +For this reason it is strongly recommended to *not* use data files encoded +in UTF-8 with cjk-enc.el. Instead, UTF-8 should be directly handled by a CJK +environment (i.e., `\begin{CJK}{UTF8}{...}'). + + +Usage with AUC TeX +------------------ + +Append the data between >>> and <<< to your .emacs file to have special CJK +support within AUC TeX: + + +>>> + + (defun TeX-run-CJK-LaTeX (name command file) + "Create a process for NAME using COMMAND to format FILE with CJK/LaTeX." + +; use next code line for Mule instead of the (balanced) expression +; containing `cjk-write-all-files' +; -- no multifile document support! +; (cjk-write-file) + + (cjk-write-all-files (concat (TeX-master-directory) + (file-name-nondirectory file) + ".tex")) + (TeX-run-LaTeX name command file)) + + ;; replace the error source file `*.cjk' with `*.tex' (and `*-cjk.bib' + ;; with `*.bib'), then C-c ` can be used as usual. + + (add-hook 'TeX-translate-location-hook + '(lambda () + (if (string-match "\\(.*\\)\.cjk$" file) + (setq file + (concat + (substring file + (match-beginning 1) + (match-end 1)) + ".tex")) + (if (string-match "\\(.*\\)-cjk\.bib$" file) + (setq file + (concat + (substring file + (match-beginning 1) + (match-end 1)) + ".bib")))))) + + (require 'tex) + (add-to-list 'TeX-command-list + '("CJKLaTeX" "%l '\\nonstopmode\\input{%s.cjk}'" TeX-run-CJK-LaTeX nil t)) + +<<< + + +To process a CJK document with AUC TeX use C-c C-c on your LaTeX source file +and select CJKLaTeX as the formatting command. It also works with multiple +files; only modified files are converted (again). + +Note that only the master file is processed with cjk-enc and scanned for +\CJKinclude and \CJKinput! + +If you mainly write text in Japanese or Chinese, consider the use of +cjkspace.el or cjktilde.el for inserting a tilde character (which has been +redefined to a shibuaki space) if you hit the space key. Please read the +documentation in the two files for differences. cjkspace.el works with +AUC TeX only, cjktilde.el works in every mode. + +In case you use an Emacs input method (quail) for your Asian language +(contrary to an external input method provided by the operating system), you +can add `rules' with the following code added to your .emacs file; the +special space handling is then active only when the corresponding input +method is active too. + + (add-hook 'quail-activate-hook + (function + (lambda () + (if (equal (quail-name) "chinese-py-punct-b5") + (progn + (quail-defrule " " "~") + (quail-defrule " " " ")))))) + +Replace `chinese-py-punct-b5' with your favourite input encoding. In case +you use more than one input method, repeat the above lisp code for each +method. + + +Technical notes +--------------- + +cjk-enc.el loads MULEenc.sty or CJK.sty in the first output line which +contains all needed definitions for LaTeX 2e. + +To assure working in verbatim environments, \CJKenc and the LaTeX 2e macros +are not output directly. The active character 0x7F is used to output +\CJKenc, \CJKspace, Latin characters, etc. + +CNS 1-CNS 7 and JIS2 encoded characters are output as \CJKchar macros. The +reason for this choice is the infrequency of CNS and JIS2 characters in +normal text. Since \CJKchar does not select a new binding this macro is +executed faster for single CNS and JIS2 characters. + + +Problems and Tips +----------------- + +. cjk-enc.el starts a CJK environment only if it finds at least one CJK + character in the master file; this character can appear in a comment also. + Example: + + % some Chinese text in this comment + \CJKinput{a} + \CJKbibliography{b} + +. If you need some CJK processing in the preamble you must start a CJK + environment there manually because cjk-enc.el uses the \AtBeginDocument + hook for its commands. This interferes with the \CJKspace/\CJKnospace + insertion mechanism of cjk-enc.el because the Lisp code always assumes a + single, global CJK environment. A similar problem exists if you start a + new language in a comment. To overcome this, simply insert a \CJKspace or + \CJKnospace command (whatever appropriate) right after the + `\begin{document}' macro to synchronize again with cjk-enc.el . + + Example: + + \documentclass{article} + + \begin{CJK*}{}{} + some Japanese macro stuff + \end{CJK*} + + \begin{document} + \CJKnospace + more Japanese text + ... + +. Another consequence of the \CJKspace/\CJKnospace insertion mechanism of + cjk-enc.el is that in cases like + + Latin_text Chinese_text\ Latin_text + + you can't omit the final `\ ' after the Chinese phrase---only for Korean + words it is not necessary to use a (protected) space. + +. Usually, Emacs can automatically recognize the encoding of a given file + (e.g., using a language environment or setting `file-coding-system-alist'; + please read the chapter `Recognizing Coding Systems' in the emacs info + files for further details). But sometimes this fails (e.g., to find out + whether a text is in latin-1 or in, say, latin-3 is impossible), and you + have to use a file variable to define the encoding. + + Here an example how to specify `Big 5' encoding for a TeX input file (the + following lines are to be inserted at the very end): + + % Local Variables: + % coding: big5 + % End: + + If AUCTeX already has created local variables like `TeX-master', simply + add the line `coding: big5' and you are done. + +. Another useful local variable for AUCTeX is `TeX-command-default': + + % Local Variables: + % TeX-command-default: "CJKLaTeX" + % End: + + selects `CJKLaTeX' as the default command if you type `C-c C-c'. + + +---End of cjk-enc.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/commands.txt b/language/chinese/CJK/cjk-4.8.5/doc/commands.txt new file mode 100644 index 0000000000..0cfba3263e --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/commands.txt @@ -0,0 +1,388 @@ +This is the file commands.txt of the CJK macro package ver. 4.8.5 +(16-Oct-2021). + +Here is a list of all commands of CJK. + + +\begin{CJK}[<fontencoding>]{<encoding>}{<family>} +... +\end{CJK} + + This starts a CJK environment. + + Possible values for <encoding> are: + `Bg5', `Bg5+', `GB', `GBt', `GBK', `JIS', `SJIS', `KS', `UTF8', + `EUC-TW', `EUC-JP'. + + [`CNS1'-`CNS7', `CEFX', `CEFY' are also possible but make no + sense. These are used with CEF and Mule. The same holds for + `JIS2'.] + + Possible values for <fontencoding> are: + `' (empty, the default), `pmC' (for Bg5, GB, GBt, JIS, KS), + `dnp' (for JIS and SJIS), `wn' (for JIS), `HL' (for KS). + + Possible values for <family> are defined in the FD files which must + be configured for the available fonts. If empty, the default value + (`mj' for KS encoding, `song' for the rest) is used. + + Families can be changed with \CJKencfamily on a per-encoding base + and with \CJKfamily for all encodings. \CJKfamily overrides + \CJKencfamily; to have \CJKencfamily active you must assure that the + `family' parameter of the CJK environment is empty or that + \CJKfamily is defined as empty (inside the environment). + + Font encodings can be changed on a per-encoding base with + \CJKfontenc; \CJKenc always uses the specified font encoding. + + The hook \CJKhook is called on initializing the environment (used + by cjk-enc.el and VTeX, for example). + + Newlines and spaces after a CJK character are retained. If you want + to suppress a newline, finish the line with `%'. + + See also \CJKspace and \CJKnospace. + + +\begin{CJK*}[<fontencoding>]{<encoding>}{<family>} +... +\end{CJK*} + + The same as the CJK environment except that newlines and spaces + after a CJK character are swallowed. If you want a space after a CJK + character you must protect it (e.g., use `\ '). + + See also \CJKspace and \CJKnospace. + + +Text containing CJK characters should start with a fresh line (in the source +file, not in the output) after activating a CJK environment because TeX has +already read in the characters of the current line as non-active characters. + +You can stack CJK environments (i.e., saying \begin{CJK}...\end{CJK} again +inside of a CJK environment) if you have not set the `global' package +option, but it is possible that TeX's `save size' overflows. Use \CJKenc, +\CJKfontenc, \CJKfamily, and \CJKencfamily instead. See CJK.txt for CJK +package options which modify the scope of the CJK environment. + +To have different encodings/families on the same input line you must use +\CJKenc, \CJKfontenc, \CJKfamily, and/or \CJKencfamily. + +If you use cjk-enc.el, you should NOT open a CJK (or CJK*) environment! It +is done automatically. See cjk-enc.txt for details. + + +============================================================================== + + +The following commands are defined (or make sense) only inside of a CJK or +CJK* environment (except \CJKbold, \CJKnormal, \CJKencfamily, \CJKfontenc, +\CJKverbatim, \CJKhangul, \CJKhanja, \CJKhwkatakana, \CJKnohwkatakana, +\CJKaddEncHook, \CJKtolerance, \CJKboldshift). + + +\CJKcaption{<caption>} Load <caption>.cpx, a language/encoding specific + caption file. You need the SCRIPT style files of the + koma-script package to fully use them (see CJK.txt + for details). + + <caption>.cpx is a preprocessed version of + <caption>.cap. + + Example: + + \begin{CJK*}{Bg5}{song} + \CJKcaption{Bg5} + ... + \end{CJK*} + + +\CJKchar[<enc>]{<byte1>}{<byte2>} + Insert a CJK character literally. <byte1> and + <byte2> are the first and second byte of the CJK + character (in the selected encoding), the optional + parameter selects the encoding. You can use decimal, + hexadecimal, or octal notation. <byte1> and <byte2> + can be both in 7bit or 8bit (GL or GR) + representation. + + To select Unicode characters you must specify `UTF8' + encoding (but enter real Unicode values). If the + Unicode value is greater than U+FFFF, put the first + two bytes into the first argument, and the third byte + into the second one. + + + Examples: + + \CJKchar[Bg5]{217}{223} + \CJKchar[CNS1]{"57}{"4C} + \CJKchar[UTF8]{"02D9}{"04F} + + +\CJKenc{<encoding>} Change encoding. Contrary to \begin{CJK}{...}{...} + it is not necessary to start a new line after + \CJKenc. This command always uses the font encoding + selected with \CJKfontenc. + + \CJKenc acts globally if the `global' option is set. + + See fonts.txt for a mapping table between CJK + encoding names and the names of the FD files + finally used. + + Use the macro \CJKaddEncHook to add commands which + should be executed when a certain encoding is + selected. + + +\CJKfamily{<family>} Change family for all encodings. This command + overrides \CJKencfamily; to reactivate \CJKencfamily + say `\CJKfamily{}'. + + \CJKfamily acts globally if the `global' option is + set. + + +\CJKencfamily[<fontencoding>]{<encoding>}{<family>} + Change family for a certain encoding (and + font encoding). Can be overridden with \CJKfamily. + + The possible values of <family> are defined in the + encoding specific FD files. + + This command makes sense outside of a CJK + environment; it acts globally if the `global' option + is set. + + +\CJKfontenc{<encoding>}{<fontencoding>} + Change font encoding for a certain encoding. If you + select an encoding with \CJKenc, the font encoding + specified with \CJKfontenc for this encoding is + chosen. + + This command makes sense outside of a CJK + environment; it acts globally if the `global' option + is set. + + Example: + + \CJKencfamily{GBt}{hei} + \CJKfontenc{JIS}{dnp} + + \begin{CJK*}{Bg5}{fs} % this is equal to + % \begin{CJK*}{}{} + % \CJKenc{Bg5} + % \CJKfamily{fs} + + ... Text in Bg5 fangsong ... % c00fs.fd used + \CJKenc{GB} ... Text in GB fangsong ... % c10fs.fd used + \CJKfamily{kai} ... Text in GB kai ... % c10kai.fd used + \CJKenc{JIS} ... Text in JISdnp kai ... % c42kai.fd used + \CJKfamily{}% + \CJKenc{GBt} ... Text in GBt hei ... % c20hei.fd used + \end{CJK*} + + +\CJKindent The `classical' indentation for CJK documents is + exactly two ideographic spaces. \CJKindent sets + the paragraph indentation to this value, using + \parindent and the currently active CJK font. + + +\CJKkern To prevent a line break before a CJK character, say + \CJKkern. This command suppresses the insertion of + \CJKglue before the CJK character. + + +\CJKglue If you get overfull \hbox'es caused by CJK + characters, try to increase \CJKglue. The default + definition is + + \newcommand{\CJKglue}{\hskip 0pt plus 0.08\baselineskip} . + + \CJKglue is inserted by CJK between Chinese + characters (punctuation characters as defined in the + punctuation tables use an unbreakable glue; see + CJK.enc). You should separate non-Chinese text from + CJK characters with spaces to enable hyphenation. Or + you can say \CJKtilde. + + +\CJKtilde This command changes the definition of the active + `~' character from an unbreakable space to + + \def~{\hspace{0.25em plus 0.125em minus 0.08em}} . + + +\nbs The original meaning of `~' is preserved within \nbs, + a shorthand for the LaTeX command \nobreakspace. +\standardtilde To return to the original definition of `~' use this + command. + + +\CJKspace +\CJKnospace Switch from CJK to CJK* `mode' (\CJKnospace) or + vice versa (\CJKspace). + + +\CJKverbatim If the `verbatim' package is loaded it is possible + to improve the output automatically, namely, to + avoid breaking of overfull lines in a verbatim + environment. This command installs a hook to + suppress insertion of glue between CJK and Thai + glyphs. + + +\CJKhanja +\CJKhangul \CJKhanja deactivates the use of C61 font encoding + for hangul characters: All fonts used have C60 font + encoding. \CJKhangul is the opposite command. The + default is C61 for hangul. + + Archaic hangul elements (KS 0xA4D5-0xA4FE) and the + character KS 0xA4D4 are only accessible if \CJKhanja + is active. + + Both commands act globally if the `global' option is + set. + + These commands make sense outside of a CJK + environment. + + +\CJKhwkatakana +\CJKnohwkatakana \CJKnohwkatakana deactivates the use of the C49 + font encoding and maps half-width katakana + characters to full-width glyphs instead. + \CJKhwkatakana (the default) is the opposite + command. + + Both commands act globally if the `global' option is + set; they have only effect for SJIS input encoding. + + These commands make sense outside of a CJK + environment. + + +\CJKtolerance If you get overfull \hbox'es caused by KS + characters, try to increase \CJKtolerance. The + default definition is + + \newcommand{\CJKtolerance}{400} . + + Increasing \emergencystretch may help also. + + This command makes sense outside of a CJK + environment. + + +\CJKuppercase If Big 5, SJIS, Bg5+, or GBK characters are used + non-preprocessed, the LaTeX command \MakeUppercase + is disabled (otherwise wrong CJK characters would be + selected). In the unlikely case that you really need + \MakeUppercase, use \CJKuppercase instead. + + This restriction does not exist for preprocessed CJK + files, i.e., files processed with Bg5conv, SJISconv, + CEF5conv, CEFSconv, extconv, or cjk-enc.el, thus + \CJKuppercase is not defined in these cases. + + \CJKuppercase acts globally if the `global' option + is set. + + +\begin{Bg5text} +... +/end(Bg5text) + +\begin{SJIStext} +... +/end(SJIStext) Enable the use of Big 5/SJIS encoded characters + which contain `\', `{', and `}' as second bytes. See + CJK.txt for a complete discussion. You need these + environments only in rare cases where + bg5conv/sjisconv or cjk-enc.el can't be used. + +\begin{Bg5+text} +... +/end(Bg5+text) + +\begin{GBKtext} +... +/end(GBKtext) Enable the use of Big 5+/GBK encoded characters + which contain `\', `{', and `}' as second bytes. See + CJK.txt for a complete discussion. You need these + environments only in rare cases where extconv can't + be used. + + +\Unicode{<byte1>}{<byte2>} +\Unicode{<byte1><byte2>}{<byte3>} + Insert a Unicode character literally. <byte1>, + <byte2>, and <byte3> are the first, second, and + third byte of the Unicode character. You can use + decimal, hexadecimal, or octal notation. This + command can only be used within UTF 8 encoding. In + all other encodings you must say + \CJKchar[UTF8]{<byte1>}{<byte2>} or + \CJKchar[UTF8]{<byte1><byte2>}{<byte3>} instead. + + + Examples: + + \Unicode{"23}{"45} + \Unicode{"25E}{"9A} + +\CJKCJKchar +\CJKhangulchar +\CJKlatinchar These commands control the handling of + intercharacter glue. Only defined for UTF8 encoding. + \CJKCJKchar selects CJK style (using \CJKglue), + \CJKhangulchar selects hangul style (using + \CJKtolerance) and \CJKlatinchar uses none. Default + is \CJKCJKchar. + + Only 3-byte UTF-8 encoded characters (i.e., Unicode + characters in the range 0x800-0xFFFF) are affected; + two-byte encoded characters is handled as ordinary + characters (i.e., as if \CJKlatinchar were set). + + +\CJKbold +\CJKnormal These commands set and unset the \ifCJK@bold@ flag. + If set, boldface is emulated. + + Both commands are intended to appear in + \DeclareFontShape commands only (usually in FD + files); see fonts.txt for further details. + + +\CJKsymbol The CJK package uses this command instead of \symbol + to print a CJK character; it honours the + \ifCJK@bold@ flag: if set, boldface is emulated by + printing the character three times with slight + horizontal offsets. There should be hardly a reason + to ever use this command explicitly. +\CJKsymbols A similar command specific to HLaTeX font support. + It takes two characters which are then mapped to the + final glyph using TeX's ligature mechanism. + + +\CJKboldshift The horizontal shift used for imitating bold fonts. + Redefine this macro if the default value of 0.015em + is not satisfying. + + These commands make sense outside of a CJK + environment. + + +\CJKaddEncHook{<encoding>}{<body>} + This macro is primarily intended for packages. Use + it to append the code in <body> to a hook for + <encoding> which is executed each time <encoding> is + selected. For an example see CJKnumb.sty . + + +---End of commands.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/dvidrv.txt b/language/chinese/CJK/cjk-4.8.5/doc/dvidrv.txt new file mode 100644 index 0000000000..6f520d6c2d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/dvidrv.txt @@ -0,0 +1,56 @@ +Using dvidrv.btm [emTeX for DOS and OS/2] +------------------------------------------- + +This batch file does the same as mktexpk does; it is a replacement for +dvidrv.exe of emTeX which can handle ttf2pk, hbf2gf, and ps2pk additionally +(the ps2pk part is untested yet; it uses ps2pkmfj of the 4allTeX +distribution and was basically copied from a similar script, also part of +4allTeX). + +First of all, create and install a set of TFM files as described in the +INSTALL file. + +Then configure the following variables in dvidrv.btm: + + ps2pk ... set it to `yes' if you want to use this program + ttf2pk ... ditto + hbf2gf ... ditto + + pkdir ... the place where PK files created by ps2pk, ttf2pk, + or hbf2gf should go to. dvidrv.btm adds + `\modeless\XXXdpi' or `\modeless\dpiXXX' to this + string (depending on the variables `pre_dpi' and + `post_dpi') + + ttfonts ... where the TrueType fonts files reside + ttfcfg ... where the auxiliary data files of ttf2pk reside + + hbfonts ... where the HBF files reside + hbfcfg ... the place where the hbf2gf configuration files are + +The last four variables in the above list support trailing `!' and `!!' for +recursive directory searching (see the file dvidrv.doc of the emTeX package +for details). + +Alternatively, you can set these variables in the environment; please note +that no spaces are allowed before and after the equal sign, e.g., + + set foo=bar + +is OK, but + + set foo = bar + +fails. + +Rename dvidrv.exe to dvidrv.ori or something similar and copy dvidrv.btm to +a directory in the path. + +Don't forget to update the DVIDRVFONTS and TEXTFM environment variables if +necessary. + +Under OS/2 dvips calls mfjob or hbf2gf itself; under DOS it creates a batch +file which must be called afterwards. + + +---End of dvidrv.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/fdxfiles.txt b/language/chinese/CJK/cjk-4.8.5/doc/fdxfiles.txt new file mode 100644 index 0000000000..cc60d08948 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/fdxfiles.txt @@ -0,0 +1,111 @@ +This is the file fdxfiles.txt of the CJK macro package ver. 4.8.5 +(16-Oct-2021). + + +Extended font definition files +============================== + +The CJK package modifies LaTeX's font loading mechanism to input an extended +font definition file (with suffix `.fdx') immediately after a normal font +definition file (with suffix `.fd') has been loaded. A `.fdx' file is +optional. Here a list of useful commands---note that neither whitespace nor +linebreaks produce output while macros are defined in such files, which is +quite convenient. + +Immediately after selecting the proper subfont for a given input character, +the CJK package tests whether a macro + + \<encoding>/<family>/<series>/<shape>/<plane>/<code>/<direction> + +is defined. If it exists, it is executed instead of calling \CJKsymbol. + +For halfwidth katakana, the macro is called + + \<encoding>/<family>/<series>/<shape>/<code>/<direction> + +For fonts from HLaTeX the macro is called + + \<encoding>/<family>/<series>/<shape>/<byte1>/<byte2>/<direction> + +For UTF-8, only characters in the range 0x800-0x10FFFF execute the test for +this macro. + +<code>, <byte1> and <byte2> are decimal numbers; <direction> is either `v' +or `h'. + +The following commands are intended for `.fdx' files: + +o For vertical writing, \CJKvdef should be used to (globally) define the + macros described above. It always prepends `<encoding>/<family>/'. + Example from c00bsmi.fdx: + + \CJKvdef{m/n/01/1}{\def\CJK@plane{v}\selectfont\CJKsymbol{4}} + + This defines macro `\C00/bsmi/m/n/01/1/v': If glyph 1 in subfont `01' + (`bsmilp01' in this example) should be typeset, it is replaced with + glyph 4 from subfont `v' (`bsmilpv'). + + \CJKhdef is the equivalent for horizontal writing. + +o Another macro is \CJKvlet, performing a global \let. Example (again + from c00bsmi.fdx): + + \CJKvlet{bx/n/01/1}{m/n/01/1} + + This makes `\C00/bsmi/bx/n/01/1/v' the same as `\C00/bsmi/m/n/01/1/v'. + + \CJKhlet is the equivalent for horizontal writing. + +CJKvert.sty provides additional macros: + +o Glyphs which shouldn't be rotated are available with \CJKsymbolsimple. + Here an example from c10gbsn.fdx: + + \CJKvdef{m/n/01/17}{\CJKsymbolsimple{17}} + + If glyph 17 in subfont `01' (`gbsnlp01') is requested, it is replaced + with itself but unrotated. + +o Some correction parameters are available to position glyphs of a given + font (i.e., all subfonts) while \CJKvert is active. + + \CJKvdef{norotate}{} + + The default of CJKvert.sty is to rotate all glyphs using the graphicx + package. If `norotate' is present in a `.fdx' file, glyphs accessed + with \CJKsymbol are not rotated. `fullheight', `height' and `offset' + are used only if `norotate' is not set. + + \CJKvdef{fullheight}{<dimension>} + + If defined, it sets the full height (height plus depth) of all CJK + glyphs accessed with \CJKsymbol to <dimension>. In most cases this + value is 1em. + + \CJKvdef{height}{<dimension>} + + If defined, it defines the height of all CJK glyphs accessed with + \CJKsymbol. Consequently, the depth is set to `fullheight - height'. + For example, the AFM file for `bsmilp01' gives 879 PS units for the + `Ascender' value. Since 1em is 1000 PS units, a proper value for + the `height' parameter is 0.88em. + + \CJKvdef{offset}{<dimension>} + + If defined, shift the (rotated) glyphs accessed with \CJKsymbol + vertically by <dimension>. + + \CJKvdef{simpleoffset}{<dimension>} + + If defined, shift all glyphs accessed with \CJKsymbolsimple vertically + by <dimension>. + +o The `offset' parameter is available to position glyphs of a given + font (i.e., all subfonts) while \CJKhorz is active. + + \CJKhdef{offset}{<dimension>} + + If defined (and \CJKhorz being active), shift the glyphs accessed + with \CJKsymbol vertically by <dimension>. + +---End of fdxfiles.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/fonts.txt b/language/chinese/CJK/cjk-4.8.5/doc/fonts.txt new file mode 100644 index 0000000000..0e07dcd46b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/fonts.txt @@ -0,0 +1,311 @@ +This is the file fonts.txt of the CJK macro package ver. 4.8.5 +(16-Oct-2021). + +The fonts +--------- + +This file describes how to set up CJK fonts inside of LaTeX 2e. For a +description how to install TrueType or bitmap fonts please refer to the +INSTALL file. + + +CJK.sty uses NFSS (New Font Selection Scheme, part of LaTeX 2e) which has +some advantages over the font selection offered with pmC (for plain TeX and +LaTeX 2.09): + + o TeX fonts are loaded only on demand. This is especially useful with + Asian logographs. If you have e.g., three Chinese characters in your + text, pmC must load the whole Chinese font (about 85 TeX subfonts), + whereas LaTeX 2e loads only three subfonts normally. + + o As long as the limit of 256 TeX fonts is not exceeded, you can use + as many CJK fonts as you like (e.g., simplified and traditional + Chinese characters together with Japanese fonts in different sizes) + ---pmC is limited to two sizes and can only have two CJK fonts at + the same time. + + In the web2c TeX package (for Unix) you find a patch which allows + the use of more than 256 TeX fonts (up to about 1000; this is a + standard feature of web2c 7.2 and newer versions). + + Omega can use up to approx. 65000 fonts. + + o You need not care about the right size of CJK fonts in footnotes, + etc. They obey the NFSS (except encoding). + + Of course you must have access to CJK fonts. + + . Use pdftex and dvipdfmx which can handle TrueType fonts directly. + It is very easy to set up dvipdfmx for handling CJK subfonts; with + pdftex this is more complicated. See the file doc/pdf/HOWTO.txt + for more information. + + . Use fontforge to convert TrueType fonts to PS subfonts. Such + subfonts work with virtually all dvi drivers. The directory + utils/subfonts contain some scripts which help in the conversion + process. + + . Use hbf2gf for HBF pixel fonts to convert them to TFM and PK + fonts. + + . Use ttf2pk (and ttf2tfm) to convert TrueType fonts to TFM and PK + fonts. + +If you chose one font per active character as with the pmC macros, you would +waste character space (256 characters per font are possible starting with +TeX 3). Therefore CJK.sty expects the whole CJK font split in TeX subfonts +with 256 characters each. + +An example: + + GuoBiao-encoded simplified characters in song style at 12pt: + ^ ^ ^^ ^^ + + first byte second byte TeX subfont offset + ----------------------------------------------- + 0xA1 0xA1-0xFE gsso1201 0 + 0xA2 0xA1-0xFE gsso1201 94 + 0xA3 0xA1-0xE4 gsso1201 188 + 0xA3 0xE5-0xFE gsso1202 0 + 0xA4 0xA1-0xFE gsso1202 26 + 0xA5 0xA1-0xFE gsso1202 120 + . + . + . + 0xFE 0xA1-0xFE gsso1235 38 + + +To convert bitmap fonts to PK files with hbf2gf, you must get the +appropriate HBF (Hanzi Bitmap Font) header files or create if you can't find +the right one; these HBF files document CJK fonts completely. + +The HBF specification can be found here: + + http://www.ibiblio.org/pub/packages/ccic/software/info/HBF-1.1/ + +Various bitmap fonts together with HBF header files are collected here: + + http://www.ibiblio.org/pub/packages/ccic/software/fonts/ + + +The font definition files +------------------------- + +CJK fonts can be installed as easy as normal TeX fonts! (Well, probably this +is the first time you have to install a font for TeX---I strongly recommend +that you process and read the `fntguide' documentation which is part of the +LaTeX 2e base package. There you can also find a description of size +commands.) + +CJK.sty defines six new size commands: + + `CJK' corresponds to `' (empty) + `sCJK' corresponds to `s' + `CJKfixed' corresponds to `fixed' + `sCJKfixed' corresponds to `sfixed' + `CJKsub' corresponds to `sub' + `CJKssub' corresponds to `ssub' . + +For dnp fonts (i.e., real dnp fonts and Watanabe dnp fonts) and Watanabe +jfonts (which both use the same font encoding scheme) two additional +commands are provided: + + `DNP' corresponds to `' (empty) + `DNPgen' corresponds tp `gen' . + +Note that PS Wadalab fonts don't use these size functions (but are still in +DNP font order). + +For poor-man's boldface these size commands have been defined: + + `CJKb', `sCJKb', `CJKfixedb', `sCJKfixedb', `DNPb', `DNPgenb' . + +They are completely identical to its counterparts without the final `b'. The +only reason to use them is to make the fifth parameter of \DeclareFontShape +for bold series different from the one for medium series (LaTeX2e uses this +parameter as a macro name to execute loading-settings, thus they must not be +equal). + +The difference between the size functions just introduced and the original +commands defined by LaTeX 2e is that a CJK size function defines a class of +fonts: if you say as an example + + \DeclareFontShape{C00}{song}{m}{n}{<6> <7> <8> sCJKfixed * b5so07}{} , + +LaTeX 2e searches for fonts named b5so0701 - b5so0755 if the font size is 6, +7, or 8 pt; in other words, the CJK size functions append two digits to the +font name to select the proper subfonts. These digits are defined in the +`\CJK@...Encoding' macros; the macro \CJK@plane holds the current value (in +pmC compatibility mode and for UTF8 encoding, \CJK@plane holds hexadecimal +numbers; see JISdnp.enc for the dnp subfont names which are again +different). + +Here a more detailed example: + + \DeclareFontFamily{C10}{fs}{} + + \DeclareFontShape{C10}{fs}{m}{n}{<-> CJK * gsfs14}{} + \DeclareFontShape{C10}{fs}{bx}{n}{<-> CJKb * gsfs14}{\CJKbold} + +This defines a GB encoded font (LaTeX font encoding `C10') which has +fangsong shape (fs) in medium series (m) and emulated bold extended (bx) +series. The names of the subfonts are gsfs1401 - gsfs1432; all sizes are +available. (This is actually a font definition for a bitmap font which +corresponds to a size of 14pt if the printer resolution were 300 dpi; hbf2gf +magnifies it to any desired size.) + +The corresponding CJK environment would be + + \begin{CJK*}{GB}{fs} + ... + \end{CJK*} . + +To be consistent with the CJK package it is recommended that for each font +shape `m' and `bx' series are defined (some PS font styles from PSNFSS +define `b' instead of `bx'; in this case you should add a font substitution +entry in the FD file). The default CJK FD files define a `song' shape for +each encoding except for KS so that + + \begin{CJK*}{your-encoding}{} + ... + \end{CJK*} + +works (note the empty last parameter). See below for an additional reason. + +Here a table of the CJK (font) encodings and the corresponding NFSS font +encodings. + + Chinese: Bg5 C00 + Bg5pmC C01 + Bg5+ C09 + + GB C10 + GBpmC C11 + GBK C19 + + GBt C20 + GBtpmC C21 + + CNS1-7 C31-37 + + Japanese: JIS C40 + JISpmC C41 + JISdnp C42 + JISwn C43 + + JIS2 C50 + JIS2dnp C52 + + SJIS -> kana C49 (additionally) + + Korean: KS -> hanja C60 + -> hangul C61 + KSpmC C62 + KSHL -> hangulHL C63 + -> symbolHL C64 + -> hanjaHL C65 + + Unicode: UTF8 C70 + + CEF: CEFX C80 + CEFY C81 + + [Thai: C90] + + +Some remarks: + + o An NFSS font encoding for the CJK package consists of the letter `C' + followed by two digits; the first represents the CJK (input) + encoding, the second the CJK font encoding. Some CJK encodings need + more than one NFSS encoding to fully represent all characters. + + Note: Since LaTeX version 1996/12/01, the name of an FD file + consists only of lowercase letters, e.g., c00fs.fd. + + o You can't use the NFSS encodings (as defined above) directly! You + should always use the CJK interface (the exception is Thai; please + read cjk-enc.txt and thaifont.txt for details). + + o According to the NFSS rules the family name must not be longer than + five characters. In early versions of CJK the family `fangsong' was + used. This is no longer allowed and has been replaced with `fs'. + + This restriction is mainly for ancient operating systems like MS-DOS + which are limited to 8.3 filenames; today, there is no reason any + more to artificially shorten the family name. + + o If you declare an NFSS font encoding in the standard way the + corresponding FD file for the default font is loaded. Since a font + encoding can be defined only in the preamble, all CJK font encodings + must be registered before the document starts even if you use only + one or two encodings. For the CJK package this would cause the + loading of almost 30 font definition files (see the table above) + which is inacceptable. + + To avoid this overhead NFSS is faked with some rudimentary + definitions just enough to pass the NFSS tests of LaTeX 2e. Of + course this has a disadvantage: an unknown CJK family causes an + error instead of switching to the fallback family usually defined + with \DeclareFontSubstitution. Nevertheless, replacing an undefined + series or shape works correctly. + + +Setting up cyberbit.ttf for UTF-8 encoding +------------------------------------------ + +Note 1: I strongly discourage the use of this font, especially for CJKV + scripts. The main reason is that correct glyph shapes depend on the + language; this means that a glyph representation form for a given + Unicode value looks differently in Japanese, Korean, and Chinese (a + famous example is character U+9038). Cyberbit doesn't provide such + different glyph shapes. + +Note 2: The following describes a setup for dvipdfmx only. Furthermore, it + assumes a recent TeXLive installation. + + +1. Copy cyberbit.ttf to your local TeXLive tree; a proper location is + + <TeXLive>/texmf-local/fonts/truetype/cyberbit/ + + (on e.g. Windows) or + + ~/texmf/fonts/truetype/cyberbit/ + + (on e.g. GNU/Linux) or something similar. <TeXLive> indicates the root + directory of TeXLive's texmf tree, for example C:\TeXLive2007 or + /usr/local/texlive2007. + +2. In the file <TeXLive>/texmf/fonts/map/dvipdfm/dvipdfmx/cid-x.map there is + already an entry for cyberbit.ttf. Remove the comment character in front + of the line. + +3. Change to an empty directory and create TFM files with the following call + on the command line: + + ttf2tfm cyberbit.ttf -q cyberb@Unicode@ + +4. Move all resulting TFM files to + + <TeXLive>/texmf-local/fonts/bitstrea/cyberb/ + + or + + ~/texmf/fonts/bitstrea/cyberb + + or something similar. + +5. Say + + mktexlsr + + on the command line to regenerate TeXLive's file name database. + + +That's it. Within the CJK package, the font can be activated with + + \begin{CJK}{UTF8}{song} + + +---End of fonts.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/hbf2gf.txt b/language/chinese/CJK/cjk-4.8.5/doc/hbf2gf.txt new file mode 100644 index 0000000000..6484a8c236 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/hbf2gf.txt @@ -0,0 +1,382 @@ +This is the file hbf2gf.txt of the CJK macro package ver. 4.8.5 +(16-Oct-2021). + +Using hbf2gf +------------- + +hbf2gf converts CJK bitmaps with an HBF header file into GF files. + +Additional documentation can be found in the man page utils/hbf2gf/hbf2gf.1 +(pre-formatted versions of this document can be found in the `cjk-doc' +bundle of CJK). + + +Syntax: + + hbf2gf [-q] configuration_file[.cfg] + hbf2gf [options] subfont_name x_resolution [y_scale | y_resolution] + hbf2gf -t [-q] font_name + hbf2gf --version | --help + +Options: + -q make hbf2gf quiet + -p don't create a PL file + -g don't create a GF file + -n use no resolution in extension (only `.gf') + -t test for font_name (returns 0 on success) + + +Keywords in the configuration file must start a line, the appropriate values +being on the same line separated with one or more blanks or tabs. +Environment variables names start with `$'; to get a dollar sign you must +type `$$'. + +The expansion of environment variables in hbf2gf itself (without the help of +the kpathsea library) is very limited; this feature has been carried over +from previous versions. It can't expand variables set in texmf.cnf; it also +can't handle more than one directory as the variable's value. Don't use it +except for the `pk_directory' and `tfm_directory' parameters! + +Here is an example configuration file gsfs14.cfg (please refer to hbf2gf.1 +and hbf2gf.dvi for a description of the keywords) to be run under OS/2: + +hbf_header jfs56.hbf +mag_x 1 +design_size 14.4 + +y_offset -13 +comment jianti fansongti 56x56 pixel font scaled and adapted to 14.4pt + +nmb_files -1 +tfm_files yes + +output_name gsfs14 + +checksum 123456789 + +dpi_x 300 + +coding codingscheme GB 2312-80 encoded TeX text + +pk_directory $HBF_TARGET\pixel.lj\432dpi\ +tfm_directory $HBF_TARGET\tfm\ + +rm_command del +cp_command copy +long_extension off +job_extension .cmd + + +Installation of a complete set of subfonts +------------------------------------------ + +Here are the results of a sample run of the above configuration file +(assuming that the environment variable %HBF_TARGET% points to d:\china): + + input files: jfs56.a - jfs56.e, jfs56.hbf + + program call: hbf2gf gsfs14.cfg + + intermediate files: gsfs14.cmd, gsfs1401.gf - gsfs1432.gf, gsfs14.pl + + batch file call: gsfs14.cmd + + output files: d:\china\pixel.lj\432dpi\gsfs1401.pk - gsfs1432.pk, + d:\china\tfm\gsfs1401.tfm - gsfs1432.tfm + + +[gsfs: GuoBiao simple encoded FanSong style + ^ ^ ^ ^ +It's hard to overcome the DOS restriction of 8 characters in a file name if +you need two characters as a running number...] + + +Using MakeTeXPK or mktexpk +-------------------------- + +***************************************************************************** +* * +* For teTeX >=1.0 and web2c >= 7.3.1, no patches are necessary for either * +* mktexpk or mktextfm. * +* * +***************************************************************************** + +The simpler way to create PK fonts is to apply the patches in the +utils/hbf2gf/scripts directory. In case you can't become root make sure that +the patched file is found in the path *before* the original MakeTeXPK (or +mktexpk) script. + +First of all, move the HBF files together with the bitmap font files to its +final destination which has to be added to the variables $MISCFONTS, which +can be either modified in texmf.cnf or set in the environment (please read +the kpathsea info files how to do that). Now do the same with all `.cfg' +files; the corresponding configuration variable is $HBF2GFINPUTS. + +Then, create a set of TFM files for the specified CJK bitmap font. This +should be done with the hbf2gf configuration parameters `tfm_files yes' and +`pk_files no' (to be modified in the `.cfg' files; see hbf2gf.dvi for a +detailed description of all needed keywords). After calling the produced +shell script the TFM files are installed. Note that if you change any hbf2gf +parameters which alter the appearance of the font (the metrics, to be more +exact) you must repeat this step so that TFM and PK files fit together. + +The previous step can be omitted in case you patch MakeTeXTFM or mktextfm +too so that TFM files can be created on-the-fly. + +Please note further that in case you write a new hbf2gf configuration file, +the name of that file must be the name stem of the CJK subfont (as defined +in the appropriate FD file and the hbf2gf configuration file) plus `.cfg': + + Example: + + searched: gsfs1021.pk + configuration file: gsfs10.cfg + +The final step for web2c 6.x or teTeX 0.4 is to edit texmf.cnf (the kpathsea +configuration file, usually in /usr/local/lib/texmf/web2c) and change the +two variables + + $PKFONTS.xdvi + $PKFONTS + +by appending + + :$pkdir/hbf2gf + +to define an own `mode' for hbf2gf, similar to the modes `cx', `ljfour', +etc. The TeX Directory Structure (TDS) standard suggests `modeless' for this +name which is already defined in teTeX 1.0 and web2c 7.x. + +Example: + + PKFONTS.xdvi=.:$pkdir/$MAKETEX_MODE:$pkdir/gsftopk: + $pkdir/ps2pk:$pkdir/hbf2gf + PKFONTS=.:$TEXMF/fonts//pk/$MAKETEX_MODE:$pkdir/hbf2gf + +The line break above is given for convenience only and should not appear +in the texmf.cnf file (no space before and after the `:'). + +[If you cannot become root, copy texmf.cnf into your home directory and do +the modifications there; make sure that your personal config file is found +in the search path first since web2c uses the first definition of each +variable encountered.] + +If you use hbf2gf with two parameters (as in MakeTeXPK), only one GF file +and one PL file is produced, and no batch file is created; the `pk_files' +parameter is ignored. You can control with the switches -g and -p whether a +GF or PL file is created at all. + + +Using dvidrv.btm [emTeX for DOS and OS/2] +------------------------------------------- + +This batch file does the same as MakeTeXPK and mktexpk; it is a replacement +for dvidrv.exe of emTeX which can handle ttf2pk, hbf2gf, and ps2pk +additionally (the ps2pk part is untested yet; it uses ps2pkmfj of the +4allTeX distribution and was basically copied from a similar script, also +part of 4allTeX). + +First of all, create and install a set of TFM files as described in the +previous section. + +Then configure the following variables in dvidrv.btm: + + ps2pk ... set it to `yes' if you want to use this program + ttf2pk ... ditto + hbf2gf ... ditto + + pkdir ... the place where PK files created by ps2pk, ttf2pk, + or hbf2gf should go to. dvidrv.btm adds + `\modeless\XXXdpi' resp. `\modeless\dpiXXX' to this + string (depending on the variables `pre_dpi' and + `post_dpi') + + ttfonts ... where the TrueType fonts files reside + ttfcfg ... where the auxiliary data files of ttf2pk reside + + hbfonts ... where the HBF files reside + hbfcfg ... the place where the hbf2gf configuration files are + +The last four variables in the above list support trailing `!' and `!!' for +recursive directory searching (see the dvidrv.doc of the emTeX package for +details). + +Alternatively, you can set these variables in the environment; please note +that no spaces are allowed before and after the equal sign, e.g., + + set foo=bar + +is OK, but + + set foo = bar + +fails. + +Rename dvidrv.exe to dvidrv.ori or something similar and copy dvidrv.btm to +a directory in the path. + +Don't forget to update the DVIDRVFONTS and TEXTFM environment variables if +necessary. + +Under OS/2 dvips calls mfjob or hbf2gf itself; under DOS it creates a batch +file which must be called afterwards. + + +Adjusting the font parameters +----------------------------- + +It is possible to convert bitmap fonts to PK files almost automatically. The +HBF header file already has the entry `HBF_BITMAP_BOUNDING_BOX' which +defines vertical and horizontal offsets (in pixels), but these values are +not in all cases optimal for the desired target size. If you omit `x_offset' +and `y_offset' in the CFG file, the third and fourth parameter of +`HBF_BITMAP_BOUNDING_BOX' is used (except for rotated glyphs), scaled to +design size (to say it in other words: x_offset and y_offset always apply to +the design size to be synchronous with the TFM files). + +Don't confuse scaling and magnification: Scaling here means that you choose +a (arbitrary) design size and compute scaling values (mag_x and mag_y; the +parameter names are a bit misleading) which scales the bitmap to this +particular design size at a certain (arbitrarily chosen) resolution (dpi_x +and dpi_y). Magnification means that the scaled bitmap is then magnified to +a certain target size while still using the font parameters (i.e., TFM file) +of the design size. + +In the sample, you have a 56x56 bitmap font which is scaled to 14.4pt having +a resolution of 300 dpi; here we compute the theoretical scaling value to +reach the design size (14.4pt): + + 1 pt are 300 / 72.27 = 4.1511 pixel; + 14.4 pt are 4.1511 x 14.4 = 59.78 pixel; + thus the theoretical magnification value is 59.78 / 56 = 1.0675 . + +But especially for small sizes, this may be not the best value if the font +should harmonize with, say, Knuth's Computer Modern fonts. I recommend to to +compute, say, five PK fonts, then check the CJK font with different TeX +fonts to see whether the offsets and/or the magnification value is good. The +greater the design size the finer you can control the offsets---as an +example you could use a design size of 30pt (nevertheless there is an +arbitrary compile-time constant MAX_CHAR_SIZE which limits the maximal +character size; default is 1023 pixels). + +Testing has shown that in the above example a magnification value of 1 is +better than 1.07; additionally if you use this font at 14.4pt you get the +original bitmap without any distortions introduced by scaling. + +If you have found optimal offsets, you can produce many different +magnifications of the CJK font using the same set of TFM files in analogy to +ordinary TeX fonts; as a simplification, we assume that PK files with a +resolution of XXXdpi and a design size of 10pt have the extension `.XXXpk' +(respectively come into a `XXXdpi' subdirectory)---this is the reason why in +the above example for the 14.4pt design size with 300dpi a `432dpi' target +directory has been used. Now we can use the following formula: + + your_target_size + needed_dpi = your_horizontal_resolution * ---------------- + 10.0 + +Example: Assuming that your printer has a resolution of 300 x 400dpi, +and you want 14.4pt: + + 14.4 + 300 * ---- = 432 + 10.0 + +The vertical scaling value is 400 / 300 = 1.3333. Use these values now to +call hbf2gf in METAFONT--like mode: + + hbf2gf hbf2gf.cfg 432 1.3333 + +Assuming you have created a complete set of hanja fonts (ksmj10) for 10pt +design size, the proper entry in c60mj.fd would be + + \DeclareFontShape{C60}{mj}{m}{n}{<5><6><7><8><9><10> + <10.95><12><14.4> + <17.28><20.74><24.88> CJK * ksmj10}{} + +If you use the (modified) mktexpk to create PK fonts on demand it is +sufficient to write + + \DeclareFontShape{C60}{mj}{m}{n}{<-> CJK * ksmj10}{} + +if one CJK bitmap font should cover the whole size range. + + +Compiling hbf2gf +---------------- + +You need an ANSI C compiler. + +Under Unix-like systems say + + ./configure --prefix=/usr/local/TeX \ + --with-kpathsea-include=<INCLUDEDIR> \ + --with-kpathsea-lib=<LIBDIR> + make + make install + +for a normal compilation and installation. Replace `/usr/local/TeX' with a +path to your TeX distribution. + +[Note 1: + Try to find `libkpathsea.*' on your system. Use this directory as the + argument for --with-kpathsea-lib. Then try to find `kpathsea/tex-file.h' + and use the parent directory of kpathsea as the argument for + --with-kpathsea-include. This should work in most cases. If you can't find + the library, you probably have a web2c package with statically linked + binaries. This means that you have to get the web2c sources from CTAN, + configure it with something like + + ./configure --prefix=/usr/local/TeX --datadir=/usr/local/TeX \ + --enable-shared --disable-static + + according to your setup; then change to the kpathsea directory and say + `make' and `make install' (Do the latter with caution not to overwrite + original binaries like kpsewhich). + + It even works with the source tree from the TeX Live CD! You just have + to add a proper --srcdir option to the configure script. + + Note 2: + It seems that c-auto.h created during the kpathsea library compiling + process won't be installed for some older web2c versions. You should add + it manually, i.e., copy <web2c source tree>/kpathsea/c-auto.h to the + location where the other kpathsea header files have been installed. + + Note 3: + As a last resort or for testing purposes, you can even compile hbf2gf + without any search library; a simple call to fopen() is used instead.] + + + +Use Makefile.gnu for emx + GNU make and say + + make -f Makefile.gnu + +to get a help screen with the possible options. + +[Note: It should work with djgpp too, but I haven't tested this.] + + +If necessary, `touch' hbf2gf.c (in case you don't have ctangle) to made the +time stamp of the file more recent; otherwise, the `make' program complains. + +Under some older SunOS versions, gcc (without the GNU C-library) has +problems; if possible, install the GNU C-library. Otherwise you get a bunch +of warning messages about missing prototypes which can be ignored. The only +missing function is strtoul(). If your system has gdb or some other GNU +utils, you are almost done. Search for the libiberty.a library (usually in +/usr/local/lib), copy it into the hbf2gf subdir and link it with the other +modules: + + LDFLAGS=-liberty ./configure ... + +If you don't have libiberty, replace strtoul() with strtol() in the hbf2gf.w +(or hbf2gf.c) file. + +It was reported that on the NeXT an older version of gcc has difficulties to +process the '%i' printf parameter correctly; simply replace all occurrences +with '%d' (most notably in hbf.c). + + +---End of hbf2gf.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/history.2_5 b/language/chinese/CJK/cjk-4.8.5/doc/history.2_5 new file mode 100644 index 0000000000..b09d60ea46 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/history.2_5 @@ -0,0 +1,202 @@ +This file is part of the CJK package Ver. 4.8.5 (16-Oct-2021). + +The history of the beta versions of the never released version 2.5 . +-------------------------------------------------------------------- + +Changes beta 1 -> beta 2: + hbf2gf: faster (search_min_max() removed) + feof() seems to be broken under Amiga gcc 2.6.3; replaced with + == EOF, etc. + some small bug fixes and typos + default value of target_size is now design_size (and not 10 pt) + +Changes beta 2 -> beta 3: + ttf2pk: ttfdir must now be defined only once (in MakeTeXPK/maketexp.btm) + ttf2pkl instead of ttf2pk at some places erroneously used + an updated (and modified) version of MakeTeXPK is used + Makefile under Unix erroneously used FS=MSDOS + +Changes beta 3 -> beta 4: + ttf2pk: MakeTeXPK couldn't create DC fonts correctly. + MakeTeXPK couldn't use already created .pk fonts in some cases; + you must now change the PKFONTS and PKFONTS.xdvi variable in + the kpathsearch configuration file (texmf.cnf) to add + `:$pkdir/ttf2pk' + ttf2pk.doc added + InstallFont added + hbf2gf: all float types changed to double. This makes life easier under + Amiga + pinyin.sty added + \CJKcaption command added + some caption files added. Works with the koma-script style files + included here (see below). Most of them are not complete now + wrong punctuation character offsets in Bg5.chr corrected + koma-script style files added. Note: this is only temporary until the + next official release of the koma-script package + +Changes beta 4 -> beta 5: + \CJK@enc replaced with specific encodings where possible + SJIS encoding scheme added (SJIS.enc, SJISconv.tex, etc.). Doesn't + currently work with CEF.sty + new commands \CJKCJK, \CJKhangul, and \CJKlatin for UTF8 encoding +* handling of intercharacter glue enhanced. Now there is no \CJKglue +* before and after a block of CJK characters. Note that this is a +* visually incompatible change to the previous versions of CJK! +* (see the command \CJKtilde also) + koma-script package removed (you should use the latest official release + now); caption files updated + mule2cjk added + \CJKtilde and \standardtilde added + MakeTeXPK hard linked into utils/hbf2gf + +Changes beta 5 -> beta 6: + gmulatex script added + \CJKhangul erroneously defined twice: \CJKCJK renamed into \CJKCJKchar, + \CJKhangul (in UTF 8 environment) into \CJKhangulchar, \CJKlatin into + \CJKlatinchar + the `global' option didn't work correctly; many \CJK@global's added + new command \CJKencshape to specify shapes on a per encoding base + \CJKchar didn't work in preprocessed mode + hbf2gf: new keyword `pk_files' (yes/no) + new calling mode for use with MakeTeXPK: + hbf2gf configuration_file [subfont_number resolution] + hbf2gf.cfg renamed to b5so12.cfg (MakeTeXPK needs this name) + some .cfg files added + other small changes + MakeTeXPK: taken from contrib/ttf2pk and enhanced to create CJK .pk + files on demand from bitmap files + name of the mode subdir changed from `(.../pk/)ttf2pk' to + `(.../pk/)CJK'. + maketexp.btm: similar changes as for MakeTeXPK; hard linked into + utils/hbf2gf + makettfp.btm: hard linked into utils/hbf2gf + latin-3 and latin-4 added to mule2cjk + +Changes beta 6 -> beta 7: + according to the newest LaTeX2e release, \MakeUppercase is disabled + instead of \uppercase in some cases. + a severe bug disabled Korean encoding + the encoding switching mechanism was broken; again many \CJK@global's + added + some commands which should be active only in certain encodings redefined + to work with the `global' option (Bg5text environment, \mj, etc.) + to use the Japanese DNP fonts, an encoding `JISdnp' and two size + functions (`DNP' and `DNPgen') are added +* a new unifying fontencoding scheme has been introduced: +* max. 4 characters encoding + max. 3 characters fontencoding +* examples: +* JISdnp, JISpmC, etc. +* this change causes many files to be renamed (e.g., +* Uhanja.fd->Uhanj.fd); there is also a bunch of new/redefined functions +* to support this: +* \CJKenc +* \CJKfontenc +* \CJKshape +* \CJKencshape +* CJK and CJK* environment +* SOME OF THE ABOVE CHANGES ARE NOT COMPATIBLE WITH PREVIOUS VERSIONS! + CJK characters in verbatim environments are now treated correctly + by mule2cjk. Latin-encodings still don't work there + hbf2gf: the collection of configuration files has been harmonized in + size + +changes beta 7 -> 3.0: + the protection mechanism has been completely rewritten. Encoding changes + now work in sectioning commands too. + + the pseudo-\if's has been replaced with real if's to avoid problems with + nested \if...\else...\fi constructions. + + CNS directory renamed to CEF. + + CEF macros CX, CY and U implemented. Font definition files for CX and CY + encodings added. + + CEF now works with SJIS encoding too. CEFSconv added. + + CNS.sty removed. Has been integrated into CJK.sty . + + there are now three internally used active characters: + ^^80, ^^A0: used by mule2cjk + ^^ff : used by CEFconv and mule2cjk. + we need those characters for verbatim environments. + + a new internal level introduced: + we now have + + active characters + | + +--------------> bindings (normal, preprocessed) <- new + | + active character macros + | + +--------------> encodings (GB, Bg 5, ...) + + | font encodings (none, dnp, pmC) + | + subfont selecting macros + | + +--------------> character macro sets (standard, Big 5, ...) + | + character selecting macros + + all encodings except UTF 8 now work in preprocessed mode too. + + some additional checks whether a loading of a certain binding/encoding/ + character set is neccessary. + + a new style option has been added: `active'. If activated, bindings are + local. Default is still `local' (with global bindings). You need this + option if you want to mix preprocessed text with non-preprocessed text + in nested CJK environments. This can happen if you merge texts in + various encodings. + + the offset for the roma subfont of dnp font encoding was incorrect. + + watanabe (a PD replacement of dnp fonts) font encoding for JIS added. + + \CJKchar has now an optional parameter to select the encoding. You can + also use this command with Unicode encoding; additionally you can + enter characters with or without the 8th bit set (GL or GR form) + except for SJIS, Bg5 and UTF8 encoding. + + two new size functions: `CJKsub' and `CJKssub'. They are similar to + `sub' and `ssub' except that the font substitution warnings appear + only once per CJK fontset. All .fd files updated. + + MULEenc.sty added. Is loaded automatically after a file has been + processed with mule2cjk. + + Latin encodings now work in verbatim environments also. + + switch -g from mule2cjk has been removed. It was never necessary since + `"' and `\"' in german.sty select the same macro. + + mule2cjk now inserts LaTeX2e macros (\textexclamdown, \textcent, etc.) + analogously to the latin[12].def files of the LaTeX2e distribution + (where applicable) for Latin encoded characters. + + the batch file muclatex processes mule encoded files which contain + CEF macros. + + Stephen Simpson <simpson@math.psu.edu> contributed a Bg 5 .fd file for + NTU TT fonts (ntu2cjk and ttf2pk). + + pinyin.sty didn't work in tabbing environments; the syllable \me was + missing; the syllables \Na and \na were wrongly defined (Michael E. + Deisher <deisher@enws261.eas.asu.edu>). + + pinyin.sty now accepts DC fonts too. + + all .bat and .cmd files now have LF/CR pairs as newlines. + + .bat and .cmd batch files added for all equivalent script files in the + utils directory. It might be useful to replace the TeX-coded + preprocessors with this filters since they are faster. + + all .bat and .cmd files call f_name.bat (f_name.cmd) to replace the + extension (usually .tex) with .cjk . + + hbf2gf always used 300dpi resolution if used in mf-like mode (Zhang + Zhengyou <ZhengYou.Zhang@sophia.inria.fr>). + +---End of history.2_5--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/history.txt b/language/chinese/CJK/cjk-4.8.5/doc/history.txt new file mode 100644 index 0000000000..d29a180783 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/history.txt @@ -0,0 +1,1576 @@ +This file is part of the CJK package. + + +History of the CJK package +========================== + + +Version 1.0: first release. +01-June-1994 + + +Version 1.1: new: +20-Aug-1994 \CJK@char(x) simplified. + + CJK.txt updated. + + diff.txt added. + + +Version 2.0: new: +15-Sep-1994 support for Hangul: + virtual fonts / tfm files for Hangul standard fonts. + + changed: + font selection: modified .fd-files needed: + structure of .fd-files much more simplified. + + +Version 2.1: new: +28-Sep-1994 optional parameters to CJK size functions added. + + sCJK size function added. + + CJK* environment added: spaces after CJK characters are + swallowed. + + Utility programs hbf2hbf and hbf2cjk added. + + changed: + new Big 5 encoded fonts needed (more compressed)---saves + about 13 TeX subfonts per Big 5 encoded font. + + modified example .fd-files . + + errors: + Bg5text environment to pmC-Bg5 environment added. + + pmC emulation now uses compatible font names, i.e., + wcb5a1, wcb5a2, etc. + + +Version 2.2: new: +18-Oct-1994 CJK now supports hangul and hanja together. Two different + sets of subfonts are used as defined in Uhangul.fd and + Uhanja.fd . + + CJK punctuation characters (fullwidth comma, colon, + semicolon, etc.) don't start a line. CJK opening + braces, etc., don't end a line. + + \uppercase and \lowercase is now disabled if Big 5 + encoding is active. + + \lccode's is only reset if the new `lowercase' option is + set. This function is so seldom used that I decided to + separate it from setting \uccode's. You need less save + size if `encapsulated' is used without `lowercase'. + + C source of hbf2cjk replaced with CWEB source. + .dvi files of hbf2hbf and hbf2cjk added. + C source files of hbf2hbf and hbf2cjk produced by + CTANGLE added. + + \CJKtolerance added - this command for Hangul syllables + is the pendant to \CJKglue. + + changed: + hangul environment renamed to KS. + + modified example .fd-files. + + new Hangul .vf and .tfm files. + + definition of \CJKglue changed. + + HBF API now supports HBF 1.1 (CHARS optional). + + fine-tuning to hbf2cjk added + (Sam Chiu <ccc11@cus.cam.ac.uk>). + + errors: + CJK* didn't work in sectioning commands + (Wu Guangxi <wuxi@unixg.ubc.ca>). + + +Version 2.21: errors: +25-Oct-1994 CJK* didn't suppress spaces +(only CJK.sty) (Sam Chiu <ccc11@cus.cam.ac.uk>) + + +Version 2.3: new: +15-Nov-1994 JIS coding scheme/environment added. + + pmC-KS and pmC-JIS environments added. + + CNS coding scheme added. + + hbf2gf added. + This program merges bmf2gf, hbf2cjk, and hbf2hbf; it + is about 10 times faster than hbf2cjk. + Consequently, hbf2cjk and hbf2hbf were removed. + + changed: + only \uppercase disabled (see error). + + \CJK@char, etc., simplified. + + errors: + verbatim environments didn't work in Big 5 encoding + (Lee Chun-Yu <d791013@ce.ntu.edu.tw>). + + +Version 2.4: new: +03-Jan-1995 UTF 8 (Unicode) scheme added. + + option `unicode' to hbf2gf added: if `on', a two-digit + hexadecimal number is used as a running number + starting with the value of the first byte of the first + code range. + + Bg5conv.tex added: this is a small preprocessor which + converts Big 5 encoded characters `XY' into the form + `XZZZ.' . Now you can use Big 5 encoding without the + annoying Bg5text environment. + Auxiliary files: Bg5pp.enc, pmCsmpp.enc, and + bg5latex.bat . + + changed: + new versions of emx.exe, emx.dll (ver. 0.9a) and rsx.exe + (rel. 5) + + errors: + hbf2gf sometimes drew one pixel too much + (You Rey-Jer <you@gi4.bauingenieure.uni-stuttgart.de>). + + pmC encodings didn't work + (Zhang Zhengyou <Zhengyou.Zhang@sophia.inria.fr>). + + \CJK@charToHex and \CJK@numbToHex could erroneously change + page counter (Li Yu-Ray <r82111@ew.ee.ntu.edu.tw>). + + +Version 2.5: never released; 7 beta versions published. See file + history.2_5. + + +Version 3.0 there are too many changes to be described here in full +10-Oct-1995 detail. Please reread the various documentation files and + check the file history.2_5 too. + + new: + two contributed packages: ntu2cjk and ttf2pk. + + SJIS coding scheme added. + +* a new unifying fontencoding scheme has been introduced: +* max. 4 characters encoding + max. 3 characters +* fontencoding +* +* examples: +* JISdnp, JISpmC, etc. +* +* this change causes many files to be renamed (e.g., +* Uhanja.fd->Uhanj.fd); there is also a bunch of new/ +* redefined functions to support this: +* \CJKenc +* \CJKfontenc +* \CJKshape +* \CJKencshape +* CJK and CJK* environment +* +* SOME OF THE ABOVE CHANGES ARE NOT COMPATIBLE WITH +* PREVIOUS VERSIONS! + + two fontencodings added: `dnp' for DNP fonts and `wn' + for Watanabe fonts. + + four new size functions: `CJKsub', `CJKssub', `DNP', and + `DNPgen'. + + \CJKchar has now an optional parameter to select the + encoding. You can also use this command with Unicode + encoding; additionally you can enter characters with + or without the 8th bit set (GL or GR form) except for + SJIS, Bg5 and UTF8 encoding. + + a new internal level introduced: + we now have + + active characters + | + +--------------> bindings (normal, + | preprocessed) <- new + | + active character macros + | + +--------------> encodings (GB, Bg 5, ...) + + | font encodings (none, dnp, + | pmC) + | + subfont selecting macros + | + +--------------> character macro sets + | (standard, Big 5, ...) + | + character selecting macros + + a new style option has been added: `active'. If + activated, bindings are local. Default is still + `local' (with global bindings). You need this option + if you want to mix preprocessed text with + non-preprocessed text in nested CJK environments. This + can happen if you merge texts in various encodings. + + options `dos' and `dosdebug' to makefiles added for + compiling with djgpp. + + new keywords `design_size', `target_size', `tfm_files', + and `pk_files' added to hbf2gf. If `tfm_files' + (`pk_files') is `no', creation of .tfm-files + (.pk-files) is suppressed. + + new calling mode for hbf2gf for use with MakeTeXPK: + hbf2gf configuration_file [subfont_number resolution] + + a modified MakeTeXPK (and maketexp.btm) added to process + Chinese TrueType fonts (with ttf2pk) and CJK bitmap + fonts (with hbf2gf). + + pinyin.sty for writing pinyin syllables with tones. + + \CJKtilde and \standardtilde for embedding ordinary words + in CJK text. + + new command \CJKcaption to load a caption file. + + new commands \CJKCJKchar, \CJKhangulchar and + \CJKlatinchar added to specify character handling + (glue, discretionary). Only for UTF8 encoding needed. + Default is \CJKCJKchar. + + various caption files (.cap) added to be used in + conjunction with the KOMA-script document classes. + + MULE to CJK converter added. + + changed: + the protection scheme has been completely rewritten. + Encoding changes now work in sectioning commands too. + + reorganization of source tree. + + all occurrences of utf8 changed to UTF8 including + filenames. + + all occurrences of GBs changed to GB including filenames. + +* handling of intercharacter glue enhanced. Now there is +* no \CJKglue before and after a block of CJK +* characters. Note that this is a visually incompatible +* change to the previous versions of CJK! (See the +* command \CJKtilde also.) + + the definition of the CEF encoding has changed; it uses + now HTML-macros to identify CNS codes. Various + preprocessors has been added to handle these macros. + + CNS.sty removed. Has been integrated into CJK.sty . + + if only one of the keywords `dpi_x' or `dpi_y' is given + in the hbf2gf config file the other printer resolution + is set equal to the given one. + + the key values `on' and `off' in the hbf2gf config file + are replaced with `yes' and `no'. + + errors: + if two Big 5 environments were stacked, the Bg5text + environment was defined twice causing an error + (Yang Jinn S. <v30yjs@v0sun11.ccl.itri.org.tw>). + + \CJK@punctEnc was undefined in pmC-Bg5 environment + (Yang Jinn S. <v30yjs@v0sun11.ccl.itri.org.tw>). + + pmC-Bg5 encoding did not work in preprocessed mode + (Yang Jinn S. <v30yjs@v0sun11.ccl.itri.org.tw>). + + Bg5conv.tex and CEFconv.tex/CEF5conv.tex fail under the + web2c-TeX implementation because \write commands don't + output 8bit characters. C programs which do the same + were added. + + wrong \CJK@min and \CJK@max values for some encodings. + + some punctuation characters with Big 5 encoding had wrong + offsets (Li Yu-Ray <r82111@ew.ee.ntu.edu.tw>). + + `global' option didn't work correctly. + + \CJKchar didn't work in preprocessed mode + (Rob Lahaye <lahaye@amolf.amolf.nl>). + + all .bat and .cmd files call f_name.bat (f_name.cmd) to + replace the extension (usually .tex) with .cjk . + + +Version 3.0.1 new: +20-Nov-1995 hbf2gf config files for CNS added. + + changed: + .vf and .tfm files for Hangul have been removed; they + are now part of the Hangul font packages. + + CNS font definition files modified. + + `~', if \CJKtilde has been executed, now suppresses + spaces afterwards. + + (hopefully) better installation documentation. + + ttf2pk: improved scripts. + + the font directories (for web2c) in the various + script/config files have been standardized: + + the source bitmap fonts and its HBF header files are + now assumed to be in + +/usr/local/lib/font/{china,japan,korea,...}/font_name/ + + the hbf2gf configuration files in + +/usr/local/lib/hbf2gf/ + + the TeX font files in + +/usr/local/lib/texmf/fonts/{chinese,japanese,korean,...}/font_name/pk/CJK/ +/usr/local/lib/texmf/fonts/{chinese,japanese,korean,...}/font_name/{tfm,vf}/ + + the NTU TrueType fonts in + +/usr/local/lib/font/china/truetype . + + + errors: + standard.chr redefined the altchar macros erroneously + (Patrick Tuttle <n8442161@toad.lake.cs.wwu.edu>). + + MULEenc.sty failed with german.sty in sectioning + commands. + + mule2cjk didn't work with CNS planes 3-7. + + +Version 3.1.0: new: +20-Feb-1996 MakeTeXPK now supports DC (and TC) 1.2 fonts. + + JIS supplement character set (JIS X 0212-1990) + implemented. + + hbf2gf config file j2so12.cfg (for a JIS X 0212 font) + added. + + New parameter for hbf2gf: slant. Note that slanted + fonts are not common for CJK languages and should + be used only in special situations. + + Documentation about Japanese TeX systems and how to + handle Japanese with CJK contributed by TANAKA + Shinichiro <tanaka3@ifos.se.fujitsu.co.jp>. + + An introduction into the CJK package in Chinese + contributed by Lee Chun-Yu <d791013@ce.ntu.edu.tw>. + Consequently the outdated README.bg5 together with + bg5_test.tex has been removed. + + ntu2cjk version 1.3 . + + CEF example added. + + changed: + MULEenc.sty, mule2cjk: + \textcdot dropped; replaced with \textperiodcentered. + + MULEenc.sty: + definition of \textregistered dropped since it is + defined for all encodings in the latest LaTeX2e + release. + + CJK.sty: + \nbs is now defined as a shorthand for \nobreakspace. + + \space's added to font size functions analogously to + the latest LaTeX release. + + mule2cjk: + \nbs replaced with \nobreakspace. + + maketexp.btm: + small enhancements. + + f_name.bat: + slightly modified to make it run under 4DOS too. + + hbf2gf: + hbf.c updated to latest hbf version (17-Oct-1995). + errors: + maketexp.btm: + the ttfdir environment variable in the created + fonts.btm file was not set. + + Oh, oh, font creation with hbf2gf also didn't work... + + at one place two `%%' used instead of one. + + UJISwn.fd should now search for the right fonts. + + *.cap: + erroneously contained \@undefined instead of + \undefined. + + JIS.cap: + completely broken (sigh). Unbalanced \if... statements + caused unrecoverable errors. + + +Version 3.1.1: new: +20-Jun-1996 \CJKspace switches (inside of a CJK or CJK* environment) + from CJK* to CJK mode. + \CJKnospace switches from CJK to CJK* mode. + + support for Vietnamese with Mule. You need the vncmr-2.1 + package for fonts and LaTeX2e support. + + Latin 5 (ISO 8859-9) for Mule implemented. + + changed: + mule2cjk removed and replaced with cjk-enc.el which + defines a new output encoding scheme for Mule + (*cjk-coding*). See cjk-enc.doc for details. + + new protection scheme and changed macro definitions in + MULEenc.sty enables kerning for non-CJK languages. This + also makes most of the CJK macros significantly smaller. + + f_name.bat replaced with the latest version. + + some documentation improvements. + + \CJKhanja and \CJKhangul now also make sense outside of + KS encoding (useful in connection with mule2cjk). + + errors: + f_name.cmd doesn't work. All *.cmd removed. I have first + to learn REXX to write such batch files for OS/2. + + ttf2pk failed if the PK package size of a character was + 1024 (the same error is also in the pbm2pk program). + + hbf2gf didn't initialize mag_x/mag_y and dpi_x/dpi_y + correctly (Zhang Zhengyou + <Zhengyou.Zhang@sophia.inria.fr>). + + after closing a CJK environment not all characters above + 0x80 had been made non-active (a typo). + + pinyin.sty did not preserve the \a macro (used in + tabbing environments). + + single byte characters didn't work in SJIS encoding (a + typo). + + `:' and `.' do not work as parameter delimiters if these + characters are active (Daniel Flipo <?@?>). Now ^^ff + is used; the old macro ^^ff is now ^^a0; ^^a0 has + become ^^80. The old ^^80 macro has been removed since + the new version of mule2cjk always use the `global' + option of CJK which allows the use of (the new) ^^80 + instead. + + \CJKenc{SJIS} didn't work (Thomas Piekenbrock + <piekenbro@msmzid.frankfurt.hoechst-ag.d400.de>). + + SJISconv.tex didn't run (a senseless line called the + nonexistent macro \CJK@other) (Thomas Piekenbrock + <piekenbro@msmzid.frankfurt.hoechst-ag.d400.de>). + + JIS.cap didn't work (a typo). + + SJIS.cap didn't work either (forgot to edit). + + +Version 4.0.0: new: +20-Sep-1996 I did the final step. All CJK encodings now have all + NFSS attributes, namely family, series, and shape + (represented by \CJK@family, \CJK@series, and + \CJK@shape). \CJK@family is set by entering a CJK + environment in the same way as it was done in former + versions of this package. \CJK@series and \CJK@shape + are (usually) controlled by the standard NFSS commands + (e.g., \slshape, \textbf, etc.). + + To achieve this it was necessary to define (NFSS) + font encodings for the CJK package. All CJK font + encodings map to NFSS font encodings which start with + the letter `C', followed by two digits. Here is a + table: + + Chinese: Bg5 C00 + Bg5pmC C01 + + GB C10 + GBpmC C11 + + GBt C20 + GBtpmC C21 + + CNS1-7 C31-37 + + Japanese: JIS C40 + JISpmC C41 + JISdnp C42 + JISwn C43 + + JIS2 C50 + + SJIS -> kana C49 + (additionally) + + Korean: KS -> hanja C60 + -> hangul C61 + KSpmC C62 + KSHL -> hanjaHL C63 + -> hangulHL C64 + -> HLsymbolJ C65 + -> HLsymbolK C66 + + Unicode: UTF8 C70 + + CEF: CEFX C80 + CEFY C81 + + The first digit corresponds to a CJK (input) encoding + like Bg5 or JIS, the second digit represents either a + CJK font encoding or internal encodings necessary to + cover the selected CJK encoding. + + One consequence of this step is that you have to adapt + all .fd files to the new scheme. Look at the example + font definition files of the CJK package how to do it. + + You can't use e.g., `C01' directly! Use the CJK + interface (in this example \CJKfontenc[pmC]{Bg5}). + + Another consequence is that you are now limited to + five characters for the family name since it is part + of the .fd name (together with the NFSS font + encoding): e.g., `fangsong' is not longer allowed. I've + renamed this to `fs'. + + the new font encoding scheme of the HLaTeX package is + supported. You can select it with \CJKfontenc[HL]{KS} + or \begin{CJK}[HL]{KS}{...} . This is _not_ an + emulation of HLaTeX! See CJK.doc for details. + + poor-man's bold font has been introduced. To do this all + occurrences of \symbol has been replaced with the new + command \CJKsymbol which honours the \ifCJK@bold@ + flag. If set, a character is printed three times with + a small horizontal shift. You can modify this flag + with \CJKnormal and \CJKbold. These commands are + intended for use with \DeclareFontShape: + + \DeclareFontShape{C00}{CNS}{m}{n}{<-> CJK * csso12}{} + \DeclareFontShape{C00}{CNS}{bx}{n}{<-> CJKb * csso12}{\CJKbold} + + Additionally four size functions (CJKb, sCJKb, + CJKfixedb, sCJKfixedb) has been introduced which are + completely identical to its counterparts without the + final `b'. The only reason to use them is, as shown in + the above example, to make the fifth parameter of + \DeclareFontShape for bold series different from the + one for medium series (LaTeX2e uses this parameter as + a macro name to execute loading-settings, thus they + must not be equal). Redefine \CJKboldshift if the + default shift value of 0.015em is not optimal for the + specific font. + + support for ruby (= furigana) added. See rubi.doc for + details. + + ttf2pk: + TTF specific error handling enabled. + + Big 5 encoded TTF in format 4 can now be handled. + + hbf2gf: you can now use environment variables ($FOO or + ${FOO}) in the configuration file. Use $$ to get a + dollar sign. + + man pages added. + + more examples added. + + REXX scripts bg5latex.cmd, etc. (for OS/2) added + (contributed by Wonkoo Kim <wkim+@pitt.edu>). + + teTeX.doc added. + + changed: +* The CJK distribution has been divided into three +* packages: +* src The sources. Needed for all platforms +* bin Binaries compiled with emx for DOS and OS/2. +* rest Preformatted documentation (.dvi, .ps, +* output from cjk-enc.el) +* +* ALL FONT DEFINITION FILES HAVE BEEN CHANGED AND RENAMED! +* + \CJKshape and \CJKencshape renamed to \CJKfamily and + \CJKencfamily respectively. For backward compatibility + you can still use the old names. Nevertheless, they + now modify the font family parameter and no longer the + font shape parameter. + + all *conv.tex and its batch files removed. + + all converter programs now do not change the number of + lines in the output file. +* +* the UN*X converter batch files now replace the extension +* with .cjk instead of appending it. E.g. +* test.tex -> test.cjk (instead of test.tex.cjk) +* + f_name.bat provides a new environment variable %fu% + for a Unix-like path (using `/' instead of `\'). Now + you can run bg5latex.bat and the other DOS batch files + having a file name with a path as an argument. Please + replace all these batch files with the new ones. + + starting with this version ttf2pk is a direct part of + the CJK package. I maintain it. As a consequence the + ttf2pk directory tree has been moved into the utils + subdirectory. + + MakeTeXPK, MakeTTFPK: environment variable ttfdir and + hbf2gfdir renamed to TTFDIR and HBF2GFDIR + respectively. + + hbf2gf: sample configuration files now contain TDS + compliant directories. + + ttf2pk: + -c option removed which never worked. + + some redundant code removed. + + heavily reformatted. + + errors: +* PLEASE RECREATE ALL .TFM AND .PK FILES PRODUCED BY +* TTF2PK! +* Reason: the width values were resolution dependent. +* You should use the InstallFont script or instfont.btm +* for this job since the very bug in ttf2pk has not yet +* been fixed. Additionally you must install the new +* MakeTTFPK script. + + ttf2pk: + endchar didn't work correctly. + + punctuation characters in KS were not handled correctly. + + \CJKchar failed sometimes (Jinn S. Yang + <v30yjs@v0sun11.ccl.itri.org.tw>). + + Big 5/SJIS characters failed in headers, etc., if used + without preprocessor (Jinn S. Yang + <v30yjs@v0sun11.ccl.itri.org.tw>). + + +Version 4.0.1: appeared as a diff only---a typo in utils/ttf2pk/findex.c +26-Sep-1996 + + +Version 4.1.0: new: +20-Nov-1996 ttf2pk: + a new parameter -e has been introduced for selecting + the font encoding; possible values are `Big5' (the + default), `EUC' for extended Unix codes (JIS, GB, KS, + etc.), `SJIS', and `X'. The last value treats the TTF + file as SJIS encoded but expects start_char in JIS + encoding (routines are in coding.{c,h}). + + a new parameter -r has been introduced for rotating + the glyphs 90 degrees counter-clockwise if its value + is non-zero. See ttf2pk.1 for details. + + Some preliminary support for composite glyphs has been + included. Since hinting instructions are not supported + yet this is only of some academic interest. You can + watch the funny results with the mingli system font of + the traditional Chinese Windows 3.1 . + + Support for different horizontal and vertical + resolutions has been added. Now you have one more + parameter to call ttf2pk: + + ttf2pk pkname tfmname xres yscale startch nmbch ... + + Currently you have to change yscale by hand in + MakeTTFPK (or makettfp.btm). [yres = xres * scale] + + The source code has been prepared for pretty-printing + with c2cweb. Say `make documentation OS=<SYSTEM>' to + produce it (of course after installing the c2cweb + package). You find precomputed .dvi files in the + `rest' part of the CJK package. + + HSIEH Tung-Han <thhsieh@twclx.phys.ntu.edu.tw> + contributed NTeXb5.doc for installing the CJK package + under NTeX. + + hbf2gf: + if called in METAFONT-like mode, one additional + parameter has been added to allow printers with + different horizontal and vertical resolutions: + + hbf2gf config_file subfont_nmb x_resolution y_scale + + (y_resolution = x_resolution * y_scale; y_scale must + be a real number > 0; currently you must change y_scale + by hand in MakeTeXPK/maketexp.btm) + + hbf2gf now produces a .pl file even if in + METAFONT-like mode. + + a new config file option `rotation' rotates the glyphs + 90 degrees counter-clockwise if set to `yes'. + + vertical presentation forms of Big5 punctuation + characters added to punctuation tables in CJK.enc . + + CJKvert.sty for vertical typesetting added. This is an + experimental feature! Please read vertical.doc for + further details. + +* MakeTeXPK and friends: +* it's no longer necessary to rename TTF files to avoid +* underline characters. A configuration file is now used +* (ttf2pk.cfg) which resides in $TTF2PKDIR (usually +* $TEXMF/ttf2pk) to describe the various TTF files. +* Please rename e.g., ntukai.ttf back to ntu_kai.ttf . +* The environment variable $TTFDIR has become obsolete. + + The teTeX variants of the scripts can now produce tfm + files on demand---it's sufficient to simply install + the source files of a new font. + + changed: +* rubi.sty has been renamed to ruby.sty; the same is +* true for all commands in it: \ruby, \rubyoverlap, etc. + + new version (1.5) of ntu2cjk. + + hbf2gf: + the option `target_size' has been removed. It is + ignored now. + + under DOS and OS/2 both `\' and `/' are now recognized + as a path separator. + + ttf2pk: + the -s parameter (to select a design size) has been + removed. The program now always assume a design size + of 10pt. + + the parameter end_char has been replaced with + nmb_of_char (max. 256). + + begin_char can now be either decimal, hexadecimal + (prefix `0x'), or octal (prefix `0'). + + x_offset and y_offset behave now similar to hbf2gf + (and most people would expect it that way): a positive + x (y) value shifts right (up); default is zero for + both parameters using the default placement as given + in the TTF file. The values are no longer integers but + real numbers and should be multiples of design size. + + horz_esc and vert_esc are now real numbers too and + should be multiples of design size. + + you no longer need to use -W, -H, and -D for getting + resolution independent .tfm files. ttf2pk now + correctly uses the values of the TTF file. + +* PLEASE RECREATE ALL .TFM (AND .PK) FILES! Sorry for +* this inconvenience. I hope it is the last time. Due to +* some optimizations the .pk files are about 5% smaller +* now. + + The TTF part of the source code has been transformed + into a library (ttflib); the makefile has been + rewritten with a new syntax. Say `make' for details. + + utils/ttf2pk/README.b5 and INSTALL.bg5 removed. They + were out of date. + + modified MakeTTFPK/MakeTeXPK/InstallFont and + makettfp.btm/maketexp.btm/instfont.btm scripts. + + +Version 4.1.1: appeared as a diff only. +02-Dec-1996 + new: + cjktilde.el: + this file contains a minor mode (`cjk-tilde-mode') for + emacs to exchange the ` ' key with the `~' key. See + the documentation of \CJKtilde for details. + + changed: + directory cjk-enc renamed to lisp. + + errors: + the fullwidth double colon in GB encoding was missing in + the punctuation tables. + + +Version 4.1.2: new: +20-Feb-1997 ntu2cjk ver. 1.6 now supports the Jackson font (a Big 5 + encoded PostScript font). + + cjkspace.el: similar to cjktilde.el for cooperation with + AUCTeX. + + support files for NDOS contributed by KUO Yi-Liang + <c300711@ms5.hinet.net> . + + emTeX support documentation also contributed by + KUO Yi-Liang <c300711@ms5.hinet.net> . + + changed: + ttf2pk/src/Makefile: uses -C switch of GNU make now for + entering subdirectories. + + adaptation to LaTeX release 1996/12/01: + all .fd files now start with e.g., c00 instead of C00 + (nevertheless, the encoding is still called `C00'). + + all executables are now finished with exit() to avoid + additional security holes. + + Bg5rot.tex renamed to Bg5vert.tex . + + errors: + MakeTTFPK: + some sed programs can't understand the `\w' special + character (indicating a word constituent character); + has been replaced with `.'. + + it was not possible to open a CJK environment with + SJIS encoding a second time (Thomas Piekenbrock + <piekenbro@smzid.frankfurt.hoechst-ag.d400.de>). + + the same problem existed with UTF 8 encoding; + additionally the macros failed for protected + arguments. + + cjktilde.el: + if you assigned the minor mode to a key, the status + line was not updated. + + ttf2pk: + problems with empty glyphs fixed. + + problems with invalid index tables now lead to a + warning instead of a fatal error. + + +Version 4.1.3: new: +20-Jun-1997 hbf2gf can now create virtual Omega (.ofm) files. + + ttf2pk (and its scripts) now supports Unicode encoded + fonts. + + cjk-enc.el for emacs 20. + + Russian support (in T2 encoding) for Mule/emacs 20. + Please contact me for fonts, hyphenation patterns, and + macro packages. + + JIS X 0201 support for Mule/emacs 20. + + experimental support for Thai (only emacs 20). This is + basically C-TTeX version 1.51 adapted to CJK. Anybody + who is interested in this stuff (and has some + knowledge on Thai contrary to me :-) please contact + me so I can improve it. Please read cjk-enc.doc for + more details. + + ntu2cjk version 1.8: + now supports partial downloading of NTU fonts with + dvips. + + installation checklist added to INSTALL. + + installation instructions written in Chinese GB + contributed by YAO Fude <yao@everest.micro.umass.edu>. + + UTF8.tex example added. + + changed: + MULEenc.sty: + \hbar and \HBAR replaced with \textmalteseh and + \textmalteseH respectively according to the LaTeX2e + release June 1997. + + further simplifications. + + external CJK font packages, script and documentation + files updated to TDS standard. + + c70song.fd: + now uses cyberbit.ttf as default font. + + errors: + make*.btm scripts now really work :-) (thanks to + <rshuang@ms11.hinet.net>). + + c00cns.fd was incorrectly stored as c00CNS.fd . + + MULEenc.sty: + expansion macro improved (the old version prevented + kerning if used with e.g., \MakeUppercase). + + hbf2gf: + support for Unicode encoded HBF files was totally + broken. + + always used non-rotated x and y input sizes. + + the HBF interface now uses only one file handle per + opened font---previously it used one file handle per + HBF_CODE_RANGE line (Mark Leisher + <mleisher@crl.nmsu.edu>). + + ttf2pk: + can now handle fonts like avkv.ttf which have a + non-standard way to handle the end of the glyph index. + + a nasty allocation bug removed due to missing modulo + 65536 operations (thanks to YANG Ching-Hsiang + <jsyang@vlsi.ccl.itri.org.tw>). + + +Version 4.2.0: new: +13-Dec-1998 pinyin.sty: + support for EC fonts: the macron bar has been lowered + considerably. + + kerning in pinyin syllables is now identical to + unaccented syllables. + + teTeXb5.doc: + How to set up CJK with teTeX 0.9 (in Chinese). + Contributed by HSIEH Tung-Han + <thhsieh@twcpro.phys.ntu.edu.tw>. + + CJKnumb.sty: + new package for converting a number into a CJK + representation. It provides just one command, + \CJKnumber. + + CJK.sty: + new command \CJKaddEncHook for adding code which is + executed each time a certain encoding is selected. + + contrib/wadalab: + how to use Wadalab Japanese PostScript fonts with CJK. + Contributed by LEUNG Hin-Tak <htl10@cus.cam.ac.uk>. + + CJK.enc: + added C52 encoding (JIS2 in dnp font encoding). + + changed: + MULEenc.sty, cjk-enc.el: + updated to latest LaTeX 2e changes (1997/12/01 and + 1998/06/01): + \DH, \dh renamed to \DJ, \dj; LaTeX2e now provides + \textdegree, \textordfeminine, and \textordmasculine. + + updated to latest T2 changes: \CYRUKRI, \CYRUKRE and + its lowercase forms are renamed to \CYRII and \CYRIE + respectively. + + there is now a version of cjk-enc.el for emacs 20.3 + too. + + muletest.tex: + new translations; Russian now standard. + + thaiconv: + updated to include cttex 1.15 changes. + + a revised TDS structure for storing CJK fonts and + configuration files (see TDS.doc for details). + + compile.doc has been removed. + + NTeXb5.doc has been removed. + + ttf2pk.doc has been removed (it is now in the ttf2pk-old + package). + + the whole ttf2pk subdirectory has been removed. Get the + new ttf2pk program of the FreeType project (available + from ftp.freetype.org in the directory + pub/freetype/devel as the package + freetype-current.tar.gz)---the new ttf2pk can work + with composite fonts too and supports hinting. The old + ttf2pk is still available as ttf2pk-old.tar.gz . + + the whole ntu2cjk subdirectory has been removed. Get the + new ttf2pfb program of the FreeType project (see just + above for the location). ntu2cjk is still available as + ntu2cjk.tar.gz . + + the whole NDOS subdirectory has been removed because it + is completely out of date. + + CJK.sty: + caption files for preprocessed mode have now the + extension `.cpx' to simplify editing of cap files. + +* hbf2gf: +* completely redesigned to make calls in scripts for +* creating PK fonts easier. Please refer to hbf2gf.1 +* or hbf2gf.dvi for details. +* +* maketexp.btm, etc.: +* replaced with dvidrv.btm, a replacement for emTeX's +* dvidrv.exe; it is documented in dvidrv.doc . + + fonts from HLaTeX >= 0.97 are now supported. As a + consequence, support for older HLaTeX versions has + been withdrawn. The internal encoding C66 no longer + exists. + + cjk-enc.el: + function write-cjk-file added (thanks to David Fox + <fox@cat.nyu.edu>). + + errors: + pinyin.sty: + \O wasn't handled specially. + + CJK.sty now coexists with ArabTeX. + + possible save size overflow fixed (\CJK@temp was + assigned locally and globally at the same time). + + +Version 4.3.0: An intermediate version containing most features of 4.5.0 +04-Apr-2000 published on the TeX Live 5 CD. It has never been officially + released. + + +Version 4.4.0: An intermediate version containing most features of 4.5.0 +17-Apr-2001 published on the TeX Live 6 CD. It has never been officially + released. + +Version 4.5.0: An intermediate version containing most features of 4.5.1 +01-May-2002 published on the TeX Live 7 CD. It has never been officially + released. + +Version 4.5.1: new: +17-Jun-2002 CJKulem.sty: + Full underlining support using the latest version of + ulem.sty. + + Bg5+ and GBK charsets and encodings added (together with + `Bg5+text' and `GBKtext' environments). The encodings + are C09 and C19, respectively. + + `bg5+latex' and `gbklatex' scripts added (together + with its DOS and OS/2 pendants); both call the new + converter `extconv'. + + EUC-JP and EUC-TW encodings (*with* single shifts) added. + + SJIS encoding with DNP fontencoding. + + A configuration file `CJK.cfg' is read by CJK.sty just + before the \endinput command. + + CJKnumb.sty: + Added the macro \CJKdigits to CJKnumb.sty for printing + a (integer) number with CJK digits. + + Added macro \CJKnullspace to control the amount of + space inserted before and after a circle character + used for CJK digit zero. + + Added the macro \CJKindent to CJK.sty which sets the + paragraph indentation to two ideographic spaces. + + Added a test file `CJKbabel.tex' for testing CJK, + emacs 20, and the babel package. + + Thai support for Babel added. + + Added a test file `thai.tex' for testing Thai. + + cjk-enc.el: + Now works with XEmacs also (except for Thai). + + Support for ISO-8859-7 (Greek) added. + +* Support for multifile documents added. As a +* consequence, it is now necessary to specify the +* encoding of all files with local variables for Emacs +* (see the comments at the end of the files in the +* `examples' directory how to do that; the `coding: ...' +* line must exist. + + The translation tex->cjk is now executed only if the + source file is more recent than the corresponding + output file (it is still possible to force translation + though). + + Hyphenation patterns for unaccented pinyin syllables + (together with support for the Babel package) in + utils/pyhyphen. Documentation is in doc/pyhyphen.doc. + + pinyin.sty: + Added option `useCMmacron' (for LaTeX only) to use + a macron accent from the CM fonts in case the current + font doesn't have it (e.g., some versions of virtual + files for Palatino). + + Compound syllables can now be hyphenated. + + MULEenc.sty: + Added \CJKinclude{<file>}, \CJKinput{<file>}, and + \CJKbibliography{<file>} macros which behave similar + to \include, \input, and \bibliography but include + (input) <file>.cjk and <file>-cjk.bib instead. + + CJK.sty/MULEenc.sty: + The command \CJKverbatim suppresses insertion of glue + between CJK and Thai characters in verbatim + environments if the `verbatim' package is used. This + is useful if you have overlong lines. + + changed: + Thai support has been redesigned. The external program + `thaiconv' has been replaced by a Lisp file called + thai-word.el; ligatures in virtual Thai fonts are now + used to select the proper glyph representation forms. + See thaifont.doc and cjk-enc.doc for details. + + CNS stuff moved into a `CNS' directory. + +* CJK.sty/MULEenc.sty, +* cefconv, cef5conv, cefsconv, bg5conv, sjisconv, +* cjk-enc.el: +* The character slot 0xA0 is no longer used for +* \CJKchar; instead, the multiplex character 0x7F +* interface now handles this also. Additionally, +* character 0x7F (instead of 0xFF) is used as delimiting +* character. 0x7F is used for all CJK characters also in +* preprocessed mode---as a consequence, preprocessed and +* non-preprocessed data can be used simultaneously. +* +* You *must* update the *conv programs (if you use +* them). \CJKpreproc and \CNSpreproc now contain the +* current version string so you can check whether really +* the new versions are called. + + cjk-enc.el: + ET5 encoding for Vietnamese replaced with T5 encoding. + + The version for emacs 20 has been removed. Please + upgrade your emacs to 20.7 or newer. + + contrib/wadalab: + Use CJK font size functions instead of DNP ones. + + hbf2gf: + The configure option --with-kpathsea-dir has been + replaced with --with-kpathsea-include and + --with-kpathsea-lib to support web2c installations + with multiple architectures. + + errors: + cjk-enc.el: + The formatting parameter `%i' has been replaced with + `%d'. + + pmC.chr: + Missing \ifCJK@ added. + + Punctuation macros fixed. + + Bg5.chr: + Fixed a typo \CJK@temp -> \CJK@gtemp. + + hbf2gf: + Now works correctly with very large pixel sizes. + + Punctuation with half-width katakana in SJIS encoding + improved. + + A bug fixed which prevented the usage of caption files + together with hyperref. + + KS encoding with HLaTeX fontencoding now supports + punctuation also. + + Specifying a font size factor (like `CJK * [1.5]') in + FD files no longer produces a warning message for + all subfonts. + +Version 4.5.2: new: +28-Mar-2003 The new macro \CJKnohwkatakana prevents the use of the + C49 encoding for half-width katakana; instead, the + characters are mapped to full-width glyphs. The + opposite command is \CJKhwkatakana (the default). + + Improved support for pseudo-vertical typesetting. + + . CJKvert.sty provides new commands \CJKvert (the + default) and \CJKhorz to toggle pseudo-vertical + typesetting. + + . After loading CJKvert.sty, LaTeX reads file + `<foo>.fdv' (if it exists) immediately after reading + `<foo>.fd'. Such a file contains additional + information how to typeset a font vertically. Most + importantly, outline fonts can be configured so that + they are rotated with the graphicx package, making + it work with both dvips and pdfTeX. See + `vertical.doc' for more information. + + errors: + \CJKchar sometimes didn't accept 7bit representations. + + pinyin.sty: + Added missing syllables \chua, \den, \rua. + Make it work properly in tables. + + contrib/wadalab: + Older versions of the `makefont' script produce bad + hints for all Wadalab fonts. Either use the new + version to regenerate all fonts or use the new script + `fixwada' to correct fonts created with an old version + of `makefont'. + + EUC-TW.chr: Make it really work. + +Version 4.6.0: new: +11-Aug-2005 CJKutf8.sty merges basic LaTeX's and CJK's UTF-8 support. + See CJKutf8.doc for details. + + The two new macros \Thaispace and \Thainospace can be + used to control the EOL behaviour in Thai text blocks + if processed with cjk-enc.el. + + There are now scripts (for Unix) to call pdflatex + instead of latex: bg5pdflatex, sjispdflatex, etc.; + all scripts now pass parameters to latex (the program). + + New documentation files giving hints how to set up the + CJK package for optimal PDF output. + + New documentation file `reftex.doc' describing + customization for RefTeX (which is part of Emacs). + + CJKfntef.sty provides more font effects specific to + CJK scripts. See the example file CJKfntef.tex for + typical usage. + +* All .fdv-files have been renamed to use the suffix +* `.fdx' since they are no longer restricted to vertical +* writing direction. See the new file `fdxfiles.doc' +* for more information. + + changed: + All plain text documentation files now have the suffix + `.txt'. + +* Thai support has been improved. +* +* . Internally, the font creation process now uses +* fontinst to create the TFM files. As a consequence, +* virtual fonts are no longer necessary. +* +* . Due to an uncertain license, the `dbtt' font family +* has been replaced with `garuda', taken from +* thailatex version 0.3.5.1 which you can find at +* +* http://linux.thai.net/plone/TLWG/thailatex +* +* . The directory tree below `utils/thaifont' has been +* updated to reflect TDS 1.1, as supported by the +* forthcoming TeXLive 2005 and teTeX 3.0. +* +* Please replace all files related to Thai fonts in your +* TEXMF tree with the new fonts and font support files. + +* HLaTeX support has been updated to handle fonts from +* version 1.0.1---there are no longer MF source files, +* only PS fonts. Support for non-uhc fonts have been +* removed; you should upgrade to the latest HLaTeX font +* archives from CTAN. Please consult CJK.doc, section +* `Korean input', for the (slightly) changed font names of +* HLaTeX support. + + errors: + Some characters in Big 5 encoding disappeared without + a warning if pseudo-vertical writing was active. + + pinyin.sty: + Umlaut u with diacritic appeared bold. + + Umlaut u with macron above was broken. + + CJKulem.sty: + User-defined \CJKglue value was ignored. + + Line breaks before a post-punctuation CJK glyph + weren't disabled when \uline and friends were used. + + MULEenc.sty: + \textordfeminine and \textordmasculine were exchanged + if used with cjk-enc.el. + + contrib/wadalab/*.fdx: + Handle Hiragana-Katagana prolongation mark correctly. + + cjk-enc.el: + Multifile support was partially broken. + + CJKvert.sty: + Both \CJKvert and \CJKhorz had both local and global + effects. Now they are completely local. + + +Version 4.7.0: +17-Oct-2006 + new: + A new encoding `HK' (C05) is available for Hong Kong's + HKSCS-2004, used in combination with Big 5. + +* `UTF8' encoding now supports full Unicode (up to +* U+10FFFF). Subfont planes for ranges greater than U+FFFF +* consist of four hexadecimal digits (for example +* `foo025e' which covers U+25E00-U+25EFF). The \Unicode +* command (and \CJKchar) has been extended to accept +* Unicode values greater than U+FFFF. + + CJKutf8.sty: + Support Unicode encoded bookmarks if the hyperref + package is used. + + Automatically generate ToUnicode cmaps for pdftex + (tested with pdftex version 3.141592-1.30.4-2.2; it + currently doesn't work with virtual fonts). + + Caption files in UTF-8 encoding have been added; the + files are identical to the encoding-specific versions. + + ja Japanese + ko-Hang Korean using Hangul + ko-Hang2 another version using Hangul + ko-Hani Korean using Hanja + zh-Hans Chinese simplified + zh-Hant Chinese traditional + + errors: + UTF-8 input character 0x80 was handled only partially. + + pinyin.sty: + The package didn't preserve `\ding' which is defined + in pifont.sty, causing problems with older versions of + the hyperref package and its `hpdftex' driver option. + + CJK.sty: + Make it work with font definition files (like the ones + from the fourier package) which expect that the + loading-settings are called only once. + + The use of caption files within the `scrartcl' class + made \chapter a defined command (instead of reporting + an error). + + With the koma-script classes, all CJK caption files + except for Korean produced bad looking TOC entries for + \part. + + +Version 4.8.0: +22-May-2008 + new: + Support for EUC-JP with DNP font encoding has been + added. + + Support for XeLaTeX has been contributed by SUN + Wen-Chang <sunwch@hotmail.com> (in file `xCJK.sty'). + Note that this is just a rudimentary emulation layer; + most users are probably better off using XeLaTeX's + Unicode and font support directly. See `xCJK.txt' for + more details. + + pinyin.sty: + Added support for T5 encoding. + + CJKvert.sty: + Added command \CJKbaselinestretch to adjust the + baseline stretch used in vertical typesetting. + Previously, the value 1.3 was hardcoded. + + Added package option `usebaselinestretch' to use + the \baselinestretch value set before loading + CJKvert.sty; \CJKbaselinestretch then becomes a + factor to adjust it. + + Add support for \CJKhdef{offset}{...} in .fdx-files. + For example, to vertically shift all glyphs of the + `bsmi' font shape in Big 5 encoding (for horizontal + writing), put + + \CJKhdef{offset}{-.07em} + + into c00bsmi.fdx and add + + \usepackage{CJKvert} + \CJKhorz + + to your preamble. + + errors: + \CJK@bold didn't work properly for C49 (half-width + katakana) encoding. Now C49 is handled as a CJK + encoding, this is, you should use the various size + functions (`CJK', `CJKb', etc.). + + +Version 4.8.1: +10-Aug-2008 + new: + SUN Wen-Chang has contributed the CJKspace.sty package + which modifies the `CJK*' environment to suppress spaces + only after CJK characters. See CJKspace.txt for + details. + + errors: + Pinyin syllable macros (defined in pinyin.sty) were not + robust, causing problems with indices, for example. + + Some Chinese .fd and .fdx files were missing for fonts + which are present in the forthcoming TeXLive + distribution. + + +Version 4.8.2: +29-Dec-2008 + new: + CJKnumb.sty: + The new command \CJKdigits* is the same as \CJKdigits + but uses the traditional glyph for digit zero. + + changed: + The various directories `norasi' and `garuda' have been + changed to `norasi-c90' and `garuda-c90', respectively. + + Thai support has been updated to use the fonts from + thailatex version 0.4.2. For easier maintainance it is + now expected that the PFB and AFM files (for `norasi' + and `garuda') are no longer renamed. + + errors: + Poor-man's bold fonts could work incorrectly for + substituted fonts. + + \Unicode didn't use proper glyph representation forms in + vertical mode. + + +Version 4.8.3: +07-May-2012 + new: + CJKfntef.sty: + New commands \varCJKunderline, \CJKunderanyline, + \CJKunderanysymbol. See the example file `CJKfntef.tex' + for typical usage. + + cjk-enc.el: + Emacs 23 and newer is now supported, thanks to patches + from Leung Hin-Tak. + + Leung Hin-Tak also contributed Thai support for UTF-8 + encoding, making emacs an alternative to Thai word + separator programs like `cttex' or `swath'. See the + example file `thai_utf8.tex' for a typical usage. + + changed: + Special XeTeX support has been removed (file `xCJK.sty' + and others). Please use the separate `xeCJK' package + instead. + + Peter Breitenlohner contributed various minor fixes and + improvements to the many conversion programs like + `cjklatex' or `bg5conv'. + + The Thai metrics files for `norasi' and `garuda' were + updated to version 0.5 of the `font-tlwg' bundle. + + errors: + CJKfntef.sty: + An incompatibility with recent versions of `ulem.sty' + was fixed. + + ruby.sty: + Fix case where furigana is smaller than base glyph. + + +Version 4.8.4: +18-Apr-2015 + errors: + CJKutf8.sty: + Fix space handling of non-CJK characters. + + CJK.sty: + In \Unicode, fix conditional to allow line breaks. + + +Version 4.8.5: +16-Oct-2021 + new: + Hyphenation patterns for pinyin syllables: + The patterns have been extended to cover accented pinyin + syllables, too. + + [Pinyin patterns are distributed via the `tex-hyphen' + package and are by default activated in TeXLive.] + + errors: + CJK.sty: + Make it work with recent LaTeX versions. Note, however, + that this problem was not visible to the end user since + the LaTeX kernel contained a first-aid fix to circumvent + the issue. + + cjk-enc.el: + Make it work with Emacs 25 and later. + + Hyphenation patterns for pinyin syllables: + Investigation has shown that the apostrophe before a + syllable starting with `a', `e', or `o' should vanish if + a line break occurs. Consequently, character ' is no + longer part of the hyphenation patterns. The apostrophe + should now be entered with the Babel shorthand "'. + +---End of history.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/japanese/README b/language/chinese/CJK/cjk-4.8.5/doc/japanese/README new file mode 100644 index 0000000000..ab5101887a --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/japanese/README @@ -0,0 +1,18 @@ +* The documentation files in this directory describe version 3.1.0; mule2cjk +* no longer exists---please read cjk-enc.txt for the new interaction between +* Mule and CJK. Until now I couldn't reach the author again. + +In this directory you find a suite of small documentation files which deal +with CJK and other Japanese features/systems in relation to TeX. They were +contributed by TANAKA Shinichiro <tanaka3@ifos.se.fujitsu.co.jp>. + +japanese.jis is the Japanese version of japanese.txt . Note that this file +and the file shibuaki.txt contain Japanese characters in JUNET encoding. + +Please send any comments and suggestions to the author of these doc files. +Questions related to non-CJK topics should be asked in the fj.comp.text +news group since the author only uses CJK. + + +Documentation how to use Wadalab fonts can be found in the contrib/wadalab +directory. diff --git a/language/chinese/CJK/cjk-4.8.5/doc/japanese/ascii.txt b/language/chinese/CJK/cjk-4.8.5/doc/japanese/ascii.txt new file mode 100644 index 0000000000..41815cca5a --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/japanese/ascii.txt @@ -0,0 +1,58 @@ +ASCII Co. was founded by Mr. Nishi Kazuhiko, Mr. Tsukamoto, and Mr. Gunji. +This company works in the software and publishing field. So ASCII was +interested in the TeX system. They developed "ASCII Nihongo TeX" in +cooperation with a group of the Keio University in 1987. ASCII Nihongo TeX +is freeware. ASCII Co. implemented this system on MS-DOS in 1989 and sold +it. ASCII Co. added the capability of vertical typesetting to Nihongo TeX--- +this is called the p version or pTeX (publishing TeX). + +ASCII translated some important books into the Japanese language. These +books are of course typesetted with Nihongo TeX. + + "The TeX book", "The Metafont book" Knuth. + + "LaTeX: A Document Preparation System" Lamport. + +Many articles about TeX appear in the "UNIX magazine" published monthly by +ASCII. + + +Some features of Nihongo TeX: + + 1. The dvi file format is different from the original TeX's dvi file + format. (NTT-JTeX's dvi file format is the same as original one. So we + can use NTT-JTeX's dviware for the CJK package.) + + 2. Nihongo TeX is not only capable of using TeX Font Metric files (tfm), + but can also use Japanese Font Metric files (jfm). The jfm file format + is defined as an extension of the tfm file format for Nihongo TeX. One + jfm file has about 7000 kanji character metrics and kerning + informations to cover entire JIS fonts (and thus avoiding subfonts). + [See shibuaki.txt for some details about space handling between + Japanese and ASCII characters.] + + 3. Characters can be printed vertically. + + +In 1992 Tsukamoto and Gunji retired from ASCII Co. and founded Impress Co., +and some engineers specialized on TeX moved from ASCII to Impress. + +Impress Co. works in same field as ASCII Co., namely software and +publishing. In 1994 Impress made and sold "TeX for Windows" based on an +older version of ASCII Nihongo TeX (a modified TeX version 2.99). This +system runs on Windows 3.1, Windows 95 or Windows NT and has been sold to +many PC users. Literature is also available for "TeX for Windows". + +A major drawback of this system is that it is not yet based on TeX 3 and +thus cannot fully support LaTeX2e or multilingual issues. + + +In November 1995 ASCII announced the latest version of Nihongo TeX (pTeX +2.1.1) which is based on TeX 3.1415; this package also contains a format +file of LaTeX2e <1995/06/01>. + +At the time of this writing (1996/02/09) ASCII Nihongo TeX's version is pTeX +2.1.4 . + + +Version 1.0 Beta2 (1996/02/09) written by tanaka3@ifos.se.fujitsu.co.jp diff --git a/language/chinese/CJK/cjk-4.8.5/doc/japanese/japanese.jis b/language/chinese/CJK/cjk-4.8.5/doc/japanese/japanese.jis new file mode 100644 index 0000000000..69e034c6d1 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/japanese/japanese.jis @@ -0,0 +1,642 @@ +This is the file japanese.jis of the CJK macro package ver. 4.1.0 +(20-Nov-1996). + +(Font metric $B$,(B $BF|K\8l(B PS $B%U%)%s%HFbB"$N(B PostScript $B%W%j%s%?!<$H6&MQ$7(B +$B$F;H$&;v$,2DG=$J(B) DNP $B%U%)%s%H$H!"EOJU%U%)%s%H$N;H$$J}$K$D$$$F$^$H$a$F(B +$B$"$j$^$9!#(B + +hbf2gf $B$H6&$K;H$&(B kanji48 font $B$N;H$$J}$OB>$N(B CJK bitmap files $B$HF1$8(B +$B$G$9!#>\:Y$O(B hbf2gf.txt $B$K=q$+$l$F$$$^$9!#(B + + +kanji48 font +------------ + +$B$3$N(B font $B$O$I$3$K$"$j$^$9$+!)(B) + +Host ftp.tex.ac.uk + Location: /pub/archive/fonts/CJK + FILE -rw-rw-r-- 1 ctan TeX 742459 Dec 1 00:01 kanji48.tar.gz +Host ftp.dante.de + Location: /tex-archive/fonts/CJK + FILE -rw-rw-r-- 1 Mr.Ftp server 742459 Dec 1 00:01 kanji48.tar.gz + +$B$^$?$O!"$"$J$?$N%5%$%H$N6a$/$N(B CTAN $B$N%_%i!<$r$7$F$$$k%5%$%H$K$"$j$^$9!#(B + + +$B$I$&$d$C$F(B CJK $B$+$i;H$&$N$G$9$+!)(B) + +$B0J2<$N$h$&$K(B CJK.sty $B$GF|K\8l$NJ8>O$r=q$$$F$/$@$5$$(B: + +with latex: + + \documentclass[a4paper]{article} + \topmargin=-3.5cm + \textheight=26cm + \usepackage{CJK} + \usepackage{indentfirst} + + \begin{document} + \begin{CJK*}{JIS}{song} + + ..... + < "$BF|K\8l$NJ8>O(B" > + ..... + + \end{CJK*} + \end{document} + + +with mulatex: + + \documentclass[a4paper]{article} + .... + \usepackage[global]{CJK} + \usepackage{indentfirst} + + \begin{document} + \begin{CJK*}{}{} + + ..... + < "$BF|K\8l$NJ8>O(B" > + ..... + + \end{CJK*} + \end{document} + + +CJK $B%Q%C%1!<%8$O(B CJK $B$H(B CJK* $B$H$$$$D$N4D6-$rDs6!$7$^$9!#(BCJK* $B$N4D6-(B +$B$O(B CJK $BJ8;z(B($BF|K\8l!"4Z9q8l!"Cf9q8l(B)$B$N8e$m$N6uGr$r05=L$7$^$9!#(BCJK $B$N4D(B +$B6-$O05=L$7$^$;$s!#(B + +$BF|K\8l$7$+=q$+$J$$$N$G$"$l$P!"(BCJK* $B$N4D6-$r;H$&$Y$-$G$7$g$&!#$I$&$7$F(B +$B$b(B(CJK* $B4D6-$NCf$G(B) CJK $BJ8;z$N8e$K6uGr$,I,MW$J>l9g$K$O(B `\ ' $B$d(B `{}' $B$J(B +$B$I$N$h$&$J(B TeX $B%3%^%s%I$r;H$o$J$1$l$P$J$j$^$;$s!#(B + +$B$^$?!"F|K\8l0J30$N8@8l$NCf$G$bF|K\8l$r=q$/$3$H$,$G$-$k$h$&$K!"(Bmulatex +$B$r;H$&$J$i!"(B + + \usepackage[global]{CJK} + +$B$H@k8@$9$k;v$r6/$/?d>)$7$^$9!#>\:Y$O(B mule2cjk.doc $B$r8+$F2<$5$$!#(B + + +DNP $B%U%)%s%H(B +------------ + +DNP fonts $B$H$O$J$s$G$9$+!)(B) + +DNP $B$H$OF|K\$NBg<j0u:~2q<R$G$"$kBgF|K\0u:~$N$3$H$G$9!#(BDNP $B%U%)%s%H$OBg(B +$BF|K\0u:~$K$h$C$F:n$i$l$?>&MQ%U%)%s%H$G$9!#<+J,$N%5%$%H$K$9$G$K(B DNP $B%U%)(B +$B%s%H$,%$%s%9%H!<%k$5$l$F$$$k$J$i!"$=$l$r$D$+$&$Y$-$G$7$g$&!#(BDNP $B%U%)%s(B +$B%H$r%(%_%e%l!<%H$9$k$?$a$KEOJU%U%)%s%H$r%+%9%?%^%$%:$7$?EOJU(B DNP $B%U%)(B +$B%s%H$O(B freeware $B$H$7$F;HMQ$9$k$3$H$,$G$-$^$9!#(BDNP $B%U%)%s%H$r%(%_%e%l!<(B +$B%H$9$kJ}K!$O%7%s%\%j%C%/%j%s%/$G$9!#(B + +$B$3$N(B font $B$O$I$3$K$"$j$^$9$+!)(B ) + + watanabe-dnp (pk files) + ftp.math.s.chiba-u.ac.jp://tex/watanabe-dnp/300 + jb10-300pk.tar.gz jb10-622pk.tar.gz jm10-329pk.tar.gz + jm10-746pk.tar.gz jb10-329pk.tar.gz jb10-746pk.tar.gz + jm10-360pk.tar.gz jm8-300pk.tar.gz jb10-360pk.tar.gz + jb8-300pk.tar.gz jm10-432pk.tar.gz jm9-300pk.tar.gz + jb10-432pk.tar.gz jb9-300pk.tar.gz jm10-518pk.tar.gz + jb10-518pk.tar.gz jm10-300pk.tar.gz jm10-622pk.tar.gz + tfm files + ftp.math.s.chiba-u.ac.jp://tex/watanabe-dnp/tfm-dnp.tar.gz + ftp.math.s.chiba-u.ac.jp://tex/watanabe-dnp/tfm.tar.gz + tools for symbolic link + ftp.math.s.chiba-u.ac.jp://tex/watanabe-dnp/fake.tar.gz + +$B$I$&$d$C$F%;%C%H%"%C%W$9$k$N$G$7$g$&$+!)(B) + + $B$"$J$?$N(B font $B%G%#%l%/%H%j$r(B $fonts $B$H2>Dj$7$^$9!#(B + (e.g. /usr/local/lib/tex/fonts/japan) + $B$5$i$K!">e5-$N%U%!%$%k$NCV$+$l$F$$$k%G%#%l%/%H%j$r(B $src $B$H2>Dj(B + $B$7$^$9!#(B + (e.g. /usr/local/src) + + ftp server $B$+$i(B get $B$7$?%U%!%$%k$rE83+$7$^$9!#(B + + % cd $src + % gunzip -c fake.tar.gz | tar xvf - + % gunzip -c jd....pk.tar.gz | tar xvf - + % gunzip -c jm....pk.tar.gz | tar xvf - + % gunzip -c tfm.tar.gz | tar xvf - + + $B%G%#%l%/%H%j$N:n@.!#(B + + % cd $fonts + % mkdir $fonts/watanabe-dnp + % mkdir $fonts/watanabe-dnp/jd300 + % mkdir $fonts/watanabe-dnp/tfm + + $B%U%!%$%k$r(B copy $B$7$^$9!#(B + + % cd $fonts/watanabe-dnp + % cp $src/fake/* . + % cp $src/tfm/* tfm + % cp $src/*pk/*pk jd300 + + $BA4$F$NEOJU%U%)%s%H$r:n@.$7$^$9!#(B + + % make mk-300ex + + $B%7%s%\%j%C%/%j%s%/$rD%$j$^$9!#(B + + % mkdir $fonts/dnp + % cd $fonts/dnp + % cp $fonts/watanabe-dnp/LNFAKE . + + $B<!$K(B dnp $B%G%#%l%/%H%j$N(B `LNFAKE' $B$rJT=8$7$^$9!#(B`wdir' $B$NItJ,$r(B + $B$"$J$?$,EOJU(B DNP $B%U%)%s%H$r%$%s%9%H!<%k$7$?%G%#%l%/%H%j$K%;%C%H(B + $B$7$^$9!#(B + + wdir=../watanabe-dnp/jd300/ + + $B$=$N8e!"0J2<$r<B9T$7$F2<$5$$!#(B + + % LNFAKE jm dm + % LNFAKE jb dg + + + $B%$%s%9%H!<%k8e$N%G%#%l%/%H%j!<%D%j!<$O0J2<$N$h$&$K$J$j$^$9(B: + + $fonts/ +- watanabe-dnp/ +-jd300/ (all pk files) + | | + | +-tfm/ + | | + | +-Makefile, FAKEDNP, FAKETFM, fake.c ... + | + +- dnp/ + + $fonts/watanabe-dnp/jd300 $B$H(B $fonts/dnp $B$@$1$,I,MW$J$N$G!"(B + $fonts/watanabe-dnp/tfm/ $B$dI,MW$NL5$$%U%!%$%k$O:o=|$7$F9=$$$^$;$s!#(B + + tfm $B$r%$%s%9%H!<%k$7$F$"$k%G%#%l%/%H%j$K0\$C$F!"0J2<$r<B9T$7$F$/$@(B + $B$5$$!#(B + + + % gunzip -c tfm-dnp.tar.gz | tar xvf - + + $B$=$l$+$i!"(Btfm-dnp $B$N%U%k%Q%9$r4D6-JQ?t(B TEXFONTS $B$KDI2C$7$F2<$5$$!#(B + + +$B$I$&$d$C$F(B CJK $B$+$i;H$&$N$G$9$+!)(B) + +DNP $B%U%)%s%H$G(B CJK.sty $B$r;H$&Nc$G$9!#(B + +with latex: + + \documentclass[a4paper]{article} + \topmargin=-3.5cm + \textheight=26cm + \usepackage{CJK} + \usepackage{indentfirst} + + \begin{document} + \begin{CJK*}[dnp]{JIS}{song} + + < "$BF|K\8l$NJ8>O(B" > + + \end{CJK*} + \end{document} + + +with mulatex: + + \documentclass[a4paper]{article} + .... + \usepackage[global]{CJK} + \usepackage{indentfirst} + + \CJKfontenc{JIS}{dnp} + + \begin{document} + \begin{CJK*}{}{} + + < "$BF|K\8l$NJ8>O(B" > + + \end{CJK*} + \end{document} + + +[$B$J$<!"(Bmulatex $B$H6&$K(B `\begin{CJK*}[dnp]{}{}' $B$H=q$$$F$O$$$1$J$$(B +$B$+$K$D$$$F$O!"(Bmule2cjk.doc $B$rFI$s$G2<$5$$(B] + + +$BEOJU(B $B%U%)%s%H(B +------------- + +$B%*%j%8%J%k$NEOJU%U%)%s%H$b$^$?!"(BCJK $B$N4D6-$G;H$&;v$,=PMh$^$9!#(B + +$B$3$N(B font $B$O$I$3$K$"$j$^$9$+!)(B) + + watanabe-jfonts (pk files) + ftp.iij.ad.jp://pub/TeX/fonts/watanabe-jfonts/300 + b250.lzh b274.lzh b300.lzh b329.lzh b360.lzh + b432.lzh b518.lzh b622.lzh b746.lzh m250.lzh + m274.lzh m300.lzh m329.lzh m360.lzh m432.lzh + m518.lzh m622.lzh m746.lzh + + ftp.iij.ad.jp://pub/TeX/fonts/watanabe-jfonts/400 + + tfm files + ftp.iij.ad.jp://pub/TeX/fonts/watanabe-jfonts/tfmfiles.lzh + + +$B$I$&$d$C$F(B CJK $B$+$i;H$&$N$G$9$+!)(B) + +$BEOJU%U%)%s%H$+$i(B CJK $B$r;H$&Nc$r0J2<$K<($7$^$9!#(B + +with latex: + + \documentclass[a4paper]{article} + \topmargin=-3.5cm + \textheight=26cm + \usepackage{CJK} + \usepackage{indentfirst} + + \begin{document} + \begin{CJK*}[wn]{JIS}{song} + + < "$BF|K\8l$NJ8>O(B" > + + \end{CJK*} + \end{document} + + +with mulatex: + + \documentclass[a4paper]{article} + .... + \usepackage[global]{CJK} + \usepackage{indentfirst} + + \CJKfontenc{JIS}{wn} + + \begin{document} + \begin{CJK*}{}{} + + < "$BF|K\8l$NJ8>O(B" > + + \end{CJK*} + \end{document} + + +compilation and coding-system +----------------------------- + +$B$b$7!"(Blatex $B%U%!%$%k$r(B latex $B%3%^%s%I$r;H$C$F%3%s%Q%$%k$9$k$J$i!"%U%!(B +$B%$%k$rF|K\8l(B EUC $B$GJ]B8$7$J$1$l$P$J$j$^$;$s!"$=$7$F(B + + latex yourfile + +$B$H$7$F(B latex $B%U%!%$%k$r=hM}$7$F2<$5$$!#(B + +[$B%U%!%$%k$r(B SJIS $B$GJ]B8$9$k;v=PMh$^$9!#$=$N;~$O(B CJK $B$N4D6-$K$*$1$k%(%s(B +$B%3!<%G%#%s%0%Q%i%a!<%?$r(B JIS $B$NBe$o$j$K(B SJIS $B$K$7$J$1$l$P$J$j$^$;$s!#(B +SJIS$B$N4D6-$G$b(B JIS $B$N%U%)%s%H$r;H$$$^$9!#(B] + +$B$b$7(B latex $B%U%!%$%k$r(B mulatex $B%3%^%s%I$r;H$C$F%3%s%Q%$%k$9$k$J$i!"(B +latex file $B$rJ]B8$9$k;~$K(B coding $B%7%9%F%`$K4X$7$F$$$/$D$+$NA*Br;h$r;}(B +$B$D;v$,=PMh$^$9!#(BCJK $B%Q%C%1!<%8$K%G%U%)%k%H$GIU$$$FMh$k(B mulatex $B$r;H$&(B +$B$J$i(B latex file $B$r(B Mule $B$N(B internal code$B$GJ]B8$7$F!"(B + + mulatex yourfile + +$B$H$7$F(B latex $B%U%!%$%k$r=hM}$7$F2<$5$$!#(B + +[mulatex $B$O(B CJK $B%Q%C%1!<%8$N(B utils/mule2cjk $B$H$$$&%G%#%l%/%H%j$KCV$+(B +$B$l$F$$$^$9!#(Bmule2cjk.doc $B$r;2>H$7$F2<$5$$!#(B] + +$B$7$+$7!"(BMule $B$N(B internal code $B$,I8=`$N%3!<%I7O$G$J$$$H$+!"(BMule $B0J30$G(B +$BFI$a$J$$$H$+!">-MhJQ$o$C$F$7$^$&$+$b$7$l$J$$$H$$$&M}M3$G!"(Blatex file +$B$r(B Mule $B$N(B internal code $B$GJ]B8$7$?$/$J$$>l9g$O!"(Blatex file $B$r!"(B +ISO2022 $B%(%s%3!<%G%#%s%0$r4p$K$7$?(B *junet* $B$GJ]B8$9$k$+!"(BX window +system $B$G(B Compound Text Encoding $B$H$7$F;H$o$l$F$$$k(B *ctext* $B$GJ]B8$9$k(B +$B$3$H$,$G$-$^$9!#0J2<$N$&$A$N0l$D$N(B mulatex shell script $B$GCV$-49$($F2<(B +$B$5$$!#(B + + : mulatex for *junet* + + % cat mulatex + #!/bin/sh + # mulatex : LaTeX2e for Mule's *junet* encoding + # + fname=`echo $1 | sed 's/\.[^\.]*$//g'` + coco '*junet*' '*internal*' < $1 | mule2cjk > $fname.cjk + st=$? + if [ $st -ne 0 ] ; then + exit $st + fi + latex $fname.cjk + st=$? + if [ -f $fname.cjk ] ; then + /bin/rm -f $fname.cjk + fi + exit $st + % + + : mulatex for *ctext* + + % cat mulatex + #!/bin/sh + # mulatex : LaTeX2e for Mule's *ctext* encoding + # + fname=`echo $1 | sed 's/\.[^\.]*$//g'` + coco '*ctext*' '*internal*' < $1 | mule2cjk > $fname.cjk + st=$? + if [ $st -ne 0 ] ; then + exit $st + fi + latex $fname.cjk + st=$? + if [ -f $fname.cjk ] ; then + /bin/rm -f $fname.cjk + fi + exit $st + % + +auctex $BL5$7$G(B mule $B$r;H$&>l9g$O!"0J2<$N(B Lisp code $B$r=i4|2=%U%!%$%k(B +`.emacs' $B$KIU$12C$($F2<$5$$!#(B + + : `.emacs' for *junet* + + (add-hook 'LaTeX-mode-hook + (function (lambda () + (set-file-coding-system *junet*) + ))) + + : `.emacs' for *ctext* + + (add-hook 'LaTeX-mode-hook + (function (lambda () + (set-file-coding-system *ctext*) + ))) + +`coco' $B$O(B Mule $B$N(B package $B$K4^$^$l$F$$$k%W%m%0%i%`$G$9!#(B + + +auctex +------ + +auctex $B$O(B TeX $B$H(B LaTeX $B%f!<%6!<$N$?$a$N(B elisp $B%Q%C%1!<%8$G$9!#(BCJK $B$N4D(B +$B6-$r(B auctex $B$KE}9g$9$k$N$O4JC1$G$9!#;H$$J}$O!"(Bdvi $B%U%!%$%k$r%3%s%Q%$%k(B +$B$9$k$?$a$N%?%$%W%;%C%H%3%^%s%I$,(B latex $B$G$O$J$/(B mulatex $B$G$"$kE@$r=|$1(B +$B$P!"I8=`$N(B LaTeX $B$HA4$/F1$8$G$9!#0J2<$N%3!<%I$r$"$J$?$N(B `.emacs' $B$+(B +($B$b$72DG=$J$i(B tex-site.el $B$K(B)$BDI2C$7$F2<$5$$!#(B + + : `.emacs' for auctex users + + (add-hook 'LaTeX-mode-hook + (function (lambda () + (set-file-coding-system *junet*) + (nconc + TeX-command-list + (list + (list "MuLaTeX" "aucmulatex %t" 'TeX-run-LaTeX nil t) + ) + ) + (setq TeX-command-default "MuLaTeX") + ))) + + + : mulatex for auctex users + + % cat aucmulatex + #!/bin/sh + # aucmulatex : LaTeX2e in auctex mode for Mule's *junet* encoding + # + fname=`echo $1 | sed 's/\.[^\.]*$//g'` + coco '*junet*' '*internal*' < $1 | mule2cjk > $fname.cjk + st=$? + if [ $st -ne 0 ] ; then + exit $st + fi + latex \\nonstopmode\\input{$fname.cjk} + st=$? + if [ -f $fname.cjk ] ; then + /bin/rm -f $fname.cjk + fi + exit $st + % + + $B$3$NNc$O!"(B*junet* $B$K$D$$$F$N$_=q$+$l$F$$$^$9$,!"$b$A$m$sB>$N%3!<%I(B + $B7O$G$bF1MM$K;H$($^$9!#(B + + +auctex (yet another usage) +---------------------------- + +Shell $B%9%/%j%W%H$r;H$C$?(B mulatex $B$NJQ$o$j$K(B $BD>@\(B elisp $B$r=q$/;v$b$G$-(B +$B$^$9!#(BLaTeX $B%U%!%$%k$,(B *junet* $B$d(B *ctext*, *euc-japan* $B$H$$$C$?%3!<%I(B +$B7O$G=q$+$l$F$$$?$H$7$F$b!"(BMule $B$O<+F0E*$K$=$l$i$N%3!<%I$rH=JL$9$k$G$7$g(B +$B$&!#0J2<$N%3!<%I$r$"$J$?$N(B `.emacs' $B$+(B($B$b$72DG=$J$i(B tex-site.el $B$K(B)$BDI(B +$B2C$7$F2<$5$$!#(B + + : `.emacs' for auctex user (for Mule 2.3 based on emacs 19.28) + + (add-hook 'LaTeX-mode-hook + (function (lambda () + (nconc + TeX-command-list + (list + (list "MuLaTeX" "latex '\\nonstopmode\\input{%c}'" + 'TeX-run-MuLaTeX nil t) + ) + ) + (nconc + TeX-expand-list + (list + (list "%c" 'file "cjk") + )) + (setq TeX-command-default "MuLaTeX") + ))) + + (define-program-coding-system nil "mule2cjk" *internal*) + + (defvar TeX-LaTeX-CJK-tmpfile nil) + + (defun TeX-MuLaTeX-sentinel (process name) + (prog1 + (TeX-LaTeX-sentinel process name) + (delete-file TeX-LaTeX-CJK-tmpfile))) + + ; customized from TeX-run-LaTeX + (defun TeX-run-MuLaTeX (name command file) + "Run mule2cjk and latex on current TeX buffer." + + (let ((TeX-LaTeX-CJK-tmpbuffer (generate-new-buffer-name "cjk"))) + (setq TeX-LaTeX-CJK-tmpfile (concat file ".cjk")) + (generate-new-buffer TeX-LaTeX-CJK-tmpbuffer) + (call-process-region + (point-min) (point-max) "mule2cjk" nil TeX-LaTeX-CJK-tmpbuffer nil) + (set-buffer TeX-LaTeX-CJK-tmpbuffer) + (write-region (point-min) (point-max) + TeX-LaTeX-CJK-tmpfile nil nil *internal*) + + (let ((process (TeX-run-format name command file))) + (setq TeX-sentinel-function 'TeX-MuLaTeX-sentinel) + (if TeX-process-asynchronous + process + (TeX-synchronous-sentinel name file process))) + (kill-buffer TeX-LaTeX-CJK-tmpbuffer))) + + +indentfirst.sty +--------------- + +$BF|K\8lJ8>O$NCJMn$N%$%s%G%s%H$N$D$1J}$O%*%j%8%J%k$N(B latex $B$N%$%s%G%s%H$N(B +$BIU$1J}$H0[$C$F$$$^$9!#$3$NLdBj$r2r7h$9$k$?$a$K!"(B`indentfirst.sty' $B$H$$(B +$B$&!">o$K:G=i$NCJMn$G%$%s%G%s%H$9$k$?$a$N%9%?%$%k%U%!%$%k$,(B LaTeX2e $B$N(B +official tool $B$NCf$K$"$j$^$9!#(B + +indentfirst.sty $B$O$I$3$K$"$j$^$9$+!)(B) + +Host ftp.dante.de + + Location: /tex-archive/macros/latex/packages/tools + FILE rw-rw-r-- 1492 Dec 14 17:46 indentfirst.dtx + +$B$^$?$O!"$"$J$?$N%5%$%H$N6a$/$N(B CTAN $B$N%_%i!<$r$7$F$$$k%5%$%H$K$"$j$^$9!#(B + +/pub/TeX/CTAN/macros/latex/packages/tools $B$K$"$kA4$F$N%U%!%$%k$r(B get +$B$7$F$=$3$K4^$^$l$k(B readme.txt $B$rFI$s$G$+$i%$%s%9%H!<%k$7$?J}$,$$$$$G(B +$B$7$g$&!#$=$NCf$K$ONc$($P(B tabular $B$d(B verbatim $B$H$$$C$?Hs>o$KM-MQ$J%9%?(B +$B%$%k%U%!%$%k$,4^$^$l$F$$$^$9!#(B + +\maketitle +---------- + +$BF|K\8l$N%?%$%H%k$r=q$-$?$$;~$O!"(B\maketitle $B%3%^%s%I$O(B CJK $B$N4D6-$NFbB&(B +$B$K$J$/$F$O$$$1$^$;$s!#$J$<$J$i!"F|K\8l$N%?%$%H%k$O(B CJK $BJ8;z$r4^$`$+$i(B +$B$G$9!#(B + +$BNc(B) + + \documentclass[a4paper]{article} + .... + \usepackage[global]{CJK} + \usepackage{indentfirst} + + \begin{CJK*}{}{} + \title{ < "$BF|K\8l$NJ8>O(B" > } + \author{ < "$BF|K\8l$NJ8>O(B" > } + \end{CJK*} + + \begin{document} + \begin{CJK*}{}{} + + \maketitle + ..... + < "$BF|K\8l$NJ8>O(B" > + ..... + + \end{CJK*} + \end{document} + + +JIS.cap +------- + +CJK $B$G$OF|K\8l(B caption $B$r;H$&$3$H$b$G$-$^$9!#$=$N$?$a$K$O!"(B($BI8=`$N(B +class $B$rCV$-49$($F$7$^$&(B) koma-script $B%Q%C%1!<%8$,I,MW$G$9!#(B($B>\$7$/$O(B +CJK.txt $B$N(B captions $B$r;2>H$7$F$/$@$5$$!#(B) + +[CJK 4.1.0 $B$h$jA0$N%P!<%8%g%s$G$O$3$N5!G=$OF|K\8l$K4X$7$F$&$^$/F0:n$7(B + $B$^$;$s!#(B] + + +Koma-script $B$O$I$3$K$"$j$^$9$+!)(B) + +Host ftp.dante.de + + Location: /tex-archive/macros/latex/contrib/supported + DIRECTORY rwxr-xr-x 1024 Jan 23 12:20 koma-script + +$B$^$?$O!"$"$J$?$N%5%$%H$N6a$/$N(B CTAN $B$N%_%i!<$r$7$F$$$k%5%$%H$K$"$j$^$9!#(B + +$B$I$&$d$C$F(B CJK $B$+$i;H$&$N$G$9$+!)(B) + +CJK JIS $B4D6-$NCf$G0J2<$N%3%^%s%I$r=q$/;v$K$h$C$F(B + + \CJKcaption{JIS} + +$BF|K\8l(B caption $B$rM-8z$K$9$k;v$,$G$-$^$9!#(B + + CJK.sty $B$H(B Koma-script $B$GF|K\8l(B caption $B$r;H$&$?$a$K$O(B, $B0J2<$NNc$r(B + $B$NMM$K$7$F$/$@$5$$!#(B + + % srcartcl is a stylefile of Koma-script + \documentclass{scrartcl} + \topmargin=-3.5cm + \textheight=26cm + \usepackage{CJK} + \usepackage{indentfirst} + + \begin{document} + \begin{CJK*}[dnp]{JIS}{song} + \CJKcaption{JIS} + + < "$BF|K\8l$NJ8>O(B " > + + % $BF|K\8l(B Caption + \refname{< "$BF|K\8l$NJ8>O(B " >} + + \end{CJK*} + \end{document} + + +\newpage +-------- + +CJK $B$N%3%^%s%I$,L$Dj5A$G$"$k$H$$$&%(%i!<$K=P$/$o$9>l9g$K$O!"(BCJK $B4D6-$,(B +$B=*N;$9$kD>A0$G$=$N%Z!<%8$r(B($B%a%b%j$+$i%U%!%$%k$X(B)$B=q$-=P$9I,MW$,$"$j$^$9!#(B +$B$J$<$J$i!"(BLaTeX $B$O(B CJK $B4D6-$r=*N;8e$K(B(CJK $B%3%^%s%I$r4^$`(B)$B%X%C%@$r(B($B%U%!(B +$B%$%k$X(B)$B=q$-9~$`$3$H$,$"$k$+$i$G$9!#(B($B>\$7$/$O(B CJK.txt $B$N(B Possible +errors $B$r;2>H$7$F$/$@$5$$!#(B) + + +$BNc(B) + + \documentclass[a4paper]{article} + \usepackage{CJK} + \usepackage{indentfirst} + + \begin{document} + \begin{CJK*}{JIS}{song} + + < "$BF|K\8l$NJ8>O(B" > + ..... + \newpage + \end{CJK*} + \end{document} + + +$BF|K\8l(B Postscript $B%W%j%s%?!<(B +---------------------------- + +$B<+J,$N%5%$%H$K(B /Ryumin-Light $B$H(B /GothicBBB-Medium $B$r<BAu$7$F$$$k$+!"$b(B +$B$7$/$O%(%_%e%l!<%H$G$-$kF|K\8l(B PS $B%U%)%s%H$rFbB"$7$F$$$k(B PostScript $B%W(B +$B%j%s%?!<$,$"$l$P!"(BDNP $B%U%)%s%H%a%H%j%C%/$r;}$D(B dnp-tfm (DNP fonts $B;2>H(B) +$B$K$h$C$F:n$i$l$?(B dvi $B%U%!%$%k$r4JC1$K0u:~$9$k;v$,$G$-$^$9!#(Bdvi2ps $B$OF|(B +$BK\8l(B PostScript $B%W%j%s%?$N%I%i%$%P!<%=%U%H$G$9!#$^$?F1MM$K(B DNP $B%U%)%s%H(B +$B$HF1$8%a%H%j%C%/$r;}$DEOJU(B DNP $B%U%)%s%H$r(B preview $B$K;H$&$3$H$b$G$-$^$9!#(B + +dvi2ps $B$O$I$3$K$"$j$^$9$+!)(B) + +Host ftp.math.s.chiba-u.ac.jp + + Location: /tex + FILE rw-r--r-- 112970 Dec 1 1994 dvi2ps-1.91j.tar.gz + + +------------------ +Version 1.0 Beta7 (1996/02/03) + Tanaka Shinichiro Email: tanaka3@ifos.se.fujitsu.co.jp + + + +---End of japanese.jis--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/japanese/japanese.txt b/language/chinese/CJK/cjk-4.8.5/doc/japanese/japanese.txt new file mode 100644 index 0000000000..e637fdb0d7 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/japanese/japanese.txt @@ -0,0 +1,637 @@ +This is the file japanese.txt of the CJK macro package ver. 4.1.0 +(20-Nov-1996). + +It concentrates on the use of DNP fonts (their font metrics can be used +in conjunction with PS printers which have their own builtin Japanese fonts) +and watanabe jfonts. + +The use of the kanji48 bitmap font together with hbf2gf is similar to all +other CJK bitmap files and is documented in detail in the file hbf2gf.txt . + + +kanji48 font +------------ + +Where is the font ? ) + +Host ftp.tex.ac.uk + Location: /pub/archive/fonts/CJK + FILE -rw-rw-r-- 1 ctan TeX 742459 Dec 1 00:01 kanji48.tar.gz +Host ftp.dante.de + Location: /tex-archive/fonts/CJK + FILE -rw-rw-r-- 1 Mr.Ftp server 742459 Dec 1 00:01 kanji48.tar.gz + +or your nearest CTAN mirror ftp sites. + + +How to use it in CJK ? ) + +Use CJK.sty with Japanese as follows: + +with latex: + + \documentclass[a4paper]{article} + \topmargin=-3.5cm + \textheight=26cm + \usepackage{CJK} + \usepackage{indentfirst} + + \begin{document} + \begin{CJK*}{JIS}{song} + + ..... + < Japanese text > + ..... + + \end{CJK*} + \end{document} + + +with mulatex: + + \documentclass[a4paper]{article} + .... + \usepackage[global]{CJK} + \usepackage{indentfirst} + + \begin{document} + \begin{CJK*}{}{} + + ..... + < Japanese text > + ..... + + \end{CJK*} + \end{document} + + +The package CJK offers two environments: CJK and CJK*. CJK* suppresses +spaces followed by a CJK character, whereas CJK doesn't. + +If you write only Japanese, you should use the CJK* environment. If you +really need a space directly followed by a JIS character, you must then use +TeX commands like `\ ', `{} ', etc. + +It is highly recommended to declare + + \usepackage[global]{CJK} + +if you use mulatex to be able to write Japanese inside of other +environments. See mule2cjk.doc for details. + + +DNP fonts +--------- + +What are DNP fonts ? ) + +DNP stands for "Dai Nippon Printing" (a big printing company in Japan). DNP +fonts are commercial fonts made by this company; if real DNP fonts have been +already installed at your site, you should use them. But watanabe-dnp fonts, +which are customized from watanabe-jfonts to emulate DNP fonts, are +freeware. The method of emulation is symbolic name linking. + + +Where are the fonts ? ) + + watanabe-dnp (pk files) + ftp.math.s.chiba-u.ac.jp://tex/watanabe-dnp/300 + jb10-300pk.tar.gz jb10-622pk.tar.gz jm10-329pk.tar.gz + jm10-746pk.tar.gz jb10-329pk.tar.gz jb10-746pk.tar.gz + jm10-360pk.tar.gz jm8-300pk.tar.gz jb10-360pk.tar.gz + jb8-300pk.tar.gz jm10-432pk.tar.gz jm9-300pk.tar.gz + jb10-432pk.tar.gz jb9-300pk.tar.gz jm10-518pk.tar.gz + jb10-518pk.tar.gz jm10-300pk.tar.gz jm10-622pk.tar.gz + tfm files + ftp.math.s.chiba-u.ac.jp://tex/watanabe-dnp/tfm-dnp.tar.gz + ftp.math.s.chiba-u.ac.jp://tex/watanabe-dnp/tfm.tar.gz + tools for symbolic link + ftp.math.s.chiba-u.ac.jp://tex/watanabe-dnp/fake.tar.gz + +How to set them up ? ) + + Suppose your fonts directory is $fonts , + (e.g. /usr/local/lib/tex/fonts/japan) + and your source directory in which the above files are put is $src. + (e.g. /usr/local/src) + + You should now expand all fonts that you've downloaded from the ftp + server. + + % cd $src + % gunzip -c fake.tar.gz | tar xvf - + % gunzip -c jd....pk.tar.gz | tar xvf - + % gunzip -c jm....pk.tar.gz | tar xvf - + % gunzip -c tfm.tar.gz | tar xvf - + + Make directories. + + % cd $fonts + % mkdir $fonts/watanabe-dnp + % mkdir $fonts/watanabe-dnp/jd300 + % mkdir $fonts/watanabe-dnp/tfm + + Copy files. + + % cd $fonts/watanabe-dnp + % cp $src/fake/* . + % cp $src/tfm/* tfm + % cp $src/*pk/*pk jd300 + + Make all watanabe-dnp fonts. + + % make mk-300ex + + Make symbolic links. + + % mkdir $fonts/dnp + % cd $fonts/dnp + % cp $fonts/watanabe-dnp/LNFAKE . + + Next, edit the file `LNFAKE' in the dnp directory. Make sure that + `wdir' is set to the directory where you have installed watanabe-dnp + fonts: + + wdir=../watanabe-dnp/jd300/ + + Then execute, + + % LNFAKE jm dm + % LNFAKE jb dg + + + The directory tree after the installation will look like this: + + $fonts/ +- watanabe-dnp/ +-jd300/ (all pk files) + | | + | +-tfm/ + | | + | +-Makefile, FAKEDNP, FAKETFM, fake.c ... + | + +- dnp/ + + You will need only the directories $fonts/watanabe-dnp/jd300 and + $fonts/dnp. You can remove $fonts/watanabe-dnp/tfm/ together with the + other now unnecessary files. + + Moving to your tfm directory, execute + + % gunzip -c tfm-dnp.tar.gz | tar xvf - + + Then add tfm-dnp (with the full path) to the TEXFONTS environment + variable. + + +How to use them in CJK ? ) + +See the following examples how to use CJK.sty with DNP fonts. + +with latex: + + \documentclass[a4paper]{article} + \topmargin=-3.5cm + \textheight=26cm + \usepackage{CJK} + \usepackage{indentfirst} + + \begin{document} + \begin{CJK*}[dnp]{JIS}{song} + + <Japanese text> + + \end{CJK*} + \end{document} + + +with mulatex: + + \documentclass[a4paper]{article} + .... + \usepackage[global]{CJK} + \usepackage{indentfirst} + + \CJKfontenc{JIS}{dnp} + + \begin{document} + \begin{CJK*}{}{} + + <Japanese text> + + \end{CJK*} + \end{document} + + +[Read the file mule2cjk.doc for an explanation why you can't say + `\begin{CJK*}[dnp]{}{}' with mulatex.] + + +watanabe jfonts +--------------- +You can also use the original watanabe jfonts in a CJK environment. + +Where are the fonts ? ) + + watanabe-jfonts (pk files) + ftp.iij.ad.jp://pub/TeX/fonts/watanabe-jfonts/300 + b250.lzh b274.lzh b300.lzh b329.lzh b360.lzh + b432.lzh b518.lzh b622.lzh b746.lzh m250.lzh + m274.lzh m300.lzh m329.lzh m360.lzh m432.lzh + m518.lzh m622.lzh m746.lzh + + ftp.iij.ad.jp://pub/TeX/fonts/watanabe-jfonts/400 + + tfm files + ftp.iij.ad.jp://pub/TeX/fonts/watanabe-jfonts/tfmfiles.lzh + + +How to use them in CJK ? ) + +See the following examples how to use CJK.sty with watanabe jfonts. + +with latex: + + \documentclass[a4paper]{article} + \topmargin=-3.5cm + \textheight=26cm + \usepackage{CJK} + \usepackage{indentfirst} + + \begin{document} + \begin{CJK*}[wn]{JIS}{song} + + <Japanese text> + + \end{CJK*} + \end{document} + + +with mulatex: + + \documentclass[a4paper]{article} + .... + \usepackage[global]{CJK} + \usepackage{indentfirst} + + \CJKfontenc{JIS}{wn} + + \begin{document} + \begin{CJK*}{}{} + + <Japanese text> + + \end{CJK*} + \end{document} + + +compilation and coding-system +----------------------------- + +If you use `latex' to compile latex files, you must save these files in +Japanese EUC and say + + latex yourfile + +to process these files. + +[You can also save the file in SJIS encoding; then you must use `SJIS' + instead of `JIS' as the encoding parameter in the CJK environment. Note + that SJIS uses the JIS fonts.] + +If you use `mulatex' to compile latex files, there are several possibilities +in which coding-system you can save your latex files. If you use the +original mulatex script file that comes with the CJK package, you must save +these files in Mule's internal code and say + + mulatex yourfile + +to process these files. + +[mulatex is in utils/mule2cjk in CJK package directory. ref: mule2cjk.doc] + +But if you do not like the idea of saving latex files in Mule's internal +encoding (this coding-system is not a standard coding-system, can not be +read without Mule and will be changed in the future), you can save them in +*junet*, which is based on ISO-2022 encoding, or in *ctext*, which is used +in the X window system as Compound Text Encoding. Then replace the mulatex +shell script with one of the following examples. + + + : mulatex for *junet* + + % cat mulatex + #!/bin/sh + # mulatex : LaTeX2e for Mule's *junet* encoding + # + fname=`echo $1 | sed 's/\.[^\.]*$//g'` + coco '*junet*' '*internal*' < $1 | mule2cjk > $fname.cjk + st=$? + if [ $st -ne 0 ] ; then + exit $st + fi + latex $fname.cjk + st=$? + if [ -f $fname.cjk ] ; then + /bin/rm -f $fname.cjk + fi + exit $st + % + + : mulatex for *ctext* + + % cat mulatex + #!/bin/sh + # mulatex : LaTeX2e for Mule's *ctext* encoding + # + fname=`echo $1 | sed 's/\.[^\.]*$//g'` + coco '*ctext*' '*internal*' < $1 | mule2cjk > $fname.cjk + st=$? + if [ $st -ne 0 ] ; then + exit $st + fi + latex $fname.cjk + st=$? + if [ -f $fname.cjk ] ; then + /bin/rm -f $fname.cjk + fi + exit $st + % + +If you use Mule (without auctex), add one of the following pieces of +Lisp code to your .emacs initialization file. + + : `.emacs' for *junet* + + (add-hook 'LaTeX-mode-hook + (function (lambda () + (set-file-coding-system *junet*) + ))) + + : `.emacs' for *ctext* + + (add-hook 'LaTeX-mode-hook + (function (lambda () + (set-file-coding-system *ctext*) + ))) + +The program `coco' is included in the Mule package. + + +auctex +------ + +auctex is an elisp package for TeX and LaTeX users. It is easy to integrate +the CJK environment into auctex; the usage is very similar to ordinary LaTeX +with the exception that the typesetting command to compile a .dvi file is +not `latex' but `mulatex'. + +Add the following code to your .emacs file (or, if possible, to +tex-site.el). + + : `.emacs' for auctex users + + (add-hook 'LaTeX-mode-hook + (function (lambda () + (set-file-coding-system *junet*) + (nconc + TeX-command-list + (list + (list "MuLaTeX" "aucmulatex %t" 'TeX-run-LaTeX nil t) + ) + ) + (setq TeX-command-default "MuLaTeX") + ))) + + + : mulatex for auctex users + + % cat aucmulatex + #!/bin/sh + # aucmulatex : LaTeX2e in auctex mode for Mule's *junet* encoding + # + fname=`echo $1 | sed 's/\.[^\.]*$//g'` + coco '*junet*' '*internal*' < $1 | mule2cjk > $fname.cjk + st=$? + if [ $st -ne 0 ] ; then + exit $st + fi + latex \\nonstopmode\\input{$fname.cjk} + st=$? + if [ -f $fname.cjk ] ; then + /bin/rm -f $fname.cjk + fi + exit $st + % + + This example describes only the usage for *junet*. Of course, you can use + other coding systems too. + + +auctex (yet another usage) +---------------------------- + +You can directly write elisp code instead of using a mulatex shell script +(not for the faint-hearted :-). If TeX files are written in *junet*, *ctext*, +*euc-japan* ... encoding, Mule will understand the input files automatically. +Add the following code to your .emacs file (or, if possible, to tex-site.el). + + : `.emacs' for auctex user (for Mule 2.3 based on emacs 19.28) + + (add-hook 'LaTeX-mode-hook + (function (lambda () + (nconc + TeX-command-list + (list + (list "MuLaTeX" "latex '\\nonstopmode\\input{%c}'" + 'TeX-run-MuLaTeX nil t) + ) + ) + (nconc + TeX-expand-list + (list + (list "%c" 'file "cjk") + )) + (setq TeX-command-default "MuLaTeX") + ))) + + (define-program-coding-system nil "mule2cjk" *internal*) + + (defvar TeX-LaTeX-CJK-tmpfile nil) + + (defun TeX-MuLaTeX-sentinel (process name) + (prog1 + (TeX-LaTeX-sentinel process name) + (delete-file TeX-LaTeX-CJK-tmpfile))) + + ; customized from TeX-run-LaTeX + (defun TeX-run-MuLaTeX (name command file) + "Run mule2cjk and latex on current TeX buffer." + + (let ((TeX-LaTeX-CJK-tmpbuffer (generate-new-buffer-name "cjk"))) + (setq TeX-LaTeX-CJK-tmpfile (concat file ".cjk")) + (generate-new-buffer TeX-LaTeX-CJK-tmpbuffer) + (call-process-region + (point-min) (point-max) "mule2cjk" nil TeX-LaTeX-CJK-tmpbuffer nil) + (set-buffer TeX-LaTeX-CJK-tmpbuffer) + (write-region (point-min) (point-max) + TeX-LaTeX-CJK-tmpfile nil nil *internal*) + + (let ((process (TeX-run-format name command file))) + (setq TeX-sentinel-function 'TeX-MuLaTeX-sentinel) + (if TeX-process-asynchronous + process + (TeX-synchronous-sentinel name file process))) + (kill-buffer TeX-LaTeX-CJK-tmpbuffer))) + + +indentfirst.sty +--------------- + +Japanese style of indenting paragraphs is different from the original latex. +There is a style file called `indentfirst.sty' in the official LaTeX2e +`tools' package which always indents the first paragraph. + +Where is indentfirst.sty ? ) + +Host ftp.dante.de + + Location: /tex-archive/macros/latex/packages/tools + FILE rw-rw-r-- 1492 Dec 14 17:46 indentfirst.dtx + +or your nearest CTAN mirror ftp sites. + +You should get all files in /pub/TeX/CTAN/macros/latex/packages/tools, read +the readme.txt file and install them. There are many, many useful styles in it. +(e.g. tabular or verbatim etc.) + + +\maketitle +---------- + +When you write Japanese titles, make sure that the \maketitle command +is inside of a CJK environment because it contains CJK characters. + +example ) + + \documentclass[a4paper]{article} + .... + \usepackage[global]{CJK} + \usepackage{indentfirst} + + \begin{CJK*}{}{} + \title{ < Japanese Text > } + \author{ < Japanese Text > } + \end{CJK*} + + \begin{document} + \begin{CJK*}{}{} + + \maketitle + ..... + < Japanese Text > + ..... + + \end{CJK*} + \end{document} + + + +JIS.cap +------- + +CJK provides Japanese captions. You need the koma-script package (which is a +replacement of the standard classes) to use the caption files. (ref: `CJK +captions' in CJK.txt) + +[This feature does not work for Japanese in CJK versions prior to 4.1.0] + + +Where is Koma-script ? ) + +Host ftp.dante.de + + Location: /tex-archive/macros/latex/contrib/supported + DIRECTORY rwxr-xr-x 1024 Jan 23 12:20 koma-script + +or your nearest CTAN mirror ftp sites. + +How to use it in CJK ? ) + +Inside of your CJK JIS environment, put + + \CJKcaption{JIS} + +to activate Japanese captions. + + To use CJK.sty and Koma-script for Japanese captions, see the + example below. + + % srcartcl is a stylefile of Koma-script + \documentclass{scrartcl} + \topmargin=-3.5cm + \textheight=26cm + \usepackage{CJK} + \usepackage{indentfirst} + + \begin{document} + \begin{CJK*}[dnp]{JIS}{song} + \CJKcaption{JIS} + + <Japanese text> + + % Japanese Caption + \refname{<Japanese text>} + + \end{CJK*} + \end{document} + + +\newpage +-------- + +If you encounter an undefined CJK command (just before leaving the CJK +environment), it is necessary to flush out the page, because LaTeX sometimes +writes the headers _after_ the environment was closed. (ref: `Possible +errors' in CJK.txt) + + +example ) + + \documentclass[a4paper]{article} + \usepackage{CJK} + \usepackage{indentfirst} + + \begin{document} + \begin{CJK*}{JIS}{song} + + < Japanese text > + ..... + \newpage + \end{CJK*} + \end{document} + + +Japanese PostScript printer +--------------------------- + +If your site has a postscript printer with builtin Japanese PS fonts +that implements /Ryumin-Light and /GothicBBB-Medium, or a printer that +can emulate these fonts, you can easily use it to print out a dvi file +made from dnp-tfm (see DNP fonts). `dvi2ps' is a tool to drive printer +resident Japanese PS fonts. You can also use watanabe-dnp fonts for +previewing, as their metric files are the same. + +Where is dvi2ps ? ) + +Host ftp.math.s.chiba-u.ac.jp + + Location: /tex + FILE rw-r--r-- 112970 Dec 1 1994 dvi2ps-1.91j.tar.gz + + +------------------ +Version 1.0 Beta8 (1996/02/09) + Tanaka Shinichiro Email: tanaka3@ifos.se.fujitsu.co.jp + + + +---End of japanese.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/japanese/jp-fonts.txt b/language/chinese/CJK/cjk-4.8.5/doc/japanese/jp-fonts.txt new file mode 100644 index 0000000000..49d2bae519 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/japanese/jp-fonts.txt @@ -0,0 +1,54 @@ +Data: Japanese Fonts Environment + + +Phototypesetting systems and font makers. + Syaken + Morisawa + Ryobi + +Font makers. + Dai Nippon Screen + Font Works + Ricoh ---> TrueType fonts (MS-mincho, MS-gothic; used in + Japanese MS-Windows) + (some further companies also make Japanese PS fonts, e.g. URW from + Germany) + +Printing companies. + Dai Nippon Printing (DNP) + Tokyo Syoseki Printing + Toppan Printing + (these are only the biggest companies; many further printing + companies are active in Japan) + +(Ref: `Dai' means `Big'. `Nippon' means `Japan'. `Syoseki' means `books'. + Ricoh is not only a font maker.) + + + 1. Syaken Co is the most famous and biggest company dealing with + phototypesetting systems and fonts in Japan. + + 2. Syaken does not make PostScript Fonts. Their fonts are used + only on Syaken's special phototypesetting machines which many + printing companies use. + + 3. Morisawa made Postscript Fonts in cooperation with Adobe Inc. + It is famous that their fonts have strong software copy + protection. + + 4. There are inexpensive PS fonts called `HEISEI Mincho' and + `HEISEI Gothic' made by the Nippon standard association (I + don't know the exact English name of this association). These + fonts are not so beautiful as Morisawa's PS fonts but cheaper. + + 5. In former times pure PostScript printers only had Morisawa's PS + fonts as builtin fonts. Now there are also pure PS printers + that use builtin Heisei fonts. + + 6. The dvi2ps program outputs Morisawa's font metrics. + + +This document contains no information about the relation about ASCII Nihongo +TeX and Syaken's phototypesetting machines. + +Version 1.0B4 (1996/02/09) written by tanaka3@ifos.se.fujitsu.co.jp diff --git a/language/chinese/CJK/cjk-4.8.5/doc/japanese/jp-tex.txt b/language/chinese/CJK/cjk-4.8.5/doc/japanese/jp-tex.txt new file mode 100644 index 0000000000..8effc41832 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/japanese/jp-tex.txt @@ -0,0 +1,50 @@ +Data: NTT-JTeX's Standard Fonts Environment. + + (La)TeX file + | + +--- dnp-tfm (DNP font metrics) + | + dvi file + | + +-----------------------+-----------------------+ + | | | + dvips-5.58 dvips-5.58 dvi2ps-1.91j + | or dvi2ps-1.91j | or dvi2ps-1.91j | + | | | + real DNP fonts watanabe-dnp fonts Japanese PostScript + (pk fonts) (pk fonts) fonts + | | | + | | | + PostScript PostScript Japanese PostScript + Printer Printer Printer + (or dot Printer (or dot Printer + with GhostScript) with GhostScript) + + 1. Real DNP fonts are commercial fonts sold by DNP. + DNP Fonts are *not* PostScript fonts but PK fonts. + + 2. Watanabe DNP fonts are freeware. That have same font metrics as + real DNP Fonts but have different font names. + + 3. DNP fonts are more beautiful than any available freeware fonts. + (The book written about NTT-JTeX is printed by DNP.) + + 4. NTT-JTeX uses DNP Font Metrics by default. + dvi2ps is standard dviware for NTT-JTeX. + + 5. The printer resident PostScript fonts have no relation to DNP + fonts. + + 6. But dvi2ps use `DNP Font Metrics' to drive printer resident + PostScript fonts. + + 7. Recently PostScript fonts are more used than DNP fonts since + Japanese PostScript printers are now inexpensive in Japan. + + +This document contains no information about TrueType and outline (vector) +fonts. + +Version 1.0B4 (1996/02/09) written by tanaka3@ifos.se.fujitsu.co.jp + + diff --git a/language/chinese/CJK/cjk-4.8.5/doc/japanese/preview.txt b/language/chinese/CJK/cjk-4.8.5/doc/japanese/preview.txt new file mode 100644 index 0000000000..574eb29925 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/japanese/preview.txt @@ -0,0 +1,39 @@ +Data: NTT-JTeX's Preview Environment. + + (La)TeX file + | + +--- dnp-tfm (DNP fonts metric) + | + dvi file + | + +-----------------------+-----------------------+ + | | | + | | | + real DNP fonts watanabe-dnp fonts Outline fonts + (pk fonts) (pk fonts) (vector fonts) + | | | + xdvi-20 xdvi-20 [ Now investigating ] + + + 1. If you use real DNP fonts or watanabe-dnp fonts for printing, + you should use them to preview dvi files too. + + 2. If you use a Japanese Postscript printer for printing, there + are different possibilities to preview dvi files. + + 1) pk fonts. + + Because dvi files are made from dnp-tfm, you can preview the + dvi files by real DNP fonts or watanabe-dnp fonts. + + Of course Japanese PS fonts are not exactly equal to DNP + fonts. + + 2) outline fonts. + + Outline fonts need less disc space than PK fonts. You can + use outline fonts (often called vector fonts) to preview + them. + + +Version 1.0B3 (1996/02/09) written by tanaka3@ifos.se.fujitsu.co.jp diff --git a/language/chinese/CJK/cjk-4.8.5/doc/japanese/shibuaki.txt b/language/chinese/CJK/cjk-4.8.5/doc/japanese/shibuaki.txt new file mode 100644 index 0000000000..ca317a82fd --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/japanese/shibuaki.txt @@ -0,0 +1,150 @@ + +Handling of space between Kanji and non-Kanji characters. + + +1. Shibuaki or Yonbuaki ($B;MJ,$"$-(B) + + + + <Japanese Text> English word <Japanese Text> + ^ ^ + This point This point + + This space is called "Shibuaki" which has a width of a quarter of a kanji + font width. It is used only between Kanji and non-Kanji characters. + (between Kanji and Kanji only stretchable glue is used; between + ASCII and ASCII ordinary space.) + + +2. Yakumono($BLsJ*(B) + + Here are the rules how and where to use Shibuaki. + +2.1 Yakumono for ASCII characters + + rules: + + 0 No shibuaki between previous kanji character and the ASCII + character, and between next kanji character and the ASCII + character. + + <Kanji character><ASCII character><Kanji Character> + + 1 Shibuaki space only between previous kanji character and the + ASCII character. + + <Kanji character> <ASCII character><Kanji Character> + ^ + shibuaki + + 2 Shibuaki space only between next kanji character and the ASCII + character. + + <Kanji character><ASCII character> <Kanji Character> + ^ + shibuaki + + 3 Shibuaki spaces between kanji characters and ASCII word. + + <Japanese Text> English word <Japanese Text> + ^ ^ + shibuaki shibuaki + + + Rule 3 is always used by all printable ASCII characters without + the following yakumono ASCII characters. + + [This is data from ASCII-Nihongo TeX.] + + % ASCII yakumono characters and the corresponding rules + ( 1 + ) 2 + [ 1 + ] 2 + ` 1 + ' 2 + ; 2 + , 2 + . 2 + +2.2 Yakumono for kanji characters + + rules: + + 0 No shibuaki space between previous ASCII character and the kanji + character, and between next ASCII character and the kanji + character. + + <ASCII character><Kanji character><ASCII character> + + 1 No shibuaki space between previous ASCII character and the kanji + character. + + <ASCII character><Kanji character> <ASCII character> + ^ + shibuaki + + 2 No shibuaki space between next ASCII character and the kanji + character. + + <ASCII character> <Kanji character><ASCII character> + ^ + shibuaki + + 3 Shibuaki spaces between kanji character and ASCII characters + + <ASCII character> <Kanji character> <ASCII character> + ^ ^ + shibuaki shibuaki + + Rule 3 is always used by all kanji characters without the following + yakumono kanji characters. + + [This is data from ASCII-Nihongo TeX.] + + % Kanji yakumono characters and the corresponding rules + $B!"(B 1 + $B!#(B 1 + $B!$(B 1 + $B!%(B 1 + $B!((B 1 + $B!)(B 1 + $B!K(B 1 + $B!J(B 2 + $B!O(B 1 + $B!N(B 2 + $B!Q(B 1 + $B!P(B 2 + $B!F(B 2 + $B!G(B 1 + $B!H(B 2 + $B!I(B 1 + $B!L(B 2 + $B!M(B 1 + $B!R(B 2 + $B!S(B 1 + $B!T(B 2 + $B!U(B 1 + $B!V(B 2 + $B!W(B 1 + $B!X(B 2 + $B!Y(B 1 + $B!Z(B 2 + $B![(B 1 + $B!=(B 0 + $B!A(B 0 + $B!D(B 0 + $B!o(B 0 + $B!k(B 1 + $B!l(B 1 + $B!m(B 1 + + + + +Reference: "Nihongo TeX technical book I" ASCII co. + $BF|K\8l(BTeX$B%F%/%K%+%k%,%$%I(B I $B%"%9%-!<=PHG6I(B + 2200 yen. + + +Version 1.0B1 written by tanaka3@ifos.se.fujitsu.co.jp diff --git a/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/HOWTO.txt b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/HOWTO.txt new file mode 100644 index 0000000000..432fbda51b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/HOWTO.txt @@ -0,0 +1,425 @@ +How to make PDF files using CJK/LaTeX with embedded TrueType fonts + +Hin-Tak Leung <htl10@users.sourceforge.net> +December 2003 + + +Introduction +------------ + +Existing CJK/LaTeX instruction for high-quality print-out tends to suggest +permanently converting TrueType fonts (which had a better availability) to +postscript sub-fonts; this document covers how to use TrueType fonts +directly, and also preparing such PDF documents. Today, the PDF output +format is slightly more popular than PostScript; also, even on US English +systems, CJK font packs are available for font substitution in Adobe Acrobat +Reader (and similar mechanisms exist for xpdf and ghostscript), which allows +the generation of PDF files containing only important textual content but no +embedded fonts. Such files are small enough to be e-mailed while preserving +formatting, provided the recipient has the font packs installed. This +document also covers the issues with no-embedded-font PDF files at the very +end as well. + +The following steps are discussed below in greater detail: + + 1. Finding the fonts. + 2. Getting and building some software: ttf2tfm, dvipdfmx. + Some other nice optional software: oto, the other freetype/freetype2 + demo tools, ttfm, ttx. + 3. Using ttf2tfm, generating *.tfm and *.enc files for each font. + 4. Putting the fonts, the *.tfm files, and the *.enc files into the right + place in your system. + 5. Configuring dvipdfmx to use the new fonts. + 6. (optional) Configuring pdflatex to use the new fonts also. + 7. Configuring CJK/LaTeX to use those fonts. + 8. Testing. + 9. Problems and tips. + +I can read both traditional and simplified Chinese, and a substantial amount +of Japanese, but there isn't any Korean-specific info here. Hopefully this +is useful enough as a starting point at least for Korean-related +experiments. + +The two most important references during this venture was the FreeBSD +(Taiwan) Chinese HOWTO (it is substantially better and more up-to-date than +the GNU/Linux one), and Edward G. J. Lee's various treatises on the net, +particularly his `mycjk' notes. Unfortunately both are available in Chinese +only, I believe. + + +1. Fonts +======== + + Chinese + ------- + + Arphic donated 4 high-quality Chinese fonts to the open-source community: + two for traditional and two for simplified Chinese, respectively. They are + shipped with Redhat 9 (which I used for most of this work) and Debian 3 + and possibly also other GNU/Linux distributions; they can be downloaded + from Arphic's home site and, probably more convenient, from + + ftp://ftp.gnu.org/gnu/non-gnu/chinese-fonts-truetype/ + + and its mirrors. Tip: Use `unzip -L' to convert file names to lowercase. + + Redhat 9 also ships zysong, a simplified Chinese font. This font seems to + be licensed to Redhat only since it isn't found in other GNU/Linux + distributions. It is part of the package "ttfonts-zh_CN-2.12-1.noarch.rpm", + together with the two Arphic simplified Chinese fonts, on the 3rd CD + of the Redhat 9 CD set. + + The Ministry of Education in Taiwan released a few fonts for + standardization: Currently two are available from the ministry's home page + (http://www.edu.tw/mandr/index.htm), but there are old versions with + different type faces floating around in the net. + + CwTeX (a Chinese-enabled LaTeX implementation in Taiwan) ships 5 fonts. + (http://ccms.ntu.edu.tw/~ntut019/cwtex/cwtex.html) + + Still available is the set of 8 TrueType fonts from NTU which were widely + used previously for CJK/LaTeX documents (http://input.cpatch.org/font/ntu/). + + There is also a set of 10 quite fancy and unusual fonts for traditional + Chinese, developed by Dr Hann-Tzong Wang + (http://140.135.64.77/teacher/htwang/htwang.htm). It is distributed as + one of the standard font sets for FreeBSD Taiwan. + (http://www.freebsd.org/cgi/pds.cgi?ports/chinese/wangttf). + + Japanese + -------- + + Redhat 9 and SuSE both ship the Kochi Gothic and Mincho fonts; Debian + ships Watanabe Mincho and Wadalab Gothic as part of the XTT TrueType font + server. The packages are: "ttfonts-ja-1.2-21.noarch.rpm" on the 3rd disc + of the Redhat 9 CD set, "ttf-kochi-mincho-0.2.20020727-81.noarch.rpm" and + "ttf-kochi-gothic-0.2.20030118-17.noarch.rpm" on SuSe 8.2, + "xtt-fonts" for Debian systems. + + Other source of fonts (e.g. Win2k/WinXP/Win2k3 ships a few as standard, + and also localized version of MS Office, etc.) are mostly proprietary. + + These instructions are known to work on those also, but I don't want to + go into specific details... + + +2. ttf2tfm and dvipdfmx +======================= + + The specific details about compiler switches, include paths, are for + the Redhat 9 distribution. You may have to adapt them. + + ttf2tfm + ------- + + ttf2tfm is part of ttf2pk package which is itself part of + freetype-contrib, a suite of programs depending on the FreeType 1 library. + Most GNU/Linux systems ship both FreeType 2 and FreeType 1 (that's the + case for RH9, in fact), which are *not* compatible. So I decided to build + the latest FreeType 1 static version and made freetype-contrib depend on + that to avoid using the out-dated library shipped with my system. The + mentioned packages can be downloaded from ftp.freetype.org. + + Unpack freetype-current (adapt the `/home/hleung' part to suit yourself), + then do + + cd /home/hleung/freetype-current + ./configure --enable-static --disable-shared --prefix=/home/hleung + make + + Now unpack freetype-contrib-current inside the freetype-current tree, then + do + + cd freetype-contrib-current/ttf2pk + CFLAGS=-I../../lib/ LDFLAGS=-L../../lib/.libs ./configure \ + --with-kpathsea-lib=/usr/lib --with-kpathsea-include=/usr/include + make + make install + + Important: At the end, you need to manually copy the data/*.sfd files into + ${TEXMF}/ttf2tfm and also ${TEXMF}/ttf2pk (a soft link from + ${TEXMF}/ttf2tfm to ${TEXMF}/ttf2pk will do also). + + [The recent TeX directory structure (TDS), version 1.1, comes with a new + subdirectory fonts/sfd, to be accessed with the kpathsea variable + $SFDFONTS. ttf2tfm and other programs available in the TeXLive + distribution have already been updated to use it.] + + The man pages of ttf2tfm and ttf2pk give detailed explanation of all + command line arguments. + + Tip: I find a utility called "checkinstall" quite useful. Instead of `make + install' one calls `checkinstall' which does the same as `make install' + but also integrates the data nicely into the package management system for + Redhat/Debian/Slackware; this gives cleaner upgrades and uninstalls. + + dvipdfmx + -------- + + http://project.ktug.or.kr/dvipdfmx/ + + For dvipdfmx I use + + CFLAGS='-I/usr/kerberos/include -O2 -march=i386 -mcpu=i686' ./configure + make + make install + + The include path is due to dependency on the kerberos library for PDF + encryption. Important: The 10 Wang fonts have some peculiarities; I + submitted a preliminary patch which the author has much refined and + incoporated into a new release. You need a version newer than 2003-08-11 + if you want to use this set of fonts. From the ChangLog of dvipdfmx: + + 2003-08-11 Jin-Hwan Cho <chofchof@ktug.or.kr> + * A faked font name was used for TrueType fonts without any PS + font name as suggested by Hin-Tak Leung. + + [The recent TeX directory structure (TDS), version 1.1, comes with a new + subdirectory fonts/sfd, to be accessed with the kpathsea variable + $SFDFONTS. dvipdfmx and other programs available in the TeXLive + distribution have already been updated to use it.] + + +3. Generating ttf and enc files +=============================== + + OpenType Organizer (oto) : http://sourceforge.net/projects/oto/ + True Type Font Manager (ttfm): + - part of Chinese GNU/Linux Extention http://cle.linux.org.tw/ + + You need to know what cmap (character map) the TrueType font (*.ttf or + *.ttc) contains. The utility programs oto, ftdump (two versions! -- + FreeType 1 and FreeType 2 both have this demo program, showing quite + different information), and ttfinfo (part of ttfm) can show this info, and + some other information about your font as well. Only ftdump works on + TrueType collections (*.ttc), but the other two have their strengths also + (ttfinfo gives the most straightforward info, while oto gives some details + that ftdump doesn't show). + + For detailed information on cmaps in a font you can use ttx, a tool to + assemble and disassemble OpenType fonts. It is available from + http://fonttools.sf.net. + + If there is a Unicode cmap you can use ttf2tfm's `U*.sfd' files (see the + `@...@' argument for ttf2tfm); the command line for ttf2tfm is simpler + also. Otherwise you need to specify the platform (-P) and encoding (-E) + IDs. + + Here is what works for me for the fonts I mentioned. Important: The font + stem name needs to be unique. Additionally, dvipdfmx doesn't like numbers + in the font stem name. I use a 4-letter combination. By LaTeX convention + it shouldn't be longer than 5 letters. + + ttf2tfm bkai00mp.ttf -q -w bkai@UBig5@ + ttf2tfm bsmi00lp.ttf -q -w bsmi@UBig5@ + ttf2tfm gbsn00lp.ttf -q -w gbsn@UGB@ + ttf2tfm gkai00mp.ttf -q -w gkai@UGB@ + + ttf2tfm zysong.ttf -q -w zysg@UGB@ + + ttf2tfm kai-linux.ttf -P 3 -E 4 -q -w mekl@Big5@ + ttf2tfm edustd-15.ttf -P 3 -E 4 -q -w mest@Big5@ + ttf2tfm moe_kai.ttf -P 3 -E 4 -q -w meko@Big5@ + ttf2tfm moe_sung.ttf -P 3 -E 4 -q -w meso@Big5@ + + ttf2tfm ntu_li_m.ttf -P 3 -E 4 -q -w ntli@Big5@ + ttf2tfm ntu_br.ttf -P 3 -E 4 -q -w ntbr@Big5@ + ttf2tfm ntu_fs_m.ttf -P 3 -E 4 -q -w ntfs@Big5@ + ttf2tfm ntu_kai.ttf -P 3 -E 4 -q -w ntka@Big5@ + ttf2tfm ntu_mb.ttf -P 3 -E 4 -q -w ntmb@Big5@ + ttf2tfm ntu_mm.ttf -P 3 -E 4 -q -w ntmm@Big5@ + ttf2tfm ntu_mr.ttf -P 3 -E 4 -q -w ntmr@Big5@ + ttf2tfm ntu_tw.ttf -P 3 -E 4 -q -w nttw@Big5@ + + ttf2tfm mttf.ttf -q -w cwtm@UBig5@ + ttf2tfm kttf.ttf -q -w cwtk@UBig5@ + ttf2tfm fttf.ttf -q -w cwtf@UBig5@ + ttf2tfm bbttf.ttf -q -w cwtb@UBig5@ + ttf2tfm rttf.ttf -q -w cwtr@UBig5@ + + ttf2tfm kochi-gothic.ttf -w kcgt@UJIS@ + ttf2tfm kochi-mincho.ttf -w kcmc@UJIS@ + + ttf2tfm wadalab-gothic.ttf -P 3 -E 2 -w wdgt@SJIS@ + ttf2tfm watanabe-mincho.ttf -P 3 -E 2 -w wnmc@SJIS@ + + The Wang's font set has some unusual properties, and need either + a new version of freetype 1 (after 2003-10 from CVS), or a slightly + modified "Big5.sfd", called "wcl.sfd" here: + + ttf2tfm wcl-01.ttf -P 3 -E 4 -q -w wclj@wcl@ + ttf2tfm wcl-02.ttf -P 3 -E 4 -q -w wclk@wcl@ + ttf2tfm wcl-03.ttf -P 3 -E 4 -q -w wcll@wcl@ + ttf2tfm wcl-04.ttf -P 3 -E 4 -q -w wclm@wcl@ + ttf2tfm wcl-05.ttf -P 3 -E 4 -q -w wcln@wcl@ + ttf2tfm wcl-06.ttf -P 3 -E 4 -q -w wclp@wcl@ + ttf2tfm wcl-07.ttf -P 3 -E 4 -q -w wclq@wcl@ + ttf2tfm wcl-08.ttf -P 3 -E 4 -q -w wclr@wcl@ + ttf2tfm wcl-09.ttf -P 3 -E 4 -q -w wcls@wcl@ + ttf2tfm wcl-10.ttf -P 3 -E 4 -q -w wclt@wcl@ + + As an example, here is what I do for a well-known proprietary simplified + Chinese font which has only a cmap for simplified Chinese: + + ttf2tfm gkai00m.ttf -P 3 -E 3 -q -w gkaim@EUC@ + + Here an example for a TrueType collection: + + ttf2tfm dcai5.ttc -q -w dcaiq@UJIS@ + + +4. Putting the files where they should be +========================================= + + This is somewhat related to how kpathsea works and how latex (the program) + find its files. It is possible to set individual environment variables for + each of these items, but it is easier to set one: $TEXMF to a list of + locations, with a tree parallel to the system tree. Then do the following: + + . Put the *.tfm files into a subdirectory of ${TEXMF}/fonts/tfm. + . Put the *.enc files into a subdirectory of ${TEXMF}/dvips. + . Put the *.ttf (or *.ttc) files into a subdirectory of + ${TEXMF}/fonts/truetype. + . Put the *.sfd files into ${TEXMF}/ttf2tfm or a subdirectory of it. + Don't forget to either copy them into ${TEXMF}/ttf2pk also or to set up + a link from ${TEXMF}/ttf2pk to ${TEXMF}/ttf2tfm. + + Reason: dvipdfmx searches SFD files (which it needs for reassembling) + under ${TEXMF}/ttf2pk although we don't use ttf2pk anywhere. ttf2tfm + looks for them under its own name, of course. + + [The recent TeX directory structure (TDS), version 1.1, comes with a new + subdirectory fonts/sfd, to be accessed with the kpathsea variable + $SFDFONTS. dvipdfmx and other programs available in the TeXLive + distribution have already been updated to use it.] + + Important: Run texhash (mktexlsr) to rebuild the kpathsea database, + otherwise files won't be found. You have been warned! + + +5., 6. Configuring dvipdfmx and (optionally) pdflatex +===================================================== + + cid-x.map, dvipdfmx.cfg, *.map + + See for example, my own "cid-x.map" for the main font config file of + dvipdfmx -- all my own customization is at the very end after the line + "Hin-Tak Leung's custom setup below:". For each font xxxx, one needs + to add a line "f xxxx.map" into "dvipdfmx.cfg", and a fontmap + file "xxxx.map" into the dvipdfmx config directory -- + ${TEXMF}/dvipdfm/config/ on my system (the missing + "x" is not a typo, as dvipdfmx originally derived from dvipdfm). + I have included cwbt.map, for one of the CwTeX fonts, as an example, + and my dvipdfmx.cfg as well. + + Because I have a fair number of fonts I like to add, I wrote a little + perl script "gen-map.pl", which generates all the *.map files plus + a file called "map.list" which I can simply append to dvipdfmx.cfg, + from an internal table at the very top of the script. + + pdflatex needs the same fontmap files for each new font - copy them into + ${TEXMF}/dvips/config/. Modify the updmap script which is used for + updating both pdflatex.cfg and dvips.cfg, and run the updmap script. + On teTeX 1.0.x, one needs to add to the "extra_modules=" entry the + *.map files for each font. My modified updmap is included as an + example "updmap.my", found as "/usr/share/texmf/dvips/config/updmap" on + a RH 9 system. On teTeX 2.0.x, updmap has a separate config file + updmap.cfg located in ${TEXMF}/web2c/. + + +7. Configuring CJK/LaTeX +======================== + + Copy the whole `texinput' directory of the CJK package into a directory + which is in your $TEXINPUTS path. Also create some new *.fd files there. + My "c00cwtb.fd" is included as an example; again, since I have quite + a few font files, I have created some template fd files as c*tmpl.fd, + and duplicating and change every "tmpl" string to "cwtb" inside + as needed like this: + cp c00tmpl.fd c00cxtb.fd + perl -pi -e "s/tmpl/cwtb/;" c00cwtb.fd + + If you use Big5 or Shift-JIS encoding, compile the bg5conv and + sjisconv utilities; under Unix-like systems you can use the bg5pdflatex + and sjispdflatex scripts to access them conveniently. + + +8. Testing +========== + + Just pick the relevant files in the CJK/examples directory and change the + font name to match. Either call pdflatex or call latex followed by + dvipdfmx. In general, I found that dvipdfmx generates much smaller files + (1/3 to 1/2 size). + + +9. Problems +=========== + + a. files can't be found + + This is the most frequent problem. Setting the environment variable + KPATHSEA_DEBUG to -1 activates full debugging; you can then check + how latex/dvipdfmx/pdflatex tries to find those files. See the + kpathsea info pages for more details on debugging output. + + For latex (the program) you only need the new custom-made *.fd files, + the files from CJK/texinput, and the tfm files. The *.fd files could be + broken -- check their contents. latex (the program) neither needs the + *.enc files nor the font files themselves. + + If latex (the program) works, but dvipdfmx doesn't, then your dvipdfmx + configuration probably needs some tuning. Alternatively, the map files + or the font files are not found, etc. Note that dvipdfmx neither needs + the tfm files, nor the CJK/LaTeX input files, but it does need the + enc files. + + pdflatex does everything in one step, so everything needs to be in the + right place. + + b. Acrobat on GNU/Linux doesn't print PDF files generated with dvipdfmx + + The problem is probably caused by ghostscript version 7.x which chokes + on the intermediate postscript file under some command options. + Upgrading to ghostscript 8.x should fix this printfilter problem. It is + *strongly* recommended to use ghostscript 8.11 or newer due to severe + problems with earlier versions. + + c. no-font-embedded PDF files + + This is quite simple to do with dvipdfmx: Just put an extra `!' + (exclamation mark) in the dvipdfmx configuration file in front of the + font which shouldn't be embedded. + + A problem can arise if the PDF reader is not able to find a proper + substitution font if the font specified in the document isn't available. + I did some investigation and had a long discussion with the author of + dvipdfmx about this. Basically, it seems that win32 Acrobat Reader 6.x + will substitute any missing fonts with fonts from the Adobe CJK font + packs or from the system. Acrobat reader 5.x for GNU/Linux will only do + so -- and only with fonts from the CJK packs, not from the X server -- + if the font name is one of the well-known ones for that region: + SimHei, SimSun (found on most MS Windows boxes), and some fonts of Arphic + and Dynafont which are very popular in the far east. Otherwise, + it aborts with an error message. + + Besides the proprietary fonts mentioned in the last paragraph, only + Wang's fonts can be configured currently to be not embedded so that + acroread on GNU/Linux accepts them. I have spent much time looking + into this issue and apparently Acroread on GNU/Linux seems to do + font substitutions by looking at the capital letters in the font name. + Due to the missing PS name of the Wang's fonts (and our dvipdfmx + work-around on 2003-08-11 using the file name -- happened to be all + lowercase -- as the missing font name), they work by luck. + + Both xpdf and ghostscript will substitute any missing fonts with a + specific font per language, if suitably configured. On Redhat 9, the + heavily adapted ghostscript will substitute automatically if some named + fonts from the CD are installed (without any extra effort); for xpdf it + is an extra few lines of configuration in ${HOME}/.xpdfrc to tell it + what font to use from the X server for substituting a missing font for a + particular language. So ghostscript works out of the box for a full RH + installation, whereas xpdf doesn't, but xpdf is more configurable and + the setting of what fall-back font to use can differ per user. + +---End of HOWTO.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/bkai.map b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/bkai.map new file mode 100644 index 0000000000..71d205d501 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/bkai.map @@ -0,0 +1,55 @@ +bkai01 bkai01 <bkai01.enc <bkai00mp.ttf +bkai02 bkai02 <bkai02.enc <bkai00mp.ttf +bkai03 bkai03 <bkai03.enc <bkai00mp.ttf +bkai04 bkai04 <bkai04.enc <bkai00mp.ttf +bkai05 bkai05 <bkai05.enc <bkai00mp.ttf +bkai06 bkai06 <bkai06.enc <bkai00mp.ttf +bkai07 bkai07 <bkai07.enc <bkai00mp.ttf +bkai08 bkai08 <bkai08.enc <bkai00mp.ttf +bkai09 bkai09 <bkai09.enc <bkai00mp.ttf +bkai10 bkai10 <bkai10.enc <bkai00mp.ttf +bkai11 bkai11 <bkai11.enc <bkai00mp.ttf +bkai12 bkai12 <bkai12.enc <bkai00mp.ttf +bkai13 bkai13 <bkai13.enc <bkai00mp.ttf +bkai14 bkai14 <bkai14.enc <bkai00mp.ttf +bkai15 bkai15 <bkai15.enc <bkai00mp.ttf +bkai16 bkai16 <bkai16.enc <bkai00mp.ttf +bkai17 bkai17 <bkai17.enc <bkai00mp.ttf +bkai18 bkai18 <bkai18.enc <bkai00mp.ttf +bkai19 bkai19 <bkai19.enc <bkai00mp.ttf +bkai20 bkai20 <bkai20.enc <bkai00mp.ttf +bkai21 bkai21 <bkai21.enc <bkai00mp.ttf +bkai22 bkai22 <bkai22.enc <bkai00mp.ttf +bkai23 bkai23 <bkai23.enc <bkai00mp.ttf +bkai24 bkai24 <bkai24.enc <bkai00mp.ttf +bkai25 bkai25 <bkai25.enc <bkai00mp.ttf +bkai26 bkai26 <bkai26.enc <bkai00mp.ttf +bkai27 bkai27 <bkai27.enc <bkai00mp.ttf +bkai28 bkai28 <bkai28.enc <bkai00mp.ttf +bkai29 bkai29 <bkai29.enc <bkai00mp.ttf +bkai30 bkai30 <bkai30.enc <bkai00mp.ttf +bkai31 bkai31 <bkai31.enc <bkai00mp.ttf +bkai32 bkai32 <bkai32.enc <bkai00mp.ttf +bkai33 bkai33 <bkai33.enc <bkai00mp.ttf +bkai34 bkai34 <bkai34.enc <bkai00mp.ttf +bkai35 bkai35 <bkai35.enc <bkai00mp.ttf +bkai36 bkai36 <bkai36.enc <bkai00mp.ttf +bkai37 bkai37 <bkai37.enc <bkai00mp.ttf +bkai38 bkai38 <bkai38.enc <bkai00mp.ttf +bkai39 bkai39 <bkai39.enc <bkai00mp.ttf +bkai40 bkai40 <bkai40.enc <bkai00mp.ttf +bkai41 bkai41 <bkai41.enc <bkai00mp.ttf +bkai42 bkai42 <bkai42.enc <bkai00mp.ttf +bkai43 bkai43 <bkai43.enc <bkai00mp.ttf +bkai44 bkai44 <bkai44.enc <bkai00mp.ttf +bkai45 bkai45 <bkai45.enc <bkai00mp.ttf +bkai46 bkai46 <bkai46.enc <bkai00mp.ttf +bkai47 bkai47 <bkai47.enc <bkai00mp.ttf +bkai48 bkai48 <bkai48.enc <bkai00mp.ttf +bkai49 bkai49 <bkai49.enc <bkai00mp.ttf +bkai50 bkai50 <bkai50.enc <bkai00mp.ttf +bkai51 bkai51 <bkai51.enc <bkai00mp.ttf +bkai52 bkai52 <bkai52.enc <bkai00mp.ttf +bkai53 bkai53 <bkai53.enc <bkai00mp.ttf +bkai54 bkai54 <bkai54.enc <bkai00mp.ttf +bkai55 bkai55 <bkai55.enc <bkai00mp.ttf diff --git a/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/cid-x.map b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/cid-x.map new file mode 100644 index 0000000000..595d421b81 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/cid-x.map @@ -0,0 +1,364 @@ +%% FONTMAP: CID-keyed font mapping file for dvipdfmx +%% ================================================= +%% +%% Last modified: April 2, 2002 +%% +%% +%% SYNOPSIS +%% -------- +%% +%% TFMNAME[@SFDNAME@] ENCNAME [:INDEX:][!]FONTNAME[,VARIANT] [OPTIONS] +%% +%% +%% DESCRIPTION +%% ----------- +%% +%% 1) TFMNAME[@SFDNAME@] +%% +%% TFM name is specified in the field `TFMNAME' without extension (.tfm), +%% and the subfont definition name in the field `SFDNAME' without +%% extension (.sfd). For example, jbtm@UKS@ specifies the TFM names, +%% jbtm01 - jbtm35, used in the CJK package. +%% +%% 2) ENCNAME +%% +%% CMap resource name is specified in the field `ENCNAME'. It is used in +%% dvipdfmx to convert double-byte character codes to CID numbers. +%% For more details, see `doc/README'. +%% +%% 3) [:INDEX:][!]FONTNAME[,VARIANT] +%% +%% Font name is specified in the field `FONTNAME' with or without +%% extension. The field `INDEX' is used for TrueType collections (.ttc) +%% to specify the font index number. In the case of ordinary TrueType +%% fonts (.ttf) the field should be `0'. The character `!' enables the +%% no-embedding option. The stylistic variants (Bold, Italic, BoldItalic) +%% are specified in the filed `VARIANT'. See examples below. +%% +%% 4) [OPTIONS] +%% +%% All options available in the original dvipdfm are also valid here. +%% However, the slant option [-s number] is ignored for vertical mode, +%% and the remap option [-r] is always ignored since it doesn't make +%% sense for CID-keyed fonts. +%% +%% +%% ** IMPORTANT ** +%% +%% There is no default CMap, and the keyword `none' in the `ENCNAME' field is +%% not allowed for CID-keyed font. Valid CMap name should be recorded in the +%% `ENCNAME' field. Otherwise, the font will not be treated as a CID-keyed font. +%% +%% The format of the font mapping file is not compatible with the jpatch patch +%% which expects keyword `none' or `default' in the `ENCNAME' field. +%% +%% Be sure that all CMaps used in the font mapping file are under the directory +%% `${TEXMF}/dvipdfm/CMap', and all subfont definition files under the +%% directory `${TEXMF}/dvipdfm/base'. CMap file name should coincide with CMap +%% name. +%% +%% +%% EXAMPLES +%% -------- +%% +%% 1) Pre-defined CIDFonts +%% +%% Minimal font information required by PDF viewers are available from +%% dvipdfmx built-in data. The built-in data does not contain any glyph +%% data required to render actual shape of each characters. Hence, PDF +%% viewers must substitute those fonts with suitable one available from +%% the system. The reproducibility and the correctness of document layout +%% opened on the remote system is not always guaranteed, however, it seems +%% not to cause any problems in general if you does not use special +%% characters in your document. Please use those fonts if you are sure that +%% all peoples that receives your documents have usable fonts installed on +%% their system. It greatly reduces size of resulting PDF documents because +%% no glyph data are embedded. +%% +%% Here is the list of pre-defined CIDFonts in dvipdfmx. +%% +%% --------------------------------------------------------- +%% Language Acrobat pre-defined CIDFonts +%% --------------------------------------------------------- +%% Chinese/Simplified STSong-Light +%% Chinese/Traditional MHei-Medium, MSung-Light +%% Japanese HeiseiMin-W3, HeiseiKakuGo-W5 +%% Korean HYGoThic-Medium, HYSMyeongJo-Medium +%% --------------------------------------------------------- + +%rml H HeiseiMin-W3 +%gbm H HeiseiKakuGo-W5 +%rmlv V HeiseiMin-W3 +%gbmv V HeiseiKakuGo-W5 + +%% ** PostScript "standard" fonts (Japanese) are also pre-defined. +%% +%% Ryumin-Light, GothicBBB-Medium (Adobe-Japan1-2) + +rml H Ryumin-Light +gbm H GothicBBB-Medium +rmlv V Ryumin-Light +gbmv V GothicBBB-Medium + +%% Note. If you apply vertical version (WMode 1) of CMaps to horizontal +%% fonts (e.g., rml), dvipdfmx does horizontal positioning while PDF +%% viewers apply vertical positioning for that font. +%% +%% Note. On some Mac platforms, Ryumin-Light and GothicBBB-Medium are not +%% handled properly by Adobe products. Especially, if you have those fonts +%% in the OCF format, you may want to avoid them. +%% +%% +%% 2) OpenType CIDFonts (CIDFontType0) +%% +%% Postscript CID-keyed fonts are supported only in the CFF OpenType format +%% with Type 2 charstrings. +%% +%% o Kozuka-Mincho sold by Adobe: + +kml H KozMinPro-Regular.otf + +%% o CFF/OpenType version of Kochi CIDFont: + +kochi-min H Kochi-Mincho.otf +kochi-got H Kochi-Gothic.otf + +%% The suffix `.otf' is optional. Please use suffix `.otf' if needed. +%% +%% +%% 3) TrueType CIDFonts (CIDFontType2) +%% +%% TrueType (.ttf) and TrueType collection (.ttc) are supported. +%% +%% o Japanese MS-Windows fonts + +msmin H :0:msmincho +msgot H :0:msgothic + +%% MS-Mincho with proportional latin and kana: + +msminp H :1:msmincho + +%% o Kochi is TrueType (not a collection): + +kmin H :0:kochi-mincho +kgot H :0:kochi-gothic + +%% o Korean MS-Windows fonts with stylistic variants (no-embedding) + +%jbtm@UKS@ UniKS-UCS2-H :0:!batang.ttc +%jbtmo@UKS@ UniKS-UCS2-H :0:!batang.ttc,Italic +%jbtb@UKS@ UniKS-UCS2-H :0:!batang.ttc,Bold +%jbtbo@UKS@ UniKS-UCS2-H :0:!batang.ttc,BoldItalic + +%% o Baekmuk fonts (used with HLaTeX package) + +%bbtm@KS-HLaTeX@ KSCms-UHC-H :0:batang.ttf +%bbtmo@UKS-HLaTeX@ UniKS-UCS2-H :0:batang.ttf -s .167 + + +%% Font Licensing Issue +%% -------------------- +%% +%% If you try to use the following font, + +hgskai H :0:hgrsksj + +%% you will see the following message: +%% +%% ** Embedding disabled due to licensing restriction ** +%% +%% As this message indicates, font embedding is disabled because embedding +%% is not allowed for this font. Also, please note that any documents that +%% contains font with `Preview & Print' embedding licensing can be opened +%% only for the purpose of previewing and/or printing. When fonts with this +%% type of license are encountered, you will see the following message: +%% +%% ** NOTICE: This document contains `Preview & Print' only licensed font ** +%% +%% In this case, you cannot distribute resulting PDF document if you are not +%% absolutely sure that you are not violating license you acquired. +%% +%% +%% Other Encodings +%% --------------- +%% +%% Only 16-bit encodings are supported. The DVI format specification allows +%% 24-bit and 32-bit (signed) long character codes, though. +%% +%% 1) JIS C 6226 (JIS78) character set with NEC extensions, ISO-2022-JP encoding: + +rmlx Ext-H Ryumin-Light + +%% or Shift-JIS encoding: + +rmlsjx Ext-RKSJ-H Ryumin-Light + +%% 2) Hojo-Kanji (JIS X 0212-1990): Adobe-Japan2 character collection + +hjmin Hojo-H :0:msmincho +hjminv Hojo-V :0:msmincho + +%% You need ToUnicode CMap for the Adobe-Japan2 character collection. +%% If you cannot find it, copy and paste from the "ToUnicode Mapping File +%% Tutorial" (Adobe Technical Note #5411). Please change the CMap name and +%% the ordering string from `Adobe-Japan2-000' to `Adobe-Japan2-UCS2' and +%% from `Adobe_Japan2_000' to `Adobe_Japan2_UCS2', respectively. You must +%% save it as Adobe-Japan2-UCS2. +%% +%% 3) Unicode encodings, Omega requires them. (not fully tested.) +%% +%% o Chinese + +ombkai UniCNS-UCS2-H :0:bkai00mp +ombsmi UniCNS-UCS2-H :0:bsmi00lp +omgkai UniGB-UCS2-H :0:gkai00mp +omgbsn UniGB-UCS2-H :0:gbsn00lp + +%% o Japanese + +omrml UniJIS-UCS2-H Ryumin-Light + +%% o Korean + +omgtm UniKS-UCS2-H HYGoThic-Medium +omubt UniKS-UCS2-H :0:batang + +%% 4) UTF8 encodings with CJK package +%% +%% It is possible to use several languages in a document with CJK package +%% via the UTF8 encoding. + +cyberb@Unicode@ Identity-H :0:cyberbit.ttf + +%% Bitstream Cyberbit font is available at: +%% +%% http://ftp.netscape.com/pub/communicator/extras/fonts/windows/ReadMe.htm +%% +%% +%% Custom CMap and Specialized Font +%% -------------------------------- +%% +%% All TrueType font should have TrueType cmap (character codes to +%% glyph indices mapping) table with platform ID 3, and encoding ID +%% 1. If you are using CMap `Dummy-H' having, say, registry string +%% `My' and ordering string `Ordering' to map character codes used in +%% the DVI file to CIDs, you must also have CMap resource named +%% `My-Ordering-UCS2' (for encoding ID 1) which defines mapping from +%% CID to character code used in the TrueType font: +%% +%% myfont Dummy-H :0:myfont.ttf +%% +%% Some font that have 511 glyphs (one for .notdef), split into two +%% single-byte fonts for use with `plain' TeX, tied up to a single +%% CID-keyed font: +%% +%% math1 Math-Symbol1 :0:msymbol.ttf +%% math2 Math-Symbol2 :0:msymbol.ttf +%% +%% Arabic as CID-Keyed font: +%% +%% omarb UniArab-UCS2 :0:arabuni.ttf +%% +%% At present, accessing glyphs via glyph indices directly is not supported. +%% It will be supported if someone need it. +%% +%% Please make your CMap resource file as simple as possible. The built-in +%% CMap parser will fail if the structure of CMap file is too complicated. +%% +%% +%% TODO +%% ---- +%% +%% o Supports TrueType UCS4 cmap table +%% +%% o Supports TrueType Symbol cmap table (under consideration) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Hin-Tak Leung's custom setup below: % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +cwtb@UBig5@ UniCNS-UCS2-H :0:bbttf.ttf +cwtf@UBig5@ UniCNS-UCS2-H :0:fttf.ttf +cwtk@UBig5@ UniCNS-UCS2-H :0:kttf.ttf +cwtm@UBig5@ UniCNS-UCS2-H :0:mttf.ttf +cwtr@UBig5@ UniCNS-UCS2-H :0:rttf.ttf +% +mekl@Big5@ ETen-B5-H :0:kai-linux.ttf +mest@Big5@ ETen-B5-H :0:edustd-15.ttf +mesx@Big5@ ETen-B5-H :0:edustds1.ttf +mesy@Big5@ ETen-B5-H :0:edustds2.ttf +meko@Big5@ ETen-B5-H :0:moe_kai.ttf +meso@Big5@ ETen-B5-H :0:moe_sung.ttf +% +bkai@UBig5@ UniCNS-UCS2-H :0:bkai00mp.ttf +bsmi@UBig5@ UniCNS-UCS2-H :0:bsmi00lp.ttf +% +gbsn@UGB@ UniGB-UCS2-H :0:gbsn00lp.ttf +gkai@UGB@ UniGB-UCS2-H :0:gkai00mp.ttf +% +ntbr@Big5@ ETen-B5-H :0:ntu_br.ttf +ntfs@Big5@ ETen-B5-H :0:ntu_fs_m.ttf +ntka@Big5@ ETen-B5-H :0:ntu_kai.ttf +ntli@Big5@ ETen-B5-H :0:ntu_li_m.ttf +ntmb@Big5@ ETen-B5-H :0:ntu_mb.ttf +ntmm@Big5@ ETen-B5-H :0:ntu_mm.ttf +ntmr@Big5@ ETen-B5-H :0:ntu_mr.ttf +nttw@Big5@ ETen-B5-H :0:ntu_tw.ttf +% +wclj@Big5@ ETen-B5-H :0:wcl-01.ttf +wclk@Big5@ ETen-B5-H :0:wcl-02.ttf +wcll@Big5@ ETen-B5-H :0:wcl-03.ttf +wclm@Big5@ ETen-B5-H :0:wcl-04.ttf +wcln@Big5@ ETen-B5-H :0:wcl-05.ttf +wclp@Big5@ ETen-B5-H :0:wcl-06.ttf +wclq@Big5@ ETen-B5-H :0:wcl-07.ttf +wclr@Big5@ ETen-B5-H :0:wcl-08.ttf +wcls@Big5@ ETen-B5-H :0:wcl-09.ttf +wclt@Big5@ ETen-B5-H :0:wcl-10.ttf +% +zysg@UGB@ UniGB-UCS2-H :0:zysong.ttf +% +wnmc@SJIS@ Ext-RKSJ-H :0:watanabe-mincho.ttf +wdgt@SJIS@ Ext-RKSJ-H :0:wadalab-gothic.ttf +% +kcgt@UJIS@ UniJIS-UCS2-H :0:kochi-gothic.ttf +kcmc@UJIS@ UniJIS-UCS2-H :0:kochi-mincho.ttf +% +ykah@Big5@ ETen-B5-H :0:yka00hp.ttf +gtrl@Big5@ ETen-B5-H :0:gtr00lp.ttf +gtrm@Big5@ ETen-B5-H :0:gtr00mp.ttf +leim@Big5@ ETen-B5-H :0:lei00mp.ttf +heim@Big5@ ETen-B5-H :0:hei01mp.ttf +sunm@Big5@ ETen-B5-H :0:sun00mp.ttf +% +gbsnl@EUC@ GB-EUC-H :0:gbsn00l.ttf +ggtrl@EUC@ GB-EUC-H :0:ggtr00l.ttf +gkaim@EUC@ GB-EUC-H :0:gkai00m.ttf +gleim@EUC@ GB-EUC-H :0:glei00m.ttf +gsinm@EUC@ GB-EUC-H :0:gsin00m.ttf +tgtrl@EUC@ GB-EUC-H :0:tgtr00l.ttf +tkaim@EUC@ GB-EUC-H :0:tkai00m.ttf +tleim@EUC@ GB-EUC-H :0:tlei00m.ttf +tooru@EUC@ GB-EUC-H :0:toor00u.ttf +tovru@EUC@ GB-EUC-H :0:tovr00u.ttf +tsinm@EUC@ GB-EUC-H :0:tsin00m.ttf +% +dcaiq@UJIS@ UniJIS-UCS2-H :0:dcai5.ttc +dcailq@UJIS@ UniJIS-UCS2-H :0:dcail5.ttc +dcaisq@UJIS@ UniJIS-UCS2-H :0:dcais5.ttc +dccryq@UJIS@ UniJIS-UCS2-H :0:dccry5.ttc +dchgmq@UJIS@ UniJIS-UCS2-H :0:dchgm5.ttc +dchleiq@UJIS@ UniJIS-UCS2-H :0:dchlei5.ttc +dcinlq@UJIS@ UniJIS-UCS2-H :0:dcinl5.ttc +dckgmc@UJIS@ UniJIS-UCS2-H :0:dckgmc.ttc +dclkaiq@UJIS@ UniJIS-UCS2-H :0:dclkai5.ttc +dcysmr@UJIS@ UniJIS-UCS2-H :0:dcysm7.ttc +dfcrdp@UJIS@ UniJIS-UCS2-H :0:dfcrd3.ttc +dffrsp@UJIS@ UniJIS-UCS2-H :0:dffrs3.ttc +dfgskr@UJIS@ UniJIS-UCS2-H :0:dfgsk7.ttc +dfkaie@UJIS@ UniJIS-UCS2-H :0:dfkaie.ttc +dfkbtp@UJIS@ UniJIS-UCS2-H :0:dfkbt3.ttc +dfoyjq@UJIS@ UniJIS-UCS2-H :0:dfoyj5.ttc +dfryss@UJIS@ UniJIS-UCS2-H :0:dfrys9.ttc +dfshtq@UJIS@ UniJIS-UCS2-H :0:dfsht5.ttc +dfshtr@UJIS@ UniJIS-UCS2-H :0:dfsht7.ttc +dfskair@UJIS@ UniJIS-UCS2-H :0:dfskai7.ttc diff --git a/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/cwtb.map b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/cwtb.map new file mode 100644 index 0000000000..964c65c84a --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/cwtb.map @@ -0,0 +1,55 @@ +cwtb01 cwtb01 <cwtb01.enc <bbttf.ttf +cwtb02 cwtb02 <cwtb02.enc <bbttf.ttf +cwtb03 cwtb03 <cwtb03.enc <bbttf.ttf +cwtb04 cwtb04 <cwtb04.enc <bbttf.ttf +cwtb05 cwtb05 <cwtb05.enc <bbttf.ttf +cwtb06 cwtb06 <cwtb06.enc <bbttf.ttf +cwtb07 cwtb07 <cwtb07.enc <bbttf.ttf +cwtb08 cwtb08 <cwtb08.enc <bbttf.ttf +cwtb09 cwtb09 <cwtb09.enc <bbttf.ttf +cwtb10 cwtb10 <cwtb10.enc <bbttf.ttf +cwtb11 cwtb11 <cwtb11.enc <bbttf.ttf +cwtb12 cwtb12 <cwtb12.enc <bbttf.ttf +cwtb13 cwtb13 <cwtb13.enc <bbttf.ttf +cwtb14 cwtb14 <cwtb14.enc <bbttf.ttf +cwtb15 cwtb15 <cwtb15.enc <bbttf.ttf +cwtb16 cwtb16 <cwtb16.enc <bbttf.ttf +cwtb17 cwtb17 <cwtb17.enc <bbttf.ttf +cwtb18 cwtb18 <cwtb18.enc <bbttf.ttf +cwtb19 cwtb19 <cwtb19.enc <bbttf.ttf +cwtb20 cwtb20 <cwtb20.enc <bbttf.ttf +cwtb21 cwtb21 <cwtb21.enc <bbttf.ttf +cwtb22 cwtb22 <cwtb22.enc <bbttf.ttf +cwtb23 cwtb23 <cwtb23.enc <bbttf.ttf +cwtb24 cwtb24 <cwtb24.enc <bbttf.ttf +cwtb25 cwtb25 <cwtb25.enc <bbttf.ttf +cwtb26 cwtb26 <cwtb26.enc <bbttf.ttf +cwtb27 cwtb27 <cwtb27.enc <bbttf.ttf +cwtb28 cwtb28 <cwtb28.enc <bbttf.ttf +cwtb29 cwtb29 <cwtb29.enc <bbttf.ttf +cwtb30 cwtb30 <cwtb30.enc <bbttf.ttf +cwtb31 cwtb31 <cwtb31.enc <bbttf.ttf +cwtb32 cwtb32 <cwtb32.enc <bbttf.ttf +cwtb33 cwtb33 <cwtb33.enc <bbttf.ttf +cwtb34 cwtb34 <cwtb34.enc <bbttf.ttf +cwtb35 cwtb35 <cwtb35.enc <bbttf.ttf +cwtb36 cwtb36 <cwtb36.enc <bbttf.ttf +cwtb37 cwtb37 <cwtb37.enc <bbttf.ttf +cwtb38 cwtb38 <cwtb38.enc <bbttf.ttf +cwtb39 cwtb39 <cwtb39.enc <bbttf.ttf +cwtb40 cwtb40 <cwtb40.enc <bbttf.ttf +cwtb41 cwtb41 <cwtb41.enc <bbttf.ttf +cwtb42 cwtb42 <cwtb42.enc <bbttf.ttf +cwtb43 cwtb43 <cwtb43.enc <bbttf.ttf +cwtb44 cwtb44 <cwtb44.enc <bbttf.ttf +cwtb45 cwtb45 <cwtb45.enc <bbttf.ttf +cwtb46 cwtb46 <cwtb46.enc <bbttf.ttf +cwtb47 cwtb47 <cwtb47.enc <bbttf.ttf +cwtb48 cwtb48 <cwtb48.enc <bbttf.ttf +cwtb49 cwtb49 <cwtb49.enc <bbttf.ttf +cwtb50 cwtb50 <cwtb50.enc <bbttf.ttf +cwtb51 cwtb51 <cwtb51.enc <bbttf.ttf +cwtb52 cwtb52 <cwtb52.enc <bbttf.ttf +cwtb53 cwtb53 <cwtb53.enc <bbttf.ttf +cwtb54 cwtb54 <cwtb54.enc <bbttf.ttf +cwtb55 cwtb55 <cwtb55.enc <bbttf.ttf diff --git a/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/dvipdfmx.cfg b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/dvipdfmx.cfg new file mode 100644 index 0000000000..e1fd450a21 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/dvipdfmx.cfg @@ -0,0 +1,164 @@ +% original config -- Made by MAW on 8/31/99 +% Distiller template examples. Uncomment +% the appropriate one, or (preferably) create your own. +% Put %i in the command line where the input file name should go. +% Put %o in the command line where the output file name should go. +% (dvipdfm must be able to supply the output file name to your +% command line) +% Put %b in the line somewhere if you want to specify the +% "base" name of the input file, e.g., "foo" instead of "foo.eps" +% +% Note that it's probably a good idea to fully qualify +% the paths so you can be sure what you are running + +% The following line works with Frank Siegert's pstill +% D "/usr/local/bin/pstill -c -o %o %i" + +% The following line works with GhostScript +% UNIX/Linux (borrowed from W32TeX by Akira Kakuto) +D "gs -q -dNOPAUSE -dBATCH -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dAutoFilterGrayImages=false -dAutoFilterColorImages=false -dGrayImageFilter=/FlateEncode -dColorImageFilter=/FlateEncode -dUseFlateCompression=true -sOutputFile=%o %i -c quit" +% Win32 (borrowed from W32TeX by Akira Kakuto) +% D "gswin32c -q -dNOPAUSE -dBATCH -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dAutoFilterGrayImages=false -dAutoFilterColorImages=false -dGrayImageFilter=/FlateEncode -dColorImageFilter=/FlateEncode -dUseFlateCompression=true -sOutputFile=%o %i -c quit" +% The following line works on compressed or uncompressed postscript with GhostScript +% UNIX/Linux (borrowed from W32TeX by Akira Kakuto) +% D "zcat -f %i | gs -q -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dUseFlateCompression=true -sOutputFile=%o - -c quit" +% Win32 (borrowed from W32TeX by Akira Kakuto) +% D "gzcat -f %i | gswin32c -q -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dUseFlateCompression=true -sOutputFile=%o - -c quit" + +% The following line works with Adobe Acrobat Distiller +% D "/usr/local/bin/distill -quiet -pairs %i %o" + +% Set default paper size here +p a4 + +% The "g" option specifies the amount to "grow" annotations by +% Many TeX macro pages set the annotation bounding box equal +% to the TeX box that encloses the material. That's not always +% what you want +g 1 + +% PDF version stamp to use in output file and max version of files +% allowed to be included (3 for 1.3, 4 for 1.4) +V 3 + +% Key bits for PDF encryption (40 - 128) +K 40 + +% Permission flag for PDF encryption: Revision will be 3 if the key size +% is greater than 40 bits. +% +% 0x0004 (Revision 2) Print the document. +% (Revision 3) Print the document (possibly not at the highest quality +% level, depending on whether bit 12[0x0800] is also set). +% 0x0008 Modify the contents of the document by operations other than those +% controlled by bits 6[0x0020], 9[0x0100], and 11[0x0400]. +% 0x0010 (Revision 2) Copy or otherwise extract text and graphics from the +% document, including extracting text and graphics (in support of +% accessibility to disabled users or for other purposes). +% (Revision 3) Copy or otherwise extract text and grphics from the +% document by operations other than that controlled by bit 10[0x0200]. +% 0x0020 Add or modify text annotations, fill in interactive form fields, +% and, if bit 4[0x0008] is also set, create or modify interactive +% form fields (including signature fields). +% +% (Revision 3 only) +% 0x0100 Fill in existing interactive form fields (including signature +% fields), even if bit 6 is clear. +% 0x0200 Extract text and graphics (in support of accessibility to disabled +% users or for other purposes). +% 0x0400 Assemble the document (insert, rotate, or delete pages and create +% bookmarks or thumbnail images), even if bit 4 is clear. +% 0x0800 Print the document to a representation from which a faithful digital +% copy of the PDF content could be generated. When this bit is clear +% (and bit 3 is set), printing is limited to a low-level representation +% of the appearance, possibly of degraded quality. +P 0x003C + +% Font map files +% +f cmr.map +f psbase14.map +% Most distributions now use these names +f lw35urw.map +% Some use these names +% f lw35urwa.map +f cid-x.map +% Added by Hin-Tak Leung below this point: +f cwtb.map +f cwtf.map +f cwtk.map +f cwtm.map +f cwtr.map +f mekl.map +f mest.map +f mesx.map +f mesy.map +f meko.map +f meso.map +f bkai.map +f bsmi.map +f gbsn.map +f gkai.map +f ntbr.map +f ntfs.map +f ntka.map +f ntli.map +f ntmb.map +f ntmm.map +f ntmr.map +f nttw.map +f wclj.map +f wclk.map +f wcll.map +f wclm.map +f wcln.map +f wclp.map +f wclq.map +f wclr.map +f wcls.map +f wclt.map +f zysg.map +f wnmc.map +f wdgt.map +f kcgt.map +f kcmc.map +f acrj.map +f acrg.map +f acrb.map +f ykah.map +f gtrl.map +f gtrm.map +f leim.map +f heim.map +f sunm.map +f gbsnl.map +f ggtrl.map +f gkaim.map +f gleim.map +f gsinm.map +f tgtrl.map +f tkaim.map +f tleim.map +f tooru.map +f tovru.map +f tsinm.map +f dcaiq.map +f dcailq.map +f dcaisq.map +f dccryq.map +f dchgmq.map +f dchleiq.map +f dcinlq.map +f dckgmc.map +f dclkaiq.map +f dcysmr.map +f dfcrdp.map +f dffrsp.map +f dfgskr.map +f dfkaie.map +f dfkbtp.map +f dfoyjq.map +f dfryss.map +f dfshtq.map +f dfshtr.map +f dfskair.map diff --git a/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/gen-map.pl b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/gen-map.pl new file mode 100644 index 0000000000..737304da36 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/gen-map.pl @@ -0,0 +1,120 @@ +#!/usr/bin/perl -w + +@font_list = +( + "cwtb", "bbttf.ttf", 55, + "cwtf", "fttf.ttf", 55, + "cwtk", "kttf.ttf", 55, + "cwtm", "mttf.ttf", 55, + "cwtr", "rttf.ttf", 55, +# + "mekl", "kai-linux.ttf", 58, + "mest", "edustd-15.ttf", 55, + "mesx", "edustds1.ttf", 55, + "mesy", "edustds2.ttf", 55, + "meko", "moe_kai.ttf", 58, + "meso", "moe_sung.ttf", 58, +# + "bkai", "bkai00mp.ttf", 55, + "bsmi", "bsmi00lp.ttf", 55, +# + "gbsn", "gbsn00lp.ttf", 32, + "gkai", "gkai00mp.ttf", 32, +# + "ntbr", "ntu_br.ttf", 58, + "ntfs", "ntu_fs_m.ttf", 58, + "ntka", "ntu_kai.ttf", 58, + "ntli", "ntu_li_m.ttf", 58, + "ntmb", "ntu_mb.ttf", 58, + "ntmm", "ntu_mm.ttf", 58, + "ntmr", "ntu_mr.ttf", 58, + "nttw", "ntu_tw.ttf", 58, +# + "wclj", "wcl-01.ttf", 55, + "wclk", "wcl-02.ttf", 55, + "wcll", "wcl-03.ttf", 55, + "wclm", "wcl-04.ttf", 55, + "wcln", "wcl-05.ttf", 55, + "wclp", "wcl-06.ttf", 55, + "wclq", "wcl-07.ttf", 55, + "wclr", "wcl-08.ttf", 55, + "wcls", "wcl-09.ttf", 55, + "wclt", "wcl-10.ttf", 55, +# + "zysg", "zysong.ttf", 32, +# + "wnmc", "watanabe-mincho.ttf", 35, + "wdgt", "wadalab-gothic.ttf", 35, +# + "kcgt", "kochi-gothic.ttf", 31, + "kcmc", "kochi-mincho.ttf", 31, +# + "acrj", "kochi-mincho.ttf", 31, + "acrg", "gbsn00lp.ttf", 32, + "acrb", "bsmi00lp.ttf", 55, +# +"ykah", "yka00hp.ttf", 57, +"gtrl", "gtr00lp.ttf", 57, +"gtrm", "gtr00mp.ttf", 57, +"leim", "lei00mp.ttf", 57, +"heim", "hei01mp.ttf", 57, +"sunm", "sun00mp.ttf", 57, +# +"gbsnl", "gbsn00l.ttf",32, +"ggtrl", "ggtr00l.ttf",32, +"gkaim", "gkai00m.ttf",32, +"gleim", "glei00m.ttf",32, +"gsinm", "gsin00m.ttf",32, +"tgtrl", "tgtr00l.ttf",32, +"tkaim", "tkai00m.ttf",32, +"tleim", "tlei00m,ttf",32, +"tooru", "toor00u.ttf",32, +"tovru", "tovr00u.ttf",32, +"tsinm", "tsin00m.ttf",32, +# +"dcaiq", "dcai5.ttc", 31, +"dcailq", "dcail5.ttc", 31, +"dcaisq", "dcais5.ttc", 31, +"dccryq", "dccry5.ttc", 31, +"dchgmq", "dchgm5.ttc", 31, +"dchleiq", "dchlei5.ttc", 31, +"dcinlq", "dcinl5.ttc", 31, +"dckgmc", "dckgmc.ttc", 31, +"dclkaiq", "dclkai5.ttc", 31, +"dcysmr", "dcysm7.ttc", 31, +"dfcrdp", "dfcrd3.ttc", 31, +"dffrsp", "dffrs3.ttc", 31, +"dfgskr", "dfgsk7.ttc", 31, +"dfkaie", "dfkaie.ttc", 31, +"dfkbtp", "dfkbt3.ttc", 31, +"dfoyjq", "dfoyj5.ttc", 31, +"dfryss", "dfrys9.ttc", 31, +"dfshtq", "dfsht5.ttc", 31, +"dfshtr", "dfsht7.ttc", 31, +"dfskair", "dfskai7.ttc", 31, +# +); + +open(LISTFILE, "> map.list"); + +$list_length = (scalar @font_list ) /3 ; +for ($i = 0; $i < $list_length ; $i++) +{ + $stem = shift @font_list; + $font = shift @font_list; + $entries = shift @font_list; + print LISTFILE "f ", $stem, ".map\n"; + open(MAPFILE, "> ${stem}.map"); + + for ($j=1; $j<= $entries ; $j++) + { + $j_pad = sprintf "%2.2d", $j; + print MAPFILE + $stem, $j_pad, " ", $stem, $j_pad, " <", + $stem, $j_pad, ".enc <", + $font, "\n"; + } + close(MAPFILE); +} +close(LISTFILE); + diff --git a/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/map.list b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/map.list new file mode 100644 index 0000000000..ae1fcd4ad1 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/map.list @@ -0,0 +1,78 @@ +f cwtb.map +f cwtf.map +f cwtk.map +f cwtm.map +f cwtr.map +f mekl.map +f mest.map +f mesx.map +f mesy.map +f meko.map +f meso.map +f bkai.map +f bsmi.map +f gbsn.map +f gkai.map +f ntbr.map +f ntfs.map +f ntka.map +f ntli.map +f ntmb.map +f ntmm.map +f ntmr.map +f nttw.map +f wclj.map +f wclk.map +f wcll.map +f wclm.map +f wcln.map +f wclp.map +f wclq.map +f wclr.map +f wcls.map +f wclt.map +f zysg.map +f wnmc.map +f wdgt.map +f kcgt.map +f kcmc.map +f acrj.map +f acrg.map +f acrb.map +f ykah.map +f gtrl.map +f gtrm.map +f leim.map +f heim.map +f sunm.map +f gbsnl.map +f ggtrl.map +f gkaim.map +f gleim.map +f gsinm.map +f tgtrl.map +f tkaim.map +f tleim.map +f tooru.map +f tovru.map +f tsinm.map +f dcaiq.map +f dcailq.map +f dcaisq.map +f dccryq.map +f dchgmq.map +f dchleiq.map +f dcinlq.map +f dckgmc.map +f dclkaiq.map +f dcysmr.map +f dfcrdp.map +f dffrsp.map +f dfgskr.map +f dfkaie.map +f dfkbtp.map +f dfoyjq.map +f dfryss.map +f dfshtq.map +f dfshtr.map +f dfskair.map diff --git a/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/texinput/Bg5/c00cwtb.fd b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/texinput/Bg5/c00cwtb.fd new file mode 100644 index 0000000000..d7ff990e8b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/texinput/Bg5/c00cwtb.fd @@ -0,0 +1,11 @@ +% This is the file c00cwtb.fd of the CJK package +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c00cwtb.fd}[\filedate\space\fileversion] + +\DeclareFontFamily{C00}{cwtb}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C00}{cwtb}{m}{n}{<-> CJK * cwtb}{\CJKnormal} +\DeclareFontShape{C00}{cwtb}{bx}{n}{<-> CJKb * cwtb}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/texinput/Bg5/c00tmpl.fd b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/texinput/Bg5/c00tmpl.fd new file mode 100644 index 0000000000..8881d69974 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/texinput/Bg5/c00tmpl.fd @@ -0,0 +1,11 @@ +% This is the file c00tmpl.fd of the CJK package +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c00tmpl.fd}[\filedate\space\fileversion] + +\DeclareFontFamily{C00}{tmpl}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C00}{tmpl}{m}{n}{<-> CJK * tmpl}{\CJKnormal} +\DeclareFontShape{C00}{tmpl}{bx}{n}{<-> CJKb * tmpl}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/texinput/GB/c10tmpl.fd b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/texinput/GB/c10tmpl.fd new file mode 100644 index 0000000000..3f1aea21d7 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/texinput/GB/c10tmpl.fd @@ -0,0 +1,11 @@ +% This is the file c10tmpl.fd of the CJK package +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c10tmpl.fd}[\filedate\space\fileversion] + +\DeclareFontFamily{C10}{tmpl}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C10}{tmpl}{m}{n}{<-> CJK * tmpl}{\CJKnormal} +\DeclareFontShape{C10}{tmpl}{bx}{n}{<-> CJKb * tmpl}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/texinput/JIS/c40tmpl.fd b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/texinput/JIS/c40tmpl.fd new file mode 100644 index 0000000000..d1d15459fc --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/texinput/JIS/c40tmpl.fd @@ -0,0 +1,10 @@ +% This is the file c40tmpl.fd of the CJK package +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c40tmpl.fd}[\filedate\space\fileversion] + +\DeclareFontFamily{C40}{tmpl}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C40}{tmpl}{m}{n}{<-> CJK * tmpl}{\CJKnormal} +\DeclareFontShape{C40}{tmpl}{bx}{n}{<-> CJKb * tmpl}{\CJKbold} +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/texinput/SJIS/c49tmpl.fd b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/texinput/SJIS/c49tmpl.fd new file mode 100644 index 0000000000..498f136f4d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/texinput/SJIS/c49tmpl.fd @@ -0,0 +1,10 @@ +% This is the file c49song.fd of the CJK package +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c49song.fd}[\filedate\space\fileversion] + +\DeclareFontFamily{C49}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C49}{song}{m}{n}{<-> CJK * tmpl}{\CJKnormal} +\DeclareFontShape{C49}{song}{bx}{n}{<-> CJKb * tmpl}{\CJKbold} +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/updmap.my b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/updmap.my new file mode 100644 index 0000000000..a020e035ee --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/updmap.my @@ -0,0 +1,161 @@ +#!/bin/sh +# Thomas Esser, 1998, 1999. Public domain. + +########################################################################### +# updmap: create psfonts.map, ps2pk.map and pdftex.map from smaller +# "modules". To recreate the map files, just run the command: +# ./updmap +########################################################################### + +########################################################################### +# Configuration section: +########################################################################### + +# Add any extra modules here. See the definition of common_modules below +# for an example of the correct syntax. If you just want to use the type1 +# version for the computer modern fonts by default in dvips (instead of +# the metafont based bitmap fonts), just change the definition of +# type1_default that is given below. +# +# An alternative to adding map files here is to edit the files +# config/dvips/config.ps +# pdftex/config/pdftex.cfg +# in a local texmf tree. +extra_modules=" +cwtb.map +cwtf.map +cwtk.map +cwtm.map +cwtr.map +mekl.map +mest.map +mesx.map +mesy.map +meko.map +meso.map +bkai.map +bsmi.map +gbsn.map +gkai.map +ntbr.map +ntfs.map +ntka.map +ntli.map +ntmb.map +ntmm.map +ntmr.map +nttw.map +wclj.map +wclk.map +wcll.map +wclm.map +wcln.map +wclp.map +wclq.map +wclr.map +wcls.map +wclt.map +zysg.map +wnmc.map +wdgt.map +kcgt.map +kcmc.map +acrj.map +acrg.map +acrb.map +" + +########################################################################### +# Set up the standard Laserwriter fonts: +# urw-kb: these are included in teTeX's texmf tree +# urw-urw: these are included in ghostscript 4.0 and later. Adjust the +# search paths for type1 and afm files in texmf.cnf if you set +# this +# adobe-kb: use this if you have the original Adobe fonts. Install the +# type1 and afm files with Berry names. +########################################################################### + +lw35=urw-kb # URW fonts (download type1 files using Berry names) +# lw35=urw-urw # URW fonts (download type1 files using URW names) +# lw35=adobe-kb # Adobe fonts (download type1 files using Berry names) + +########################################################################### +# Set to true to use postscript type1 versions for fonts with existing +# metafont versions. +########################################################################### + +type1_default=false +# type1_default=true + +########################################################################### +# Add common map files here: +########################################################################### +common_modules=" + charter.map context.map lucidabr.map marvosym.map mathpi.map + mathpple-ext.map mt-plus.map mt-yy.map omega.map utopia.map + xypic.map txr4.map pxr4.map pazo.map $extra_modules +" + +########################################################################### +# End of configuration section. +########################################################################### + +########################################################################### +# Type1 fonts with Metafont equivalents. When not generating resolution +# independent postscript or pdf, we prefer the Metafont variants for these. +########################################################################### +mf_modules=" + bsr.map bsr-interpolated.map cmcyr.map cs.map hoekwater.map pl.map +" + +########################################################################### +# These are used by dvips: +########################################################################### +lw35_modules=" + *-adobe-bi.map + $common_modules +" + +########################################################################### +# Add CM + AMS fonst if configured: +########################################################################### +if test "x$type1_default" = xtrue; then + lw35_modules="$lw35_modules $mf_modules" +fi + +########################################################################### +# ps2pk has no "built in" fonts and needs to download everything: +########################################################################### +ps2pk_modules=" + *-$lw35.map +" + +########################################################################### +# pdftex has the acrobat fonts (subset of the lw35 fonts) built in, but +# needs to download fonts for ExtendFont / SlantFont: +########################################################################### +pdftex_modules=" + $mf_modules + + *ar-ext-$lw35.map + *ar-std-adobe-bi.map + *lw35extra-$lw35.map + mtsupp-ext-$lw35.map + mtsupp-std-adobe-bi.map + + $common_modules +" + +# Create psfonts.map ps2pk.map and pdftex.map: +for file in psfonts.map ps2pk.map pdftex.map; do +cat >$file <<eof +% $file: maintained by the script updmap in \$TEXMFMAIN/dvips/config. +% The preferred way to add things to this file is to put the extra lines +% into a separate file and add that filename to the updmap script. Then, +% run the updmap script to recreate this file. +eof +done + +cat $lw35_modules | grep -v '^%' | grep . | sort | uniq >> psfonts.map +cat $ps2pk_modules | grep -v '^%' | grep . | sort | uniq >> ps2pk.map +cat $pdftex_modules | grep -v '^%' | grep . | sort | uniq >> pdftex.map diff --git a/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/wcl.sfd b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/wcl.sfd new file mode 100644 index 0000000000..594a36acba --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/pdfhowto/examples/wcl.sfd @@ -0,0 +1,62 @@ +# Big5.sfd +# +# subfont numbers for Big 5 encoding and its corresponding code ranges +# to be used with the CJK package for LaTeX. + +01 0xA140_0xA17E 0xA1A1_0xA1FE 0xA240_0xA27E 0xA2A1_0xA2C4 +02 0xA2C5_0xA2FE 0xA340_0xA37E 0xA3A1_0xA3FE 0xA440_0xA468 +03 0xA469_0xA47E 0xA4A1_0xA4FE 0xA540_0xA57E 0xA5A1_0xA5ED +04 0xA5EE_0xA5FE 0xA640_0xA67E 0xA6A1_0xA6FE 0xA740_0xA77E 0xA7A1_0xA7B3 +05 0xA7B4_0xA7FE 0xA840_0xA87E 0xA8A1_0xA8FE 0xA940_0xA957 +06 0xA958_0xA97E 0xA9A1_0xA9FE 0xAA40_0xAA7E 0xAAA1_0xAADC +07 0xAADD_0xAAFE 0xAB40_0xAB7E 0xABA1_0xABFE 0xAC40_0xAC7E 0xACA1_0xACA2 +08 0xACA3_0xACFE 0xAD40_0xAD7E 0xADA1_0xADFE 0xAE40_0xAE46 +09 0xAE47_0xAE7E 0xAEA1_0xAEFE 0xAF40_0xAF7E 0xAFA1_0xAFCB +10 0xAFCC_0xAFFE 0xB040_0xB07E 0xB0A1_0xB0FE 0xB140_0xB16F +11 0xB170_0xB17E 0xB1A1_0xB1FE 0xB240_0xB27E 0xB2A1_0xB2F4 +12 0xB2F5_0xB2FE 0xB340_0xB37E 0xB3A1_0xB3FE 0xB440_0xB47E 0xB4A1_0xB4BA +13 0xB4BB_0xB4FE 0xB540_0xB57E 0xB5A1_0xB5FE 0xB640_0xB65E +14 0xB65F_0xB67E 0xB6A1_0xB6FE 0xB740_0xB77E 0xB7A1_0xB7E3 +15 0xB7E4_0xB7FE 0xB840_0xB87E 0xB8A1_0xB8FE 0xB940_0xB97E 0xB9A1_0xB9A9 +16 0xB9AA_0xB9FE 0xBA40_0xBA7E 0xBAA1_0xBAFE 0xBB40_0xBB4D +17 0xBB4E_0xBB7E 0xBBA1_0xBBFE 0xBC40_0xBC7E 0xBCA1_0xBCD2 +18 0xBCD3_0xBCFE 0xBD40_0xBD7E 0xBDA1_0xBDFE 0xBE40_0xBE76 +19 0xBE77_0xBE7E 0xBEA1_0xBEFE 0xBF40_0xBF7E 0xBFA1_0xBFFB +20 0xBFFC_0xBFFE 0xC040_0xC07E 0xC0A1_0xC0FE 0xC140_0xC17E 0xC1A1_0xC1C1 +21 0xC1C2_0xC1FE 0xC240_0xC27E 0xC2A1_0xC2FE 0xC340_0xC365 +22 0xC366_0xC37E 0xC3A1_0xC3FE 0xC440_0xC47E 0xC4A1_0xC4EA +23 0xC4EB_0xC4FE 0xC540_0xC57E 0xC5A1_0xC5FE 0xC640_0xC67E 0xC6A1_0xC6B0 +24 0xC6B1_0xC6FE 0xC740_0xC77E 0xC7A1_0xC7FE 0xC840_0xC854 +25 0xC855_0xC87E 0xC8A1_0xC8FE 0xC940_0xC97E 0xC9A1_0xC9D9 +26 0xC9DA_0xC9FE 0xCA40_0xCA7E 0xCAA1_0xCAFE 0xCB40_0xCB7D +27 0xCB7E 0xCBA1_0xCBFE 0xCC40_0xCC7E 0xCCA1_0xCCFE 0xCD40_0xCD43 +28 0xCD44_0xCD7E 0xCDA1_0xCDFE 0xCE40_0xCE7E 0xCEA1_0xCEC8 +29 0xCEC9_0xCEFE 0xCF40_0xCF7E 0xCFA1_0xCFFE 0xD040_0xD06C +30 0xD06D_0xD07E 0xD0A1_0xD0FE 0xD140_0xD17E 0xD1A1_0xD1F1 +31 0xD1F2_0xD1FE 0xD240_0xD27E 0xD2A1_0xD2FE 0xD340_0xD37E 0xD3A1_0xD3B7 +32 0xD3B8_0xD3FE 0xD440_0xD47E 0xD4A1_0xD4FE 0xD540_0xD55B +33 0xD55C_0xD57E 0xD5A1_0xD5FE 0xD640_0xD67E 0xD6A1_0xD6E0 +34 0xD6E1_0xD6FE 0xD740_0xD77E 0xD7A1_0xD7FE 0xD840_0xD87E 0xD8A1_0xD8A6 +35 0xD8A7_0xD8FE 0xD940_0xD97E 0xD9A1_0xD9FE 0xDA40_0xDA4A +36 0xDA4B_0xDA7E 0xDAA1_0xDAFE 0xDB40_0xDB7E 0xDBA1_0xDBCF +37 0xDBD0_0xDBFE 0xDC40_0xDC7E 0xDCA1_0xDCFE 0xDD40_0xDD73 +38 0xDD74_0xDD7E 0xDDA1_0xDDFE 0xDE40_0xDE7E 0xDEA1_0xDEF8 +39 0xDEF9_0xDEFE 0xDF40_0xDF7E 0xDFA1_0xDFFE 0xE040_0xE07E 0xE0A1_0xE0BE +40 0xE0BF_0xE0FE 0xE140_0xE17E 0xE1A1_0xE1FE 0xE240_0xE262 +41 0xE263_0xE27E 0xE2A1_0xE2FE 0xE340_0xE37E 0xE3A1_0xE3E7 +42 0xE3E8_0xE3FE 0xE440_0xE47E 0xE4A1_0xE4FE 0xE540_0xE57E 0xE5A1_0xE5AD +43 0xE5AE_0xE5FE 0xE640_0xE67E 0xE6A1_0xE6FE 0xE740_0xE751 +44 0xE752_0xE77E 0xE7A1_0xE7FE 0xE840_0xE87E 0xE8A1_0xE8D6 +45 0xE8D7_0xE8FE 0xE940_0xE97E 0xE9A1_0xE9FE 0xEA40_0xEA7A +46 0xEA7B_0xEA7E 0xEAA1_0xEAFE 0xEB40_0xEB7E 0xEBA1_0xEBFE 0xEC40 +47 0xEC41_0xEC7E 0xECA1_0xECFE 0xED40_0xED7E 0xEDA1_0xEDC5 +48 0xEDC6_0xEDFE 0xEE40_0xEE7E 0xEEA1_0xEEFE 0xEF40_0xEF69 +49 0xEF6A_0xEF7E 0xEFA1_0xEFFE 0xF040_0xF07E 0xF0A1_0xF0EE +50 0xF0EF_0xF0FE 0xF140_0xF17E 0xF1A1_0xF1FE 0xF240_0xF27E 0xF2A1_0xF2B4 +51 0xF2B5_0xF2FE 0xF340_0xF37E 0xF3A1_0xF3FE 0xF440_0xF458 +52 0xF459_0xF47E 0xF4A1_0xF4FE 0xF540_0xF57E 0xF5A1_0xF5DD +53 0xF5DE_0xF5FE 0xF640_0xF67E 0xF6A1_0xF6FE 0xF740_0xF77E 0xF7A1_0xF7A3 +54 0xF7A4_0xF7FE 0xF840_0xF87E 0xF8A1_0xF8FE 0xF940_0xF947 +55 0xF948_0xF97E 0xF9A1_0xF9FE 0xFA40_0xFA65 + +# eof diff --git a/language/chinese/CJK/cjk-4.8.5/doc/pinyin.txt b/language/chinese/CJK/cjk-4.8.5/doc/pinyin.txt new file mode 100644 index 0000000000..326202899e --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/pinyin.txt @@ -0,0 +1,62 @@ +This is the file pinyin.txt of the CJK macro package ver. 4.8.5 +(16-Oct-2021). + +pinyin.sty +---------- + +This style file (which can be also used under plain TeX) enables the input +of pinyin syllables with tones. + +Say + + \usepackage{pinyin} + +to load all pinyin macros under LaTeX2e; say `\input pinyin.sty' under plain +TeX. + +An example explains best how to input pinyin: + + \Wo3 \hen3 \xi3\huan1 \chi1 \Zhong1\guo2 \cai4. + +Note there is no fifth tone marker in pinyin (Zhuyinfuhao uses a dot to +indicate the fifth tone; on the other hand no marker is used for the first +tone). Nevertheless you can say e.g., \ne5 to get the syllable `ne' without a +tone. + + +There are some special cases: + + o use `v' instead of `u umlaut' in pinyin syllables (these are \lv, + \lve, \nv, \nve and its uppercase forms). Example: + + \nv3'\er2 daughter + + The appearance of u umlaut with additional tone markers has been + tested with the standard cm, ec, and PostScript fonts. + + o use \Long and \LONG instead of \long and \Long (which you would + expect): \long is a very important internal TeX command. Many + packages would fail if we redefined \long. + + +Problems: + + The following macros are redefined if you load pinyin.sty: + + \a, \chi, \cong, \ding, \ge, \hang, \le, \min, \mu, \ne, \ni, \nu, + \o, \O, \pi, \Pi, \Re, \tan, \xi, \Xi. + + They are available as \PY... (\PYchi, \PYcong, etc.). + + If this is not enough, you can say \PYdeactivate to restore the original + definitions (and reactivate these syllables with \PYactivate). + + In case you use the hyperref package earlier than version 6.75a + (2006-Feb-12) together with the `hpdftex' driver you should load + pinyin.sty *after* hyperref.sty (contrary to what the hyperref manual + says). Reason is that \ding is defined in pifont.sty which is + automatically loaded by hpdftex.def -- the latest hyperref version no + longer uses pifont.sty . + + +---End of pinyin.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/pyhyphen.txt b/language/chinese/CJK/cjk-4.8.5/doc/pyhyphen.txt new file mode 100644 index 0000000000..63e68dce32 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/pyhyphen.txt @@ -0,0 +1,135 @@ +This is the file pyhyphen.txt of the CJK macro package ver. 4.8.5 +(16-Oct-2021). + +Hyphenation patterns for pinyin syllables with and without tone markers +----------------------------------------------------------------------- + +Sometimes it makes sense to use unaccented pinyin syllables for common names +and phrases which are repeated frequently; sometimes you are in an +environment which doesn't allow accented pinyin syllables at all. For such +cases it is desirable to have correct hyphenation, avoiding manually added +hints using e.g., `\-' between the syllables. + +Fortunately, due to the limited numbers of Chinese pinyin syllables (407 for +Mandarin), it is easy to create hyphenation patterns. The logical +consequence is to add a new `language' to the Babel package, and exactly +this can be found in the directory utils/pyhyphen. + + +Installation +------------ + +[Note: The hyphenation patterns have been submitted to the `tex-hyphen' + project. In recent TeX distributions it is no longer necessary to set + up pinyin support manually since everything should work out of the + box.] + +This is fairly straightforward. Move the Babel language definition file +pinyin.ldf file to a place found by TeX. If you e.g., maintain a local +TEXMF tree, a good place would be $TEXMFLOCAL/tex/generic/babel/pinyin.ldf. +Similarly, move the pinyin hyphenation pattern files hyph-zh-latn-pinyin.tex +and hyph-zh-latin-tonepinyin.tex into your (local) TEXMF tree: The analogous +place would be directory $TEXMFLOCAL/tex/generic/hyphen. + +Now run texconfig (or a similar tool) to add hyph-zh-latn-pinyin.tex and +hyph-zh-latin-tonepinyin.tex to the used hyphenation patterns. In the usual +case you have to add a line saying + + pinyin hyph-zh-latn-tonepinyin.tex + +for Unicode-aware TeX engines (XeTeX, luatex, upTeX) or + + pinyin hyph-zh-latn-pinyin.tex + +for all other engines to the hyphenation configuration file language.dat. +Finally, build a new format file (usually the command `initex latex.ltx'); +in most cases this happens automatically. + +Using Babel ensures that it works both with LaTeX and Plain TeX. + + +Usage +----- + +Unicode-aware engines +- - - - - - - - - - - + +Do something like this: + + \documentclass[...]{...} + + \usepackage[pinyin,german,english]{babel} + ... + + \begin{document} + ... + \foreignlanguage{pinyin}{pinyin with tone markers like BÄ›ijÄ«ng} + ... + \end{document} + + +Other engines +- - - - - - - + +Do something like this: + + \documentclass[...]{...} + + \usepackage[T1]{fontenc} + \usepackage[pinyin,german,english]{babel} + ... + + \begin{document} + ... + \foreignlanguage{pinyin}{pinyin without tone markers like Beijing} + ... + \end{document} + + +Note 1: pinyin.ldf is intentionally very minimal. Don't expect that e.g., + \chapter yields a pinyin version of the Chinese word for `chapter'. + It might be useful to define a shorthand macro like the following: + + \newcommand{\py}[1]{\foreignlanguage{pinyin}{#1}} + + Now you can simply say + + \py{Beijing} + +Note 2: The apostrophe character `'' is used as to precede syllables + starting with `a', `e', or `u'. This is needed to resolve + ambiguities like this: + + Xi'an -> Xi-an (two syllables) + Xian -> Xian (one syllable) + + If a line break occurs, the apostrophe should vanish, e.g., + + Tian'anmen -> Tian- + anmen + + Use the Babel shorthand "' to enter '; this internally resolves to + \discretionary. + + The shorthand `"u' (as used in German) is available to input + `umlaut u'. + +Note 3: Most Babel language support files define a `<language>.sty' file + also. This is not true for pinyin! pinyin.sty is used for accented + pinyin syllables which don't need a special hyphenation support. + (pinyin.sty works with Plain TeX also.) + + +Technical details +----------------- + +The dictionary used to construct the hyphenation patterns has been created +with a small C program `pinyin.c' which simply combines all existing Chinese +syllable pairs that don't need an apostrophe inbetween. Then, `patgen' has +been run on the dictionary; `pinyin.tr' defines the used character set. + +Due to the regularity of the word combinations, only two-letter patterns of +the first and second level are needed to find all possible breaks without a +single error or omission. + +---End of pyhyphen.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/reftex.txt b/language/chinese/CJK/cjk-4.8.5/doc/reftex.txt new file mode 100644 index 0000000000..3dc7935243 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/reftex.txt @@ -0,0 +1,34 @@ +This is the file reftex.txt of the CJK macro package ver. 4.8.5 +(16-Oct-2021). + +RefTeX +------ + +To make RefTeX aware of \CJKinput and \CJKbibliography, add the following +two lines to your .emacs file: + + (add-to-list 'reftex-include-file-commands "CJKinclude") + (add-to-list 'reftex-bibliography-commands "CJKbibliography") + +These two variables have been added to RefTeX in July 2002. + +Older versions (like 4.16) which don't have them must be patched directly. +In reftex.el: + +1097c1097 +< (include-re (concat wbol "\\\\\\(include\\|input\\)[{ \t]+\\([^} \t\n\r]+\\)")) +--- +> (include-re (concat wbol "\\\\\\(include\\|input\\|CJKinput\\)[{ \t]+\\([^} \t\n\r]+\\)")) + +In reftex-parse.el: + +333c333 +< "\\(\\`\\|[\n\r]\\)[ \t]*\\\\\\(no\\)?bibliography{[ \t]*\\([^}]+\\)" nil t) +--- +> "\\(\\`\\|[\n\r]\\)[ \t]*\\\\\\(no\\|CJK\\)?bibliography{[ \t]*\\([^}]+\\)" nil t) + +Changes for even older RefTeX versions (before Aug 1999 which only have +reftex.el) are virtually the same. + + +---End of reftex.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/ruby.txt b/language/chinese/CJK/cjk-4.8.5/doc/ruby.txt new file mode 100644 index 0000000000..68f82abc9d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/ruby.txt @@ -0,0 +1,139 @@ +This is the file ruby.txt of the CJK macro package ver. 4.8.5 (16-Oct-2021). + +What is ruby? +------------- + +To cite Martin Duerst (mduerst@w3.org) who wrote a proposal for ruby in HTML +documents: + + + Ruby are small characters used for annotations of a text, at the right + side for vertical text, and atop for horizontal text, to indicate the + reading (pronounciation) of ideographic characters. [...] + + The name `ruby' is the name of the 5.5 point type size in British + terminology; this was the size most used for ruby. [...] + + Ruby are in most cases set at half the size of the main letters, + resulting in a possible two ruby characters per main character, and + taking up half of the width of the main characters. However, at least up + to five ruby characters per main character are possible (an example is + `u-ke-ta-ma-wa-...'), and so various solutions, from leaving white space + in the main text to having the ruby overlap the next characters of the + main text, are possible (the later is possible in Japanese especially + because in many cases, the characters around an ideograph with ruby are + syllabic, and therefore the assignment of ruby to main characters poses + no problems for the reader). [...] + + Ruby are particularly frequent in Japanese, because of the way CJK + ideographs are used in Japanese. Ideographs can have many different + readings (pronounciations) because different readings were taken over + from different regions of China and at different times when the + characters where adopted in Japan. Also, these characters are used to + write indigenous Japanese words, and many readings may be possible + because the ideograph might cover many different concepts distinguished + in the Japanese language. [...] The main use of ruby today is in + magazines of all levels, and of course in educational material. Ruby are + also used in educational material in China and Taiwan. + + In Japan, the term `furigana' is also used instead of `ruby'. `Furigana' + is composed of the verb `furu' (to attach, sprinkle, ...) and `gana' + (either hiragana or katakana, one of the two Japanese syllabaries usually + used for ruby). + + + +Usage +----- + +Here a typical example: + + + \documentclass{article} + + \usepackage{CJK} + \usepackage[overlap, CJK]{ruby} + + + \begin{document} + + \begin{CJK*}{JIS}{song} + + ....Japanese text.....\ruby{base character(s)}{ruby}.... + + \end{CJK*} + + \end{document} + + +The following options can be selected: + + `overlap' and `nooverlap', as described above. \rubyoverlap and + \rubynooverlap are the corresponding commands to modify the overlap flag. + `overlap' is the default. + + `CJK' and `latin'. The corresponding commands are \rubyCJK and \rubylatin. + Use these commands similar to \CJKnospace and \CJKspace to suppress or not + suppress spaces after a \ruby macro and to get/avoid insertion of glue. + `CJK' is the default. + +The command \rubysize defines the factor between the size of the base +character and the ruby. Its default value is 0.4 . Usually you get some +error messages about size substitution (the reason is that LaTeX 2e always +defines a default error font) which can be safely ignored if you use ttf2pk +or hbf2gf since these programs compute fonts for (almost) any font size. In +the unlikely case that you need latin fonts as ruby it may be necessary to +adapt your FD definition files if the particular font supports non-standard +sizes (e.g., EC, Sauter, PS) and you really want exactly that size. + +The command \rubysep defines the separation between the base character and +the ruby. Its default value is -0.5ex. + +To avoid lines sticking together the value of \lineskiplimit has been set +to 1pt. It may be necessary to increase this value for larger font sizes. + +Note that all \ruby... commands are local, i.e., they obey groups. + + +Implementation specific details +------------------------------- + +There are a number of possibilities how ruby can interact with other CJK +characters. + + o The ruby has a smaller width than its base character: + + The behaviour is identical to an ordinary CJK character. + + o The ruby has a greater width than its base character: + + + Overlapping ruby: + + . If the previous or next character is a CJK character + (ordinary or punctuation), insert unbreakable glue between. + + . If the previous or next character is a ruby, handle both + ruby as non-overlapping and insert unbreakable glue between. + + . A ruby at the beginning of a paragraph is treated as if the + nonoverlap option had been set. To force an overlapping ruby + you have to start the paragraph with a \leavevmode command. + + + Non-overlapping ruby: + + . If the previous or next character is a CJK character + (ordinary or punctuation), insert unbreakable glue between. + +If `latin' is active, no glue at all is inserted. + + +Technical details +----------------- + +ruby.sty introduces a third variation of a small kern (3sp) to inform the +next CJK or ruby macro that the previous character was an overlapping ruby +with the ruby's width greater than its base character. The global variable +\ruby@width then contains this width. + + +---End of ruby.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/thaifont.txt b/language/chinese/CJK/cjk-4.8.5/doc/thaifont.txt new file mode 100644 index 0000000000..1a98eba882 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/thaifont.txt @@ -0,0 +1,130 @@ +This is the file thaifont.txt of the CJK macro package ver. 4.8.5 +(16-Oct-2021). + +Thai font support in the CJK package +------------------------------------ + +Version 4.8.5 of the CJK package has improved support for Thai. This file +describes how to install and use the fonts. Please refer to cjk-enc.txt how +to set up cjk-enc.el (which automatically loads thai-word.el for finding +word breaks). + +The directory structure in utils/thaifont/texmf already reflects the +directory structure of a standard TEXMF tree, version 1.1. Example: + + utils/thaifont/texmf/fonts/enc/dvips/thai/c90.enc -> + /usr/local/share/texmf/fonts/enc/dvips/thai/c90.enc + +To create TFM files for other Thai fonts, use the utility files in the +`thaifont/tools' directory. Details how to do that can be found in +`thaifonts/tools/INSTALL'. The file thaifont/tools/c90.etx gives the +theoretical background on the used font encoding and ligature mechanism; +a pre-formatted version can be found in CJK's doc bundle. + + +Installation +------------ + +. It is assumed that you have already installed the main parts of the CJK + package (as described in the doc/INSTALL file). + +. Get the latest fonts-tlwg package from + + http://linux.thai.net/projects/thaifonts-scalable + + and install the Type 1 font families `garuda' and `norasi'. You should use + fonts-tlwg version 0.5 or newer. Note, however, that this bundle no longer + contains pre-compiled AFM files; instead, they are generated (together + with Type 1 and TrueType versions of the font) with a bunch of tools using + a configure script and a Makefile. + + Recommended locations are + + TEXMF/fonts/type1/public/{garuda,norasi}/ . + + Examples: + + garuda.pfb -> TEXMF/fonts/type1/public/garuda/garuda.pfb + norasi_bi.pfb -> TEXMF/fonts/type1/public/norasi/norasi_bi.pfb + + Note that the TeX metric files of font-tlwg bundle are incompatible with + CJK's Thai implementation. Nevertheless, it is possible to use both at the + same time if desired. This is the very reason that the Babel language + support file of the CJK package is called `thaicjk.ldf', not `thai.ldf'. + +. Install all files from utils/thaifont/texmf in your TEXMF tree. This + should be straightforward. + +. Font definition files for Thai are in CJK's texinput/thai directory. To + simplify font handling with LaTeX, `gar' and `nrsr' are aliased to `cmr', + `cmss', and `cmtt'. If you want to use other fonts, you have to adapt + c90cmr.fd, c90cmss.fd, and c90cmtt.fd accordingly. + +. There are two possibilities how to make the Thai PostScript fonts known to + the various DVI drivers (and pdftex). The recommended way is to include + the files `garuda-c90.map' and `norasi-c90.map' in the `updmap.cfg' + configuration script by adding the following two lines: + + Map garuda-c90.map + Map norasi-c90.map + + Older versions of updmap which don't have updmap.cfg must be patched + directly by adding the map files to the `extra_modules' variable: + + extra_modules=" + garuda-c90.map + norasi-c90.map + " + + After executing updmap, the fonts are known to all programs which uses the + map files. + + For dvips, you can also use the `config.norasi-c90' and `config.garuda-c90' + files on the command line: + + dvips -P norasi-c90 ... + + This method doesn't work with pdfTeX (which doesn't understand the `-P' + option). + +. Run mktexlsr or a similar program to update the TEXMF file database. + + +Usage +----- + +Thai support has been fully integrated into the Babel system. For example, +to have Thai as a secondary language and US English as the primary language, +say + + \documentclass{...} + + ... + \usepackage[thaicjk,USenglish]{babel} + ... + + + \begin{document} + + ... + \begin{otherlanguage}{thaicjk} + Thai text + \end{otherlanguage} + + ... + +`thaicjk' changes the baseline stretch to 1.2, activates \frenchspacing, and +modifies the \today command to use the proper Thai values and names. + +The just sketched outline works without cjk-enc also (but no word breaks are +inserted automatically); you must then insert + + \addto\extrasthaicjk{\fontencoding{C90}\selectfont} + +in the preamble of your document to make Babel switch to Thai font encoding +on entering the `thaicjk' language environment. + +For use of cjk-enc.el please read `cjk-enc.txt'. + + +---End of thaifont.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/doc/vertical.txt b/language/chinese/CJK/cjk-4.8.5/doc/vertical.txt new file mode 100644 index 0000000000..e9d7c784fd --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/doc/vertical.txt @@ -0,0 +1,120 @@ +This is the file vertical.txt of the CJK macro package ver. 4.8.5 +(16-Oct-2021). + + +Vertical typesetting +==================== + +TeX itself can't support vertical typesetting. Nevertheless, it is possible +to emulate it by rotating glyphs by 90 degrees. + +The CJK package supports two different approaches: + +o Provide fonts which already contain rotated glyphs. In this case, the + only difference to normal typesetting is the emulation of bold + characters by printing a character three times with slight vertical + offsets instead of horizontal ones. Both hbf2gf and ttf2pk can produce + rotated bitmap fonts. The major disadvantage is that it doesn't work + well for outline fonts since there is no portable way to implement + rotation on the font level which works for both PostScript and PDF + output. + + You need a `.fdx' file for this option which at least contains + `\CJKvdef{norotate}{}'. + +o Use the graphicx package to rotate glyphs. A disadvantage is that + processing of a document is much slower and that documents tend to be + much larger in size. On the other hand, PDF and PostScript output can be + produced from identical sources since graphicx hides the implementation + differences. + + This works even without a `.fdx' file in case CJK's default rotation + parameters are fine. + + +CJKvert.sty +----------- + +Loading CJKvert.sty activates vertical support. The two commands to be used +in documents are \CJKvert and \CJKhorz which do the obvious. \CJKvert is +the default. The two commands act locally, not globally. + +Use macro \CJKbaselinestretch to adjust the baseline stretch during vertical +typesetting. The default value is `1.3'. + +Package option `usebaselinestretch' saves the \baselinestretch value set +before loading CJKvert.sty. If this option is active, then + + new \baselinestretch = \CJKbaselinestretch * \baselinestretch + +after issuing \CJKvert. Otherwise, it is simply + + new \baselinestretch = \CJKbaselinestretch + +Similarly, \CJKhorz restores the old \baselinestretch value if +`usebaselinestretch' is active; without the option, \baselinestretch is set +to `1'. + + +Problems with vertical typesetting +---------------------------------- + +Some glyphs can't be used directly for vertical typesetting; a simple +rotation by 90 degrees would produce ugly results for various reasons: + +o Many punctuation characters have special vertical representation forms. + Some fonts contain proper vertical glyphs, but many don't. In the latter + case it is necessary to provide alternative methods to improve the + optical appearance. + +o Non-rotated (latin) text within rotated (CJK) text is aligned + differently as if text is written horizontally. Rotated glyphs thus must + be slightly shifted. + +o Some fonts contain CJK glyphs without quadratic bounding boxes but only + monospaced advance widths. It is then necessary to provide glyph + dimensions to assure monospaced advance heights after rotation. + +See the documentation file `fdxfiles.txt' for details on setting up +extended font definition files which can handle those items. + + +Fonts with vertical representation forms +---------------------------------------- + +OpenType fonts intended for vertical typesetting normally contain a GSUB +feature called `vert' which provides a mapping to vertical instead of +horizontal representation forms. ttf2tfm automatically takes care of it (see +below), but if such fonts have been converted to sets of Type 1 subfonts +this feature is lost. + +A solution to this problem is to collect all vertical representation glyphs +in a special Type 1 subfont. See the scripts vertical.pe, vertref.pe (for +FontForge), and makefdx.pl (for Perl) in the directory utils/subfonts which +do that. + +At the moment of this writing, only the fonts bsmi00lp.ttf and bkai00mp.ttf +for traditional Chinese have been transformed to Type 1 subfonts together +with a font with vertical representation glyphs (bsmilpv.pfb and +bkaimpv.pfb). They are part of the corresponding CJK font bundles found on +CTAN. See the file INSTALL for more information. + + +Rotated fonts +------------- + +o To install a rotated font to be handled by hbf2gf, simply proceed as + usual, with one difference: You have to add a line + + rotation yes + + to the hbf2gf configuration file of this font. x_offset and y_offset + values must be adjusted too. Look at the example configuration file + b5kr12.cfg for details---as you can see, the name of the non-rotated + font (b5ka12) has been changed to `b5kr12'. + +o With ttf2tfm, use the `-x' switch to activate rotation. For details + please refer to the man pages of ttf2tfm and ttf2pk. + + +---End of vertical.txt--- diff --git a/language/chinese/CJK/cjk-4.8.5/examples/Big5.tex b/language/chinese/CJK/cjk-4.8.5/examples/Big5.tex new file mode 100644 index 0000000000..91938c9099 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/Big5.tex @@ -0,0 +1,35 @@ +% This is the file Big5.tex of the CJK package +% for testing Chinese (in Big 5 encoding). +% +% written by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) +% +% +% process this file with bg5latex (or cjk-enc.el; see cjk-enc.txt) + +\documentclass[12pt]{article} + +\usepackage{CJK} + + +\begin{document} + +\begin{CJK*}{Bg5}{bsmi} +\CJKtilde + +\noindent ¥»±`°Ý°Ýµª¶°~(FAQ list)~¬O±q¤@¨Ç¸g±`³Q°Ý¨ìªº°ÝÃD¤Î¨ä¾A·íªº¸Ñ +µª¤¤¡A¥H¤è«Kªº§Î¦¡ºKn¦Ó¥Xªº¡C¸ò¤W¤@ª©¤£¦Pªº¬O¡A¨ä½s±Æµ²ºc¤w¹ý©³§ïÅÜ¡C +\textbf{¦³Ãö·sµ²ºcªº²Ó¸`¡A¥i°Ñ¦Ò¡u¦p¦ó¾\Ū¥»°Ýµª¶°¤Î¤F¸Ñ¨ä½s±Æµ²ºc¡v¸Ó +¶µ¤¤ªº»¡©ú¡C} + +\end{CJK*} + +\end{document} + +%%% Local Variables: +%%% coding: big5 +%%% mode: latex +%%% TeX-master: t +%%% TeX-command-default: "CJKLaTeX" +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/examples/Big5vert.tex b/language/chinese/CJK/cjk-4.8.5/examples/Big5vert.tex new file mode 100644 index 0000000000..57537f3f50 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/Big5vert.tex @@ -0,0 +1,35 @@ +% This is the file Big5vert.tex of the CJK package +% for testing vertical typesetting (in Big 5 encoding). +% +% process this file with bg5latex (or cjk-enc.el; see cjk-enc.txt) +% +% written by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\documentclass[12pt]{article} + +\usepackage{CJK} +\usepackage{CJKvert} + + +\begin{document} + +\begin{CJK*}{Bg5}{bsmi} +\CJKtilde + +\noindent ¥»±`°Ý°Ýµª¶°~(FAQ list)~¬O±q¤@¨Ç¸g±`³Q°Ý¨ìªº°ÝÃD¤Î¨ä¾A·íªº¸Ñ +µª¤¤¡A¥H¤è«Kªº§Î¦¡ºKn¦Ó¥Xªº¡C¸ò¤W¤@ª©¤£¦Pªº¬O¡A¨ä½s±Æµ²ºc¤w¹ý©³§ïÅÜ¡C +\textbf{¦³Ãö·sµ²ºcªº²Ó¸`¡A¥i°Ñ¦Ò¡u¦p¦ó¾\Ū¥»°Ýµª¶°¤Î¤F¸Ñ¨ä½s±Æµ²ºc¡v¸Ó +¶µ¤¤ªº»¡©ú¡C} + +\end{CJK*} + +\end{document} + +%%% Local Variables: +%%% coding: big5 +%%% mode: latex +%%% TeX-master: t +%%% TeX-command-default: "CJKLaTeX" +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/examples/CEF_test.tex b/language/chinese/CJK/cjk-4.8.5/examples/CEF_test.tex new file mode 100644 index 0000000000..f0712449a2 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/CEF_test.tex @@ -0,0 +1,43 @@ +% This is the file CEF_test.tex of the CJK package +% for testing CEF encoded text with LaTeX2e +% +% Version 4.8.5 (16-Oct-2021) +% +% process this text with ceflatex + +% - requires fonts from the cns package + +\documentclass[12pt]{article} + +\usepackage[global]{CJK} +\usepackage{MULEenc} + + +\begin{document} + +\begin{CJK}{}{} + +\verb|\CJKchar[CNS1]{"5A}{"5A}| \CJKchar[CNS1]{"5A}{"5A} +\quad \verb|&C1-|\verb|5A5A;| &C1-5A5A; + +\verb|\CJKchar[CNS2]{"5A}{"5A}| \CJKchar[CNS2]{"5A}{"5A} +\quad \verb|&C2-|\verb|5A5A;| &C2-5A5A; + +\verb|\CJKchar[CNS3]{"5A}{"5A}| \CJKchar[CNS3]{"5A}{"5A} +\quad \verb|&C3-|\verb|5A5A;| &C3-5A5A; + +\verb|\CJKchar[CNS4]{"5A}{"5A}| \CJKchar[CNS4]{"5A}{"5A} +\quad \verb|&C4-|\verb|5A5A;| &C4-5A5A; + +\verb|\CJKchar[CNS5]{"5A}{"5A}| \CJKchar[CNS5]{"5A}{"5A} +\quad \verb|&C5-|\verb|5A5A;| &C5-5A5A; + +\verb|\CJKchar[CNS6]{"5A}{"5A}| \CJKchar[CNS6]{"5A}{"5A} +\quad \verb|&C6-|\verb|5A5A;| &C6-5A5A; + +\verb|\CJKchar[CNS7]{"5A}{"5A}| \CJKchar[CNS7]{"5A}{"5A} +\quad \verb|&C7-|\verb|5A5A;| &C7-5A5A; + +\end{CJK} + +\end{document} diff --git a/language/chinese/CJK/cjk-4.8.5/examples/CJKbabel.tex b/language/chinese/CJK/cjk-4.8.5/examples/CJKbabel.tex new file mode 100644 index 0000000000..045465ee6e --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/CJKbabel.tex @@ -0,0 +1,138 @@ +% This is the file CJKbabel.tex of the CJK package +% for testing text written with Emacs 20 and Babel (starting +% with version 3.6). +% +% written by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% You need Emacs 20 to process this file! + +% You should load this file into Emacs (C-x C-f) and call +% `cjk-write-file' (M-x cjk-write-file). Then run LaTeX on the file +% `CJKbabel.cjk'. +% +% `cjk-write-file' will be available after loading cjk-enc.el into +% Emacs 20 with the commands load-file or load-library. +% +% Vietnamese support comes with the VnTeX package. +% - T2A encoding for Computer Modern Cyrillic requires LH fonts +% - uses CB Greek fonts and CM-Super fonts +% - requires cyrillic, greek-fontenc, vntex +% +% Read cjk-enc.txt for more details. + +\documentclass[12pt]{article} + +\usepackage{inputenc} % load it without argument + % to avoid Babel warnings + +\usepackage[10pt]{type1ec} % use only 10pt fonts +\usepackage[T1]{fontenc} + +\usepackage[german, + russian, % T2A font encoding + thaicjk, % C90 font encoding + greek, % LGR font encoding + vietnamese, % T5 font encoding + USenglish]{babel} + +\usepackage[overlap, CJK]{ruby} +\usepackage{CJKulem} + +\usepackage{pshan} % Korean Wansong PS fonts + +\CJKencfamily{Bg5}{bsmi} +\CJKencfamily{GB}{gbsn} +\CJKencfamily[dnp]{JIS}{min} + +\CJKfontenc{KS}{HL} +\CJKfontenc{JIS}{dnp} + +\renewcommand{\rubysep}{-0.2ex} + + +\begin{document} + +\parskip 3ex +\parindent 0pt + +“ÀÌ FAQ “Àº “ÀÚ“ÁÖ “¹Ý“º¹“µÇ“´Â “Áú“¹®“°ú “±×“¿¡ “´ë“ÇÑ “´ë“´ä“À» “°£“´Ü“¸í“·á“ÇÑ “¾ç“½Ä“À¸“·Î +“¸ð“¾Æ “¿«“¾î“Á³“½À“´Ï“´Ù. \uline{“ÀÌ FAQ “ÀÇ “±¸“Á¶“´Â “Áö“³ “ÆÇ“¿¡ “ºñ“ÇÏ“¿© “ȹ“±â“Àû“À¸“·Î + “º¯“°æ“µÇ“¾ú“½À“´Ï“´Ù.} \textbf{“»ó“¼¼“ÇÑ “°Í“Àº ``“ÀÌ FAQ “À» “¾î“¶»“°Ô “ÀГÀ» + “°Í“ÀΓ°¡'' “¶ó“´Â “´ë“¸ñ“À» “Âü“Á¶“ÇÏ“½Ã“±â “¹Ù“¶ø“´Ï“´Ù.} + +\begin{otherlanguage}{german} + Dieses FAQ wurde erstellt, um häufig gestellte Fragen und ihre + Antworten in einer gefälligen Form zusammenzufassen. \uline{Die + Struktur dieses FAQ wurde drastisch geändert seit der letzten + Version.} \textbf{Für Details siehe den Abschnitt "`Wie lese ich + dieses FAQ"'.} +\end{otherlanguage} + +\CJKtilde + +‘±¾‘³£‘ÎÊ‘ÎÊ‘´ð‘¼¯~(FAQ list)~‘ÊÇ‘´Ó‘Ò»‘Щ‘¾‘³£‘±»‘ÎÊ‘µ½‘µÄ‘ÎÊ‘Ì⑼°‘Æä‘ÊÊ‘µ±‘µÄ‘½â‘´ð‘ÖБ£¬‘ÒÔ‘·½ +‘±ã‘µÄ‘ÐΑʽ‘Õª‘Òª‘¶ø‘³ö‘µÄ‘¡£\uline{‘¸ú‘ÉÏ‘Ò»‘°æ‘²»‘ͬ‘µÄ‘ÊÇ‘£¬‘Æ䑱à‘ÅÅ‘½á‘¹¹‘ÒÑ‘³¹‘µ×‘¸Ä‘±ä‘¡£} +\textbf{‘ÓБ¹Ø‘Б½á‘¹¹‘µÄ‘ϸ‘½Ú‘£¬‘¿É‘²Î‘¿¼‘¡¸‘È瑺ΑÔÄ‘¶Á‘±¾‘ÎÊ‘´ð‘¼¯‘¼°‘ÁË‘½â‘Æ䑱à‘ÅÅ‘½á‘¹¹‘¡¹‘¸Ã + ‘Ïî‘ÖБµÄ‘˵‘Ã÷‘¡£} + +˜¨Ü˜¼§˜»Ã˜»Ã˜Ã±˜Äö~(FAQ list)~˜³Ó˜¼¸˜¦¢˜é˜Ç§˜¿¸˜»Ã˜®°˜°ü˜»Ã˜Ù°˜®¨˜Ñ˘Ƕ˜°ü˜È٘ñ˜¦ä˜¡¢˜§é˜§Ê +˜±î˜°ü˜¬±˜ª£˜Êó˜µÓ˜ªÕ˜§ù˜°ü˜¡¤\uline{˜Èú˜¦¹˜¦¢˜°ë˜¦ã˜©Ò˜°ü˜³Ó˜¡¢˜®¨˜Ð¾˜¼ë˜Ã¹˜Ë˜¦Ù˜Ê是¶˜¬Ò˜Þɘ¡¤} +\textbf{˜ªµ˜ÛØƼ˜Ã¹˜Ë˜°ü˜¾Ù˜Ç蘡¢˜¨¬˜»·˜ªÔ˜¡Ö˜©ò˜ªõ˜Ñæ˜Ýõ˜¨Ü˜»Ã˜Ã±˜Äö˜§°˜¦¨˜ÈÙ˜®¨˜Ð¾˜¼ë˜Ã¹˜Ë˜¡×˜ÈÛ + ˜Äû˜¦ä˜°ü˜Íª˜¯ý˜¡¤} + +This FAQ list was made to summarize some frequently asked questions +and their answers in a convenient form. \uline{The structure of this + FAQ list has drastically changed since the last version.} +\textbf{For details of the new structure, see the entry of `How to + read this FAQ and its structure'.} + +’¤³’¤Î~FAQ~’¥ê’¥¹’¥È’¤Ï’¡¢’¤è’¤¯’¤¢’¤ë’¼Á’Ì䒤Ȓ¤½’¤Î’Åú’¤ò’½¸’¤á’¡¢’Ìò’¤Ë’Ω’¤Ä’¤è’¤¦’¤Ë’¤·’¤¿’¤â’¤Î +’¤Ç’¤¹’¡£\uline{’¤³’¤Î~FAQ~’¥ê’¥¹’¥È’¤Î’¹½’¤’¤Ï’¡¢’°Ê’Á°’¤Î’¤â’¤Î’¤È’Èæ’¤Ù’¤Æ’Âç’Éý’¤Ë’ÊÑ’¹¹’¤µ’¤ì + ’¤Æ’¤¤’¤Þ’¤¹’¡£}\textbf{\ruby{’¿·}{’¤¢’¤¿’¤é}’¤·’¤¤’¹½’¤’¤Ë’´Ø’¤·’¤Æ’¤Ï’¡¢’¡Ö’¤³’¤Î~FAQ~ + ’¤Î’ÆÉ’¤ß’Êý’¤È’¤½’¤Î’¹½’¤’¡×’¤Î’¹à’ÌÜ’¤ò\ruby{’»²}{’¤µ’¤ó}\ruby{’¾È}{’¤·’¤ç’¤¦}’¤·’¤Æ’²¼’¤µ + ’¤¤’¡£} + +\begin{otherlanguage}{vietnamese} +Phš¢¥n ``Nhš¢æng cš¢âu hš¢öi vš¢à giš¢äi š¢ðš¢áp thš¢ßš¢¶ng gš¢£p'' (viš¢ªt tš¢¡t tš¢× tiš¢ªng Anh +lš¢à FAQ) š¢ðš¢ßš¢þc nš¢êu ra š¢· š¢ðš¢ây nhš¢¢m mš¢øc š¢ðš¢ích thu thš¢§p nhš¢æng cš¢âu hš¢öi thš¢ßš¢¶ng +gš¢£p trong thš¢ñc tš¢ª vš¢à nhš¢æng lš¢¶i giš¢äi š¢ðš¢áp thš¢ích hš¢þp nhš¢¤t cš¢üa nš¢ó. +\uline{Tš¢× lš¢¥n š¢¤n bš¢än cuš¢¯i cš¢ùng š¢ðš¢ªn nay, š¢ðš¢ã cš¢ó nhš¢æng sš¢ñ thay š¢ðš¢±i khš¢á + lš¢¾n trong cš¢¤u trš¢úc cš¢üa FAQ.} \textbf{š£ðš¢¬ hiš¢¬u rš¢õ hš¢½n bš¢Õn nš¢ên xem lš¢Õi + chš¢ßš¢½ng ``Lš¢àm sao tš¢ôi cš¢ó thš¢¬ š¢ðš¢÷c š¢ðuš¢þc FAQ''.} +\end{otherlanguage} + +\begin{otherlanguage}{russian} + ŒÍŒâŒÞŒâ ŒáŒßŒØŒáŒÞŒÚ ŒÑŒëŒÛ ŒáŒÞŒáŒâŒÐŒÒŒÛŒÕŒÝ ŒÔŒÛŒï ŒáŒãŒÜŒÜŒØŒàŒÞŒÒŒÐŒÝŒØŒï ŒÝŒÕŒÚŒÞŒâŒÞŒàŒëŒå ŒçŒÐŒáŒâŒÞ + Œ×ŒÐŒÔŒÐŒÒŒÐŒÕŒÜŒëŒå ŒÒŒÞŒßŒàŒÞŒáŒÞŒÒ (FAQ), ŒÒŒÜŒÕŒáŒâŒÕ Œá ŒÞŒâŒÒŒÕŒâŒÐŒÜŒØ ŒÝŒÐ ŒÝŒØŒå, ŒÒ ŒãŒÔŒÞŒÑŒÝŒÞŒÙ + ŒäŒÞŒàŒÜŒÕ. \uline{ŒÁŒâŒàŒãŒÚŒâŒãŒàŒÐ ŒíŒâŒÞŒÓŒÞ FAQ ŒÚŒÐŒàŒÔŒØŒÝŒÐŒÛŒìŒÝŒÞ ŒØŒ×ŒÜŒÕŒÝŒØŒÛŒÐŒáŒì ŒßŒÞ + ŒáŒàŒÐŒÒŒÝŒÕŒÝŒØŒî Œá ŒßŒÞŒáŒÛŒÕŒÔ\-ŒÝŒÕŒÙ ŒÒŒÕŒàŒáŒØŒÕŒÙ.} \textbf{Œ² ŒàŒÐŒ×ŒÔŒÕŒÛŒÕ `ŒºŒÐŒÚ ŒçŒØŒâŒÐŒâŒì + ŒíŒâŒÞŒâ FAQ ŒØ ŒÕŒÓŒÞ ŒáŒâŒàŒãŒÚŒâŒãŒàŒÐ' ŒÞŒÑŒêŒïŒáŒÝŒÕŒÝŒë ŒÔŒÕŒâŒÐŒÛŒØ ŒíŒâŒÞŒÙ ŒÝŒÞŒÒŒÞŒÙ ŒáŒâŒàŒãŒÚŒâŒãŒàŒë.} +\end{otherlanguage} + +\begin{otherlanguage}{thaicjk} + …Ã…Ò…Â…¡…Ò…Ã FAQ €¥¹¥Õ¥é…Ê€¥Ã¥é…Ò…§€¥¢¥Ö¥é…¹…à€¥¾¥×¥è…Í…Ê€¥Ã¥Ø…»…¤…Ó…¶…Ò…Á€¥·¥Õ¥è…¶…Ò…Á€¥¡¥Ñ…¹€¥º¥è…Í…Â…¤€¥Ã¥Ñ¥é…§…á…Å…Ð…¤…Ó…µ…Í…º…¤…Ó…¶…Ò…Á…ã…¹€¥Ã¥Ù…»…á…º…º€¥·¥Õ…Ê…Ð…´…Ç…¡. + \uline{…â…¤…Ã…§…Ê€¥Ã¥é…Ò…§…¢…Í…§…Ã…Ò…Â…¡…Ò…Ã FAQ €¥¹¥Õ¥é…à…»€¥Å¥Õ¥è…Â…¹…ä…»…Á…Ò…¡€¥µ¥Ñ¥é…§…ဥµ¥è€¥Ã¥Ø¥è…¹€¥·¥Õ¥è…ဥťé…Ç.} + \textbf{€¥´¥Ù…Ã…Ò…Â…Å…Ð…à€¥Í¥Õ…Â…´…Ê…Ó…Ë€¥Ã¥Ñ…º…â…¤…Ã…§…Ê€¥Ã¥é…Ò…§…ã…Ë€¥Á¥è…䀥´¥é…¨…Ò…¡€¥ª¥è…Ç…§ ``…â…¤…Ã…§…Ê€¥Ã¥é…Ò…§…á…ŅЀ¥Ç¥Ô€¥¸¥Õ…¡…҅À¥Í¥è…Ò…¹ + FAQ.''} +\end{otherlanguage} + +\begin{otherlanguage}{greek} + †Ç †ë†ß†ó†ô†á †á†õ†ô†Þ †Ó†Ô†Å (†ó†õ†÷†í†Ü †ô†é†è†å†ì†Ý†í†ù†í †å†ñ†ù†ô†Þ†ó†å†ù†í) †Ý†÷†å†é †ó†á†í †ó†ê†ï†ð†ü †í†á + †ó†õ†ì†ð†å†ñ†é†ë†Ü†â†å†é †ó†å †å†ý†÷†ñ†ç†ó†ô†ç †ì†ï†ñ†ö†Þ †ê†Ü†ð†ï†é†å†ò †ó†ç†ì†á†í†ô†é†ê†Ý†ò †å†ñ†ù†ô†Þ†ó†å†é†ò †ê†á†é †ô†é†ò + †á†ð†á†í†ô†Þ†ó†å†é†ò †ô†ï†õ†ò. \uline{†Ç †ï†ñ†ã†Ü†í†ù†ó†ç †á†õ†ô†Þ†ò †ô†ç†ò †ë†ß†ó†ô†á†ò †Ü†ë†ë†á†î†å + †ó†ç†ì†á†í†ô†é†ê†Ü †á†ð†ü †ô†ç†í †ô†å†ë†å†õ†ô†á†ß†á †Ý†ê†ä†ï†ó†Þ †ô†ç†ò †ê†á†é †ì†å†ô†Ü.} \textbf{†Ã†é†á + †ë†å†ð†ô†ï†ì†Ý†ñ†å†é†å†ò †ð†Ü†í†ù †ó†ô†ç †í†Ý†á †ï†ñ†ã†Ü†í†ù†ó†ç, †â†ë†Ý†ð†å †ô†ï †ë†Þ†ì†ì†á <<†Ð†þ†ò †í†á + †ä†é†á†â†Ü†ó†å†ô†å †á†õ†ô†Þ †ô†ç†í †Ó†Ô†Å †ê†á†é †ð†þ†ò †å†ß†í†á†é †ï†ñ†ã†á†í†ù†ì†Ý†í†ç>>.} +\end{otherlanguage} + +\end{document} + + +%%% Local Variables: +%%% coding: emacs-mule +%%% mode: latex +%%% TeX-master: t +%%% TeX-command-default: "CJKLaTeX" +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/examples/CJKfntef.tex b/language/chinese/CJK/cjk-4.8.5/examples/CJKfntef.tex new file mode 100644 index 0000000000..242b0d9ee4 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/CJKfntef.tex @@ -0,0 +1,90 @@ +% This is the file CJKfntef.tex of the CJK package +% for testing CJKfntef.sty. +% +% written by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\documentclass[12pt]{article} + +\usepackage{color} +\usepackage{CJK} +\usepackage{CJKfntef} + +\textwidth 100mm +\pagestyle{empty} + + +\begin{document} + +\baselineskip 15pt +\parindent 0pt +\parskip 15pt + +\begin{CJK*}{GB}{gbsn} + +\verb|CJKfilltwosides environment:| + +\begin{CJKfilltwosides}{40mm} +Á½¶Ë·ÖÉ¢¶ÔÆë\\ +·ÖÉ¢¶ÔÆë \\ +\CJKunderdot{ºº ×Ö ¿É¼Óµã} +\end{CJKfilltwosides} + +\vspace{0.3cm} + +\verb|\CJKunderdot{...\CJKunderline{...}}|:\\ +\CJKunderdot{ºº×ּӵ㣬 \CJKunderline{¿Éͬʱ¼ÓÏ»®Ïß¼ÓÏ»®£¬Ïß, ×Ô¶¯»»ÐÐ,}} + +\verb|\CJKunderline*{...\CJKunderdot{...}}|:\\ +\CJKunderline*{ºº×ּӵ㣬 \CJKunderdot{¿Éͬʱ¼ÓÏ»®Ïß¼ÓÏ»®£¬Ïß, ×Ô¶¯»»ÐÐ,}} + +\verb|\CJKunderdot{...\CJKunderwave{...}}|:\\ +\CJKunderdot{ºº×ּӵ㣬 \CJKunderwave{¿Éͬʱ¼ÓÏ»®Ïß¼ÓÏ»®£¬Ïß, ×Ô¶¯»»ÐÐ,}} + +\verb|\CJKunderwave*{...\CJKunderdot{...}}|:\\ +\CJKunderwave*{ºº×ּӵ㣬 \CJKunderdot{¿Éͬʱ¼ÓÏ»®Ïß¼ÓÏ»®£¬Ïß, ×Ô¶¯»»ÐÐ,}} + +\verb|\CJKunderdot{...\CJKunderdblline{...}}|:\\ +\CJKunderdot{ºº×ּӵ㣬 \CJKunderdblline{¿Éͬʱ¼ÓÏ»®Ïß¼ÓÏ»®£¬Ïß, ×Ô¶¯»»ÐÐ,}} + +\verb|\CJKunderdblline*{...\CJKunderdot{...}}|:\\ +\CJKunderdblline*{ºº×ּӵ㣬 \CJKunderdot{¿Éͬʱ¼ÓÏ»®Ïß¼ÓÏ»®£¬Ïß, ×Ô¶¯»»ÐÐ,}} + +\verb|\CJKunderdot{...\CJKsout{...}}|:\\ +\CJKunderdot{ºº×ּӵ㣬 \CJKsout{¿Éͬʱ¼ÓÏ»®Ïß¼ÓÏ»®£¬Ïß, ×Ô¶¯»»ÐÐ,}} + +\verb|\CJKsout*{...\CJKunderdot{...}}|:\\ +\CJKsout*{ºº×ּӵ㣬 \CJKunderdot{¿Éͬʱ¼ÓÏ»®Ïß¼ÓÏ»®£¬Ïß, ×Ô¶¯»»ÐÐ,}} + +\verb|\CJKunderdot{...\CJKxout{...}}|:\\ +\CJKunderdot{ºº×ּӵ㣬 \CJKxout{¿Éͬʱ¼ÓÏ»®Ïß¼ÓÏ»®£¬Ïß, ×Ô¶¯»»ÐÐ,}} + +\verb|\CJKxout*{...\CJKunderdot{...}}|:\\ +\CJKxout*{ºº×ּӵ㣬 \CJKunderdot{¿Éͬʱ¼ÓÏ»®Ïß¼ÓÏ»®£¬Ïß, ×Ô¶¯»»ÐÐ,}} + +\newpage + +\verb|\CJKunderline{...}\CJKunderline{...}|:\\ +\CJKunderline{ºº×Ö}\CJKunderline{¼Óµã} + +\verb|\varCJKunderline{...}\varCJKunderline{...}|:\\ +\varCJKunderline{ºº×Ö}\varCJKunderline{¼Óµã} + +\verb|\CJKunderanyline{...}{...}{...}%|\\ +\verb|\CJKunderanyline{...}{...}{...}|:\\ +\CJKunderanyline{0.5em}{-}{ºº×ּӵ㣬 ¿Éͬʱ}% +\CJKunderanyline{0.5em}{-}{¼ÓÏ»®Ïß¼ÓÏ»®£¬Ïß, ×Ô¶¯»»ÐÐ,} + +\verb|\CJKunderanysymbol{...}{...}{...}|:\\ +\CJKunderanysymbol{0.5em}{-}{ºº×ּӵ㣬 ¿Éͬʱ¼ÓÏ»®Ïß¼ÓÏ»®£¬Ïß, ×Ô¶¯»»ÐÐ,} + +\end{CJK*} + +\end{document} + +%%% Local Variables: +%%% coding: euc-china +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/examples/CJKmixed.tex b/language/chinese/CJK/cjk-4.8.5/examples/CJKmixed.tex new file mode 100644 index 0000000000..cbcb8796fc --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/CJKmixed.tex @@ -0,0 +1,81 @@ +% This is the file CJKmixed.tex of the CJK package +% for testing CJK text written vertically. +% +% written by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) +% +% Vietnamese support comes with the VnTeX package. + +\documentclass[12pt]{article} + +\usepackage{CJKutf8} +\usepackage{CJKvert} +\usepackage{CJKulem} + +\usepackage{inputenc} % load it without argument + % to avoid Babel warnings + +\usepackage[vietnamese, % T5 font encoding + USenglish]{babel} + +\newenvironment{TChinese}{% + \CJKfamily{bsmi}% + \CJKtilde + \CJKnospace}{} + + +\begin{document} + +\begin{CJK}{UTF8}{} + +\CJKhorz + +This is a test how CJK scripts can be typeset horizontally and +vertically at the same time. It is not too difficult to achieve, +nevertheless it is not trivial. Most importantly, you need a +\texttt{.fdx} file which corresponds to your CJK font, and which +defines how to set up the font for vertical typesetting. + +\begin{center} + \rotatebox[origin=c]{-90}{% + \begin{minipage}[c]{8cm} + \CJKvert + \begin{TChinese} + 本常å•å•ç”集~(FAQ list)~是從一些經常被å•åˆ°çš„å•é¡ŒåŠå…¶é©ç•¶çš„è§£ç” + ä¸ï¼Œä»¥æ–¹ä¾¿çš„å½¢å¼æ‘˜è¦è€Œå‡ºçš„。\uline{跟上一版ä¸åŒçš„是,其編排çµæ§‹ + 已徹底改變。} \textbf{有關新çµæ§‹çš„細節,å¯åƒè€ƒã€Œå¦‚ä½•é–±è®€æœ¬å• + ç”集åŠäº†è§£å…¶ç·¨æŽ’çµæ§‹ã€è©²é …ä¸çš„說明。} + \end{TChinese} + \end{minipage}% + }% + \hspace{0.5cm}% + \begin{minipage}[c]{8cm} + \begin{otherlanguage}{vietnamese} + Phần ``Những câu há»i và giải đáp thÆ°á»ng gặp'' (viết tắt từ tiếng + Anh là FAQ) được nêu ra ở đây nhằm mục Ä‘Ãch thu tháºp những câu + há»i thÆ°á»ng gặp trong thá»±c tế và những lá»i giải đáp thÃch hợp + nhất của nó. \uline{Từ lần ấn bản cuối cùng đến nay, đã có + những sá»± thay đổi khá lá»›n trong cấu trúc của FAQ.} \textbf{Äể + hiểu rõ hÆ¡n bạn nên xem lại chÆ°Æ¡ng ``Là m sao tôi có thể Ä‘á»c + Ä‘uợc FAQ''.} + \end{otherlanguage} + \end{minipage} +\end{center} + +\begin{TChinese} + 本常å•å•ç”集~(FAQ list)~是從一些經常被å•åˆ°çš„å•é¡ŒåŠå…¶é©ç•¶çš„解ç”ä¸ï¼Œä»¥ + 方便的形å¼æ‘˜è¦è€Œå‡ºçš„。\uline{跟上一版ä¸åŒçš„是,其編排çµæ§‹å·²å¾¹åº•æ”¹è®Šã€‚} + \textbf{有關新çµæ§‹çš„細節,å¯åƒè€ƒã€Œå¦‚何閱讀本å•ç”集åŠäº†è§£å…¶ç·¨æŽ’çµæ§‹ã€ + è©²é …ä¸çš„說明。} +\end{TChinese} + +\end{CJK} + +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% coding: utf-8 +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/examples/CJKspace.tex b/language/chinese/CJK/cjk-4.8.5/examples/CJKspace.tex new file mode 100644 index 0000000000..4acfb0230a --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/CJKspace.tex @@ -0,0 +1,41 @@ +% This is the file CJKspace.tex of the CJK package +% for testing the CJKspace style file. +% +% written by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) +% +% Read CJKspace.txt for more details. + +\documentclass[11pt]{article} + +\usepackage{CJK} +\usepackage{CJKspace} + +\begin{document} + +\parindent 2em + +\begin{CJK*}{UTF8}{gbsn} + + This document shows the effects of \texttt{CJKspace.sty}. + + \verb+CJKspace+ 包仅忽略CJKæ–‡å—之间的空白而ä¿ç•™ï¼ˆCJKæ–‡å—与英文之间ç‰ï¼‰ + 其它空白。 + + 这是 English ä¸æ–‡ \textit{Chinese} ä¸æ–‡ {\itshape Italic} æ•°å¦ $x=y$ + 混排 \verb+anything+ + + 混排 \verb+anything+ ä¿æŒ \texttt{spaces} ç©ºæ ¼ \LaTeX\ é—´éš” + \mbox{boxes} ç›’å \hbox{hbox} ä¸æ–‡ 123456 æ•°å—. + +\end{CJK*} + +\end{document} + + +%%% Local Variables: +%%% coding: utf-8 +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/examples/CJKutf8.tex b/language/chinese/CJK/cjk-4.8.5/examples/CJKutf8.tex new file mode 100644 index 0000000000..f7a6b23ec9 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/CJKutf8.tex @@ -0,0 +1,139 @@ +% This is the file CJKutf8.tex of the CJK package +% for testing the CJKutf8 style file. +% +% written by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Vietnamese support comes with the VnTeX package. +% UTF-8 support for Greek comes with the greek-inputenc package. +% +% - T2A encoding for Computer Modern Cyrillic requires LH fonts +% - uses CB Greek fonts, CM-Super fonts +% - requires cyrillic, greek-fontenc, greek-inputenc, vntex +% +% Read CJKutf8.txt for more details. + +\documentclass[12pt]{article} + +\usepackage{cmap} + +\usepackage[10pt]{type1ec} % use only 10pt fonts +\usepackage[T1]{fontenc} + +\usepackage{CJKutf8} % CJK wrapper of [utf8]{inputenc} +\usepackage[german, + russian, % T2A font encoding + vietnamese, % T5 font encoding + greek, % LGR font encoding + USenglish]{babel} + +\usepackage{textalpha} % improved LGR support + +\usepackage[overlap, CJK]{ruby} +\usepackage{CJKulem} % CJK wrapper of {ulem} + +\renewcommand{\rubysep}{-0.2ex} + +\newenvironment{SChinese}{% + \CJKfamily{gbsn}% + \CJKtilde + \CJKnospace}{} +\newenvironment{TChinese}{% + \CJKfamily{bsmi}% + \CJKtilde + \CJKnospace}{} +\newenvironment{Japanese}{% + \CJKfamily{min}% + \CJKtilde + \CJKnospace}{} +\newenvironment{Korean}{% + \CJKfamily{mj}}{} + + +\begin{document} + +\parskip 3ex +\parindent 0pt + +\begin{CJK}{UTF8}{} + +\begin{Korean} + ì´ FAQ ì€ ìžì£¼ 반복ë˜ëŠ” 질문과 ê·¸ì— ëŒ€í•œ ëŒ€ë‹µì„ ê°„ë‹¨ëª…ë£Œí•œ ì–‘ì‹ìœ¼ë¡œ + 모아 엮어졌습니다. \uline{ì´ FAQ ì˜ êµ¬ì¡°ëŠ” 지난 íŒì— 비하여 + íšê¸°ì 으로 변경ë˜ì—ˆìŠµë‹ˆë‹¤.} \textbf{ìƒì„¸í•œ ê²ƒì€ ``ì´ FAQ ì„ ì–´ë–»ê²Œ + ì½ì„ 것ì¸ê°€'' ë¼ëŠ” ëŒ€ëª©ì„ ì°¸ì¡°í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤.} +\end{Korean} + +\begin{otherlanguage}{german} + Dieses FAQ wurde erstellt, um häufig gestellte Fragen und ihre + Antworten in einer gefälligen Form zusammenzufassen. \uline{Die + Struktur dieses FAQ wurde drastisch geändert seit der letzten + Version.} \textbf{Für Details siehe den Abschnitt "`Wie lese ich + dieses FAQ"'.} +\end{otherlanguage} + +\begin{SChinese} + 本常问问ç”集~(FAQ list)~是从一些ç»å¸¸è¢«é—®åˆ°çš„问题åŠå…¶é€‚当的解ç”ä¸ï¼Œä»¥ + 方便的形å¼æ‘˜è¦è€Œå‡ºçš„。\uline{跟上一版ä¸åŒçš„是,其编排结构已彻底改å˜ã€‚} + \textbf{有关新结构的细节,å¯å‚考「如何阅读本问ç”集åŠäº†è§£å…¶ç¼–排结构〠+ 该项ä¸çš„说明。} +\end{SChinese} + +\begin{TChinese} + 本常å•å•ç”集~(FAQ list)~是從一些經常被å•åˆ°çš„å•é¡ŒåŠå…¶é©ç•¶çš„解ç”ä¸ï¼Œä»¥ + 方便的形å¼æ‘˜è¦è€Œå‡ºçš„。\uline{跟上一版ä¸åŒçš„是,其編排çµæ§‹å·²å¾¹åº•æ”¹è®Šã€‚} + \textbf{有關新çµæ§‹çš„細節,å¯åƒè€ƒã€Œå¦‚何閱讀本å•ç”集åŠäº†è§£å…¶ç·¨æŽ’çµæ§‹ã€ + è©²é …ä¸çš„說明。} +\end{TChinese} + +This FAQ list was made to summarize some frequently asked questions +and their answers in a convenient form. \uline{The structure of this + FAQ list has drastically changed since the last version.} +\textbf{For details of the new structure, see the entry of `How to + read this FAQ and its structure'.} + +\begin{Japanese} + ã“ã®~FAQ~リストã¯ã€ã‚ˆãã‚る質å•ã¨ãã®ç”を集ã‚ã€å½¹ã«ç«‹ã¤ã‚ˆã†ã«ã—ãŸã‚‚ã® + ã§ã™ã€‚\uline{ã“ã®~FAQ~リストã®æ§‹é€ ã¯ã€ä»¥å‰ã®ã‚‚ã®ã¨æ¯”ã¹ã¦å¤§å¹…ã«å¤‰æ›´ã• + ã‚Œã¦ã„ã¾ã™ã€‚}\textbf{\ruby{æ–°}{ã‚ãŸã‚‰}ã—ã„æ§‹é€ ã«é–¢ã—ã¦ã¯ã€ã€Œã“ + ã®~FAQ~ ã®èªã¿æ–¹ã¨ãã®æ§‹é€ ã€ã®é …目を\ruby{å‚}{ã•ã‚“}\ruby{ç…§}{ã—ょ + ã†}ã—ã¦ä¸‹ã•ã„。} +\end{Japanese} + +\begin{otherlanguage}{vietnamese} + Phần ``Những câu há»i và giải đáp thÆ°á»ng gặp'' (viết tắt từ tiếng Anh + là FAQ) được nêu ra ở đây nhằm mục Ä‘Ãch thu tháºp những câu há»i + thÆ°á»ng gặp trong thá»±c tế và những lá»i giải đáp thÃch hợp nhất của + nó. \uline{Từ lần ấn bản cuối cùng đến nay, đã có những sá»± thay đổi + khá lá»›n trong cấu trúc của FAQ.} \textbf{Äể hiểu rõ hÆ¡n bạn nên + xem lại chÆ°Æ¡ng ``Là m sao tôi có thể Ä‘á»c Ä‘uợc FAQ''.} +\end{otherlanguage} + +\begin{otherlanguage}{russian} + Ðтот ÑпиÑок был ÑоÑтавлен Ð´Ð»Ñ ÑÑƒÐ¼Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… чаÑто + задаваемых вопроÑов (FAQ), вмеÑте Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð°Ð¼Ð¸ на них, в удобной + форме. \uline{Структура Ñтого FAQ кардинально изменилаÑÑŒ по + Ñравнению Ñ Ð¿Ð¾Ñлед\-ней верÑией.} \textbf{Ð’ разделе `Как читать + Ñтот FAQ и его Ñтруктура' объÑÑнены детали Ñтой новой Ñтруктуры.} +\end{otherlanguage} + +\begin{otherlanguage}{greek} + Η λίστα αυτή ΣΤΕ (συχνά τιθεμÎνων εÏωτήσεων) Îχει σαν σκοπό να + συμπεÏιλάβει σε εÏχÏηστη μοÏφή κάποιες σημαντικÎÏ‚ εÏωτήσεις και τις + απαντήσεις τους. \uline{Η οÏγάνωση αυτής της λίστας άλλαξε + σημαντικά από την τελευταία Îκδοσή της και μετά.} \textbf{Για + λεπτομÎÏειες πάνω στη νÎα οÏγάνωση, βλÎπε το λήμμα <<Î ÏŽÏ‚ να + διαβάσετε αυτή την ΣΤΕ και πώς είναι οÏγανωμÎνη>>.} +\end{otherlanguage} + +\end{CJK} + +\end{document} + + +%%% Local Variables: +%%% coding: utf-8 +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/examples/GB.tex b/language/chinese/CJK/cjk-4.8.5/examples/GB.tex new file mode 100644 index 0000000000..b02a095e24 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/GB.tex @@ -0,0 +1,31 @@ +% This is the file GB.tex of the CJK package +% for testing Chinese (in GB encoding). +% +% written by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\documentclass[12pt]{article} + +\usepackage{CJK} + + +\begin{document} + +\begin{CJK*}{GB}{gbsn} +\CJKtilde + +\noindent ±¾³£ÎÊÎÊ´ð¼¯~(FAQ list)~ÊÇ´ÓһЩ¾³£±»Îʵ½µÄÎÊÌâ¼°ÆäÊʵ±µÄ½â +´ðÖУ¬ÒÔ·½±ãµÄÐÎʽժҪ¶ø³öµÄ¡£¸úÉÏÒ»°æ²»Í¬µÄÊÇ£¬Æä±àÅŽṹÒѳ¹µ×¸Ä±ä¡£ +\textbf{ÓйØнṹµÄϸ½Ú£¬¿É²Î¿¼¡¸ÈçºÎÔĶÁ±¾Îʴ𼯼°Á˽âÆä±àÅŽṹ¡¹¸Ã +ÏîÖеÄ˵Ã÷¡£} + +\end{CJK*} + +\end{document} + +%%% Local Variables: +%%% coding: euc-china +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/examples/JIS.tex b/language/chinese/CJK/cjk-4.8.5/examples/JIS.tex new file mode 100644 index 0000000000..aadea76cb7 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/JIS.tex @@ -0,0 +1,35 @@ +% This is the file JIS.tex of the CJK package +% for testing Japanese (in JIS encoding). +% +% written by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\documentclass[12pt]{article} + +\usepackage{CJK} +\usepackage[CJK, overlap]{ruby} + +\renewcommand{\rubysep}{-0.2ex} + + +\begin{document} + +\begin{CJK*}[dnp]{JIS}{min} +\CJKtilde + +\noindent ¤³¤Î~FAQ~¥ê¥¹¥È¤Ï¡¢¤è¤¯¤¢¤ë¼ÁÌä¤È¤½¤ÎÅú¤ò½¸¤á¡¢Ìò¤ËΩ¤Ä¤è¤¦ +¤Ë¤·¤¿¤â¤Î¤Ç¤¹¡£¤³¤Î~FAQ~¥ê¥¹¥È¤Î¹½Â¤¤Ï¡¢°ÊÁ°¤Î¤â¤Î¤ÈÈæ¤Ù¤ÆÂçÉý¤ËÊѹ¹ +¤µ¤ì¤Æ¤¤¤Þ¤¹¡£\textbf{\ruby{¿·}{¤¢¤¿¤é}¤·¤¤¹½Â¤¤Ë´Ø¤·¤Æ¤Ï¡¢¡Ö¤³¤Î~FAQ~ +¤ÎÆɤßÊý¤È¤½¤Î¹½Â¤¡×¤Î¹àÌܤò\ruby{»²}{¤µ¤ó}\ruby{¾È}{¤·¤ç¤¦}¤·¤Æ²¼¤µ +¤¤¡£} + +\end{CJK*} + +\end{document} + +%%% Local Variables: +%%% coding: euc-japan +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/examples/KS.tex b/language/chinese/CJK/cjk-4.8.5/examples/KS.tex new file mode 100644 index 0000000000..8d0ba7f26b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/KS.tex @@ -0,0 +1,31 @@ +% This is the file KS.tex of the CJK package +% for testing Korean (in KS encoding). +% +% written by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\documentclass[12pt]{article} + +\usepackage{CJK} +\usepackage{pshan} + + +\begin{document} + +\begin{CJK}[HL]{KS}{} + +\noindent ÀÌ FAQ Àº ÀÚÁÖ ¹Ýº¹µÇ´Â Áú¹®°ú ±×¿¡ ´ëÇÑ ´ë´äÀ» °£´Ü¸í·áÇÑ +¾ç½ÄÀ¸·Î ¸ð¾Æ ¿«¾îÁ³½À´Ï´Ù. ÀÌ FAQ ÀÇ ±¸Á¶´Â Áö³ ÆÇ¿¡ ºñÇÏ¿© +ȹ±âÀûÀ¸·Î º¯°æµÇ¾ú½À´Ï´Ù. \textbf{»ó¼¼ÇÑ °ÍÀº ``ÀÌ FAQ À» ¾î¶»°Ô +ÀÐÀ» °ÍÀΰ¡'' ¶ó´Â ´ë¸ñÀ» ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù.} + +\end{CJK} + +\end{document} + +%%% Local Variables: +%%% coding: euc-korea +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/examples/README b/language/chinese/CJK/cjk-4.8.5/examples/README new file mode 100644 index 0000000000..38e932a325 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/README @@ -0,0 +1,66 @@ +Please note that the used fonts in the example files are set up for the +TeXLive distribution. Here a listing of some files and the used CJK fonts. + + + example file font definition file(s) TeX font names font file name(s) + --------------------------------------------------------------------------- + + Big5.tex c00bsmi.fd bsmilp01, bsmiu00.pfb, + bsmilp02, bsmiu02.pfb, + ... (4) ... + + Big5vert.tex c00bsmi.fd (1) bsmilp01, bsmiu00.pfb, + bsmilp02, bsmiu02.pfb, + ..., ..., + bsmilpv (4) bsmiuv.pfb + + CEF_test.tex c31song.fd, c1so1201, cns40-1.hbf, + ..., c1so1202, ..., + c37song.fd ..., cns40-7.hbf (5) + c2so1201, + c2so1202, + ... + + CJKutf8.txt c70bsmi.fd, bsmiu00,... bsmiu00.pfb,... + c70gbsn.fd, gbsnu00,... gbsnu00.pfb,... + c70min.fd, (2) udmj00,... (4) dmjsy.pfb,... + c70mj.fd uwmj00,... (4,6) umj00.pfb,... (7) + + GB.tex c10gbsn.fd gbsnlp01, gbsnlp01.pfb, + gbsnlp02, gbsnlp02.pfb, + ... (4) ... + + JIS.tex + SJIS.tex c42min.fd (2) dmjsy, dmjsy.pfb, + dmjroma, dmjroma.pfb, + dmjhira, dmjhira.pfb, + ... ... + + KS.tex c63mj.fd wmj0, umj00.pfb, + wmj1, umj01.pfb, + ... (4) ... (7) + + UTF8.tex c70song.fd (3) cyberb00, cyberbit.ttf + cyberb01, + ... + + +(1) The glyphs are rotated using the graphicx package. + +(2) Font definition files for the Wadalab fonts are in the directory + `contrib/wadalab'. + +(3) For licensing reasons, TeXLive doesn't contain cyberbit.ttf and + corresponding TeX subfont metric files, thus you can't process UTF8.tex + without installing this font (or another Unicode font) manually. + +(4) These are virtual fonts. + +(5) These are bitmap fonts. + +(6) Virtual Unicode fonts for Korean (from HLaTeX) are currently only + available in the TeXLive distribution. + +(7) Korean PS fonts (from HLaTeX) with glyph names compliant to the Adobe + Glyph List (AGL) are currently only available in the TeXLive + distribution. diff --git a/language/chinese/CJK/cjk-4.8.5/examples/SJIS.tex b/language/chinese/CJK/cjk-4.8.5/examples/SJIS.tex new file mode 100644 index 0000000000..5c7417d90b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/SJIS.tex @@ -0,0 +1,39 @@ +% This is the file SJIS.tex of the CJK package +% for testing Japanese (in SJIS encoding). +% +% written by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) +% +% +% process this file with sjislatex + +\documentclass[12pt]{article} + +\usepackage{CJK} +\usepackage[CJK, overlap]{ruby} + +\renewcommand{\rubysep}{-0.3ex} + + +\begin{document} + +\begin{CJK*}[dnp]{SJIS}{min} +\CJKtilde + +\noindent ‚±‚Ì~FAQ~ƒŠƒXƒg‚ÍA‚æ‚‚ ‚鎿–â‚Æ‚»‚Ì“š‚ðW‚ßA–ð‚É—§‚‚悤 +‚É‚µ‚½‚à‚Ì‚Å‚·B‚±‚Ì~FAQ~ƒŠƒXƒg‚Ì\‘¢‚ÍAˆÈ‘O‚Ì‚à‚Ì‚Æ”ä‚ׂđ啂ɕÏX +‚³‚ê‚Ä‚¢‚Ü‚·B\textbf{\ruby{V}{‚ ‚½‚ç}‚µ‚¢\‘¢‚ÉŠÖ‚µ‚Ä‚ÍAu‚±‚Ì~FAQ~ +‚Ì“Ç‚Ý•û‚Æ‚»‚Ì\‘¢v‚Ì€–Ú‚ð\ruby{ŽQ}{‚³‚ñ}\ruby{Æ}{‚µ‚傤}‚µ‚ĉº‚³ +‚¢B} + +\end{CJK*} + +\end{document} + +%%% Local Variables: +%%% coding: sjis +%%% mode: latex +%%% TeX-master: t +%%% TeX-command-default: "CJKLaTeX" +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/examples/UTF8.tex b/language/chinese/CJK/cjk-4.8.5/examples/UTF8.tex new file mode 100644 index 0000000000..d2f646f653 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/UTF8.tex @@ -0,0 +1,48 @@ +% This is the file UTF8.tex of the CJK package +% for testing UTF 8 encoding. +% +% written by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\documentclass[12pt]{article} + +\usepackage{CJK} +\usepackage[T1]{fontenc} + + +% WARNING! The font `cyberbit.ttf' is *not* part of TeXLive! +% Its use is discouraged. If you really want to use it, please +% follow the instructions given in `font.txt'. +% +% Look at the `CJKutf8.tex' example file (and read the +% `CJKutf8.txt' documentation file) for a better way how to +% process documents in UTF 8 encoding. + + +% we want the Unicode font for normal text also +\DeclareFontFamily{T1}{song}{} +\DeclareFontShape{T1}{song}{m}{n}{<-> cyberb00}{} +\renewcommand\rmdefault{song} + + +\begin{document} + +\begin{CJK}{UTF8}{song} + +\noindent Hello World! + +\noindent ΚαλημÎÏα κόσμε + +\CJKnospace +\noindent ã“ã‚“ã«ã¡ã¯ 世界 + +\end{CJK} + +\end{document} + +%%% Local Variables: +%%% coding: utf-8 +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/examples/muletest.tex b/language/chinese/CJK/cjk-4.8.5/examples/muletest.tex new file mode 100644 index 0000000000..572460aae7 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/muletest.tex @@ -0,0 +1,152 @@ +% This is the file muletest.tex of the CJK package +% for testing text written with Mule and Emacs 20. +% +% written by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% You need Emacs 20 (or Mule 2.3) to process this file! + +% You should load this file into Mule with `*internal*' encoding scheme +% (C-u C-x C-f) and call `cjk-write-file' (M-x cjk-write-file). +% Then run LaTeX on the file `muletest.cjk'. +% +% Under Emacs 20 type `C-x C-f muletest.tex' to load this file. +% +% `cjk-write-file' will be available after loading cjk-enc.el into Mule +% (Emacs 20) with the commands load-file or load-library. +% +% If you don't have german.sty, comment out the `\usepackage{german}' +% line. +% +% The T5 encoding is part of the VnTeX package (available at CTAN) which +% contains Vietnamese fonts and other support files for both TeX and +% LaTeX. +% - T2A encoding for Computer Modern Cyrillic requires LH fonts +% - uses CB Greek fonts, CM-Super fonts +% - requires cyrillic, german, greek-fontenc, vntex +% +% Read cjk-enc.txt for more details. + +\documentclass[12pt]{article} + +\usepackage{inputenc} % load it without argument + % to avoid Babel warnings + +\usepackage[10pt]{type1ec} % use only 10pt fonts + +\usepackage{german} +\usepackage[T5,T2A,LGR,OT1]{fontenc} % T2A is Cyrillic, + % LGR is Greek + % T5 is Vietnamese + +\usepackage[overlap, CJK]{ruby} +\usepackage{pshan} % Korean Wansong PS fonts + +\CJKencfamily{Bg5}{bsmi} +\CJKencfamily{GB}{gbsn} +\CJKencfamily[dnp]{JIS}{min} + +\CJKfontenc{KS}{HL} +\CJKfontenc{JIS}{dnp} + +\renewcommand{\rubysep}{-0.2ex} + +\begin{document} + +% suppress hyphenation completely since we don't use Babel and thus +% don't know which \language corresponds to which hyphenation pattern +\lefthyphenmin 65 +\raggedright + +\noindent “ÀÌ FAQ “Àº “ÀÚ“ÁÖ “¹Ý“º¹“µÇ“´Â “Áú“¹®“°ú “±×“¿¡ “´ë“ÇÑ “´ë“´ä“À» “°£“´Ü“¸í“·á“ÇÑ +“¾ç“½Ä“À¸“·Î “¸ð“¾Æ “¿«“¾î“Á³“½À“´Ï“´Ù. “ÀÌ FAQ “ÀÇ “±¸“Á¶“´Â “Áö“³ “ÆÇ“¿¡ “ºñ“ÇÏ“¿© +“ȹ“±â“Àû“À¸“·Î “º¯“°æ“µÇ“¾ú“½À“´Ï“´Ù. \textbf{“»ó“¼¼“ÇÑ “°Í“Àº ``“ÀÌ FAQ “À» “¾î“¶»“°Ô + “ÀГÀ» “°Í“ÀΓ°¡'' “¶ó“´Â “´ë“¸ñ“À» “Âü“Á¶“ÇÏ“½Ã“±â “¹Ù“¶ø“´Ï“´Ù.} + +\vspace{0.5cm} + +\noindent Dieses FAQ wurde erstellt, um häufig gestellte Fragen und +ihre Antworten in einer gefälligen Form zusammenzufassen. Die +Struktur dieses FAQ wurde drastisch geändert seit der letzten Version. +\textbf{Für Details siehe den Abschnitt "`Wie lese ich dieses FAQ"'.} + +\vspace{0.5cm} + +\CJKtilde + +\noindent ‘±¾‘³£‘ÎÊ‘ÎÊ‘´ð‘¼¯~(FAQ list)~‘ÊÇ‘´Ó‘Ò»‘Щ‘¾‘³£‘±»‘ÎÊ‘µ½‘µÄ‘ÎÊ‘Ì⑼°‘Æä‘ÊÊ‘µ±‘µÄ‘½â +‘´ð‘ÖБ£¬‘ÒÔ‘·½‘±ã‘µÄ‘ÐΑʽ‘Õª‘Òª‘¶ø‘³ö‘µÄ‘¡£‘¸ú‘ÉÏ‘Ò»‘°æ‘²»‘ͬ‘µÄ‘ÊÇ‘£¬‘Æ䑱à‘ÅÅ‘½á‘¹¹‘ÒÑ‘³¹‘µ×‘¸Ä‘±ä‘¡£ +\textbf{‘ÓБ¹Ø‘Б½á‘¹¹‘µÄ‘ϸ‘½Ú‘£¬‘¿É‘²Î‘¿¼‘¡¸‘È瑺ΑÔÄ‘¶Á‘±¾‘ÎÊ‘´ð‘¼¯‘¼°‘ÁË‘½â‘Æ䑱à‘ÅÅ‘½á‘¹¹‘¡¹‘¸Ã + ‘Ïî‘ÖБµÄ‘˵‘Ã÷‘¡£} + +\vspace{0.5cm} + +\noindent ˜¨Ü˜¼§˜»Ã˜»Ã˜Ã±˜Äö~(FAQ list)~˜³Ó˜¼¸˜¦¢˜é˜Ç§˜¿¸˜»Ã˜®°˜°ü˜»Ã˜Ù°˜®¨˜Ñ˘Ƕ˜°ü˜ÈÙ +˜Ã±˜¦ä˜¡¢˜§é˜§Ê˜±î˜°ü˜¬±˜ª£˜Êó˜µÓ˜ªÕ˜§ù˜°ü˜¡¤˜Èú˜¦¹˜¦¢˜°ë˜¦ã˜©Ò˜°ü˜³Ó˜¡¢˜®¨˜Ð¾˜¼ë˜Ã¹˜Ë˜¦Ù˜Ê是¶˜¬Ò˜Þɘ¡¤ +\textbf{˜ªµ˜ÛØƼ˜Ã¹˜Ë˜°ü˜¾Ù˜Ç蘡¢˜¨¬˜»·˜ªÔ˜¡Ö˜©ò˜ªõ˜Ñæ˜Ýõ˜¨Ü˜»Ã˜Ã±˜Äö˜§°˜¦¨˜ÈÙ˜®¨˜Ð¾˜¼ë˜Ã¹˜Ë˜¡×˜ÈÛ + ˜Äû˜¦ä˜°ü˜Íª˜¯ý˜¡¤} + +\vspace{0.5cm} + +\noindent This FAQ list was made to summarize some frequently asked +questions and their answers in a convenient form. The structure of +this FAQ list has drastically changed since the last version. +\textbf{For details of the new structure, see the entry of `How to + read this FAQ and its structure'.} + +\vspace{0.5cm} + +\noindent ’¤³’¤Î~FAQ~’¥ê’¥¹’¥È’¤Ï’¡¢’¤è’¤¯’¤¢’¤ë’¼Á’Ì䒤Ȓ¤½’¤Î’Åú’¤ò’½¸’¤á’¡¢’Ìò’¤Ë’Ω’¤Ä’¤è’¤¦ +’¤Ë’¤·’¤¿’¤â’¤Î’¤Ç’¤¹’¡£’¤³’¤Î~FAQ~’¥ê’¥¹’¥È’¤Î’¹½’¤’¤Ï’¡¢’°Ê’Á°’¤Î’¤â’¤Î’¤È’Èæ’¤Ù’¤Æ’Âç’Éý’¤Ë’ÊÑ’¹¹ +’¤µ’¤ì’¤Æ’¤¤’¤Þ’¤¹’¡£\textbf{\ruby{’¿·}{’¤¢’¤¿’¤é}’¤·’¤¤’¹½’¤’¤Ë’´Ø’¤·’¤Æ’¤Ï’¡¢’¡Ö’¤³’¤Î~FAQ~ + ’¤Î’ÆÉ’¤ß’Êý’¤È’¤½’¤Î’¹½’¤’¡×’¤Î’¹à’ÌÜ’¤ò\ruby{’»²}{’¤µ’¤ó}\ruby{’¾È}{’¤·’¤ç’¤¦}’¤·’¤Æ’²¼’¤µ + ’¤¤’¡£} + +\vspace{0.5cm} + +\bgroup +\fontencoding{T5}\selectfont + +\noindent Phš¢¥n ``Nhš¢æng cš¢âu hš¢öi vš¢à giš¢äi š¢ðš¢áp thš¢ßš¢¶ng gš¢£p'' (viš¢ªt tš¢¡t tš¢× +tiš¢ªng Anh lš¢à FAQ) š¢ðš¢ßš¢þc nš¢êu ra š¢· š¢ðš¢ây nhš¢¢m mš¢øc š¢ðš¢ích thu thš¢§p nhš¢æng cš¢âu +hš¢öi thš¢ßš¢¶ng gš¢£p trong thš¢ñc tš¢ª vš¢à nhš¢æng lš¢¶i giš¢äi š¢ðš¢áp thš¢ích hš¢þp nhš¢¤t cš¢üa +nš¢ó. Tš¢× lš¢¥n š¢¤n bš¢än cuš¢¯i cš¢ùng š¢ðš¢ªn nay, š¢ðš¢ã cš¢ó nhš¢æng sš¢ñ thay š¢ðš¢±i khš¢á lš¢¾n +trong cš¢¤u trš¢úc cš¢üa FAQ. \textbf{š£ðš¢¬ hiš¢¬u rš¢õ hš¢½n bš¢Õn nš¢ên xem lš¢Õi chš¢ßš¢½ng + ``Lš¢àm sao tš¢ôi cš¢ó thš¢¬ š¢ðš¢÷c š¢ðuš¢þc FAQ''.} +\egroup + +\vspace{0.5cm} + +\bgroup +\fontencoding{T2A}\selectfont + +\noindent ŒÍŒâŒÞŒâ ŒáŒßŒØŒáŒÞŒÚ ŒÑŒëŒÛ ŒáŒÞŒáŒâŒÐŒÒŒÛŒÕŒÝ ŒÔŒÛŒï ŒáŒãŒÜŒÜŒØŒàŒÞŒÒŒÐŒÝŒØŒï ŒÝŒÕŒÚŒÞŒâŒÞŒàŒëŒå ŒçŒÐŒáŒâŒÞ +Œ×ŒÐŒÔŒÐŒÒŒÐŒÕŒÜŒëŒå ŒÒŒÞŒßŒàŒÞŒáŒÞŒÒ (FAQ), ŒÒŒÜŒÕŒáŒâŒÕ Œá ŒÞŒâŒÒŒÕŒâŒÐŒÜŒØ ŒÝŒÐ ŒÝŒØŒå, ŒÒ ŒãŒÔŒÞŒÑŒÝŒÞŒÙ ŒäŒÞŒàŒÜŒÕ. +ŒÁŒâŒàŒãŒÚŒâŒãŒàŒÐ ŒíŒâŒÞŒÓŒÞ FAQ ŒÚŒÐŒàŒÔŒØŒÝŒÐŒÛŒìŒÝŒÞ ŒØŒ×ŒÜŒÕŒÝŒØŒÛŒÐŒáŒì ŒßŒÞ ŒáŒàŒÐŒÒŒÝŒÕŒÝŒØŒî Œá ŒßŒÞŒáŒÛŒÕŒÔŒÝŒÕŒÙ +ŒÒŒÕŒàŒáŒØŒÕŒÙ. \textbf{Œ² ŒàŒÐŒ×ŒÔŒÕŒÛŒÕ `ŒºŒÐŒÚ ŒçŒØŒâŒÐŒâŒì ŒíŒâŒÞŒâ FAQ ŒØ ŒÕŒÓŒÞ ŒáŒâŒàŒãŒÚŒâŒãŒàŒÐ' + ŒÞŒÑŒêŒïŒáŒÝŒÕŒÝŒë ŒÔŒÕŒâŒÐŒÛŒØ ŒíŒâŒÞŒÙ ŒÝŒÞŒÒŒÞŒÙ ŒáŒâŒàŒãŒÚŒâŒãŒàŒë.} +\egroup + +\vspace{0.5cm} + +\bgroup +\fontencoding{LGR}\selectfont + +\noindent †Ç †ë†ß†ó†ô†á †á†õ†ô†Þ †Ó†Ô†Å (†ó†õ†÷†í†Ü †ô†é†è†å†ì†Ý†í†ù†í †å†ñ†ù†ô†Þ†ó†å†ù†í) †Ý†÷†å†é †ó†á†í †ó†ê†ï†ð†ü +†í†á †ó†õ†ì†ð†å†ñ†é†ë†Ü†â†å†é †ó†å †å†ý†÷†ñ†ç†ó†ô†ç †ì†ï†ñ†ö†Þ †ê†Ü†ð†ï†é†å†ò †ó†ç†ì†á†í†ô†é†ê†Ý†ò †å†ñ†ù†ô†Þ†ó†å†é†ò †ê†á†é †ô†é†ò +†á†ð†á†í†ô†Þ†ó†å†é†ò †ô†ï†õ†ò. †Ç †ï†ñ†ã†Ü†í†ù†ó†ç †á†õ†ô†Þ†ò †ô†ç†ò †ë†ß†ó†ô†á†ò †Ü†ë†ë†á†î†å †ó†ç†ì†á†í†ô†é†ê†Ü †á†ð†ü †ô†ç†í +†ô†å†ë†å†õ†ô†á†ß†á †Ý†ê†ä†ï†ó†Þ †ô†ç†ò †ê†á†é †ì†å†ô†Ü. \textbf{†Ã†é†á †ë†å†ð†ô†ï†ì†Ý†ñ†å†é†å†ò †ð†Ü†í†ù †ó†ô†ç †í†Ý†á + †ï†ñ†ã†Ü†í†ù†ó†ç, †â†ë†Ý†ð†å †ô†ï †ë†Þ†ì†ì†á <<†Ð†þ†ò †í†á †ä†é†á†â†Ü†ó†å†ô†å †á†õ†ô†Þ †ô†ç†í †Ó†Ô†Å †ê†á†é †ð†þ†ò + †å†ß†í†á†é †ï†ñ†ã†á†í†ù†ì†Ý†í†ç>>.} +\egroup + +\end{document} + + +%%% Local Variables: +%%% coding: emacs-mule +%%% mode: latex +%%% TeX-master: t +%%% TeX-command-default: "CJKLaTeX" +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/examples/py_test.tex b/language/chinese/CJK/cjk-4.8.5/examples/py_test.tex new file mode 100644 index 0000000000..9885d62896 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/py_test.tex @@ -0,0 +1,43 @@ +% This is the file py_test.tex of the CJK package +% for testing pinyin syllables with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\documentclass{article} + +\usepackage{pinyin} + + +\begin{document} + +\Huge + +{\Wo3 \hen3 \xi3\huan1 \lv3\xing2.} + +{\slshape + \Wo3 \hen3 \xi3\huan1 \lv3\xing2.} + +{\itshape + \Wo3 \hen3 \xi3\huan1 \lv3\xing2.} + +{\bfseries + \Wo3 \hen3 \xi3\huan1 \lv3\xing2.} + +{\sffamily + \Wo3 \hen3 \xi3\huan1 \lv3\xing2.} + +{\ttfamily + \Wo3 \hen3 \xi3\huan1 \lv3\xing2.} + +{\bfseries\sffamily + \Wo3 \hen3 \xi3\huan1 \lv3\xing2.} + +\PYdeactivate +$\Xi, \xi, \Re$ +\PYactivate + +\Zhen1de \bu2 \cuo4 ne! + +\end{document} diff --git a/language/chinese/CJK/cjk-4.8.5/examples/rubytest.tex b/language/chinese/CJK/cjk-4.8.5/examples/rubytest.tex new file mode 100644 index 0000000000..0a03b928b6 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/rubytest.tex @@ -0,0 +1,56 @@ +% This is the file rubytest.tex of the CJK package +% for testing ruby with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% You need Emacs 20 (or Mule 2.3) to process this file! + +% You should load this file into Mule with `*internal*' encoding scheme +% (C-u C-x C-f) and call `cjk-write-file' (M-x cjk-write-file). +% Then run LaTeX on the created file `rubytest.cjk'. +% +% Under Emacs 20 type `C-x C-f rubytest.tex' to load this file. +% +% `cjk-write-file' will be available after loading cjk-enc.el into Mule +% (Emacs 20) with the commands load-file or load-library. + +\documentclass[12pt]{article} + +\usepackage[overlap, CJK]{ruby} +\usepackage{pinyin} + +\CJKencfamily{Bg5}{bsmi} +\CJKencfamily[dnp]{JIS}{min} + +\CJKfontenc{JIS}{dnp} + +\renewcommand{\rubysep}{-0.3ex} + + +\begin{document} + +{ +\rubylatin +\renewcommand{\rubysize}{1} + +\ruby{\wo3}{˜¬½} \ruby{\hen3}{˜³¡} \ruby{\xi3}{˜ÀÆ}\ruby{\huan1}{˜Ýä} +\ruby{\chi1}{˜©Û} \ruby{\Zhong1}{˜¦ä}\ruby{\guo2}{˜»Ð} +\ruby{\cai4}{˜Ãí}\ruby{.}{˜¡¤} +} + +\Large + +\ruby{’²Ö}{’¤Ï’¤Ê}\ruby{’±à}{’¤¾’¤Î}\ruby{’Âç}{’¤À’¤¤}\ruby{’³Ø}{’¤¬’¤¯} + +\ruby{’³¤}{’¤¦’¤ß}’¤È\ruby{’¸Ð}{’¤ß’¤º’¤¦’¤ß}’¤Ø’¹Ô’¤¯’¡£ + +\end{document} + +%%% Local Variables: +%%% coding: emacs-mule +%%% mode: latex +%%% TeX-master: t +%%% TeX-command-default: "CJKLaTeX" +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/examples/thai.tex b/language/chinese/CJK/cjk-4.8.5/examples/thai.tex new file mode 100644 index 0000000000..b7302438ae --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/thai.tex @@ -0,0 +1,43 @@ +% This is the file thai.tex of the CJK package +% for testing Thai (in TIS-620 encoding). +% +% written by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% This file must be processed with cjk-enc.el to get +% +% . proper word breaks +% . font switching between Thai and non-Thai +% . intercharacter glue +% +% Please read cjk-enc.txt for usage instructions. +% +% To process without cjk-enc.el, comment out the line containing +% `\extrasthaicjk'. Note, however, that you get overlong lines, and you +% must manually insert proper Thai word breaks. + + +\documentclass[12pt]{article} + +\usepackage[thaicjk]{babel} + +% \addto\extrasthaicjk{\fontencoding{C90}\selectfont} + + +\begin{document} + +ÃÒ¡Òà FAQ ¹ÕéÊÃéÒ§¢Öé¹à¾×èÍÊÃØ»¤Ó¶ÒÁ·Õè¶ÒÁ¡Ñ¹ºèͤÃÑé§áÅФӵͺ¤Ó¶ÒÁã¹ÃٻẺ·ÕÊдǡ. +â¤Ã§ÊÃéÒ§¢Í§ÃÒ¡Òà FAQ ¹Õéà»ÅÕè¹ä»ÁÒ¡µÑé§áµèÃØè¹·ÕèáÅéÇ. +\textbf{´ÙÃÒÂÅÐàÍÕ´ÊÓËÃѺâ¤Ã§ÊÃéÒ§ãËÁèä´é¨Ò¡ªèǧ ``â¤Ã§ÊÃéÒ§áÅÐÇÔ¸Õ¡ÒÃÍèÒ¹ + FAQ.''} + +\end{document} + + +%%% Local Variables: +%%% coding: thai-tis620 +%%% mode: latex +%%% TeX-master: t +%%% TeX-command-default: "CJKLaTeX" +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/examples/thai_utf8.tex b/language/chinese/CJK/cjk-4.8.5/examples/thai_utf8.tex new file mode 100644 index 0000000000..8933c43e1c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/examples/thai_utf8.tex @@ -0,0 +1,43 @@ +% This is the file thai_utf8.tex of the CJK package +% for testing Thai (in utf-8 encoding). +% +% written by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% This file must be processed with cjk-enc.el to get +% +% . proper word breaks +% . font switching between Thai and non-Thai +% . intercharacter glue +% +% Please read cjk-enc.txt for usage instructions. +% +% To process without cjk-enc.el, comment out the line containing +% `\extrasthaicjk'. Note, however, that you get overlong lines, and you +% must manually insert proper Thai word breaks. + + +\documentclass[12pt]{article} + +\usepackage[thaicjk]{babel} + +% \addto\extrasthaicjk{\fontencoding{C90}\selectfont} + + +\begin{document} + +รายà¸à¸²à¸£ FAQ นี้สร้างขึ้นเพื่à¸à¸ªà¸£à¸¸à¸›à¸„ำถามที่ถามà¸à¸±à¸™à¸šà¹ˆà¸à¸¢à¸„รั้งà¹à¸¥à¸°à¸„ำตà¸à¸šà¸„ำถามในรูปà¹à¸šà¸šà¸—ีสะดวà¸. +โครงสร้างขà¸à¸‡à¸£à¸²à¸¢à¸à¸²à¸£ FAQ นี้เปลี่ยนไปมาà¸à¸•à¸±à¹‰à¸‡à¹à¸•à¹ˆà¸£à¸¸à¹ˆà¸™à¸—ี่à¹à¸¥à¹‰à¸§. +\textbf{ดูรายละเà¸à¸µà¸¢à¸”สำหรับโครงสร้างใหม่ได้จาà¸à¸Šà¹ˆà¸§à¸‡ ``โครงสร้างà¹à¸¥à¸°à¸§à¸´à¸˜à¸µà¸à¸²à¸£à¸à¹ˆà¸²à¸™ + FAQ.''} + +\end{document} + + +%%% Local Variables: +%%% coding: utf-8 +%%% mode: latex +%%% TeX-master: t +%%% TeX-command-default: "CJKLaTeX" +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/Bg5.cap b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/Bg5.cap new file mode 100644 index 0000000000..258cc26d57 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/Bg5.cap @@ -0,0 +1,86 @@ +% This is the file Bg5.cap of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{Bg5.cap}[\filedate\space\fileversion] + + +% Chinese captions +% +% character set: Big 5 +% encoding: Big 5 + +\renewcommand\contentsname{¥Ø~~¿ý} +\renewcommand\listfigurename{¹Ï~¥Ø~¿ý} +\renewcommand\listtablename{ªí~¥Ø~¿ý} + +\CJK@ifundefined\chapter + {\renewcommand\refname{°Ñ~¦Ò~¸ê~®Æ} + %\renewcommand\refname{°Ñ~¦Ò~¤å~Äm} + } + {\renewcommand\bibname{¤å~~Äm} + %\renewcommand\bibname{°Ñ~¦Ò~®Ñ~¥Ø} +% \newcommand\prechaptername{²Ä} +% \newcommand\postchaptername{³¹} + } + +\renewcommand\indexname{¯Á~¤Þ} + +\renewcommand\figurename{¹Ï} +\renewcommand\tablename{ªí} + +\newcommand\prepartname{²Ä} +\newcommand\postpartname{³¡} +%\newcommand{\postpartname}{³¡¤À} +\renewcommand\partformat{\prepartname\CJKnumber{\value{part}}\postpartname} + + +% \newcommand\presectionname{²Ä} +% \newcommand\postsectionname{¸`} +% \renewcommand\appendixname{ªþ~¿ý} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{ºK~n}}{} + +% \renewcommand\ccname{} % ? +% \renewcommand\enclname{ªþ¥ó} +% \newcommand\prepagename{} % ? +% \newcommand\postpagename{} % ? +% \renewcommand\headtoname{} % ? +% \renewcommand\seename{} % ? + +\renewcommand{\today}{\number\year ¦~ \number\month ¤ë \number\day ¤é} +\CJK@ifundefined\CJKnumber + {\def\CJKnumber#1{\ifcase #1\or + ¤@\or ¤G\or ¤T\or ¥|\or ¤\or + ¤»\or ¤C\or ¤K\or ¤E\or ¤Q\fi}}{} + +\endinput + +%%% Local Variables: +%%% coding: big5 +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/Bg5.chr b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/Bg5.chr new file mode 100644 index 0000000000..5f6f737f62 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/Bg5.chr @@ -0,0 +1,219 @@ +% This is the file Bg5.chr of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{Bg5.chr}[\filedate\space\fileversion] + + +% define macros for handling Big 5 encoded CJK fonts and characters. + +\global\@namedef{CJK@Bg5Chr}{ + \CJK@global\chardef\CJK@gap "0A0\relax + + \CJK@global\def\CJK@char##1##2##3{ + {\ifnum ##3 < \CJK@min + \CJK@err + \else + \ifnum ##3 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##3\relax + \ifnum ##3 > \CJK@gap + \advance\@tempcnta -34\relax + \fi + \advance\@tempcnta ##2\relax + \edef\CJK@plane{##1} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% the same, but the plane crosses the font file boundary. + + \CJK@global\def\CJK@charx##1##2##3##4{ + {\ifnum ##4 < \CJK@min + \CJK@err + \else + \ifnum ##4 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##4\relax + \@tempcntb 256\relax + \ifnum ##4 > \CJK@gap + \advance\@tempcnta -34\relax + \advance\@tempcntb 34\relax + \fi + \advance\@tempcnta ##3\relax + \advance\@tempcntb -##3\relax + \chardef\@temp \@tempcntb + \ifnum ##4 < \@temp + \edef\CJK@plane{##1} + \else + \advance\@tempcnta -256\relax + \edef\CJK@plane{##2} + \fi + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% for punctuation. + + \CJK@global\def\CJK@punctchar##1##2##3##4{ + {\ifnum ##4 < \CJK@min + \CJK@err + \else + \ifnum ##4 > \CJK@max + \CJK@err + \else + \CJK@numbToHex{\CJK@gtemp}{##4} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{Bg5}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##4\relax + \ifnum ##4 > \CJK@gap + \advance\@tempcnta -34\relax + \fi + \advance\@tempcnta ##3\relax + \edef\CJK@plane{##2} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{Bg5}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \fi + \fi}} + + \CJK@global\def\CJK@punctcharx##1##2##3##4##5{ + {\ifnum ##5 < \CJK@min + \CJK@err + \else + \ifnum ##5 > \CJK@max + \CJK@err + \else + \CJK@numbToHex{\CJK@gtemp}{##5} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{Bg5}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##5\relax + \@tempcntb 256\relax + \ifnum ##5 > \CJK@gap + \advance\@tempcnta -34\relax + \advance\@tempcntb 34\relax + \fi + \advance\@tempcnta ##4\relax + \advance\@tempcntb -##4\relax + \chardef\@temp \@tempcntb + \ifnum ##5 < \@temp + \edef\CJK@plane{##2} + \else + \advance\@tempcnta -256\relax + \edef\CJK@plane{##3} + \fi + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{Bg5}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \fi + \fi}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/Bg5.cpx b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/Bg5.cpx new file mode 100644 index 0000000000..a92c7310f0 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/Bg5.cpx @@ -0,0 +1,86 @@ +% This is the file Bg5.cpx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{Bg5.cpx}[\filedate\space\fileversion] + + +% Chinese captions +% +% character set: Big 5 +% encoding: Big 5 +% +% preprocessed + +\renewcommand\contentsname{¥216~~¿253} +\renewcommand\listfigurename{¹207~¥216~¿253} +\renewcommand\listtablename{ª237~¥216~¿253} + +\CJK@ifundefined\chapter + {\renewcommand\refname{°209~¦210~¸234~®198} + %\renewcommand\refname{°209~¦210~¤229~Ä109} + } + { + \renewcommand\bibname{¤229~~Ä109} + %\renewcommand\bibname{°209~¦210~®209~¥216} +% \newcommand\prechaptername{²196} +% \newcommand\postchaptername{³185} + } + +\renewcommand\indexname{¯193~¤222} + +\renewcommand\figurename{¹207} +\renewcommand\tablename{ª237} + +\newcommand\prepartname{²196} +\newcommand\postpartname{³161} +%\newcommand{\postpartname}{³161¤192} +\renewcommand\partformat{\prepartname\CJKnumber{\value{part}}\postpartname} + + +% \newcommand\presectionname{²196} +% \newcommand\postsectionname{¸96} +% \renewcommand\appendixname{ª254~¿253} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{º75~110}}{} + +% \renewcommand\ccname{} % ? +% \renewcommand\enclname{ª254¥243} +% \newcommand\prepagename{} % ? +% \newcommand\postpagename{} % ? +% \renewcommand\headtoname{} % ? +% \renewcommand\seename{} % ? + +\renewcommand{\today}{\number\year ¦126 + \number\month ¤235 + \number\day ¤233} +\CJK@ifundefined\CJKnumber + {\def\CJKnumber#1{% + \ifcase #1\or + ¤64\or ¤71\or ¤84\or ¥124\or ¤173\or + ¤187\or ¤67\or ¤75\or ¤69\or ¤81\fi}}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/Bg5.enc b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/Bg5.enc new file mode 100644 index 0000000000..624e7ae3b1 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/Bg5.enc @@ -0,0 +1,226 @@ +% This is the file Bg5.enc of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{Bg5.enc}[\filedate\space\fileversion] + + +% Big 5 encoding: +% the second byte is in the range 0x40 - 0xFE with a gap from 0x7F to +% 0xA0. + +\global\@namedef{CJK@Bg5Encoding}{ + \CJK@loadChr{Bg5} + + \CJK@namegdef{^^a1}##1{\CJK@disableMakeUppercase + \CJK@punctchar {A1}{01}{-64}{##1}} + \CJK@namegdef{^^a2}##1{\CJK@disableMakeUppercase + \CJK@punctcharx{A2}{01}{02}{93}{##1}} + \CJK@namegdef{^^a3}##1{\CJK@disableMakeUppercase + \CJK@char {02}{ -6}{##1}} + \CJK@namegdef{^^a4}##1{\CJK@disableMakeUppercase + \CJK@charx{02}{03}{151}{##1}} + \CJK@namegdef{^^a5}##1{\CJK@disableMakeUppercase + \CJK@charx{03}{04}{ 52}{##1}} + \CJK@namegdef{^^a6}##1{\CJK@disableMakeUppercase + \CJK@char {04}{-47}{##1}} + \CJK@namegdef{^^a7}##1{\CJK@disableMakeUppercase + \CJK@charx{04}{05}{110}{##1}} + \CJK@namegdef{^^a8}##1{\CJK@disableMakeUppercase + \CJK@char {05}{ 11}{##1}} + \CJK@namegdef{^^a9}##1{\CJK@disableMakeUppercase + \CJK@charx{05}{06}{168}{##1}} + \CJK@namegdef{^^aa}##1{\CJK@disableMakeUppercase + \CJK@charx{06}{07}{ 69}{##1}} + \CJK@namegdef{^^ab}##1{\CJK@disableMakeUppercase + \CJK@char {07}{-30}{##1}} + \CJK@namegdef{^^ac}##1{\CJK@disableMakeUppercase + \CJK@charx{07}{08}{127}{##1}} + \CJK@namegdef{^^ad}##1{\CJK@disableMakeUppercase + \CJK@char {08}{28}{##1}} + \CJK@namegdef{^^ae}##1{\CJK@disableMakeUppercase + \CJK@charx{08}{09}{185}{##1}} + \CJK@namegdef{^^af}##1{\CJK@disableMakeUppercase + \CJK@charx{09}{10}{ 86}{##1}} + \CJK@namegdef{^^b0}##1{\CJK@disableMakeUppercase + \CJK@char {10}{-13}{##1}} + \CJK@namegdef{^^b1}##1{\CJK@disableMakeUppercase + \CJK@charx{10}{11}{144}{##1}} + \CJK@namegdef{^^b2}##1{\CJK@disableMakeUppercase + \CJK@charx{11}{12}{ 45}{##1}} + \CJK@namegdef{^^b3}##1{\CJK@disableMakeUppercase + \CJK@char {12}{-54}{##1}} + \CJK@namegdef{^^b4}##1{\CJK@disableMakeUppercase + \CJK@charx{12}{13}{103}{##1}} + \CJK@namegdef{^^b5}##1{\CJK@disableMakeUppercase + \CJK@char {13}{ 4}{##1}} + \CJK@namegdef{^^b6}##1{\CJK@disableMakeUppercase + \CJK@charx{13}{14}{161}{##1}} + \CJK@namegdef{^^b7}##1{\CJK@disableMakeUppercase + \CJK@charx{14}{15}{ 62}{##1}} + \CJK@namegdef{^^b8}##1{\CJK@disableMakeUppercase + \CJK@char {15}{-37}{##1}} + \CJK@namegdef{^^b9}##1{\CJK@disableMakeUppercase + \CJK@charx{15}{16}{120}{##1}} + \CJK@namegdef{^^ba}##1{\CJK@disableMakeUppercase + \CJK@char {16}{ 21}{##1}} + \CJK@namegdef{^^bb}##1{\CJK@disableMakeUppercase + \CJK@charx{16}{17}{178}{##1}} + \CJK@namegdef{^^bc}##1{\CJK@disableMakeUppercase + \CJK@charx{17}{18}{ 79}{##1}} + \CJK@namegdef{^^bd}##1{\CJK@disableMakeUppercase + \CJK@char {18}{-20}{##1}} + \CJK@namegdef{^^be}##1{\CJK@disableMakeUppercase + \CJK@charx{18}{19}{137}{##1}} + \CJK@namegdef{^^bf}##1{\CJK@disableMakeUppercase + \CJK@charx{19}{20}{ 38}{##1}} + \CJK@namegdef{^^c0}##1{\CJK@disableMakeUppercase + \CJK@char {20}{-61}{##1}} + \CJK@namegdef{^^c1}##1{\CJK@disableMakeUppercase + \CJK@charx{20}{21}{ 96}{##1}} + \CJK@namegdef{^^c2}##1{\CJK@disableMakeUppercase + \CJK@char {21}{ -3}{##1}} + \CJK@namegdef{^^c3}##1{\CJK@disableMakeUppercase + \CJK@charx{21}{22}{154}{##1}} + \CJK@namegdef{^^c4}##1{\CJK@disableMakeUppercase + \CJK@charx{22}{23}{ 55}{##1}} + \CJK@namegdef{^^c5}##1{\CJK@disableMakeUppercase + \CJK@char {23}{-44}{##1}} + \CJK@namegdef{^^c6}##1{\CJK@disableMakeUppercase + \CJK@charx{23}{24}{113}{##1}} + \CJK@namegdef{^^c7}##1{\CJK@disableMakeUppercase + \CJK@char {24}{ 14}{##1}} + \CJK@namegdef{^^c8}##1{\CJK@disableMakeUppercase + \CJK@charx{24}{25}{171}{##1}} + \CJK@namegdef{^^c9}##1{\CJK@disableMakeUppercase + \CJK@charx{25}{26}{ 72}{##1}} + \CJK@namegdef{^^ca}##1{\CJK@disableMakeUppercase + \CJK@char {26}{-27}{##1}} + \CJK@namegdef{^^cb}##1{\CJK@disableMakeUppercase + \CJK@charx{26}{27}{130}{##1}} + \CJK@namegdef{^^cc}##1{\CJK@disableMakeUppercase + \CJK@char {27}{ 31}{##1}} + \CJK@namegdef{^^cd}##1{\CJK@disableMakeUppercase + \CJK@charx{27}{28}{188}{##1}} + \CJK@namegdef{^^ce}##1{\CJK@disableMakeUppercase + \CJK@charx{28}{29}{ 89}{##1}} + \CJK@namegdef{^^cf}##1{\CJK@disableMakeUppercase + \CJK@char {29}{-10}{##1}} + \CJK@namegdef{^^d0}##1{\CJK@disableMakeUppercase + \CJK@charx{29}{30}{147}{##1}} + \CJK@namegdef{^^d1}##1{\CJK@disableMakeUppercase + \CJK@charx{30}{31}{ 48}{##1}} + \CJK@namegdef{^^d2}##1{\CJK@disableMakeUppercase + \CJK@char {31}{-51}{##1}} + \CJK@namegdef{^^d3}##1{\CJK@disableMakeUppercase + \CJK@charx{31}{32}{106}{##1}} + \CJK@namegdef{^^d4}##1{\CJK@disableMakeUppercase + \CJK@char {32}{ 7}{##1}} + \CJK@namegdef{^^d5}##1{\CJK@disableMakeUppercase + \CJK@charx{32}{33}{164}{##1}} + \CJK@namegdef{^^d6}##1{\CJK@disableMakeUppercase + \CJK@charx{33}{34}{ 65}{##1}} + \CJK@namegdef{^^d7}##1{\CJK@disableMakeUppercase + \CJK@char {34}{-34}{##1}} + \CJK@namegdef{^^d8}##1{\CJK@disableMakeUppercase + \CJK@charx{34}{35}{123}{##1}} + \CJK@namegdef{^^d9}##1{\CJK@disableMakeUppercase + \CJK@char {35}{ 24}{##1}} + \CJK@namegdef{^^da}##1{\CJK@disableMakeUppercase + \CJK@charx{35}{36}{181}{##1}} + \CJK@namegdef{^^db}##1{\CJK@disableMakeUppercase + \CJK@charx{36}{37}{ 82}{##1}} + \CJK@namegdef{^^dc}##1{\CJK@disableMakeUppercase + \CJK@char {37}{-17}{##1}} + \CJK@namegdef{^^dd}##1{\CJK@disableMakeUppercase + \CJK@charx{37}{38}{140}{##1}} + \CJK@namegdef{^^de}##1{\CJK@disableMakeUppercase + \CJK@charx{38}{39}{ 41}{##1}} + \CJK@namegdef{^^df}##1{\CJK@disableMakeUppercase + \CJK@char {39}{-58}{##1}} + \CJK@namegdef{^^e0}##1{\CJK@disableMakeUppercase + \CJK@charx{39}{40}{ 99}{##1}} + \CJK@namegdef{^^e1}##1{\CJK@disableMakeUppercase + \CJK@char {40}{ 0}{##1}} + \CJK@namegdef{^^e2}##1{\CJK@disableMakeUppercase + \CJK@charx{40}{41}{157}{##1}} + \CJK@namegdef{^^e3}##1{\CJK@disableMakeUppercase + \CJK@charx{41}{42}{ 58}{##1}} + \CJK@namegdef{^^e4}##1{\CJK@disableMakeUppercase + \CJK@char {42}{-41}{##1}} + \CJK@namegdef{^^e5}##1{\CJK@disableMakeUppercase + \CJK@charx{42}{43}{116}{##1}} + \CJK@namegdef{^^e6}##1{\CJK@disableMakeUppercase + \CJK@char {43}{ 17}{##1}} + \CJK@namegdef{^^e7}##1{\CJK@disableMakeUppercase + \CJK@charx{43}{44}{174}{##1}} + \CJK@namegdef{^^e8}##1{\CJK@disableMakeUppercase + \CJK@charx{44}{45}{ 75}{##1}} + \CJK@namegdef{^^e9}##1{\CJK@disableMakeUppercase + \CJK@char {45}{-24}{##1}} + \CJK@namegdef{^^ea}##1{\CJK@disableMakeUppercase + \CJK@charx{45}{46}{133}{##1}} + \CJK@namegdef{^^eb}##1{\CJK@disableMakeUppercase + \CJK@char {46}{ 34}{##1}} + \CJK@namegdef{^^ec}##1{\CJK@disableMakeUppercase + \CJK@charx{46}{47}{191}{##1}} + \CJK@namegdef{^^ed}##1{\CJK@disableMakeUppercase + \CJK@charx{47}{48}{ 92}{##1}} + \CJK@namegdef{^^ee}##1{\CJK@disableMakeUppercase + \CJK@char {48}{ -7}{##1}} + \CJK@namegdef{^^ef}##1{\CJK@disableMakeUppercase + \CJK@charx{48}{49}{150}{##1}} + \CJK@namegdef{^^f0}##1{\CJK@disableMakeUppercase + \CJK@charx{49}{50}{ 51}{##1}} + \CJK@namegdef{^^f1}##1{\CJK@disableMakeUppercase + \CJK@char {50}{-48}{##1}} + \CJK@namegdef{^^f2}##1{\CJK@disableMakeUppercase + \CJK@charx{50}{51}{109}{##1}} + \CJK@namegdef{^^f3}##1{\CJK@disableMakeUppercase + \CJK@char {51}{ 10}{##1}} + \CJK@namegdef{^^f4}##1{\CJK@disableMakeUppercase + \CJK@charx{51}{52}{167}{##1}} + \CJK@namegdef{^^f5}##1{\CJK@disableMakeUppercase + \CJK@charx{52}{53}{ 68}{##1}} + \CJK@namegdef{^^f6}##1{\CJK@disableMakeUppercase + \CJK@char {53}{-31}{##1}} + \CJK@namegdef{^^f7}##1{\CJK@disableMakeUppercase + \CJK@charx{53}{54}{126}{##1}} + \CJK@namegdef{^^f8}##1{\CJK@disableMakeUppercase + \CJK@char {54}{ 27}{##1}} + \CJK@namegdef{^^f9}##1{\CJK@disableMakeUppercase + \CJK@charx{54}{55}{184}{##1}} + \CJK@namegdef{^^fa}##1{\CJK@disableMakeUppercase + \CJK@charx{55}{56}{ 85}{##1}} + \CJK@namegdef{^^fb}##1{\CJK@disableMakeUppercase + \CJK@char {56}{-14}{##1}} + \CJK@namegdef{^^fc}##1{\CJK@disableMakeUppercase + \CJK@charx{56}{57}{143}{##1}} + \CJK@namegdef{^^fd}##1{\CJK@disableMakeUppercase + \CJK@charx{57}{58}{ 44}{##1}} + \CJK@namegdef{^^fe}##1{\CJK@disableMakeUppercase + \CJK@char {58}{-55}{##1}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/HK.enc b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/HK.enc new file mode 100644 index 0000000000..9f760bf3fe --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/HK.enc @@ -0,0 +1,276 @@ +% This is the file HK.enc of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{HK.enc}[\filedate\space\fileversion] + + +% HK encoding: +% this is Big with all user-defined areas +% +% the second byte is in the range 0x40 - 0xFE with a gap from 0x7F to +% 0xA0. + +\global\@namedef{CJK@HKEncoding}{ + \CJK@loadChr{Bg5} + + \CJK@namegdef{^^81}##1{\CJK@disableMakeUppercase + \CJK@punctchar {A1}{01}{-64}{##1}} + \CJK@namegdef{^^82}##1{\CJK@disableMakeUppercase + \CJK@punctcharx{A2}{01}{02}{93}{##1}} + \CJK@namegdef{^^83}##1{\CJK@disableMakeUppercase + \CJK@char {02}{ -6}{##1}} + \CJK@namegdef{^^84}##1{\CJK@disableMakeUppercase + \CJK@charx{02}{03}{151}{##1}} + \CJK@namegdef{^^85}##1{\CJK@disableMakeUppercase + \CJK@charx{03}{04}{ 52}{##1}} + \CJK@namegdef{^^86}##1{\CJK@disableMakeUppercase + \CJK@char {04}{-47}{##1}} + \CJK@namegdef{^^87}##1{\CJK@disableMakeUppercase + \CJK@charx{04}{05}{110}{##1}} + \CJK@namegdef{^^88}##1{\CJK@disableMakeUppercase + \CJK@char {05}{ 11}{##1}} + \CJK@namegdef{^^89}##1{\CJK@disableMakeUppercase + \CJK@charx{05}{06}{168}{##1}} + \CJK@namegdef{^^8a}##1{\CJK@disableMakeUppercase + \CJK@charx{06}{07}{ 69}{##1}} + \CJK@namegdef{^^8b}##1{\CJK@disableMakeUppercase + \CJK@char {07}{-30}{##1}} + \CJK@namegdef{^^8c}##1{\CJK@disableMakeUppercase + \CJK@charx{07}{08}{127}{##1}} + \CJK@namegdef{^^8d}##1{\CJK@disableMakeUppercase + \CJK@char {08}{28}{##1}} + \CJK@namegdef{^^8e}##1{\CJK@disableMakeUppercase + \CJK@charx{08}{09}{185}{##1}} + \CJK@namegdef{^^8f}##1{\CJK@disableMakeUppercase + \CJK@charx{09}{10}{ 86}{##1}} + \CJK@namegdef{^^90}##1{\CJK@disableMakeUppercase + \CJK@char {10}{-13}{##1}} + \CJK@namegdef{^^91}##1{\CJK@disableMakeUppercase + \CJK@charx{10}{11}{144}{##1}} + \CJK@namegdef{^^92}##1{\CJK@disableMakeUppercase + \CJK@charx{11}{12}{ 45}{##1}} + \CJK@namegdef{^^93}##1{\CJK@disableMakeUppercase + \CJK@char {12}{-54}{##1}} + \CJK@namegdef{^^94}##1{\CJK@disableMakeUppercase + \CJK@charx{12}{13}{103}{##1}} + \CJK@namegdef{^^95}##1{\CJK@disableMakeUppercase + \CJK@char {13}{ 4}{##1}} + \CJK@namegdef{^^96}##1{\CJK@disableMakeUppercase + \CJK@charx{13}{14}{161}{##1}} + \CJK@namegdef{^^97}##1{\CJK@disableMakeUppercase + \CJK@charx{14}{15}{ 62}{##1}} + \CJK@namegdef{^^98}##1{\CJK@disableMakeUppercase + \CJK@char {15}{-37}{##1}} + \CJK@namegdef{^^99}##1{\CJK@disableMakeUppercase + \CJK@charx{15}{16}{120}{##1}} + \CJK@namegdef{^^9a}##1{\CJK@disableMakeUppercase + \CJK@char {16}{ 21}{##1}} + \CJK@namegdef{^^9b}##1{\CJK@disableMakeUppercase + \CJK@charx{16}{17}{178}{##1}} + \CJK@namegdef{^^9c}##1{\CJK@disableMakeUppercase + \CJK@charx{17}{18}{ 79}{##1}} + \CJK@namegdef{^^9d}##1{\CJK@disableMakeUppercase + \CJK@char {18}{-20}{##1}} + \CJK@namegdef{^^9e}##1{\CJK@disableMakeUppercase + \CJK@charx{18}{19}{137}{##1}} + \CJK@namegdef{^^9f}##1{\CJK@disableMakeUppercase + \CJK@charx{19}{20}{ 38}{##1}} + \CJK@namegdef{^^a0}##1{\CJK@disableMakeUppercase + \CJK@char {20}{-61}{##1}} + \CJK@namegdef{^^a1}##1{\CJK@disableMakeUppercase + \CJK@charx{20}{21}{ 96}{##1}} + \CJK@namegdef{^^a2}##1{\CJK@disableMakeUppercase + \CJK@char {21}{ -3}{##1}} + \CJK@namegdef{^^a3}##1{\CJK@disableMakeUppercase + \CJK@charx{21}{22}{154}{##1}} + \CJK@namegdef{^^a4}##1{\CJK@disableMakeUppercase + \CJK@charx{22}{23}{ 55}{##1}} + \CJK@namegdef{^^a5}##1{\CJK@disableMakeUppercase + \CJK@char {23}{-44}{##1}} + \CJK@namegdef{^^a6}##1{\CJK@disableMakeUppercase + \CJK@charx{23}{24}{113}{##1}} + \CJK@namegdef{^^a7}##1{\CJK@disableMakeUppercase + \CJK@char {24}{ 14}{##1}} + \CJK@namegdef{^^a8}##1{\CJK@disableMakeUppercase + \CJK@charx{24}{25}{171}{##1}} + \CJK@namegdef{^^a9}##1{\CJK@disableMakeUppercase + \CJK@charx{25}{26}{ 72}{##1}} + \CJK@namegdef{^^aa}##1{\CJK@disableMakeUppercase + \CJK@char {26}{-27}{##1}} + \CJK@namegdef{^^ab}##1{\CJK@disableMakeUppercase + \CJK@charx{26}{27}{130}{##1}} + \CJK@namegdef{^^ac}##1{\CJK@disableMakeUppercase + \CJK@char {27}{ 31}{##1}} + \CJK@namegdef{^^ad}##1{\CJK@disableMakeUppercase + \CJK@charx{27}{28}{188}{##1}} + \CJK@namegdef{^^ae}##1{\CJK@disableMakeUppercase + \CJK@charx{28}{29}{ 89}{##1}} + \CJK@namegdef{^^af}##1{\CJK@disableMakeUppercase + \CJK@char {29}{-10}{##1}} + \CJK@namegdef{^^b0}##1{\CJK@disableMakeUppercase + \CJK@charx{29}{30}{147}{##1}} + \CJK@namegdef{^^b1}##1{\CJK@disableMakeUppercase + \CJK@charx{30}{31}{ 48}{##1}} + \CJK@namegdef{^^b2}##1{\CJK@disableMakeUppercase + \CJK@char {31}{-51}{##1}} + \CJK@namegdef{^^b3}##1{\CJK@disableMakeUppercase + \CJK@charx{31}{32}{106}{##1}} + \CJK@namegdef{^^b4}##1{\CJK@disableMakeUppercase + \CJK@char {32}{ 7}{##1}} + \CJK@namegdef{^^b5}##1{\CJK@disableMakeUppercase + \CJK@charx{32}{33}{164}{##1}} + \CJK@namegdef{^^b6}##1{\CJK@disableMakeUppercase + \CJK@charx{33}{34}{ 65}{##1}} + \CJK@namegdef{^^b7}##1{\CJK@disableMakeUppercase + \CJK@char {34}{-34}{##1}} + \CJK@namegdef{^^b8}##1{\CJK@disableMakeUppercase + \CJK@charx{34}{35}{123}{##1}} + \CJK@namegdef{^^b9}##1{\CJK@disableMakeUppercase + \CJK@char {35}{ 24}{##1}} + \CJK@namegdef{^^ba}##1{\CJK@disableMakeUppercase + \CJK@charx{35}{36}{181}{##1}} + \CJK@namegdef{^^bb}##1{\CJK@disableMakeUppercase + \CJK@charx{36}{37}{ 82}{##1}} + \CJK@namegdef{^^bc}##1{\CJK@disableMakeUppercase + \CJK@char {37}{-17}{##1}} + \CJK@namegdef{^^bd}##1{\CJK@disableMakeUppercase + \CJK@charx{37}{38}{140}{##1}} + \CJK@namegdef{^^be}##1{\CJK@disableMakeUppercase + \CJK@charx{38}{39}{ 41}{##1}} + \CJK@namegdef{^^bf}##1{\CJK@disableMakeUppercase + \CJK@char {39}{-58}{##1}} + \CJK@namegdef{^^c0}##1{\CJK@disableMakeUppercase + \CJK@charx{39}{40}{ 99}{##1}} + \CJK@namegdef{^^c1}##1{\CJK@disableMakeUppercase + \CJK@char {40}{ 0}{##1}} + \CJK@namegdef{^^c2}##1{\CJK@disableMakeUppercase + \CJK@charx{40}{41}{157}{##1}} + \CJK@namegdef{^^c3}##1{\CJK@disableMakeUppercase + \CJK@charx{41}{42}{ 58}{##1}} + \CJK@namegdef{^^c4}##1{\CJK@disableMakeUppercase + \CJK@char {42}{-41}{##1}} + \CJK@namegdef{^^c5}##1{\CJK@disableMakeUppercase + \CJK@charx{42}{43}{116}{##1}} + \CJK@namegdef{^^c6}##1{\CJK@disableMakeUppercase + \CJK@char {43}{ 17}{##1}} + \CJK@namegdef{^^c7}##1{\CJK@disableMakeUppercase + \CJK@charx{43}{44}{174}{##1}} + \CJK@namegdef{^^c8}##1{\CJK@disableMakeUppercase + \CJK@charx{44}{45}{ 75}{##1}} + \CJK@namegdef{^^c9}##1{\CJK@disableMakeUppercase + \CJK@char {45}{-24}{##1}} + \CJK@namegdef{^^ca}##1{\CJK@disableMakeUppercase + \CJK@charx{45}{46}{133}{##1}} + \CJK@namegdef{^^cb}##1{\CJK@disableMakeUppercase + \CJK@char {46}{ 34}{##1}} + \CJK@namegdef{^^cc}##1{\CJK@disableMakeUppercase + \CJK@charx{46}{47}{191}{##1}} + \CJK@namegdef{^^cd}##1{\CJK@disableMakeUppercase + \CJK@charx{47}{48}{ 92}{##1}} + \CJK@namegdef{^^ce}##1{\CJK@disableMakeUppercase + \CJK@char {48}{ -7}{##1}} + \CJK@namegdef{^^cf}##1{\CJK@disableMakeUppercase + \CJK@charx{48}{49}{150}{##1}} + \CJK@namegdef{^^d0}##1{\CJK@disableMakeUppercase + \CJK@charx{49}{50}{ 51}{##1}} + \CJK@namegdef{^^d1}##1{\CJK@disableMakeUppercase + \CJK@char {50}{-48}{##1}} + \CJK@namegdef{^^d2}##1{\CJK@disableMakeUppercase + \CJK@charx{50}{51}{109}{##1}} + \CJK@namegdef{^^d3}##1{\CJK@disableMakeUppercase + \CJK@char {51}{ 10}{##1}} + \CJK@namegdef{^^d4}##1{\CJK@disableMakeUppercase + \CJK@charx{51}{52}{167}{##1}} + \CJK@namegdef{^^d5}##1{\CJK@disableMakeUppercase + \CJK@charx{52}{53}{ 68}{##1}} + \CJK@namegdef{^^d6}##1{\CJK@disableMakeUppercase + \CJK@char {53}{-31}{##1}} + \CJK@namegdef{^^d7}##1{\CJK@disableMakeUppercase + \CJK@charx{53}{54}{126}{##1}} + \CJK@namegdef{^^d8}##1{\CJK@disableMakeUppercase + \CJK@char {54}{ 27}{##1}} + \CJK@namegdef{^^d9}##1{\CJK@disableMakeUppercase + \CJK@charx{54}{55}{184}{##1}} + \CJK@namegdef{^^da}##1{\CJK@disableMakeUppercase + \CJK@charx{55}{56}{ 85}{##1}} + \CJK@namegdef{^^db}##1{\CJK@disableMakeUppercase + \CJK@char {56}{-14}{##1}} + \CJK@namegdef{^^dc}##1{\CJK@disableMakeUppercase + \CJK@charx{56}{57}{143}{##1}} + \CJK@namegdef{^^dd}##1{\CJK@disableMakeUppercase + \CJK@charx{57}{58}{ 44}{##1}} + \CJK@namegdef{^^de}##1{\CJK@disableMakeUppercase + \CJK@char {58}{-55}{##1}}} + \CJK@namegdef{^^df}##1{\CJK@disableMakeUppercase + \CJK@charx{58}{59}{102}{##1}} + \CJK@namegdef{^^e0}##1{\CJK@disableMakeUppercase + \CJK@char {59}{ 3}{##1}} + \CJK@namegdef{^^e1}##1{\CJK@disableMakeUppercase + \CJK@charx{59}{60}{160}{##1}} + \CJK@namegdef{^^e2}##1{\CJK@disableMakeUppercase + \CJK@charx{60}{61}{ 61}{##1}} + \CJK@namegdef{^^e3}##1{\CJK@disableMakeUppercase + \CJK@char {61}{-38}{##1}} + \CJK@namegdef{^^e4}##1{\CJK@disableMakeUppercase + \CJK@charx{61}{62}{119}{##1}} + \CJK@namegdef{^^e5}##1{\CJK@disableMakeUppercase + \CJK@char {62}{ 20}{##1}} + \CJK@namegdef{^^e6}##1{\CJK@disableMakeUppercase + \CJK@charx{62}{63}{177}{##1}} + \CJK@namegdef{^^e7}##1{\CJK@disableMakeUppercase + \CJK@charx{63}{64}{ 78}{##1}} + \CJK@namegdef{^^e8}##1{\CJK@disableMakeUppercase + \CJK@char {64}{-21}{##1}} + \CJK@namegdef{^^e9}##1{\CJK@disableMakeUppercase + \CJK@charx{64}{65}{136}{##1}} + \CJK@namegdef{^^ea}##1{\CJK@disableMakeUppercase + \CJK@charx{65}{66}{ 37}{##1}} + \CJK@namegdef{^^eb}##1{\CJK@disableMakeUppercase + \CJK@char {66}{-62}{##1}} + \CJK@namegdef{^^ec}##1{\CJK@disableMakeUppercase + \CJK@charx{66}{67}{ 95}{##1}} + \CJK@namegdef{^^ed}##1{\CJK@disableMakeUppercase + \CJK@char {67}{ -4}{##1}} + \CJK@namegdef{^^ee}##1{\CJK@disableMakeUppercase + \CJK@charx{67}{68}{153}{##1}} + \CJK@namegdef{^^ef}##1{\CJK@disableMakeUppercase + \CJK@charx{68}{69}{ 54}{##1}} + \CJK@namegdef{^^f0}##1{\CJK@disableMakeUppercase + \CJK@char {69}{-45}{##1}} + \CJK@namegdef{^^f1}##1{\CJK@disableMakeUppercase + \CJK@charx{69}{70}{112}{##1}} + \CJK@namegdef{^^f2}##1{\CJK@disableMakeUppercase + \CJK@char {70}{ 13}{##1}} + \CJK@namegdef{^^f3}##1{\CJK@disableMakeUppercase + \CJK@charx{70}{71}{170}{##1}} + \CJK@namegdef{^^f4}##1{\CJK@disableMakeUppercase + \CJK@charx{71}{72}{ 71}{##1}} + \CJK@namegdef{^^f5}##1{\CJK@disableMakeUppercase + \CJK@char {72}{-28}{##1}} + \CJK@namegdef{^^f6}##1{\CJK@disableMakeUppercase + \CJK@charx{72}{73}{129}{##1}} + \CJK@namegdef{^^f7}##1{\CJK@disableMakeUppercase + \CJK@char {73}{ 30}{##1}} + \CJK@namegdef{^^f8}##1{\CJK@disableMakeUppercase + \CJK@charx{73}{74}{187}{##1}} + \CJK@namegdef{^^f9}##1{\CJK@disableMakeUppercase + \CJK@charx{74}{75}{ 88}{##1}} + \CJK@namegdef{^^fa}##1{\CJK@disableMakeUppercase + \CJK@char {75}{-11}{##1}} + \CJK@namegdef{^^fb}##1{\CJK@disableMakeUppercase + \CJK@charx{75}{76}{146}{##1}} + \CJK@namegdef{^^fc}##1{\CJK@disableMakeUppercase + \CJK@charx{76}{77}{ 47}{##1}} + \CJK@namegdef{^^fd}##1{\CJK@disableMakeUppercase + \CJK@char {77}{-52}{##1}} + \CJK@namegdef{^^fe}##1{\CJK@disableMakeUppercase + \CJK@charx{77}{78}{105}{##1}} + + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bkai.fd b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bkai.fd new file mode 100644 index 0000000000..3a09aef000 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bkai.fd @@ -0,0 +1,25 @@ +% This is the file c00bkai.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c00bkai.fd}[\filedate\space\fileversion] + + +% traditional Chinese characters +% +% character set: Big 5 +% font encoding: CJK (Bg5) + +% Arphic PL TrueType font AR PL KaitiM Big5 / ZenKai-Medium + +\DeclareFontFamily{C00}{bkai}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C00}{bkai}{m}{n}{<-> CJK * bkaimp}{\CJKnormal} +\DeclareFontShape{C00}{bkai}{bx}{n}{<-> CJKb * bkaimp}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bkai.fdx b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bkai.fdx new file mode 100644 index 0000000000..18a113872b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bkai.fdx @@ -0,0 +1,147 @@ +% This is the file c00bkai.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c00bkai.fdx}[\filedate\space\fileversion] + + +\CJKvdef{fullheight}{1em} +\CJKvdef{height}{.88em} +\CJKvdef{offset}{.6em} + +\CJKvdef{m/n/01/96}{\def\CJK@plane{v}\selectfont\CJKsymbol{0}} +\CJKvdef{m/n/01/16}{\def\CJK@plane{v}\selectfont\CJKsymbol{1}} +\CJKvdef{m/n/01/99}{\def\CJK@plane{v}\selectfont\CJKsymbol{2}} +\CJKvdef{m/n/01/29}{\def\CJK@plane{v}\selectfont\CJKsymbol{3}} +\CJKvdef{m/n/01/30}{\def\CJK@plane{v}\selectfont\CJKsymbol{4}} +\CJKvdef{m/n/01/1}{\def\CJK@plane{v}\selectfont\CJKsymbol{5}} +\CJKvdef{m/n/01/4}{\def\CJK@plane{v}\selectfont\CJKsymbol{6}} +\CJKvdef{m/n/01/98}{\def\CJK@plane{v}\selectfont\CJKsymbol{9}} +\CJKvdef{m/n/01/33}{\def\CJK@plane{v}\selectfont\CJKsymbol{10}} +\CJKvdef{m/n/01/34}{\def\CJK@plane{v}\selectfont\CJKsymbol{11}} +\CJKvdef{m/n/01/129}{\def\CJK@plane{v}\selectfont\CJKsymbol{12}} +\CJKvdef{m/n/01/22}{\def\CJK@plane{v}\selectfont\CJKsymbol{13}} +\CJKvdef{m/n/01/24}{\def\CJK@plane{v}\selectfont\CJKsymbol{14}} +\CJKvdef{m/n/01/12}{\def\CJK@plane{v}\selectfont\CJKsymbol{15}} +\CJKvdef{m/n/01/11}{\def\CJK@plane{v}\selectfont\CJKsymbol{16}} +\CJKvdef{m/n/01/148}{\def\CJK@plane{v}\selectfont\CJKsymbol{17}} +\CJKvdef{m/n/01/146}{\def\CJK@plane{v}\selectfont\CJKsymbol{18}} +\CJKvdef{m/n/01/149}{\def\CJK@plane{v}\selectfont\CJKsymbol{19}} +\CJKvdef{m/n/01/147}{\def\CJK@plane{v}\selectfont\CJKsymbol{20}} +\CJKvdef{m/n/01/155}{\def\CJK@plane{v}\selectfont\CJKsymbol{21}} +\CJKvdef{m/n/01/154}{\def\CJK@plane{v}\selectfont\CJKsymbol{22}} +\CJKvdef{m/n/01/212}{\def\CJK@plane{v}\selectfont\CJKsymbol{23}} +\CJKvdef{m/n/01/213}{\def\CJK@plane{v}\selectfont\CJKsymbol{24}} +\CJKvdef{m/n/01/215}{\def\CJK@plane{v}\selectfont\CJKsymbol{25}} +\CJKvdef{m/n/01/216}{\def\CJK@plane{v}\selectfont\CJKsymbol{26}} +\CJKvdef{m/n/01/217}{\def\CJK@plane{v}\selectfont\CJKsymbol{27}} +\CJKvdef{m/n/01/218}{\def\CJK@plane{v}\selectfont\CJKsymbol{28}} +\CJKvdef{m/n/01/210}{\def\CJK@plane{v}\selectfont\CJKsymbol{29}} +\CJKvdef{m/n/01/209}{\def\CJK@plane{v}\selectfont\CJKsymbol{30}} +\CJKvdef{m/n/01/208}{\def\CJK@plane{v}\selectfont\CJKsymbol{31}} +\CJKvdef{m/n/01/207}{\def\CJK@plane{v}\selectfont\CJKsymbol{32}} +\CJKvdef{m/n/01/223}{\def\CJK@plane{v}\selectfont\CJKsymbol{33}} +\CJKvdef{m/n/01/224}{\def\CJK@plane{v}\selectfont\CJKsymbol{47}} +\CJKvdef{m/n/01/226}{\def\CJK@plane{v}\selectfont\CJKsymbol{50}} +\CJKvdef{m/n/01/225}{\def\CJK@plane{v}\selectfont\CJKsymbol{59}} +\CJKvdef{m/n/01/219}{\def\CJK@plane{v}\selectfont\CJKsymbol{61}} +\CJKvdef{m/n/01/220}{\def\CJK@plane{v}\selectfont\CJKsymbol{62}} +\CJKvdef{m/n/01/222}{\def\CJK@plane{v}\selectfont\CJKsymbol{63}} +\CJKvdef{m/n/01/221}{\def\CJK@plane{v}\selectfont\CJKsymbol{64}} +\CJKvdef{m/n/01/26}{\def\CJK@plane{v}\selectfont\CJKsymbol{65}} +\CJKvdef{m/n/01/2}{\def\CJK@plane{v}\selectfont\CJKsymbol{66}} +\CJKvdef{m/n/01/3}{\def\CJK@plane{v}\selectfont\CJKsymbol{67}} +\CJKvdef{m/n/01/49}{\def\CJK@plane{v}\selectfont\CJKsymbol{68}} +\CJKvdef{m/n/01/50}{\def\CJK@plane{v}\selectfont\CJKsymbol{69}} +\CJKvdef{m/n/01/45}{\def\CJK@plane{v}\selectfont\CJKsymbol{70}} +\CJKvdef{m/n/01/46}{\def\CJK@plane{v}\selectfont\CJKsymbol{71}} +\CJKvdef{m/n/01/53}{\def\CJK@plane{v}\selectfont\CJKsymbol{72}} +\CJKvdef{m/n/01/54}{\def\CJK@plane{v}\selectfont\CJKsymbol{73}} +\CJKvdef{m/n/01/57}{\def\CJK@plane{v}\selectfont\CJKsymbol{74}} +\CJKvdef{m/n/01/58}{\def\CJK@plane{v}\selectfont\CJKsymbol{75}} +\CJKvdef{m/n/01/41}{\def\CJK@plane{v}\selectfont\CJKsymbol{76}} +\CJKvdef{m/n/01/42}{\def\CJK@plane{v}\selectfont\CJKsymbol{77}} +\CJKvdef{m/n/01/37}{\def\CJK@plane{v}\selectfont\CJKsymbol{78}} +\CJKvdef{m/n/01/38}{\def\CJK@plane{v}\selectfont\CJKsymbol{79}} +\CJKvdef{m/n/01/28}{\def\CJK@plane{v}\selectfont\CJKsymbol{80}} +\CJKvdef{m/n/01/13}{\def\CJK@plane{v}\selectfont\CJKsymbol{81}} +\CJKvdef{m/n/01/14}{\def\CJK@plane{v}\selectfont\CJKsymbol{82}} +\CJKvdef{m/n/01/15}{\def\CJK@plane{v}\selectfont\CJKsymbol{83}} +\CJKvdef{m/n/01/61}{\def\CJK@plane{v}\selectfont\CJKsymbol{84}} +\CJKvdef{m/n/01/62}{\def\CJK@plane{v}\selectfont\CJKsymbol{85}} +\CJKvdef{m/n/01/63}{\def\CJK@plane{v}\selectfont\CJKsymbol{86}} +\CJKvdef{m/n/01/64}{\def\CJK@plane{v}\selectfont\CJKsymbol{87}} +\CJKvdef{m/n/01/65}{\def\CJK@plane{v}\selectfont\CJKsymbol{88}} +\CJKvdef{m/n/01/66}{\def\CJK@plane{v}\selectfont\CJKsymbol{89}} + +\CJKvlet{bx/n/01/96}{m/n/01/96} +\CJKvlet{bx/n/01/16}{m/n/01/16} +\CJKvlet{bx/n/01/99}{m/n/01/99} +\CJKvlet{bx/n/01/29}{m/n/01/29} +\CJKvlet{bx/n/01/30}{m/n/01/30} +\CJKvlet{bx/n/01/1}{m/n/01/1} +\CJKvlet{bx/n/01/4}{m/n/01/4} +\CJKvlet{bx/n/01/98}{m/n/01/98} +\CJKvlet{bx/n/01/33}{m/n/01/33} +\CJKvlet{bx/n/01/34}{m/n/01/34} +\CJKvlet{bx/n/01/129}{m/n/01/129} +\CJKvlet{bx/n/01/22}{m/n/01/22} +\CJKvlet{bx/n/01/24}{m/n/01/24} +\CJKvlet{bx/n/01/12}{m/n/01/12} +\CJKvlet{bx/n/01/11}{m/n/01/11} +\CJKvlet{bx/n/01/148}{m/n/01/148} +\CJKvlet{bx/n/01/146}{m/n/01/146} +\CJKvlet{bx/n/01/149}{m/n/01/149} +\CJKvlet{bx/n/01/147}{m/n/01/147} +\CJKvlet{bx/n/01/155}{m/n/01/155} +\CJKvlet{bx/n/01/154}{m/n/01/154} +\CJKvlet{bx/n/01/212}{m/n/01/212} +\CJKvlet{bx/n/01/213}{m/n/01/213} +\CJKvlet{bx/n/01/215}{m/n/01/215} +\CJKvlet{bx/n/01/216}{m/n/01/216} +\CJKvlet{bx/n/01/217}{m/n/01/217} +\CJKvlet{bx/n/01/218}{m/n/01/218} +\CJKvlet{bx/n/01/210}{m/n/01/210} +\CJKvlet{bx/n/01/209}{m/n/01/209} +\CJKvlet{bx/n/01/208}{m/n/01/208} +\CJKvlet{bx/n/01/207}{m/n/01/207} +\CJKvlet{bx/n/01/223}{m/n/01/223} +\CJKvlet{bx/n/01/224}{m/n/01/224} +\CJKvlet{bx/n/01/226}{m/n/01/226} +\CJKvlet{bx/n/01/225}{m/n/01/225} +\CJKvlet{bx/n/01/219}{m/n/01/219} +\CJKvlet{bx/n/01/220}{m/n/01/220} +\CJKvlet{bx/n/01/222}{m/n/01/222} +\CJKvlet{bx/n/01/221}{m/n/01/221} +\CJKvlet{bx/n/01/26}{m/n/01/26} +\CJKvlet{bx/n/01/2}{m/n/01/2} +\CJKvlet{bx/n/01/3}{m/n/01/3} +\CJKvlet{bx/n/01/49}{m/n/01/49} +\CJKvlet{bx/n/01/50}{m/n/01/50} +\CJKvlet{bx/n/01/45}{m/n/01/45} +\CJKvlet{bx/n/01/46}{m/n/01/46} +\CJKvlet{bx/n/01/53}{m/n/01/53} +\CJKvlet{bx/n/01/54}{m/n/01/54} +\CJKvlet{bx/n/01/57}{m/n/01/57} +\CJKvlet{bx/n/01/58}{m/n/01/58} +\CJKvlet{bx/n/01/41}{m/n/01/41} +\CJKvlet{bx/n/01/42}{m/n/01/42} +\CJKvlet{bx/n/01/37}{m/n/01/37} +\CJKvlet{bx/n/01/38}{m/n/01/38} +\CJKvlet{bx/n/01/28}{m/n/01/28} +\CJKvlet{bx/n/01/13}{m/n/01/13} +\CJKvlet{bx/n/01/14}{m/n/01/14} +\CJKvlet{bx/n/01/15}{m/n/01/15} +\CJKvlet{bx/n/01/61}{m/n/01/61} +\CJKvlet{bx/n/01/62}{m/n/01/62} +\CJKvlet{bx/n/01/63}{m/n/01/63} +\CJKvlet{bx/n/01/64}{m/n/01/64} +\CJKvlet{bx/n/01/65}{m/n/01/65} +\CJKvlet{bx/n/01/66}{m/n/01/66} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bsmi.fd b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bsmi.fd new file mode 100644 index 0000000000..7f7d6fee79 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bsmi.fd @@ -0,0 +1,25 @@ +% This is the file c00bsmi.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c00bsmi.fd}[\filedate\space\fileversion] + + +% traditional Chinese characters +% +% character set: Big 5 +% font encoding: CJK (Bg5) + +% Arphic PL TrueType font AR PL Mingti2L Big5 / ShanHeiSun-Light + +\DeclareFontFamily{C00}{bsmi}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C00}{bsmi}{m}{n}{<-> CJK * bsmilp}{\CJKnormal} +\DeclareFontShape{C00}{bsmi}{bx}{n}{<-> CJKb * bsmilp}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bsmi.fdx b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bsmi.fdx new file mode 100644 index 0000000000..bf861ea8cd --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bsmi.fdx @@ -0,0 +1,147 @@ +% This is the file c00bsmi.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c00bsmi.fdx}[\filedate\space\fileversion] + + +\CJKvdef{fullheight}{1em} +\CJKvdef{height}{.88em} +\CJKvdef{offset}{.6em} + +\CJKvdef{m/n/01/96}{\def\CJK@plane{v}\selectfont\CJKsymbol{0}} +\CJKvdef{m/n/01/16}{\def\CJK@plane{v}\selectfont\CJKsymbol{1}} +\CJKvdef{m/n/01/99}{\def\CJK@plane{v}\selectfont\CJKsymbol{2}} +\CJKvdef{m/n/01/29}{\def\CJK@plane{v}\selectfont\CJKsymbol{3}} +\CJKvdef{m/n/01/30}{\def\CJK@plane{v}\selectfont\CJKsymbol{4}} +\CJKvdef{m/n/01/1}{\def\CJK@plane{v}\selectfont\CJKsymbol{5}} +\CJKvdef{m/n/01/4}{\def\CJK@plane{v}\selectfont\CJKsymbol{6}} +\CJKvdef{m/n/01/98}{\def\CJK@plane{v}\selectfont\CJKsymbol{9}} +\CJKvdef{m/n/01/33}{\def\CJK@plane{v}\selectfont\CJKsymbol{10}} +\CJKvdef{m/n/01/34}{\def\CJK@plane{v}\selectfont\CJKsymbol{11}} +\CJKvdef{m/n/01/129}{\def\CJK@plane{v}\selectfont\CJKsymbol{12}} +\CJKvdef{m/n/01/22}{\def\CJK@plane{v}\selectfont\CJKsymbol{13}} +\CJKvdef{m/n/01/24}{\def\CJK@plane{v}\selectfont\CJKsymbol{14}} +\CJKvdef{m/n/01/12}{\def\CJK@plane{v}\selectfont\CJKsymbol{15}} +\CJKvdef{m/n/01/11}{\def\CJK@plane{v}\selectfont\CJKsymbol{16}} +\CJKvdef{m/n/01/148}{\def\CJK@plane{v}\selectfont\CJKsymbol{17}} +\CJKvdef{m/n/01/146}{\def\CJK@plane{v}\selectfont\CJKsymbol{18}} +\CJKvdef{m/n/01/149}{\def\CJK@plane{v}\selectfont\CJKsymbol{19}} +\CJKvdef{m/n/01/147}{\def\CJK@plane{v}\selectfont\CJKsymbol{20}} +\CJKvdef{m/n/01/155}{\def\CJK@plane{v}\selectfont\CJKsymbol{21}} +\CJKvdef{m/n/01/154}{\def\CJK@plane{v}\selectfont\CJKsymbol{22}} +\CJKvdef{m/n/01/212}{\def\CJK@plane{v}\selectfont\CJKsymbol{23}} +\CJKvdef{m/n/01/213}{\def\CJK@plane{v}\selectfont\CJKsymbol{24}} +\CJKvdef{m/n/01/215}{\def\CJK@plane{v}\selectfont\CJKsymbol{25}} +\CJKvdef{m/n/01/216}{\def\CJK@plane{v}\selectfont\CJKsymbol{26}} +\CJKvdef{m/n/01/217}{\def\CJK@plane{v}\selectfont\CJKsymbol{27}} +\CJKvdef{m/n/01/218}{\def\CJK@plane{v}\selectfont\CJKsymbol{28}} +\CJKvdef{m/n/01/210}{\def\CJK@plane{v}\selectfont\CJKsymbol{29}} +\CJKvdef{m/n/01/209}{\def\CJK@plane{v}\selectfont\CJKsymbol{30}} +\CJKvdef{m/n/01/208}{\def\CJK@plane{v}\selectfont\CJKsymbol{31}} +\CJKvdef{m/n/01/207}{\def\CJK@plane{v}\selectfont\CJKsymbol{32}} +\CJKvdef{m/n/01/223}{\def\CJK@plane{v}\selectfont\CJKsymbol{33}} +\CJKvdef{m/n/01/224}{\def\CJK@plane{v}\selectfont\CJKsymbol{47}} +\CJKvdef{m/n/01/226}{\def\CJK@plane{v}\selectfont\CJKsymbol{50}} +\CJKvdef{m/n/01/225}{\def\CJK@plane{v}\selectfont\CJKsymbol{59}} +\CJKvdef{m/n/01/219}{\def\CJK@plane{v}\selectfont\CJKsymbol{61}} +\CJKvdef{m/n/01/220}{\def\CJK@plane{v}\selectfont\CJKsymbol{62}} +\CJKvdef{m/n/01/222}{\def\CJK@plane{v}\selectfont\CJKsymbol{63}} +\CJKvdef{m/n/01/221}{\def\CJK@plane{v}\selectfont\CJKsymbol{64}} +\CJKvdef{m/n/01/26}{\def\CJK@plane{v}\selectfont\CJKsymbol{65}} +\CJKvdef{m/n/01/2}{\def\CJK@plane{v}\selectfont\CJKsymbol{66}} +\CJKvdef{m/n/01/3}{\def\CJK@plane{v}\selectfont\CJKsymbol{67}} +\CJKvdef{m/n/01/49}{\def\CJK@plane{v}\selectfont\CJKsymbol{68}} +\CJKvdef{m/n/01/50}{\def\CJK@plane{v}\selectfont\CJKsymbol{69}} +\CJKvdef{m/n/01/45}{\def\CJK@plane{v}\selectfont\CJKsymbol{70}} +\CJKvdef{m/n/01/46}{\def\CJK@plane{v}\selectfont\CJKsymbol{71}} +\CJKvdef{m/n/01/53}{\def\CJK@plane{v}\selectfont\CJKsymbol{72}} +\CJKvdef{m/n/01/54}{\def\CJK@plane{v}\selectfont\CJKsymbol{73}} +\CJKvdef{m/n/01/57}{\def\CJK@plane{v}\selectfont\CJKsymbol{74}} +\CJKvdef{m/n/01/58}{\def\CJK@plane{v}\selectfont\CJKsymbol{75}} +\CJKvdef{m/n/01/41}{\def\CJK@plane{v}\selectfont\CJKsymbol{76}} +\CJKvdef{m/n/01/42}{\def\CJK@plane{v}\selectfont\CJKsymbol{77}} +\CJKvdef{m/n/01/37}{\def\CJK@plane{v}\selectfont\CJKsymbol{78}} +\CJKvdef{m/n/01/38}{\def\CJK@plane{v}\selectfont\CJKsymbol{79}} +\CJKvdef{m/n/01/28}{\def\CJK@plane{v}\selectfont\CJKsymbol{80}} +\CJKvdef{m/n/01/13}{\def\CJK@plane{v}\selectfont\CJKsymbol{81}} +\CJKvdef{m/n/01/14}{\def\CJK@plane{v}\selectfont\CJKsymbol{82}} +\CJKvdef{m/n/01/15}{\def\CJK@plane{v}\selectfont\CJKsymbol{83}} +\CJKvdef{m/n/01/61}{\def\CJK@plane{v}\selectfont\CJKsymbol{84}} +\CJKvdef{m/n/01/62}{\def\CJK@plane{v}\selectfont\CJKsymbol{85}} +\CJKvdef{m/n/01/63}{\def\CJK@plane{v}\selectfont\CJKsymbol{86}} +\CJKvdef{m/n/01/64}{\def\CJK@plane{v}\selectfont\CJKsymbol{87}} +\CJKvdef{m/n/01/65}{\def\CJK@plane{v}\selectfont\CJKsymbol{88}} +\CJKvdef{m/n/01/66}{\def\CJK@plane{v}\selectfont\CJKsymbol{89}} + +\CJKvlet{bx/n/01/96}{m/n/01/96} +\CJKvlet{bx/n/01/16}{m/n/01/16} +\CJKvlet{bx/n/01/99}{m/n/01/99} +\CJKvlet{bx/n/01/29}{m/n/01/29} +\CJKvlet{bx/n/01/30}{m/n/01/30} +\CJKvlet{bx/n/01/1}{m/n/01/1} +\CJKvlet{bx/n/01/4}{m/n/01/4} +\CJKvlet{bx/n/01/98}{m/n/01/98} +\CJKvlet{bx/n/01/33}{m/n/01/33} +\CJKvlet{bx/n/01/34}{m/n/01/34} +\CJKvlet{bx/n/01/129}{m/n/01/129} +\CJKvlet{bx/n/01/22}{m/n/01/22} +\CJKvlet{bx/n/01/24}{m/n/01/24} +\CJKvlet{bx/n/01/12}{m/n/01/12} +\CJKvlet{bx/n/01/11}{m/n/01/11} +\CJKvlet{bx/n/01/148}{m/n/01/148} +\CJKvlet{bx/n/01/146}{m/n/01/146} +\CJKvlet{bx/n/01/149}{m/n/01/149} +\CJKvlet{bx/n/01/147}{m/n/01/147} +\CJKvlet{bx/n/01/155}{m/n/01/155} +\CJKvlet{bx/n/01/154}{m/n/01/154} +\CJKvlet{bx/n/01/212}{m/n/01/212} +\CJKvlet{bx/n/01/213}{m/n/01/213} +\CJKvlet{bx/n/01/215}{m/n/01/215} +\CJKvlet{bx/n/01/216}{m/n/01/216} +\CJKvlet{bx/n/01/217}{m/n/01/217} +\CJKvlet{bx/n/01/218}{m/n/01/218} +\CJKvlet{bx/n/01/210}{m/n/01/210} +\CJKvlet{bx/n/01/209}{m/n/01/209} +\CJKvlet{bx/n/01/208}{m/n/01/208} +\CJKvlet{bx/n/01/207}{m/n/01/207} +\CJKvlet{bx/n/01/223}{m/n/01/223} +\CJKvlet{bx/n/01/224}{m/n/01/224} +\CJKvlet{bx/n/01/226}{m/n/01/226} +\CJKvlet{bx/n/01/225}{m/n/01/225} +\CJKvlet{bx/n/01/219}{m/n/01/219} +\CJKvlet{bx/n/01/220}{m/n/01/220} +\CJKvlet{bx/n/01/222}{m/n/01/222} +\CJKvlet{bx/n/01/221}{m/n/01/221} +\CJKvlet{bx/n/01/26}{m/n/01/26} +\CJKvlet{bx/n/01/2}{m/n/01/2} +\CJKvlet{bx/n/01/3}{m/n/01/3} +\CJKvlet{bx/n/01/49}{m/n/01/49} +\CJKvlet{bx/n/01/50}{m/n/01/50} +\CJKvlet{bx/n/01/45}{m/n/01/45} +\CJKvlet{bx/n/01/46}{m/n/01/46} +\CJKvlet{bx/n/01/53}{m/n/01/53} +\CJKvlet{bx/n/01/54}{m/n/01/54} +\CJKvlet{bx/n/01/57}{m/n/01/57} +\CJKvlet{bx/n/01/58}{m/n/01/58} +\CJKvlet{bx/n/01/41}{m/n/01/41} +\CJKvlet{bx/n/01/42}{m/n/01/42} +\CJKvlet{bx/n/01/37}{m/n/01/37} +\CJKvlet{bx/n/01/38}{m/n/01/38} +\CJKvlet{bx/n/01/28}{m/n/01/28} +\CJKvlet{bx/n/01/13}{m/n/01/13} +\CJKvlet{bx/n/01/14}{m/n/01/14} +\CJKvlet{bx/n/01/15}{m/n/01/15} +\CJKvlet{bx/n/01/61}{m/n/01/61} +\CJKvlet{bx/n/01/62}{m/n/01/62} +\CJKvlet{bx/n/01/63}{m/n/01/63} +\CJKvlet{bx/n/01/64}{m/n/01/64} +\CJKvlet{bx/n/01/65}{m/n/01/65} +\CJKvlet{bx/n/01/66}{m/n/01/66} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bsmir.fd b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bsmir.fd new file mode 100644 index 0000000000..fa10ef0545 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bsmir.fd @@ -0,0 +1,25 @@ +% This is the file c00bsmir.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c00bsmir.fd}[\filedate\space\fileversion] + + +% traditional Chinese characters +% +% character set: Big 5 +% font encoding: CJK (Bg5) + +% Arphic GPL font (MingTi) rotated + +\DeclareFontFamily{C00}{bsmir}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C00}{bsmir}{m}{n}{<-> CJK * bsmilr}{\CJKnormal} +\DeclareFontShape{C00}{bsmir}{bx}{n}{<-> CJKb * bsmilr}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bsmir.fdx b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bsmir.fdx new file mode 100644 index 0000000000..cc25893d80 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00bsmir.fdx @@ -0,0 +1,15 @@ +% This is the file c00bsmir.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c00bsmir.fdx}[\filedate\space\fileversion] + + +\CJKvdef{norotate}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00cns.fd b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00cns.fd new file mode 100644 index 0000000000..96415d3f20 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00cns.fd @@ -0,0 +1,25 @@ +% This is the file c00cns.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c00cns.fd}[\filedate\space\fileversion] + + +% traditional Chinese characters +% +% character set: Big 5 +% font encoding: CJK (Bg5) + +% Big 5 encoded CNS pixel font + +\DeclareFontFamily{C00}{CNS}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C00}{CNS}{m}{n}{<-> CJK * csso12}{\CJKnormal} +\DeclareFontShape{C00}{CNS}{bx}{n}{<-> CJKb * csso12}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00fs.fd b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00fs.fd new file mode 100644 index 0000000000..f0ba805e36 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00fs.fd @@ -0,0 +1,25 @@ +% This is the file c00fs.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c00fs.fd}[\filedate\space\fileversion] + + +% traditional Chinese characters in Big 5 encoding scheme. +% +% character set: Big 5 +% font encoding: CJK (Bg5) + +% NTU TrueType font + +\DeclareFontFamily{C00}{fs}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C00}{fs}{m}{n}{<-> CJK * ntufsm}{\CJKnormal} +\DeclareFontShape{C00}{fs}{bx}{n}{<-> CJKb * ntufsm}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00kai.fd b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00kai.fd new file mode 100644 index 0000000000..4e2a853e0b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00kai.fd @@ -0,0 +1,25 @@ +% This is the file c00kai.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c00kai.fd}[\filedate\space\fileversion] + + +% traditional Chinese characters +% +% character set: Big 5 +% font encoding: CJK (Bg5) + +% pixel font + +\DeclareFontFamily{C00}{kai}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C00}{kai}{m}{n}{<-> CJK * b5ka12}{\CJKnormal} +\DeclareFontShape{C00}{kai}{bx}{n}{<-> CJKb * b5ka12}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00kair.fd b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00kair.fd new file mode 100644 index 0000000000..a449cc6aa9 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00kair.fd @@ -0,0 +1,25 @@ +% This is the file c00kair.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c00kair.fd}[\filedate\space\fileversion] + + +% traditional Chinese characters in Big 5 encoding scheme. +% +% character set: Big 5 +% font encoding: CJK (Bg5) + +% ntukai48 pixel font rotated + +\DeclareFontFamily{C00}{kair}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C00}{kair}{m}{n}{<-> CJK * b5kr12}{\CJKnormal} +\DeclareFontShape{C00}{kair}{bx}{n}{<-> CJKb * b5kr12}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00kair.fdx b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00kair.fdx new file mode 100644 index 0000000000..bbcdc9ecbc --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00kair.fdx @@ -0,0 +1,15 @@ +% This is the file c00kair.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c00kair.fdx}[\filedate\space\fileversion] + + +\CJKvdef{norotate}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00song.fd new file mode 100644 index 0000000000..b72cf6b811 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c00song.fd @@ -0,0 +1,25 @@ +% This is the file c00song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c00song.fd}[\filedate\space\fileversion] + + +% traditional Chinese characters +% +% character set: Big 5 +% font encoding: CJK (Bg5) + +% pixel font + +\DeclareFontFamily{C00}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C00}{song}{m}{n}{<-> CJKsub * kai/m/n}{} +\DeclareFontShape{C00}{song}{bx}{n}{<-> CJKsub * kai/bx/n}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c01song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c01song.fd new file mode 100644 index 0000000000..51ed5c16c3 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c01song.fd @@ -0,0 +1,23 @@ +% This is the file c01song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c01song.fd}[\filedate\space\fileversion] + + +% traditional Chinese characters +% +% character set: Big 5 +% font encoding: pmC + +\DeclareFontFamily{C01}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C01}{song}{m}{n}{<-> sCJKfixed * wcb5}{\CJKnormal} +\DeclareFontShape{C01}{song}{bx}{n}{<-> sCJKfixedb * wcb5}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c05song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c05song.fd new file mode 100644 index 0000000000..bc3d18ee85 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c05song.fd @@ -0,0 +1,25 @@ +% This is the file c00song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c05song.fd}[\filedate\space\fileversion] + + +% traditional Chinese characters +% +% character set: Big 5 + HKSCS-2004 (HKSCS-2001) +% font encoding: CJK (HKSCS) + +% pixel font + +\DeclareFontFamily{C05}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C05}{song}{m}{n}{<-> CJKsub * kai/m/n}{} +\DeclareFontShape{C05}{song}{bx}{n}{<-> CJKsub * kai/bx/n}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c09song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c09song.fd new file mode 100644 index 0000000000..33f6fde8df --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/Bg5/c09song.fd @@ -0,0 +1,23 @@ +% This is the file c09song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c09song.fd}[\filedate\space\fileversion] + + +% Chinese characters (extension of Big 5) +% +% character set: Big 5+ +% font encoding: CJK (extended) + +\DeclareFontFamily{C09}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C09}{song}{m}{n}{<-> CJK * bg5p}{\CJKnormal} +\DeclareFontShape{C09}{song}{bx}{n}{<-> CJKb * bg5p}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CEF/c80song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/CEF/c80song.fd new file mode 100644 index 0000000000..ef1319aaf8 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CEF/c80song.fd @@ -0,0 +1,34 @@ +% This is the file c80song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c80song.fd}[\filedate\space\fileversion] + + +% CEF reserved font for IRIZ (International Research Institute for Zen +% Buddhism). +% +% character set: IRIZ +% font encoding: CJK (standard) + +\DeclareFontFamily{C80}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C80}{song}{m}{n}{ + <5> <6> <7> CJKfixed * cxso10 + <8> <9> <10> <10.95> sCJKfixed * cxso10 + <12> CJKfixed * cxso10 + <14.4> <17.28> sCJKfixed * cxso17 + <20.74> <24.88> CJKfixed * cxso17}{\CJKnormal} +\DeclareFontShape{C80}{song}{bx}{n}{ + <5> <6> <7> CJKfixedb * cxso10 + <8> <9> <10> <10.95> sCJKfixedb * cxso10 + <12> CJKfixedb * cxso10 + <14.4> <17.28> sCJKfixedb * cxso17 + <20.74> <24.88> CJKfixedb * cxso17}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CEF/c81song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/CEF/c81song.fd new file mode 100644 index 0000000000..78985b2ced --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CEF/c81song.fd @@ -0,0 +1,33 @@ +% This is the file c81song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c81song.fd}[\filedate\space\fileversion] + + +% CEF private font. +% +% character set: IRIZ private +% font encoding: CJK (standard) + +\DeclareFontFamily{C81}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C81}{song}{m}{n}{ + <5> <6> <7> CJKfixed * cyso10 + <8> <9> <10> <10.95> sCJKfixed * cyso10 + <12> CJKfixed * cyso10 + <14.4> <17.28> sCJKfixed * cyso17 + <20.74> <24.88> CJKfixed * cyso17}{\CJKnormal} +\DeclareFontShape{C81}{song}{bx}{n}{ + <5> <6> <7> CJKfixedb * cyso10 + <8> <9> <10> <10.95> sCJKfixedb * cyso10 + <12> CJKfixedb * cyso10 + <14.4> <17.28> sCJKfixedb * cyso17 + <20.74> <24.88> CJKfixedb * cyso17}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CJK.enc b/language/chinese/CJK/cjk-4.8.5/texinput/CJK.enc new file mode 100644 index 0000000000..af8c8ffd06 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CJK.enc @@ -0,0 +1,1092 @@ +% This is the file CJK.enc of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{CJK.enc}[\filedate\space\fileversion] + + +% we first define a macro to load an encoding file xxx.enc if +% \CJK@xxxEncoding is still undefined. \CJK@xxxEncoding will only be +% executed if it is not the actual encoding. + +\edef\CJK@actualEncoding{} + +\def\CJK@loadEncoding#1{ + \expandafter\ifx\csname CJK@#1Encoding\endcsname \relax + \CJK@input{#1.enc} + \fi + + \edef\CJK@temp{#1} + \ifx\CJK@temp \CJK@actualEncoding + \else + \csname CJK@#1Encoding\endcsname + \CJK@global\edef\CJK@actualEncoding{#1} + \fi} + +% this loads the appropriate xxx.chr file if \CJK@xxxChr is still undefined. +% \CJK@xxxChr will only be executed if it is not the actual character +% macro set. + +\edef\CJK@actualChr{} + +\def\CJK@loadChr#1{ + \expandafter\ifx\csname CJK@#1Chr\endcsname \relax + \CJK@input{#1.chr} + \fi + + \edef\CJK@temp{#1} + \ifx\CJK@temp \CJK@actualChr + \else + \csname CJK@#1Chr\endcsname + \CJK@global\edef\CJK@actualChr{#1} + \fi} + +% this loads the appropriate xxx.bdg file if \CJK@xxxBinding is still +% undefined. \CJK@xxxBinding will only be executed if it is not the +% actual binding. +% +% if the flag \ifCJK@nobind@ is set we do nothing. + +\newif\ifCJK@nobind@ + +\edef\CJK@actualBinding{} + +\def\CJK@loadBinding#1{ + \ifCJK@nobind@ + \else + \expandafter\ifx\csname CJK@#1Binding\endcsname \relax + \CJK@input{#1.bdg} + \fi + + \edef\CJK@temp{#1} + \ifx\CJK@temp \CJK@actualBinding + \else + \csname CJK@#1Binding\endcsname + \CJK@global\edef\CJK@actualBinding{#1} + \fi + \fi} + + +% define macros for individual characters (i.e. the first byte); each active +% character selects the appropriate subfont. The assignments actually +% happen in the encoding specific .enc files. + +\def\CJK@namegdef#1{ + \@tempcnta `#1 + \edef\CJK@temp{\the\@tempcnta} + \expandafter\CJK@global\expandafter\def\csname CJK@\CJK@temp\endcsname} + + +% some encodings can't be reliably processed if \MakeUppercase is active. +% The following macro disables it. It is used in the encoding specific +% .enc files. + +\ifx\CJKpreproc \relax + \def\CJK@disableMakeUppercase{ + \CJK@global\let\CJKuppercase \MakeUppercase + \CJK@global\let\MakeUppercase \relax + + \PackageWarningNoLine{CJK}{ + `\CJK@actualEncoding' encoding used in non-preprocessed mode.\MessageBreak + \protect\MakeUppercase\space disabled} + \CJK@global\let\CJK@disableMakeUppercase \relax} +\else + \let\CJK@disableMakeUppercase \relax +\fi + + +% single shifts (EUC-TW, EUC-JP), three-byte, and four-byte UTF8 values +% can't be used in preprocessed mode + +\def\CJK@shiftError{ + \PackageError{CJK}{ + Single shifts in `\CJK@actualEncoding' encoding + can't be used in preprocessed mode + } + {Maybe you've forgotten to change the encoding?}} +\def\CJK@unicodeError{ + \PackageError{CJK}{ + Three-Byte UTF8 values can't be used in preprocessed mode + } + {Maybe you've forgotten to change the encoding?}} +\def\CJK@unicodexError{ + \PackageError{CJK}{ + Four-Byte UTF8 values can't be used in preprocessed mode + } + {Maybe you've forgotten to change the encoding?}} + + +% the following macro is used to map the CJK (font) encoding to the +% corresponding NFSS font encodings. It also registers the encoding; +% we define an empty macro for the font name in \DeclareFontSubstitution +% since LaTeX2e tests without a subplane appended. + +\def\CJK@mapToNFSS#1#2#3#4#5{ + \expandafter\edef\csname CJK@#1@nfssenc\endcsname{#2} + \DeclareFontEncoding{#2}{}{} + \DeclareFontSubstitution{#2}{#3}{#4}{#5} + \expandafter\def\csname #2/#3/#4/#5\endcsname{}} + + +% an ugly environment which redefines the characters `\', `{', and `}' to +% `/', `(', and `)' respectively since some CJK encodings need these +% characters as second bytes. +% +% to include \CJK@global we define the low level environment macros +% directly. + +\def\CJK@makeEnvironment#1{ + \@ifundefined{#1text}{ + \CJK@global\@namedef{#1text}{ + \catcode`\\=12 + \catcode`\{=12 + \catcode`\}=12 + \def\/{/} + \def\({(} + \def\){)} + \catcode`\/=0 + \catcode`\(=1 + \catcode`\)=2} + \CJK@global\@namedef{end#1text}{}}{}} + + +% here an overview of all encodings/font encodings: +% +% Chinese: Bg5 C00 +% Bg5pmC C01 +% +% HK C05 +% +% Bg5+ C09 +% +% GB C10 +% GBpmC C11 +% +% GBK C19 +% +% GBt C20 +% GBtpmC C21 +% +% CNS1-7 C31-37 +% +% Japanese: JIS C40 +% JISpmC C41 +% JISdnp C42 +% JISwn C43 +% +% JIS2 C50 +% JIS2dnp C52 +% +% SJIS -> kana C49 +% SJISdnp -> kana C49 +% +% Korean: KS -> hanja C60 +% -> hangul C61 +% KSpmC C62 +% KSHL -> hangulHL C63 +% -> symbolHL C64 +% -> hanjaHL C65 +% +% Unicode: UTF8 C70 +% +% CEF: CEFX C80 +% CEFY C81 + + +% here are the punctuation tables. We suppress spaces additionally in this +% group. + +\begingroup + \catcode`\ 9\relax + + \CJK@prePunct {Bg5}{A1}{5D, 5F, 61, 63, 65, 67, 69, 6B, 6D, 6F, 71, 73, + 75, 77, 79, 7B, 7D, A1, A3, + A5, A7, A9, AB, + AD, B1, CC, CD} + \CJK@postPunct {Bg5}{A1}{41, 42, 43, 44, 45, 46, 47, 48, + 49, 4A, 4B, 4C, 4D, 4E, 4F, 50, 51, + 52, 53, 54, 57, + 5E, 60, 62, 64, 66, 68, 6A, 6C, 6E, 70, 72, 74, + 76, 78, 7A, 7C, 7E, A2, A4, + A6, A8, AA, AC} + \CJK@prePunct {Bg5}{A2}{43, 44, 45, 46, 47, 49, + 4C, 4E} + \CJK@postPunct {Bg5}{A2}{48, 4A, 4B, 4D, + 4F, 50, 51, 52, 53, 54, 55, 56, 57, 58} + + \CJK@prePunct {GB}{A1}{AE, B0, B2, B4, B6, B8, BA, BC, BE, + E7, E8, E9, EA, EC, ED} + \CJK@postPunct {GB}{A1}{A2, A3, A4, A9, AD, + AF, B1, B3, B5, B7, B9, BB, BD, BF, + C3, E3, E4, E5, E6, EB} + \CJK@prePunct {GB}{A3}{A3, A4, A8, C0, DB, FB} + \CJK@postPunct {GB}{A3}{A1, A5, A9, AC, AE, BA, BB, BF, DD, FD} + + \CJK@prePunct {JIS}{A1}{C6, C8, CA, CC, CE, D0, D2, D4, D6, D8, DA, + EF, F0, F1, F2, F4, F7, F8} + \CJK@postPunct {JIS}{A1}{A2, A3, A4, A5, A6, A7, A8, A9, AA, AB, AC, + B3, B4, B5, B6, B9, BA, BC, + C4, C7, C9, CB, CD, CF, D1, D3, D5, D7, D9, DB, + EB, EC, ED, EE, F3} + \CJK@prePunct {JIS}{A2}{A9} +% \CJK@postPunct {JIS}{A2}{} +% \CJK@prePunct {JIS}{A4}{} + \CJK@postPunct {JIS}{A4}{A1, A3, A5, A7, A9, + C3, E3, E5, E7, EE} +% \CJK@prePunct {JIS}{A5}{} + \CJK@postPunct {JIS}{A5}{A1, A3, A5, A7, A9, + C3, E3, E5, E7, EE, + F5, F6} + + \CJK@prePunct {SJIS}{81}{65, 67, 69, 6B, 6D, 6F, 71, 73, 75, 77, 79, + 8F, 90, 91, 92, 94, 97, 98, + A7} + \CJK@postPunct{SJIS}{81}{41, 42, 43, 44, 45, 46, 47, 48, 49, 4A, 4B, + 52, 53, 54, 55, 58, 59, 5B, + 63, 66, 68, 6A, 6C, 6E, 70, 72, 74, 76, 78, 7A, + 8B, 8C, 8D, 8E, 93} +% \CJK@prePunct {SJIS}{82}{} + \CJK@postPunct{SJIS}{82}{9F, A1, A3, A5, A7, + C1, E1, E3, E5, EC} +% \CJK@prePunct {SJIS}{83}{} + \CJK@postPunct{SJIS}{83}{40, 42, 44, 46, 48, + 62, 83, 85, 87, 8E, + 95, 96} + + % half-width katakana + \CJK@prePunct {C49}{}{A2} + \CJK@postPunct {C49}{}{A1, A3, A4, A5, A7, A8, A9, AA, AB, AC, AD, AE, AF, + B0, DE, DF} + + \CJK@prePunct {KS}{A1}{AE, B0, B2, B4, B6, B8, BA, BC, + CB, CC, CD, D7, EC} + \CJK@postPunct {KS}{A1}{A2, A3, A4, A5, A6, + AF, B1, B3, B5, B7, B9, BB, BD, + C6, C7, C8, C9, ED} + \CJK@prePunct {KS}{A3}{A3, A4, A8, C0, DB, DC, FB} + \CJK@postPunct {KS}{A3}{A1, A5, A9, AC, AE, BA, BB, BF, DD, FD} + + \xdef\CJK@uniPunct{30, fe, ff} % values must be lowercase for UTF 8 + + \CJK@prePunct {UTF8}{30}{08, 0A, 0C, 0E, 10, 12, 14, 16, 18, 1A, 1D, 1F, 36} + \CJK@postPunct{UTF8}{30}{01, 02, 05, 06, + 09, 0B, 0D, 0F, 11, 15, 17, 19, 1B, 1E, + 41, 43, 45, 47, 49, 63, 83, 85, 87, 8E, + 9B, 9C, 9D, 9E, + A1, A3, A5, A7, A9, C3, E3, E5, E7, EE, F5, F6, + FB, FC, FD, FE} + \CJK@prePunct {UTF8}{fe}{59, 5B, 5D, 5F, 60, 69, 6B} + \CJK@postPunct{UTF8}{fe}{50, 51, 52, 54, 55, 56, 57, 5A, 5C, 5E, 6A} + \CJK@prePunct {UTF8}{ff}{03, 04, 08, 20, 3B, 5B, E0, E1, E5, E6} + \CJK@postPunct{UTF8}{ff}{01, 05, 09, 0C, 0E, 1A, 1B, 1F, 3D, 5D, + 61, 63, 64, 65, 67, 68, 69, 6A, 6B, 6C, 6D, 6E, 6F, + 70, 9E, 9F} + + \CJK@prePunct {CNS1}{A1}{BE, C2, C6, CA, CE, D2, D6, DA, DE, E0, E2, + E4, E6, E8, EA, + EC, F0} + \CJK@postPunct{CNS1}{A1}{A2, A3, A4, A5, A6, A7, A8, A9, + AA, AC, AD, AE, AF, B0, B1, B2, + B3, B4, B5, + BF, C3, C7, CB, CF, D3, D7, DB, DF, E1, E3, + E5, E7, E9, EB} + \CJK@prePunct {CNS1}{A2}{AD, AE, E3, E4, E5, E6, E7, E9, + EC, EE} + \CJK@postPunct{CNS1}{A2}{E8, EA, EB, ED, + EF, F0, F1, F2, F3, F4, F5, F6, F7, F8} + + \CJK@prePunct {GBK}{A1}{AE, B0, B2, B4, B6, B8, BA, BC, BE, + E7, E8, E9, EA, EC, ED} + \CJK@postPunct {GBK}{A1}{A2, A3, A4, A9, AD, + AF, B1, B3, B5, B7, B9, BB, BD, BF, + C3, E3, E4, E5, E6, EB} + \CJK@prePunct {GBK}{A3}{A3, A4, A8, C0, DB, FB} + \CJK@postPunct {GBK}{A3}{A1, A5, A9, AC, AE, BA, BB, BF, DD, FD} +% \CJK@prePunct {GBK}{A4}{} + \CJK@postPunct {GBK}{A4}{A1, A3, A5, A7, A9, C3, E3, E5, E7, EE} +% \CJK@prePunct {GBK}{A5}{} + \CJK@postPunct {GBK}{A5}{A1, A3, A5, A7, A9, C3, E3, E5, E7, EE, F5, F6} + \CJK@prePunct {GBK}{A8}{93, 94} + \CJK@postPunct {GBK}{A8}{95} + \CJK@prePunct {GBK}{A9}{76, 78, 7A, 7C, 7D, 86, 88} + \CJK@postPunct {GBK}{A9}{60, 61, 62, 63, 64, 65, 66, 67, 6F, + 70, 71, 72, 73, 74, 75, 77, 79, 7B, 87} +\endgroup + + +% dummy encoding for MULE. + +\def\CJK@@enc{\CJK@loadBinding{standard}} + +\edef\CJK@@fontenc{} + + +% traditional Chinese characters +% +% character set: Big 5 +% encoding: Big 5 +% font encoding: CJK + +\CJK@mapToNFSS{Bg5}{C00}{song}{m}{n} +\CJKencfamily{Bg5}{song} +\CJKfontenc{Bg5}{} +\@namedef{CJK@Bg5@hook}{} + +\@namedef{CJK@Bg5@enc}{ + \CJK@makeEnvironment{Bg5} + + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "040% don't forget `0' before the number, + \CJK@global\chardef\CJK@max "0FE% otherwise german.sty will not work. + + \CJK@loadEncoding{Bg5} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"040}}} + +% support for Hong Kong +% +% character set: Big 5 + HKSCS-2004 (or HKSCS-2001) +% encoding: Big 5 +% font encoding: CJK + +\CJK@mapToNFSS{HK}{C05}{song}{m}{n} +\CJKencfamily{HK}{song} +\CJKfontenc{HK}{} +\@namedef{CJK@HK@hook}{} + +\def\CJK@HK@enc{ + \CJK@makeEnvironment{HK} + + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "040% don't forget `0' before the number, + \CJK@global\chardef\CJK@max "0FE% otherwise german.sty will not work. + + \CJK@loadEncoding{HK} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"040}}} + +% Chinese characters (extension of Big 5) +% +% character set: Big 5+ +% encoding: extended +% font encoding: CJK + +\CJK@mapToNFSS{Bg5+}{C09}{song}{m}{n} +\CJKencfamily{Bg5+}{song} +\CJKfontenc{Bg5+}{} +\@namedef{CJK@Bg5+@hook}{} + +\@namedef{CJK@Bg5+@enc}{ + \CJK@makeEnvironment{Bg5+} + + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "040 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{extended} + + \CJK@global\edef\CJK@punctEnc{Bg5} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"040}}} + + +% Chinese characters +% +% character set: GB 2312-80 +% encoding: EUC +% font encoding: CJK + +\CJK@mapToNFSS{GB}{C10}{song}{m}{n} +\CJKencfamily{GB}{song} +\CJKfontenc{GB}{} +\def\CJK@GB@hook{} + +\def\CJK@GB@enc{ + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{standard} + + \CJK@global\edef\CJK@punctEnc{GB} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + +% traditional Chinese characters +% +% character set: GB/T 12345-90 +% encoding: EUC +% font encoding: CJK + +\CJK@mapToNFSS{GBt}{C20}{song}{m}{n} +\CJKencfamily{GBt}{song} +\CJKfontenc{GBt}{} +\def\CJK@GBt@hook{} + +\let\CJK@GBt@enc \CJK@GB@enc + +% Chinese characters (extension of GB 2312) +% +% character set: GBK +% encoding: extended +% font encoding: CJK + +\CJK@mapToNFSS{GBK}{C19}{song}{m}{n} +\CJKencfamily{GBK}{song} +\CJKfontenc{GBK}{} +\def\CJK@GBK@hook{} + +\def\CJK@GBK@enc{ + \CJK@makeEnvironment{GBK} + + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "040 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{extended} + + \CJK@global\edef\CJK@punctEnc{GBK} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + + +% Japanese characters +% +% character set JIS X 0208:1997 +% encoding: EUC +% font encoding: CJK + +\CJK@mapToNFSS{JIS}{C40}{song}{m}{n} +\CJKencfamily{JIS}{song} +\CJKfontenc{JIS}{} +\def\CJK@JIS@hook{} + +\def\CJK@JIS@enc{ + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{standard} + + \CJK@global\edef\CJK@punctEnc{JIS} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + +% Japanese characters +% +% character set: JIS X 0208:1997 +% encoding: EUC +% font encoding: DNP + +\CJK@mapToNFSS{JISdnp}{C42}{song}{m}{n} +\CJKencfamily[dnp]{JIS}{song} + +\def\CJK@JISdnp@enc{ + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{JISdnp} + + \CJK@global\edef\CJK@punctEnc{JIS} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + +% Japanese characters +% +% character set: JIS X 0208:1997 +% encoding: EUC +% font encoding: DNP (watanabe) + +\CJK@mapToNFSS{JISwn}{C43}{song}{m}{n} +\CJKencfamily[wn]{JIS}{song} + +\let\CJK@JISwn@enc \CJK@JISdnp@enc + +% Japanese supplemental JIS characters +% +% character set: JIS X 0212-1990 +% encoding: EUC +% font encoding: CJK + +\CJK@mapToNFSS{JIS2}{C50}{song}{m}{n} +\CJKencfamily{JIS2}{song} +\CJKfontenc{JIS2}{} +\@namedef{CJK@JIS2@hook}{} + +\@namedef{CJK@JIS2@enc}{ + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{standard} + + \CJK@global\edef\CJK@punctEnc{} + + \CJK@global\def\CJK@spaceChar{\CJKchar[JIS]{"0A1}{"0A1}}} + +% Japanese supplemental JIS characters +% +% character set: JIS X 0212-1990 +% encoding: EUC +% font encoding: DNP + +\CJK@mapToNFSS{JIS2dnp}{C52}{song}{m}{n} +\CJKencfamily[dnp]{JIS2}{song} + +\@namedef{CJK@JIS2dnp@enc}{ + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{JISdnp} + + \CJK@global\edef\CJK@punctEnc{} + + \CJK@global\def\CJK@spaceChar{\CJKchar[JIS]{"0A1}{"0A1}}} + +% Japanese characters +% +% character sets: JIS X 0208:1997 +% half-width katakana (JIS X 0201-1997) +% encoding: SJIS +% font encoding: CJK +% +% Technical note: \CJK@altenc is used for SJIS, \CJK@altEnc for KS. + +\CJK@mapToNFSS{kana}{C49}{song}{m}{n}% used internally only +\CJKencfamily{SJIS}{song} +\CJKfontenc{SJIS}{} +\def\CJK@SJIS@hook{} + +% the relative order of JIS and SJIS encoded characters are identical +% except one byte characters. + +\def\CJK@@@SJIS@hook{ + \CJK@global\edef\CJK@enc{\CJK@JIS@nfssenc} + \CJK@global\edef\CJK@altenc{\CJK@kana@nfssenc}} + +\def\CJK@SJIS@enc{ + \CJK@makeEnvironment{SJIS} + + \CJK@loadBinding{SJIS} + + \CJK@global\chardef\CJK@min "040 + \CJK@global\chardef\CJK@max "0FC + + \CJK@loadEncoding{SJIS} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"081}{"040}}} + +% Japanese characters +% +% character sets: JIS X 0208:1997 +% half-width katakana (JIS X 0201-1997) +% encoding: SJIS +% font encoding: DNP + +\CJKencfamily[dnp]{SJIS}{song} + +% the relative order of JIS and SJIS encoded characters are identical +% except one byte characters. + +\def\CJK@@@SJISdnp@hook{ + \CJK@global\edef\CJK@enc{\CJK@JISdnp@nfssenc} + \CJK@global\edef\CJK@altenc{\CJK@kana@nfssenc}} + +\def\CJK@SJISdnp@enc{ + \CJK@makeEnvironment{SJIS} + + \CJK@loadBinding{SJIS} + + \CJK@global\chardef\CJK@min "040 + \CJK@global\chardef\CJK@max "0FC + + \CJK@loadEncoding{SJISdnp} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"081}{"040}}} + + +% Korean characters +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% encoding: EUC +% font encoding: CJK +% +% the increased \tolerance compensates the lack of \CJKglue for Hangul +% syllables. + +% the following commands choose between C60xxx.fd (for hanja) and C61xxx.fd +% (for hangul) for the character range 0xB0A1 - 0xC8FE. + +\newif\ifCJK@hanja@ +\CJK@hanja@false + +\DeclareRobustCommand{\CJKhanja}{ + \CJK@global\CJK@hanja@true + \edef\CJK@temp{KS} + \ifx\CJK@temp \CJK@@@enc + \edef\CJK@temp{\csname CJK@\CJK@@@enc @fontenc\endcsname} + \CJK@global\edef\CJK@altEnc{ + \csname CJK@hanja\CJK@temp @nfssenc\endcsname} + \fi} +\DeclareRobustCommand{\CJKhangul}{ + \CJK@global\CJK@hanja@false + \edef\CJK@temp{KS} + \ifx\CJK@temp \CJK@@@enc + \edef\CJK@temp{\csname CJK@\CJK@@@enc @fontenc\endcsname} + \CJK@global\edef\CJK@altEnc{ + \csname CJK@hangul\CJK@temp @nfssenc\endcsname} + \fi} + +\CJK@mapToNFSS{hanja}{C60}{mj}{m}{n}% used internally only +\CJK@mapToNFSS{hangul}{C61}{mj}{m}{n}% used internally only +\CJKencfamily{KS}{mj} +\CJKfontenc{KS}{} +\def\CJK@KS@hook{} + +\def\CJK@@@KS@hook{ + \CJK@global\edef\CJK@enc{\CJK@hanja@nfssenc} + \ifCJK@hanja@ + \CJK@global\edef\CJK@altEnc{\CJK@hanja@nfssenc} + \else + \CJK@global\edef\CJK@altEnc{\CJK@hangul@nfssenc} + \fi} + +\def\CJK@KS@enc{ + \CJK@global\def\mj{\protect\CJK@mj}% % from hLaTeX + \gdef\CJK@mj{\CJKencfamily{KS}{mj}} + \CJK@global\def\gt{\protect\CJK@gt} + \gdef\CJK@gt{\CJKencfamily{KS}{gt}} + \CJK@global\def\gs{\protect\CJK@gs} + \gdef\CJK@gs{\CJKencfamily{KS}{gs}} + \CJK@global\def\gr{\protect\CJK@gr} + \gdef\CJK@gr{\CJKencfamily{KS}{gr}} + \CJK@global\def\dr{\protect\CJK@dr} + \gdef\CJK@dr{\CJKencfamily{KS}{dr}} + + \CJK@global\def\hgt{\protect\CJK@hgt}% % from hjTeX + \gdef\CJK@hgt{\CJKencfamily{KS}{hgt}} + \CJK@global\def\hmj{\protect\CJK@hmj} + \gdef\CJK@hmj{\CJKencfamily{KS}{hmj}} + \CJK@global\def\hol{\protect\CJK@hol} + \gdef\CJK@hol{\CJKencfamily{KS}{hol}} + \CJK@global\def\hpg{\protect\CJK@hpg} + \gdef\CJK@hpg{\CJKencfamily{KS}{hpg}} + + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{KS} + + \CJK@global\edef\CJK@punctEnc{KS} + \CJK@global\tolerance \CJKtolerance + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + + +% Korean characters +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% encoding: EUC +% font encoding: HLaTeX (version >= 0.97) + +\CJK@mapToNFSS{hangulHL}{C63}{mj}{m}{n}% used internally only +\CJK@mapToNFSS{symbolHL}{C64}{mj}{m}{n}% used internally only +\CJK@mapToNFSS{hanjaHL}{C65}{mj}{m}{n}% used internally only +\CJKencfamily[HL]{KS}{mj} + +\def\CJK@@@KSHL@hook{ + \CJK@global\edef\CJK@enc{\CJK@hanjaHL@nfssenc} + \CJK@global\edef\CJK@altEnc{\CJK@hangulHL@nfssenc} + \CJK@global\edef\CJK@symbEnc{\CJK@symbolHL@nfssenc}} + +\def\CJK@KSHL@enc{ + \CJK@global\def\bm{\protect\CJK@bm} + \gdef\CJK@bm{\CJKencfamily[HL]{KS}{bm}} + \CJK@global\def\dn{\protect\CJK@dn} + \gdef\CJK@dn{\CJKencfamily[HL]{KS}{dn}} + \CJK@global\def\gr{\protect\CJK@gr} + \gdef\CJK@gr{\CJKencfamily[HL]{KS}{gr}} + \CJK@global\def\gs{\protect\CJK@gs} + \gdef\CJK@gs{\CJKencfamily[HL]{KS}{gs}} + \CJK@global\def\gt{\protect\CJK@gt} + \gdef\CJK@gt{\CJKencfamily[HL]{KS}{gt}} + \CJK@global\def\jgt{\protect\CJK@jgt} + \gdef\CJK@jgt{\CJKencfamily[HL]{KS}{jgt}} + \CJK@global\def\jmj{\protect\CJK@jmj} + \gdef\CJK@jmj{\CJKencfamily[HL]{KS}{jmj}} + \CJK@global\def\jnv{\protect\CJK@jnv} + \gdef\CJK@jnv{\CJKencfamily[HL]{KS}{jnv}} + \CJK@global\def\jsr{\protect\CJK@jsr} + \gdef\CJK@jsr{\CJKencfamily[HL]{KS}{jsr}} + \CJK@global\def\mj{\protect\CJK@mj} + \gdef\CJK@mj{\CJKencfamily[HL]{KS}{mj}} + \CJK@global\def\ol{\protect\CJK@ol} + \gdef\CJK@ol{\CJKencfamily[HL]{KS}{mj}} + \CJK@global\def\pg{\protect\CJK@pg} + \gdef\CJK@pg{\CJKencfamily[HL]{KS}{pg}} + \CJK@global\def\pga{\protect\CJK@pga} + \gdef\CJK@pga{\CJKencfamily[HL]{KS}{pga}} + \CJK@global\def\ph{\protect\CJK@ph} + \gdef\CJK@ph{\CJKencfamily[HL]{KS}{ph}} + \CJK@global\def\pn{\protect\CJK@pn} + \gdef\CJK@pn{\CJKencfamily[HL]{KS}{pn}} + \CJK@global\def\sh{\protect\CJK@sh} + \gdef\CJK@sh{\CJKencfamily[HL]{KS}{sh}} + \CJK@global\def\sm{\protect\CJK@sm} + \gdef\CJK@sm{\CJKencfamily[HL]{KS}{mj}} + \CJK@global\def\tz{\protect\CJK@tz} + \gdef\CJK@tz{\CJKencfamily[HL]{KS}{tz}} + \CJK@global\def\vd{\protect\CJK@vd} + \gdef\CJK@vd{\CJKencfamily[HL]{KS}{vd}} + \CJK@global\def\yt{\protect\CJK@yt} + \gdef\CJK@yt{\CJKencfamily[HL]{KS}{yt}} + + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{KSHL} + + \CJK@global\edef\CJK@punctEnc{KS} + \CJK@global\tolerance \CJKtolerance + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + + +% Unicode +% +% character set: Unicode +% encoding: UTF 8 +% font encoding: CJK + +\CJK@mapToNFSS{UTF8}{C70}{song}{m}{n} +\CJKencfamily{UTF8}{song} +\CJKfontenc{UTF8}{} +\@namedef{CJK@UTF8@hook}{} + +\@namedef{CJK@UTF8@enc}{ + \CJK@loadBinding{UTF8} + + \CJK@global\chardef\CJK@min "080 + \CJK@global\chardef\CJK@max "0BF + + \CJK@loadEncoding{UTF8} + + \CJK@global\def\CJK@spaceChar{\Unicode{"030}{"000}}} + + +% Chinese characters in CNS encoding. +% +% character set: CNS 11643-1992 +% encoding: EUC +% font encoding: CJK + +% please note that internally character codes with the 8th bit set are +% used, whereas Wittern's CEF use the seven bit form. + +% plane 1. + +\CJK@mapToNFSS{CNS1}{C31}{song}{m}{n} +\CJKencfamily{CNS1}{song} +\CJKfontenc{CNS1}{} +\@namedef{CJK@CNS1@enc}{} + +\@namedef{CJK@CNS1@enc}{ + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{standard} + + \CJK@global\edef\CJK@punctEnc{CNS1} + + \CJK@global\def\CJK@spaceChar{\CJKchar[CNS1]{"0A1}{"0A1}}} + +% plane 2-7. + +\CJK@mapToNFSS{CNS2}{C32}{song}{m}{n} +\CJKencfamily{CNS2}{song} +\CJKfontenc{CNS2}{} +\@namedef{CJK@CNS2@hook}{} +\CJK@mapToNFSS{CNS3}{C33}{song}{m}{n} +\CJKencfamily{CNS3}{song} +\CJKfontenc{CNS3}{} +\@namedef{CJK@CNS3@hook}{} +\CJK@mapToNFSS{CNS4}{C34}{song}{m}{n} +\CJKencfamily{CNS4}{song} +\CJKfontenc{CNS4}{} +\@namedef{CJK@CNS4@hook}{} +\CJK@mapToNFSS{CNS5}{C35}{song}{m}{n} +\CJKencfamily{CNS5}{song} +\CJKfontenc{CNS5}{} +\@namedef{CJK@CNS5@hook}{} +\CJK@mapToNFSS{CNS6}{C36}{song}{m}{n} +\CJKencfamily{CNS6}{song} +\CJKfontenc{CNS6}{} +\@namedef{CJK@CNS6@hook}{} +\CJK@mapToNFSS{CNS7}{C37}{song}{m}{n} +\CJKencfamily{CNS7}{song} +\CJKfontenc{CNS7}{} +\@namedef{CJK@CNS7@hook}{} + +\expandafter\expandafter\expandafter\let + \expandafter\csname CJK@CNS2@enc\expandafter\endcsname + \csname CJK@JIS2@enc\endcsname +\expandafter\expandafter\expandafter\let + \expandafter\csname CJK@CNS3@enc\expandafter\endcsname + \csname CJK@CNS2@enc\endcsname +\expandafter\expandafter\expandafter\let + \expandafter\csname CJK@CNS4@enc\expandafter\endcsname + \csname CJK@CNS2@enc\endcsname +\expandafter\expandafter\expandafter\let + \expandafter\csname CJK@CNS5@enc\expandafter\endcsname + \csname CJK@CNS2@enc\endcsname +\expandafter\expandafter\expandafter\let + \expandafter\csname CJK@CNS6@enc\expandafter\endcsname + \csname CJK@CNS2@enc\endcsname +\expandafter\expandafter\expandafter\let + \expandafter\csname CJK@CNS7@enc\expandafter\endcsname + \csname CJK@CNS2@enc\endcsname + + +% special CEF encodings + +\CJK@mapToNFSS{CEFX}{C80}{song}{m}{n} +\CJKencfamily{CEFX}{song} +\CJKfontenc{CEFX}{} +\def\CJK@CEFX@hook{} +\CJK@mapToNFSS{CEFY}{C81}{song}{m}{n} +\CJKencfamily{CEFY}{song} +\CJKfontenc{CEFY}{} +\def\CJK@CEFY@hook{} + +\expandafter\let\expandafter\CJK@CEFX@enc \csname CJK@CNS2@enc\endcsname +\expandafter\let\expandafter\CJK@CEFY@enc \csname CJK@CNS2@enc\endcsname + + +% traditional Chinese characters +% +% character set: Big 5 +% encoding: Big 5 +% font encoding: pmC + +\CJK@mapToNFSS{Bg5pmC}{C01}{song}{m}{n} +\CJKencfamily[pmC]{Bg5}{song} + +\@namedef{CJK@Bg5pmC@enc}{ + \CJK@global\def\pmCsmall{\protect\CJK@pmCsmall} + \gdef\CJK@pmCsmall{ + \CJK@loadEncoding{pmCsmall}} + \CJK@global\def\pmCbig{\protect\CJK@pmCbig} + \gdef\CJK@pmCbig{ + \PackageError{CJK}{ + No big font for pmC Big 5 encoding available}{}} + + \CJK@makeEnvironment{Bg5} + + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "040 + \CJK@global\chardef\CJK@max "0FE + + \CJK@global\edef\CJK@punctEnc{Bg5} + + \pmCsmall + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"040}}} + +% simplified Chinese characters +% +% character set: GB 2312-80 +% encoding: EUC +% font encoding: pmC + +\CJK@mapToNFSS{GBpmC}{C11}{song}{m}{n} +\CJKencfamily[pmC]{GB}{song} + +\def\CJK@GBpmC@enc{ + \CJK@pmC{GB}} + +% traditional Chinese characters +% +% character set: GB/T 12345-90 +% encoding: EUC +% font encoding: pmC + +\CJK@mapToNFSS{GBtpmC}{C21}{song}{m}{n} +\CJKencfamily[pmC]{GBt}{song} + +\let\CJK@GBtpmC@enc \CJK@GBpmC@enc + +% Japanese characters +% +% character set: JIS X 0208:1997 +% encoding: EUC +% font encoding: pmC + +\CJK@mapToNFSS{JISpmC}{C41}{song}{m}{n} +\CJKencfamily[pmC]{JIS}{song} + +\def\CJK@JISpmC@enc{ + \CJK@pmC{JIS}} + +% Korean characters +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% encoding: EUC +% font encoding: pmC + +\CJK@mapToNFSS{KSpmC}{C62}{song}{m}{n} +\CJKencfamily[pmC]{KS}{song} + +\def\CJK@KSpmC@enc{ + \CJK@pmC{KS}} + +\def\CJK@pmC#1{ + \CJK@global\def\pmCsmall{\protect\CJK@pmCsmall} + \gdef\CJK@pmCsmall{ + \CJK@loadEncoding{pmCsmall}} + \CJK@global\def\pmCbig{\protect\CJK@pmCbig} + \gdef\CJK@pmCbig{ + \CJK@loadEncoding{pmCbig}} + + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@global\edef\CJK@punctEnc{#1} + + \pmCsmall + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + + +% EUC-JP +% +% character sets: half-width katakana (JIS X 0201-1997) +% JIS X 0208:1997 +% JIS X 0212-1992 +% encoding: EUC-JP +% font encoding: CJK +% +% Technical note: JIS X 0212 is directly accessed via +% \CJKchar[JIS2]{...}{...} + +\CJKencfamily{EUC-JP}{song} +\CJKfontenc{EUC-JP}{} +\@namedef{CJK@EUC-JP@hook}{} + +\@namedef{CJK@@@EUC-JP@hook}{ + \CJK@global\edef\CJK@enc{\CJK@JIS@nfssenc} + \CJK@global\edef\CJK@altenc{\CJK@kana@nfssenc}} + +\@namedef{CJK@EUC-JP@enc}{ + \CJK@loadBinding{EUC-JP} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{EUC-JP} + + \CJK@global\edef\CJK@punctEnc{JIS} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + + +% EUC-JP +% +% character sets: half-width katakana (JIS X 0201-1997) +% JIS X 0208:1997 +% JIS X 0212-1992 +% encoding: EUC-JP +% font encoding: dnp +% +% Technical note: JIS X 0212 is directly accessed via +% \CJKchar[JIS2dnp]{...}{...} + +\CJKencfamily[dnp]{EUC-JP}{song} + +\@namedef{CJK@@@EUC-JPdnp@hook}{ + \CJK@global\edef\CJK@enc{\CJK@JISdnp@nfssenc} + \CJK@global\edef\CJK@altenc{\CJK@kana@nfssenc}} + +\@namedef{CJK@EUC-JPdnp@enc}{ + \CJK@loadBinding{EUC-JP} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{EUC-JPdnp} + + \CJK@global\edef\CJK@punctEnc{JIS} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + + +% EUC-TW +% +% character sets: CNS 11643-1992 planes 1-7 +% encoding: EUC-TW +% font encoding: CJK +% +% Technical note: CNS 11643-1992 planes 2-7 are directly accessed via +% \CJKchar[CNSx]{...}{...} + +\CJKencfamily{EUC-TW}{song} +\CJKfontenc{EUC-TW}{} +\@namedef{CJK@EUC-TW@hook}{} + +\@namedef{CJK@@@EUC-TW@hook}{ + \CJK@global\edef\CJK@enc{\csname CJK@CNS1@nfssenc\endcsname}} + +\@namedef{CJK@EUC-TW@enc}{ + \CJK@loadBinding{EUC-TW} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{EUC-TW} + + \CJK@global\edef\CJK@punctEnc{CNS1} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CJK.sty b/language/chinese/CJK/cjk-4.8.5/texinput/CJK.sty new file mode 100644 index 0000000000..b7e3fcaea5 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CJK.sty @@ -0,0 +1,1136 @@ +% This is the file CJK.sty of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\NeedsTeXFormat{LaTeX2e}[2001/06/01] +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesPackage{CJK}[\filedate\space\fileversion] + +\RequirePackage{MULEenc} + +\newif\ifCJK@lowercase@ +\CJK@lowercase@false +\DeclareOption{lowercase}{\CJK@lowercase@true} + +\DeclareOption{global}{\let\CJK@global \global + \let\CJK@active \global + \let\CJK@local \global} +\DeclareOption{local}{\let\CJK@global \relax + \let\CJK@active \global + \let\CJK@local \global} +\DeclareOption{active}{\let\CJK@global \relax + \let\CJK@active \relax + \let\CJK@local \global} +\DeclareOption{encapsulated}{\let\CJK@global \relax + \let\CJK@active \relax + \let\CJK@local \relax} + +\ExecuteOptions{local} + +\ProcessOptions + + +% we suppress any unwanted spaces produced by linefeeds. + +\endlinechar \m@ne + + +% the use of the internal LaTeX macro `\@ifundefined' can be slightly +% irritating. After it has been called, the tested macro is no +% longer undefined but expands to \relax. Where possible, we use +% the following macro which doesn't have this side effect. + +\def\CJK@ifundefined#1{ + \ifx #1\@undefined + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} + + +% our input macro. For compatibility with ArabTeX, the catcode of `<' +% is preserved. + +\def\CJK@input#1{ + \makeatletter + \edef\CJK@lesscatcode{\noexpand\catcode`< \the\catcode`<} + \catcode`\< 12\relax + \endlinechar \m@ne + \input #1\relax + \endlinechar `\^^M + \CJK@lesscatcode + \makeatother} + + +% our symbol macro. It honours the \ifCJK@bold@ flag (to be set in the .fd +% files) for producing poor-man's bold fonts; if it is raised we print +% the character three times with a small horizontal shift. +% +% The user commands to set and unset \ifCJK@bold@ are \CJKbold and +% \CJKnormal respectively. +% +% \CJKboldshift defines the shift used to imitate bold fonts. + +\newif\ifCJK@bold@ +\newcommand{\CJKbold}{\global\CJK@bold@true} +\newcommand{\CJKnormal}{\global\CJK@bold@false} +\newcommand{\CJKboldshift}{0.015em} + +\DeclareRobustCommand{\CJKsymbol}[1]{ + \symbol{#1} + \ifCJK@bold@ + \hbox to \CJKboldshift{\hss\symbol{#1}} + \hbox to \CJKboldshift{\hss\symbol{#1}} + \fi} +\let\CJKpunctsymbol\CJKsymbol + +% the same for HLaTeX which uses the ligature mechanism + +\DeclareRobustCommand{\CJKsymbols}[2]{ + \char #1\char #2\relax + \ifCJK@bold@ + \hbox to \CJKboldshift{\hss\char #1\char #2} + \hbox to \CJKboldshift{\hss\char #1\char #2} + \fi} + + +% the auxiliary macro \CJK@numbToHex converts number #2 into a two-digit +% hex string and assigns it globally to #1. + +\def\CJK@numbToHex#1#2{ + {\count\z@ #2\relax + \count\tw@ \count\z@ + \divide\count\z@ \sixt@@n + + \count@ \count\z@ + \multiply\count@ \sixt@@n + \advance\count\tw@ -\count@ + + \xdef#1{ + \hexnumber@{\count\z@}\hexnumber@{\count\tw@}}}} + + +% the auxiliary macro \CJK@numbxToHex converts number #2 into a four-digit +% hex string and assigns it globally to #1. + +\def\CJK@numbxToHex#1#2{ + {\count\thr@@ #2\relax + \count\tw@ \count\thr@@ + \divide\count\tw@ \sixt@@n + \count\@ne \count\tw@ + \divide\count\@ne \sixt@@n + \count\z@ \count\@ne + \divide\count\z@ \sixt@@n + + \count@ \count\tw@ + \multiply\count@ \sixt@@n + \advance\count\thr@@ -\count@ + \count@ \count\@ne + \multiply\count@ \sixt@@n + \advance\count\tw@ -\count@ + \count@ \count\z@ + \multiply\count@ \sixt@@n + \advance\count\@ne -\count@ + + \xdef#1{ + \hexnumber@{\count\z@} + \hexnumber@{\count\@ne} + \hexnumber@{\count\tw@} + \hexnumber@{\count\thr@@}}}} + + +% the encoding of the `UTF8' environment. + +\edef\CJK@UnicodeEnc{UTF8} + + +% with \CJKchar you can access a character directly at a low level: +% the parameters are the first and the second byte of the CJK character +% code. The second parameter will be ignored if you address one-byte +% encoded characters in SJIS. +% +% the optional parameter selects the encoding (using \CJKenc). +% +% for Unicode characters you must select UTF-8 encoding (but enter real +% Unicode values). +% +% you can enter character codes with or without the 8th bit set (GL or +% GR form) except for SJIS, Bg5 and UTF-8 encodings. + +\DeclareRobustCommand{\CJKchar}[3][]{ + {\CJK@nobind@true + + \edef\CJK@tempenc{#1} + \ifx\CJK@tempenc \@empty + \else + \let\CJK@oldenc \CJK@@@enc + \CJKenc{#1} + \fi + + \edef\CJK@temp{UTF8} + \ifx\CJK@temp \CJK@@@enc + \Unicode{#2}{#3} + \else + \@tempcnta #2 + \edef\CJK@tempa{#3} + \ifx\CJK@tempa \@empty% % test for one-byte SJIS characters + \else + \@tempcntb #3 + \ifnum \CJK@min > 160\relax + \ifnum\@tempcnta < 128\relax + \advance\@tempcnta 128\relax + \advance\@tempcntb 128\relax + \fi + \fi + \edef\CJK@tempa{\the\@tempcntb} + \fi + + \edef\CJK@temp{\the\@tempcnta} + \expandafter\csname CJK@\CJK@temp\expandafter\endcsname + \expandafter{\CJK@tempa} + \fi + + \ifx\CJK@tempenc \@empty + \else + \ifx\CJK@global \global + \CJKenc{\CJK@oldenc} + \fi + \fi} + + \CJK@ignorespaces} + + +% with \Unicode you can access a Unicode character directly at a low level: +% the parameters are the first and the second byte of the Unicode (real +% Unicode values, not UTF-8). +% +% If the Unicode value is greater than U+FFFF, put the first two bytes +% into #1, and the third byte into #2. + +\DeclareRobustCommand{\Unicode}[2]{ + {\edef\CJK@temp{UTF8} + \ifx\CJK@temp \CJK@@@enc + \else + \PackageError{CJK}{ + You can't use \protect\Unicode\space here}{ + You must activate UTF-8 encoding to use \protect\Unicode.} + \fi + \ifnum #1 > 255\relax + \CJK@numbxToHex{\CJK@gtemp}{#1} + \else + \CJK@numbToHex{\CJK@gtemp}{#1} + \fi + \def\CJK@tempa##1{ + \lowercase{\edef\CJK@plane{##1}}} + \expandafter\CJK@tempa\expandafter{\CJK@gtemp} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + + \edef\CJK@tempa{ + \curr@fontshape/\CJK@plane/\number #2/\CJK@direction} + \expandafter\ifx\csname\CJK@tempa\endcsname \relax + \def\CJKtemp{\CJKsymbol{#2}} + \else + \def\CJKtemp{\csname\CJK@tempa\endcsname} + \fi + + \ifCJK@latin@ + \CJKtemp + \else + \expandafter\CJK@testInList\expandafter\CJK@uniPunct + \expandafter{\CJK@plane} + \ifCJK@% % punctuation character + \CJK@numbToHex{\CJK@gtemp}{#2} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{\CJK@@@enc}{\CJK@plane}{\CJK@gtemp} + \ifCJK@ + \ifCJK@CJK@ + \CJK@nobreakglue + \fi + \else + \ifCJK@hangul@ + \discretionary{}{}{} + \else + \CJKglue + \fi + \fi + \fi + \ifCJK@CJK@ + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + \fi + + \CJKtemp + + \CJK@testPrePunct{\CJK@@@enc}{\CJK@plane}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \else% % not a punctuation character + \CJK@testLastCJK + \ifCJK@ + \ifCJK@hangul@ + \discretionary{}{}{} + \else + \CJKglue + \fi + \fi + \ifCJK@CJK@ + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + \fi + \CJKtemp + \CJK@CJK + \fi + \fi} + + \CJK@ignorespaces} + + +% the following commands are needed for UTF-8 encoding to select the proper +% intercharacter glue. + +\newif\ifCJK@CJK@ +\newif\ifCJK@hangul@ +\newif\ifCJK@latin@ + +\newcommand{\CJKCJKchar}{ + \CJK@global\CJK@CJK@true + \CJK@global\CJK@hangul@false + \CJK@global\CJK@latin@false} + +\newcommand{\CJKhangulchar}{ + \CJK@global\CJK@CJK@false + \CJK@global\CJK@hangul@true + \CJK@global\CJK@latin@false} + +\newcommand{\CJKlatinchar}{ + \CJK@global\CJK@CJK@false + \CJK@global\CJK@hangul@false + \CJK@global\CJK@latin@true} + +\CJKCJKchar + + +% the next commands control mapping of half-width katakana to full-width +% glyphs within SJIS encoding. + +\newif\ifCJK@hwkatakana@ + +\newcommand{\CJKhwkatakana}{\CJK@global\CJK@hwkatakana@true} + +\newcommand{\CJKnohwkatakana}{\CJK@global\CJK@hwkatakana@false} + +\CJKhwkatakana + + +% you will find the innermost routines of the macros defined above in the +% xxx.chr files. These routines are +% +% \CJK@char, \CJK@charx, +% \CJK@altchar, \CJK@altcharx, +% \CJK@punctchar, \CJK@punctcharx, +% \CJK@sjischar, \CJK@sjispunctchar . + + +% we need to scan comma separated lists of character codes (represented as +% hexadecimal strings), testing whether a particular character is in the +% list. The macro \CJK@testInList sets the flag \ifCJK@ globally if true. +% Parameter #1 is the list, #2 the actual character code to test. +% +% see the documentation of the \ifnot@excluded macro in the doc package of +% the standard LaTeX2e distribution for a detailed explanation of the +% following tricky definitions. + +\newif\ifCJK@ + +\def\CJK@stop{\CJK@stop} + +\def\CJK@testInList#1#2{ + \def\CJK@tempa##1,#2,##2\CJK@stop{ + \def\CJK@tempb{##2} + \global\CJK@true + \ifx\CJK@tempb \@empty + \global\CJK@false + \fi} + \expandafter\CJK@tempa\expandafter,#1,#2,\CJK@stop} + + +% lists defined in CJK.enc for plane yy with encoding xx are assigned to +% global macros \CJK@xx@yy@prePunct and \CJK@xx@yy@postPunct. + +\def\CJK@prePunct#1#2#3{ + \expandafter\gdef\csname CJK@#1@#2@prePunct\endcsname{#3}} + +\def\CJK@postPunct#1#2#3{ + \expandafter\gdef\csname CJK@#1@#2@postPunct\endcsname{#3}} + + +% the next two functions scan the lists of punctuation characters of a +% particular plane which should not occur at the beginning or at the end +% of a line. They will be used in the xxx.chr files. Parameters are the +% encoding, the plane and the character to be tested. Again these macros +% raise or lower \ifCJK@. + +\def\CJK@testPrePunct#1#2#3{ + \expandafter\expandafter\expandafter + \CJK@testInList + \expandafter\csname CJK@#1@#2@prePunct\expandafter\endcsname + \expandafter{#3}} + +\def\CJK@testPostPunct#1#2#3{ + \expandafter\expandafter\expandafter + \CJK@testInList + \expandafter\csname CJK@#1@#2@postPunct\expandafter\endcsname + \expandafter{#3}} + + +% the macro \CJKenc changes the encoding inside of a CJK environment. It +% always uses the fontencoding defined with \CJKfontenc (this +% behaviour is intentionally different from the similar command pair +% \CJKfamily and \CJKencfamily). + +\DeclareRobustCommand{\CJKenc}[1]{ + \expandafter\ifx\csname CJK@#1@fontenc\endcsname \relax + \PackageError{CJK}{ + Encoding `#1' is not defined}{} + \fi + + \edef\CJK@temp{\csname CJK@#1@fontenc\endcsname} + + \expandafter\ifx\csname CJK@#1\CJK@temp @enc\endcsname \relax + \PackageError{CJK}{ + Encoding `#1\CJK@temp' is not defined}{} + \else + \CJK@global\edef\CJK@@@enc{#1} + \CJK@selectEnc + \fi} + +\edef\CJK@@@enc{} + +% to change a fontencoding yyy for a specific encoding xxx say +% \CJKfontenc{xxx}{yyy}. If you then change the encoding forth and back, +% this fontencoding is still valid. You will need this command only in +% cases where the fonts are not CJK-fontencoded, such as pmC or dnp +% fontencodings. +% +% if you define a new encoding `foo', you *must* supply the command +% `\CJKfontenc{foo}{}' (note the empty second parameter) since the +% encoding existence test relies on this. + +\DeclareRobustCommand{\CJKfontenc}[2]{ + \expandafter\CJK@global\expandafter\edef + \csname CJK@#1@fontenc\endcsname{#2} + \CJK@selectEnc} + +% \CJKfamily{xxx} selects the shape xxx for all encodings. It will override +% \CJKencfamily, i.e., if you change the encoding, the family will be +% the same. To reactivate \CJKencfamily, say `\CJKfamily{}'. +% +% For backward compatibility the macros \CJKshape and \CJKencshape are set +% to \CJKfamily and \CJKencfamily, respectively. + +\DeclareRobustCommand{\CJKfamily}[1]{ + \CJK@global\edef\CJK@globalfamily{#1} + \CJK@selectFamily} + +\edef\CJK@globalfamily{} + +% to change a family for a specific encoding xxx (and a font encoding yyy), +% use \CJKencfamily. If you then change the encoding forth and back, +% this family is still valid. This macro is especially useful with +% cjk-enc.el since it allows to change the encoding without the need to +% select a (possibly different) family each time. See the various +% encoding definitions in CJK.enc for the default values. +% +% note that it is equivalent to say \CJKencfamily[yyy]{xxx}{...} and +% \CJKencfamily{xxxyyy}{...}. + +\DeclareRobustCommand{\CJKencfamily}[3][]{ + \expandafter\CJK@global\expandafter\edef + \csname CJK@#2#1@family\endcsname{#3} + \CJK@selectFamily} + + +\let\CJKshape \CJKfamily +\let\CJKencshape \CJKencfamily + + +% the next commands select the actual family and encoding. + +\def\CJK@selFam{ + \edef\CJK@temp{\csname CJK@\CJK@@@enc @fontenc\endcsname} + + \ifx\CJK@globalfamily \@empty + \CJK@global\edef\CJK@family{ + \csname CJK@\CJK@@@enc\CJK@temp @family\endcsname} + \else + \CJK@global\edef\CJK@family{\CJK@globalfamily} + \fi} + + +% \CJK@@@enc is the encoding selected by the user, \CJK@enc will be really +% used. With the internal hook \CJK@@@xxx@hook we can modify \CJK@enc +% for the encoding xxx if necessary. With the hook \CJK@xxx@hook other +% packages can add stuff which should be executed immediately after the +% encoding has changed. + +\def\CJK@selEnc{ + \edef\CJK@temp{\csname CJK@\CJK@@@enc @fontenc\endcsname} + + \CJK@global\edef\CJK@enc{ + \csname CJK@\CJK@@@enc\CJK@temp @nfssenc\endcsname} + \csname CJK@@@\CJK@@@enc\CJK@temp @hook\endcsname + + \csname CJK@\CJK@@@enc\CJK@temp @enc\endcsname + \CJK@selectFamily + \csname CJK@\CJK@@@enc @hook\endcsname} + +% and here the user-visible macro to add something to the encoding hook. +% First parameter is the encoding, second parameter the data to be +% appended. + +\def\CJKaddEncHook#1#2{ + \expandafter\let\expandafter\CJK@temp \csname CJK@#1@hook\endcsname + \expandafter\def\expandafter\CJK@temp\expandafter{ + \CJK@temp #2} + \expandafter\let\csname CJK@#1@hook\endcsname \CJK@temp} + + +% we disable \CJK@selectFamily and \CJK@selectEnc until a CJK environment +% starts to avoid side effects while defining default values for +% encodings (outside of a CJK environment). + +\let\CJK@selectFamily \relax +\let\CJK@selectEnc \relax + + +% CJK.enc contains the \CJK@...@enc macros and the punctuation lists. + +\input CJK.enc + + +% the macros \CJK@testLastKern and \CJK@testLastCJK check the last kern and +% raise or lower \ifCJK@. + +\edef\CJK@kern{\kern -2sp\kern 2sp} +\edef\CJK@CJK{\kern -1sp\kern 1sp} + +\let\CJKkern \CJK@kern + +% does previous CJK character request nonbreakable glue? + +\def\CJK@testLastKern{ + \global\CJK@false + \ifnum\lastkern = \tw@ + \global\CJK@true + \fi + \ifnum\lastkern = 5% % request from ruby.sty + \global\CJK@true + \fi} + +% is previous character a CJK character? + +\def\CJK@testLastCJK{ + \global\CJK@false + \ifnum\lastkern = \@ne + \global\CJK@true + \fi} + + +% we only check for lower and upper bounds, not for possible gaps in the +% range of the second byte, as it happens for Big5 and SJIS encoding. + +\def\CJK@err{ + \PackageError{CJK}{ + Invalid character code}{ + The second byte of the CJK code is out of range.\MessageBreak + Do you use the right encoding scheme?}} + +\def\CJK@errx{ + \PackageError{CJK}{ + Invalid character code}{ + The third byte of the CJK code is out of range.\MessageBreak + Do you use the right encoding scheme?}} + +\def\CJK@errxx{ + \PackageError{CJK}{ + Invalid character code}{ + The CJK code is out of range for this font encoding.\MessageBreak + Do you use the right encoding scheme?}} + + +% we now define a set of new size functions: +% `CJK', `sCJK', `CJKfixed', and `sCJKfixed' are similar to `' (empty), +% `s', `fixed', and `sfixed' except that the value of \CJK@plane is +% appended to \font@name. +% +% `CJKsub', `CJKssub' are similar to `sub' and `ssub' except that the font +% substitution warning appears only once per CJK fontset. +% +% `CJKb', `sCJKb', `CJKfixedb', and `sCJKfixedb' are absolutely identical +% to the functions without the final `b'; they just exist to overcome +% a special feature of LaTeX: +% +% consider this example: +% +% \DeclareFontShape{C00}{kai}{m}{n}{<-> CJK * ntukai}{} +% \DeclareFontShape{C00}{kai}{bx}{n}{<-> CJK * ntukai}{\CJKbold} +% +% the internal name of the macro which executes the last parameter +% (\CJKbold) is identical to the fifth parameter (without spaces), in +% this case `<->CJK*ntukai' -- the same name for both font shapes! This +% means that the latter font shape definition overwrites the former. +% Thus we have to write +% +% \DeclareFontShape{C00}{kai}{bx}{n}{<-> CJKb * ntukai}{\CJKbold} +% +% to get a different internal macro name. + +\def\CJK@curr@fontshape{CJK@\f@encoding/\f@family/\f@series/\f@shape} + +\DeclareSizeFunction{CJK}{\CJK@empty\@font@warning} +\DeclareSizeFunction{CJKb}{\CJK@empty\@font@warning} +\DeclareSizeFunction{sCJK}{\CJK@empty\@font@info} +\DeclareSizeFunction{sCJKb}{\CJK@empty\@font@info} + +\def\CJK@empty#1{ + \@tempdimb \f@size\p@ + \ifx\optional@arg \@empty + \else + \expandafter\ifx + \csname CJK@\mandatory@arg/\f@size/\the\@tempdimb\endcsname \relax + \@tempdimb \optional@arg\@tempdimb + #1{Font\space shape\space `\curr@fontshape'\space + will\space be\MessageBreak + scaled\space to\space size\space \the\@tempdimb} + \expandafter + \gdef\csname CJK@\mandatory@arg/\f@size/\the\@tempdimb\endcsname{} + \fi + \fi + \edef\external@font{ + \mandatory@arg\CJK@plane\space at \the\@tempdimb} + \xdef\font@name{ + \csname \curr@fontshape/\f@size/\CJK@plane\endcsname} + \expandafter\global\expandafter\let + \csname \CJK@curr@fontshape\expandafter\endcsname + \csname \curr@fontshape\endcsname} + +\DeclareSizeFunction{CJKfixed}{\CJK@fixed\@font@warning} +\DeclareSizeFunction{CJKfixedb}{\CJK@fixed\@font@warning} +\DeclareSizeFunction{sCJKfixed}{\CJK@fixed\@font@info} +\DeclareSizeFunction{sCJKfixedb}{\CJK@fixed\@font@info} + +\def\CJK@fixed#1{ + \ifx\optional@arg \@empty + \edef\external@font{ + \mandatory@arg\CJK@plane} + \else + \edef\external@font{ + \mandatory@arg\CJK@plane\space at \optional@arg pt} + \fi + \xdef\font@name{ + \csname \curr@fontshape/\f@size/\CJK@plane\endcsname} + #1{External\space font\space `\external@font'\space loaded\space + for\space size\MessageBreak + <\f@size>} + \expandafter\global\expandafter\let + \csname \CJK@curr@fontshape\expandafter\endcsname + \csname \curr@fontshape\endcsname} + +\DeclareSizeFunction{CJKsub}{\CJK@sub\@font@warning} +\DeclareSizeFunction{CJKssub}{\CJK@sub\@font@info} + +\def\CJK@sub#1{ + \edef\mandatory@arg{\f@encoding/\mandatory@arg} + \begingroup + \expandafter\split@name\mandatory@arg/\@nil + \try@load@fontshape + \endgroup + \let\f@user@size\f@size + \expandafter\ifx\csname\mandatory@arg\endcsname \relax + \errmessage{No\space declaration\space for\space shape\space + \mandatory@arg} + \error@fontshape + \else + \expandafter\ifx\csname CJK@\mandatory@arg/\f@size\endcsname \relax + #1{Font\space shape\space `\curr@fontshape'\MessageBreak + in\space size\space <\f@size>\space not\space available.\MessageBreak + Font\space shape\space `\mandatory@arg'\MessageBreak + tried\space instead} + \expandafter\gdef\csname CJK@\mandatory@arg/\f@size\endcsname{} + \fi + \expandafter\split@name\mandatory@arg/\@nil + \fi + \edef\f@size{\f@user@size} + \get@external@font + \do@subst@correction + \expandafter\global\expandafter\let + \csname \CJK@curr@fontshape\expandafter\endcsname + \csname \curr@fontshape\endcsname} + +% the following size functions are needed for the DNP fonts in JIS encoding. +% `DNPgen' is similar to `gen' but ignores the optional argument. +% `DNP' is similar to `gen' but the optional argument is used to +% indicate the designsize. +% +% see the comment above for an explanation of DNPb and DNPgenb. + +\DeclareSizeFunction{DNPgen}{\CJK@DNPgen} +\DeclareSizeFunction{DNPgenb}{\CJK@DNPgen} + +\def\CJK@DNPgen{ + \edef\external@font{ + \mandatory@arg\CJK@plane\f@size} + \xdef\font@name{ + \csname \curr@fontshape/\f@size/\CJK@plane\endcsname} + \expandafter\global\expandafter\let + \csname \CJK@curr@fontshape\expandafter\endcsname + \csname \curr@fontshape\endcsname} + +\DeclareSizeFunction{DNP}{\CJK@DNP} +\DeclareSizeFunction{DNPb}{\CJK@DNP} + +\def\CJK@DNP{ + \@tempdimb \f@size\p@ + \edef\external@font{ + \mandatory@arg\CJK@plane\optional@arg\space at \the\@tempdimb} + \xdef\font@name{ + \csname \curr@fontshape/\f@size/\CJK@plane\endcsname} + \expandafter\global\expandafter\let + \csname \CJK@curr@fontshape\expandafter\endcsname + \csname \curr@fontshape\endcsname} + + +% we also must redefine \pickup@font to append \CJK@plane to the font name +% if the particular subfont is already known. + +\def\pickup@font{ + \CJK@ifundefined\CJK@plane + {\expandafter\ifx\font@name \relax% % old definition + \define@newfont + \fi} + {\expandafter% % CJK extension + \ifx\csname \curr@fontshape/\f@size/\CJK@plane\endcsname \relax + \define@newfont + \else + \xdef\font@name{ + \csname \curr@fontshape/\f@size/\CJK@plane\endcsname} + \fi}} + +% for older versions of LaTeX2e command we must redefine \selectfont. +% It will now reset \ifCJK@bold@ and calls \CJK@curr@fontshape +% additionally (if it exists) to execute the loading-setting +% parameter of \DeclareFontShape each time we switch to this font. +% \CJK@curr@fontshape has been defined by the above size functions. +% For newer versions of LaTeX2e it is sufficient to set a hook for +% \selectfont. +% +% for compatibility with older versions of LaTeX2e we provide a +% definition of \IfFormatAtLeastTF. + +\def\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} + +\IfFormatAtLeastTF{2020-10-01} + {\AddToHook{selectfont}{ + \expandafter + \ifx\csname CJK@\curr@fontshape\endcsname \relax + \else + \CJK@bold@false + \csname CJK@\curr@fontshape\endcsname + \fi}} + {\DeclareRobustCommand{\selectfont}{ + \ifx\f@linespread \baselinestretch + \else + \set@fontsize\baselinestretch\f@size\f@baselineskip + \fi + \xdef\font@name{\csname\curr@fontshape/\f@size\endcsname} + \pickup@font + \font@name + \expandafter% % CJK extension + \ifx\csname CJK@\curr@fontshape\endcsname \relax + \else + \CJK@bold@false + \csname CJK@\curr@fontshape\endcsname + \fi + \size@update + \enc@update}} + + +% additional vertical and horizontal information for a font is stored in +% files with the extension `.fdx'. We extend LaTeX's +% \try@load@fontshape@ macro to load them. +% +% the macros \CJKhdef, \CJKvdef, \CJKhlet and \CJKvlet should be used to +% handle commands in `.fdx' files. + +\def\CJK@load@fdx{ + \expandafter\ifx\csname \f@encoding+\f@family+x\endcsname \relax + \global\expandafter\let\csname \f@encoding+\f@family+x\endcsname \@empty + \def\CJKhdef##1##2{ + \expandafter\gdef\csname \CJK@enc/\CJK@family/##1/h\endcsname{##2}} + \def\CJKhlet##1##2{ + \edef\reserved@a{\CJK@enc/\CJK@family/##1/h} + \edef\reserved@b{\CJK@enc/\CJK@family/##2/h} + \global\expandafter\let + \csname\reserved@a\expandafter\endcsname \csname\reserved@b\endcsname} + \def\CJKvdef##1##2{ + \expandafter\gdef\csname \CJK@enc/\CJK@family/##1/v\endcsname{##2}} + \def\CJKvlet##1##2{ + \edef\reserved@a{\CJK@enc/\CJK@family/##1/v} + \edef\reserved@b{\CJK@enc/\CJK@family/##2/v} + \global\expandafter\let + \csname\reserved@a\expandafter\endcsname \csname\reserved@b\endcsname} + \edef\reserved@a{ + \lowercase{\noexpand\InputIfFileExists{\f@encoding\f@family.fdx}}} + \reserved@a{}{} + \fi} + +\expandafter\def\expandafter\try@load@fontshape\expandafter{ + \try@load@fontshape + \CJK@load@fdx} + + +% \CJKglue defines the stretchability of CJK characters. + +\newcommand{\CJKglue}{\hskip \z@ \@plus .08\baselineskip} + +\def\CJK@nobreakglue{ + \nobreak + \CJKglue + \nobreak} + +% if the `verbatim' package is loaded it is possible to improve the output +% automatically, namely, to avoid breaking of overfull lines in a +% verbatim environment. The following command will install a hook to +% suppress insertion of glue between CJK glyphs. MULEenc.sty will extend +% it for Thai glyphs. + +\def\CJK@verbatim{ + \addto@hook{\every@verbatim}{ + \renewcommand{\CJKglue}{}}} +\CJK@ifundefined\mule@verbatim + {\mule@verbatim{}} + {} + +\def\CJKverbatim{ + \mule@verbatim + \CJK@verbatim} + + +% increasing \CJKtolerance will allow more space between Hangul words. + +\newcommand{\CJKtolerance}{400} + + +% \CJKtilde changes the definition of the active `~' character to embed +% non-CJK words into CJK text. The horizontal space defined here has +% a smaller width than an ordinary space character and is breakable. +% It will suppress spaces afterwards. +% The original definition will be preserved within \nbs, which is +% a shorthand for the LaTeX command \nobreakspace. +% +% \standardtilde is the opposite command. + +\let\nbs \nobreakspace + +\DeclareRobustCommand{\CJKtilde}{ + \CJK@global\def~{\hspace{0.25em plus 0.125em minus 0.08em}\ignorespaces}} +\DeclareRobustCommand{\standardtilde}{ + \CJK@global\def~{\nobreakspace{}}} + + +% \CJKspace and \CJKnospace enables the user to switch between a CJK and a +% CJK* environment without leaving the actual environment: +% +% \CJKnospace switches from CJK to CJK* +% \CJKspace switches from CJK* to CJK +% +% the definitions are in MULEenc.sty also. + +\DeclareRobustCommand{\CJKspace}{ + \CJK@global\let\CJK@ignorespaces \@empty} +\DeclareRobustCommand{\CJKnospace}{ + \CJK@global\let\CJK@ignorespaces \ignorespaces} + + +% \CJKindent sets \parindent to two ideographic spaces. \CJK@spaceChar +% is defined in CJK.enc for all encodings. + +\newbox\CJK@indent + +\providecommand{\CJKindent}{ + \setbox\CJK@indent\hbox{\CJK@spaceChar\CJK@spaceChar} + \parindent\wd\CJK@indent +} + + +% make all characters possibly used active so they can become macros. + +\def\CJK@makeActive{ + \@tempcnta "080\relax + \loop + \CJK@active\catcode\@tempcnta \active + \ifnum\@tempcnta < "0FE\relax + \advance\@tempcnta \@ne + \repeat} + +\def\CJK@makeInactive{ + \@tempcnta "080\relax + \loop + \CJK@active\catcode\@tempcnta 12\relax + \ifnum\@tempcnta < "0FE\relax + \advance\@tempcnta \@ne + \repeat} + + +% the following macro is a signature for `CJKspace.sty'. + +\def\CJK@@@{} + + +% we assign to each active character ^^xx the macro \CJK@XX (if expansion +% occurs); this will be done in the .bdg files. Then the various .enc +% files define \CJK@.. (using \CJK@namegdef) with encoding-specific +% macros. + +\def\CJK@namedef#1{ + \CJK@active\def#1{ + \CJK@@@ + \ifx\protect \@typeset@protect + \string #1 + \else + \noexpand #1 + \fi}} + +\def\CJK@namepdef#1{ + \CJK@active\def#1{ + \CJK@@@ + \ifx\protect \@typeset@protect + \expandafter\expandafter\expandafter\CJK@X + \expandafter\string\expandafter#1 + \else + \noexpand #1 + \fi}} + +\def\CJK@nameppdef#1{ + \CJK@active\def#1{ + \CJK@@@ + \ifx\protect \@typeset@protect + \expandafter\expandafter\expandafter\CJK@XX + \expandafter\string\expandafter#1 + \else + \noexpand #1 + \fi}} + +\def\CJK@namepppdef#1{ + \CJK@active\def#1{ + \CJK@@@ + \ifx\protect \@typeset@protect + \expandafter\expandafter\expandafter\CJK@XXX + \expandafter\string\expandafter#1 + \else + \noexpand #1 + \fi}} + +\def\CJK@nameppppdef#1{ + \CJK@active\def#1{ + \CJK@@@ + \ifx\protect \@typeset@protect + \expandafter\expandafter\expandafter\CJK@XXXX + \expandafter\string\expandafter#1 + \else + \noexpand #1 + \fi}} + + +\def\CJK@X#1{ + \csname CJK@\number `#1\endcsname\CJK@ignorespaces} + +% two possibilities: +% either \CJK@XX <arg1> <arg2> +% or \CJK@XX <arg1> \protect <arg2> +\def\CJK@XX#1#2{ + \ifx #2\protect + \expandafter\CJK@XXp\expandafter#1 + \else + \csname CJK@\number `#1\endcsname{`#2}\CJK@ignorespaces + \fi} +\def\CJK@XXp#1#2{ + \csname CJK@\number `#1\endcsname{`#2}\CJK@ignorespaces} + +% two possibilities: +% either \CJK@XXX <arg1> <arg2> <arg3> +% or \CJK@XXX <arg1> \protect <arg2> \protect <arg3> +\def\CJK@XXX#1#2#3{ + \ifx #2\protect + \expandafter\CJK@XXXp\expandafter#1#3 + \else + \csname CJK@\number `#1\endcsname{`#2}{`#3}\CJK@ignorespaces + \fi} +\def\CJK@XXXp#1#2#3#4{ + \csname CJK@\number `#1\endcsname{`#2}{`#4}\CJK@ignorespaces} + +% two possibilities: +% either \CJK@XXXX <arg1> <arg2> <arg3> <arg4> +% or \CJK@XXXX <arg1> \protect <arg2> \protect <arg3> \protect <arg4> +\def\CJK@XXXX#1#2#3#4{ + \ifx #2\protect + \expandafter\CJK@XXXXp\expandafter#1#3 + \else + \csname CJK@\number `#1\endcsname{`#2}{`#3}{`#4}\CJK@ignorespaces + \fi} +\def\CJK@XXXXp#1#2#3#4#5{ + \csname CJK@\number `#1\endcsname{`#2}{`#3}{`#5}\CJK@ignorespaces} + + +% these auxiliary macros reset \lccode's and \uccode's of characters +% 0x80-0xFF. This overrides the values set by LaTeX2e. + +\def\CJK@upperReset{ + \@tempcnta "080\relax + \loop + \CJK@local\uccode\@tempcnta \z@ + \ifnum\@tempcnta < "0FF\relax + \advance\@tempcnta \@ne + \repeat} + +\def\CJK@lowerReset{ + \@tempcnta "080\relax + \loop + \CJK@local\lccode\@tempcnta \z@ + \ifnum\@tempcnta < "0FF\relax + \advance\@tempcnta \@ne + \repeat} + + +% finally come the CJK environments: +% +% CJK* will swallow spaces after a CJK character, whereas CJK will not. +% +% the first parameter selects the CJK encoding, the second the CJK font +% family; the optional argument selects the fontencoding. +% +% each time a CJK or CJK* environment will be opened the hook \CJKhook will +% be called (this feature is used by cjk-enc.el). +% +% always end the line after saying \begin{CJK} or \begin{CJK*}; +% any characters on the same line will have already been read with +% their non-CJK meanings. + +\def\CJK@envStart#1#2#3{ + \CJK@upperReset + \ifCJK@lowercase@ + \CJK@lowerReset + \fi + + \CJK@makeActive + + % we enable \CJK@selectFamily and \CJK@selectEnc. + + \CJK@global\let\CJK@selectFamily \CJK@selFam + \CJK@global\let\CJK@selectEnc \CJK@selEnc + + \def\CJK@@@enc{#2} + \ifx\CJK@@@enc \@empty + \PackageInfo{CJK}{ + no encoding parameter given,\MessageBreak + waiting for \protect\CJKenc\space commands} + \else + \CJKenc{#2} + \fi + \CJKfontenc{#2}{#1} + \CJKfamily{#3} + \def\CJK@series{\f@series} + \def\CJK@shape{\f@shape} + + \csname CJKhook\endcsname} + +\def\CJK@envEnd{ + \ifx\CJK@global \global + \CJK@makeInactive + \CJK@global\let\CJK@selectFamily \relax + \CJK@global\let\CJK@selectEnc \relax + \fi} + +\newenvironment{CJK}[3][]{ + \CJKspace + \CJK@envStart{#1}{#2}{#3} + }{ + \CJK@envEnd} + +\newenvironment{CJK*}[3][]{ + \CJKnospace + \CJK@envStart{#1}{#2}{#3} + }{ + \CJK@envEnd} + + +% \CJKcaption{caption} will test whether we are in a CJK environment; if yes, +% it tries to load `<caption>.cpx' (this is <caption>.cap in preprocessed +% mode). + +\newcommand{\CJKcaption}[1]{ + \ifx\CJK@actualBinding \@empty + \PackageError{CJK}{ + You must be inside of a CJK environment to use \protect\CJKcaption}{} + \else + \makeatletter + \InputIfFileExists{#1.cpx}{}{ + \PackageError{CJK}{ + Can't find #1.cpx}{ + The default captions are used if you continue.}} + \makeatother + \fi} + + +% the writing direction. + +\def\CJK@direction{h} + + +% reset endline character. + +\endlinechar `\^^M + + +% in case some customization is necessary it should be done in the +% configuration file `CJK.cfg' and *not* here. + +\InputIfFileExists{CJK.cfg} + {\typeout{^^J + *****************************************^^J + * Local configuration file CJK.cfg used *^^J + *****************************************^^J}} + {} + + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CJKfntef.sty b/language/chinese/CJK/cjk-4.8.5/texinput/CJKfntef.sty new file mode 100644 index 0000000000..045380abdf --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CJKfntef.sty @@ -0,0 +1,509 @@ +% This is the file CJKfntef.sty of the CJK package +% extending CJKulem.sty with more font effects +% +% created by Wenchang Sun <sunwch@hotmail.com> +% Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) +% +% Macros: +% \CJKunderdot{...} +% \CJKunderline[*]{...} +% \CJKunderdblline[*]{...} +% \CJKunderwave[*]{...} +% \CJKsout[*]{...} +% \CJKxout[*]{...} +% \varCJKunderline +% \CJKunderanyline +% \CJKunderanysymbol +% +% The following nesting combinations are allowed: +% +% \CJKunderdot{...\CJKunderline[*]{...}...} +% \CJKunderdot{...\CJKunderdblline[*]{...}...} +% \CJKunderdot{...\CJKunderwave[*]{...}...} +% \CJKunderdot{...\CJKsout[*]{...}...} +% \CJKunderdot{...\CJKxout[*]{...}...} +% +% \CJKunderline[*]{...\CJKunderdot{...}...} +% \CJKunderdblline[*]{...\CJKunderdot{...}...} +% \CJKunderwave[*]{...\CJKunderdot{...}...} +% \CJKsout[*]{...\CJKunderdot{...}...} +% \CJKxout[*]{...\CJKunderdot{...}...} +% +% Environment: +% CJKfilltwosides +% +% +% Here an example which shows how to use \CJKunderanysymbol. +% +% \def\varCJKunderdot{% +% \CJKunderanysymbol{0.5em}{$\cdot$}% +% } +% + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\NeedsTeXFormat{LaTeX2e}[1998/06/01] +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesPackage{CJKfntef}[\filedate\space\fileversion] + +\RequirePackage{CJK} +\RequirePackage{CJKulem} + + +\endlinechar \m@ne + + +\ifx\CJKpunctsymbol\undefined + \PackageWarning{CJKfntef}{ + You need to download the last version of the CJK package\MessageBreak + to keep CJK punctuation from being underdotted} + \let\CJKpunctsymbol\CJKsymbol +\fi + + +\newskip\CJK@fntefSkip +\newcount\CJK@nest +\newdimen\CJK@fntefDimen +\newbox\CJK@underdotBox +\newbox\CJK@ULbox + +\newif\ifCJK@UL@ +\CJK@UL@false +\newif\ifCJK@sxout@ +\CJK@sxout@false + + +\newcommand{\CJKunderdotbasesep}{0.05em} +\newcommand{\CJKunderdotsep}{0.04em} +\newcommand{\CJKunderlinebasesep}{0.20em} +\newcommand{\CJKunderlinesep}{0.07em} +\newcommand{\CJKunderdbllinebasesep}{0.20em} +\newcommand{\CJKunderdbllinesep}{0.17em} +\newcommand{\CJKunderwavebasesep}{0.20em} +\newcommand{\CJKunderwavesep}{0.00em} +\newcommand{\CJKsoutheight}{0.35em} + +\let\CJKf@global\global + +\ifx\color\undefined + \def\CJKunderdotcolor{} + \def\CJKunderwavecolor{} + \def\CJKunderlinecolor{} + \def\CJKunderdbllinecolor{} + \def\CJKsoutcolor{} + \def\CJKxoutcolor{} +\else + \def\CJKunderdotcolor{\color{red}} + \def\CJKunderwavecolor{\color{blue}} + \def\CJKunderlinecolor{\color{blue}} + \def\CJKunderdbllinecolor{\color{blue}} + \def\CJKsoutcolor{\color{red}} + \def\CJKxoutcolor{\color{blue}} +\fi + + +% +% \CJKunderdot: +% Add a dot under every CJK non-punctuation character. The dot position +% can be controlled by redefining \CJKunderdotsep (for nesting) and +% \CJKunderdotbasesep. +% +% The dot color can be changed by redefining \CJKunderdotcolor. +% +\def\CJK@underdotSkip{\z@} + +\def\CJK@preUnderdot{ + \ifnum\CJK@nest = \z@ + \CJKf@global\advance\CJK@fntefSkip \CJKunderdotbasesep + \fi + \CJKf@global\advance\CJK@nest \@ne + + \xdef\CJK@underdotSkip{\the\CJK@fntefSkip} + \CJKf@global\advance\CJK@fntefSkip \CJKunderdotsep + + \CJKf@global\setbox\CJK@underdotBox\hbox{{ + \CJKunderdotcolor + {$\cdot$}}} + \CJKf@global\advance\CJK@fntefSkip \ht\CJK@underdotBox + \CJKf@global\advance\CJK@fntefSkip \dp\CJK@underdotBox} + +\def\CJK@postUnderdot{ + \CJKf@global\advance\CJK@fntefSkip -\CJKunderdotsep + \CJKf@global\advance\CJK@fntefSkip -\ht\CJK@underdotBox + \CJKf@global\advance\CJK@fntefSkip -\dp\CJK@underdotBox + \CJKf@global\def\CJK@underdotSkip{\z@} + + \CJKf@global\advance\CJK@nest \m@ne + \ifnum\CJK@nest = \z@ + \CJKf@global\advance\CJK@fntefSkip -\CJKunderdotbasesep + \fi} + + +\ifcsname XeTeXinterchartokenstate\endcsname + \def\XeTeX@CJKfntef@hook{ + \XeTeXinterchartokenstate=0} +\else + \let\XeTeX@CJKfntef@hook\relax +\fi + +\newcommand{\CJKunderdot}[1]{ + \CJK@preUnderdot + + \CJKf@global\let\CJK@underdotSymbol \CJKsymbol + \CJKf@global\def\CJKsymbol##1{ + \CJK@underdotSymbol{##1} + + \settowidth\CJK@fntefDimen{{ + \XeTeX@CJKfntef@hook + \CJK@underdotSymbol{##1}}} + \leavevmode + \rlap{ + \vbox to \z@ { + \vskip\CJK@underdotSkip + \hbox to \z@ { + \hskip -\CJK@fntefDimen + \hss + \copy\CJK@underdotBox + \hss} + \vss}}} + #1 + \CJKf@global\let\CJKsymbol \CJK@underdotSymbol + + \CJK@postUnderdot + \ignorespaces} + + +% +% Auxiliary macros needed by \CJKunderline and friends. +% +\def\UL@CJKpunctnobreakglue{ + \ifx\ \LA@space + \LA@CJKglue + \else + \egroup + \UL@stop + \UL@start + \bgroup + \fi} + +\def\CJK@fntefSave{ + \CJKf@global\let\UL@UL@CJKnobreakglue \UL@CJKnobreakglue + \CJKf@global\let\UL@CJKsymbol \CJKsymbol + \CJKf@global\let\UL@CJKpunctsymbol \CJKpunctsymbol} + +\def\CJK@fntefRestore{ + \CJKf@global\let\UL@CJKnobreakglue \UL@UL@CJKnobreakglue + \CJKf@global\let\CJKsymbol \UL@CJKsymbol + \CJKf@global\let\CJKpunctsymbol \UL@CJKpunctsymbol} + +\def\CJK@preUL{ + \ifCJK@UL@ + \PackageError{CJKfntef} + {Nesting error} + {Nesting \string\CJKunderwave[*], \string\CJKunderline[*], + \string\CJKsout[*], \string\CJKxout[*],\MessageBreak + or \string\CJKunderdblline[*] is not supported.} + \else + \CJKf@global\CJK@UL@true + \fi + \ifCJK@sxout@ + \CJKf@global\def\CJK@ULskip{\z@} + \else + \ifnum\CJK@nest = \z@ + \CJKf@global\advance\CJK@fntefSkip \CJK@ULbasesep + \fi + \CJKf@global\advance\CJK@nest \@ne + + \CJKf@global\advance\CJK@fntefSkip \ht\CJK@ULbox + \CJKf@global\advance\CJK@fntefSkip \dp\CJK@ULbox + + \xdef\CJK@ULskip{\the\CJK@fntefSkip} + \CJKf@global\advance\CJK@fntefSkip \CJK@ULsep + \fi} + +\def\CJK@postUL{ + \CJKf@global\CJK@UL@false + + \ifCJK@sxout@ + \CJKf@global\CJK@sxout@false + \else + \CJKf@global\advance\CJK@fntefSkip -\CJK@ULsep + \CJKf@global\advance\CJK@fntefSkip -\ht\CJK@ULbox + \CJKf@global\advance\CJK@fntefSkip -\dp\CJK@ULbox + + \CJKf@global\advance\CJK@nest \m@ne + \ifnum\CJK@nest = \z@ + \CJKf@global\advance\CJK@fntefSkip -\CJK@ULbasesep + \fi + \fi} + +\def\CJK@UL{ + \CJK@preUL + \CJK@fntefSave + + \CJKf@global\let\UL@CJKnobreakglue \UL@CJKpunctnobreakglue + \CJKf@global\def\CJKsymbol{ + \CJKf@global\def\UL@leadtype{\leaders\copy\ULC@box} + \UL@CJKsymbol} + \CJKf@global\def\CJKpunctsymbol{ + \CJKf@global\def\UL@leadtype{} + \UL@CJKpunctsymbol} + + \bgroup + \markoverwith{ + \lower\CJK@ULskip\copy\CJK@ULbox} + \aftergroup\CJK@fntefRestore + \aftergroup\CJK@postUL + \ULon} + +\def\CJK@@UL{ + \CJK@preUL + \bgroup + \markoverwith{ + \lower\CJK@ULskip\copy\CJK@ULbox} + \aftergroup\CJK@postUL + \ULon} + + +% +% \CJKunderwave*: +% The same as \uwave except that the wavy line is colored (you can change +% the color by redefining \CJKunderwavecolor), and the position can be +% controlled by redefining \CJKunderwavesep (for nesting) and +% \CJKunderwavebasesep. +% +% \CJKunderwave: +% The same as \CJKunderwave* but ignoring CJK punctuation characters. +% +\newcommand{\CJKunderwave}{ + \CJKf@global\let\CJK@ULsep \CJKunderwavesep + \CJKf@global\let\CJK@ULbasesep \CJKunderwavebasesep + \CJKf@global\setbox\CJK@ULbox\hbox{{ + \CJKunderwavecolor + \sixly + \char 58}} + + \@ifstar\CJK@@UL\CJK@UL} + + +% +% \CJKunderline*: +% The same as \uline except that the line is colored (you can change the +% color by redefining \CJKunderlinecolor), and the position can be +% controlled by redefining \CJKunderlinesep (for nesting) and +% \CJKunderlinebasesep. +% +% \CJKunderline: +% The same as \CJKunderline* but ignoring CJK punctuation characters. +% +\newcommand{\CJKunderline}{ + \CJKf@global\let\CJK@ULsep \CJKunderlinesep + \CJKf@global\let\CJK@ULbasesep \CJKunderlinebasesep + \CJKf@global\setbox\CJK@ULbox\hbox{{ + \CJKunderlinecolor + \vtop{\hrule \@height \ULthickness \@width .2em}}} + + \@ifstar\CJK@@UL\CJK@UL} + + +% +% \CJKunderdblline[*]: +% The same as \CJKunderline[*] except that two lines are used for +% underlining. +% +\newcommand{\CJKunderdblline}{ + \CJKf@global\let\CJK@ULsep \CJKunderdbllinesep + \CJKf@global\let\CJK@ULbasesep \CJKunderdbllinebasesep + + \CJKf@global\setbox\CJK@ULbox\hbox{{ + \CJKunderdbllinecolor + \vtop{ + \kern -.07em + \hrule \@height\ULthickness \@width .2em + \kern 1.1\p@ + \hrule}}} + + \@ifstar\CJK@@UL\CJK@UL} + + +% +% \CJKsout*: +% The same as \sout except that the line is colored (you can change the +% color by redefining \CJKsoutcolor), and the position can be controlled +% by redefining \CJKsoutheight. +% +% \CJKsout: +% The same as \CJKsout* but ignoring CJK punctuation characters. +% +\def\CJKsout{ + \CJKf@global\CJK@sxout@true + \CJKf@global\setbox\CJK@ULbox\hbox{{ + \CJKsoutcolor + \vtop{ + \kern -\CJKsoutheight + \hrule \@height\ULthickness \@width .2em}}} + + \@ifstar\CJK@@UL\CJK@UL} + + +% +% \CJKxout*: +% The same as \xout except using colored `/' (you can change the color +% by redefining \CJKxoutcolor). +% +% \CJKxout: +% The same as \CJKxout* but ignoring CJK punctuation characters. +% +\def\CJKxout{ + \CJKf@global\CJK@sxout@true + \CJKf@global\setbox\CJK@ULbox\hbox{{ + \kern -0.1em + {\CJKxoutcolor $/$} + \kern -0.1em}} + + \@ifstar\CJK@@UL\CJK@UL} + + +% +% CJKfilltwosides environment: +% Align CJK characters to fill two sides. +% +% Usage: +% \begin{CJKfilltwosides}{width} +% first line \\ +% second line \\ +% ... \\ +% last line +% \end{CJKfilltwosides} +% +\newif\ifCJK@fillbegin@ +\CJKf@global\CJK@fillbegin@false +\newif\ifCJK@filltwosides@ +\CJKf@global\CJK@filltwosides@false + +\newenvironment{CJKfilltwosides}[1]{ + \leavevmode + \vbox\bgroup + \CJKf@global\CJK@filltwosides@true + \CJKf@global\let\CJK@filltwosidesSymbol \CJKsymbol + + \def\CJK@ftscr{ + \egroup + \CJKf@global\CJK@fillbegin@false + \hbox to #1\bgroup + \ignorespaces} + + \let\\ \CJK@ftscr + + \def\CJKsymbol##1{ + \ifCJK@fillbegin@ + \hfill + \CJK@filltwosidesSymbol{##1} + \else + \CJK@filltwosidesSymbol{##1} + \CJKf@global\CJK@fillbegin@true + \fi} + + \hbox to #1\bgroup + \ignorespaces + }{ + \egroup + \egroup + + \CJKf@global\let\CJKsymbol \CJK@filltwosidesSymbol + \CJKf@global\CJK@fillbegin@false + \CJKf@global\CJK@filltwosides@false} + + +% +% \varCJKunderline: +% The same as \CJKunderline but leaving spaces between two consecutive +% \varCJKunderline calls. The separation on the left and right can be +% controlled by redefining \CJKulineleftskip and \CJKulinerightskip, +% respectively. +% +\def\CJKulineleftskip{0.2em} +\def\CJKulinerightskip{0.2em} + +\def\varCJKunderline#1{ + {\null + \hskip\CJKulineleftskip} + \CJKunderline{ + {\hskip-\CJKulineleftskip} + #1 + {\hskip-\CJKulinerightskip}} + {\hskip\CJKulinerightskip}} + + +% +% \CJKunderanyline: +% The same as \varCJKunderline but using a user-defined underline shape. +% The first argument gives the distance to the baseline, the second +% argument the object used for underlining. +% +\def\CJK@underanyline#1#2{ + \setbox\UL@box\hbox{{#2}} + \bgroup\markoverwith{\lower #1\copy\UL@box}\ULon} + +\def\CJKunderanyline#1#2#3{ + {\null + \hskip\CJKulineleftskip} + \CJK@underanyline{#1}{#2}{ + {\hskip-\CJKulineleftskip} + #3 + {\hskip-\CJKulinerightskip}} + {\hskip\CJKulinerightskip}} + + +% +% \CJKunderanysymbol: +% The same as \CJKunderdot but using a user-defined underline shape. +% The first argument gives the distance to the baseline, the second +% argument the object used for `underdotting'. +% +\newdimen\CJK@underanyskip + +\def\CJKunderanysymbol#1#2#3{{ + \CJK@underanyskip #1\relax + \setbox\CJK@underdotBox\hbox{{#2}} + \CJKf@global\let\CJK@underanysymbol\CJKsymbol + \CJKf@global\def\CJK@fntefglue{ + \CJKf@global\let\CJK@fntefglue\CJKglue} + \CJKf@global\def\CJKsymbol##1{ + \CJK@fntefglue + \CJK@underanysymbol{##1} + \leavevmode + \rlap{ + \lower \CJK@underanyskip + \hbox to \z@ { + \hskip -1em + \hss + \copy\CJK@underdotBox + \hss} + \hskip -1em} + \ignorespaces} + #3 + \CJKf@global\let\CJKsymbol\CJK@underanysymbol}} + + +\endlinechar `\^^M + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CJKnumb.sty b/language/chinese/CJK/cjk-4.8.5/texinput/CJKnumb.sty new file mode 100644 index 0000000000..61c928cf14 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CJKnumb.sty @@ -0,0 +1,400 @@ +% This is the file CJKnumb.sty of the CJK package +% for typesetting numbers with CJK glyphs. +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesPackage{CJKnumb}[\filedate\space\fileversion] + +\RequirePackage{CJK}[2021/10/16] + + +% we suppress any unwanted spaces produced by linefeeds. + +\endlinechar \m@ne + + +% the amount of space to be inserted before and after the circle +% representing zero + +\def\CJKnullspace{0pt} + + +% generic number macros. We add them to the CJK encoding hooks. + +\def\CJK@traditionalNumbers{ + % circle used for zero + \def\CJK@null{\kern\CJKnullspace\CJKchar{161}{179}\kern\CJKnullspace} + % character used for zero + \def\CJK@zero{\CJKchar{185}{115}} + \def\CJK@one{\CJKchar{164}{64}} + \def\CJK@two{\CJKchar{164}{71}} + \def\CJK@three{\CJKchar{164}{84}} + \def\CJK@four{\CJKchar{165}{124}} + \def\CJK@five{\CJKchar{164}{173}} + \def\CJK@six{\CJKchar{164}{187}} + \def\CJK@seven{\CJKchar{164}{67}} + \def\CJK@eight{\CJKchar{164}{75}} + \def\CJK@nine{\CJKchar{164}{69}} + \def\CJK@ten{\CJKchar{164}{81}} + \def\CJK@hundred{\CJKchar{166}{202}} + \def\CJK@thousand{\CJKchar{164}{100}} + \def\CJK@tenthousand{\CJKchar{184}{85}} + \def\CJK@hundredmillion{\CJKchar{187}{245}} + + \def\CJK@minus{\CJKchar{161}{208}}} + +\CJKaddEncHook{Bg5}{\CJK@traditionalNumbers} +\CJKaddEncHook{Bg5+}{\CJK@traditionalNumbers} +\CJKaddEncHook{HK}{\CJK@traditionalNumbers} + +\def\CJK@simplifiedNumbers{ + \def\CJK@null{\kern\CJKnullspace\CJKchar{161}{240}\kern\CJKnullspace} + \def\CJK@zero{\CJKchar{193}{227}} + \def\CJK@one{\CJKchar{210}{187}} + \def\CJK@two{\CJKchar{182}{254}} + \def\CJK@three{\CJKchar{200}{253}} + \def\CJK@four{\CJKchar{203}{196}} + \def\CJK@five{\CJKchar{206}{229}} + \def\CJK@six{\CJKchar{193}{249}} + \def\CJK@seven{\CJKchar{198}{223}} + \def\CJK@eight{\CJKchar{176}{203}} + \def\CJK@nine{\CJKchar{190}{197}} + \def\CJK@ten{\CJKchar{202}{174}} + \def\CJK@hundred{\CJKchar{176}{217}} + \def\CJK@thousand{\CJKchar{199}{167}} + \def\CJK@tenthousand{\CJKchar{205}{242}} + \def\CJK@hundredmillion{\CJKchar{210}{218}} + + \def\CJK@minus{\CJKchar{163}{173}}} + +\CJKaddEncHook{GB}{\CJK@simplifiedNumbers} +\CJKaddEncHook{GBK}{\CJK@simplifiedNumbers} + +\CJKaddEncHook{JIS}{ + \def\CJK@null{\kern\CJKnullspace\CJKchar{161}{251}\kern\CJKnullspace} + \def\CJK@zero{\CJKchar{206}{237}} + \def\CJK@one{\CJKchar{176}{236}} + \def\CJK@two{\CJKchar{198}{243}} + \def\CJK@three{\CJKchar{187}{176}} + \def\CJK@four{\CJKchar{187}{205}} + \def\CJK@five{\CJKchar{184}{222}} + \def\CJK@six{\CJKchar{207}{187}} + \def\CJK@seven{\CJKchar{188}{183}} + \def\CJK@eight{\CJKchar{200}{172}} + \def\CJK@nine{\CJKchar{182}{229}} + \def\CJK@ten{\CJKchar{189}{189}} + \def\CJK@hundred{\CJKchar{201}{180}} + \def\CJK@thousand{\CJKchar{192}{233}} + \def\CJK@tenthousand{\CJKchar{232}{223}} + \def\CJK@hundredmillion{\CJKchar{178}{175}} + + \def\CJK@minus{\CJKchar{161}{221}}} + +\CJKaddEncHook{KS}{ + \def\CJK@null{\kern\CJKnullspace\CJKchar{161}{219}\kern\CJKnullspace} + \def\CJK@zero{\CJKchar{214}{195}} + \def\CJK@one{\CJKchar{236}{233}} + \def\CJK@two{\CJKchar{236}{163}} + \def\CJK@three{\CJKchar{223}{178}} + \def\CJK@four{\CJKchar{222}{204}} + \def\CJK@five{\CJKchar{231}{233}} + \def\CJK@six{\CJKchar{215}{191}} + \def\CJK@seven{\CJKchar{246}{210}} + \def\CJK@eight{\CJKchar{248}{162}} + \def\CJK@nine{\CJKchar{206}{250}} + \def\CJK@ten{\CJKchar{228}{168}} + \def\CJK@hundred{\CJKchar{219}{221}} + \def\CJK@thousand{\CJKchar{244}{182}} + \def\CJK@tenthousand{\CJKchar{216}{191}} + \def\CJK@hundredmillion{\CJKchar{229}{226}} + + \def\CJK@minus{\CJKchar{163}{173}}} + +\CJKaddEncHook{SJIS}{ + \def\CJK@null{\kern\CJKnullspace\CJKchar{129}{155}\kern\CJKnullspace} + \def\CJK@zero{\CJKchar{151}{235}} + \def\CJK@one{\CJKchar{136}{234}} + \def\CJK@two{\CJKchar{147}{241}} + \def\CJK@three{\CJKchar{142}{79}} + \def\CJK@four{\CJKchar{142}{108}} + \def\CJK@five{\CJKchar{140}{220}} + \def\CJK@six{\CJKchar{152}{90}} + \def\CJK@seven{\CJKchar{142}{181}} + \def\CJK@eight{\CJKchar{148}{170}} + \def\CJK@nine{\CJKchar{139}{227}} + \def\CJK@ten{\CJKchar{143}{92}} + \def\CJK@hundred{\CJKchar{149}{83}} + \def\CJK@thousand{\CJKchar{144}{231}} + \def\CJK@tenthousand{\CJKchar{228}{221}} + \def\CJK@hundredmillion{\CJKchar{137}{173}} + + \def\CJK@minus{\CJKchar{129}{124}}} + +\CJKaddEncHook{\CJK@UnicodeEnc}{ + \def\CJK@null{\Unicode{48}{7}} + \def\CJK@zero{\Unicode{150}{246}} + \def\CJK@one{\Unicode{78}{0}} + \def\CJK@two{\Unicode{78}{140}} + \def\CJK@three{\Unicode{78}{9}} + \def\CJK@four{\Unicode{86}{219}} + \def\CJK@five{\Unicode{78}{148}} + \def\CJK@six{\Unicode{81}{109}} + \def\CJK@seven{\Unicode{78}{3}} + \def\CJK@eight{\Unicode{81}{107}} + \def\CJK@nine{\Unicode{78}{93}} + \def\CJK@ten{\Unicode{83}{65}} + \def\CJK@hundred{\Unicode{118}{126}} + \def\CJK@thousand{\Unicode{83}{67}} + \def\CJK@tenthousand{\Unicode{132}{44}} + \def\CJK@hundredmillion{\Unicode{81}{4}} + + \def\CJK@minus{\Unicode{255}{13}}} + + +\newif\ifCJK@zero@ +\newif\ifCJK@previous@ + +\newif\ifCJK@null@ + + +\newcount\CJK@q +\newcount\CJK@r + + +\def\CJK@digit#1{ + \ifcase #1\relax + \ifCJK@null@ \CJK@null \else \CJK@zero \fi \or + \CJK@one \or + \CJK@two \or + \CJK@three \or + \CJK@four \or + \CJK@five \or + \CJK@six \or + \CJK@seven \or + \CJK@eight \or + \CJK@nine + \fi} + + +% This macro splits the number in zzyyyyxxxx (2^^31-1 is the largest +% possible integer in TeX); zz is \CJK@yi, yyyy is \CJK@high, and +% xxxx is \CJK@low. + +\def\CJK@splitnumber#1{ + \CJK@q #1 + \CJK@r #1 + + \divide\CJK@q \@M + \begingroup + \multiply\CJK@q \@M + \advance\CJK@r -\CJK@q + \ifnum\CJK@r = \z@ + \xdef\CJK@low{} + \else + \xdef\CJK@low{\number\CJK@r} + \fi + \endgroup + + \ifnum\CJK@q > \z@ + \CJK@r \CJK@q + + \divide\CJK@q \@M + \begingroup + \multiply\CJK@q \@M + \advance\CJK@r -\CJK@q + \ifnum\CJK@r = \z@ + \xdef\CJK@high{} + \else + \xdef\CJK@high{\number\CJK@r} + \fi + \endgroup + + \ifnum\CJK@q > \z@ + \xdef\CJK@yi{\number\CJK@q} + \else + \xdef\CJK@yi{} + \fi + \else + \xdef\CJK@high{} + \xdef\CJK@yi{} + \fi +} + +% Here we process four digits + +\def\CJK@processnumber#1{ + \CJK@zero@false + + \CJK@q #1 + \CJK@r #1 + + \divide\CJK@q \@m + \ifnum\CJK@q = \z@ + \ifCJK@previous@ + \CJK@zero@true + \fi + \else + \ifCJK@zero@ + \CJK@zero + \fi + \CJK@digit{\CJK@q} + \CJK@thousand + \CJK@previous@true + \CJK@zero@false + \fi + + \multiply\CJK@q \@m + \advance\CJK@r -\CJK@q + \CJK@q \CJK@r + + \divide\CJK@q 100\relax + \ifnum\CJK@q = \z@ + \ifCJK@previous@ + \CJK@zero@true + \fi + \else + \ifCJK@zero@ + \CJK@zero + \fi + \CJK@digit{\CJK@q} + \CJK@hundred + \CJK@previous@true + \CJK@zero@false + \fi + + \multiply\CJK@q 100 + \advance\CJK@r -\CJK@q + \CJK@q \CJK@r + + \divide \CJK@q 10\relax + \ifnum\CJK@q = \z@ + \ifCJK@previous@ + \CJK@zero@true + \fi + \else + \ifCJK@zero@ + \CJK@zero + \fi + \ifnum\CJK@q = \@ne + \ifCJK@previous@ + \CJK@one + \fi + \else + \CJK@digit{\CJK@q} + \fi + \CJK@ten + \CJK@previous@true + \CJK@zero@false + \fi + + \multiply\CJK@q 10 + \advance\CJK@r -\CJK@q + + \ifnum\CJK@r = \z@ + \else + \ifCJK@zero@ + \CJK@zero + \fi + \CJK@digit{\CJK@r} + \CJK@previous@true + \fi +} + + +% this command provides a full CJK representation of a number. + +\DeclareRobustCommand\CJKnumber[1]{ + \CJK@null@false + + \CJK@q #1\relax + + \ifnum\CJK@q < \z@ + \multiply\CJK@q \m@ne + \CJK@minus + \CJKkern + \fi + + \CJK@previous@false + \CJK@zero@false + + \ifnum\CJK@q = \z@ + \CJK@zero + \else + \CJK@splitnumber{\CJK@q} + + \ifx\CJK@yi \@empty + \else + \CJK@processnumber{\CJK@yi} + \CJK@hundredmillion + \fi + + \ifx\CJK@high \@empty + \else + \CJK@processnumber{\CJK@high} + \CJK@tenthousand + \fi + + \ifx\CJK@low \@empty + \else + \ifx\CJK@yi \@empty + \else + \ifx\CJK@high \@empty + \CJK@zero % this catches 100002345 + \fi + \fi + \CJK@processnumber{\CJK@low} + \fi + \fi} + + +% this command simply converts the given string into CJK digits; +% the starred version uses the traditional glyph for digit zero. + +\DeclareRobustCommand\CJKdigits{ + \@ifstar{\CJK@null@false\CJK@digits} + {\CJK@null@true\CJK@digits}} + +\def\CJK@digits#1{ + {\edef\CJK@tempa{} + \edef\CJK@tempb{#1} + \ifx\CJK@tempb \@empty + \else + \loop + \expandafter\CJK@getDigit\CJK@tempb\CJK@stop + \CJK@digit\CJK@tempa + \ifx\CJK@tempb \@empty + \else + \repeat + \fi}} + +\def\CJK@getDigit#1#2\CJK@stop{ + \edef\CJK@tempa{#1} + \edef\CJK@tempb{#2}} + + +% reset endline character. + +\endlinechar `\^^M + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CJKspace.sty b/language/chinese/CJK/cjk-4.8.5/texinput/CJKspace.sty new file mode 100644 index 0000000000..606e6ba2c9 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CJKspace.sty @@ -0,0 +1,98 @@ +% This is the file CJKspace.sty of the CJK package +% for suppressing spaces between CJK characters only. +% +% created by Wenchang Sun <sunwch@hotmail.com> +% Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\NeedsTeXFormat{LaTeX2e}[2001/06/01] + +\def\fileversion{3.8.0} +\def\filedate{2021/10/16} +\ProvidesPackage{CJKspace}[\filedate\space\fileversion] + + +\endlinechar \m@ne + + +% redefine `\CJK@ignorespaces'. + +\def\CJK@@ignorespaces{ + \expandafter\CJK@@@ignorespaces} + +\renewenvironment{CJK*}[3][]{ + \let\CJK@ignorespaces\CJK@@ignorespaces + \CJK@envStart{#1}{#2}{#3}} + {\CJK@envEnd} + + +\def\CJK@@@ignorespaces{ + \futurelet\CJK@next@token + \CJK@check@next} + +\def\CJK@check@next{ + \ifx\CJK@next@token\@sptoken + \expandafter\CJK@@check@next + \fi} + +{ + \catcode`\-=11 + + \global\let\-empty\@empty + + % define \CJK@@check@next to gobble subsequent space tokens. + + \def\:{\CJK@@check@next} + \global\expandafter\def\: { + \futurelet\cjk-let-token + \cjk---check-next} + + % since characters in the output of \meaning\something have + % catcode 12, we have to change the catcodes of `\', `C', + % `J', `K', and `@'. + + \catcode`\/=0 + \catcode`\C=12 + \catcode`\J=12 + \catcode`\K=12 + \catcode`\@=12 + \catcode`\\=12 + + /gdef/cjk---check-next{ + /expandafter/cjk-get-keystring + /meaning/cjk-let-token\CJK@@@/cjk-space-stop + /cjk-temp} + + % we check whether we can find the signature `\CJK@@@' at the + % beginning of following macro -- only the CJK package + % inserts this. + + /long/gdef/cjk-get-keystring#1\CJK@@@#2/cjk-space-stop{ + /edef/cjk-temp{#2} + /ifx/cjk-temp/-empty + /def/cjk-temp{ } + /else + /def/cjk-temp{} + /fi} +} + + +\endlinechar `\^^M + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CJKulem.sty b/language/chinese/CJK/cjk-4.8.5/texinput/CJKulem.sty new file mode 100644 index 0000000000..202f845df0 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CJKulem.sty @@ -0,0 +1,193 @@ +% This is the file CJKulem.sty of the CJK package +% for using the `ulem' package CJK characters. +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\NeedsTeXFormat{LaTeX2e}[1996/12/01] +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesPackage{CJKulem}[\filedate\space\fileversion] + +\RequirePackage{ulem}[2000/05/26] + +\endlinechar \m@ne + +\newdimen\UL@lastkern +\newskip\CJK@skip + + +\def\UL@CJKnobreakglue{ + \nobreak + \LA@CJKglue + \nobreak} + + +\def\UL@CJKglue{ + \ifx\ \LA@space + \LA@CJKglue + \else + \egroup + \UL@stop + \ifnum\lastkern = \thr@@ + \LA@hskip \CJK@skip + \else + \global\UL@skip \CJK@skip + \UL@leaders + \fi + \UL@start + \bgroup + \fi} + + +\def\UL@Thaiglue{ + \ifx\ \LA@space + \LA@Thaiglue + \else + \egroup + \egroup + \egroup + \UL@stop + \ifnum\lastkern = \thr@@ + \LA@hskip \CJK@skip + \else + \global\UL@skip \CJK@skip + \UL@leaders + \fi + \UL@start + \bgroup + \fontencoding{C90}\selectfont + \bgroup + \bgroup + \fi} + + +\def\UL@Thaibreak{ + \ifx\ \LA@space + \LA@Thaibreak + \else + \egroup + \egroup + \egroup + \UL@stop + \LA@hskip \z@ + \UL@start + \bgroup + \fontencoding{C90}\selectfont + \bgroup + \bgroup + \fi} + + +\def\UL@testLastKern{ + \global\CJK@false + \ifnum\lastkern = \thr@@ + \ifnum\UL@lastkern = \tw@ + \global\CJK@true + \fi + \ifnum\UL@lastkern = 5 + \global\CJK@true + \fi + \fi + + \ifnum\lastkern = \tw@ + \global\CJK@true + \fi + \ifnum\lastkern = 5 + \global\CJK@true + \fi} + + +\def\UL@testLastCJK{ + \global\CJK@false + + \ifnum\lastkern = \thr@@ + \ifnum\UL@lastkern = \@ne + \global\CJK@true + \fi + \fi + + \ifnum\lastkern = \@ne + \global\CJK@true + \fi} + + +\addto@hook\UL@hook{ + \let\CJK@savehskip \hskip + \let\hskip \LA@hskip + \CJKglue + \CJK@skip\lastskip + \unskip + \let\hskip \CJK@savehskip + \let\LA@CJKglue \CJKglue + \let\LA@Thaiglue \Thaiglue + \let\LA@Thaibreak \Thaibreak + \let\CJK@nobreakglue \UL@CJKnobreakglue + \let\CJKglue \UL@CJKglue + \let\Thaiglue \UL@Thaiglue + \let\Thaibreak \UL@Thaibreak + \let\CJK@testLastKern \UL@testLastKern + \let\CJK@testLastCJK \UL@testLastCJK} + + +\def\UL@start{ + \global\UL@lastkern\lastkern + \setbox\UL@box\hbox\bgroup + \everyhbox{\UL@hrest} + \let\UL@start\@empty + \def\UL@unegroup{\bgroup\bgroup} + \let\UL@leadtype\@empty + \bgroup + \kern -3sp + \kern 3sp + \if@ignore + \global\@ignorefalse + \ignorespaces + \fi} + + +\def\UL@stop{ + \global\UL@pe\lastpenalty + \global\UL@lastkern\lastkern + \unpenalty + \ifnum\lastkern = \thr@@ + \egroup + \egroup + \ifdim\wd\UL@box = \z@ + \else + \UL@putbox + \fi + \else + \egroup + \egroup + \UL@putbox + \fi + \ifnum\UL@pe = \z@ + \else + \LA@penalty\UL@pe + \fi + \kern -\UL@lastkern + \kern \UL@lastkern + \UL@unegroup} + +\endlinechar `\^^M + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CJKutf8.sty b/language/chinese/CJK/cjk-4.8.5/texinput/CJKutf8.sty new file mode 100644 index 0000000000..d1eab65c7e --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CJKutf8.sty @@ -0,0 +1,720 @@ +% This is the file CJKutf8.sty of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% in UTF-8 encoding. +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\NeedsTeXFormat{LaTeX2e}[2003/12/01] + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesPackage{CJKutf8}[\filedate\space\fileversion] + +\RequirePackage{ifpdf} +\RequirePackage[utf8]{inputenc} +\RequirePackage[encapsulated]{CJK} +\RequirePackageWithOptions{fontenc} + +\DeclareOption*{\OptionNotUsed} + +\ProcessOptions + + +% we suppress any unwanted spaces produced by linefeeds + +\endlinechar\m@ne + +% We redefine the basic macros for handling multibyte sequences to call +% a `\u8:...' macro if it has been defined. + +\def\CJK@XX#1#2{ + \ifx #2\protect + \expandafter\CJK@XXp\expandafter#1 + \else + \expandafter\ifx\csname u8:\string #1\string #2\endcsname \relax + \csname CJK@\number `#1\endcsname{`#2} + \expandafter\CJK@ignorespaces + \else + \csname u8:\string #1\string #2\endcsname + \fi + \fi} +\def\CJK@XXp#1#2{ + \expandafter\ifx\csname u8:\string #1\string #2\endcsname \relax + \csname CJK@\number `#1\endcsname{`#2} + \expandafter\CJK@ignorespaces + \else + \csname u8:\string #1\string #2\endcsname + \fi} + +\def\CJK@XXX#1#2#3{ + \ifx #2\protect + \expandafter\CJK@XXXp\expandafter#1#3 + \else + \expandafter\ifx\csname u8:\string #1\string #2\string #3\endcsname \relax + \csname CJK@\number `#1\endcsname{`#2}{`#3} + \expandafter\CJK@ignorespaces + \else + \csname u8:\string #1\string #2\string #3\endcsname + \fi + \fi} +\def\CJK@XXXp#1#2#3#4{ + \expandafter\ifx\csname u8:\string #1\string #2\string #4\endcsname \relax + \csname CJK@\number `#1\endcsname{`#2}{`#4} + \expandafter\CJK@ignorespaces + \else + \csname u8:\string #1\string #2\string #4\endcsname + \fi} + +% If pdftex is used, emit proper \ToUnicode cmaps. This code is based on +% cjk-unicmap.sty, part of the hangul-ucs package written by KIM Kang-Soo +% and KIM Do-Hyun. + +\ifpdf + % Redefine \pickup@font (again). + \def\pickup@font{ + \CJK@ifundefined\CJK@plane + {\expandafter\ifx\font@name \relax% % old definition + \define@newfont + \fi} + {\expandafter% % CJK extension + \ifx\csname \curr@fontshape/\f@size/\CJK@plane\endcsname \relax + \define@newfont + \def\CJK@temp{v} + \ifx\CJK@temp\CJK@plane + \expandafter + \ifx\csname CJK@cmap@\f@family\CJK@plane\endcsname \relax + \else + \csname CJK@cmap@\f@family\CJK@plane\endcsname + \fi + \else + \CJK@addcmap\CJK@plane + \fi + \else + \xdef\font@name{ + \csname \curr@fontshape/\f@size/\CJK@plane\endcsname} + \fi}} + + % Convert a CJK plane #2 to the corresponding surrogate value, if any. + % The result is returned in global macro #1. + \def\CJK@surr#1#2{ + {\expandafter\uppercase\expandafter{ + \expandafter\@tempcnta \expandafter "\expandafter 0#2\relax} + \ifnum \@tempcnta > "0FF\relax + % prepare for surrogate + \advance\@tempcnta -"0100\relax + + % high surrogate value + \@tempcntb \@tempcnta + \divide\@tempcntb 4\relax + \advance\@tempcntb "0D800\relax + \CJK@numbxToHex{\CJK@gtemp}{\@tempcntb} + \expandafter\toks@\expandafter{\CJK@gtemp} + + % upper byte of low surrogate value + \@tempcntb \@tempcnta + \divide\@tempcntb 4\relax + \multiply\@tempcntb 4\relax + \advance\@tempcnta -\@tempcntb + \advance\@tempcnta "0DC\relax + \CJK@numbToHex{\CJK@gtemp}{\@tempcnta} + \xdef#1{\the\toks@\CJK@gtemp} + \else + \xdef#1{#2} + \fi}} + + \def\CJK@addcmap#1{ + {\expandafter\ifx\csname CJK@CMap@#1\endcsname \relax + \CJK@surr{\CJK@gtemp}{#1} + \immediate\pdfobj stream { + /CIDInit /ProcSet findresource begin % + 12 dict begin % + begincmap % + /CIDSystemInfo << % + /Registry (TeX) % + /Ordering (Uni#1) % + /Supplement 0 >> def % + /CMapName /TeX-Uni#1-0 def % + 1 begincodespacerange <00> <FF> endcodespacerange % + 1 beginbfrange <00> <FF> <\CJK@gtemp 00> endbfrange % + endcmap % + CMapName currentdict /CMap defineresource % + pop % + end % + end } + \expandafter\xdef\csname CJK@CMap@#1\endcsname{ + \the\pdflastobj} + \fi + \pdffontattr\font@name{ + /ToUnicode \csname CJK@CMap@#1\endcsname\space 0 R}}} +\fi + + +% provide hooks for hyperref.sty to automatically emit UTF-16BE for +% bookmarks -- note that we must do everything with expansion; +% only eTeX provides numerical expression handling which works +% within \xdef. + +% 110aaaaa 10bbbbbb +% +% aaaaa (two octal digits) is handled by \CJK@UnicodeTwoBytesFirst +% bbbbbb (two octal digits) is handled by \CJK@UnicodeLast +% +% +% 1110aaaa 10abbbbb 10cccccc +% +% aaaaa (two octal digits) is handled by \CJK@UnicodeThreeBytesFirst +% bbbbbb (two octal digits) is handled by \CJK@UnicodeThreeBytesSecond +% cccccc (two octal digits) is handled by \CJK@UnicodeLast +% +% +% 11110uuu 10uubbbb 10bbcccc 10dddddd +% +% is emitted as a surrogate pair +% +% 110110aa aabbbbbb 110111cc ccdddddd +% +% (aaaa = uuuuu - 1; 0 < uuuuu <= 10000) +% +% 110110aaaa (four octal digits) is handled by \CJK@UnicodeFourBytesFirst +% bbbbbb (two octal digits) is handled by \CJK@UnicodeFourBytesSecond +% 110111cccc (four octal digits) is handled by \CJK@UnicodeFourBytesThird +% dddddd (two octal digits) is handled by \CJK@UnicodeLast +% + +\def\CJK@UnicodeFourBytesFirst#1#2{ + \33 + + \ifnum #2 > '257\relax + \ifcase #1 + \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or 0\2\or 1\2\or 2\2\or 3\2 + \fi + \else + \ifnum #2 > '237\relax + \ifcase #1 + \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or 0\1\or 1\1\or 2\1\or 3\1 + \fi + \else + \ifnum #2 > '217\relax + \ifcase #1 + \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or 0\0\or 1\0\or 2\0\or 3\0 + \fi + \else + \ifcase #1 + \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or 0\3\or 1\3\or 2\3\or 3\3 + \fi + \fi + \fi + \fi} + +\def\CJK@UnicodeFourBytesSecond#1#2{ + \ifnum #2 > '257\relax + \ifcase #1 + \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or 03\or 07\or 13\or 17\or 23\or 27\or 33\or 37 + \or 43\or 47\or 53\or 57\or 63\or 67\or 73\or 77 + \or 03\or 07\or 13\or 17\or 23\or 27\or 33\or 37 + \or 43\or 47\or 53\or 57\or 63\or 67\or 73\or 77 + \or 03\or 07\or 13\or 17\or 23\or 27\or 33\or 37 + \or 43\or 47\or 53\or 57\or 63\or 67\or 73\or 77 + \or 03\or 07\or 13\or 17\or 23\or 27\or 33\or 37 + \or 43\or 47\or 53\or 57\or 63\or 67\or 73\or 77 + \fi + \else + \ifnum #2 > '237\relax + \ifcase #1 + \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or 02\or 06\or 12\or 16\or 22\or 26\or 32\or 36 + \or 42\or 46\or 52\or 56\or 62\or 66\or 72\or 76 + \or 02\or 06\or 12\or 16\or 22\or 26\or 32\or 36 + \or 42\or 46\or 52\or 56\or 62\or 66\or 72\or 76 + \or 02\or 06\or 12\or 16\or 22\or 26\or 32\or 36 + \or 42\or 46\or 52\or 56\or 62\or 66\or 72\or 76 + \or 02\or 06\or 12\or 16\or 22\or 26\or 32\or 36 + \or 42\or 46\or 52\or 56\or 62\or 66\or 72\or 76 + \fi + \else + \ifnum #2 > '217\relax + \ifcase #1 + \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or 01\or 05\or 11\or 15\or 21\or 25\or 31\or 35 + \or 41\or 45\or 51\or 55\or 61\or 65\or 71\or 75 + \or 01\or 05\or 11\or 15\or 21\or 25\or 31\or 35 + \or 41\or 45\or 51\or 55\or 61\or 65\or 71\or 75 + \or 01\or 05\or 11\or 15\or 21\or 25\or 31\or 35 + \or 41\or 45\or 51\or 55\or 61\or 65\or 71\or 75 + \or 01\or 05\or 11\or 15\or 21\or 25\or 31\or 35 + \or 41\or 45\or 51\or 55\or 61\or 65\or 71\or 75 + \fi + \else + \ifcase #1 + \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or 00\or 04\or 10\or 14\or 20\or 24\or 30\or 34 + \or 40\or 44\or 50\or 54\or 60\or 64\or 70\or 74 + \or 00\or 04\or 10\or 14\or 20\or 24\or 30\or 34 + \or 40\or 44\or 50\or 54\or 60\or 64\or 70\or 74 + \or 00\or 04\or 10\or 14\or 20\or 24\or 30\or 34 + \or 40\or 44\or 50\or 54\or 60\or 64\or 70\or 74 + \or 00\or 04\or 10\or 14\or 20\or 24\or 30\or 34 + \or 40\or 44\or 50\or 54\or 60\or 64\or 70\or 74 + \fi + \fi + \fi + \fi} + +\def\CJK@UnicodeFourBytesThird#1{ + \33 + + \ifcase #1 + \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or 4\0\or 4\1\or 4\2\or 4\3\or 5\0\or 5\1\or 5\2\or 5\3 + \or 6\0\or 6\1\or 6\2\or 6\3\or 7\0\or 7\1\or 7\2\or 7\3 + \or 4\0\or 4\1\or 4\2\or 4\3\or 5\0\or 5\1\or 5\2\or 5\3 + \or 6\0\or 6\1\or 6\2\or 6\3\or 7\0\or 7\1\or 7\2\or 7\3 + \or 4\0\or 4\1\or 4\2\or 4\3\or 5\0\or 5\1\or 5\2\or 5\3 + \or 6\0\or 6\1\or 6\2\or 6\3\or 7\0\or 7\1\or 7\2\or 7\3 + \or 4\0\or 4\1\or 4\2\or 4\3\or 5\0\or 5\1\or 5\2\or 5\3 + \or 6\0\or 6\1\or 6\2\or 6\3\or 7\0\or 7\1\or 7\2\or 7\3 + \fi +} + +\def\CJK@UnicodeThreeBytesFirst#1#2{ + \ifnum #2 > '237\relax + \ifcase #1 + \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \01\or \03\or \05\or \07\or \11\or \13\or \15\or \17 + \or \21\or \23\or \25\or \27\or \31\or \33\or \35\or \37 + \fi + \else + \ifcase #1 + \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \00\or \02\or \04\or \06\or \10\or \12\or \14\or \16 + \or \20\or \22\or \24\or \26\or \30\or \32\or \34\or \35 + \fi + \fi} + +\def\CJK@UnicodeThreeBytesSecond#1{ + \ifcase #1 + \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or 0\0\or 0\1\or 0\2\or 0\3\or 1\0\or 1\1\or 1\2\or 1\3 + \or 2\0\or 2\1\or 2\2\or 2\3\or 3\0\or 3\1\or 3\2\or 3\3 + \or 4\0\or 4\1\or 4\2\or 4\3\or 5\0\or 5\1\or 5\2\or 5\3 + \or 6\0\or 6\1\or 6\2\or 6\3\or 7\0\or 7\1\or 7\2\or 7\3 + \or 0\0\or 0\1\or 0\2\or 0\3\or 1\0\or 1\1\or 1\2\or 1\3 + \or 2\0\or 2\1\or 2\2\or 2\3\or 3\0\or 3\1\or 3\2\or 3\3 + \or 4\0\or 4\1\or 4\2\or 4\3\or 5\0\or 5\1\or 5\2\or 5\3 + \or 6\0\or 6\1\or 6\2\or 6\3\or 7\0\or 7\1\or 7\2\or 7\3 + \fi} + +\def\CJK@UnicodeTwoBytesFirst#1{ + \ifcase #1 + \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \000\0\or \000\1\or \000\2\or \000\3 + \or \001\0\or \001\1\or \001\2\or \001\3 + \or \002\0\or \002\1\or \002\2\or \002\3 + \or \003\0\or \003\1\or \003\2\or \003\3 + \or \004\0\or \004\1\or \004\2\or \004\3 + \or \005\0\or \005\1\or \005\2\or \005\3 + \or \006\0\or \006\1\or \006\2\or \006\3 + \or \007\0\or \007\1\or \007\2\or \007\3 + \fi} + +\def\CJK@UnicodeLast#1{ + \ifcase #1 + \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + \or \or \or \or \or \or \or \or + + \or 00\or 01\or 02\or 03\or 04\or 05\or 06\or 07 + \or 10\or 11\or 12\or 13\or 14\or 15\or 16\or 17 + \or 20\or 21\or 22\or 23\or 24\or 25\or 26\or 27 + \or 30\or 31\or 32\or 33\or 34\or 35\or 36\or 37 + \or 40\or 41\or 42\or 43\or 44\or 45\or 46\or 47 + \or 50\or 51\or 52\or 53\or 54\or 55\or 56\or 57 + \or 60\or 61\or 62\or 63\or 64\or 65\or 66\or 67 + \or 70\or 71\or 72\or 73\or 74\or 75\or 76\or 77 + \fi} + + +\def\CJK@XXpdf#1#2{ + \CJK@UnicodeTwoBytesFirst{`#1} + \CJK@UnicodeLast{`#2}} + +\def\CJK@XXXpdf#1#2#3{ + \CJK@UnicodeThreeBytesFirst{`#1}{`#2} + \CJK@UnicodeThreeBytesSecond{`#2} + \CJK@UnicodeLast{`#3}} + +\def\CJK@XXXXpdf#1#2#3#4{ + \CJK@UnicodeFourBytesFirst{`#1}{`#2} + \CJK@UnicodeFourBytesSecond{`#2}{`#3} + \CJK@UnicodeFourBytesThird{`#3} + \CJK@UnicodeLast{`#4}} + + +\ifx\pdfstringdefPreHook \undefined + \def\pdfstringdefPreHook{} +\fi +\g@addto@macro\pdfstringdefPreHook{ + \let\CJK@XX \CJK@XXpdf + \let\CJK@XXX \CJK@XXXpdf + \let\CJK@XXXX \CJK@XXXXpdf} + + +% reset endline character + +\endlinechar `\^^M + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CJKvert.sty b/language/chinese/CJK/cjk-4.8.5/texinput/CJKvert.sty new file mode 100644 index 0000000000..d01a689f73 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CJKvert.sty @@ -0,0 +1,159 @@ +% This is the file CJKvert.sty of the CJK package +% for vertical typesetting. +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesPackage{CJKvert}[\filedate\space\fileversion] + +\RequirePackage{graphicx} + +\newif\ifCJK@useBaselinestretch@ +\CJK@useBaselinestretch@false + +\DeclareOption{usebaselinestretch}{\CJK@useBaselinestretch@true} + +\ProcessOptions + +\newcommand{\CJKbaselinestretch}{1.3} + + +% we suppress any unwanted spaces produced by linefeeds. + +\endlinechar \m@ne + + +\newif\ifCJK@vertical@ +\CJK@vertical@false + +\ifCJK@useBaselinestretch@ + \edef\CJK@horzBaselinestretch{\baselinestretch} +\fi + +\newcommand{\CJKvert}{ + \CJK@vertical@true + \gdef\CJK@direction{v} + + \ifCJK@useBaselinestretch@ + \edef\CJK@horzBaselinestretch{\baselinestretch} + \dimen@ 1pt + \dimen@ \CJK@horzBaselinestretch\dimen@ + \dimen@ \CJKbaselinestretch\dimen@ + \edef\baselinestretch{\strip@pt\dimen@} + \else + \edef\baselinestretch{\CJKbaselinestretch} + \fi + + \normalfont} + +\newcommand{\CJKhorz}{ + \CJK@vertical@false + \gdef\CJK@direction{h} + + \ifCJK@useBaselinestretch@ + \edef\baselinestretch{\CJK@horzBaselinestretch} + \else + \edef\baselinestretch{1} + \fi + + \normalfont} + +\AtBeginDocument{\CJKvert} + + +% we redefine \CJKsymbol so that pseudo bold characters will be shifted +% vertically, not horizontally. +% +% for fonts without vertical representation forms, some glyphs shouldn't +% be rotated; \CJKsymbolsimple can be then used for a redefinition in +% the `.fdx' file. + +\newcommand{\CJKsymbolsimple}[1]{ + \edef\CJK@temp{\csname \CJK@enc/\CJK@family/simpleoffset\endcsname} + \expandafter\ifx\CJK@temp \relax + \edef\CJK@temp{0pt} + \fi + \ifCJK@bold@ + \raise \CJK@temp \hbox{\symbol{#1}} + \raise \CJK@temp \hbox to \z@{\hss \raise\CJKboldshift\hbox{\symbol{#1}}} + \raise \CJK@temp \hbox to \z@{\hss \raise-\CJKboldshift\hbox{\symbol{#1}}} + \else + \raise \CJK@temp \hbox{\symbol{#1}} + \fi +} + +\DeclareRobustCommand{\CJKsymbol}[1]{ + \ifCJK@vertical@ + \expandafter\ifx\csname \CJK@enc/\CJK@family/norotate/v\endcsname \relax + \edef\CJK@tempa{\csname \CJK@enc/\CJK@family/offset/v\endcsname} + \expandafter\ifx\CJK@tempa \relax + \edef\CJK@tempa{0pt} + \fi + \edef\CJK@tempb{\csname \CJK@enc/\CJK@family/fullheight/v\endcsname} + \expandafter\ifx\CJK@tempb \relax + \def\CJK@temp{\rotatebox[x=\CJK@tempa]{90}{\symbol{#1}}} + \else + \edef\CJK@tempc{\csname \CJK@enc/\CJK@family/height/v\endcsname} + \expandafter\ifx\CJK@tempc \relax + \edef\CJK@tempc{0pt} + \fi + \setbox\@tempboxa\hbox{\symbol{#1}} + \ht\@tempboxa \CJK@tempc + \@tempdima\CJK@tempb + \advance\@tempdima -\CJK@tempc + \dp\@tempboxa \@tempdima + \def\CJK@temp{ + \rotatebox[x=\CJK@tempa]{90}{\copy\@tempboxa}} + \fi + \else + \def\CJK@temp{\symbol{#1}} + \fi + \ifCJK@bold@ + \CJK@temp + \hbox to \z@ {\hss \raise\CJKboldshift\hbox{\CJK@temp}} + \hbox to \z@ {\hss \raise-\CJKboldshift\hbox{\CJK@temp}} + \else + \CJK@temp + \fi + \else + \edef\CJK@tempa{\csname \CJK@enc/\CJK@family/offset/h\endcsname} + \expandafter\ifx\CJK@tempa \relax + \edef\CJK@tempa{0pt} + \fi + \edef\CJK@temp{\raise\CJK@tempa\hbox{\symbol{#1}}} + \leavevmode + \ifCJK@bold@ + \CJK@temp + \hbox to \CJKboldshift{\hss\CJK@temp} + \hbox to \CJKboldshift{\hss\CJK@temp} + \else + \CJK@temp + \fi + \fi} + + +% reset endline character. + +\endlinechar `\^^M + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CNS/EUC-TW.bdg b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/EUC-TW.bdg new file mode 100644 index 0000000000..0ef5c3b5c7 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/EUC-TW.bdg @@ -0,0 +1,130 @@ +% This is the file EUC-TW.bdg of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{EUC-TW.bdg}[\filedate\space\fileversion] + + +% The EUC-TW bindings (with single shift). + +\global\@namedef{CJK@EUC-TWBinding}{ + \CJK@nameppppdef{^^8e} + + \CJK@nameppdef{^^a1} + \CJK@nameppdef{^^a2} + \CJK@nameppdef{^^a3} + \CJK@nameppdef{^^a4} + \CJK@nameppdef{^^a5} + \CJK@nameppdef{^^a6} + \CJK@nameppdef{^^a7} + \CJK@nameppdef{^^a8} + \CJK@nameppdef{^^a9} + \CJK@nameppdef{^^aa} + \CJK@nameppdef{^^ab} + \CJK@nameppdef{^^ac} + \CJK@nameppdef{^^ad} + \CJK@nameppdef{^^ae} + \CJK@nameppdef{^^af} + \CJK@nameppdef{^^b0} + \CJK@nameppdef{^^b1} + \CJK@nameppdef{^^b2} + \CJK@nameppdef{^^b3} + \CJK@nameppdef{^^b4} + \CJK@nameppdef{^^b5} + \CJK@nameppdef{^^b6} + \CJK@nameppdef{^^b7} + \CJK@nameppdef{^^b8} + \CJK@nameppdef{^^b9} + \CJK@nameppdef{^^ba} + \CJK@nameppdef{^^bb} + \CJK@nameppdef{^^bc} + \CJK@nameppdef{^^bd} + \CJK@nameppdef{^^be} + \CJK@nameppdef{^^bf} + \CJK@nameppdef{^^c0} + \CJK@nameppdef{^^c1} + \CJK@nameppdef{^^c2} + \CJK@nameppdef{^^c3} + \CJK@nameppdef{^^c4} + \CJK@nameppdef{^^c5} + \CJK@nameppdef{^^c6} + \CJK@nameppdef{^^c7} + \CJK@nameppdef{^^c8} + \CJK@nameppdef{^^c9} + \CJK@nameppdef{^^ca} + \CJK@nameppdef{^^cb} + \CJK@nameppdef{^^cc} + \CJK@nameppdef{^^cd} + \CJK@nameppdef{^^ce} + \CJK@nameppdef{^^cf} + \CJK@nameppdef{^^d0} + \CJK@nameppdef{^^d1} + \CJK@nameppdef{^^d2} + \CJK@nameppdef{^^d3} + \CJK@nameppdef{^^d4} + \CJK@nameppdef{^^d5} + \CJK@nameppdef{^^d6} + \CJK@nameppdef{^^d7} + \CJK@nameppdef{^^d8} + \CJK@nameppdef{^^d9} + \CJK@nameppdef{^^da} + \CJK@nameppdef{^^db} + \CJK@nameppdef{^^dc} + \CJK@nameppdef{^^dd} + \CJK@nameppdef{^^de} + \CJK@nameppdef{^^df} + \CJK@nameppdef{^^e0} + \CJK@nameppdef{^^e1} + \CJK@nameppdef{^^e2} + \CJK@nameppdef{^^e3} + \CJK@nameppdef{^^e4} + \CJK@nameppdef{^^e5} + \CJK@nameppdef{^^e6} + \CJK@nameppdef{^^e7} + \CJK@nameppdef{^^e8} + \CJK@nameppdef{^^e9} + \CJK@nameppdef{^^ea} + \CJK@nameppdef{^^eb} + \CJK@nameppdef{^^ec} + \CJK@nameppdef{^^ed} + \CJK@nameppdef{^^ee} + \CJK@nameppdef{^^ef} + \CJK@nameppdef{^^f0} + \CJK@nameppdef{^^f1} + \CJK@nameppdef{^^f2} + \CJK@nameppdef{^^f3} + \CJK@nameppdef{^^f4} + \CJK@nameppdef{^^f5} + \CJK@nameppdef{^^f6} + \CJK@nameppdef{^^f7} + \CJK@nameppdef{^^f8} + \CJK@nameppdef{^^f9} + \CJK@nameppdef{^^fa} + \CJK@nameppdef{^^fb} + \CJK@nameppdef{^^fc} + \CJK@nameppdef{^^fd} + \CJK@nameppdef{^^fe}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CNS/EUC-TW.chr b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/EUC-TW.chr new file mode 100644 index 0000000000..2bf303aba0 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/EUC-TW.chr @@ -0,0 +1,210 @@ +% This is the file EUC-TW.chr of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{EUC-TW.chr}[\filedate\space\fileversion] + + +% define macros for handling characters in EUC-TW encoding. + +\global\@namedef{CJK@EUC-TWChr}{ + \CJK@global\def\CJK@char##1##2##3{ + {\ifnum ##3 < \CJK@min + \CJK@err + \else + \ifnum ##3 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##3\relax + \advance\@tempcnta ##2\relax + \edef\CJK@plane{##1} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% the same, but the plane crosses the font file boundary. + + \CJK@global\def\CJK@charx##1##2##3##4{ + {\ifnum ##4 < \CJK@min + \CJK@err + \else + \ifnum ##4 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##4\relax + \@tempcntb 256\relax + \advance\@tempcnta ##3\relax + \advance\@tempcntb -##3\relax + \chardef\@temp \@tempcntb + \ifnum ##4 < \@temp + \edef\CJK@plane{##1} + \else + \advance\@tempcnta -256\relax + \edef\CJK@plane{##2} + \fi + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% for punctuation. + + \CJK@global\def\CJK@punctchar##1##2##3##4{ + {\ifnum ##4 < \CJK@min + \CJK@err + \else + \ifnum ##4 > \CJK@max + \CJK@err + \else + \CJK@numbToHex{\CJK@gtemp}{##4} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##4\relax + \advance\@tempcnta ##3\relax + \edef\CJK@plane{##2} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \fi + \fi}} + + \CJK@global\def\CJK@punctcharx##1##2##3##4##5{ + {\ifnum ##5 < \CJK@min + \CJK@err + \else + \ifnum ##5 > \CJK@max + \CJK@err + \else + \CJK@numbToHex{\CJK@gtemp}{##5} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##5\relax + \@tempcntb 256\relax + \advance\@tempcnta ##4\relax + \advance\@tempcntb -##4\relax + \chardef\@temp \@tempcntb + \ifnum ##5 < \@temp + \edef\CJK@plane{##2} + \else + \advance\@tempcnta -256\relax + \edef\CJK@plane{##3} + \fi + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \fi + \fi}} + +% for CNS characters accessed via the SS2 code (0x8E) + + \CJK@global\def\CJK@shiftchar##1##2##3{ + {\CJK@numbToHex{\CJK@gtemp}{##1} + \CJKchar[CNS\expandafter\@secondoftwo\CJK@gtemp] + {\number ##2}{\number ##3}}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CNS/EUC-TW.enc b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/EUC-TW.enc new file mode 100644 index 0000000000..71b1063cb9 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/EUC-TW.enc @@ -0,0 +1,138 @@ +% This is the file EUC-TW.enc of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{EUC-TW.enc}[\filedate\space\fileversion] + + +% EUC-TW encoding: +% +% CNS 11643-1992 planes 1-7 (C31-C37) 0x8EA1A1A1-0x8EA7FEFE +% CNS 11643-1992 plane 1 (C31) 0xA1A1-0xFEFE + +\global\@namedef{CJK@EUC-TWEncoding}{ + \CJK@loadChr{EUC-TW} + + % if in preprocessed mode, `\@gobble' will be gobbled, and + % \CJK@shiftError becomes active + \CJK@namegdef{^^8e}##1##2##3{\@gobble\CJK@shiftError + \CJK@shiftchar{##1}{##2}{##3}} + + \CJK@namegdef{^^a1}##1{\@empty\CJK@punctchar {A1}{01}{-161}{##1}} + \CJK@namegdef{^^a2}##1{\@empty\CJK@punctchar {A2}{01}{ -67}{##1}} + \CJK@namegdef{^^a3}##1{\@empty\CJK@punctcharx{A3}{01}{02}{27}{##1}} + \CJK@namegdef{^^a4}##1{\@empty\CJK@punctchar {A4}{02}{-135}{##1}} + \CJK@namegdef{^^a5}##1{\@empty\CJK@punctchar {A5}{02}{ -41}{##1}} + \CJK@namegdef{^^a6}##1{\@empty\CJK@charx{02}{03}{53}{##1}} + \CJK@namegdef{^^a7}##1{\@empty\CJK@char {03}{-109}{##1}} + \CJK@namegdef{^^a8}##1{\@empty\CJK@char {03}{ -15}{##1}} + \CJK@namegdef{^^a9}##1{\@empty\CJK@charx{03}{04}{79}{##1}} + \CJK@namegdef{^^aa}##1{\@empty\CJK@char {04}{ -83}{##1}} + \CJK@namegdef{^^ab}##1{\@empty\CJK@charx{04}{05}{11}{##1}} + \CJK@namegdef{^^ac}##1{\@empty\CJK@char {05}{-151}{##1}} + \CJK@namegdef{^^ad}##1{\@empty\CJK@char {05}{ -57}{##1}} + \CJK@namegdef{^^ae}##1{\@empty\CJK@charx{05}{06}{37}{##1}} + \CJK@namegdef{^^af}##1{\@empty\CJK@char {06}{-125}{##1}} + \CJK@namegdef{^^b0}##1{\@empty\CJK@char {06}{ -31}{##1}} + \CJK@namegdef{^^b1}##1{\@empty\CJK@charx{06}{07}{63}{##1}} + \CJK@namegdef{^^b2}##1{\@empty\CJK@char {07}{ -99}{##1}} + \CJK@namegdef{^^b3}##1{\@empty\CJK@char {07}{ -5}{##1}} + \CJK@namegdef{^^b4}##1{\@empty\CJK@charx{07}{08}{89}{##1}} + \CJK@namegdef{^^b5}##1{\@empty\CJK@char {08}{ -73}{##1}} + \CJK@namegdef{^^b6}##1{\@empty\CJK@charx{08}{09}{21}{##1}} + \CJK@namegdef{^^b7}##1{\@empty\CJK@char {09}{-141}{##1}} + \CJK@namegdef{^^b8}##1{\@empty\CJK@char {09}{ -47}{##1}} + \CJK@namegdef{^^b9}##1{\@empty\CJK@charx{09}{10}{47}{##1}} + \CJK@namegdef{^^ba}##1{\@empty\CJK@char {10}{-115}{##1}} + \CJK@namegdef{^^bb}##1{\@empty\CJK@char {10}{ -21}{##1}} + \CJK@namegdef{^^bc}##1{\@empty\CJK@charx{10}{11}{73}{##1}} + \CJK@namegdef{^^bd}##1{\@empty\CJK@char {11}{ -89}{##1}} + \CJK@namegdef{^^be}##1{\@empty\CJK@charx{11}{12}{ 5}{##1}} + \CJK@namegdef{^^bf}##1{\@empty\CJK@char {12}{-157}{##1}} + \CJK@namegdef{^^c0}##1{\@empty\CJK@char {12}{ -63}{##1}} + \CJK@namegdef{^^c1}##1{\@empty\CJK@charx{12}{13}{31}{##1}} + \CJK@namegdef{^^c2}##1{\@empty\CJK@char {13}{-131}{##1}} + \CJK@namegdef{^^c3}##1{\@empty\CJK@char {13}{ -37}{##1}} + \CJK@namegdef{^^c4}##1{\@empty\CJK@charx{13}{14}{57}{##1}} + \CJK@namegdef{^^c5}##1{\@empty\CJK@char {14}{-105}{##1}} + \CJK@namegdef{^^c6}##1{\@empty\CJK@char {14}{ -11}{##1}} + \CJK@namegdef{^^c7}##1{\@empty\CJK@charx{14}{15}{83}{##1}} + \CJK@namegdef{^^c8}##1{\@empty\CJK@char {15}{ -79}{##1}} + \CJK@namegdef{^^c9}##1{\@empty\CJK@charx{15}{16}{15}{##1}} + \CJK@namegdef{^^ca}##1{\@empty\CJK@char {16}{-147}{##1}} + \CJK@namegdef{^^cb}##1{\@empty\CJK@char {16}{ -53}{##1}} + \CJK@namegdef{^^cc}##1{\@empty\CJK@charx{16}{17}{41}{##1}} + \CJK@namegdef{^^cd}##1{\@empty\CJK@char {17}{-121}{##1}} + \CJK@namegdef{^^ce}##1{\@empty\CJK@char {17}{ -27}{##1}} + \CJK@namegdef{^^cf}##1{\@empty\CJK@charx{17}{18}{67}{##1}} + \CJK@namegdef{^^d0}##1{\@empty\CJK@char {18}{ -95}{##1}} + \CJK@namegdef{^^d1}##1{\@empty\CJK@char {18}{ -1}{##1}} + \CJK@namegdef{^^d2}##1{\@empty\CJK@charx{18}{19}{93}{##1}} + \CJK@namegdef{^^d3}##1{\@empty\CJK@char {19}{ -69}{##1}} + \CJK@namegdef{^^d4}##1{\@empty\CJK@charx{19}{20}{25}{##1}} + \CJK@namegdef{^^d5}##1{\@empty\CJK@char {20}{-137}{##1}} + \CJK@namegdef{^^d6}##1{\@empty\CJK@char {20}{ -43}{##1}} + \CJK@namegdef{^^d7}##1{\@empty\CJK@charx{20}{21}{51}{##1}} + \CJK@namegdef{^^d8}##1{\@empty\CJK@char {21}{-111}{##1}} + \CJK@namegdef{^^d9}##1{\@empty\CJK@char {21}{ -17}{##1}} + \CJK@namegdef{^^da}##1{\@empty\CJK@charx{21}{22}{77}{##1}} + \CJK@namegdef{^^db}##1{\@empty\CJK@char {22}{ -85}{##1}} + \CJK@namegdef{^^dc}##1{\@empty\CJK@charx{22}{23}{ 9}{##1}} + \CJK@namegdef{^^dd}##1{\@empty\CJK@char {23}{-153}{##1}} + \CJK@namegdef{^^de}##1{\@empty\CJK@char {23}{ -59}{##1}} + \CJK@namegdef{^^df}##1{\@empty\CJK@charx{23}{24}{35}{##1}} + \CJK@namegdef{^^e0}##1{\@empty\CJK@char {24}{-127}{##1}} + \CJK@namegdef{^^e1}##1{\@empty\CJK@char {24}{ -33}{##1}} + \CJK@namegdef{^^e2}##1{\@empty\CJK@charx{24}{25}{61}{##1}} + \CJK@namegdef{^^e3}##1{\@empty\CJK@char {25}{-101}{##1}} + \CJK@namegdef{^^e4}##1{\@empty\CJK@char {25}{ -7}{##1}} + \CJK@namegdef{^^e5}##1{\@empty\CJK@charx{25}{26}{87}{##1}} + \CJK@namegdef{^^e6}##1{\@empty\CJK@char {26}{ -75}{##1}} + \CJK@namegdef{^^e7}##1{\@empty\CJK@charx{26}{27}{19}{##1}} + \CJK@namegdef{^^e8}##1{\@empty\CJK@char {27}{-143}{##1}} + \CJK@namegdef{^^e9}##1{\@empty\CJK@char {27}{ -49}{##1}} + \CJK@namegdef{^^ea}##1{\@empty\CJK@charx{27}{28}{45}{##1}} + \CJK@namegdef{^^eb}##1{\@empty\CJK@char {28}{-117}{##1}} + \CJK@namegdef{^^ec}##1{\@empty\CJK@char {28}{ -23}{##1}} + \CJK@namegdef{^^ed}##1{\@empty\CJK@charx{28}{29}{71}{##1}} + \CJK@namegdef{^^ee}##1{\@empty\CJK@char {29}{ -91}{##1}} + \CJK@namegdef{^^ef}##1{\@empty\CJK@charx{29}{30}{ 3}{##1}} + \CJK@namegdef{^^f0}##1{\@empty\CJK@char {30}{-159}{##1}} + \CJK@namegdef{^^f1}##1{\@empty\CJK@char {30}{ -65}{##1}} + \CJK@namegdef{^^f2}##1{\@empty\CJK@charx{30}{31}{29}{##1}} + \CJK@namegdef{^^f3}##1{\@empty\CJK@char {31}{-133}{##1}} + \CJK@namegdef{^^f4}##1{\@empty\CJK@char {31}{ -39}{##1}} + \CJK@namegdef{^^f5}##1{\@empty\CJK@charx{31}{32}{55}{##1}} + \CJK@namegdef{^^f6}##1{\@empty\CJK@char {32}{-107}{##1}} + \CJK@namegdef{^^f7}##1{\@empty\CJK@char {32}{ -13}{##1}} + \CJK@namegdef{^^f8}##1{\@empty\CJK@charx{32}{33}{81}{##1}} + \CJK@namegdef{^^f9}##1{\@empty\CJK@char {33}{ -81}{##1}} + \CJK@namegdef{^^fa}##1{\@empty\CJK@charx{33}{34}{13}{##1}} + \CJK@namegdef{^^fb}##1{\@empty\CJK@char {34}{-149}{##1}} + \CJK@namegdef{^^fc}##1{\@empty\CJK@char {34}{ -55}{##1}} + \CJK@namegdef{^^fd}##1{\@empty\CJK@charx{34}{35}{39}{##1}} + \CJK@namegdef{^^fe}##1{\@empty\CJK@char {35}{-123}{##1}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c31song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c31song.fd new file mode 100644 index 0000000000..b607ff7487 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c31song.fd @@ -0,0 +1,23 @@ +% This is the file c31song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c31song.fd}[\filedate\space\fileversion] + + +% Chinese traditional characters +% +% character set: CNS 11643-1992 plane 1 +% font encoding: CJK (standard) + +\DeclareFontFamily{C31}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C31}{song}{m}{n}{<-> CJK * c1so12}{\CJKnormal} +\DeclareFontShape{C31}{song}{bx}{n}{<-> CJKb * c1so12}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c32song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c32song.fd new file mode 100644 index 0000000000..fc215fe051 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c32song.fd @@ -0,0 +1,23 @@ +% This is the file c32song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c32song.fd}[\filedate\space\fileversion] + + +% Chinese traditional characters +% +% character set: CNS 11643-1992 plane 2 +% font encoding: CJK (standard) + +\DeclareFontFamily{C32}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C32}{song}{m}{n}{<-> CJK * c2so12}{\CJKnormal} +\DeclareFontShape{C32}{song}{bx}{n}{<-> CJKb * c2so12}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c33song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c33song.fd new file mode 100644 index 0000000000..445f370bbb --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c33song.fd @@ -0,0 +1,23 @@ +% This is the file c33song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c33song.fd}[\filedate\space\fileversion] + + +% Chinese traditional characters +% +% character set: CNS 11643-1992 plane 3 +% font encoding: CJK (standard) + +\DeclareFontFamily{C33}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C33}{song}{m}{n}{<-> CJK * c3so12}{\CJKnormal} +\DeclareFontShape{C33}{song}{bx}{n}{<-> CJKb * c3so12}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c34song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c34song.fd new file mode 100644 index 0000000000..40eb3c1ee6 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c34song.fd @@ -0,0 +1,23 @@ +% This is the file c34song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c34song.fd}[\filedate\space\fileversion] + + +% Chinese traditional characters +% +% character set: CNS 11643-1992 plane 4 +% font encoding: CJK (standard) + +\DeclareFontFamily{C34}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C34}{song}{m}{n}{<-> CJK * c4so12}{\CJKnormal} +\DeclareFontShape{C34}{song}{bx}{n}{<-> CJKb * c4so12}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c35song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c35song.fd new file mode 100644 index 0000000000..9f3a3e65d7 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c35song.fd @@ -0,0 +1,23 @@ +% This is the file c35song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c35song.fd}[\filedate\space\fileversion] + + +% Chinese traditional characters +% +% character set: CNS 11643-1992 plane 5 +% font encoding: CJK (standard) + +\DeclareFontFamily{C35}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C35}{song}{m}{n}{<-> CJK * c5so12}{\CJKnormal} +\DeclareFontShape{C35}{song}{bx}{n}{<-> CJKb * c5so12}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c36song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c36song.fd new file mode 100644 index 0000000000..a576981f5a --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c36song.fd @@ -0,0 +1,23 @@ +% This is the file c36song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c36song.fd}[\filedate\space\fileversion] + + +% Chinese traditional characters +% +% character set: CNS 11643-1992 plane 6 +% font encoding: CJK (standard) + +\DeclareFontFamily{C36}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C36}{song}{m}{n}{<-> CJK * c6so12}{\CJKnormal} +\DeclareFontShape{C36}{song}{bx}{n}{<-> CJKb * c6so12}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c37song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c37song.fd new file mode 100644 index 0000000000..d8a21bf344 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/CNS/c37song.fd @@ -0,0 +1,23 @@ +% This is the file c37song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c37song.fd}[\filedate\space\fileversion] + + +% Chinese traditional characters +% +% character set: CNS 11643-1992 plane 7 +% font encoding: CJK (standard) + +\DeclareFontFamily{C37}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C37}{song}{m}{n}{<-> CJK * c7so12}{\CJKnormal} +\DeclareFontShape{C37}{song}{bx}{n}{<-> CJKb * c7so12}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/GB/GB.cap b/language/chinese/CJK/cjk-4.8.5/texinput/GB/GB.cap new file mode 100644 index 0000000000..f77bfc0da6 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/GB/GB.cap @@ -0,0 +1,86 @@ +% This is the file GB.cap of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{GB.cap}[\filedate\space\fileversion] + + +% Chinese captions +% +% character set: GB 2312-80 +% encoding: EUC + +\renewcommand\contentsname{Ŀ¼} +\renewcommand\listfigurename{²åͼ} +\renewcommand\listtablename{±í¸ñ} + +\CJK@ifundefined\chapter + {\renewcommand\refname{²Î¿¼ÎÄÏ×}} + {\renewcommand\bibname{²Î¿¼ÎÄÏ×}} + +\renewcommand\indexname{Ë÷Òý} + +\newcommand\prefigurename{µÚ} +\newcommand\postfigurename{ͼ} +\renewcommand\figureformat{\prefigurename~\thefigure~\postfigurename} + +\newcommand\pretablename{µÚ} +\newcommand\posttablename{±í} +\renewcommand\tableformat{\pretablename~\thetable~\posttablename} + +\newcommand\prepartname{µÚ} +\newcommand\postpartname{²¿·Ö} +\renewcommand\partformat{\prepartname\CJKnumber{\value{part}}\postpartname} + +% \newcommand\prechaptername{µÚ} +% \newcommand\postchaptername{ÕÂ} +% \newcommand\presectionname{µÚ} +% \newcommand\postsectionname{½Ú} +% \newcommand\preappendixname{µÚ} +% \newcommand\postappendixname{¸½Â¼} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{ÕªÒª}}{} + +% \renewcommand\ccname{} % ? +% \renewcommand\enclname{¸½¼þ} +% \newcommand\prepagename{} % ? +% \newcommand\postpagename{} % ? +% \renewcommand\headtoname{} % ? +% \renewcommand\seename{} % ? + +\renewcommand\today{\number\year Äê\number\month ÔÂ\number\day ÈÕ} +\CJK@ifundefined\CJKnumber + {\def\CJKnumber#1{\ifcase #1\or + Ò»\or ¶þ\or Èý\or ËÄ\or Îå\or + Áù\or Æß\or °Ë\or ¾Å\or Ê®\fi}}{} + +\endinput + +%%% Local Variables: +%%% coding: euc-china +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/GB/GB.cpx b/language/chinese/CJK/cjk-4.8.5/texinput/GB/GB.cpx new file mode 100644 index 0000000000..d24994ce2b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/GB/GB.cpx @@ -0,0 +1,84 @@ +% This is the file GB.cpx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{GB.cpx}[\filedate\space\fileversion] + + +% Chinese captions +% +% character set: GB 2312-80 +% encoding: EUC +% +% preprocessed + +\renewcommand\contentsname{Ä191Â188} +\renewcommand\listfigurename{²229Í188} +\renewcommand\listtablename{±237¸241} + +\CJK@ifundefined\chapter + {\renewcommand\refname{²206¿188Î196Ï215}} + {\renewcommand\bibname{²206¿188Î196Ï215}} + +\renewcommand\indexname{Ë247Ò253} + +\newcommand\prefigurename{µ218} +\newcommand\postfigurename{Í188} +\renewcommand\figureformat{\prefigurename~\thefigure~\postfigurename} + +\newcommand\pretablename{µ218} +\newcommand\posttablename{±237} +\renewcommand\tableformat{\pretablename~\thetable~\posttablename} + +\newcommand\prepartname{µ218} +\newcommand\postpartname{²191·214} +\renewcommand\partformat{\prepartname\CJKnumber{\value{part}}\postpartname} + +% \newcommand\prechaptername{µ218} +% \newcommand\postchaptername{Õ194} +% \newcommand\presectionname{µ218} +% \newcommand\postsectionname{½218} +% \newcommand\preappendixname{µ218} +% \newcommand\postappendixname{¸189Â188} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{Õ170Ò170}}{} + +% \renewcommand\ccname{} % ? +% \renewcommand\enclname{¸189¼254} +% \newcommand\prepagename{} % ? +% \newcommand\postpagename{} % ? +% \renewcommand\headtoname{} % ? +% \renewcommand\seename{} % ? + +\renewcommand\today{% + \number\year Ä234\number\month Ô194\number\day È213} +\CJK@ifundefined\CJKnumber + {\def\CJKnumber#1{% + \ifcase #1\or + Ò187\or ¶254\or È253\or Ë196\or Î229\or + Á249\or Æ223\or °203\or ¾197\or Ê174\fi}}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10fs.fd b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10fs.fd new file mode 100644 index 0000000000..1ecdbb103d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10fs.fd @@ -0,0 +1,25 @@ +% This is the file c10fs.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c10fs.fd}[\filedate\space\fileversion] + + +% simplified Chinese characters +% +% character set: GB 2312-80 +% font encoding: CJK (standard) + +\DeclareFontFamily{C10}{fs}{\hyphenchar \font\m@ne} + +% jfs56 + +\DeclareFontShape{C10}{fs}{m}{n}{<-> CJK * gsfs14}{\CJKnormal} +\DeclareFontShape{C10}{fs}{bx}{n}{<-> CJKb * gsfs14}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10gbsn.fd b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10gbsn.fd new file mode 100644 index 0000000000..839cd72e23 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10gbsn.fd @@ -0,0 +1,25 @@ +% This is the file c10gbsn.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c10gbsn.fd}[\filedate\space\fileversion] + + +% simplified Chinese characters +% +% character set: GB 2312-80 +% font encoding: CJK (standard) + +% Arphic PL TrueType font AR PL SungtiL GB / BousungEG-Light-GB + +\DeclareFontFamily{C10}{gbsn}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C10}{gbsn}{m}{n}{<-> CJK * gbsnlp}{\CJKnormal} +\DeclareFontShape{C10}{gbsn}{bx}{n}{<-> CJKb * gbsnlp}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10gbsn.fdx b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10gbsn.fdx new file mode 100644 index 0000000000..d65645ce6c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10gbsn.fdx @@ -0,0 +1,70 @@ +% This is the file c10gbsn.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c10gbsn.fdx}[\filedate\space\fileversion] + + +\CJKvdef{fullheight}{1em} +\CJKvdef{height}{.88em} +\CJKvdef{offset}{.5em} +\CJKvdef{simpleoffset}{-.1em} + +\CJKvdef{m/n/01/1}{\raise .15em \hbox to 1em {\kern -.15em \CJKsymbol{1}\hss}} +\CJKvdef{m/n/01/2}{\raise .15em \hbox to 1em {\kern -.15em \CJKsymbol{2}\hss}} +\CJKvdef{m/n/01/17}{\CJKsymbolsimple{17}} +\CJKvdef{m/n/01/18}{\CJKsymbolsimple{18}} +\CJKvdef{m/n/01/19}{\CJKsymbolsimple{19}} +\CJKvdef{m/n/01/20}{\CJKsymbolsimple{20}} +\CJKvdef{m/n/01/21}{\CJKsymbolsimple{21}} +\CJKvdef{m/n/01/22}{\CJKsymbolsimple{22}} +\CJKvdef{m/n/01/23}{\CJKsymbolsimple{23}} +\CJKvdef{m/n/01/24}{\CJKsymbolsimple{24}} +\CJKvdef{m/n/01/25}{\CJKsymbolsimple{25}} +\CJKvdef{m/n/01/26}{\CJKsymbolsimple{26}} +\CJKvdef{m/n/01/27}{\CJKsymbolsimple{27}} +\CJKvdef{m/n/01/28}{\CJKsymbolsimple{28}} +\CJKvdef{m/n/01/29}{\CJKsymbolsimple{29}} +\CJKvdef{m/n/01/30}{\CJKsymbolsimple{30}} +\CJKvdef{m/n/01/195}{\CJKsymbolsimple{195}} +\CJKvdef{m/n/01/196}{\CJKsymbolsimple{196}} +\CJKvdef{m/n/01/199}{ + \raise .25em \hbox to 1em {\kern -.35em \CJKsymbol{199}\hss}} +\CJKvdef{m/n/01/201}{ + \raise .25em \hbox to 1em {\kern -.35em \CJKsymbol{201}\hss}} +\CJKvdef{m/n/01/246}{\CJKsymbolsimple{246}} +\CJKvdef{m/n/01/248}{\CJKsymbolsimple{248}} +\CJKvdef{m/n/02/22}{\CJKsymbolsimple{22}} +\CJKvdef{m/n/02/24}{\CJKsymbolsimple{24}} + +\CJKvlet{bx/n/01/1}{m/n/01/1} +\CJKvlet{bx/n/01/2}{m/n/01/2} +\CJKvlet{bx/n/01/17}{m/n/01/17} +\CJKvlet{bx/n/01/18}{m/n/01/18} +\CJKvlet{bx/n/01/19}{m/n/01/19} +\CJKvlet{bx/n/01/20}{m/n/01/20} +\CJKvlet{bx/n/01/21}{m/n/01/21} +\CJKvlet{bx/n/01/22}{m/n/01/22} +\CJKvlet{bx/n/01/23}{m/n/01/23} +\CJKvlet{bx/n/01/24}{m/n/01/24} +\CJKvlet{bx/n/01/25}{m/n/01/25} +\CJKvlet{bx/n/01/26}{m/n/01/26} +\CJKvlet{bx/n/01/27}{m/n/01/27} +\CJKvlet{bx/n/01/28}{m/n/01/28} +\CJKvlet{bx/n/01/29}{m/n/01/29} +\CJKvlet{bx/n/01/30}{m/n/01/30} +\CJKvlet{bx/n/01/195}{m/n/01/195} +\CJKvlet{bx/n/01/196}{m/n/01/196} +\CJKvlet{bx/n/01/199}{m/n/01/199} +\CJKvlet{bx/n/01/201}{m/n/01/201} +\CJKvlet{bx/n/01/246}{m/n/01/246} +\CJKvlet{bx/n/01/248}{m/n/01/248} +\CJKvlet{bx/n/02/22}{m/n/02/22} +\CJKvlet{bx/n/02/24}{m/n/02/24} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10gkai.fd b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10gkai.fd new file mode 100644 index 0000000000..9c5750852a --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10gkai.fd @@ -0,0 +1,25 @@ +% This is the file c10gkai.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c10gkai.fd}[\filedate\space\fileversion] + + +% simplified Chinese characters +% +% character set: GB 2312-80 +% font encoding: CJK (standard) + +% Arphic PL TrueType font AR PL KaitiM GB / GBZenKai-Medium + +\DeclareFontFamily{C10}{gkai}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C10}{gkai}{m}{n}{<-> CJK * gkaimp}{\CJKnormal} +\DeclareFontShape{C10}{gkai}{bx}{n}{<-> CJKb * gkaimp}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10gkai.fdx b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10gkai.fdx new file mode 100644 index 0000000000..aab66e85c1 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10gkai.fdx @@ -0,0 +1,70 @@ +% This is the file c10gkai.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c10gkai.fdx}[\filedate\space\fileversion] + + +\CJKvdef{fullheight}{1em} +\CJKvdef{height}{.88em} +\CJKvdef{offset}{.5em} +\CJKvdef{simpleoffset}{-.1em} + +\CJKvdef{m/n/01/1}{\raise .15em \hbox to 1em {\kern -.15em \CJKsymbol{1}\hss}} +\CJKvdef{m/n/01/2}{\raise .15em \hbox to 1em {\kern -.15em \CJKsymbol{2}\hss}} +\CJKvdef{m/n/01/17}{\CJKsymbolsimple{17}} +\CJKvdef{m/n/01/18}{\CJKsymbolsimple{18}} +\CJKvdef{m/n/01/19}{\CJKsymbolsimple{19}} +\CJKvdef{m/n/01/20}{\CJKsymbolsimple{20}} +\CJKvdef{m/n/01/21}{\CJKsymbolsimple{21}} +\CJKvdef{m/n/01/22}{\CJKsymbolsimple{22}} +\CJKvdef{m/n/01/23}{\CJKsymbolsimple{23}} +\CJKvdef{m/n/01/24}{\CJKsymbolsimple{24}} +\CJKvdef{m/n/01/25}{\CJKsymbolsimple{25}} +\CJKvdef{m/n/01/26}{\CJKsymbolsimple{26}} +\CJKvdef{m/n/01/27}{\CJKsymbolsimple{27}} +\CJKvdef{m/n/01/28}{\CJKsymbolsimple{28}} +\CJKvdef{m/n/01/29}{\CJKsymbolsimple{29}} +\CJKvdef{m/n/01/30}{\CJKsymbolsimple{30}} +\CJKvdef{m/n/01/195}{\CJKsymbolsimple{195}} +\CJKvdef{m/n/01/196}{\CJKsymbolsimple{196}} +\CJKvdef{m/n/01/199}{ + \raise .25em \hbox to 1em {\kern -.35em \CJKsymbol{199}\hss}} +\CJKvdef{m/n/01/201}{ + \raise .25em \hbox to 1em {\kern -.35em \CJKsymbol{201}\hss}} +\CJKvdef{m/n/01/246}{\CJKsymbolsimple{246}} +\CJKvdef{m/n/01/248}{\CJKsymbolsimple{248}} +\CJKvdef{m/n/02/22}{\CJKsymbolsimple{22}} +\CJKvdef{m/n/02/24}{\CJKsymbolsimple{24}} + +\CJKvlet{bx/n/01/1}{m/n/01/1} +\CJKvlet{bx/n/01/2}{m/n/01/2} +\CJKvlet{bx/n/01/17}{m/n/01/17} +\CJKvlet{bx/n/01/18}{m/n/01/18} +\CJKvlet{bx/n/01/19}{m/n/01/19} +\CJKvlet{bx/n/01/20}{m/n/01/20} +\CJKvlet{bx/n/01/21}{m/n/01/21} +\CJKvlet{bx/n/01/22}{m/n/01/22} +\CJKvlet{bx/n/01/23}{m/n/01/23} +\CJKvlet{bx/n/01/24}{m/n/01/24} +\CJKvlet{bx/n/01/25}{m/n/01/25} +\CJKvlet{bx/n/01/26}{m/n/01/26} +\CJKvlet{bx/n/01/27}{m/n/01/27} +\CJKvlet{bx/n/01/28}{m/n/01/28} +\CJKvlet{bx/n/01/29}{m/n/01/29} +\CJKvlet{bx/n/01/30}{m/n/01/30} +\CJKvlet{bx/n/01/195}{m/n/01/195} +\CJKvlet{bx/n/01/196}{m/n/01/196} +\CJKvlet{bx/n/01/199}{m/n/01/199} +\CJKvlet{bx/n/01/201}{m/n/01/201} +\CJKvlet{bx/n/01/246}{m/n/01/246} +\CJKvlet{bx/n/01/248}{m/n/01/248} +\CJKvlet{bx/n/02/22}{m/n/02/22} +\CJKvlet{bx/n/02/24}{m/n/02/24} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10song.fd new file mode 100644 index 0000000000..df5f591476 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c10song.fd @@ -0,0 +1,23 @@ +% This is the file c10song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c10song.fd}[\filedate\space\fileversion] + + +% simplified Chinese characters +% +% character set: GB 2312-80 +% font encoding: CJK (standard) + +\DeclareFontFamily{C10}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C10}{song}{m}{n}{<-> CJKsub * fs/m/n}{} +\DeclareFontShape{C10}{song}{bx}{n}{<-> CJKsub * fs/bx/n}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/GB/c11song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c11song.fd new file mode 100644 index 0000000000..b0b2939e02 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c11song.fd @@ -0,0 +1,23 @@ +% This is the file c11song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c11song.fd}[\filedate\space\fileversion] + + +% simplified Chinese characters +% +% character set: GB 2312-80 +% font encoding: pmC + +\DeclareFontFamily{C11}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C11}{song}{m}{n}{<-> sCJKfixed * wccs}{\CJKnormal} +\DeclareFontShape{C11}{song}{bx}{n}{<-> sCJKfixedb * wccs}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/GB/c19song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c19song.fd new file mode 100644 index 0000000000..d543001cd7 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c19song.fd @@ -0,0 +1,23 @@ +% This is the file c19song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c19song.fd}[\filedate\space\fileversion] + + +% Chinese characters (extension of GB 2312) +% +% character set: GBK +% font encoding: CJK (extended) + +\DeclareFontFamily{C19}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C19}{song}{m}{n}{<-> CJK * gbk}{\CJKnormal} +\DeclareFontShape{C19}{song}{bx}{n}{<-> CJKb * gbk}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/GB/c20song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c20song.fd new file mode 100644 index 0000000000..617b1be7da --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c20song.fd @@ -0,0 +1,31 @@ +% This is the file c20song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c20song.fd}[\filedate\space\fileversion] + + +% traditional Chinese characters +% +% character set: GB/T 12345-90 +% font encoding: CJK (standard) + +\DeclareFontFamily{C20}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C20}{song}{m}{n}{ + <5> <6> <7> <8> <9> CJKfixed * gtso12 + <10> <10.95> <12> sCJKfixed * gtso12 + <14.4> <17.28> <20.74> sCJKfixed * gtso17 + <24.88> CJKfixed * gtso17}{\CJKnormal} +\DeclareFontShape{C20}{song}{bx}{n}{ + <5> <6> <7> <8> <9> CJKfixedb * gtso12 + <10> <10.95> <12> sCJKfixedb * gtso12 + <14.4> <17.28> <20.74> sCJKfixedb * gtso17 + <24.88> CJKfixedb * gtso17}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/GB/c21song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c21song.fd new file mode 100644 index 0000000000..f5eed9d80b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/GB/c21song.fd @@ -0,0 +1,23 @@ +% This is the file c21song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c21song.fd}[\filedate\space\fileversion] + + +% traditional Chinese characters +% +% character set: GB/T 12345-90 +% font encoding: pmC + +\DeclareFontFamily{C21}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C21}{song}{m}{n}{<-> sCJKfixed * wcct}{\CJKnormal} +\DeclareFontShape{C21}{song}{bx}{n}{<-> sCJKfixedb * wcct}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/JIS/EUC-JP.bdg b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/EUC-JP.bdg new file mode 100644 index 0000000000..7d5a0b2f0d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/EUC-JP.bdg @@ -0,0 +1,131 @@ +% This is the file EUC-JP.bdg of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{EUC-JP.bdg}[\filedate\space\fileversion] + + +% The EUC-JP bindings (with single shifts). + +\global\@namedef{CJK@EUC-JPBinding}{ + \CJK@nameppdef{^^8e} + \CJK@namepppdef{^^8f} + + \CJK@nameppdef{^^a1} + \CJK@nameppdef{^^a2} + \CJK@nameppdef{^^a3} + \CJK@nameppdef{^^a4} + \CJK@nameppdef{^^a5} + \CJK@nameppdef{^^a6} + \CJK@nameppdef{^^a7} + \CJK@nameppdef{^^a8} + \CJK@nameppdef{^^a9} + \CJK@nameppdef{^^aa} + \CJK@nameppdef{^^ab} + \CJK@nameppdef{^^ac} + \CJK@nameppdef{^^ad} + \CJK@nameppdef{^^ae} + \CJK@nameppdef{^^af} + \CJK@nameppdef{^^b0} + \CJK@nameppdef{^^b1} + \CJK@nameppdef{^^b2} + \CJK@nameppdef{^^b3} + \CJK@nameppdef{^^b4} + \CJK@nameppdef{^^b5} + \CJK@nameppdef{^^b6} + \CJK@nameppdef{^^b7} + \CJK@nameppdef{^^b8} + \CJK@nameppdef{^^b9} + \CJK@nameppdef{^^ba} + \CJK@nameppdef{^^bb} + \CJK@nameppdef{^^bc} + \CJK@nameppdef{^^bd} + \CJK@nameppdef{^^be} + \CJK@nameppdef{^^bf} + \CJK@nameppdef{^^c0} + \CJK@nameppdef{^^c1} + \CJK@nameppdef{^^c2} + \CJK@nameppdef{^^c3} + \CJK@nameppdef{^^c4} + \CJK@nameppdef{^^c5} + \CJK@nameppdef{^^c6} + \CJK@nameppdef{^^c7} + \CJK@nameppdef{^^c8} + \CJK@nameppdef{^^c9} + \CJK@nameppdef{^^ca} + \CJK@nameppdef{^^cb} + \CJK@nameppdef{^^cc} + \CJK@nameppdef{^^cd} + \CJK@nameppdef{^^ce} + \CJK@nameppdef{^^cf} + \CJK@nameppdef{^^d0} + \CJK@nameppdef{^^d1} + \CJK@nameppdef{^^d2} + \CJK@nameppdef{^^d3} + \CJK@nameppdef{^^d4} + \CJK@nameppdef{^^d5} + \CJK@nameppdef{^^d6} + \CJK@nameppdef{^^d7} + \CJK@nameppdef{^^d8} + \CJK@nameppdef{^^d9} + \CJK@nameppdef{^^da} + \CJK@nameppdef{^^db} + \CJK@nameppdef{^^dc} + \CJK@nameppdef{^^dd} + \CJK@nameppdef{^^de} + \CJK@nameppdef{^^df} + \CJK@nameppdef{^^e0} + \CJK@nameppdef{^^e1} + \CJK@nameppdef{^^e2} + \CJK@nameppdef{^^e3} + \CJK@nameppdef{^^e4} + \CJK@nameppdef{^^e5} + \CJK@nameppdef{^^e6} + \CJK@nameppdef{^^e7} + \CJK@nameppdef{^^e8} + \CJK@nameppdef{^^e9} + \CJK@nameppdef{^^ea} + \CJK@nameppdef{^^eb} + \CJK@nameppdef{^^ec} + \CJK@nameppdef{^^ed} + \CJK@nameppdef{^^ee} + \CJK@nameppdef{^^ef} + \CJK@nameppdef{^^f0} + \CJK@nameppdef{^^f1} + \CJK@nameppdef{^^f2} + \CJK@nameppdef{^^f3} + \CJK@nameppdef{^^f4} + \CJK@nameppdef{^^f5} + \CJK@nameppdef{^^f6} + \CJK@nameppdef{^^f7} + \CJK@nameppdef{^^f8} + \CJK@nameppdef{^^f9} + \CJK@nameppdef{^^fa} + \CJK@nameppdef{^^fb} + \CJK@nameppdef{^^fc} + \CJK@nameppdef{^^fd} + \CJK@nameppdef{^^fe}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/JIS/EUC-JP.chr b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/EUC-JP.chr new file mode 100644 index 0000000000..c317dfae3c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/EUC-JP.chr @@ -0,0 +1,246 @@ +% This is the file EUC-JP.chr of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{EUC-JP.chr}[\filedate\space\fileversion] + + +% define macros for handling characters in EUC-JP encoding. + +\global\@namedef{CJK@EUC-JPChr}{ + \CJK@global\def\CJK@char##1##2##3{ + {\ifnum ##3 < \CJK@min + \CJK@err + \else + \ifnum ##3 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##3\relax + \advance\@tempcnta ##2\relax + \edef\CJK@plane{##1} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% the same, but the plane crosses the font file boundary. + + \CJK@global\def\CJK@charx##1##2##3##4{ + {\ifnum ##4 < \CJK@min + \CJK@err + \else + \ifnum ##4 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##4\relax + \@tempcntb 256\relax + \advance\@tempcnta ##3\relax + \advance\@tempcntb -##3\relax + \chardef\@temp \@tempcntb + \ifnum ##4 < \@temp + \edef\CJK@plane{##1} + \else + \advance\@tempcnta -256\relax + \edef\CJK@plane{##2} + \fi + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% for punctuation. + + \CJK@global\def\CJK@punctchar##1##2##3##4{ + {\ifnum ##4 < \CJK@min + \CJK@err + \else + \ifnum ##4 > \CJK@max + \CJK@err + \else + \CJK@numbToHex{\CJK@gtemp}{##4} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##4\relax + \advance\@tempcnta ##3\relax + \edef\CJK@plane{##2} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \fi + \fi}} + + \CJK@global\def\CJK@punctcharx##1##2##3##4##5{ + {\ifnum ##5 < \CJK@min + \CJK@err + \else + \ifnum ##5 > \CJK@max + \CJK@err + \else + \CJK@numbToHex{\CJK@gtemp}{##5} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##5\relax + \@tempcntb 256\relax + \advance\@tempcnta ##4\relax + \advance\@tempcntb -##4\relax + \chardef\@temp \@tempcntb + \ifnum ##5 < \@temp + \edef\CJK@plane{##2} + \else + \advance\@tempcnta -256\relax + \edef\CJK@plane{##3} + \fi + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \fi + \fi}} + +% for half-width katakana accessed via the SS2 code (0x8E) + + \CJK@global\def\CJK@shiftchar##1{ + {\ifnum ##1 < \CJK@min + \CJK@err + \else + \ifnum ##1 > \CJK@max + \CJK@err + \else + \CJK@numbToHex{\CJK@gtemp}{##1} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{\CJK@altenc}{}{\CJK@gtemp} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \def\CJK@plane{} + \usefont{\CJK@altenc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\number ##1/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{##1} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{\CJK@altenc}{}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \fi + \fi}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/JIS/EUC-JP.enc b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/EUC-JP.enc new file mode 100644 index 0000000000..00fe23c82a --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/EUC-JP.enc @@ -0,0 +1,141 @@ +% This is the file EUC-JP.enc of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{EUC-JP.enc}[\filedate\space\fileversion] + + +% EUC-JP encoding: +% +% Half-width katakana (C49) 0x8EA1-0x8EDF +% JIS X 0212-1992 (C5x) 0x8FA1A1-0x8FFEFE +% JIS X 0208:1997 (C4x) 0xA1A1-0xFEFE + +\global\@namedef{CJK@EUC-JPEncoding}{ + \CJK@loadChr{EUC-JP} + + % if in preprocessed mode, `\@gobble' will be gobbled, and + % \CJK@shiftError becomes active + \CJK@namegdef{^^8e}##1{\@gobble\CJK@shiftError + \CJK@shiftchar{##1}} + \CJK@namegdef{^^8f}##1##2{\@gobble\CJK@shiftError + \CJKchar[JIS2]{\number ##1}{\number ##2}} + + \CJK@namegdef{^^a1}##1{\@empty\CJK@punctchar {A1}{01}{-161}{##1}} + \CJK@namegdef{^^a2}##1{\@empty\CJK@punctchar {A2}{01}{ -67}{##1}} + \CJK@namegdef{^^a3}##1{\@empty\CJK@punctcharx{A3}{01}{02}{27}{##1}} + \CJK@namegdef{^^a4}##1{\@empty\CJK@punctchar {A4}{02}{-135}{##1}} + \CJK@namegdef{^^a5}##1{\@empty\CJK@punctchar {A5}{02}{ -41}{##1}} + \CJK@namegdef{^^a6}##1{\@empty\CJK@charx{02}{03}{53}{##1}} + \CJK@namegdef{^^a7}##1{\@empty\CJK@char {03}{-109}{##1}} + \CJK@namegdef{^^a8}##1{\@empty\CJK@char {03}{ -15}{##1}} + \CJK@namegdef{^^a9}##1{\@empty\CJK@charx{03}{04}{79}{##1}} + \CJK@namegdef{^^aa}##1{\@empty\CJK@char {04}{ -83}{##1}} + \CJK@namegdef{^^ab}##1{\@empty\CJK@charx{04}{05}{11}{##1}} + \CJK@namegdef{^^ac}##1{\@empty\CJK@char {05}{-151}{##1}} + \CJK@namegdef{^^ad}##1{\@empty\CJK@char {05}{ -57}{##1}} + \CJK@namegdef{^^ae}##1{\@empty\CJK@charx{05}{06}{37}{##1}} + \CJK@namegdef{^^af}##1{\@empty\CJK@char {06}{-125}{##1}} + \CJK@namegdef{^^b0}##1{\@empty\CJK@char {06}{ -31}{##1}} + \CJK@namegdef{^^b1}##1{\@empty\CJK@charx{06}{07}{63}{##1}} + \CJK@namegdef{^^b2}##1{\@empty\CJK@char {07}{ -99}{##1}} + \CJK@namegdef{^^b3}##1{\@empty\CJK@char {07}{ -5}{##1}} + \CJK@namegdef{^^b4}##1{\@empty\CJK@charx{07}{08}{89}{##1}} + \CJK@namegdef{^^b5}##1{\@empty\CJK@char {08}{ -73}{##1}} + \CJK@namegdef{^^b6}##1{\@empty\CJK@charx{08}{09}{21}{##1}} + \CJK@namegdef{^^b7}##1{\@empty\CJK@char {09}{-141}{##1}} + \CJK@namegdef{^^b8}##1{\@empty\CJK@char {09}{ -47}{##1}} + \CJK@namegdef{^^b9}##1{\@empty\CJK@charx{09}{10}{47}{##1}} + \CJK@namegdef{^^ba}##1{\@empty\CJK@char {10}{-115}{##1}} + \CJK@namegdef{^^bb}##1{\@empty\CJK@char {10}{ -21}{##1}} + \CJK@namegdef{^^bc}##1{\@empty\CJK@charx{10}{11}{73}{##1}} + \CJK@namegdef{^^bd}##1{\@empty\CJK@char {11}{ -89}{##1}} + \CJK@namegdef{^^be}##1{\@empty\CJK@charx{11}{12}{ 5}{##1}} + \CJK@namegdef{^^bf}##1{\@empty\CJK@char {12}{-157}{##1}} + \CJK@namegdef{^^c0}##1{\@empty\CJK@char {12}{ -63}{##1}} + \CJK@namegdef{^^c1}##1{\@empty\CJK@charx{12}{13}{31}{##1}} + \CJK@namegdef{^^c2}##1{\@empty\CJK@char {13}{-131}{##1}} + \CJK@namegdef{^^c3}##1{\@empty\CJK@char {13}{ -37}{##1}} + \CJK@namegdef{^^c4}##1{\@empty\CJK@charx{13}{14}{57}{##1}} + \CJK@namegdef{^^c5}##1{\@empty\CJK@char {14}{-105}{##1}} + \CJK@namegdef{^^c6}##1{\@empty\CJK@char {14}{ -11}{##1}} + \CJK@namegdef{^^c7}##1{\@empty\CJK@charx{14}{15}{83}{##1}} + \CJK@namegdef{^^c8}##1{\@empty\CJK@char {15}{ -79}{##1}} + \CJK@namegdef{^^c9}##1{\@empty\CJK@charx{15}{16}{15}{##1}} + \CJK@namegdef{^^ca}##1{\@empty\CJK@char {16}{-147}{##1}} + \CJK@namegdef{^^cb}##1{\@empty\CJK@char {16}{ -53}{##1}} + \CJK@namegdef{^^cc}##1{\@empty\CJK@charx{16}{17}{41}{##1}} + \CJK@namegdef{^^cd}##1{\@empty\CJK@char {17}{-121}{##1}} + \CJK@namegdef{^^ce}##1{\@empty\CJK@char {17}{ -27}{##1}} + \CJK@namegdef{^^cf}##1{\@empty\CJK@charx{17}{18}{67}{##1}} + \CJK@namegdef{^^d0}##1{\@empty\CJK@char {18}{ -95}{##1}} + \CJK@namegdef{^^d1}##1{\@empty\CJK@char {18}{ -1}{##1}} + \CJK@namegdef{^^d2}##1{\@empty\CJK@charx{18}{19}{93}{##1}} + \CJK@namegdef{^^d3}##1{\@empty\CJK@char {19}{ -69}{##1}} + \CJK@namegdef{^^d4}##1{\@empty\CJK@charx{19}{20}{25}{##1}} + \CJK@namegdef{^^d5}##1{\@empty\CJK@char {20}{-137}{##1}} + \CJK@namegdef{^^d6}##1{\@empty\CJK@char {20}{ -43}{##1}} + \CJK@namegdef{^^d7}##1{\@empty\CJK@charx{20}{21}{51}{##1}} + \CJK@namegdef{^^d8}##1{\@empty\CJK@char {21}{-111}{##1}} + \CJK@namegdef{^^d9}##1{\@empty\CJK@char {21}{ -17}{##1}} + \CJK@namegdef{^^da}##1{\@empty\CJK@charx{21}{22}{77}{##1}} + \CJK@namegdef{^^db}##1{\@empty\CJK@char {22}{ -85}{##1}} + \CJK@namegdef{^^dc}##1{\@empty\CJK@charx{22}{23}{ 9}{##1}} + \CJK@namegdef{^^dd}##1{\@empty\CJK@char {23}{-153}{##1}} + \CJK@namegdef{^^de}##1{\@empty\CJK@char {23}{ -59}{##1}} + \CJK@namegdef{^^df}##1{\@empty\CJK@charx{23}{24}{35}{##1}} + \CJK@namegdef{^^e0}##1{\@empty\CJK@char {24}{-127}{##1}} + \CJK@namegdef{^^e1}##1{\@empty\CJK@char {24}{ -33}{##1}} + \CJK@namegdef{^^e2}##1{\@empty\CJK@charx{24}{25}{61}{##1}} + \CJK@namegdef{^^e3}##1{\@empty\CJK@char {25}{-101}{##1}} + \CJK@namegdef{^^e4}##1{\@empty\CJK@char {25}{ -7}{##1}} + \CJK@namegdef{^^e5}##1{\@empty\CJK@charx{25}{26}{87}{##1}} + \CJK@namegdef{^^e6}##1{\@empty\CJK@char {26}{ -75}{##1}} + \CJK@namegdef{^^e7}##1{\@empty\CJK@charx{26}{27}{19}{##1}} + \CJK@namegdef{^^e8}##1{\@empty\CJK@char {27}{-143}{##1}} + \CJK@namegdef{^^e9}##1{\@empty\CJK@char {27}{ -49}{##1}} + \CJK@namegdef{^^ea}##1{\@empty\CJK@charx{27}{28}{45}{##1}} + \CJK@namegdef{^^eb}##1{\@empty\CJK@char {28}{-117}{##1}} + \CJK@namegdef{^^ec}##1{\@empty\CJK@char {28}{ -23}{##1}} + \CJK@namegdef{^^ed}##1{\@empty\CJK@charx{28}{29}{71}{##1}} + \CJK@namegdef{^^ee}##1{\@empty\CJK@char {29}{ -91}{##1}} + \CJK@namegdef{^^ef}##1{\@empty\CJK@charx{29}{30}{ 3}{##1}} + \CJK@namegdef{^^f0}##1{\@empty\CJK@char {30}{-159}{##1}} + \CJK@namegdef{^^f1}##1{\@empty\CJK@char {30}{ -65}{##1}} + \CJK@namegdef{^^f2}##1{\@empty\CJK@charx{30}{31}{29}{##1}} + \CJK@namegdef{^^f3}##1{\@empty\CJK@char {31}{-133}{##1}} + \CJK@namegdef{^^f4}##1{\@empty\CJK@char {31}{ -39}{##1}} + \CJK@namegdef{^^f5}##1{\@empty\CJK@charx{31}{32}{55}{##1}} + \CJK@namegdef{^^f6}##1{\@empty\CJK@char {32}{-107}{##1}} + \CJK@namegdef{^^f7}##1{\@empty\CJK@char {32}{ -13}{##1}} + \CJK@namegdef{^^f8}##1{\@empty\CJK@charx{32}{33}{81}{##1}} + \CJK@namegdef{^^f9}##1{\@empty\CJK@char {33}{ -81}{##1}} + \CJK@namegdef{^^fa}##1{\@empty\CJK@charx{33}{34}{13}{##1}} + \CJK@namegdef{^^fb}##1{\@empty\CJK@char {34}{-149}{##1}} + \CJK@namegdef{^^fc}##1{\@empty\CJK@char {34}{ -55}{##1}} + \CJK@namegdef{^^fd}##1{\@empty\CJK@charx{34}{35}{39}{##1}} + \CJK@namegdef{^^fe}##1{\@empty\CJK@char {35}{-123}{##1}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/JIS/EUC-JPdnp.enc b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/EUC-JPdnp.enc new file mode 100644 index 0000000000..6d82836884 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/EUC-JPdnp.enc @@ -0,0 +1,142 @@ +% This is the file EUC-JPdnp.enc of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{EUC-JPdnp.enc}[\filedate\space\fileversion] + + +% EUC-JP encoding with dnp font encoding: +% +% Half-width katakana (C49) 0x8EA1-0x8EDF +% JIS X 0212-1992 (C5x) 0x8FA1A1-0x8FFEFE +% JIS X 0208:1997 (C4x) 0xA1A1-0xFEFE + +\global\@namedef{CJK@EUC-JPdnpEncoding}{ + \CJK@loadChr{EUC-JP} + + % if in preprocessed mode, `\@gobble' will be gobbled, and + % \CJK@shiftError becomes active + \CJK@namegdef{^^8e}##1{\@gobble\CJK@shiftError + \CJK@shiftchar{##1}} + \CJK@namegdef{^^8f}##1##2{\@gobble\CJK@shiftError + \CJKchar[JIS2dnp]{\number ##1}{\number ##2}} + + \CJK@namegdef{^^a1}##1{\@empty\CJK@punctchar{A1}{sy}{-160}{##1}} + \CJK@namegdef{^^a2}##1{\@empty\CJK@punctchar{A2}{sy}{ -60}{##1}} + \CJK@namegdef{^^a3}##1{\@empty\CJK@char {roma}{-128}{##1}} + \CJK@namegdef{^^a4}##1{\@empty\CJK@punctchar{A4}{hira}{-160}{##1}} + \CJK@namegdef{^^a5}##1{\@empty\CJK@punctchar{A5}{kata}{-160}{##1}} + \CJK@namegdef{^^a6}##1{\@empty\CJK@char {greek}{-160}{##1}} + \CJK@namegdef{^^a7}##1{\@empty\CJK@char {russian}{-160}{##1}} + \CJK@namegdef{^^a8}##1{\@empty\CJK@char {keisen}{-160}{##1}} + \CJK@namegdef{^^a9}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^aa}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^ab}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^ac}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^ad}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^ae}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^af}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^b0}##1{\@empty\CJK@char {ka}{-161}{##1}} + \CJK@namegdef{^^b1}##1{\@empty\CJK@char {ka}{ -67}{##1}} + \CJK@namegdef{^^b2}##1{\@empty\CJK@charx{ka}{kb}{27}{##1}} + \CJK@namegdef{^^b3}##1{\@empty\CJK@char {kb}{-135}{##1}} + \CJK@namegdef{^^b4}##1{\@empty\CJK@char {kb}{ -41}{##1}} + \CJK@namegdef{^^b5}##1{\@empty\CJK@charx{kb}{kc}{53}{##1}} + \CJK@namegdef{^^b6}##1{\@empty\CJK@char {kc}{-109}{##1}} + \CJK@namegdef{^^b7}##1{\@empty\CJK@char {kc}{ -15}{##1}} + \CJK@namegdef{^^b8}##1{\@empty\CJK@charx{kc}{kd}{79}{##1}} + \CJK@namegdef{^^b9}##1{\@empty\CJK@char {kd}{ -83}{##1}} + \CJK@namegdef{^^ba}##1{\@empty\CJK@charx{kd}{ke}{11}{##1}} + \CJK@namegdef{^^bb}##1{\@empty\CJK@char {ke}{-151}{##1}} + \CJK@namegdef{^^bc}##1{\@empty\CJK@char {ke}{ -57}{##1}} + \CJK@namegdef{^^bd}##1{\@empty\CJK@charx{ke}{kf}{37}{##1}} + \CJK@namegdef{^^be}##1{\@empty\CJK@char {kf}{-125}{##1}} + \CJK@namegdef{^^bf}##1{\@empty\CJK@char {kf}{ -31}{##1}} + \CJK@namegdef{^^c0}##1{\@empty\CJK@charx{kf}{kg}{63}{##1}} + \CJK@namegdef{^^c1}##1{\@empty\CJK@char {kg}{ -99}{##1}} + \CJK@namegdef{^^c2}##1{\@empty\CJK@char {kg}{ -5}{##1}} + \CJK@namegdef{^^c3}##1{\@empty\CJK@charx{kg}{kh}{89}{##1}} + \CJK@namegdef{^^c4}##1{\@empty\CJK@char {kh}{ -73}{##1}} + \CJK@namegdef{^^c5}##1{\@empty\CJK@charx{kh}{ki}{21}{##1}} + \CJK@namegdef{^^c6}##1{\@empty\CJK@char {ki}{-141}{##1}} + \CJK@namegdef{^^c7}##1{\@empty\CJK@char {ki}{ -47}{##1}} + \CJK@namegdef{^^c8}##1{\@empty\CJK@charx{ki}{kj}{47}{##1}} + \CJK@namegdef{^^c9}##1{\@empty\CJK@char {kj}{-115}{##1}} + \CJK@namegdef{^^ca}##1{\@empty\CJK@char {kj}{ -21}{##1}} + \CJK@namegdef{^^cb}##1{\@empty\CJK@charx{kj}{kk}{73}{##1}} + \CJK@namegdef{^^cc}##1{\@empty\CJK@char {kk}{ -89}{##1}} + \CJK@namegdef{^^cd}##1{\@empty\CJK@charx{kk}{kl}{ 5}{##1}} + \CJK@namegdef{^^ce}##1{\@empty\CJK@char {kl}{-157}{##1}} + \CJK@namegdef{^^cf}##1{\@empty\CJK@char {kl}{-63}{##1}} + \CJK@namegdef{^^d0}##1{\@empty\CJK@char {km}{-161}{##1}} + \CJK@namegdef{^^d1}##1{\@empty\CJK@char {km}{ -67}{##1}} + \CJK@namegdef{^^d2}##1{\@empty\CJK@charx{km}{kn}{27}{##1}} + \CJK@namegdef{^^d3}##1{\@empty\CJK@char {kn}{-135}{##1}} + \CJK@namegdef{^^d4}##1{\@empty\CJK@char {kn}{ -41}{##1}} + \CJK@namegdef{^^d5}##1{\@empty\CJK@charx{kn}{ko}{53}{##1}} + \CJK@namegdef{^^d6}##1{\@empty\CJK@char {ko}{-109}{##1}} + \CJK@namegdef{^^d7}##1{\@empty\CJK@char {ko}{ -15}{##1}} + \CJK@namegdef{^^d8}##1{\@empty\CJK@charx{ko}{kp}{79}{##1}} + \CJK@namegdef{^^d9}##1{\@empty\CJK@char {kp}{ -83}{##1}} + \CJK@namegdef{^^da}##1{\@empty\CJK@charx{kp}{kq}{11}{##1}} + \CJK@namegdef{^^db}##1{\@empty\CJK@char {kq}{-151}{##1}} + \CJK@namegdef{^^dc}##1{\@empty\CJK@char {kq}{ -57}{##1}} + \CJK@namegdef{^^dd}##1{\@empty\CJK@charx{kq}{kr}{37}{##1}} + \CJK@namegdef{^^de}##1{\@empty\CJK@char {kr}{-125}{##1}} + \CJK@namegdef{^^df}##1{\@empty\CJK@char {kr}{ -31}{##1}} + \CJK@namegdef{^^e0}##1{\@empty\CJK@charx{kr}{ks}{63}{##1}} + \CJK@namegdef{^^e1}##1{\@empty\CJK@char {ks}{ -99}{##1}} + \CJK@namegdef{^^e2}##1{\@empty\CJK@char {ks}{ -5}{##1}} + \CJK@namegdef{^^e3}##1{\@empty\CJK@charx{ks}{kt}{89}{##1}} + \CJK@namegdef{^^e4}##1{\@empty\CJK@char {kt}{ -73}{##1}} + \CJK@namegdef{^^e5}##1{\@empty\CJK@charx{kt}{ku}{21}{##1}} + \CJK@namegdef{^^e6}##1{\@empty\CJK@char {ku}{-141}{##1}} + \CJK@namegdef{^^e7}##1{\@empty\CJK@char {ku}{ -47}{##1}} + \CJK@namegdef{^^e8}##1{\@empty\CJK@charx{ku}{kv}{47}{##1}} + \CJK@namegdef{^^e9}##1{\@empty\CJK@char {kv}{-115}{##1}} + \CJK@namegdef{^^ea}##1{\@empty\CJK@char {kv}{ -21}{##1}} + \CJK@namegdef{^^eb}##1{\@empty\CJK@charx{kv}{kw}{73}{##1}} + \CJK@namegdef{^^ec}##1{\@empty\CJK@char {kw}{ -89}{##1}} + \CJK@namegdef{^^ed}##1{\@empty\CJK@charx{kw}{kx}{ 5}{##1}} + \CJK@namegdef{^^ee}##1{\@empty\CJK@char {kx}{-157}{##1}} + \CJK@namegdef{^^ef}##1{\@empty\CJK@char {kx}{ -63}{##1}} + \CJK@namegdef{^^f0}##1{\@empty\CJK@charx{kx}{ky}{31}{##1}} + \CJK@namegdef{^^f1}##1{\@empty\CJK@char {ky}{-131}{##1}} + \CJK@namegdef{^^f2}##1{\@empty\CJK@char {ky}{ -37}{##1}} + \CJK@namegdef{^^f3}##1{\@empty\CJK@charx{ky}{kz}{57}{##1}} + \CJK@namegdef{^^f4}##1{\@empty\CJK@char {kz}{-105}{##1}} + \CJK@namegdef{^^f5}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^f6}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^f7}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^f8}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^f9}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^fa}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^fb}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^fc}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^fd}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^fe}##1{\@empty\CJK@errxx} +} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/JIS/JIS.cap b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/JIS.cap new file mode 100644 index 0000000000..2343a53afa --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/JIS.cap @@ -0,0 +1,83 @@ +% This is the file JIS.cap of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{JIS.cap}[\filedate\space\fileversion] + + +% Japanese captions +% +% character set: JIS X 0208:1997 (or JIS X 0208-1990) +% encoding: EUC + +\newif\ifheisei +\let\ifheisei=\iffalse +\def\heisei{\let\ifheisei=\iftrue} + +\renewcommand\contentsname{Ìܼ¡} + +\renewcommand\listfigurename{¿ÞÌܼ¡} +% \newcommand\listfigurename{¿Þ°ìÍ÷} + +\renewcommand\listtablename{ɽÌܼ¡} +% \newcommand\listtablename{ɽ°ìÍ÷} + +\CJK@ifundefined\chapter + {\renewcommand\refname{»²¹Íʸ¸¥} + } + {\renewcommand\bibname{´ØÏ¢½ñÀÒ} +% \renewcommand\bibname{»²¹Íʸ¸¥} + } +\renewcommand\indexname{º÷°ú} + +\renewcommand\figurename{¿Þ} +\renewcommand\tablename{ɽ} + +\newcommand\prepartname{Âè} +\newcommand\postpartname{Éô} +\renewcommand\partformat{\prepartname\CJKnumber{\value{part}}\postpartname} + +% \renewcommand{\appendixname}{ÉíÏ¿} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{Í×»Ý}}{} + +\renewcommand\today{{\ifheisei\count0=\year\else\count0=\year + \advance\count0 -1988 Ê¿À®\,\fi + \ifnum\count0=1 ¸µ\else\number\count0\fi + \,ǯ\hspace{.5em}\nobreak\number\month + \,·î\hspace{.5em}\nobreak\number\day\,Æü}} +\CJK@ifundefined\CJKnumber + {\def\CJKnumber#1{\ifcase #1\or + °ì\or Æó\or »°\or »Í\or ¸Þ\or + Ï»\or ¼·\or Ȭ\or ¶å\or ½½\fi}}{} + +\endinput + +%%% Local Variables: +%%% coding: euc-japan +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/JIS/JIS.cpx b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/JIS.cpx new file mode 100644 index 0000000000..a0cf83415e --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/JIS.cpx @@ -0,0 +1,80 @@ +% This is the file JIS.cpx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{JIS.cpx}[\filedate\space\fileversion] + + +% Japanese captions +% +% character set: JIS X 0208:1997 (or JIS X 0208-1990) +% encoding: EUC +% +% preprocessed + +\newif\ifheisei +\let\ifheisei=\iffalse +\def\heisei{\let\ifheisei=\iftrue} + +\renewcommand\contentsname{Ì220¼161} + +\renewcommand\listfigurename{¿222Ì220¼161} +% \newcommand\listfigurename{¿222°236Í247} + +\renewcommand\listtablename{É189Ì220¼161} +% \newcommand\listtablename{É189°236Í247} + +\CJK@ifundefined\chapter + {\renewcommand\refname{»178¹205Ê184¸165} + } + {\renewcommand\bibname{´216Ï162½241À210} +% \renewcommand\bibname{»178¹205Ê184¸165} + } +\renewcommand\indexname{º247°250} + +\renewcommand\figurename{¿222} +\renewcommand\tablename{É189} + +\newcommand\prepartname{Â232} +\newcommand\postpartname{É244} +\renewcommand\partformat{\prepartname\CJKnumber{\value{part}}\postpartname} + +% \renewcommand{\appendixname}{É237Ï191} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{Í215»221}}{} + +\renewcommand\today{{\ifheisei\count0=\year\else\count0=\year + \advance\count0 -1988 Ê191À174\,\fi + \ifnum\count0=1 ¸181\else\number\count0\fi + \,Ç175\hspace{.5em}\nobreak\number\month + \,·238\hspace{.5em}\nobreak\number\day\,Æ252}} +\CJK@ifundefined\CJKnumber + {\def\CJKnumber#1{% + \ifcase #1\or + °236\or Æ243\or »176\or »205\or ¸222\or + Ï187\or ¼183\or È172\or ¶229\or ½189\fi}}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/JIS/JISdnp.enc b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/JISdnp.enc new file mode 100644 index 0000000000..b888ac61bf --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/JISdnp.enc @@ -0,0 +1,132 @@ +% This is the file JISdnp.enc of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{JISdnp.enc}[\filedate\space\fileversion] + + +% JIS encoding for DNP fonts: +% each plane has 94 characters (GB, JIS etc.) (0xA1 - 0xFE). + +\global\@namedef{CJK@JISdnpEncoding}{ + \CJK@loadChr{standard} + + \CJK@namegdef{^^a1}##1{\@empty\CJK@punctchar{A1}{sy}{-160}{##1}} + \CJK@namegdef{^^a2}##1{\@empty\CJK@punctchar{A2}{sy}{ -60}{##1}} + \CJK@namegdef{^^a3}##1{\@empty\CJK@char {roma}{-128}{##1}} + \CJK@namegdef{^^a4}##1{\@empty\CJK@punctchar{A4}{hira}{-160}{##1}} + \CJK@namegdef{^^a5}##1{\@empty\CJK@punctchar{A5}{kata}{-160}{##1}} + \CJK@namegdef{^^a6}##1{\@empty\CJK@char {greek}{-160}{##1}} + \CJK@namegdef{^^a7}##1{\@empty\CJK@char {russian}{-160}{##1}} + \CJK@namegdef{^^a8}##1{\@empty\CJK@char {keisen}{-160}{##1}} + \CJK@namegdef{^^a9}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^aa}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^ab}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^ac}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^ad}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^ae}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^af}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^b0}##1{\@empty\CJK@char {ka}{-161}{##1}} + \CJK@namegdef{^^b1}##1{\@empty\CJK@char {ka}{ -67}{##1}} + \CJK@namegdef{^^b2}##1{\@empty\CJK@charx{ka}{kb}{27}{##1}} + \CJK@namegdef{^^b3}##1{\@empty\CJK@char {kb}{-135}{##1}} + \CJK@namegdef{^^b4}##1{\@empty\CJK@char {kb}{ -41}{##1}} + \CJK@namegdef{^^b5}##1{\@empty\CJK@charx{kb}{kc}{53}{##1}} + \CJK@namegdef{^^b6}##1{\@empty\CJK@char {kc}{-109}{##1}} + \CJK@namegdef{^^b7}##1{\@empty\CJK@char {kc}{ -15}{##1}} + \CJK@namegdef{^^b8}##1{\@empty\CJK@charx{kc}{kd}{79}{##1}} + \CJK@namegdef{^^b9}##1{\@empty\CJK@char {kd}{ -83}{##1}} + \CJK@namegdef{^^ba}##1{\@empty\CJK@charx{kd}{ke}{11}{##1}} + \CJK@namegdef{^^bb}##1{\@empty\CJK@char {ke}{-151}{##1}} + \CJK@namegdef{^^bc}##1{\@empty\CJK@char {ke}{ -57}{##1}} + \CJK@namegdef{^^bd}##1{\@empty\CJK@charx{ke}{kf}{37}{##1}} + \CJK@namegdef{^^be}##1{\@empty\CJK@char {kf}{-125}{##1}} + \CJK@namegdef{^^bf}##1{\@empty\CJK@char {kf}{ -31}{##1}} + \CJK@namegdef{^^c0}##1{\@empty\CJK@charx{kf}{kg}{63}{##1}} + \CJK@namegdef{^^c1}##1{\@empty\CJK@char {kg}{ -99}{##1}} + \CJK@namegdef{^^c2}##1{\@empty\CJK@char {kg}{ -5}{##1}} + \CJK@namegdef{^^c3}##1{\@empty\CJK@charx{kg}{kh}{89}{##1}} + \CJK@namegdef{^^c4}##1{\@empty\CJK@char {kh}{ -73}{##1}} + \CJK@namegdef{^^c5}##1{\@empty\CJK@charx{kh}{ki}{21}{##1}} + \CJK@namegdef{^^c6}##1{\@empty\CJK@char {ki}{-141}{##1}} + \CJK@namegdef{^^c7}##1{\@empty\CJK@char {ki}{ -47}{##1}} + \CJK@namegdef{^^c8}##1{\@empty\CJK@charx{ki}{kj}{47}{##1}} + \CJK@namegdef{^^c9}##1{\@empty\CJK@char {kj}{-115}{##1}} + \CJK@namegdef{^^ca}##1{\@empty\CJK@char {kj}{ -21}{##1}} + \CJK@namegdef{^^cb}##1{\@empty\CJK@charx{kj}{kk}{73}{##1}} + \CJK@namegdef{^^cc}##1{\@empty\CJK@char {kk}{ -89}{##1}} + \CJK@namegdef{^^cd}##1{\@empty\CJK@charx{kk}{kl}{ 5}{##1}} + \CJK@namegdef{^^ce}##1{\@empty\CJK@char {kl}{-157}{##1}} + \CJK@namegdef{^^cf}##1{\@empty\CJK@char {kl}{-63}{##1}} + \CJK@namegdef{^^d0}##1{\@empty\CJK@char {km}{-161}{##1}} + \CJK@namegdef{^^d1}##1{\@empty\CJK@char {km}{ -67}{##1}} + \CJK@namegdef{^^d2}##1{\@empty\CJK@charx{km}{kn}{27}{##1}} + \CJK@namegdef{^^d3}##1{\@empty\CJK@char {kn}{-135}{##1}} + \CJK@namegdef{^^d4}##1{\@empty\CJK@char {kn}{ -41}{##1}} + \CJK@namegdef{^^d5}##1{\@empty\CJK@charx{kn}{ko}{53}{##1}} + \CJK@namegdef{^^d6}##1{\@empty\CJK@char {ko}{-109}{##1}} + \CJK@namegdef{^^d7}##1{\@empty\CJK@char {ko}{ -15}{##1}} + \CJK@namegdef{^^d8}##1{\@empty\CJK@charx{ko}{kp}{79}{##1}} + \CJK@namegdef{^^d9}##1{\@empty\CJK@char {kp}{ -83}{##1}} + \CJK@namegdef{^^da}##1{\@empty\CJK@charx{kp}{kq}{11}{##1}} + \CJK@namegdef{^^db}##1{\@empty\CJK@char {kq}{-151}{##1}} + \CJK@namegdef{^^dc}##1{\@empty\CJK@char {kq}{ -57}{##1}} + \CJK@namegdef{^^dd}##1{\@empty\CJK@charx{kq}{kr}{37}{##1}} + \CJK@namegdef{^^de}##1{\@empty\CJK@char {kr}{-125}{##1}} + \CJK@namegdef{^^df}##1{\@empty\CJK@char {kr}{ -31}{##1}} + \CJK@namegdef{^^e0}##1{\@empty\CJK@charx{kr}{ks}{63}{##1}} + \CJK@namegdef{^^e1}##1{\@empty\CJK@char {ks}{ -99}{##1}} + \CJK@namegdef{^^e2}##1{\@empty\CJK@char {ks}{ -5}{##1}} + \CJK@namegdef{^^e3}##1{\@empty\CJK@charx{ks}{kt}{89}{##1}} + \CJK@namegdef{^^e4}##1{\@empty\CJK@char {kt}{ -73}{##1}} + \CJK@namegdef{^^e5}##1{\@empty\CJK@charx{kt}{ku}{21}{##1}} + \CJK@namegdef{^^e6}##1{\@empty\CJK@char {ku}{-141}{##1}} + \CJK@namegdef{^^e7}##1{\@empty\CJK@char {ku}{ -47}{##1}} + \CJK@namegdef{^^e8}##1{\@empty\CJK@charx{ku}{kv}{47}{##1}} + \CJK@namegdef{^^e9}##1{\@empty\CJK@char {kv}{-115}{##1}} + \CJK@namegdef{^^ea}##1{\@empty\CJK@char {kv}{ -21}{##1}} + \CJK@namegdef{^^eb}##1{\@empty\CJK@charx{kv}{kw}{73}{##1}} + \CJK@namegdef{^^ec}##1{\@empty\CJK@char {kw}{ -89}{##1}} + \CJK@namegdef{^^ed}##1{\@empty\CJK@charx{kw}{kx}{ 5}{##1}} + \CJK@namegdef{^^ee}##1{\@empty\CJK@char {kx}{-157}{##1}} + \CJK@namegdef{^^ef}##1{\@empty\CJK@char {kx}{ -63}{##1}} + \CJK@namegdef{^^f0}##1{\@empty\CJK@charx{kx}{ky}{31}{##1}} + \CJK@namegdef{^^f1}##1{\@empty\CJK@char {ky}{-131}{##1}} + \CJK@namegdef{^^f2}##1{\@empty\CJK@char {ky}{ -37}{##1}} + \CJK@namegdef{^^f3}##1{\@empty\CJK@charx{ky}{kz}{57}{##1}} + \CJK@namegdef{^^f4}##1{\@empty\CJK@char {kz}{-105}{##1}} + \CJK@namegdef{^^f5}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^f6}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^f7}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^f8}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^f9}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^fa}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^fb}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^fc}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^fd}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^fe}##1{\@empty\CJK@errxx} +} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/JIS/c40song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/c40song.fd new file mode 100644 index 0000000000..d02c88a18c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/c40song.fd @@ -0,0 +1,25 @@ +% This is the file c40song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c40song.fd}[\filedate\space\fileversion] + + +% Japanese characters +% +% character set: JIS X 0208:1997 (or JIS X 0208-1990) +% font encoding: CJK (standard) + +\DeclareFontFamily{C40}{song}{\hyphenchar \font\m@ne} + +% kanji48 + +\DeclareFontShape{C40}{song}{m}{n}{<-> CJK * jsso12}{\CJKnormal} +\DeclareFontShape{C40}{song}{bx}{n}{<-> CJKb * jsso12}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/JIS/c41song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/c41song.fd new file mode 100644 index 0000000000..3ccf078edc --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/c41song.fd @@ -0,0 +1,23 @@ +% This is the file c41song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c41song.fd}[\filedate\space\fileversion] + + +% Japanese characters +% +% character set: JIS X 0208:1997 (or JIS X 0208-1990) +% font encoding: pmC + +\DeclareFontFamily{C41}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C41}{song}{m}{n}{<-> sCJKfixed * wjis}{\CJKnormal} +\DeclareFontShape{C41}{song}{bx}{n}{<-> sCJKfixedb * wjis}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/JIS/c42song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/c42song.fd new file mode 100644 index 0000000000..04efcc35df --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/c42song.fd @@ -0,0 +1,28 @@ +% This is the file c42song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c42song.fd}[\filedate\space\fileversion] + + +% Japanese characters in JIS encoding scheme using DNP fonts. +% Japanese characters +% +% character set: JIS X 0208:1997 (or JIS X 0208-1990) +% font encoding: DNP + +\DeclareFontFamily{C42}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C42}{song}{m}{n} + {<5> <6> <7> <8> <9> <10> <12> DNPgen * dmj + <10.95><14.4><17.28><20.74><24.88> DNP *[10] dmj}{} +\DeclareFontShape{C42}{song}{bx}{n} + {<5> <6> <7> <8> <9> <10> <12> DNPgen * dgj + <10.95><14.4><17.28><20.74><24.88> DNP *[10] dgj}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/JIS/c43song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/c43song.fd new file mode 100644 index 0000000000..42479c424e --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/c43song.fd @@ -0,0 +1,27 @@ +% This is the file c43song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c43song.fd}[\filedate\space\fileversion] + + +% Japanese characters +% +% character set: JIS X 0208:1997 (or JIS X 0208-1990) +% font encoding: DNP + +\DeclareFontFamily{C43}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C43}{song}{m}{n} + {<5> <6> <7> <8> <9> <10> <12> + <10.95><14.4><17.28><20.74><24.88> DNP * mj}{} +\DeclareFontShape{C43}{song}{bx}{n} + {<5> <6> <7> <8> <9> <10> <12> + <10.95><14.4><17.28><20.74><24.88> DNP * bj}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/JIS/c50song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/c50song.fd new file mode 100644 index 0000000000..279a838e40 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/JIS/c50song.fd @@ -0,0 +1,26 @@ +% This is the file c50song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c50song.fd}[\filedate\space\fileversion] + + +% Japanese characters in JIS supplement encoding scheme. +% Japanese characters +% +% character set: JIS X 0212-1990 +% font encoding: CJK (standard) + +\DeclareFontFamily{C50}{song}{\hyphenchar \font\m@ne} + +% kanjix48 + +\DeclareFontShape{C50}{song}{m}{n}{<-> CJK * j2so12}{\CJKnormal} +\DeclareFontShape{C50}{song}{bx}{n}{<-> CJKb * j2so12}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/HLaTeX.chr b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/HLaTeX.chr new file mode 100644 index 0000000000..40a6c602be --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/HLaTeX.chr @@ -0,0 +1,229 @@ +% This is the file HLaTeX.chr of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{HLaTeX.chr}[\filedate\space\fileversion] + + +% define macros for handling hangul fonts and characters. + +\gdef\CJK@HLaTeXChr{ + +% KS symbols -- for Hiragana and Katagana, no kinsoku shori is provided! + + \CJK@global\def\CJK@symbA##1##2##3{ + {\CJK@testLastCJK + \ifCJK@ + \discretionary{}{}{} + \fi + + \edef\CJK@plane{##1} + \usefont{\CJK@symbEnc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\number ##2/\number ##3/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbols{##2}{##3} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK}} + + \CJK@global\def\CJK@symbB##1{ + {\CJK@numbToHex{\CJK@gtemp}{##1} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{KS}{A3}{\CJK@gtemp} + \ifCJK@ + \else + \discretionary{}{}{} + \fi + \fi + + \ifnum ##1 = 220\relax + \edef\CJK@plane{04} + \else + \edef\CJK@plane{07} + \fi + \usefont{\CJK@symbEnc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/163/\number ##1/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbols{163}{##1} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{KS}{A3}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi}} + + \CJK@global\def\CJK@symbC##1##2##3{ + {\CJK@testLastCJK + \ifCJK@ + \discretionary{}{}{} + \fi + + \ifnum ##3 < ##1\relax + \edef\CJK@plane{07} + \else + \ifnum ##3 > 245\relax + \edef\CJK@plane{06} + \else + \edef\CJK@plane{04} + \fi + \fi + \usefont{\CJK@symbEnc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\number ##2/\number ##3/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbols{##2}{##3} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK}} + + \CJK@global\def\CJK@symbD##1{ + {\CJK@numbToHex{\CJK@gtemp}{##1} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{KS}{A1}{\CJK@gtemp} + \ifCJK@ + \else + \discretionary{}{}{} + \fi + \fi + + \edef\CJK@plane{05} + \usefont{\CJK@symbEnc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/161/\number ##1/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbols{161}{##1} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{KS}{A1}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi}} + + +% Hangul syllables + + \CJK@global\def\CJK@altchar##1##2##3{ + {\CJK@testLastCJK + \ifCJK@ + \discretionary{}{}{} + \fi + + \edef\CJK@plane{##1} + \usefont{\CJK@altEnc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\number ##2/\number ##3/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbols{##2}{##3} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK}} + +% the same, but the plane crosses the font file boundary. + + \CJK@global\def\CJK@altcharx##1##2##3##4##5{ + {\CJK@testLastCJK + \ifCJK@ + \discretionary{}{}{} + \fi + + \ifnum ##5 < ##3\relax + \edef\CJK@plane{##1} + \else + \edef\CJK@plane{##2} + \fi + \usefont{\CJK@altEnc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\number ##4/\number ##5/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbols{##4}{##5} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK}} + +% Hanja + + \CJK@global\def\CJK@char##1##2##3{ + {\CJK@testLastCJK + \ifCJK@ + \discretionary{}{}{} + \fi + + \edef\CJK@plane{##1} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\number ##2/\number ##3/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbols{##2}{##3} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK}} + +% the same, but the plane crosses the font file boundary. + + \CJK@global\def\CJK@charx##1##2##3##4##5{ + {\CJK@testLastCJK + \ifCJK@ + \discretionary{}{}{} + \fi + + \ifnum ##5 < ##3\relax + \edef\CJK@plane{##1} + \else + \edef\CJK@plane{##2} + \fi + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\number ##4/\number ##5/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbols{##4}{##5} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/KSHL.enc b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/KSHL.enc new file mode 100644 index 0000000000..5ce501024b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/KSHL.enc @@ -0,0 +1,134 @@ +% This is the file KSHL.enc of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{KSHL.enc}[\filedate\space\fileversion] + + +% KS encoding for HLaTeX >= 0.97 fonts: +% each plane has 94 characters (but 256 characters per subfont); +% Hangul subfonts have the postfixes 0 - 9 +% Hanja subfonts have the postfixes 10 - 29 +% Symbol subfonts have the postfixes 04 - 07 + +\gdef\CJK@KSHLEncoding{ + \CJK@loadChr{HLaTeX} + + \CJK@namegdef{^^a1}##1{\@empty\CJK@symbD{##1}}% Symbols + \CJK@namegdef{^^a2}##1{\@empty\CJK@symbA{05}{162}{##1}} + \CJK@namegdef{^^a3}##1{\@empty\CJK@symbB{##1}} + \CJK@namegdef{^^a4}##1{\@empty\CJK@symbA{04}{164}{##1}} + \CJK@namegdef{^^a5}##1{\@empty\CJK@symbA{07}{165}{##1}} + \CJK@namegdef{^^a6}##1{\@empty\CJK@symbA{06}{166}{##1}} + \CJK@namegdef{^^a7}##1{\@empty\CJK@symbA{05}{167}{##1}} + \CJK@namegdef{^^a8}##1{\@empty\CJK@symbC{176}{168}{##1}} + \CJK@namegdef{^^a9}##1{\@empty\CJK@symbC{177}{169}{##1}} + \CJK@namegdef{^^aa}##1{\@empty\CJK@symbA{06}{170}{##1}} + \CJK@namegdef{^^ab}##1{\@empty\CJK@symbA{06}{171}{##1}} + \CJK@namegdef{^^ac}##1{\@empty\CJK@symbA{07}{172}{##1}} + \CJK@namegdef{^^ad}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^ae}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^af}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^b0}##1{\@empty\CJK@altchar {0}{176}{##1}}% Hangul syllables + \CJK@namegdef{^^b1}##1{\@empty\CJK@altchar {0}{177}{##1}} + \CJK@namegdef{^^b2}##1{\@empty\CJK@altcharx{0}{1}{229}{178}{##1}} + \CJK@namegdef{^^b3}##1{\@empty\CJK@altchar {1}{179}{##1}} + \CJK@namegdef{^^b4}##1{\@empty\CJK@altchar {1}{180}{##1}} + \CJK@namegdef{^^b5}##1{\@empty\CJK@altcharx{1}{2}{203}{181}{##1}} + \CJK@namegdef{^^b6}##1{\@empty\CJK@altchar {2}{182}{##1}} + \CJK@namegdef{^^b7}##1{\@empty\CJK@altchar {2}{183}{##1}} + \CJK@namegdef{^^b8}##1{\@empty\CJK@altcharx{2}{3}{177}{184}{##1}} + \CJK@namegdef{^^b9}##1{\@empty\CJK@altchar {3}{185}{##1}} + \CJK@namegdef{^^ba}##1{\@empty\CJK@altcharx{3}{4}{245}{186}{##1}} + \CJK@namegdef{^^bb}##1{\@empty\CJK@altchar {4}{187}{##1}} + \CJK@namegdef{^^bc}##1{\@empty\CJK@altchar {4}{188}{##1}} + \CJK@namegdef{^^bd}##1{\@empty\CJK@altcharx{4}{5}{219}{189}{##1}} + \CJK@namegdef{^^be}##1{\@empty\CJK@altchar {5}{190}{##1}} + \CJK@namegdef{^^bf}##1{\@empty\CJK@altchar {5}{191}{##1}} + \CJK@namegdef{^^c0}##1{\@empty\CJK@altcharx{5}{6}{193}{192}{##1}} + \CJK@namegdef{^^c1}##1{\@empty\CJK@altchar {6}{193}{##1}} + \CJK@namegdef{^^c2}##1{\@empty\CJK@altchar {6}{194}{##1}} + \CJK@namegdef{^^c3}##1{\@empty\CJK@altcharx{6}{7}{167}{195}{##1}} + \CJK@namegdef{^^c4}##1{\@empty\CJK@altchar {7}{196}{##1}} + \CJK@namegdef{^^c5}##1{\@empty\CJK@altcharx{7}{8}{235}{197}{##1}} + \CJK@namegdef{^^c6}##1{\@empty\CJK@altchar {8}{198}{##1}} + \CJK@namegdef{^^c7}##1{\@empty\CJK@altchar {8}{199}{##1}} + \CJK@namegdef{^^c8}##1{\@empty\CJK@altcharx{8}{9}{209}{200}{##1}} + \CJK@namegdef{^^c9}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^ca}##1{\@empty\CJK@char {10}{202}{##1}}% Hanja + \CJK@namegdef{^^cb}##1{\@empty\CJK@char {10}{203}{##1}} + \CJK@namegdef{^^cc}##1{\@empty\CJK@charx{10}{11}{229}{204}{##1}} + \CJK@namegdef{^^cd}##1{\@empty\CJK@char {11}{205}{##1}} + \CJK@namegdef{^^ce}##1{\@empty\CJK@char {11}{206}{##1}} + \CJK@namegdef{^^cf}##1{\@empty\CJK@charx{11}{12}{203}{207}{##1}} + \CJK@namegdef{^^d0}##1{\@empty\CJK@char {12}{208}{##1}} + \CJK@namegdef{^^d1}##1{\@empty\CJK@char {12}{209}{##1}} + \CJK@namegdef{^^d2}##1{\@empty\CJK@charx{12}{13}{177}{210}{##1}} + \CJK@namegdef{^^d3}##1{\@empty\CJK@char {13}{211}{##1}} + \CJK@namegdef{^^d4}##1{\@empty\CJK@charx{13}{14}{245}{212}{##1}} + \CJK@namegdef{^^d5}##1{\@empty\CJK@char {14}{213}{##1}} + \CJK@namegdef{^^d6}##1{\@empty\CJK@char {14}{214}{##1}} + \CJK@namegdef{^^d7}##1{\@empty\CJK@charx{14}{15}{219}{215}{##1}} + \CJK@namegdef{^^d8}##1{\@empty\CJK@char {15}{216}{##1}} + \CJK@namegdef{^^d9}##1{\@empty\CJK@char {15}{217}{##1}} + \CJK@namegdef{^^da}##1{\@empty\CJK@charx{15}{16}{193}{218}{##1}} + \CJK@namegdef{^^db}##1{\@empty\CJK@char {16}{219}{##1}} + \CJK@namegdef{^^dc}##1{\@empty\CJK@char {16}{220}{##1}} + \CJK@namegdef{^^dd}##1{\@empty\CJK@charx{16}{17}{167}{221}{##1}} + \CJK@namegdef{^^de}##1{\@empty\CJK@char {17}{222}{##1}} + \CJK@namegdef{^^df}##1{\@empty\CJK@charx{17}{18}{235}{223}{##1}} + \CJK@namegdef{^^e0}##1{\@empty\CJK@char {18}{224}{##1}} + \CJK@namegdef{^^e1}##1{\@empty\CJK@char {18}{225}{##1}} + \CJK@namegdef{^^e2}##1{\@empty\CJK@charx{18}{19}{209}{226}{##1}} + \CJK@namegdef{^^e3}##1{\@empty\CJK@char {19}{227}{##1}} + \CJK@namegdef{^^e4}##1{\@empty\CJK@char {19}{228}{##1}} + \CJK@namegdef{^^e5}##1{\@empty\CJK@charx{19}{20}{183}{229}{##1}} + \CJK@namegdef{^^e6}##1{\@empty\CJK@char {20}{230}{##1}} + \CJK@namegdef{^^e7}##1{\@empty\CJK@charx{20}{21}{251}{231}{##1}} + \CJK@namegdef{^^e8}##1{\@empty\CJK@char {21}{232}{##1}} + \CJK@namegdef{^^e9}##1{\@empty\CJK@char {21}{233}{##1}} + \CJK@namegdef{^^ea}##1{\@empty\CJK@charx{21}{22}{225}{234}{##1}} + \CJK@namegdef{^^eb}##1{\@empty\CJK@char {22}{235}{##1}} + \CJK@namegdef{^^ec}##1{\@empty\CJK@char {22}{236}{##1}} + \CJK@namegdef{^^ed}##1{\@empty\CJK@charx{22}{23}{199}{237}{##1}} + \CJK@namegdef{^^ee}##1{\@empty\CJK@char {23}{238}{##1}} + \CJK@namegdef{^^ef}##1{\@empty\CJK@char {23}{239}{##1}} + \CJK@namegdef{^^f0}##1{\@empty\CJK@charx{23}{24}{173}{240}{##1}} + \CJK@namegdef{^^f1}##1{\@empty\CJK@char {24}{241}{##1}} + \CJK@namegdef{^^f2}##1{\@empty\CJK@charx{24}{25}{241}{242}{##1}} + \CJK@namegdef{^^f3}##1{\@empty\CJK@char {25}{243}{##1}} + \CJK@namegdef{^^f4}##1{\@empty\CJK@char {25}{244}{##1}} + \CJK@namegdef{^^f5}##1{\@empty\CJK@charx{25}{26}{215}{245}{##1}} + \CJK@namegdef{^^f6}##1{\@empty\CJK@char {26}{246}{##1}} + \CJK@namegdef{^^f7}##1{\@empty\CJK@char {26}{247}{##1}} + \CJK@namegdef{^^f8}##1{\@empty\CJK@charx{26}{27}{189}{248}{##1}} + \CJK@namegdef{^^f9}##1{\@empty\CJK@char {27}{249}{##1}} + \CJK@namegdef{^^fa}##1{\@empty\CJK@char {27}{250}{##1}} + \CJK@namegdef{^^fb}##1{\@empty\CJK@charx{27}{28}{163}{251}{##1}} + \CJK@namegdef{^^fc}##1{\@empty\CJK@char {28}{252}{##1}} + \CJK@namegdef{^^fd}##1{\@empty\CJK@charx{28}{29}{231}{253}{##1}} +} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63bm.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63bm.fd new file mode 100644 index 0000000000..53a54b72c7 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63bm.fd @@ -0,0 +1,53 @@ +% This is file c63bm.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63bm.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcBom + +\DeclareFontFamily{C63}{bm}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{bm}{c}{n}{<-> CJK * wbmc}{} +\DeclareFontShape{C63}{bm}{c}{sl}{<-> CJK * wbmco}{} +\DeclareFontShape{C63}{bm}{c}{it}{<-> CJKssub * bm/c/sl}{} + +\DeclareFontShape{C63}{bm}{m}{n}{<-> CJK * wbm}{} +\DeclareFontShape{C63}{bm}{m}{sl}{<-> CJK * wbmo}{} +\DeclareFontShape{C63}{bm}{m}{it}{<-> CJKssub * bm/m/sl}{} + +\DeclareFontShape{C63}{bm}{x}{n}{<-> CJK * wbmx}{} +\DeclareFontShape{C63}{bm}{x}{sl}{<-> CJK * wbmxo}{} +\DeclareFontShape{C63}{bm}{x}{it}{<-> CJKssub * bm/x/sl}{} + +\DeclareFontShape{C63}{bm}{ux}{n}{<-> CJK * wbmu}{} +\DeclareFontShape{C63}{bm}{ux}{sl}{<-> CJK * wbmuo}{} +\DeclareFontShape{C63}{bm}{ux}{it}{<-> CJKssub * bm/ux/sl}{} + +\DeclareFontShape{C63}{bm}{bc}{n}{<-> CJKb * wbmc}{\CJKbold} +\DeclareFontShape{C63}{bm}{bc}{sl}{<-> CJKb * wbmco}{\CJKbold} +\DeclareFontShape{C63}{bm}{bc}{it}{<-> CJKssub * bm/bc/sl}{} + +\DeclareFontShape{C63}{bm}{b}{n}{<-> CJKb * wbm}{\CJKbold} +\DeclareFontShape{C63}{bm}{b}{sl}{<-> CJKb * wbmo}{\CJKbold} +\DeclareFontShape{C63}{bm}{b}{it}{<-> CJKssub * bm/b/sl}{} + +\DeclareFontShape{C63}{bm}{bx}{n}{<-> CJKb * wbmx}{\CJKbold} +\DeclareFontShape{C63}{bm}{bx}{sl}{<-> CJKb * wbmxo}{\CJKbold} +\DeclareFontShape{C63}{bm}{bx}{it}{<-> CJKssub * bm/bx/sl}{} + +\DeclareFontShape{C63}{bm}{bux}{n}{<-> CJKb * wbmu}{\CJKbold} +\DeclareFontShape{C63}{bm}{bux}{sl}{<-> CJKb * wbmuo}{\CJKbold} +\DeclareFontShape{C63}{bm}{bux}{it}{<-> CJKssub * bm/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63dn.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63dn.fd new file mode 100644 index 0000000000..1bf465aa6e --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63dn.fd @@ -0,0 +1,69 @@ +% This is file c63dn.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63dn.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcDinaru + +\DeclareFontFamily{C63}{dn}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{dn}{c}{n}{<-> CJK * wdnc}{} +\DeclareFontShape{C63}{dn}{c}{sl}{<-> CJK * wdnco}{} +\DeclareFontShape{C63}{dn}{c}{it}{<-> CJKssub * dn/c/sl}{} + +\DeclareFontShape{C63}{dn}{m}{n}{<-> CJK * wdn}{} +\DeclareFontShape{C63}{dn}{m}{sl}{<-> CJK * wdno}{} +\DeclareFontShape{C63}{dn}{m}{it}{<-> CJKssub * dn/m/sl}{} + +\DeclareFontShape{C63}{dn}{x}{n}{<-> CJK * wdnx}{} +\DeclareFontShape{C63}{dn}{x}{sl}{<-> CJK * wdnxo}{} +\DeclareFontShape{C63}{dn}{x}{it}{<-> CJKssub * dn/x/sl}{} + +\DeclareFontShape{C63}{dn}{ux}{n}{<-> CJK * wdnu}{} +\DeclareFontShape{C63}{dn}{ux}{sl}{<-> CJK * wdnuo}{} +\DeclareFontShape{C63}{dn}{ux}{it}{<-> CJKssub * dn/ux/sl}{} + +\DeclareFontShape{C63}{dn}{bc}{n}{<-> CJK * wdnbc}{} +\DeclareFontShape{C63}{dn}{bc}{sl}{<-> CJK * wdnbco}{} +\DeclareFontShape{C63}{dn}{bc}{it}{<-> CJKssub * dn/bc/sl}{} + +\DeclareFontShape{C63}{dn}{b}{n}{<-> CJK * wdnb}{} +\DeclareFontShape{C63}{dn}{b}{sl}{<-> CJK * wdnbo}{} +\DeclareFontShape{C63}{dn}{b}{it}{<-> CJKssub * dn/b/sl}{} + +\DeclareFontShape{C63}{dn}{bx}{n}{<-> CJK * wdnbx}{} +\DeclareFontShape{C63}{dn}{bx}{sl}{<-> CJK * wdnbxo}{} +\DeclareFontShape{C63}{dn}{bx}{it}{<-> CJKssub * dn/bx/sl}{} + +\DeclareFontShape{C63}{dn}{bux}{n}{<-> CJK * wdnbu}{} +\DeclareFontShape{C63}{dn}{bux}{sl}{<-> CJK * wdnbuo}{} +\DeclareFontShape{C63}{dn}{bux}{it}{<-> CJKssub * dn/bux/sl}{} + +\DeclareFontShape{C63}{dn}{lc}{n}{<-> CJK * wdnlc}{} +\DeclareFontShape{C63}{dn}{lc}{sl}{<-> CJK * wdnlco}{} +\DeclareFontShape{C63}{dn}{lc}{it}{<-> CJKssub * dn/lc/sl}{} + +\DeclareFontShape{C63}{dn}{l}{n}{<-> CJK * wdnl}{} +\DeclareFontShape{C63}{dn}{l}{sl}{<-> CJK * wdnlo}{} +\DeclareFontShape{C63}{dn}{l}{it}{<-> CJKssub * dn/l/sl}{} + +\DeclareFontShape{C63}{dn}{lx}{n}{<-> CJK * wdnlx}{} +\DeclareFontShape{C63}{dn}{lx}{sl}{<-> CJK * wdnlxo}{} +\DeclareFontShape{C63}{dn}{lx}{it}{<-> CJKssub * dn/lx/sl}{} + +\DeclareFontShape{C63}{dn}{lux}{n}{<-> CJK * wdnlu}{} +\DeclareFontShape{C63}{dn}{lux}{sl}{<-> CJK * wdnluo}{} +\DeclareFontShape{C63}{dn}{lux}{it}{<-> CJKssub * dn/lux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63gr.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63gr.fd new file mode 100644 index 0000000000..4bd21a106a --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63gr.fd @@ -0,0 +1,53 @@ +% This is file c63gr.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63gr.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcGraphic + +\DeclareFontFamily{C63}{gr}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{gr}{c}{n}{<-> CJK * wgrc}{} +\DeclareFontShape{C63}{gr}{c}{sl}{<-> CJK * wgrco}{} +\DeclareFontShape{C63}{gr}{c}{it}{<-> CJKssub * gr/c/sl}{} + +\DeclareFontShape{C63}{gr}{m}{n}{<-> CJK * wgr}{} +\DeclareFontShape{C63}{gr}{m}{sl}{<-> CJK * wgro}{} +\DeclareFontShape{C63}{gr}{m}{it}{<-> CJKssub * gr/m/sl}{} + +\DeclareFontShape{C63}{gr}{x}{n}{<-> CJK * wgrx}{} +\DeclareFontShape{C63}{gr}{x}{sl}{<-> CJK * wgrxo}{} +\DeclareFontShape{C63}{gr}{x}{it}{<-> CJKssub * gr/x/sl}{} + +\DeclareFontShape{C63}{gr}{ux}{n}{<-> CJK * wgru}{} +\DeclareFontShape{C63}{gr}{ux}{sl}{<-> CJK * wgruo}{} +\DeclareFontShape{C63}{gr}{ux}{it}{<-> CJKssub * gr/ux/sl}{} + +\DeclareFontShape{C63}{gr}{bc}{n}{<-> CJK * wgrbc}{} +\DeclareFontShape{C63}{gr}{bc}{sl}{<-> CJK * wgrbco}{} +\DeclareFontShape{C63}{gr}{bc}{it}{<-> CJKssub * gr/bc/sl}{} + +\DeclareFontShape{C63}{gr}{b}{n}{<-> CJK * wgrb}{} +\DeclareFontShape{C63}{gr}{b}{sl}{<-> CJK * wgrbo}{} +\DeclareFontShape{C63}{gr}{b}{it}{<-> CJKssub * gr/b/sl}{} + +\DeclareFontShape{C63}{gr}{bx}{n}{<-> CJK * wgrbx}{} +\DeclareFontShape{C63}{gr}{bx}{sl}{<-> CJK * wgrbxo}{} +\DeclareFontShape{C63}{gr}{bx}{it}{<-> CJKssub * gr/bx/sl}{} + +\DeclareFontShape{C63}{gr}{bux}{n}{<-> CJK * wgrbu}{} +\DeclareFontShape{C63}{gr}{bux}{sl}{<-> CJK * wgrbuo}{} +\DeclareFontShape{C63}{gr}{bux}{it}{<-> CJKssub * gr/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63gs.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63gs.fd new file mode 100644 index 0000000000..1dbb1fd71c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63gs.fd @@ -0,0 +1,53 @@ +% This is file c63gs.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63gs.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcGungseo + +\DeclareFontFamily{C63}{gs}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{gs}{bc}{n}{<-> CJK * wgsc}{} +\DeclareFontShape{C63}{gs}{bc}{sl}{<-> CJK * wgsco}{} +\DeclareFontShape{C63}{gs}{bc}{it}{<-> CJKssub * gs/bc/sl}{} + +\DeclareFontShape{C63}{gs}{b}{n}{<-> CJK * wgs}{} +\DeclareFontShape{C63}{gs}{b}{sl}{<-> CJK * wgso}{} +\DeclareFontShape{C63}{gs}{b}{it}{<-> CJKssub * gs/b/sl}{} + +\DeclareFontShape{C63}{gs}{bx}{n}{<-> CJK * wgsx}{} +\DeclareFontShape{C63}{gs}{bx}{sl}{<-> CJK * wgsxo}{} +\DeclareFontShape{C63}{gs}{bx}{it}{<-> CJKssub * gs/bx/sl}{} + +\DeclareFontShape{C63}{gs}{bux}{n}{<-> CJK * wgsu}{} +\DeclareFontShape{C63}{gs}{bux}{sl}{<-> CJK * wgsuo}{} +\DeclareFontShape{C63}{gs}{bux}{it}{<-> CJKssub * gs/bux/sl}{} + +\DeclareFontShape{C63}{gs}{c}{n}{<-> CJKssub * gs/bc/n}{} +\DeclareFontShape{C63}{gs}{c}{sl}{<-> CJKssub * gs/bc/sl}{} +\DeclareFontShape{C63}{gs}{c}{it}{<-> CJKssub * gs/bc/sl}{} + +\DeclareFontShape{C63}{gs}{m}{n}{<-> CJKssub * gs/b/n}{} +\DeclareFontShape{C63}{gs}{m}{sl}{<-> CJKssub * gs/b/sl}{} +\DeclareFontShape{C63}{gs}{m}{it}{<-> CJKssub * gs/b/sl}{} + +\DeclareFontShape{C63}{gs}{x}{n}{<-> CJKssub * gs/bx/n}{} +\DeclareFontShape{C63}{gs}{x}{sl}{<-> CJKssub * gs/bx/sl}{} +\DeclareFontShape{C63}{gs}{x}{it}{<-> CJKssub * gs/bx/sl}{} + +\DeclareFontShape{C63}{gs}{ux}{n}{<-> CJKssub * gs/bux/n}{} +\DeclareFontShape{C63}{gs}{ux}{sl}{<-> CJKssub * gs/bux/sl}{} +\DeclareFontShape{C63}{gs}{ux}{it}{<-> CJKssub * gs/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63gt.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63gt.fd new file mode 100644 index 0000000000..a31e213745 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63gt.fd @@ -0,0 +1,53 @@ +% This is file c63gt.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63gt.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcGothic + +\DeclareFontFamily{C63}{gt}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{gt}{c}{n}{<-> CJK * wgtc}{} +\DeclareFontShape{C63}{gt}{c}{sl}{<-> CJK * wgtco}{} +\DeclareFontShape{C63}{gt}{c}{it}{<-> CJKssub * gt/c/sl}{} + +\DeclareFontShape{C63}{gt}{m}{n}{<-> CJK * wgt}{} +\DeclareFontShape{C63}{gt}{m}{sl}{<-> CJK * wgto}{} +\DeclareFontShape{C63}{gt}{m}{it}{<-> CJKssub * gt/m/sl}{} + +\DeclareFontShape{C63}{gt}{x}{n}{<-> CJK * wgtx}{} +\DeclareFontShape{C63}{gt}{x}{sl}{<-> CJK * wgtxo}{} +\DeclareFontShape{C63}{gt}{x}{it}{<-> CJKssub * gt/x/sl}{} + +\DeclareFontShape{C63}{gt}{ux}{n}{<-> CJK * wgtu}{} +\DeclareFontShape{C63}{gt}{ux}{sl}{<-> CJK * wgtuo}{} +\DeclareFontShape{C63}{gt}{ux}{it}{<-> CJKssub * gt/ux/sl}{} + +\DeclareFontShape{C63}{gt}{bc}{n}{<-> CJK * wgtbc}{} +\DeclareFontShape{C63}{gt}{bc}{sl}{<-> CJK * wgtbco}{} +\DeclareFontShape{C63}{gt}{bc}{it}{<-> CJKssub * gt/bc/sl}{} + +\DeclareFontShape{C63}{gt}{b}{n}{<-> CJK * wgtb}{} +\DeclareFontShape{C63}{gt}{b}{sl}{<-> CJK * wgtbo}{} +\DeclareFontShape{C63}{gt}{b}{it}{<-> CJKssub * gt/b/sl}{} + +\DeclareFontShape{C63}{gt}{bx}{n}{<-> CJK * wgtbx}{} +\DeclareFontShape{C63}{gt}{bx}{sl}{<-> CJK * wgtbxo}{} +\DeclareFontShape{C63}{gt}{bx}{it}{<-> CJKssub * gt/bx/sl}{} + +\DeclareFontShape{C63}{gt}{bux}{n}{<-> CJK * wgtbu}{} +\DeclareFontShape{C63}{gt}{bux}{sl}{<-> CJK * wgtbuo}{} +\DeclareFontShape{C63}{gt}{bux}{it}{<-> CJKssub * gt/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63jgt.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63jgt.fd new file mode 100644 index 0000000000..ef1fa5cea3 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63jgt.fd @@ -0,0 +1,53 @@ +% This is file c63jgt.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63jgt.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcJamoGothic + +\DeclareFontFamily{C63}{jgt}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{jgt}{c}{n}{<-> CJK * wjgtc}{} +\DeclareFontShape{C63}{jgt}{c}{sl}{<-> CJK * wjgtco}{} +\DeclareFontShape{C63}{jgt}{c}{it}{<-> CJKssub * jgt/c/sl}{} + +\DeclareFontShape{C63}{jgt}{m}{n}{<-> CJK * wjgt}{} +\DeclareFontShape{C63}{jgt}{m}{sl}{<-> CJK * wjgto}{} +\DeclareFontShape{C63}{jgt}{m}{it}{<-> CJKssub * jgt/m/sl}{} + +\DeclareFontShape{C63}{jgt}{x}{n}{<-> CJK * wjgtx}{} +\DeclareFontShape{C63}{jgt}{x}{sl}{<-> CJK * wjgtxo}{} +\DeclareFontShape{C63}{jgt}{x}{it}{<-> CJKssub * jgt/x/sl}{} + +\DeclareFontShape{C63}{jgt}{ux}{n}{<-> CJK * wjgtu}{} +\DeclareFontShape{C63}{jgt}{ux}{sl}{<-> CJK * wjgtuo}{} +\DeclareFontShape{C63}{jgt}{ux}{it}{<-> CJKssub * jgt/ux/sl}{} + +\DeclareFontShape{C63}{jgt}{bc}{n}{<-> CJKb * wjgtc}{\CJKbold} +\DeclareFontShape{C63}{jgt}{bc}{sl}{<-> CJKb * wjgtco}{\CJKbold} +\DeclareFontShape{C63}{jgt}{bc}{it}{<-> CJKssub * jgt/bc/sl}{} + +\DeclareFontShape{C63}{jgt}{b}{n}{<-> CJKb * wjgt}{\CJKbold} +\DeclareFontShape{C63}{jgt}{b}{sl}{<-> CJKb * wjgto}{\CJKbold} +\DeclareFontShape{C63}{jgt}{b}{it}{<-> CJKssub * jgt/b/sl}{} + +\DeclareFontShape{C63}{jgt}{bx}{n}{<-> CJKb * wjgtx}{\CJKbold} +\DeclareFontShape{C63}{jgt}{bx}{sl}{<-> CJKb * wjgtxo}{\CJKbold} +\DeclareFontShape{C63}{jgt}{bx}{it}{<-> CJKssub * jgt/bx/sl}{} + +\DeclareFontShape{C63}{jgt}{bux}{n}{<-> CJKb * wjgtu}{\CJKbold} +\DeclareFontShape{C63}{jgt}{bux}{sl}{<-> CJKb * wjgtuo}{\CJKbold} +\DeclareFontShape{C63}{jgt}{bux}{it}{<-> CJKssub * jgt/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63jmj.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63jmj.fd new file mode 100644 index 0000000000..2e1a2bfb0f --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63jmj.fd @@ -0,0 +1,53 @@ +% This is file c63jmj.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63jmj.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcJamoMyoungjo + +\DeclareFontFamily{C63}{jmj}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{jmj}{c}{n}{<-> CJK * wjmjc}{} +\DeclareFontShape{C63}{jmj}{c}{sl}{<-> CJK * wjmjco}{} +\DeclareFontShape{C63}{jmj}{c}{it}{<-> CJKssub * jmj/c/sl}{} + +\DeclareFontShape{C63}{jmj}{m}{n}{<-> CJK * wjmj}{} +\DeclareFontShape{C63}{jmj}{m}{sl}{<-> CJK * wjmjo}{} +\DeclareFontShape{C63}{jmj}{m}{it}{<-> CJKssub * jmj/m/sl}{} + +\DeclareFontShape{C63}{jmj}{x}{n}{<-> CJK * wjmjx}{} +\DeclareFontShape{C63}{jmj}{x}{sl}{<-> CJK * wjmjxo}{} +\DeclareFontShape{C63}{jmj}{x}{it}{<-> CJKssub * jmj/x/sl}{} + +\DeclareFontShape{C63}{jmj}{ux}{n}{<-> CJK * wjmju}{} +\DeclareFontShape{C63}{jmj}{ux}{sl}{<-> CJK * wjmjuo}{} +\DeclareFontShape{C63}{jmj}{ux}{it}{<-> CJKssub * jmj/ux/sl}{} + +\DeclareFontShape{C63}{jmj}{bc}{n}{<-> CJKb * wjmjc}{\CJKbold} +\DeclareFontShape{C63}{jmj}{bc}{sl}{<-> CJKb * wjmjco}{\CJKbold} +\DeclareFontShape{C63}{jmj}{bc}{it}{<-> CJKssub * jmj/bc/sl}{} + +\DeclareFontShape{C63}{jmj}{b}{n}{<-> CJKb * wjmj}{\CJKbold} +\DeclareFontShape{C63}{jmj}{b}{sl}{<-> CJKb * wjmjo}{\CJKbold} +\DeclareFontShape{C63}{jmj}{b}{it}{<-> CJKssub * jmj/b/sl}{} + +\DeclareFontShape{C63}{jmj}{bx}{n}{<-> CJKb * wjmjx}{\CJKbold} +\DeclareFontShape{C63}{jmj}{bx}{sl}{<-> CJKb * wjmjxo}{\CJKbold} +\DeclareFontShape{C63}{jmj}{bx}{it}{<-> CJKssub * jmj/bx/sl}{} + +\DeclareFontShape{C63}{jmj}{bux}{n}{<-> CJKb * wjmju}{\CJKbold} +\DeclareFontShape{C63}{jmj}{bux}{sl}{<-> CJKb * wjmjuo}{\CJKbold} +\DeclareFontShape{C63}{jmj}{bux}{it}{<-> CJKssub * jmj/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63jnv.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63jnv.fd new file mode 100644 index 0000000000..4bc3278c91 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63jnv.fd @@ -0,0 +1,53 @@ +% This is file c63jnv.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63jnv.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcJamoNovel + +\DeclareFontFamily{C63}{jnv}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{jnv}{c}{n}{<-> CJK * wjnvc}{} +\DeclareFontShape{C63}{jnv}{c}{sl}{<-> CJK * wjnvco}{} +\DeclareFontShape{C63}{jnv}{c}{it}{<-> CJKssub * jnv/c/sl}{} + +\DeclareFontShape{C63}{jnv}{m}{n}{<-> CJK * wjnv}{} +\DeclareFontShape{C63}{jnv}{m}{sl}{<-> CJK * wjnvo}{} +\DeclareFontShape{C63}{jnv}{m}{it}{<-> CJKssub * jnv/m/sl}{} + +\DeclareFontShape{C63}{jnv}{x}{n}{<-> CJK * wjnvx}{} +\DeclareFontShape{C63}{jnv}{x}{sl}{<-> CJK * wjnvxo}{} +\DeclareFontShape{C63}{jnv}{x}{it}{<-> CJKssub * jnv/x/sl}{} + +\DeclareFontShape{C63}{jnv}{ux}{n}{<-> CJK * wjnvu}{} +\DeclareFontShape{C63}{jnv}{ux}{sl}{<-> CJK * wjnvuo}{} +\DeclareFontShape{C63}{jnv}{ux}{it}{<-> CJKssub * jnv/ux/sl}{} + +\DeclareFontShape{C63}{jnv}{bc}{n}{<-> CJKb * wjnvc}{\CJKbold} +\DeclareFontShape{C63}{jnv}{bc}{sl}{<-> CJKb * wjnvco}{\CJKbold} +\DeclareFontShape{C63}{jnv}{bc}{it}{<-> CJKssub * jnv/bc/sl}{} + +\DeclareFontShape{C63}{jnv}{b}{n}{<-> CJKb * wjnv}{\CJKbold} +\DeclareFontShape{C63}{jnv}{b}{sl}{<-> CJKb * wjnvo}{\CJKbold} +\DeclareFontShape{C63}{jnv}{b}{it}{<-> CJKssub * jnv/b/sl}{} + +\DeclareFontShape{C63}{jnv}{bx}{n}{<-> CJKb * wjnvx}{\CJKbold} +\DeclareFontShape{C63}{jnv}{bx}{sl}{<-> CJKb * wjnvxo}{\CJKbold} +\DeclareFontShape{C63}{jnv}{bx}{it}{<-> CJKssub * jnv/bx/sl}{} + +\DeclareFontShape{C63}{jnv}{bux}{n}{<-> CJKb * wjnvu}{\CJKbold} +\DeclareFontShape{C63}{jnv}{bux}{sl}{<-> CJKb * wjnvuo}{\CJKbold} +\DeclareFontShape{C63}{jnv}{bux}{it}{<-> CJKssub * jnv/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63jsr.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63jsr.fd new file mode 100644 index 0000000000..80d4631a65 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63jsr.fd @@ -0,0 +1,53 @@ +% This is file c63jsr.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63jsr.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcJamoSora + +\DeclareFontFamily{C63}{jsr}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{jsr}{c}{n}{<-> CJK * wjsrc}{} +\DeclareFontShape{C63}{jsr}{c}{sl}{<-> CJK * wjsrco}{} +\DeclareFontShape{C63}{jsr}{c}{it}{<-> CJKssub * jsr/c/sl}{} + +\DeclareFontShape{C63}{jsr}{m}{n}{<-> CJK * wjsr}{} +\DeclareFontShape{C63}{jsr}{m}{sl}{<-> CJK * wjsro}{} +\DeclareFontShape{C63}{jsr}{m}{it}{<-> CJKssub * jsr/m/sl}{} + +\DeclareFontShape{C63}{jsr}{x}{n}{<-> CJK * wjsrx}{} +\DeclareFontShape{C63}{jsr}{x}{sl}{<-> CJK * wjsrxo}{} +\DeclareFontShape{C63}{jsr}{x}{it}{<-> CJKssub * jsr/x/sl}{} + +\DeclareFontShape{C63}{jsr}{ux}{n}{<-> CJK * wjsru}{} +\DeclareFontShape{C63}{jsr}{ux}{sl}{<-> CJK * wjsruo}{} +\DeclareFontShape{C63}{jsr}{ux}{it}{<-> CJKssub * jsr/ux/sl}{} + +\DeclareFontShape{C63}{jsr}{bc}{n}{<-> CJKb * wjsrc}{\CJKbold} +\DeclareFontShape{C63}{jsr}{bc}{sl}{<-> CJKb * wjsrco}{\CJKbold} +\DeclareFontShape{C63}{jsr}{bc}{it}{<-> CJKssub * jsr/bc/sl}{} + +\DeclareFontShape{C63}{jsr}{b}{n}{<-> CJKb * wjsr}{\CJKbold} +\DeclareFontShape{C63}{jsr}{b}{sl}{<-> CJKb * wjsro}{\CJKbold} +\DeclareFontShape{C63}{jsr}{b}{it}{<-> CJKssub * jsr/b/sl}{} + +\DeclareFontShape{C63}{jsr}{bx}{n}{<-> CJKb * wjsrx}{\CJKbold} +\DeclareFontShape{C63}{jsr}{bx}{sl}{<-> CJKb * wjsrxo}{\CJKbold} +\DeclareFontShape{C63}{jsr}{bx}{it}{<-> CJKssub * jsr/bx/sl}{} + +\DeclareFontShape{C63}{jsr}{bux}{n}{<-> CJKb * wjsru}{\CJKbold} +\DeclareFontShape{C63}{jsr}{bux}{sl}{<-> CJKb * wjsruo}{\CJKbold} +\DeclareFontShape{C63}{jsr}{bux}{it}{<-> CJKssub * jsr/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63mj.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63mj.fd new file mode 100644 index 0000000000..cd99102f69 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63mj.fd @@ -0,0 +1,53 @@ +% This is file c63mj.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63mj.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcMyoungjo + +\DeclareFontFamily{C63}{mj}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{mj}{c}{n}{<-> CJK * wmjc}{} +\DeclareFontShape{C63}{mj}{c}{sl}{<-> CJK * wmjco}{} +\DeclareFontShape{C63}{mj}{c}{it}{<-> CJKssub * mj/c/sl}{} + +\DeclareFontShape{C63}{mj}{m}{n}{<-> CJK * wmj}{} +\DeclareFontShape{C63}{mj}{m}{sl}{<-> CJK * wmjo}{} +\DeclareFontShape{C63}{mj}{m}{it}{<-> CJKssub * mj/m/sl}{} + +\DeclareFontShape{C63}{mj}{x}{n}{<-> CJK * wmjx}{} +\DeclareFontShape{C63}{mj}{x}{sl}{<-> CJK * wmjxo}{} +\DeclareFontShape{C63}{mj}{x}{it}{<-> CJKssub * mj/x/sl}{} + +\DeclareFontShape{C63}{mj}{ux}{n}{<-> CJK * wmju}{} +\DeclareFontShape{C63}{mj}{ux}{sl}{<-> CJK * wmjuo}{} +\DeclareFontShape{C63}{mj}{ux}{it}{<-> CJKssub * mj/ux/sl}{} + +\DeclareFontShape{C63}{mj}{bc}{n}{<-> CJK * wmjbc}{} +\DeclareFontShape{C63}{mj}{bc}{sl}{<-> CJK * wmjbco}{} +\DeclareFontShape{C63}{mj}{bc}{it}{<-> CJKssub * mj/bc/sl}{} + +\DeclareFontShape{C63}{mj}{b}{n}{<-> CJK * wmjb}{} +\DeclareFontShape{C63}{mj}{b}{sl}{<-> CJK * wmjbo}{} +\DeclareFontShape{C63}{mj}{b}{it}{<-> CJKssub * mj/b/sl}{} + +\DeclareFontShape{C63}{mj}{bx}{n}{<-> CJK * wmjbx}{} +\DeclareFontShape{C63}{mj}{bx}{sl}{<-> CJK * wmjbxo}{} +\DeclareFontShape{C63}{mj}{bx}{it}{<-> CJKssub * mj/bx/sl}{} + +\DeclareFontShape{C63}{mj}{bux}{n}{<-> CJK * wmjbu}{} +\DeclareFontShape{C63}{mj}{bux}{sl}{<-> CJK * wmjbuo}{} +\DeclareFontShape{C63}{mj}{bux}{it}{<-> CJKssub * mj/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63pg.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63pg.fd new file mode 100644 index 0000000000..24a2c021d0 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63pg.fd @@ -0,0 +1,53 @@ +% This is file c63pg.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63pg.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcPilgi + +\DeclareFontFamily{C63}{pg}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{pg}{c}{n}{<-> CJK * wpgc}{} +\DeclareFontShape{C63}{pg}{c}{sl}{<-> CJK * wpgco}{} +\DeclareFontShape{C63}{pg}{c}{it}{<-> CJKssub * wwpg/c/sl}{} + +\DeclareFontShape{C63}{pg}{m}{n}{<-> CJK * wpg}{} +\DeclareFontShape{C63}{pg}{m}{sl}{<-> CJK * wpgo}{} +\DeclareFontShape{C63}{pg}{m}{it}{<-> CJKssub * wwpg/m/sl}{} + +\DeclareFontShape{C63}{pg}{x}{n}{<-> CJK * wpgx}{} +\DeclareFontShape{C63}{pg}{x}{sl}{<-> CJK * wpgxo}{} +\DeclareFontShape{C63}{pg}{x}{it}{<-> CJKssub * wwpg/x/sl}{} + +\DeclareFontShape{C63}{pg}{ux}{n}{<-> CJK * wpgu}{} +\DeclareFontShape{C63}{pg}{ux}{sl}{<-> CJK * wpguo}{} +\DeclareFontShape{C63}{pg}{ux}{it}{<-> CJKssub * wwpg/ux/sl}{} + +\DeclareFontShape{C63}{pg}{bc}{n}{<-> CJK * wpgbc}{} +\DeclareFontShape{C63}{pg}{bc}{sl}{<-> CJK * wpgbco}{} +\DeclareFontShape{C63}{pg}{bc}{it}{<-> CJKssub * wwpg/bc/sl}{} + +\DeclareFontShape{C63}{pg}{b}{n}{<-> CJK * wpgb}{} +\DeclareFontShape{C63}{pg}{b}{sl}{<-> CJK * wpgbo}{} +\DeclareFontShape{C63}{pg}{b}{it}{<-> CJKssub * wwpg/b/sl}{} + +\DeclareFontShape{C63}{pg}{bx}{n}{<-> CJK * wpgbx}{} +\DeclareFontShape{C63}{pg}{bx}{sl}{<-> CJK * wpgbxo}{} +\DeclareFontShape{C63}{pg}{bx}{it}{<-> CJKssub * wwpg/bx/sl}{} + +\DeclareFontShape{C63}{pg}{bux}{n}{<-> CJK * wpgbu}{} +\DeclareFontShape{C63}{pg}{bux}{sl}{<-> CJK * wpgbuo}{} +\DeclareFontShape{C63}{pg}{bux}{it}{<-> CJKssub * wwpg/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63pga.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63pga.fd new file mode 100644 index 0000000000..7f795391f8 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63pga.fd @@ -0,0 +1,53 @@ +% This is file c63pga.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63pga.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcPilgia + +\DeclareFontFamily{C63}{pga}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{pga}{c}{n}{<-> CJK * wpgac}{} +\DeclareFontShape{C63}{pga}{c}{sl}{<-> CJK * wpgaco}{} +\DeclareFontShape{C63}{pga}{c}{it}{<-> CJKssub * pga/c/sl}{} + +\DeclareFontShape{C63}{pga}{m}{n}{<-> CJK * wpga}{} +\DeclareFontShape{C63}{pga}{m}{sl}{<-> CJK * wpgao}{} +\DeclareFontShape{C63}{pga}{m}{it}{<-> CJKssub * pga/m/sl}{} + +\DeclareFontShape{C63}{pga}{x}{n}{<-> CJK * wpgax}{} +\DeclareFontShape{C63}{pga}{x}{sl}{<-> CJK * wpgaxo}{} +\DeclareFontShape{C63}{pga}{x}{it}{<-> CJKssub * pga/x/sl}{} + +\DeclareFontShape{C63}{pga}{ux}{n}{<-> CJK * wpgau}{} +\DeclareFontShape{C63}{pga}{ux}{sl}{<-> CJK * wpgauo}{} +\DeclareFontShape{C63}{pga}{ux}{it}{<-> CJKssub * pga/ux/sl}{} + +\DeclareFontShape{C63}{pga}{bc}{n}{<-> CJKb * wpgac}{\CJKbold} +\DeclareFontShape{C63}{pga}{bc}{sl}{<-> CJKb * wpgaco}{\CJKbold} +\DeclareFontShape{C63}{pga}{bc}{it}{<-> CJKssub * pga/bc/sl}{} + +\DeclareFontShape{C63}{pga}{b}{n}{<-> CJKb * wpga}{\CJKbold} +\DeclareFontShape{C63}{pga}{b}{sl}{<-> CJKb * wpgao}{\CJKbold} +\DeclareFontShape{C63}{pga}{b}{it}{<-> CJKssub * pga/b/sl}{} + +\DeclareFontShape{C63}{pga}{bx}{n}{<-> CJKb * wpgax}{\CJKbold} +\DeclareFontShape{C63}{pga}{bx}{sl}{<-> CJKb * wpgaxo}{\CJKbold} +\DeclareFontShape{C63}{pga}{bx}{it}{<-> CJKssub * pga/bx/sl}{} + +\DeclareFontShape{C63}{pga}{bux}{n}{<-> CJKb * wpgau}{\CJKbold} +\DeclareFontShape{C63}{pga}{bux}{sl}{<-> CJKb * wpgauo}{\CJKbold} +\DeclareFontShape{C63}{pga}{bux}{it}{<-> CJKssub * pga/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63ph.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63ph.fd new file mode 100644 index 0000000000..7cd0996fda --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63ph.fd @@ -0,0 +1,53 @@ +% This is file c63ph.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63ph.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcPenHeulim + +\DeclareFontFamily{C63}{ph}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{ph}{c}{n}{<-> CJK * wphc}{} +\DeclareFontShape{C63}{ph}{c}{sl}{<-> CJK * wphco}{} +\DeclareFontShape{C63}{ph}{c}{it}{<-> CJKssub * ph/c/sl}{} + +\DeclareFontShape{C63}{ph}{m}{n}{<-> CJK * wph}{} +\DeclareFontShape{C63}{ph}{m}{sl}{<-> CJK * wpho}{} +\DeclareFontShape{C63}{ph}{m}{it}{<-> CJKssub * ph/m/sl}{} + +\DeclareFontShape{C63}{ph}{x}{n}{<-> CJK * wphx}{} +\DeclareFontShape{C63}{ph}{x}{sl}{<-> CJK * wphxo}{} +\DeclareFontShape{C63}{ph}{x}{it}{<-> CJKssub * ph/x/sl}{} + +\DeclareFontShape{C63}{ph}{ux}{n}{<-> CJK * wphu}{} +\DeclareFontShape{C63}{ph}{ux}{sl}{<-> CJK * wphuo}{} +\DeclareFontShape{C63}{ph}{ux}{it}{<-> CJKssub * ph/ux/sl}{} + +\DeclareFontShape{C63}{ph}{bc}{n}{<-> CJKb * wphc}{\CJKbold} +\DeclareFontShape{C63}{ph}{bc}{sl}{<-> CJKb * wphco}{\CJKbold} +\DeclareFontShape{C63}{ph}{bc}{it}{<-> CJKssub * ph/bc/sl}{} + +\DeclareFontShape{C63}{ph}{b}{n}{<-> CJKb * wph}{\CJKbold} +\DeclareFontShape{C63}{ph}{b}{sl}{<-> CJKb * wpho}{\CJKbold} +\DeclareFontShape{C63}{ph}{b}{it}{<-> CJKssub * ph/b/sl}{} + +\DeclareFontShape{C63}{ph}{bx}{n}{<-> CJKb * wphx}{\CJKbold} +\DeclareFontShape{C63}{ph}{bx}{sl}{<-> CJKb * wphxo}{\CJKbold} +\DeclareFontShape{C63}{ph}{bx}{it}{<-> CJKssub * ph/bx/sl}{} + +\DeclareFontShape{C63}{ph}{bux}{n}{<-> CJKb * wphu}{\CJKbold} +\DeclareFontShape{C63}{ph}{bux}{sl}{<-> CJKb * wphuo}{\CJKbold} +\DeclareFontShape{C63}{ph}{bux}{it}{<-> CJKssub * ph/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63pn.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63pn.fd new file mode 100644 index 0000000000..e4a979077f --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63pn.fd @@ -0,0 +1,53 @@ +% This is file c63pn.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63pn.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcPen + +\DeclareFontFamily{C63}{pn}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{pn}{c}{n}{<-> CJK * wpnc}{} +\DeclareFontShape{C63}{pn}{c}{sl}{<-> CJK * wpnco}{} +\DeclareFontShape{C63}{pn}{c}{it}{<-> CJKssub * pn/c/sl}{} + +\DeclareFontShape{C63}{pn}{m}{n}{<-> CJK * wpn}{} +\DeclareFontShape{C63}{pn}{m}{sl}{<-> CJK * wpno}{} +\DeclareFontShape{C63}{pn}{m}{it}{<-> CJKssub * pn/m/sl}{} + +\DeclareFontShape{C63}{pn}{x}{n}{<-> CJK * wpnx}{} +\DeclareFontShape{C63}{pn}{x}{sl}{<-> CJK * wpnxo}{} +\DeclareFontShape{C63}{pn}{x}{it}{<-> CJKssub * pn/x/sl}{} + +\DeclareFontShape{C63}{pn}{ux}{n}{<-> CJK * wpnu}{} +\DeclareFontShape{C63}{pn}{ux}{sl}{<-> CJK * wpnuo}{} +\DeclareFontShape{C63}{pn}{ux}{it}{<-> CJKssub * pn/ux/sl}{} + +\DeclareFontShape{C63}{pn}{bc}{n}{<-> CJKb * wpnc}{\CJKbold} +\DeclareFontShape{C63}{pn}{bc}{sl}{<-> CJKb * wpnco}{\CJKbold} +\DeclareFontShape{C63}{pn}{bc}{it}{<-> CJKssub * pn/bc/sl}{} + +\DeclareFontShape{C63}{pn}{b}{n}{<-> CJKb * wpn}{\CJKbold} +\DeclareFontShape{C63}{pn}{b}{sl}{<-> CJKb * wpno}{\CJKbold} +\DeclareFontShape{C63}{pn}{b}{it}{<-> CJKssub * pn/b/sl}{} + +\DeclareFontShape{C63}{pn}{bx}{n}{<-> CJKb * wpnx}{\CJKbold} +\DeclareFontShape{C63}{pn}{bx}{sl}{<-> CJKb * wpnxo}{\CJKbold} +\DeclareFontShape{C63}{pn}{bx}{it}{<-> CJKssub * pn/bx/sl}{} + +\DeclareFontShape{C63}{pn}{bux}{n}{<-> CJKb * wpnu}{\CJKbold} +\DeclareFontShape{C63}{pn}{bux}{sl}{<-> CJKb * wpnuo}{\CJKbold} +\DeclareFontShape{C63}{pn}{bux}{it}{<-> CJKssub * pn/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63sh.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63sh.fd new file mode 100644 index 0000000000..62b984d6d1 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63sh.fd @@ -0,0 +1,53 @@ +% This is file c63sh.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63sh.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcShinmunMyoungjo + +\DeclareFontFamily{C63}{hwsh}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{sh}{c}{n}{<-> CJK * wshc}{} +\DeclareFontShape{C63}{sh}{c}{sl}{<-> CJK * wshco}{} +\DeclareFontShape{C63}{sh}{c}{it}{<-> CJKssub * sh/c/sl}{} + +\DeclareFontShape{C63}{sh}{m}{n}{<-> CJK * wsh}{} +\DeclareFontShape{C63}{sh}{m}{sl}{<-> CJK * wsho}{} +\DeclareFontShape{C63}{sh}{m}{it}{<-> CJKssub * sh/m/sl}{} + +\DeclareFontShape{C63}{sh}{x}{n}{<-> CJK * wshx}{} +\DeclareFontShape{C63}{sh}{x}{sl}{<-> CJK * wshxo}{} +\DeclareFontShape{C63}{sh}{x}{it}{<-> CJKssub * sh/x/sl}{} + +\DeclareFontShape{C63}{sh}{ux}{n}{<-> CJK * wshu}{} +\DeclareFontShape{C63}{sh}{ux}{sl}{<-> CJK * wshuo}{} +\DeclareFontShape{C63}{sh}{ux}{it}{<-> CJKssub * sh/ux/sl}{} + +\DeclareFontShape{C63}{sh}{bc}{n}{<-> CJKssub * sh/c/n}{} +\DeclareFontShape{C63}{sh}{bc}{sl}{<-> CJKssub * sh/c/sl}{} +\DeclareFontShape{C63}{sh}{bc}{it}{<-> CJKssub * sh/bc/sl}{} + +\DeclareFontShape{C63}{sh}{b}{n}{<-> CJKssub * sh/m/n}{} +\DeclareFontShape{C63}{sh}{b}{sl}{<-> CJKssub * sh/m/sl}{} +\DeclareFontShape{C63}{sh}{b}{it}{<-> CJKssub * sh/b/sl}{} + +\DeclareFontShape{C63}{sh}{bx}{n}{<-> CJKssub * sh/x/n}{} +\DeclareFontShape{C63}{sh}{bx}{sl}{<-> CJKssub * sh/x/sl}{} +\DeclareFontShape{C63}{sh}{bx}{it}{<-> CJKssub * sh/bx/sl}{} + +\DeclareFontShape{C63}{sh}{bux}{n}{<-> CJKssub * sh/ux/n}{} +\DeclareFontShape{C63}{sh}{bux}{sl}{<-> CJKssub * sh/ux/sl}{} +\DeclareFontShape{C63}{sh}{bux}{it}{<-> CJKssub * sh/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63tz.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63tz.fd new file mode 100644 index 0000000000..a0f8c67af9 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63tz.fd @@ -0,0 +1,53 @@ +% This is file c63tz.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63tz.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcTypewriter + +\DeclareFontFamily{C63}{tz}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{tz}{c}{n}{<-> CJK * wttc}{} +\DeclareFontShape{C63}{tz}{c}{sl}{<-> CJK * wttco}{} +\DeclareFontShape{C63}{tz}{c}{it}{<-> CJKssub * tz/c/sl}{} + +\DeclareFontShape{C63}{tz}{m}{n}{<-> CJK * wtt}{} +\DeclareFontShape{C63}{tz}{m}{sl}{<-> CJK * wtto}{} +\DeclareFontShape{C63}{tz}{m}{it}{<-> CJKssub * tz/m/sl}{} + +\DeclareFontShape{C63}{tz}{x}{n}{<-> CJK * wttx}{} +\DeclareFontShape{C63}{tz}{x}{sl}{<-> CJK * wttxo}{} +\DeclareFontShape{C63}{tz}{x}{it}{<-> CJKssub * tz/x/sl}{} + +\DeclareFontShape{C63}{tz}{ux}{n}{<-> CJK * wttu}{} +\DeclareFontShape{C63}{tz}{ux}{sl}{<-> CJK * wttuo}{} +\DeclareFontShape{C63}{tz}{ux}{it}{<-> CJKssub * tz/ux/sl}{} + +\DeclareFontShape{C63}{tz}{bc}{n}{<-> CJKb * wttc}{\CJKbold} +\DeclareFontShape{C63}{tz}{bc}{sl}{<-> CJKb * wttco}{\CJKbold} +\DeclareFontShape{C63}{tz}{bc}{it}{<-> CJKssub * tz/bc/sl}{} + +\DeclareFontShape{C63}{tz}{b}{n}{<-> CJKb * wtt}{\CJKbold} +\DeclareFontShape{C63}{tz}{b}{sl}{<-> CJKb * wtto}{\CJKbold} +\DeclareFontShape{C63}{tz}{b}{it}{<-> CJKssub * tz/b/sl}{} + +\DeclareFontShape{C63}{tz}{bx}{n}{<-> CJKb * wttx}{\CJKbold} +\DeclareFontShape{C63}{tz}{bx}{sl}{<-> CJKb * wttxo}{\CJKbold} +\DeclareFontShape{C63}{tz}{bx}{it}{<-> CJKssub * tz/bx/sl}{} + +\DeclareFontShape{C63}{tz}{bux}{n}{<-> CJKb * wttu}{\CJKbold} +\DeclareFontShape{C63}{tz}{bux}{sl}{<-> CJKb * wttuo}{\CJKbold} +\DeclareFontShape{C63}{tz}{bux}{it}{<-> CJKssub * tz/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63vd.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63vd.fd new file mode 100644 index 0000000000..66cc912c0f --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63vd.fd @@ -0,0 +1,53 @@ +% This is file c63vd.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63vd.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcVada + +\DeclareFontFamily{C63}{vd}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{vd}{c}{n}{<-> CJK * wvdc}{} +\DeclareFontShape{C63}{vd}{c}{sl}{<-> CJK * wvdco}{} +\DeclareFontShape{C63}{vd}{c}{it}{<-> CJKssub * vd/c/sl}{} + +\DeclareFontShape{C63}{vd}{m}{n}{<-> CJK * wvd}{} +\DeclareFontShape{C63}{vd}{m}{sl}{<-> CJK * wvdo}{} +\DeclareFontShape{C63}{vd}{m}{it}{<-> CJKssub * vd/m/sl}{} + +\DeclareFontShape{C63}{vd}{x}{n}{<-> CJK * wvdx}{} +\DeclareFontShape{C63}{vd}{x}{sl}{<-> CJK * wvdxo}{} +\DeclareFontShape{C63}{vd}{x}{it}{<-> CJKssub * vd/x/sl}{} + +\DeclareFontShape{C63}{vd}{ux}{n}{<-> CJK * wvdu}{} +\DeclareFontShape{C63}{vd}{ux}{sl}{<-> CJK * wvduo}{} +\DeclareFontShape{C63}{vd}{ux}{it}{<-> CJKssub * vd/ux/sl}{} + +\DeclareFontShape{C63}{vd}{bc}{n}{<-> CJKb * wvdc}{\CJKbold} +\DeclareFontShape{C63}{vd}{bc}{sl}{<-> CJKb * wvdco}{\CJKbold} +\DeclareFontShape{C63}{vd}{bc}{it}{<-> CJKssub * vd/bc/sl}{} + +\DeclareFontShape{C63}{vd}{b}{n}{<-> CJKb * wvd}{\CJKbold} +\DeclareFontShape{C63}{vd}{b}{sl}{<-> CJKb * wvdo}{\CJKbold} +\DeclareFontShape{C63}{vd}{b}{it}{<-> CJKssub * vd/b/sl}{} + +\DeclareFontShape{C63}{vd}{bx}{n}{<-> CJKb * wvdx}{\CJKbold} +\DeclareFontShape{C63}{vd}{bx}{sl}{<-> CJKb * wvdxo}{\CJKbold} +\DeclareFontShape{C63}{vd}{bx}{it}{<-> CJKssub * vd/bx/sl}{} + +\DeclareFontShape{C63}{vd}{bux}{n}{<-> CJKb * wvdu}{\CJKbold} +\DeclareFontShape{C63}{vd}{bux}{sl}{<-> CJKb * wvduo}{\CJKbold} +\DeclareFontShape{C63}{vd}{bux}{it}{<-> CJKssub * vd/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63yt.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63yt.fd new file mode 100644 index 0000000000..11b979a2d8 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c63yt.fd @@ -0,0 +1,53 @@ +% This is file c63yt.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63yt.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcYetgul + +\DeclareFontFamily{C63}{yt}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{yt}{c}{n}{<-> CJK * wytc}{} +\DeclareFontShape{C63}{yt}{c}{sl}{<-> CJK * wytco}{} +\DeclareFontShape{C63}{yt}{c}{it}{<-> CJKssub * yt/c/sl}{} + +\DeclareFontShape{C63}{yt}{m}{n}{<-> CJK * wyt}{} +\DeclareFontShape{C63}{yt}{m}{sl}{<-> CJK * wyto}{} +\DeclareFontShape{C63}{yt}{m}{it}{<-> CJKssub * yt/m/sl}{} + +\DeclareFontShape{C63}{yt}{x}{n}{<-> CJK * wytx}{} +\DeclareFontShape{C63}{yt}{x}{sl}{<-> CJK * wytxo}{} +\DeclareFontShape{C63}{yt}{x}{it}{<-> CJKssub * yt/x/sl}{} + +\DeclareFontShape{C63}{yt}{ux}{n}{<-> CJK * wytu}{} +\DeclareFontShape{C63}{yt}{ux}{sl}{<-> CJK * wytuo}{} +\DeclareFontShape{C63}{yt}{ux}{it}{<-> CJKssub * yt/ux/sl}{} + +\DeclareFontShape{C63}{yt}{bc}{n}{<-> CJKb * wytc}{\CJKbold} +\DeclareFontShape{C63}{yt}{bc}{sl}{<-> CJKb * wytco}{\CJKbold} +\DeclareFontShape{C63}{yt}{bc}{it}{<-> CJKssub * yt/bc/sl}{} + +\DeclareFontShape{C63}{yt}{b}{n}{<-> CJKb * wyt}{\CJKbold} +\DeclareFontShape{C63}{yt}{b}{sl}{<-> CJKb * wyto}{\CJKbold} +\DeclareFontShape{C63}{yt}{b}{it}{<-> CJKssub * yt/b/sl}{} + +\DeclareFontShape{C63}{yt}{bx}{n}{<-> CJKb * wytx}{\CJKbold} +\DeclareFontShape{C63}{yt}{bx}{sl}{<-> CJKb * wytxo}{\CJKbold} +\DeclareFontShape{C63}{yt}{bx}{it}{<-> CJKssub * yt/bx/sl}{} + +\DeclareFontShape{C63}{yt}{bux}{n}{<-> CJKb * wytu}{\CJKbold} +\DeclareFontShape{C63}{yt}{bux}{sl}{<-> CJKb * wytuo}{\CJKbold} +\DeclareFontShape{C63}{yt}{bux}{it}{<-> CJKssub * yt/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64bm.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64bm.fd new file mode 100644 index 0000000000..35dbc4e552 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64bm.fd @@ -0,0 +1,53 @@ +% This is file c64bm.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64bm.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcBom + +\DeclareFontFamily{C64}{bm}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{bm}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C64}{bm}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C64}{bm}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C64}{bm}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C64}{bm}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C64}{bm}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C64}{bm}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C64}{bm}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C64}{bm}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C64}{bm}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C64}{bm}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C64}{bm}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C64}{bm}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C64}{bm}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C64}{bm}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C64}{bm}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C64}{bm}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C64}{bm}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C64}{bm}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C64}{bm}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C64}{bm}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C64}{bm}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C64}{bm}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C64}{bm}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64dn.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64dn.fd new file mode 100644 index 0000000000..e699a8fcdf --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64dn.fd @@ -0,0 +1,69 @@ +% This is file c64dn.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64dn.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcDinaru + +\DeclareFontFamily{C64}{dn}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{dn}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C64}{dn}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C64}{dn}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C64}{dn}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C64}{dn}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C64}{dn}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C64}{dn}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C64}{dn}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C64}{dn}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C64}{dn}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C64}{dn}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C64}{dn}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C64}{dn}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C64}{dn}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C64}{dn}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C64}{dn}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C64}{dn}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C64}{dn}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C64}{dn}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C64}{dn}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C64}{dn}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C64}{dn}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C64}{dn}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C64}{dn}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\DeclareFontShape{C64}{dn}{lc}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C64}{dn}{lc}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C64}{dn}{lc}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C64}{dn}{l}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C64}{dn}{l}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C64}{dn}{l}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C64}{dn}{lx}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C64}{dn}{lx}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C64}{dn}{lx}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C64}{dn}{lux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C64}{dn}{lux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C64}{dn}{lux}{it}{<-> CJKssub * gt/ux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64gr.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64gr.fd new file mode 100644 index 0000000000..e8da5452bf --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64gr.fd @@ -0,0 +1,53 @@ +% This is file c64gr.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64gr.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcGraphic + +\DeclareFontFamily{C64}{gr}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{gr}{c}{n}{<-> CJK * wgrc}{} +\DeclareFontShape{C64}{gr}{c}{sl}{<-> CJK * wgrco}{} +\DeclareFontShape{C64}{gr}{c}{it}{<-> CJKssub * gr/c/sl}{} + +\DeclareFontShape{C64}{gr}{m}{n}{<-> CJK * wgr}{} +\DeclareFontShape{C64}{gr}{m}{sl}{<-> CJK * wgro}{} +\DeclareFontShape{C64}{gr}{m}{it}{<-> CJKssub * gr/m/sl}{} + +\DeclareFontShape{C64}{gr}{x}{n}{<-> CJK * wgrx}{} +\DeclareFontShape{C64}{gr}{x}{sl}{<-> CJK * wgrxo}{} +\DeclareFontShape{C64}{gr}{x}{it}{<-> CJKssub * gr/x/sl}{} + +\DeclareFontShape{C64}{gr}{ux}{n}{<-> CJK * wgru}{} +\DeclareFontShape{C64}{gr}{ux}{sl}{<-> CJK * wgruo}{} +\DeclareFontShape{C64}{gr}{ux}{it}{<-> CJKssub * gr/ux/sl}{} + +\DeclareFontShape{C64}{gr}{bc}{n}{<-> CJK * wgrbc}{} +\DeclareFontShape{C64}{gr}{bc}{sl}{<-> CJK * wgrbco}{} +\DeclareFontShape{C64}{gr}{bc}{it}{<-> CJKssub * gr/bc/sl}{} + +\DeclareFontShape{C64}{gr}{b}{n}{<-> CJK * wgrb}{} +\DeclareFontShape{C64}{gr}{b}{sl}{<-> CJK * wgrbo}{} +\DeclareFontShape{C64}{gr}{b}{it}{<-> CJKssub * gr/b/sl}{} + +\DeclareFontShape{C64}{gr}{bx}{n}{<-> CJK * wgrbx}{} +\DeclareFontShape{C64}{gr}{bx}{sl}{<-> CJK * wgrbxo}{} +\DeclareFontShape{C64}{gr}{bx}{it}{<-> CJKssub * gr/bx/sl}{} + +\DeclareFontShape{C64}{gr}{bux}{n}{<-> CJK * wgrbu}{} +\DeclareFontShape{C64}{gr}{bux}{sl}{<-> CJK * wgrbuo}{} +\DeclareFontShape{C64}{gr}{bux}{it}{<-> CJKssub * gr/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64gs.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64gs.fd new file mode 100644 index 0000000000..fc0d18f5fa --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64gs.fd @@ -0,0 +1,53 @@ +% This is file c64gs.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64gs.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcGungseo + +\DeclareFontFamily{C64}{gs}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{gs}{bc}{n}{<-> CJK * wgsc}{} +\DeclareFontShape{C64}{gs}{bc}{sl}{<-> CJK * wgsco}{} +\DeclareFontShape{C64}{gs}{bc}{it}{<-> CJKssub * gs/bc/sl}{} + +\DeclareFontShape{C64}{gs}{b}{n}{<-> CJK * wgs}{} +\DeclareFontShape{C64}{gs}{b}{sl}{<-> CJK * wgso}{} +\DeclareFontShape{C64}{gs}{b}{it}{<-> CJKssub * gs/b/sl}{} + +\DeclareFontShape{C64}{gs}{bx}{n}{<-> CJK * wgsx}{} +\DeclareFontShape{C64}{gs}{bx}{sl}{<-> CJK * wgsxo}{} +\DeclareFontShape{C64}{gs}{bx}{it}{<-> CJKssub * gs/bx/sl}{} + +\DeclareFontShape{C64}{gs}{bux}{n}{<-> CJK * wgsu}{} +\DeclareFontShape{C64}{gs}{bux}{sl}{<-> CJK * wgsuo}{} +\DeclareFontShape{C64}{gs}{bux}{it}{<-> CJKssub * gs/bux/sl}{} + +\DeclareFontShape{C64}{gs}{c}{n}{<-> CJKssub * gs/bc/n}{} +\DeclareFontShape{C64}{gs}{c}{sl}{<-> CJKssub * gs/bc/sl}{} +\DeclareFontShape{C64}{gs}{c}{it}{<-> CJKssub * gs/bc/sl}{} + +\DeclareFontShape{C64}{gs}{m}{n}{<-> CJKssub * gs/b/n}{} +\DeclareFontShape{C64}{gs}{m}{sl}{<-> CJKssub * gs/b/sl}{} +\DeclareFontShape{C64}{gs}{m}{it}{<-> CJKssub * gs/b/sl}{} + +\DeclareFontShape{C64}{gs}{x}{n}{<-> CJKssub * gs/bx/n}{} +\DeclareFontShape{C64}{gs}{x}{sl}{<-> CJKssub * gs/bx/sl}{} +\DeclareFontShape{C64}{gs}{x}{it}{<-> CJKssub * gs/bx/sl}{} + +\DeclareFontShape{C64}{gs}{ux}{n}{<-> CJKssub * gs/bux/n}{} +\DeclareFontShape{C64}{gs}{ux}{sl}{<-> CJKssub * gs/bux/sl}{} +\DeclareFontShape{C64}{gs}{ux}{it}{<-> CJKssub * gs/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64gt.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64gt.fd new file mode 100644 index 0000000000..b95b54b5ec --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64gt.fd @@ -0,0 +1,53 @@ +% This is file c64gt.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64gt.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcGothic + +\DeclareFontFamily{C64}{gt}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{gt}{c}{n}{<-> CJK * wgtc}{} +\DeclareFontShape{C64}{gt}{c}{sl}{<-> CJK * wgtco}{} +\DeclareFontShape{C64}{gt}{c}{it}{<-> CJKssub * gt/c/sl}{} + +\DeclareFontShape{C64}{gt}{m}{n}{<-> CJK * wgt}{} +\DeclareFontShape{C64}{gt}{m}{sl}{<-> CJK * wgto}{} +\DeclareFontShape{C64}{gt}{m}{it}{<-> CJKssub * gt/m/sl}{} + +\DeclareFontShape{C64}{gt}{x}{n}{<-> CJK * wgtx}{} +\DeclareFontShape{C64}{gt}{x}{sl}{<-> CJK * wgtxo}{} +\DeclareFontShape{C64}{gt}{x}{it}{<-> CJKssub * gt/x/sl}{} + +\DeclareFontShape{C64}{gt}{ux}{n}{<-> CJK * wgtu}{} +\DeclareFontShape{C64}{gt}{ux}{sl}{<-> CJK * wgtuo}{} +\DeclareFontShape{C64}{gt}{ux}{it}{<-> CJKssub * gt/ux/sl}{} + +\DeclareFontShape{C64}{gt}{bc}{n}{<-> CJK * wgtbc}{} +\DeclareFontShape{C64}{gt}{bc}{sl}{<-> CJK * wgtbco}{} +\DeclareFontShape{C64}{gt}{bc}{it}{<-> CJKssub * gt/bc/sl}{} + +\DeclareFontShape{C64}{gt}{b}{n}{<-> CJK * wgtb}{} +\DeclareFontShape{C64}{gt}{b}{sl}{<-> CJK * wgtbo}{} +\DeclareFontShape{C64}{gt}{b}{it}{<-> CJKssub * gt/b/sl}{} + +\DeclareFontShape{C64}{gt}{bx}{n}{<-> CJK * wgtbx}{} +\DeclareFontShape{C64}{gt}{bx}{sl}{<-> CJK * wgtbxo}{} +\DeclareFontShape{C64}{gt}{bx}{it}{<-> CJKssub * gt/bx/sl}{} + +\DeclareFontShape{C64}{gt}{bux}{n}{<-> CJK * wgtbu}{} +\DeclareFontShape{C64}{gt}{bux}{sl}{<-> CJK * wgtbuo}{} +\DeclareFontShape{C64}{gt}{bux}{it}{<-> CJKssub * gt/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64jgt.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64jgt.fd new file mode 100644 index 0000000000..2804b4082b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64jgt.fd @@ -0,0 +1,53 @@ +% This is file c64jgt.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64jgt.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcJamoGothic + +\DeclareFontFamily{C64}{jgt}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{jgt}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C64}{jgt}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C64}{jgt}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C64}{jgt}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C64}{jgt}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C64}{jgt}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C64}{jgt}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C64}{jgt}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C64}{jgt}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C64}{jgt}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C64}{jgt}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C64}{jgt}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C64}{jgt}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C64}{jgt}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C64}{jgt}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C64}{jgt}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C64}{jgt}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C64}{jgt}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C64}{jgt}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C64}{jgt}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C64}{jgt}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C64}{jgt}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C64}{jgt}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C64}{jgt}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64jmj.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64jmj.fd new file mode 100644 index 0000000000..fc5c42355d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64jmj.fd @@ -0,0 +1,53 @@ +% This is file c64jmj.fd of the CJK package +% for using Asian logograjmjs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64jmj.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcJamoMyoungjo + +\DeclareFontFamily{C64}{jmj}{\hyjmjenchar \font\m@ne} + +\DeclareFontShape{C64}{jmj}{c}{n}{<-> CJKssub * mj/c/n}{} +\DeclareFontShape{C64}{jmj}{c}{sl}{<-> CJKssub * mj/c/sl}{} +\DeclareFontShape{C64}{jmj}{c}{it}{<-> CJKssub * mj/c/it}{} + +\DeclareFontShape{C64}{jmj}{m}{n}{<-> CJKssub * mj/m/n}{} +\DeclareFontShape{C64}{jmj}{m}{sl}{<-> CJKssub * mj/m/sl}{} +\DeclareFontShape{C64}{jmj}{m}{it}{<-> CJKssub * mj/m/it}{} + +\DeclareFontShape{C64}{jmj}{x}{n}{<-> CJKssub * mj/x/n}{} +\DeclareFontShape{C64}{jmj}{x}{sl}{<-> CJKssub * mj/x/sl}{} +\DeclareFontShape{C64}{jmj}{x}{it}{<-> CJKssub * mj/x/it}{} + +\DeclareFontShape{C64}{jmj}{ux}{n}{<-> CJKssub * mj/ux/n}{} +\DeclareFontShape{C64}{jmj}{ux}{sl}{<-> CJKssub * mj/ux/sl}{} +\DeclareFontShape{C64}{jmj}{ux}{it}{<-> CJKssub * mj/ux/it}{} + +\DeclareFontShape{C64}{jmj}{bc}{n}{<-> CJKssub * mj/bc/n}{} +\DeclareFontShape{C64}{jmj}{bc}{sl}{<-> CJKssub * mj/bc/sl}{} +\DeclareFontShape{C64}{jmj}{bc}{it}{<-> CJKssub * mj/bc/it}{} + +\DeclareFontShape{C64}{jmj}{b}{n}{<-> CJKssub * mj/b/n}{} +\DeclareFontShape{C64}{jmj}{b}{sl}{<-> CJKssub * mj/b/sl}{} +\DeclareFontShape{C64}{jmj}{b}{it}{<-> CJKssub * mj/b/it}{} + +\DeclareFontShape{C64}{jmj}{bx}{n}{<-> CJKssub * mj/bx/n}{} +\DeclareFontShape{C64}{jmj}{bx}{sl}{<-> CJKssub * mj/bx/sl}{} +\DeclareFontShape{C64}{jmj}{bx}{it}{<-> CJKssub * mj/bx/it}{} + +\DeclareFontShape{C64}{jmj}{bux}{n}{<-> CJKssub * mj/bux/n}{} +\DeclareFontShape{C64}{jmj}{bux}{sl}{<-> CJKssub * mj/bux/sl}{} +\DeclareFontShape{C64}{jmj}{bux}{it}{<-> CJKssub * mj/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64jnv.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64jnv.fd new file mode 100644 index 0000000000..9fec493b1b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64jnv.fd @@ -0,0 +1,53 @@ +% This is file c64jnv.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64jnv.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcJamoNovel + +\DeclareFontFamily{C64}{jnv}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{jnv}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C64}{jnv}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C64}{jnv}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C64}{jnv}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C64}{jnv}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C64}{jnv}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C64}{jnv}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C64}{jnv}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C64}{jnv}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C64}{jnv}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C64}{jnv}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C64}{jnv}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C64}{jnv}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C64}{jnv}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C64}{jnv}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C64}{jnv}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C64}{jnv}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C64}{jnv}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C64}{jnv}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C64}{jnv}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C64}{jnv}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C64}{jnv}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C64}{jnv}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C64}{jnv}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64jsr.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64jsr.fd new file mode 100644 index 0000000000..d6f34f8e7b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64jsr.fd @@ -0,0 +1,53 @@ +% This is file c64jsr.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64jsr.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcJamoSora + +\DeclareFontFamily{C64}{jsr}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{jsr}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C64}{jsr}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C64}{jsr}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C64}{jsr}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C64}{jsr}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C64}{jsr}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C64}{jsr}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C64}{jsr}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C64}{jsr}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C64}{jsr}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C64}{jsr}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C64}{jsr}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C64}{jsr}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C64}{jsr}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C64}{jsr}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C64}{jsr}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C64}{jsr}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C64}{jsr}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C64}{jsr}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C64}{jsr}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C64}{jsr}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C64}{jsr}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C64}{jsr}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C64}{jsr}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64mj.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64mj.fd new file mode 100644 index 0000000000..1673eaa14b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64mj.fd @@ -0,0 +1,53 @@ +% This is file c64mj.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64mj.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcMyoungjo + +\DeclareFontFamily{C64}{mj}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{mj}{c}{n}{<-> CJK * wmjc}{} +\DeclareFontShape{C64}{mj}{c}{sl}{<-> CJK * wmjco}{} +\DeclareFontShape{C64}{mj}{c}{it}{<-> CJKssub * mj/c/sl}{} + +\DeclareFontShape{C64}{mj}{m}{n}{<-> CJK * wmj}{} +\DeclareFontShape{C64}{mj}{m}{sl}{<-> CJK * wmjo}{} +\DeclareFontShape{C64}{mj}{m}{it}{<-> CJKssub * mj/m/sl}{} + +\DeclareFontShape{C64}{mj}{x}{n}{<-> CJK * wmjx}{} +\DeclareFontShape{C64}{mj}{x}{sl}{<-> CJK * wmjxo}{} +\DeclareFontShape{C64}{mj}{x}{it}{<-> CJKssub * mj/x/sl}{} + +\DeclareFontShape{C64}{mj}{ux}{n}{<-> CJK * wmju}{} +\DeclareFontShape{C64}{mj}{ux}{sl}{<-> CJK * wmjuo}{} +\DeclareFontShape{C64}{mj}{ux}{it}{<-> CJKssub * mj/ux/sl}{} + +\DeclareFontShape{C64}{mj}{bc}{n}{<-> CJK * wmjbc}{} +\DeclareFontShape{C64}{mj}{bc}{sl}{<-> CJK * wmjbco}{} +\DeclareFontShape{C64}{mj}{bc}{it}{<-> CJKssub * mj/bc/sl}{} + +\DeclareFontShape{C64}{mj}{b}{n}{<-> CJK * wmjb}{} +\DeclareFontShape{C64}{mj}{b}{sl}{<-> CJK * wmjbo}{} +\DeclareFontShape{C64}{mj}{b}{it}{<-> CJKssub * mj/b/sl}{} + +\DeclareFontShape{C64}{mj}{bx}{n}{<-> CJK * wmjbx}{} +\DeclareFontShape{C64}{mj}{bx}{sl}{<-> CJK * wmjbxo}{} +\DeclareFontShape{C64}{mj}{bx}{it}{<-> CJKssub * mj/bx/sl}{} + +\DeclareFontShape{C64}{mj}{bux}{n}{<-> CJK * wmjbu}{} +\DeclareFontShape{C64}{mj}{bux}{sl}{<-> CJK * wmjbuo}{} +\DeclareFontShape{C64}{mj}{bux}{it}{<-> CJKssub * mj/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64pg.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64pg.fd new file mode 100644 index 0000000000..96e6c1264b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64pg.fd @@ -0,0 +1,53 @@ +% This is file c64pg.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64pg.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcPilgi + +\DeclareFontFamily{C64}{pg}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{pg}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C64}{pg}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C64}{pg}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C64}{pg}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C64}{pg}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C64}{pg}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C64}{pg}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C64}{pg}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C64}{pg}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C64}{pg}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C64}{pg}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C64}{pg}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C64}{pg}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C64}{pg}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C64}{pg}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C64}{pg}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C64}{pg}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C64}{pg}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C64}{pg}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C64}{pg}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C64}{pg}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C64}{pg}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C64}{pg}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C64}{pg}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64pga.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64pga.fd new file mode 100644 index 0000000000..56058915cc --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64pga.fd @@ -0,0 +1,53 @@ +% This is file c64pga.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64pga.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcPilgia + +\DeclareFontFamily{C64}{pga}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{pga}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C64}{pga}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C64}{pga}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C64}{pga}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C64}{pga}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C64}{pga}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C64}{pga}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C64}{pga}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C64}{pga}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C64}{pga}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C64}{pga}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C64}{pga}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C64}{pga}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C64}{pga}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C64}{pga}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C64}{pga}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C64}{pga}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C64}{pga}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C64}{pga}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C64}{pga}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C64}{pga}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C64}{pga}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C64}{pga}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C64}{pga}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64ph.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64ph.fd new file mode 100644 index 0000000000..7f5cb9fc6c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64ph.fd @@ -0,0 +1,53 @@ +% This is file c64ph.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64ph.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcPenHeulim + +\DeclareFontFamily{C64}{ph}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{ph}{c}{n}{<-> CJKssub * mj/c/n}{} +\DeclareFontShape{C64}{ph}{c}{sl}{<-> CJKssub * mj/c/sl}{} +\DeclareFontShape{C64}{ph}{c}{it}{<-> CJKssub * mj/c/it}{} + +\DeclareFontShape{C64}{ph}{m}{n}{<-> CJKssub * mj/m/n}{} +\DeclareFontShape{C64}{ph}{m}{sl}{<-> CJKssub * mj/m/sl}{} +\DeclareFontShape{C64}{ph}{m}{it}{<-> CJKssub * mj/m/it}{} + +\DeclareFontShape{C64}{ph}{x}{n}{<-> CJKssub * mj/x/n}{} +\DeclareFontShape{C64}{ph}{x}{sl}{<-> CJKssub * mj/x/sl}{} +\DeclareFontShape{C64}{ph}{x}{it}{<-> CJKssub * mj/x/it}{} + +\DeclareFontShape{C64}{ph}{ux}{n}{<-> CJKssub * mj/ux/n}{} +\DeclareFontShape{C64}{ph}{ux}{sl}{<-> CJKssub * mj/ux/sl}{} +\DeclareFontShape{C64}{ph}{ux}{it}{<-> CJKssub * mj/ux/it}{} + +\DeclareFontShape{C64}{ph}{bc}{n}{<-> CJKssub * mj/bc/n}{} +\DeclareFontShape{C64}{ph}{bc}{sl}{<-> CJKssub * mj/bc/sl}{} +\DeclareFontShape{C64}{ph}{bc}{it}{<-> CJKssub * mj/bc/it}{} + +\DeclareFontShape{C64}{ph}{b}{n}{<-> CJKssub * mj/b/n}{} +\DeclareFontShape{C64}{ph}{b}{sl}{<-> CJKssub * mj/b/sl}{} +\DeclareFontShape{C64}{ph}{b}{it}{<-> CJKssub * mj/b/it}{} + +\DeclareFontShape{C64}{ph}{bx}{n}{<-> CJKssub * mj/bx/n}{} +\DeclareFontShape{C64}{ph}{bx}{sl}{<-> CJKssub * mj/bx/sl}{} +\DeclareFontShape{C64}{ph}{bx}{it}{<-> CJKssub * mj/bx/it}{} + +\DeclareFontShape{C64}{ph}{bux}{n}{<-> CJKssub * mj/bux/n}{} +\DeclareFontShape{C64}{ph}{bux}{sl}{<-> CJKssub * mj/bux/sl}{} +\DeclareFontShape{C64}{ph}{bux}{it}{<-> CJKssub * mj/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64pn.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64pn.fd new file mode 100644 index 0000000000..a5348103df --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64pn.fd @@ -0,0 +1,53 @@ +% This is file c64pn.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64pn.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcPen + +\DeclareFontFamily{C64}{pn}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{pn}{c}{n}{<-> CJKssub * mj/c/n}{} +\DeclareFontShape{C64}{pn}{c}{sl}{<-> CJKssub * mj/c/sl}{} +\DeclareFontShape{C64}{pn}{c}{it}{<-> CJKssub * mj/c/it}{} + +\DeclareFontShape{C64}{pn}{m}{n}{<-> CJKssub * mj/m/n}{} +\DeclareFontShape{C64}{pn}{m}{sl}{<-> CJKssub * mj/m/sl}{} +\DeclareFontShape{C64}{pn}{m}{it}{<-> CJKssub * mj/m/it}{} + +\DeclareFontShape{C64}{pn}{x}{n}{<-> CJKssub * mj/x/n}{} +\DeclareFontShape{C64}{pn}{x}{sl}{<-> CJKssub * mj/x/sl}{} +\DeclareFontShape{C64}{pn}{x}{it}{<-> CJKssub * mj/x/it}{} + +\DeclareFontShape{C64}{pn}{ux}{n}{<-> CJKssub * mj/ux/n}{} +\DeclareFontShape{C64}{pn}{ux}{sl}{<-> CJKssub * mj/ux/sl}{} +\DeclareFontShape{C64}{pn}{ux}{it}{<-> CJKssub * mj/ux/it}{} + +\DeclareFontShape{C64}{pn}{bc}{n}{<-> CJKssub * mj/bc/n}{} +\DeclareFontShape{C64}{pn}{bc}{sl}{<-> CJKssub * mj/bc/sl}{} +\DeclareFontShape{C64}{pn}{bc}{it}{<-> CJKssub * mj/bc/it}{} + +\DeclareFontShape{C64}{pn}{b}{n}{<-> CJKssub * mj/b/n}{} +\DeclareFontShape{C64}{pn}{b}{sl}{<-> CJKssub * mj/b/sl}{} +\DeclareFontShape{C64}{pn}{b}{it}{<-> CJKssub * mj/b/it}{} + +\DeclareFontShape{C64}{pn}{bx}{n}{<-> CJKssub * mj/bx/n}{} +\DeclareFontShape{C64}{pn}{bx}{sl}{<-> CJKssub * mj/bx/sl}{} +\DeclareFontShape{C64}{pn}{bx}{it}{<-> CJKssub * mj/bx/it}{} + +\DeclareFontShape{C64}{pn}{bux}{n}{<-> CJKssub * mj/bux/n}{} +\DeclareFontShape{C64}{pn}{bux}{sl}{<-> CJKssub * mj/bux/sl}{} +\DeclareFontShape{C64}{pn}{bux}{it}{<-> CJKssub * mj/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64sh.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64sh.fd new file mode 100644 index 0000000000..348f2f34d4 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64sh.fd @@ -0,0 +1,53 @@ +% This is file c64sh.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64sh.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcShinmunMyoungjo + +\DeclareFontFamily{C64}{hwsh}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{sh}{c}{n}{<-> CJK * wshc}{} +\DeclareFontShape{C64}{sh}{c}{sl}{<-> CJK * wshco}{} +\DeclareFontShape{C64}{sh}{c}{it}{<-> CJKssub * sh/c/sl}{} + +\DeclareFontShape{C64}{sh}{m}{n}{<-> CJK * wsh}{} +\DeclareFontShape{C64}{sh}{m}{sl}{<-> CJK * wsho}{} +\DeclareFontShape{C64}{sh}{m}{it}{<-> CJKssub * sh/m/sl}{} + +\DeclareFontShape{C64}{sh}{x}{n}{<-> CJK * wshx}{} +\DeclareFontShape{C64}{sh}{x}{sl}{<-> CJK * wshxo}{} +\DeclareFontShape{C64}{sh}{x}{it}{<-> CJKssub * sh/x/sl}{} + +\DeclareFontShape{C64}{sh}{ux}{n}{<-> CJK * wshu}{} +\DeclareFontShape{C64}{sh}{ux}{sl}{<-> CJK * wshuo}{} +\DeclareFontShape{C64}{sh}{ux}{it}{<-> CJKssub * sh/ux/sl}{} + +\DeclareFontShape{C64}{sh}{bc}{n}{<-> CJKssub * sh/c/n}{} +\DeclareFontShape{C64}{sh}{bc}{sl}{<-> CJKssub * sh/c/sl}{} +\DeclareFontShape{C64}{sh}{bc}{it}{<-> CJKssub * sh/bc/sl}{} + +\DeclareFontShape{C64}{sh}{b}{n}{<-> CJKssub * sh/m/n}{} +\DeclareFontShape{C64}{sh}{b}{sl}{<-> CJKssub * sh/m/sl}{} +\DeclareFontShape{C64}{sh}{b}{it}{<-> CJKssub * sh/b/sl}{} + +\DeclareFontShape{C64}{sh}{bx}{n}{<-> CJKssub * sh/x/n}{} +\DeclareFontShape{C64}{sh}{bx}{sl}{<-> CJKssub * sh/x/sl}{} +\DeclareFontShape{C64}{sh}{bx}{it}{<-> CJKssub * sh/bx/sl}{} + +\DeclareFontShape{C64}{sh}{bux}{n}{<-> CJKssub * sh/ux/n}{} +\DeclareFontShape{C64}{sh}{bux}{sl}{<-> CJKssub * sh/ux/sl}{} +\DeclareFontShape{C64}{sh}{bux}{it}{<-> CJKssub * sh/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64tz.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64tz.fd new file mode 100644 index 0000000000..ce174378c2 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64tz.fd @@ -0,0 +1,53 @@ +% This is file c64tz.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64tz.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcTypewriter + +\DeclareFontFamily{C64}{tz}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{tz}{c}{n}{<-> CJK * wttc}{} +\DeclareFontShape{C64}{tz}{c}{sl}{<-> CJK * wttco}{} +\DeclareFontShape{C64}{tz}{c}{it}{<-> CJKssub * tz/c/sl}{} + +\DeclareFontShape{C64}{tz}{m}{n}{<-> CJK * wtt}{} +\DeclareFontShape{C64}{tz}{m}{sl}{<-> CJK * wtto}{} +\DeclareFontShape{C64}{tz}{m}{it}{<-> CJKssub * tz/m/sl}{} + +\DeclareFontShape{C64}{tz}{x}{n}{<-> CJK * wttx}{} +\DeclareFontShape{C64}{tz}{x}{sl}{<-> CJK * wttxo}{} +\DeclareFontShape{C64}{tz}{x}{it}{<-> CJKssub * tz/x/sl}{} + +\DeclareFontShape{C64}{tz}{ux}{n}{<-> CJK * wttu}{} +\DeclareFontShape{C64}{tz}{ux}{sl}{<-> CJK * wttuo}{} +\DeclareFontShape{C64}{tz}{ux}{it}{<-> CJKssub * tz/ux/sl}{} + +\DeclareFontShape{C64}{tz}{bc}{n}{<-> CJKb * wttc}{\CJKbold} +\DeclareFontShape{C64}{tz}{bc}{sl}{<-> CJKb * wttco}{\CJKbold} +\DeclareFontShape{C64}{tz}{bc}{it}{<-> CJKssub * tz/bc/sl}{} + +\DeclareFontShape{C64}{tz}{bm}{n}{<-> CJKb * wtt}{\CJKbold} +\DeclareFontShape{C64}{tz}{bm}{sl}{<-> CJKb * wtto}{\CJKbold} +\DeclareFontShape{C64}{tz}{bm}{it}{<-> CJKssub * tz/b/sl}{} + +\DeclareFontShape{C64}{tz}{bx}{n}{<-> CJKb * wttx}{\CJKbold} +\DeclareFontShape{C64}{tz}{bx}{sl}{<-> CJKb * wttxo}{\CJKbold} +\DeclareFontShape{C64}{tz}{bx}{it}{<-> CJKssub * tz/bx/sl}{} + +\DeclareFontShape{C64}{tz}{bux}{n}{<-> CJKb * wttu}{\CJKbold} +\DeclareFontShape{C64}{tz}{bux}{sl}{<-> CJKb * wttuo}{\CJKbold} +\DeclareFontShape{C64}{tz}{bux}{it}{<-> CJKssub * tz/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64vd.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64vd.fd new file mode 100644 index 0000000000..c7fb764ba3 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64vd.fd @@ -0,0 +1,53 @@ +% This is file c64vd.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64vd.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcVada + +\DeclareFontFamily{C64}{vd}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{vd}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C64}{vd}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C64}{vd}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C64}{vd}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C64}{vd}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C64}{vd}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C64}{vd}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C64}{vd}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C64}{vd}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C64}{vd}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C64}{vd}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C64}{vd}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C64}{vd}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C64}{vd}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C64}{vd}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C64}{vd}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C64}{vd}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C64}{vd}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C64}{vd}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C64}{vd}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C64}{vd}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C64}{vd}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C64}{vd}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C64}{vd}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64yt.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64yt.fd new file mode 100644 index 0000000000..e122637fbd --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c64yt.fd @@ -0,0 +1,53 @@ +% This is file c64yt.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64yt.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcYetgul + +\DeclareFontFamily{C64}{yt}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{yt}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C64}{yt}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C64}{yt}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C64}{yt}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C64}{yt}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C64}{yt}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C64}{yt}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C64}{yt}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C64}{yt}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C64}{yt}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C64}{yt}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C64}{yt}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C64}{yt}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C64}{yt}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C64}{yt}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C64}{yt}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C64}{yt}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C64}{yt}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C64}{yt}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C64}{yt}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C64}{yt}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C64}{yt}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C64}{yt}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C64}{yt}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65bm.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65bm.fd new file mode 100644 index 0000000000..c526f709c1 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65bm.fd @@ -0,0 +1,53 @@ +% This is file c65bm.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65bm.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcBom + +\DeclareFontFamily{C65}{bm}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{bm}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C65}{bm}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C65}{bm}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C65}{bm}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C65}{bm}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C65}{bm}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C65}{bm}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C65}{bm}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C65}{bm}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C65}{bm}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C65}{bm}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C65}{bm}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C65}{bm}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C65}{bm}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C65}{bm}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C65}{bm}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C65}{bm}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C65}{bm}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C65}{bm}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C65}{bm}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C65}{bm}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C65}{bm}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C65}{bm}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C65}{bm}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65dn.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65dn.fd new file mode 100644 index 0000000000..4b6d776b70 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65dn.fd @@ -0,0 +1,69 @@ +% This is file c65dn.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65dn.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcDinaru + +\DeclareFontFamily{C65}{dn}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{dn}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C65}{dn}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C65}{dn}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C65}{dn}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C65}{dn}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C65}{dn}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C65}{dn}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C65}{dn}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C65}{dn}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C65}{dn}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C65}{dn}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C65}{dn}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C65}{dn}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C65}{dn}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C65}{dn}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C65}{dn}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C65}{dn}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C65}{dn}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C65}{dn}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C65}{dn}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C65}{dn}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C65}{dn}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C65}{dn}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C65}{dn}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\DeclareFontShape{C65}{dn}{lc}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C65}{dn}{lc}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C65}{dn}{lc}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C65}{dn}{l}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C65}{dn}{l}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C65}{dn}{l}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C65}{dn}{lx}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C65}{dn}{lx}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C65}{dn}{lx}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C65}{dn}{lux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C65}{dn}{lux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C65}{dn}{lux}{it}{<-> CJKssub * gt/ux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65gr.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65gr.fd new file mode 100644 index 0000000000..df5308f99f --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65gr.fd @@ -0,0 +1,53 @@ +% This is file c65gr.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65gr.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcGraphic + +\DeclareFontFamily{C65}{gr}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{gr}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C65}{gr}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C65}{gr}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C65}{gr}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C65}{gr}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C65}{gr}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C65}{gr}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C65}{gr}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C65}{gr}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C65}{gr}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C65}{gr}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C65}{gr}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C65}{gr}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C65}{gr}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C65}{gr}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C65}{gr}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C65}{gr}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C65}{gr}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C65}{gr}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C65}{gr}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C65}{gr}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C65}{gr}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C65}{gr}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C65}{gr}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65gs.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65gs.fd new file mode 100644 index 0000000000..f6fcb6fa8d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65gs.fd @@ -0,0 +1,53 @@ +% This is file c65gs.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65gs.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcGungseo + +\DeclareFontFamily{C65}{gs}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{gs}{bc}{n}{<-> CJK * wgsc}{} +\DeclareFontShape{C65}{gs}{bc}{sl}{<-> CJK * wgsco}{} +\DeclareFontShape{C65}{gs}{bc}{it}{<-> CJKssub * gs/bc/sl}{} + +\DeclareFontShape{C65}{gs}{b}{n}{<-> CJK * wgs}{} +\DeclareFontShape{C65}{gs}{b}{sl}{<-> CJK * wgso}{} +\DeclareFontShape{C65}{gs}{b}{it}{<-> CJKssub * gs/b/sl}{} + +\DeclareFontShape{C65}{gs}{bx}{n}{<-> CJK * wgsx}{} +\DeclareFontShape{C65}{gs}{bx}{sl}{<-> CJK * wgsxo}{} +\DeclareFontShape{C65}{gs}{bx}{it}{<-> CJKssub * gs/bx/sl}{} + +\DeclareFontShape{C65}{gs}{bux}{n}{<-> CJK * wgsu}{} +\DeclareFontShape{C65}{gs}{bux}{sl}{<-> CJK * wgsuo}{} +\DeclareFontShape{C65}{gs}{bux}{it}{<-> CJKssub * gs/bux/sl}{} + +\DeclareFontShape{C65}{gs}{c}{n}{<-> CJKssub * gs/bc/n}{} +\DeclareFontShape{C65}{gs}{c}{sl}{<-> CJKssub * gs/bc/sl}{} +\DeclareFontShape{C65}{gs}{c}{it}{<-> CJKssub * gs/bc/sl}{} + +\DeclareFontShape{C65}{gs}{m}{n}{<-> CJKssub * gs/b/n}{} +\DeclareFontShape{C65}{gs}{m}{sl}{<-> CJKssub * gs/b/sl}{} +\DeclareFontShape{C65}{gs}{m}{it}{<-> CJKssub * gs/b/sl}{} + +\DeclareFontShape{C65}{gs}{x}{n}{<-> CJKssub * gs/bx/n}{} +\DeclareFontShape{C65}{gs}{x}{sl}{<-> CJKssub * gs/bx/sl}{} +\DeclareFontShape{C65}{gs}{x}{it}{<-> CJKssub * gs/bx/sl}{} + +\DeclareFontShape{C65}{gs}{ux}{n}{<-> CJKssub * gs/bux/n}{} +\DeclareFontShape{C65}{gs}{ux}{sl}{<-> CJKssub * gs/bux/sl}{} +\DeclareFontShape{C65}{gs}{ux}{it}{<-> CJKssub * gs/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65gt.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65gt.fd new file mode 100644 index 0000000000..98a7055472 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65gt.fd @@ -0,0 +1,53 @@ +% This is file c65gt.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65gt.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcGothic + +\DeclareFontFamily{C65}{gt}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{gt}{c}{n}{<-> CJK * wgtc}{} +\DeclareFontShape{C65}{gt}{c}{sl}{<-> CJK * wgtco}{} +\DeclareFontShape{C65}{gt}{c}{it}{<-> CJKssub * gt/c/sl}{} + +\DeclareFontShape{C65}{gt}{m}{n}{<-> CJK * wgt}{} +\DeclareFontShape{C65}{gt}{m}{sl}{<-> CJK * wgto}{} +\DeclareFontShape{C65}{gt}{m}{it}{<-> CJKssub * gt/m/sl}{} + +\DeclareFontShape{C65}{gt}{x}{n}{<-> CJK * wgtx}{} +\DeclareFontShape{C65}{gt}{x}{sl}{<-> CJK * wgtxo}{} +\DeclareFontShape{C65}{gt}{x}{it}{<-> CJKssub * gt/x/sl}{} + +\DeclareFontShape{C65}{gt}{ux}{n}{<-> CJK * wgtu}{} +\DeclareFontShape{C65}{gt}{ux}{sl}{<-> CJK * wgtuo}{} +\DeclareFontShape{C65}{gt}{ux}{it}{<-> CJKssub * gt/ux/sl}{} + +\DeclareFontShape{C65}{gt}{bc}{n}{<-> CJK * wgtbc}{} +\DeclareFontShape{C65}{gt}{bc}{sl}{<-> CJK * wgtbco}{} +\DeclareFontShape{C65}{gt}{bc}{it}{<-> CJKssub * gt/bc/sl}{} + +\DeclareFontShape{C65}{gt}{b}{n}{<-> CJK * wgtb}{} +\DeclareFontShape{C65}{gt}{b}{sl}{<-> CJK * wgtbo}{} +\DeclareFontShape{C65}{gt}{b}{it}{<-> CJKssub * gt/b/sl}{} + +\DeclareFontShape{C65}{gt}{bx}{n}{<-> CJK * wgtbx}{} +\DeclareFontShape{C65}{gt}{bx}{sl}{<-> CJK * wgtbxo}{} +\DeclareFontShape{C65}{gt}{bx}{it}{<-> CJKssub * gt/bx/sl}{} + +\DeclareFontShape{C65}{gt}{bux}{n}{<-> CJK * wgtbu}{} +\DeclareFontShape{C65}{gt}{bux}{sl}{<-> CJK * wgtbuo}{} +\DeclareFontShape{C65}{gt}{bux}{it}{<-> CJKssub * gt/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65jgt.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65jgt.fd new file mode 100644 index 0000000000..0267e5b19c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65jgt.fd @@ -0,0 +1,53 @@ +% This is file c65jgt.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65jgt.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcJamoGothic + +\DeclareFontFamily{C65}{jgt}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{jgt}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C65}{jgt}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C65}{jgt}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C65}{jgt}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C65}{jgt}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C65}{jgt}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C65}{jgt}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C65}{jgt}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C65}{jgt}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C65}{jgt}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C65}{jgt}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C65}{jgt}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C65}{jgt}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C65}{jgt}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C65}{jgt}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C65}{jgt}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C65}{jgt}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C65}{jgt}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C65}{jgt}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C65}{jgt}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C65}{jgt}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C65}{jgt}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C65}{jgt}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C65}{jgt}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65jmj.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65jmj.fd new file mode 100644 index 0000000000..38250f043d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65jmj.fd @@ -0,0 +1,53 @@ +% This is file c65jmj.fd of the CJK package +% for using Asian logograjmjs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65jmj.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcJamoMyoungjo + +\DeclareFontFamily{C65}{jmj}{\hyjmjenchar \font\m@ne} + +\DeclareFontShape{C65}{jmj}{c}{n}{<-> CJKssub * mj/c/n}{} +\DeclareFontShape{C65}{jmj}{c}{sl}{<-> CJKssub * mj/c/sl}{} +\DeclareFontShape{C65}{jmj}{c}{it}{<-> CJKssub * mj/c/it}{} + +\DeclareFontShape{C65}{jmj}{m}{n}{<-> CJKssub * mj/m/n}{} +\DeclareFontShape{C65}{jmj}{m}{sl}{<-> CJKssub * mj/m/sl}{} +\DeclareFontShape{C65}{jmj}{m}{it}{<-> CJKssub * mj/m/it}{} + +\DeclareFontShape{C65}{jmj}{x}{n}{<-> CJKssub * mj/x/n}{} +\DeclareFontShape{C65}{jmj}{x}{sl}{<-> CJKssub * mj/x/sl}{} +\DeclareFontShape{C65}{jmj}{x}{it}{<-> CJKssub * mj/x/it}{} + +\DeclareFontShape{C65}{jmj}{ux}{n}{<-> CJKssub * mj/ux/n}{} +\DeclareFontShape{C65}{jmj}{ux}{sl}{<-> CJKssub * mj/ux/sl}{} +\DeclareFontShape{C65}{jmj}{ux}{it}{<-> CJKssub * mj/ux/it}{} + +\DeclareFontShape{C65}{jmj}{bc}{n}{<-> CJKssub * mj/bc/n}{} +\DeclareFontShape{C65}{jmj}{bc}{sl}{<-> CJKssub * mj/bc/sl}{} +\DeclareFontShape{C65}{jmj}{bc}{it}{<-> CJKssub * mj/bc/it}{} + +\DeclareFontShape{C65}{jmj}{b}{n}{<-> CJKssub * mj/b/n}{} +\DeclareFontShape{C65}{jmj}{b}{sl}{<-> CJKssub * mj/b/sl}{} +\DeclareFontShape{C65}{jmj}{b}{it}{<-> CJKssub * mj/b/it}{} + +\DeclareFontShape{C65}{jmj}{bx}{n}{<-> CJKssub * mj/bx/n}{} +\DeclareFontShape{C65}{jmj}{bx}{sl}{<-> CJKssub * mj/bx/sl}{} +\DeclareFontShape{C65}{jmj}{bx}{it}{<-> CJKssub * mj/bx/it}{} + +\DeclareFontShape{C65}{jmj}{bux}{n}{<-> CJKssub * mj/bux/n}{} +\DeclareFontShape{C65}{jmj}{bux}{sl}{<-> CJKssub * mj/bux/sl}{} +\DeclareFontShape{C65}{jmj}{bux}{it}{<-> CJKssub * mj/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65jnv.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65jnv.fd new file mode 100644 index 0000000000..973211bc7b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65jnv.fd @@ -0,0 +1,53 @@ +% This is file c65jnv.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65jnv.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcJamoNovel + +\DeclareFontFamily{C65}{jnv}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{jnv}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C65}{jnv}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C65}{jnv}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C65}{jnv}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C65}{jnv}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C65}{jnv}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C65}{jnv}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C65}{jnv}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C65}{jnv}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C65}{jnv}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C65}{jnv}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C65}{jnv}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C65}{jnv}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C65}{jnv}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C65}{jnv}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C65}{jnv}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C65}{jnv}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C65}{jnv}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C65}{jnv}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C65}{jnv}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C65}{jnv}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C65}{jnv}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C65}{jnv}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C65}{jnv}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65jsr.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65jsr.fd new file mode 100644 index 0000000000..df55d6f9e2 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65jsr.fd @@ -0,0 +1,53 @@ +% This is file c65jsr.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65jsr.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcJamoSora + +\DeclareFontFamily{C65}{jsr}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{jsr}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C65}{jsr}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C65}{jsr}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C65}{jsr}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C65}{jsr}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C65}{jsr}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C65}{jsr}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C65}{jsr}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C65}{jsr}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C65}{jsr}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C65}{jsr}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C65}{jsr}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C65}{jsr}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C65}{jsr}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C65}{jsr}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C65}{jsr}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C65}{jsr}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C65}{jsr}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C65}{jsr}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C65}{jsr}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C65}{jsr}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C65}{jsr}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C65}{jsr}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C65}{jsr}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65mj.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65mj.fd new file mode 100644 index 0000000000..6e998adf3f --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65mj.fd @@ -0,0 +1,53 @@ +% This is file c65mj.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65mj.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcMyoungjo + +\DeclareFontFamily{C65}{mj}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{mj}{c}{n}{<-> CJK * wmjc}{} +\DeclareFontShape{C65}{mj}{c}{sl}{<-> CJK * wmjco}{} +\DeclareFontShape{C65}{mj}{c}{it}{<-> CJKssub * mj/c/sl}{} + +\DeclareFontShape{C65}{mj}{m}{n}{<-> CJK * wmj}{} +\DeclareFontShape{C65}{mj}{m}{sl}{<-> CJK * wmjo}{} +\DeclareFontShape{C65}{mj}{m}{it}{<-> CJKssub * mj/m/sl}{} + +\DeclareFontShape{C65}{mj}{x}{n}{<-> CJK * wmjx}{} +\DeclareFontShape{C65}{mj}{x}{sl}{<-> CJK * wmjxo}{} +\DeclareFontShape{C65}{mj}{x}{it}{<-> CJKssub * mj/x/sl}{} + +\DeclareFontShape{C65}{mj}{ux}{n}{<-> CJK * wmju}{} +\DeclareFontShape{C65}{mj}{ux}{sl}{<-> CJK * wmjuo}{} +\DeclareFontShape{C65}{mj}{ux}{it}{<-> CJKssub * mj/ux/sl}{} + +\DeclareFontShape{C65}{mj}{bc}{n}{<-> CJK * wmjbc}{} +\DeclareFontShape{C65}{mj}{bc}{sl}{<-> CJK * wmjbco}{} +\DeclareFontShape{C65}{mj}{bc}{it}{<-> CJKssub * mj/bc/sl}{} + +\DeclareFontShape{C65}{mj}{b}{n}{<-> CJK * wmjb}{} +\DeclareFontShape{C65}{mj}{b}{sl}{<-> CJK * wmjbo}{} +\DeclareFontShape{C65}{mj}{b}{it}{<-> CJKssub * mj/b/sl}{} + +\DeclareFontShape{C65}{mj}{bx}{n}{<-> CJK * wmjbx}{} +\DeclareFontShape{C65}{mj}{bx}{sl}{<-> CJK * wmjbxo}{} +\DeclareFontShape{C65}{mj}{bx}{it}{<-> CJKssub * mj/bx/sl}{} + +\DeclareFontShape{C65}{mj}{bux}{n}{<-> CJK * wmjbu}{} +\DeclareFontShape{C65}{mj}{bux}{sl}{<-> CJK * wmjbuo}{} +\DeclareFontShape{C65}{mj}{bux}{it}{<-> CJKssub * mj/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65pg.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65pg.fd new file mode 100644 index 0000000000..fc5fe9004b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65pg.fd @@ -0,0 +1,53 @@ +% This is file c65pg.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65pg.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcPilgi + +\DeclareFontFamily{C65}{pg}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{pg}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C65}{pg}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C65}{pg}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C65}{pg}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C65}{pg}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C65}{pg}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C65}{pg}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C65}{pg}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C65}{pg}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C65}{pg}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C65}{pg}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C65}{pg}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C65}{pg}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C65}{pg}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C65}{pg}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C65}{pg}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C65}{pg}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C65}{pg}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C65}{pg}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C65}{pg}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C65}{pg}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C65}{pg}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C65}{pg}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C65}{pg}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65pga.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65pga.fd new file mode 100644 index 0000000000..2234820a6b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65pga.fd @@ -0,0 +1,53 @@ +% This is file c65pga.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65pga.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcPilgia + +\DeclareFontFamily{C65}{pga}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{pga}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C65}{pga}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C65}{pga}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C65}{pga}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C65}{pga}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C65}{pga}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C65}{pga}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C65}{pga}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C65}{pga}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C65}{pga}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C65}{pga}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C65}{pga}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C65}{pga}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C65}{pga}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C65}{pga}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C65}{pga}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C65}{pga}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C65}{pga}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C65}{pga}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C65}{pga}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C65}{pga}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C65}{pga}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C65}{pga}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C65}{pga}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65ph.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65ph.fd new file mode 100644 index 0000000000..2b3a8d93a1 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65ph.fd @@ -0,0 +1,53 @@ +% This is file c65ph.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65ph.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcPenHeulim + +\DeclareFontFamily{C65}{ph}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{ph}{c}{n}{<-> CJKssub * mj/c/n}{} +\DeclareFontShape{C65}{ph}{c}{sl}{<-> CJKssub * mj/c/sl}{} +\DeclareFontShape{C65}{ph}{c}{it}{<-> CJKssub * mj/c/it}{} + +\DeclareFontShape{C65}{ph}{m}{n}{<-> CJKssub * mj/m/n}{} +\DeclareFontShape{C65}{ph}{m}{sl}{<-> CJKssub * mj/m/sl}{} +\DeclareFontShape{C65}{ph}{m}{it}{<-> CJKssub * mj/m/it}{} + +\DeclareFontShape{C65}{ph}{x}{n}{<-> CJKssub * mj/x/n}{} +\DeclareFontShape{C65}{ph}{x}{sl}{<-> CJKssub * mj/x/sl}{} +\DeclareFontShape{C65}{ph}{x}{it}{<-> CJKssub * mj/x/it}{} + +\DeclareFontShape{C65}{ph}{ux}{n}{<-> CJKssub * mj/ux/n}{} +\DeclareFontShape{C65}{ph}{ux}{sl}{<-> CJKssub * mj/ux/sl}{} +\DeclareFontShape{C65}{ph}{ux}{it}{<-> CJKssub * mj/ux/it}{} + +\DeclareFontShape{C65}{ph}{bc}{n}{<-> CJKssub * mj/bc/n}{} +\DeclareFontShape{C65}{ph}{bc}{sl}{<-> CJKssub * mj/bc/sl}{} +\DeclareFontShape{C65}{ph}{bc}{it}{<-> CJKssub * mj/bc/it}{} + +\DeclareFontShape{C65}{ph}{b}{n}{<-> CJKssub * mj/b/n}{} +\DeclareFontShape{C65}{ph}{b}{sl}{<-> CJKssub * mj/b/sl}{} +\DeclareFontShape{C65}{ph}{b}{it}{<-> CJKssub * mj/b/it}{} + +\DeclareFontShape{C65}{ph}{bx}{n}{<-> CJKssub * mj/bx/n}{} +\DeclareFontShape{C65}{ph}{bx}{sl}{<-> CJKssub * mj/bx/sl}{} +\DeclareFontShape{C65}{ph}{bx}{it}{<-> CJKssub * mj/bx/it}{} + +\DeclareFontShape{C65}{ph}{bux}{n}{<-> CJKssub * mj/bux/n}{} +\DeclareFontShape{C65}{ph}{bux}{sl}{<-> CJKssub * mj/bux/sl}{} +\DeclareFontShape{C65}{ph}{bux}{it}{<-> CJKssub * mj/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65pn.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65pn.fd new file mode 100644 index 0000000000..8d77ed1c1a --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65pn.fd @@ -0,0 +1,53 @@ +% This is file c65pn.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65pn.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcPen + +\DeclareFontFamily{C65}{pn}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{pn}{c}{n}{<-> CJKssub* mj/c/n}{} +\DeclareFontShape{C65}{pn}{c}{sl}{<-> CJKssub* mj/c/sl}{} +\DeclareFontShape{C65}{pn}{c}{it}{<-> CJKssub * mj/c/it}{} + +\DeclareFontShape{C65}{pn}{m}{n}{<-> CJKssub* mj/m/n}{} +\DeclareFontShape{C65}{pn}{m}{sl}{<-> CJKssub* mj/m/sl}{} +\DeclareFontShape{C65}{pn}{m}{it}{<-> CJKssub * mj/m/it}{} + +\DeclareFontShape{C65}{pn}{x}{n}{<-> CJKssub* mj/x/n}{} +\DeclareFontShape{C65}{pn}{x}{sl}{<-> CJKssub* mj/x/sl}{} +\DeclareFontShape{C65}{pn}{x}{it}{<-> CJKssub * mj/x/it}{} + +\DeclareFontShape{C65}{pn}{ux}{n}{<-> CJKssub* mj/ux/n}{} +\DeclareFontShape{C65}{pn}{ux}{sl}{<-> CJKssub* mj/ux/sl}{} +\DeclareFontShape{C65}{pn}{ux}{it}{<-> CJKssub * mj/ux/it}{} + +\DeclareFontShape{C65}{pn}{bc}{n}{<-> CJKssub * mj/bc/n}{} +\DeclareFontShape{C65}{pn}{bc}{sl}{<-> CJKssub * mj/bc/sl}{} +\DeclareFontShape{C65}{pn}{bc}{it}{<-> CJKssub * mj/bc/it}{} + +\DeclareFontShape{C65}{pn}{b}{n}{<-> CJKssub * mj/b/n}{} +\DeclareFontShape{C65}{pn}{b}{sl}{<-> CJKssub * mj/b/sl}{} +\DeclareFontShape{C65}{pn}{b}{it}{<-> CJKssub * mj/b/it}{} + +\DeclareFontShape{C65}{pn}{bx}{n}{<-> CJKssub * mj/bx/n}{} +\DeclareFontShape{C65}{pn}{bx}{sl}{<-> CJKssub * mj/bx/sl}{} +\DeclareFontShape{C65}{pn}{bx}{it}{<-> CJKssub * mj/bx/it}{} + +\DeclareFontShape{C65}{pn}{bux}{n}{<-> CJKssub * mj/bux/n}{} +\DeclareFontShape{C65}{pn}{bux}{sl}{<-> CJKssub * mj/bux/sl}{} +\DeclareFontShape{C65}{pn}{bux}{it}{<-> CJKssub * mj/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65sh.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65sh.fd new file mode 100644 index 0000000000..0cb3a621e8 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65sh.fd @@ -0,0 +1,53 @@ +% This is file c65sh.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65sh.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcShinmunMyoungjo + +\DeclareFontFamily{C65}{hwsh}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{sh}{c}{n}{<-> CJK * wshc}{} +\DeclareFontShape{C65}{sh}{c}{sl}{<-> CJK * wshco}{} +\DeclareFontShape{C65}{sh}{c}{it}{<-> CJKssub * sh/c/sl}{} + +\DeclareFontShape{C65}{sh}{m}{n}{<-> CJK * wsh}{} +\DeclareFontShape{C65}{sh}{m}{sl}{<-> CJK * wsho}{} +\DeclareFontShape{C65}{sh}{m}{it}{<-> CJKssub * sh/m/sl}{} + +\DeclareFontShape{C65}{sh}{x}{n}{<-> CJK * wshx}{} +\DeclareFontShape{C65}{sh}{x}{sl}{<-> CJK * wshxo}{} +\DeclareFontShape{C65}{sh}{x}{it}{<-> CJKssub * sh/x/sl}{} + +\DeclareFontShape{C65}{sh}{ux}{n}{<-> CJK * wshu}{} +\DeclareFontShape{C65}{sh}{ux}{sl}{<-> CJK * wshuo}{} +\DeclareFontShape{C65}{sh}{ux}{it}{<-> CJKssub * sh/ux/sl}{} + +\DeclareFontShape{C65}{sh}{bc}{n}{<-> CJKssub * sh/c/n}{} +\DeclareFontShape{C65}{sh}{bc}{sl}{<-> CJKssub * sh/c/sl}{} +\DeclareFontShape{C65}{sh}{bc}{it}{<-> CJKssub * sh/bc/sl}{} + +\DeclareFontShape{C65}{sh}{b}{n}{<-> CJKssub * sh/m/n}{} +\DeclareFontShape{C65}{sh}{b}{sl}{<-> CJKssub * sh/m/sl}{} +\DeclareFontShape{C65}{sh}{b}{it}{<-> CJKssub * sh/b/sl}{} + +\DeclareFontShape{C65}{sh}{bx}{n}{<-> CJKssub * sh/x/n}{} +\DeclareFontShape{C65}{sh}{bx}{sl}{<-> CJKssub * sh/x/sl}{} +\DeclareFontShape{C65}{sh}{bx}{it}{<-> CJKssub * sh/bx/sl}{} + +\DeclareFontShape{C65}{sh}{bux}{n}{<-> CJKssub * sh/ux/n}{} +\DeclareFontShape{C65}{sh}{bux}{sl}{<-> CJKssub * sh/ux/sl}{} +\DeclareFontShape{C65}{sh}{bux}{it}{<-> CJKssub * sh/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65tz.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65tz.fd new file mode 100644 index 0000000000..d353019683 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65tz.fd @@ -0,0 +1,53 @@ +% This is file c65tz.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65tz.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcTypewriter + +\DeclareFontFamily{C65}{tz}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{tz}{c}{n}{<-> CJK * wttc}{} +\DeclareFontShape{C65}{tz}{c}{sl}{<-> CJK * wttco}{} +\DeclareFontShape{C65}{tz}{c}{it}{<-> CJKssub * tz/c/sl}{} + +\DeclareFontShape{C65}{tz}{m}{n}{<-> CJK * wtt}{} +\DeclareFontShape{C65}{tz}{m}{sl}{<-> CJK * wtto}{} +\DeclareFontShape{C65}{tz}{m}{it}{<-> CJKssub * tz/m/sl}{} + +\DeclareFontShape{C65}{tz}{x}{n}{<-> CJK * wttx}{} +\DeclareFontShape{C65}{tz}{x}{sl}{<-> CJK * wttxo}{} +\DeclareFontShape{C65}{tz}{x}{it}{<-> CJKssub * tz/x/sl}{} + +\DeclareFontShape{C65}{tz}{ux}{n}{<-> CJK * wttu}{} +\DeclareFontShape{C65}{tz}{ux}{sl}{<-> CJK * wttuo}{} +\DeclareFontShape{C65}{tz}{ux}{it}{<-> CJKssub * tz/ux/sl}{} + +\DeclareFontShape{C65}{tz}{bc}{n}{<-> CJKb * wttc}{\CJKbold} +\DeclareFontShape{C65}{tz}{bc}{sl}{<-> CJKb * wttco}{\CJKbold} +\DeclareFontShape{C65}{tz}{bc}{it}{<-> CJKssub * tz/bc/sl}{} + +\DeclareFontShape{C65}{tz}{b}{n}{<-> CJKb * wtt}{\CJKbold} +\DeclareFontShape{C65}{tz}{b}{sl}{<-> CJKb * wtto}{\CJKbold} +\DeclareFontShape{C65}{tz}{b}{it}{<-> CJKssub * tz/b/sl}{} + +\DeclareFontShape{C65}{tz}{bx}{n}{<-> CJKb * wttx}{\CJKbold} +\DeclareFontShape{C65}{tz}{bx}{sl}{<-> CJKb * wttxo}{\CJKbold} +\DeclareFontShape{C65}{tz}{bx}{it}{<-> CJKssub * tz/bx/sl}{} + +\DeclareFontShape{C65}{tz}{bux}{n}{<-> CJKb * wttu}{\CJKbold} +\DeclareFontShape{C65}{tz}{bux}{sl}{<-> CJKb * wttuo}{\CJKbold} +\DeclareFontShape{C65}{tz}{bux}{it}{<-> CJKssub * tz/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65vd.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65vd.fd new file mode 100644 index 0000000000..efe297ef8b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65vd.fd @@ -0,0 +1,53 @@ +% This is file c65vd.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65vd.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcVada + +\DeclareFontFamily{C65}{vd}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{vd}{c}{n}{<-> CJKssub * gt/c/n}{} +\DeclareFontShape{C65}{vd}{c}{sl}{<-> CJKssub * gt/c/sl}{} +\DeclareFontShape{C65}{vd}{c}{it}{<-> CJKssub * gt/c/it}{} + +\DeclareFontShape{C65}{vd}{m}{n}{<-> CJKssub * gt/m/n}{} +\DeclareFontShape{C65}{vd}{m}{sl}{<-> CJKssub * gt/m/sl}{} +\DeclareFontShape{C65}{vd}{m}{it}{<-> CJKssub * gt/m/it}{} + +\DeclareFontShape{C65}{vd}{x}{n}{<-> CJKssub * gt/x/n}{} +\DeclareFontShape{C65}{vd}{x}{sl}{<-> CJKssub * gt/x/sl}{} +\DeclareFontShape{C65}{vd}{x}{it}{<-> CJKssub * gt/x/it}{} + +\DeclareFontShape{C65}{vd}{ux}{n}{<-> CJKssub * gt/ux/n}{} +\DeclareFontShape{C65}{vd}{ux}{sl}{<-> CJKssub * gt/ux/sl}{} +\DeclareFontShape{C65}{vd}{ux}{it}{<-> CJKssub * gt/ux/it}{} + +\DeclareFontShape{C65}{vd}{bc}{n}{<-> CJKssub * gt/bc/n}{} +\DeclareFontShape{C65}{vd}{bc}{sl}{<-> CJKssub * gt/bc/sl}{} +\DeclareFontShape{C65}{vd}{bc}{it}{<-> CJKssub * gt/bc/it}{} + +\DeclareFontShape{C65}{vd}{b}{n}{<-> CJKssub * gt/b/n}{} +\DeclareFontShape{C65}{vd}{b}{sl}{<-> CJKssub * gt/b/sl}{} +\DeclareFontShape{C65}{vd}{b}{it}{<-> CJKssub * gt/b/it}{} + +\DeclareFontShape{C65}{vd}{bx}{n}{<-> CJKssub * gt/bx/n}{} +\DeclareFontShape{C65}{vd}{bx}{sl}{<-> CJKssub * gt/bx/sl}{} +\DeclareFontShape{C65}{vd}{bx}{it}{<-> CJKssub * gt/bx/it}{} + +\DeclareFontShape{C65}{vd}{bux}{n}{<-> CJKssub * gt/bux/n}{} +\DeclareFontShape{C65}{vd}{bux}{sl}{<-> CJKssub * gt/bux/sl}{} +\DeclareFontShape{C65}{vd}{bux}{it}{<-> CJKssub * gt/bux/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65yt.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65yt.fd new file mode 100644 index 0000000000..0aa4975cab --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/c65yt.fd @@ -0,0 +1,53 @@ +% This is file c65yt.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65yt.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcYetgul + +\DeclareFontFamily{C65}{yt}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{yt}{c}{n}{<-> CJK * wytc}{} +\DeclareFontShape{C65}{yt}{c}{sl}{<-> CJK * wytco}{} +\DeclareFontShape{C65}{yt}{c}{it}{<-> CJKssub * yt/c/sl}{} + +\DeclareFontShape{C65}{yt}{m}{n}{<-> CJK * wyt}{} +\DeclareFontShape{C65}{yt}{m}{sl}{<-> CJK * wyto}{} +\DeclareFontShape{C65}{yt}{m}{it}{<-> CJKssub * yt/m/sl}{} + +\DeclareFontShape{C65}{yt}{x}{n}{<-> CJK * wytx}{} +\DeclareFontShape{C65}{yt}{x}{sl}{<-> CJK * wytxo}{} +\DeclareFontShape{C65}{yt}{x}{it}{<-> CJKssub * yt/x/sl}{} + +\DeclareFontShape{C65}{yt}{ux}{n}{<-> CJK * wytu}{} +\DeclareFontShape{C65}{yt}{ux}{sl}{<-> CJK * wytuo}{} +\DeclareFontShape{C65}{yt}{ux}{it}{<-> CJKssub * yt/ux/sl}{} + +\DeclareFontShape{C65}{yt}{bc}{n}{<-> CJKb * wytc}{\CJKbold} +\DeclareFontShape{C65}{yt}{bc}{sl}{<-> CJKb * wytco}{\CJKbold} +\DeclareFontShape{C65}{yt}{bc}{it}{<-> CJKssub * yt/bc/sl}{} + +\DeclareFontShape{C65}{yt}{b}{n}{<-> CJKb * wyt}{\CJKbold} +\DeclareFontShape{C65}{yt}{b}{sl}{<-> CJKb * wyto}{\CJKbold} +\DeclareFontShape{C65}{yt}{b}{it}{<-> CJKssub * yt/b/sl}{} + +\DeclareFontShape{C65}{yt}{bx}{n}{<-> CJKb * wytx}{\CJKbold} +\DeclareFontShape{C65}{yt}{bx}{sl}{<-> CJKb * wytxo}{\CJKbold} +\DeclareFontShape{C65}{yt}{bx}{it}{<-> CJKssub * yt/bx/sl}{} + +\DeclareFontShape{C65}{yt}{bux}{n}{<-> CJKb * wytu}{\CJKbold} +\DeclareFontShape{C65}{yt}{bux}{sl}{<-> CJKb * wytuo}{\CJKbold} +\DeclareFontShape{C65}{yt}{bux}{it}{<-> CJKssub * yt/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/pshan.sty b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/pshan.sty new file mode 100644 index 0000000000..67c4c5fb4d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/HLaTeX/pshan.sty @@ -0,0 +1,29 @@ +% This is the file pshan.sty of the CJK package +% for using HLaTeX's PostScript fonts. +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesPackage{pshan}[\filedate\space\fileversion] + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/KS.chr b/language/chinese/CJK/cjk-4.8.5/texinput/KS/KS.chr new file mode 100644 index 0000000000..924b9792e5 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/KS.chr @@ -0,0 +1,251 @@ +% This is the file KS.chr of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{KS.chr}[\filedate\space\fileversion] + + +% define macros for handling hangul fonts and characters. + +\gdef\CJK@KSChr{ + \CJK@global\def\CJK@altchar##1##2##3{ + {\ifnum ##3 < \CJK@min + \CJK@err + \else + \ifnum ##3 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \discretionary{}{}{} + \fi + + \@tempcnta ##3\relax + \advance\@tempcnta ##2\relax + \edef\CJK@plane{##1} + \usefont{\CJK@altEnc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% the same, but the plane crosses the font file boundary. + + \CJK@global\def\CJK@altcharx##1##2##3##4{ + {\ifnum ##4 < \CJK@min + \CJK@err + \else + \ifnum ##4 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \discretionary{}{}{} + \fi + + \@tempcnta ##4\relax + \@tempcntb 256\relax + \advance\@tempcnta ##3\relax + \advance\@tempcntb -##3\relax + \chardef\@temp \@tempcntb + \ifnum ##4 < \@temp + \edef\CJK@plane{##1} + \else + \advance\@tempcnta -256\relax + \edef\CJK@plane{##2} + \fi + \usefont{\CJK@altEnc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + + \CJK@global\def\CJK@char##1##2##3{ + {\ifnum ##3 < \CJK@min + \CJK@err + \else + \ifnum ##3 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \discretionary{}{}{} + \fi + + \@tempcnta ##3\relax + \advance\@tempcnta ##2\relax + \edef\CJK@plane{##1} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% the same, but the plane crosses the font file boundary. + + \CJK@global\def\CJK@charx##1##2##3##4{ + {\ifnum ##4 < \CJK@min + \CJK@err + \else + \ifnum ##4 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \discretionary{}{}{} + \fi + + \@tempcnta ##4\relax + \@tempcntb 256\relax + \advance\@tempcnta ##3\relax + \advance\@tempcntb -##3\relax + \chardef\@temp \@tempcntb + \ifnum ##4 < \@temp + \edef\CJK@plane{##1} + \else + \advance\@tempcnta -256\relax + \edef\CJK@plane{##2} + \fi + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% for punctuation. + + \CJK@global\def\CJK@punctchar##1##2##3##4{ + {\ifnum ##4 < \CJK@min + \CJK@err + \else + \ifnum ##4 > \CJK@max + \CJK@err + \else + \CJK@numbToHex{\CJK@gtemp}{##4} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \else + \discretionary{}{}{} + \fi + \fi + + \@tempcnta ##4\relax + \advance\@tempcnta ##3\relax + \edef\CJK@plane{##2} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \fi + \fi}} + + \CJK@global\def\CJK@punctcharx##1##2##3##4##5{ + {\ifnum ##5 < \CJK@min + \CJK@err + \else + \ifnum ##5 > \CJK@max + \CJK@err + \else + \CJK@numbToHex{\CJK@gtemp}{##5} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \else + \discretionary{}{}{} + \fi + \fi + + \@tempcnta ##5\relax + \@tempcntb 256\relax + \advance\@tempcnta ##4\relax + \advance\@tempcntb -##4\relax + \chardef\@temp \@tempcntb + \ifnum ##5 < \@temp + \edef\CJK@plane{##2} + \else + \advance\@tempcnta -256\relax + \edef\CJK@plane{##3} + \fi + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \fi + \fi}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/KS.enc b/language/chinese/CJK/cjk-4.8.5/texinput/KS/KS.enc new file mode 100644 index 0000000000..bd3246e246 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/KS.enc @@ -0,0 +1,114 @@ +% This is the file KS.enc of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{KS.enc}[\filedate\space\fileversion] + + +% KS encoding: +% each plane has 94 characters; Hangul elements (Jaso) and Hangul +% syllables are overlaid with a second CJK font. + +\gdef\CJK@KSEncoding{ + \CJK@loadChr{KS} + + \CJK@namegdef{^^a1}##1{\@empty\CJK@punctchar{A1}{01}{-161}{##1}} + \CJK@namegdef{^^a2}##1{\@empty\CJK@char {01}{ -67}{##1}} + \CJK@namegdef{^^a3}##1{\@empty\CJK@punctcharx{A3}{01}{02}{27}{##1}} + \CJK@namegdef{^^a4}##1{\@empty\CJK@altchar {02}{-135}{##1}}% Hangul elements + \CJK@namegdef{^^a5}##1{\@empty\CJK@char {02}{ -41}{##1}} + \CJK@namegdef{^^a6}##1{\@empty\CJK@charx{02}{03}{53}{##1}} + \CJK@namegdef{^^a7}##1{\@empty\CJK@char {03}{-109}{##1}} + \CJK@namegdef{^^a8}##1{\@empty\CJK@char {03}{ -15}{##1}} + \CJK@namegdef{^^a9}##1{\@empty\CJK@charx{03}{04}{79}{##1}} + \CJK@namegdef{^^aa}##1{\@empty\CJK@char {04}{ -83}{##1}} + \CJK@namegdef{^^ab}##1{\@empty\CJK@charx{04}{05}{11}{##1}} + \CJK@namegdef{^^ac}##1{\@empty\CJK@char {05}{-151}{##1}} + \CJK@namegdef{^^ad}##1{\@empty\CJK@char {05}{ -57}{##1}} + \CJK@namegdef{^^ae}##1{\@empty\CJK@charx{05}{06}{37}{##1}} + \CJK@namegdef{^^af}##1{\@empty\CJK@char {06}{-125}{##1}} + \CJK@namegdef{^^b0}##1{\@empty\CJK@altchar {06}{ -31}{##1}}% Hangul syllables + \CJK@namegdef{^^b1}##1{\@empty\CJK@altcharx{06}{07}{63}{##1}} + \CJK@namegdef{^^b2}##1{\@empty\CJK@altchar {07}{ -99}{##1}} + \CJK@namegdef{^^b3}##1{\@empty\CJK@altchar {07}{ -5}{##1}} + \CJK@namegdef{^^b4}##1{\@empty\CJK@altcharx{07}{08}{89}{##1}} + \CJK@namegdef{^^b5}##1{\@empty\CJK@altchar {08}{ -73}{##1}} + \CJK@namegdef{^^b6}##1{\@empty\CJK@altcharx{08}{09}{21}{##1}} + \CJK@namegdef{^^b7}##1{\@empty\CJK@altchar {09}{-141}{##1}} + \CJK@namegdef{^^b8}##1{\@empty\CJK@altchar {09}{ -47}{##1}} + \CJK@namegdef{^^b9}##1{\@empty\CJK@altcharx{09}{10}{47}{##1}} + \CJK@namegdef{^^ba}##1{\@empty\CJK@altchar {10}{-115}{##1}} + \CJK@namegdef{^^bb}##1{\@empty\CJK@altchar {10}{ -21}{##1}} + \CJK@namegdef{^^bc}##1{\@empty\CJK@altcharx{10}{11}{73}{##1}} + \CJK@namegdef{^^bd}##1{\@empty\CJK@altchar {11}{ -89}{##1}} + \CJK@namegdef{^^be}##1{\@empty\CJK@altcharx{11}{12}{ 5}{##1}} + \CJK@namegdef{^^bf}##1{\@empty\CJK@altchar {12}{-157}{##1}} + \CJK@namegdef{^^c0}##1{\@empty\CJK@altchar {12}{ -63}{##1}} + \CJK@namegdef{^^c1}##1{\@empty\CJK@altcharx{12}{13}{31}{##1}} + \CJK@namegdef{^^c2}##1{\@empty\CJK@altchar {13}{-131}{##1}} + \CJK@namegdef{^^c3}##1{\@empty\CJK@altchar {13}{ -37}{##1}} + \CJK@namegdef{^^c4}##1{\@empty\CJK@altcharx{13}{14}{57}{##1}} + \CJK@namegdef{^^c5}##1{\@empty\CJK@altchar {14}{-105}{##1}} + \CJK@namegdef{^^c6}##1{\@empty\CJK@altchar {14}{ -11}{##1}} + \CJK@namegdef{^^c7}##1{\@empty\CJK@altcharx{14}{15}{83}{##1}} + \CJK@namegdef{^^c8}##1{\@empty\CJK@altchar {15}{ -79}{##1}} + \CJK@namegdef{^^c9}##1{\@empty\CJK@charx{15}{16}{15}{##1}}% Hanja + \CJK@namegdef{^^ca}##1{\@empty\CJK@char {16}{-147}{##1}} + \CJK@namegdef{^^cb}##1{\@empty\CJK@char {16}{ -53}{##1}} + \CJK@namegdef{^^cc}##1{\@empty\CJK@charx{16}{17}{41}{##1}} + \CJK@namegdef{^^cd}##1{\@empty\CJK@char {17}{-121}{##1}} + \CJK@namegdef{^^ce}##1{\@empty\CJK@char {17}{ -27}{##1}} + \CJK@namegdef{^^cf}##1{\@empty\CJK@charx{17}{18}{67}{##1}} + \CJK@namegdef{^^d0}##1{\@empty\CJK@char {18}{ -95}{##1}} + \CJK@namegdef{^^d1}##1{\@empty\CJK@char {18}{ -1}{##1}} + \CJK@namegdef{^^d2}##1{\@empty\CJK@charx{18}{19}{93}{##1}} + \CJK@namegdef{^^d3}##1{\@empty\CJK@char {19}{ -69}{##1}} + \CJK@namegdef{^^d4}##1{\@empty\CJK@charx{19}{20}{25}{##1}} + \CJK@namegdef{^^d5}##1{\@empty\CJK@char {20}{-137}{##1}} + \CJK@namegdef{^^d6}##1{\@empty\CJK@char {20}{ -43}{##1}} + \CJK@namegdef{^^d7}##1{\@empty\CJK@charx{20}{21}{51}{##1}} + \CJK@namegdef{^^d8}##1{\@empty\CJK@char {21}{-111}{##1}} + \CJK@namegdef{^^d9}##1{\@empty\CJK@char {21}{ -17}{##1}} + \CJK@namegdef{^^da}##1{\@empty\CJK@charx{21}{22}{77}{##1}} + \CJK@namegdef{^^db}##1{\@empty\CJK@char {22}{ -85}{##1}} + \CJK@namegdef{^^dc}##1{\@empty\CJK@charx{22}{23}{ 9}{##1}} + \CJK@namegdef{^^dd}##1{\@empty\CJK@char {23}{-153}{##1}} + \CJK@namegdef{^^de}##1{\@empty\CJK@char {23}{ -59}{##1}} + \CJK@namegdef{^^df}##1{\@empty\CJK@charx{23}{24}{35}{##1}} + \CJK@namegdef{^^e0}##1{\@empty\CJK@char {24}{-127}{##1}} + \CJK@namegdef{^^e1}##1{\@empty\CJK@char {24}{ -33}{##1}} + \CJK@namegdef{^^e2}##1{\@empty\CJK@charx{24}{25}{61}{##1}} + \CJK@namegdef{^^e3}##1{\@empty\CJK@char {25}{-101}{##1}} + \CJK@namegdef{^^e4}##1{\@empty\CJK@char {25}{ -7}{##1}} + \CJK@namegdef{^^e5}##1{\@empty\CJK@charx{25}{26}{87}{##1}} + \CJK@namegdef{^^e6}##1{\@empty\CJK@char {26}{ -75}{##1}} + \CJK@namegdef{^^e7}##1{\@empty\CJK@charx{26}{27}{19}{##1}} + \CJK@namegdef{^^e8}##1{\@empty\CJK@char {27}{-143}{##1}} + \CJK@namegdef{^^e9}##1{\@empty\CJK@char {27}{ -49}{##1}} + \CJK@namegdef{^^ea}##1{\@empty\CJK@charx{27}{28}{45}{##1}} + \CJK@namegdef{^^eb}##1{\@empty\CJK@char {28}{-117}{##1}} + \CJK@namegdef{^^ec}##1{\@empty\CJK@char {28}{ -23}{##1}} + \CJK@namegdef{^^ed}##1{\@empty\CJK@charx{28}{29}{71}{##1}} + \CJK@namegdef{^^ee}##1{\@empty\CJK@char {29}{ -91}{##1}} + \CJK@namegdef{^^ef}##1{\@empty\CJK@charx{29}{30}{ 3}{##1}} + \CJK@namegdef{^^f0}##1{\@empty\CJK@char {30}{-159}{##1}} + \CJK@namegdef{^^f1}##1{\@empty\CJK@char {30}{ -65}{##1}} + \CJK@namegdef{^^f2}##1{\@empty\CJK@charx{30}{31}{29}{##1}} + \CJK@namegdef{^^f3}##1{\@empty\CJK@char {31}{-133}{##1}} + \CJK@namegdef{^^f4}##1{\@empty\CJK@char {31}{ -39}{##1}} + \CJK@namegdef{^^f5}##1{\@empty\CJK@charx{31}{32}{55}{##1}} + \CJK@namegdef{^^f6}##1{\@empty\CJK@char {32}{-107}{##1}} + \CJK@namegdef{^^f7}##1{\@empty\CJK@char {32}{ -13}{##1}} + \CJK@namegdef{^^f8}##1{\@empty\CJK@charx{32}{33}{81}{##1}} + \CJK@namegdef{^^f9}##1{\@empty\CJK@char {33}{ -81}{##1}} + \CJK@namegdef{^^fa}##1{\@empty\CJK@charx{33}{34}{13}{##1}} + \CJK@namegdef{^^fb}##1{\@empty\CJK@char {34}{-149}{##1}} + \CJK@namegdef{^^fc}##1{\@empty\CJK@char {34}{ -55}{##1}} + \CJK@namegdef{^^fd}##1{\@empty\CJK@charx{34}{35}{39}{##1}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60dr.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60dr.fd new file mode 100644 index 0000000000..83d0bd611d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60dr.fd @@ -0,0 +1,22 @@ +% This is the file c60dr.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c60dr.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C60}{dr}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C60}{dr}{m}{n}{<-> CJKssub * mj/m/n}{} +\DeclareFontShape{C60}{dr}{bx}{n}{<-> CJKssub * mj/bx/n}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60gr.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60gr.fd new file mode 100644 index 0000000000..b2e908ac5d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60gr.fd @@ -0,0 +1,22 @@ +% This is the file c60gr.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c60gr.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C60}{gr}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C60}{gr}{m}{n}{<-> CJKssub * mj/m/n}{} +\DeclareFontShape{C60}{gr}{bx}{n}{<-> CJKssub * mj/bx/n}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60gs.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60gs.fd new file mode 100644 index 0000000000..cb8e012255 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60gs.fd @@ -0,0 +1,22 @@ +% This is the file c60gs.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c60gs.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C60}{gs}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C60}{gs}{m}{n}{<-> CJKssub * mj/m/n}{} +\DeclareFontShape{C60}{gs}{bx}{n}{<-> CJKssub * mj/bx/n}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60gt.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60gt.fd new file mode 100644 index 0000000000..fc54bfded7 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60gt.fd @@ -0,0 +1,22 @@ +% This is the file c60gt.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c60gt.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C60}{gt}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C60}{gt}{m}{n}{<-> CJKssub * mj/m/n}{} +\DeclareFontShape{C60}{gt}{bx}{n}{<-> CJKssub * mj/bx/n}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60hgt.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60hgt.fd new file mode 100644 index 0000000000..4291ae4361 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60hgt.fd @@ -0,0 +1,22 @@ +% This is the file c60hgt.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c60hgt.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C60}{hgt}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C60}{hgt}{m}{n}{<-> CJKssub * mj/m/n}{} +\DeclareFontShape{C60}{hgt}{bx}{n}{<-> CJKssub * mj/bx/n}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60hmj.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60hmj.fd new file mode 100644 index 0000000000..a2bea6c9a1 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60hmj.fd @@ -0,0 +1,22 @@ +% This is the file c60hmj.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c60hmj.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C60}{hmj}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C60}{hmj}{m}{n}{<-> CJKssub * mj/m/n}{} +\DeclareFontShape{C60}{hmj}{bx}{n}{<-> CJKssub * mj/bx/n}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60hol.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60hol.fd new file mode 100644 index 0000000000..1c1e16b12b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60hol.fd @@ -0,0 +1,22 @@ +% This is the file c60hol.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c60hol.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C60}{hol}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C60}{hol}{m}{n}{<-> CJKssub * mj/m/n}{} +\DeclareFontShape{C60}{hol}{bx}{n}{<-> CJKssub * mj/bx/n}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60hpg.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60hpg.fd new file mode 100644 index 0000000000..d581cebaf8 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60hpg.fd @@ -0,0 +1,22 @@ +% This is the file c60hpg.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c60hpg.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C60}{hpg}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C60}{hpg}{m}{n}{<-> CJKssub * mj/m/n}{} +\DeclareFontShape{C60}{hpg}{bx}{n}{<-> CJKssub * mj/bx/n}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60mj.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60mj.fd new file mode 100644 index 0000000000..1c86c18335 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c60mj.fd @@ -0,0 +1,22 @@ +% This is the file c60mj.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c60mj.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C60}{mj}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C60}{mj}{m}{n}{<-> CJK * ksso17}{\CJKnormal} +\DeclareFontShape{C60}{mj}{bx}{n}{<-> CJKb * ksso17}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61dr.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61dr.fd new file mode 100644 index 0000000000..09e246a7e8 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61dr.fd @@ -0,0 +1,27 @@ +% This is the file c61dr.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c61dr.fd}[\filedate\space\fileversion] + + +% Korean syllables (Hangul) and elements (Jaso) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C61}{dr}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C61}{dr}{m}{n}{ + <5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJK * kdr}{\CJKnormal} +\DeclareFontShape{C61}{dr}{bx}{n}{ + <5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJKb * kdr}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61gr.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61gr.fd new file mode 100644 index 0000000000..32acdfb66c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61gr.fd @@ -0,0 +1,26 @@ +% This is the file c61gr.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c61gr.fd}[\filedate\space\fileversion] + +% Korean syllables (Hangul) and elements (Jaso) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C61}{gr}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C61}{gr}{m}{n}{ + <5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJK * kgr}{\CJKnormal} +\DeclareFontShape{C61}{gr}{bx}{n}{ + <5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJKb * kgr}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61gs.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61gs.fd new file mode 100644 index 0000000000..0eae709b0a --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61gs.fd @@ -0,0 +1,26 @@ +% This is the file c61gs.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c61gs.fd}[\filedate\space\fileversion] + +% Korean syllables (Hangul) and elements (Jaso) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C61}{gs}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C61}{gs}{m}{n}{ + <5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJK * kgs}{\CJKnormal} +\DeclareFontShape{C61}{gs}{bx}{n}{ + <5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJKb * kgs}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61gt.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61gt.fd new file mode 100644 index 0000000000..53b4084ebb --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61gt.fd @@ -0,0 +1,26 @@ +% This is the file c61gt.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c61gt.fd}[\filedate\space\fileversion] + +% Korean syllables (Hangul) and elements (Jaso) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C61}{gt}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C61}{gt}{m}{n}{ + <5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJK * kgt}{\CJKnormal} +\DeclareFontShape{C61}{gt}{bx}{n}{ + <5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJKb * kgt}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61hgt.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61hgt.fd new file mode 100644 index 0000000000..7a1af915c1 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61hgt.fd @@ -0,0 +1,24 @@ +% This is the file c61hgt.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c61hgt.fd}[\filedate\space\fileversion] + +% Korean syllables (Hangul) and elements (Jaso) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C61}{hgt}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C61}{hgt}{m}{n}{<5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJK * hgtm}{} +\DeclareFontShape{C61}{hgt}{bx}{n}{<5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJK * hgtb}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61hmj.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61hmj.fd new file mode 100644 index 0000000000..a38b4ebde6 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61hmj.fd @@ -0,0 +1,24 @@ +% This is the file c61hmj.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c61hmj.fd}[\filedate\space\fileversion] + +% Korean syllables (Hangul) and elements (Jaso) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C61}{hmj}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C61}{hmj}{m}{n}{<5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJK * hmjm}{} +\DeclareFontShape{C61}{hmj}{bx}{n}{<5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJK * hmjb}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61hol.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61hol.fd new file mode 100644 index 0000000000..9221a5257c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61hol.fd @@ -0,0 +1,26 @@ +% This is the file c61hol.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c61hol.fd}[\filedate\space\fileversion] + +% Korean syllables (Hangul) and elements (Jaso) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C61}{hol}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C61}{hol}{m}{n}{ + <5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJK * hol}{\CJKnormal} +\DeclareFontShape{C61}{hol}{bx}{n}{ + <5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJKb * hol}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61hpg.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61hpg.fd new file mode 100644 index 0000000000..3f5b9ea9d6 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61hpg.fd @@ -0,0 +1,24 @@ +% This is the file c61hpg.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c61hpg.fd}[\filedate\space\fileversion] + +% Korean syllables (Hangul) and elements (Jaso) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C61}{hpg}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C61}{hpg}{m}{n}{<5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJK * hpgm}{} +\DeclareFontShape{C61}{hpg}{bx}{n}{<5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJK * hpgb}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61mj.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61mj.fd new file mode 100644 index 0000000000..3ce385d014 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c61mj.fd @@ -0,0 +1,24 @@ +% This is the file c61mj.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c61mj.fd}[\filedate\space\fileversion] + +% Korean syllables (Hangul) and elements (Jaso) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: CJK (standard) + +\DeclareFontFamily{C61}{mj}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C61}{mj}{m}{n}{<5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJK * kmj}{} +\DeclareFontShape{C61}{mj}{bx}{n}{<5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJK * kmjb}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/c62song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c62song.fd new file mode 100644 index 0000000000..d25d0d2e0d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/c62song.fd @@ -0,0 +1,22 @@ +% This is the file c62song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c62song.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: pmC + +\DeclareFontFamily{C62}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C62}{song}{m}{n}{<-> sCJKfixed * wcks}{\CJKnormal} +\DeclareFontShape{C62}{song}{bx}{n}{<-> sCJKfixedb * wcks}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/hangul.cap b/language/chinese/CJK/cjk-4.8.5/texinput/KS/hangul.cap new file mode 100644 index 0000000000..f1ccedf8f7 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/hangul.cap @@ -0,0 +1,74 @@ +% This is the file hangul.cap of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{hangul.cap}[\filedate\space\fileversion] + + +% Hangul captions +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% encoding: EUC (=Wansung) + +\renewcommand\contentsname{¸ñÂ÷} +\renewcommand\listfigurename{±×¸²~¸ñÂ÷} +\renewcommand\listtablename{Ç¥~¸ñÂ÷} +\renewcommand\indexname{»öÀÎ} + +\CJK@ifundefined\chapter + {\renewcommand\refname{Âü°í~¼Àû}} + {\renewcommand\bibname{Âü°í~¹®Çå}} + +\renewcommand\figurename{±×¸²} +\renewcommand\tablename{Ç¥} + +\newcommand\prepartname{Á¦} +\newcommand\postpartname{ºÎ} +\renewcommand\partformat{\prepartname~\thepart~\postpartname} + +% \newcommand\prechaptername{Á¦} +% \newcommand\postchaptername{Àå} +% \newcommand\presectionname{Á¦} +% \newcommand\postsectionname{Àý} +% \renewcommand\appendixname{ºÎ·Ï} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{¿ä¾à}}{} + +% \renewcommand\ccname{»çº»} +% \renewcommand\enclname{÷ºÎ¹°}% ȤÀº µ¿ºÀ¹° +% \renewcommand\pagename{ÆäÀÌÁö~} +% \renewcommand\headtoname{¹Þ´ÂÀÌ} +% \renewcommand\seename{ÂüÁ¶} + +\renewcommand{\today}{\number\year ³â~\number\month ¿ù~\number\day ÀÏ} + +\endinput + +%%% Local Variables: +%%% coding: euc-korea +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/hangul.cpx b/language/chinese/CJK/cjk-4.8.5/texinput/KS/hangul.cpx new file mode 100644 index 0000000000..1050f74589 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/hangul.cpx @@ -0,0 +1,71 @@ +% This is the file hangul.cpx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{hangul.cpx}[\filedate\space\fileversion] + + +% Hangul captions +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% encoding: EUC (=Wansung) +% +% preprocessed + +\renewcommand\contentsname{¸241Â247} +\renewcommand\listfigurename{±215¸178~¸241Â247} +\renewcommand\listtablename{Ç165~¸241Â247} +\renewcommand\indexname{»246À206} + +\CJK@ifundefined\chapter + {\renewcommand\refname{Â252°237~¼173À251}} + {\renewcommand\bibname{Â252°237~¹174Ç229}} + +\renewcommand\figurename{±215¸178} +\renewcommand\tablename{Ç165} + +\newcommand\prepartname{Á166} +\newcommand\postpartname{º206} +\renewcommand\partformat{\prepartname~\thepart~\postpartname} + +% \newcommand\prechaptername{Á166} +% \newcommand\postchaptername{À229} +% \newcommand\presectionname{Á166} +% \newcommand\postsectionname{À253} +% \renewcommand\appendixname{º206·207} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{¿228¾224}}{} + +% \renewcommand\ccname{»231º187} +% \renewcommand\enclname{Ã183º206¹176}% ȤÀº µ¿ºÀ¹° +% \renewcommand\pagename{Æ228À204Á246~} +% \renewcommand\headtoname{¹222´194À204} +% \renewcommand\seename{Â252Á182} + +\renewcommand{\today}{% + \number\year ³226~\number\month ¿249~\number\day À207} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/hangul2.cap b/language/chinese/CJK/cjk-4.8.5/texinput/KS/hangul2.cap new file mode 100644 index 0000000000..98dbb26600 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/hangul2.cap @@ -0,0 +1,74 @@ +% This is the file hangul2.cap of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{hangul2.cap}[\filedate\space\fileversion] + + +% Hangul captions set 2 +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% encoding: EUC (=Wansung) + +\renewcommand\contentsname{Â÷·Ê} +\renewcommand\listfigurename{±×¸²~Â÷·Ê} +\renewcommand\listtablename{Ç¥~Â÷·Ê} +\renewcommand\indexname{ã¾Æº¸±â} + +\CJK@ifundefined\chapter + {\renewcommand\refname{Âü°í~¼Àû}} + {\renewcommand\bibname{Âü°í~¹®Çå}} + +\renewcommand\figurename{±×¸²} +\renewcommand\tablename{Ç¥} + +\newcommand\prepartname{Á¦} +\newcommand\postpartname{ºÎ} +\renewcommand\partformat{\prepartname~\thepart~\postpartname} + +% \newcommand\prechaptername{Á¦} +% \newcommand\postchaptername{Àå} +% \newcommand\presectionname{Á¦} +% \newcommand\postsectionname{Àý} +% \renewcommand\appendixname{ºÎ·Ï} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{¿ä¾à}}{} + +% \renewcommand\ccname{»çº»} +% \renewcommand\enclname{÷ºÎ¹°}% ȤÀº µ¿ºÀ¹° +% \renewcommand\pagename{ÆäÀÌÁö~} +% \renewcommand\headtoname{¹Þ´ÂÀÌ} +% \renewcommand\seename{ÂüÁ¶} + +\renewcommand{\today}{\number\year ³â~\number\month ¿ù~\number\day ÀÏ} + +\endinput + +%%% Local Variables: +%%% coding: euc-korea +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/hangul2.cpx b/language/chinese/CJK/cjk-4.8.5/texinput/KS/hangul2.cpx new file mode 100644 index 0000000000..ce3250733c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/hangul2.cpx @@ -0,0 +1,71 @@ +% This is the file hangul2.cpx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{hangul2.cpx}[\filedate\space\fileversion] + + +% Hangul captions set 2 +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% encoding: EUC (=Wansung) +% +% preprocessed + +\renewcommand\contentsname{Â247·202} +\renewcommand\listfigurename{±215¸178~Â247·202} +\renewcommand\listtablename{Ç165~Â247·202} +\renewcommand\indexname{Ã163¾198º184±226} + +\CJK@ifundefined\chapter + {\renewcommand\refname{Â252°237~¼173À251}} + {\renewcommand\bibname{Â252°237~¹174Ç229}} + +\renewcommand\figurename{±215¸178} +\renewcommand\tablename{Ç165} + +\newcommand\prepartname{Á166} +\newcommand\postpartname{º206} +\renewcommand\partformat{\prepartname~\thepart~\postpartname} + +% \newcommand\prechaptername{Á166} +% \newcommand\postchaptername{À229} +% \newcommand\presectionname{Á166} +% \newcommand\postsectionname{À253} +% \renewcommand\appendixname{º206·207} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{¿228¾224}}{} + +% \renewcommand\ccname{»231º187} +% \renewcommand\enclname{Ã183º206¹176}% ȤÀº µ¿ºÀ¹° +% \renewcommand\pagename{Æ228À204Á246~} +% \renewcommand\headtoname{¹222´194À204} +% \renewcommand\seename{Â252Á182} + +\renewcommand{\today}{% + \number\year ³226~\number\month ¿249~\number\day À207} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/hanja.cap b/language/chinese/CJK/cjk-4.8.5/texinput/KS/hanja.cap new file mode 100644 index 0000000000..7eb1832cde --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/hanja.cap @@ -0,0 +1,74 @@ +% This is the file hanja.cap of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <a7971428@unet.univie.ac.at> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{hanja.cap}[\filedate\space\fileversion] + + +% Hanja captions +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% encoding: EUC (=Wansung) + +\renewcommand\contentsname{ÙÍó} +\renewcommand\listfigurename{±×¸²~ÙÍó} +\renewcommand\listtablename{øú~ÙÍó} +\renewcommand\indexname{ßãìÚ} + +\CJK@ifundefined\chapter + {\renewcommand\refname{óÑÍÅ~ßöîß}} + {\renewcommand\bibname{óÑÍÅ~ÙþúÌ}} + +\renewcommand\figurename{±×¸²} +\renewcommand\tablename{øú} + +\newcommand\prepartname{ð¯} +\newcommand\postpartname{ø¹} +\renewcommand\partformat{\prepartname~\thepart~\postpartname} + +% \newcommand\prechaptername{ð¯} +% \newcommand\postchaptername{íñ} +% \newcommand\presectionname{ð¯} +% \newcommand\postsectionname{ï½} +% \newcommand\appendixname{ݾÖâ} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{é©~å³}}{} + +% \renewcommand\ccname{ÞÐÜâ} +% \renewcommand\enclname{ôÕݾڪ}% ȤÀº µ¿ºÀ¹° +% \renewcommand\pagename{ÆäÀÌÁö} +% \renewcommand\headtoname{áôãáìÑ} +% \renewcommand\seename{óÑðÎ} + +\renewcommand{\today}{\number\year Ò´~\number\month êÅ~\number\day ìí} + +\endinput + +%%% Local Variables: +%%% coding: euc-korea +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/KS/hanja.cpx b/language/chinese/CJK/cjk-4.8.5/texinput/KS/hanja.cpx new file mode 100644 index 0000000000..39e2a02cf4 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/KS/hanja.cpx @@ -0,0 +1,71 @@ +% This is the file hanja.cpx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{hanja.cpx}[\filedate\space\fileversion] + + +% Hanja captions +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% encoding: EUC (=Wansung) +% +% preprocessed + +\renewcommand\contentsname{Ù205ó173} +\renewcommand\listfigurename{±215¸178~Ù205ó173} +\renewcommand\listtablename{ø250~Ù205ó173} +\renewcommand\indexname{ß227ì218} + +\CJK@ifundefined\chapter + {\renewcommand\refname{ó209Í197~ß246î223}} + {\renewcommand\bibname{ó209Í197~Ù254ú204}} + +\renewcommand\figurename{±215¸178} +\renewcommand\tablename{ø250} + +\newcommand\prepartname{ð175} +\newcommand\postpartname{ø185} +\renewcommand\partformat{\prepartname~\thepart~\postpartname} + +% \newcommand\prechaptername{ð175} +% \newcommand\postchaptername{í241} +% \newcommand\presectionname{ð175} +% \newcommand\postsectionname{ï189} +% \newcommand\appendixname{Ý190Ö226} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{é169~å179}}{} + +% \renewcommand\ccname{Þ208Ü226} +% \renewcommand\enclname{ô213Ý190Ú170}% ȤÀº µ¿ºÀ¹° +% \renewcommand\pagename{Æ228À204Á246} +% \renewcommand\headtoname{á244ã225ì209} +% \renewcommand\seename{ó209ð206} + +\renewcommand{\today}{% + \number\year Ò180~\number\month ê197~\number\day ì237} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJIS.bdg b/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJIS.bdg new file mode 100644 index 0000000000..3d5b0299af --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJIS.bdg @@ -0,0 +1,162 @@ +% This is the file SJIS.bdg of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{SJIS.bdg}[\filedate\space\fileversion] + + +% The bindings for SJIS encoding. + +\gdef\CJK@SJISBinding{ +% 80 + \CJK@nameppdef{^^81} + \CJK@nameppdef{^^82} + \CJK@nameppdef{^^83} + \CJK@nameppdef{^^84} + \CJK@nameppdef{^^85} + \CJK@nameppdef{^^86} + \CJK@nameppdef{^^87} + \CJK@nameppdef{^^88} + \CJK@nameppdef{^^89} + \CJK@nameppdef{^^8a} + \CJK@nameppdef{^^8b} + \CJK@nameppdef{^^8c} + \CJK@nameppdef{^^8d} + \CJK@nameppdef{^^8e} + \CJK@nameppdef{^^8f} + \CJK@nameppdef{^^90} + \CJK@nameppdef{^^91} + \CJK@nameppdef{^^92} + \CJK@nameppdef{^^93} + \CJK@nameppdef{^^94} + \CJK@nameppdef{^^95} + \CJK@nameppdef{^^96} + \CJK@nameppdef{^^97} + \CJK@nameppdef{^^98} + \CJK@nameppdef{^^99} + \CJK@nameppdef{^^9a} + \CJK@nameppdef{^^9b} + \CJK@nameppdef{^^9c} + \CJK@nameppdef{^^9d} + \CJK@nameppdef{^^9e} + \CJK@nameppdef{^^9f} +% A0 + \CJK@namepdef{^^a1} + \CJK@namepdef{^^a2} + \CJK@namepdef{^^a3} + \CJK@namepdef{^^a4} + \CJK@namepdef{^^a5} + \CJK@namepdef{^^a6} + \CJK@namepdef{^^a7} + \CJK@namepdef{^^a8} + \CJK@namepdef{^^a9} + \CJK@namepdef{^^aa} + \CJK@namepdef{^^ab} + \CJK@namepdef{^^ac} + \CJK@namepdef{^^ad} + \CJK@namepdef{^^ae} + \CJK@namepdef{^^af} + \CJK@namepdef{^^b0} + \CJK@namepdef{^^b1} + \CJK@namepdef{^^b2} + \CJK@namepdef{^^b3} + \CJK@namepdef{^^b4} + \CJK@namepdef{^^b5} + \CJK@namepdef{^^b6} + \CJK@namepdef{^^b7} + \CJK@namepdef{^^b8} + \CJK@namepdef{^^b9} + \CJK@namepdef{^^ba} + \CJK@namepdef{^^bb} + \CJK@namepdef{^^bc} + \CJK@namepdef{^^bd} + \CJK@namepdef{^^be} + \CJK@namepdef{^^bf} + \CJK@namepdef{^^c0} + \CJK@namepdef{^^c1} + \CJK@namepdef{^^c2} + \CJK@namepdef{^^c3} + \CJK@namepdef{^^c4} + \CJK@namepdef{^^c5} + \CJK@namepdef{^^c6} + \CJK@namepdef{^^c7} + \CJK@namepdef{^^c8} + \CJK@namepdef{^^c9} + \CJK@namepdef{^^ca} + \CJK@namepdef{^^cb} + \CJK@namepdef{^^cc} + \CJK@namepdef{^^cd} + \CJK@namepdef{^^ce} + \CJK@namepdef{^^cf} + \CJK@namepdef{^^d0} + \CJK@namepdef{^^d1} + \CJK@namepdef{^^d2} + \CJK@namepdef{^^d3} + \CJK@namepdef{^^d4} + \CJK@namepdef{^^d5} + \CJK@namepdef{^^d6} + \CJK@namepdef{^^d7} + \CJK@namepdef{^^d8} + \CJK@namepdef{^^d9} + \CJK@namepdef{^^da} + \CJK@namepdef{^^db} + \CJK@namepdef{^^dc} + \CJK@namepdef{^^dd} + \CJK@namepdef{^^de} + \CJK@namepdef{^^df} + + \CJK@nameppdef{^^e0} + \CJK@nameppdef{^^e1} + \CJK@nameppdef{^^e2} + \CJK@nameppdef{^^e3} + \CJK@nameppdef{^^e4} + \CJK@nameppdef{^^e5} + \CJK@nameppdef{^^e6} + \CJK@nameppdef{^^e7} + \CJK@nameppdef{^^e8} + \CJK@nameppdef{^^e9} + \CJK@nameppdef{^^ea} + \CJK@nameppdef{^^eb} + \CJK@nameppdef{^^ec} + \CJK@nameppdef{^^ed} + \CJK@nameppdef{^^ee} + \CJK@nameppdef{^^ef} + \CJK@nameppdef{^^f0} + \CJK@nameppdef{^^f1} + \CJK@nameppdef{^^f2} + \CJK@nameppdef{^^f3} + \CJK@nameppdef{^^f4} + \CJK@nameppdef{^^f5} + \CJK@nameppdef{^^f6} + \CJK@nameppdef{^^f7} + \CJK@nameppdef{^^f8} + \CJK@nameppdef{^^f9} + \CJK@nameppdef{^^fa} + \CJK@nameppdef{^^fb} + \CJK@nameppdef{^^fc} + \CJK@nameppdef{^^fd} + \CJK@nameppdef{^^fe}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJIS.cap b/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJIS.cap new file mode 100644 index 0000000000..3b62a9802b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJIS.cap @@ -0,0 +1,84 @@ +% This is the file SJIS.cap of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{SJIS.cap}[\filedate\space\fileversion] + + +% Japanese captions +% +% character set: JIS X 0208:1997 (or JIS X 0208-1990) +% encoding: SJIS + +\newif\ifheisei +\let\ifheisei=\iffalse +\def\heisei{\let\ifheisei=\iftrue} + +\renewcommand\contentsname{–ÚŽŸ} + +\renewcommand\listfigurename{\CJKchar{"090}{"07D}–ÚŽŸ} +% \renewcommand\listfigurename{\CJKchar{"090}{"07D}ˆê——} + +\renewcommand\listtablename{\CJKchar{"095}{"05C}–ÚŽŸ} +% \renewcommand\listtablename{\CJKchar{"095}{"05C}ˆê——} + +\CJK@ifundefined\chapter + {\renewcommand\refname{ŽQl•¶Œ£} + } + {\renewcommand\bibname{ŠÖ˜A‘Ð} +% \renewcommand\bibname{ŽQl•¶Œ£} + } + +\renewcommand\indexname{õˆø} + +\renewcommand\figurename{\CJKchar{"090}{"07D}} +\renewcommand\tablename{\CJKchar{"095}{"05C}} + +\newcommand\prepartname{‘æ} +\newcommand\postpartname{•”} +\renewcommand\partformat{\prepartname\CJKnumber{\value{part}}\postpartname} + +% \renewcommand{\appendixname}{•˜^} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{—vŽ|}}{} + +\renewcommand\today{{\ifheisei\count0=\year\else\count0=\year + \advance\count0 -1988 •½¬\,\fi + \ifnum\count0=1 Œ³\else\number\count0\fi + \,”N\hspace{.5em}\nobreak\number\month + \,ŒŽ\hspace{.5em}\nobreak\number\day\,“ú}} +\CJK@ifundefined\CJKnumber + {\def\CJKnumber#1{\ifcase #1\or + ˆê\or “ñ\or ŽO\or Žl\or ŒÜ\or + ˜Z\or Žµ\or ”ª\or ‹ã\or\CJKchar{"08F}{"05C}\fi}}{} + +\endinput + +%%% Local Variables: +%%% coding: sjis +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJIS.chr b/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJIS.chr new file mode 100644 index 0000000000..cb17c2ff0c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJIS.chr @@ -0,0 +1,260 @@ +% This is the file SJIS.chr of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{SJIS.chr}[\filedate\space\fileversion] + + +% define macros for handling SJIS encoded CJK fonts and characters. + +% two byte encoded characters. + +\gdef\CJK@SJISChr{ + \CJK@global\chardef\CJK@gap "07F\relax + + \CJK@global\def\CJK@char##1##2##3{ + {\ifnum ##3 < \CJK@min + \CJK@err + \else + \ifnum ##3 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##3\relax + \ifnum ##3 > \CJK@gap + \advance\@tempcnta \m@ne + \fi + \advance\@tempcnta ##2\relax + \edef\CJK@plane{##1} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% the same, but the plane crosses the font file boundary. + + \CJK@global\def\CJK@charx##1##2##3##4{ + {\ifnum ##4 < \CJK@min + \CJK@err + \else + \ifnum ##4 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##4\relax + \@tempcntb 256\relax + \ifnum ##4 > \CJK@gap + \advance\@tempcnta \m@ne + \advance\@tempcntb \@ne + \fi + \advance\@tempcnta ##3\relax + \advance\@tempcntb -##3\relax + \chardef\@temp \@tempcntb + \ifnum ##4 < \@temp + \edef\CJK@plane{##1} + \else + \advance\@tempcnta -256\relax + \edef\CJK@plane{##2} + \fi + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% for punctuation. + + \CJK@global\def\CJK@punctchar##1##2##3##4{ + {\ifnum ##4 < \CJK@min + \CJK@err + \else + \ifnum ##4 > \CJK@max + \CJK@err + \else + \CJK@numbToHex{\CJK@gtemp}{##4} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{SJIS}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##4\relax + \ifnum ##4 > \CJK@gap + \advance\@tempcnta \m@ne + \fi + \advance\@tempcnta ##3\relax + \edef\CJK@plane{##2} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{SJIS}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \fi + \fi}} + + \CJK@global\def\CJK@punctcharx##1##2##3##4##5{ + {\ifnum ##5 < \CJK@min + \CJK@err + \else + \ifnum ##5 > \CJK@max + \CJK@err + \else + \CJK@numbToHex{\CJK@gtemp}{##5} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{SJIS}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##5\relax + \@tempcntb 256\relax + \ifnum ##5 > \CJK@gap + \advance\@tempcnta \m@ne + \advance\@tempcntb \@ne + \fi + \advance\@tempcnta ##4\relax + \advance\@tempcntb -##4\relax + \chardef\@temp \@tempcntb + \ifnum ##5 < \@temp + \edef\CJK@plane{##2} + \else + \advance\@tempcnta -256\relax + \edef\CJK@plane{##3} + \fi + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{SJIS}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \fi + \fi}} + + +% one byte encoded characters. + + \CJK@global\def\CJK@sjischar##1##2##3{ + \ifCJK@hwkatakana@ + {\CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{\CJK@altenc}{}{##1} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \edef\CJK@plane{} + \usefont{\CJK@altenc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\number "0##1/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{"0##1} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{\CJK@altenc}{}{##1} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi} + \else + \csname CJK@##2\endcsname{"0##3} + \fi}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJIS.cpx b/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJIS.cpx new file mode 100644 index 0000000000..e68f47b273 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJIS.cpx @@ -0,0 +1,81 @@ +% This is the file SJIS.cpx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{SJIS.cpx}[\filedate\space\fileversion] + + +% Japanese captions +% +% character set: JIS X 0208:1997 (or JIS X 0208-1990) +% encoding: SJIS +% +% preprocessed + +\newif\ifheisei +\let\ifheisei=\iffalse +\def\heisei{\let\ifheisei=\iftrue} + +\renewcommand\contentsname{–218Ž159} + +\renewcommand\listfigurename{125–218Ž159} +% \renewcommand\listfigurename{125ˆ234—151} + +\renewcommand\listtablename{•92–218Ž159} +% \renewcommand\listtablename{•92ˆ234—151} + +\CJK@ifundefined\chapter + {\renewcommand\refname{Ž81108•182Œ163} + } + {\renewcommand\bibname{Š214˜65145208} +% \renewcommand\bibname{Ž81108•182Œ163} + } + +\renewcommand\indexname{245ˆ248} + +\renewcommand\figurename{125} +\renewcommand\tablename{•92} + +\newcommand\prepartname{‘230} +\newcommand\postpartname{•148} +\renewcommand\partformat{\prepartname\CJKnumber{\value{part}}\postpartname} + +% \renewcommand{\appendixname}{•141˜94} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{—118Ž124}}{} + +\renewcommand\today{{\ifheisei\count0=\year\else\count0=\year + \advance\count0 -1988 •189172\,\fi + \ifnum\count0=1 Œ179\else\number\count0\fi + \,”78\hspace{.5em}\nobreak\number\month + \,Œ142\hspace{.5em}\nobreak\number\day\,“250}} +\CJK@ifundefined\CJKnumber + {\def\CJKnumber#1{% + \ifcase #1\or + ˆ234\or “241\or Ž79\or Ž108\or Œ220\or + ˜90\or Ž181\or ”170\or ‹227\or 92\fi}}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJIS.enc b/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJIS.enc new file mode 100644 index 0000000000..e20ffa821b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJIS.enc @@ -0,0 +1,199 @@ +% This is the file SJIS.enc of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{SJIS.enc}[\filedate\space\fileversion] + + +% SJIS encoding (JIS X 0208:1997): +% it uses a one byte encoding (for half-width Katakana) from 0xA1 to +% 0xDF, and a two byte encoding for the remaining coding space (kanji, +% kana, and symbols). +% The first byte of the two byte encoding is in the ranges 0x81-0x9F and +% 0xE0-0xEF; the second byte is in the range 0x40 - 0xFC with a gap at +% 0x7F. + +\global\@namedef{CJK@SJISEncoding}{ + \CJK@loadChr{SJIS} + + \CJK@namegdef{^^81}##1{\CJK@disableMakeUppercase + \CJK@punctchar {81}{01}{-64}{##1}} + \CJK@namegdef{^^82}##1{\CJK@disableMakeUppercase + \CJK@punctcharx{82}{01}{02}{124}{##1}} + \CJK@namegdef{^^83}##1{\CJK@disableMakeUppercase + \CJK@punctcharx{83}{02}{03}{ 56}{##1}} + \CJK@namegdef{^^84}##1{\CJK@disableMakeUppercase + \CJK@char {03}{-12}{##1}} + \CJK@namegdef{^^85}##1{\CJK@disableMakeUppercase + \CJK@charx{03}{04}{176}{##1}} + \CJK@namegdef{^^86}##1{\CJK@disableMakeUppercase + \CJK@charx{04}{05}{108}{##1}} + \CJK@namegdef{^^87}##1{\CJK@disableMakeUppercase + \CJK@charx{05}{06}{ 40}{##1}} + \CJK@namegdef{^^88}##1{\CJK@disableMakeUppercase + \CJK@char {06}{-28}{##1}} + \CJK@namegdef{^^89}##1{\CJK@disableMakeUppercase + \CJK@charx{06}{07}{160}{##1}} + \CJK@namegdef{^^8a}##1{\CJK@disableMakeUppercase + \CJK@charx{07}{08}{ 92}{##1}} + \CJK@namegdef{^^8b}##1{\CJK@disableMakeUppercase + \CJK@charx{08}{09}{ 24}{##1}} + \CJK@namegdef{^^8c}##1{\CJK@disableMakeUppercase + \CJK@char {09}{-44}{##1}} + \CJK@namegdef{^^8d}##1{\CJK@disableMakeUppercase + \CJK@charx{09}{10}{144}{##1}} + \CJK@namegdef{^^8e}##1{\CJK@disableMakeUppercase + \CJK@charx{10}{11}{ 76}{##1}} + \CJK@namegdef{^^8f}##1{\CJK@disableMakeUppercase + \CJK@charx{11}{12}{ 8}{##1}} + \CJK@namegdef{^^90}##1{\CJK@disableMakeUppercase + \CJK@char {12}{-60}{##1}} + \CJK@namegdef{^^91}##1{\CJK@disableMakeUppercase + \CJK@charx{12}{13}{128}{##1}} + \CJK@namegdef{^^92}##1{\CJK@disableMakeUppercase + \CJK@charx{13}{14}{ 60}{##1}} + \CJK@namegdef{^^93}##1{\CJK@disableMakeUppercase + \CJK@char {14}{ -8}{##1}} + \CJK@namegdef{^^94}##1{\CJK@disableMakeUppercase + \CJK@charx{14}{15}{180}{##1}} + \CJK@namegdef{^^95}##1{\CJK@disableMakeUppercase + \CJK@charx{15}{16}{112}{##1}} + \CJK@namegdef{^^96}##1{\CJK@disableMakeUppercase + \CJK@charx{16}{17}{ 44}{##1}} + \CJK@namegdef{^^97}##1{\CJK@disableMakeUppercase + \CJK@char {17}{-24}{##1}} + \CJK@namegdef{^^98}##1{\CJK@disableMakeUppercase + \CJK@charx{17}{18}{164}{##1}} + \CJK@namegdef{^^99}##1{\CJK@disableMakeUppercase + \CJK@charx{18}{19}{ 96}{##1}} + \CJK@namegdef{^^9a}##1{\CJK@disableMakeUppercase + \CJK@charx{19}{20}{ 28}{##1}} + \CJK@namegdef{^^9b}##1{\CJK@disableMakeUppercase + \CJK@char {20}{-40}{##1}} + \CJK@namegdef{^^9c}##1{\CJK@disableMakeUppercase + \CJK@charx{20}{21}{148}{##1}} + \CJK@namegdef{^^9d}##1{\CJK@disableMakeUppercase + \CJK@charx{21}{22}{ 80}{##1}} + \CJK@namegdef{^^9e}##1{\CJK@disableMakeUppercase + \CJK@charx{22}{23}{ 12}{##1}} + \CJK@namegdef{^^9f}##1{\CJK@disableMakeUppercase + \CJK@char {23}{-56}{##1}} + \CJK@namegdef{^^a1}{\@empty\CJK@sjischar{A1}{129}{42}} + \CJK@namegdef{^^a2}{\@empty\CJK@sjischar{A2}{129}{75}} + \CJK@namegdef{^^a3}{\@empty\CJK@sjischar{A3}{129}{76}} + \CJK@namegdef{^^a4}{\@empty\CJK@sjischar{A4}{129}{41}} + \CJK@namegdef{^^a5}{\@empty\CJK@sjischar{A5}{129}{45}} + \CJK@namegdef{^^a6}{\@empty\CJK@sjischar{A6}{131}{92}} + \CJK@namegdef{^^a7}{\@empty\CJK@sjischar{A7}{131}{40}} + \CJK@namegdef{^^a8}{\@empty\CJK@sjischar{A8}{131}{42}} + \CJK@namegdef{^^a9}{\@empty\CJK@sjischar{A9}{131}{44}} + \CJK@namegdef{^^aa}{\@empty\CJK@sjischar{AA}{131}{46}} + \CJK@namegdef{^^ab}{\@empty\CJK@sjischar{AB}{131}{48}} + \CJK@namegdef{^^ac}{\@empty\CJK@sjischar{AC}{131}{83}} + \CJK@namegdef{^^ad}{\@empty\CJK@sjischar{AD}{131}{85}} + \CJK@namegdef{^^ae}{\@empty\CJK@sjischar{AE}{131}{87}} + \CJK@namegdef{^^af}{\@empty\CJK@sjischar{AF}{131}{62}} + \CJK@namegdef{^^b0}{\@empty\CJK@sjischar{B0}{129}{5B}} + \CJK@namegdef{^^b1}{\@empty\CJK@sjischar{B1}{131}{41}} + \CJK@namegdef{^^b2}{\@empty\CJK@sjischar{B2}{131}{43}} + \CJK@namegdef{^^b3}{\@empty\CJK@sjischar{B3}{131}{45}} + \CJK@namegdef{^^b4}{\@empty\CJK@sjischar{B4}{131}{47}} + \CJK@namegdef{^^b5}{\@empty\CJK@sjischar{B5}{131}{49}} + \CJK@namegdef{^^b6}{\@empty\CJK@sjischar{B6}{131}{4A}} + \CJK@namegdef{^^b7}{\@empty\CJK@sjischar{B7}{131}{4C}} + \CJK@namegdef{^^b8}{\@empty\CJK@sjischar{B8}{131}{4E}} + \CJK@namegdef{^^b9}{\@empty\CJK@sjischar{B9}{131}{50}} + \CJK@namegdef{^^ba}{\@empty\CJK@sjischar{BA}{131}{52}} + \CJK@namegdef{^^bb}{\@empty\CJK@sjischar{BB}{131}{54}} + \CJK@namegdef{^^bc}{\@empty\CJK@sjischar{BC}{131}{56}} + \CJK@namegdef{^^bd}{\@empty\CJK@sjischar{BD}{131}{58}} + \CJK@namegdef{^^be}{\@empty\CJK@sjischar{BE}{131}{5A}} + \CJK@namegdef{^^bf}{\@empty\CJK@sjischar{BF}{131}{5C}} + \CJK@namegdef{^^c0}{\@empty\CJK@sjischar{C0}{131}{5E}} + \CJK@namegdef{^^c1}{\@empty\CJK@sjischar{C1}{131}{60}} + \CJK@namegdef{^^c2}{\@empty\CJK@sjischar{C2}{131}{63}} + \CJK@namegdef{^^c3}{\@empty\CJK@sjischar{C3}{131}{65}} + \CJK@namegdef{^^c4}{\@empty\CJK@sjischar{C4}{131}{67}} + \CJK@namegdef{^^c5}{\@empty\CJK@sjischar{C5}{131}{69}} + \CJK@namegdef{^^c6}{\@empty\CJK@sjischar{C6}{131}{6A}} + \CJK@namegdef{^^c7}{\@empty\CJK@sjischar{C7}{131}{6B}} + \CJK@namegdef{^^c8}{\@empty\CJK@sjischar{C8}{131}{6C}} + \CJK@namegdef{^^c9}{\@empty\CJK@sjischar{C9}{131}{6D}} + \CJK@namegdef{^^ca}{\@empty\CJK@sjischar{CA}{131}{6E}} + \CJK@namegdef{^^cb}{\@empty\CJK@sjischar{CB}{131}{71}} + \CJK@namegdef{^^cc}{\@empty\CJK@sjischar{CC}{131}{74}} + \CJK@namegdef{^^cd}{\@empty\CJK@sjischar{CD}{131}{77}} + \CJK@namegdef{^^ce}{\@empty\CJK@sjischar{CE}{131}{7A}} + \CJK@namegdef{^^cf}{\@empty\CJK@sjischar{CF}{131}{7D}} + \CJK@namegdef{^^d0}{\@empty\CJK@sjischar{D0}{131}{7E}} + \CJK@namegdef{^^d1}{\@empty\CJK@sjischar{D1}{131}{80}} + \CJK@namegdef{^^d2}{\@empty\CJK@sjischar{D2}{131}{81}} + \CJK@namegdef{^^d3}{\@empty\CJK@sjischar{D3}{131}{82}} + \CJK@namegdef{^^d4}{\@empty\CJK@sjischar{D4}{131}{84}} + \CJK@namegdef{^^d5}{\@empty\CJK@sjischar{D5}{131}{86}} + \CJK@namegdef{^^d6}{\@empty\CJK@sjischar{D6}{131}{88}} + \CJK@namegdef{^^d7}{\@empty\CJK@sjischar{D7}{131}{89}} + \CJK@namegdef{^^d8}{\@empty\CJK@sjischar{D8}{131}{8A}} + \CJK@namegdef{^^d9}{\@empty\CJK@sjischar{D9}{131}{8B}} + \CJK@namegdef{^^da}{\@empty\CJK@sjischar{DA}{131}{8C}} + \CJK@namegdef{^^db}{\@empty\CJK@sjischar{DB}{131}{8D}} + \CJK@namegdef{^^dc}{\@empty\CJK@sjischar{DC}{131}{8F}} + \CJK@namegdef{^^dd}{\@empty\CJK@sjischar{DD}{131}{93}} + \CJK@namegdef{^^de}{\@empty\CJK@sjischar{DE}{129}{4A}} + \CJK@namegdef{^^df}{\@empty\CJK@sjischar{DF}{129}{4B}} + \CJK@namegdef{^^e0}##1{\CJK@disableMakeUppercase + \CJK@charx{23}{24}{132}{##1}} + \CJK@namegdef{^^e1}##1{\CJK@disableMakeUppercase + \CJK@charx{24}{25}{ 64}{##1}} + \CJK@namegdef{^^e2}##1{\CJK@disableMakeUppercase + \CJK@char {25}{ -4}{##1}} + \CJK@namegdef{^^e3}##1{\CJK@disableMakeUppercase + \CJK@charx{25}{26}{184}{##1}} + \CJK@namegdef{^^e4}##1{\CJK@disableMakeUppercase + \CJK@charx{26}{27}{116}{##1}} + \CJK@namegdef{^^e5}##1{\CJK@disableMakeUppercase + \CJK@charx{27}{28}{ 48}{##1}} + \CJK@namegdef{^^e6}##1{\CJK@disableMakeUppercase + \CJK@char {28}{-20}{##1}} + \CJK@namegdef{^^e7}##1{\CJK@disableMakeUppercase + \CJK@charx{28}{29}{168}{##1}} + \CJK@namegdef{^^e8}##1{\CJK@disableMakeUppercase + \CJK@charx{29}{30}{100}{##1}} + \CJK@namegdef{^^e9}##1{\CJK@disableMakeUppercase + \CJK@charx{30}{31}{ 32}{##1}} + \CJK@namegdef{^^ea}##1{\CJK@disableMakeUppercase + \CJK@char {31}{-36}{##1}} + \CJK@namegdef{^^eb}##1{\CJK@disableMakeUppercase + \CJK@charx{31}{32}{152}{##1}} + \CJK@namegdef{^^ec}##1{\CJK@disableMakeUppercase + \CJK@charx{32}{33}{ 84}{##1}} + \CJK@namegdef{^^ed}##1{\CJK@disableMakeUppercase + \CJK@charx{33}{34}{ 16}{##1}} + \CJK@namegdef{^^ee}##1{\CJK@disableMakeUppercase + \CJK@char {34}{-52}{##1}} + \CJK@namegdef{^^ef}##1{\CJK@disableMakeUppercase + \CJK@charx{34}{35}{136}{##1}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJISdnp.chr b/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJISdnp.chr new file mode 100644 index 0000000000..9fb710420f --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJISdnp.chr @@ -0,0 +1,253 @@ +% This is the file SJISdnp.chr of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{SJISdnp.chr}[\filedate\space\fileversion] + + +% define macros for handling SJIS encoded DNP fonts and characters. + +% two byte encoded characters. + +\gdef\CJK@SJISdnpChr{ + \CJK@global\chardef\CJK@gap "07F\relax + + \CJK@global\def\CJK@char##1##2##3{ + {\ifnum ##3 < \CJK@min + \CJK@err + \else + \ifnum ##3 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##3\relax + \ifnum ##3 > \CJK@gap + \advance\@tempcnta \m@ne + \fi + \advance\@tempcnta ##2\relax + \edef\CJK@plane{##1} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% the same, but the plane crosses the font file boundary. + + \CJK@global\def\CJK@charx##1##2##3##4{ + {\ifnum ##4 < \CJK@min + \CJK@err + \else + \ifnum ##4 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##4\relax + \@tempcntb 256\relax + \ifnum ##4 > \CJK@gap + \advance\@tempcnta \m@ne + \advance\@tempcntb \@ne + \fi + \advance\@tempcnta ##3\relax + \advance\@tempcntb -##3\relax + \chardef\@temp \@tempcntb + \ifnum ##4 < \@temp + \edef\CJK@plane{##1} + \else + \advance\@tempcnta -256\relax + \edef\CJK@plane{##2} + \fi + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% to access two subfonts within one first byte value + + \CJK@global\def\CJK@sjischarx##1##2##3##4##5{ + {\ifnum ##5 < \CJK@min + \CJK@err + \else + \ifnum ##5 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##5\relax + \ifnum ##5 < "09F\relax + \ifnum ##5 > \CJK@gap + \advance\@tempcnta \m@ne + \fi + \advance\@tempcnta ##2\relax + \edef\CJK@plane{##1} + \else + \advance\@tempcnta ##4\relax + \edef\CJK@plane{##3} + \fi + + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% the same for punctuation. + + \CJK@global\def\CJK@sjispunctcharx##1##2##3##4##5##6{ + {\ifnum ##6 < \CJK@min + \CJK@err + \else + \ifnum ##6 > \CJK@max + \CJK@err + \else + \CJK@numbToHex{\CJK@gtemp}{##6} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{SJIS}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##6\relax + \ifnum ##6 < "09F\relax + \ifnum ##6 > \CJK@gap + \advance\@tempcnta \m@ne + \fi + \advance\@tempcnta ##3\relax + \edef\CJK@plane{##2} + \else + \advance\@tempcnta ##5\relax + \edef\CJK@plane{##4} + \fi + + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{SJIS}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \fi + \fi}} + +% one byte encoded characters. + + \CJK@global\def\CJK@sjischar##1##2##3{ + \ifCJK@hwkatakana@ + {\CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{\CJK@altenc}{}{##1} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \def\CJK@plane{} + \usefont{\CJK@altenc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\number "0##1/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{"0##1} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{\CJK@altenc}{}{##1} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi} + \else + \csname CJK@##2\endcsname{"0##3} + \fi}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJISdnp.enc b/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJISdnp.enc new file mode 100644 index 0000000000..0aeaf13f71 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/SJISdnp.enc @@ -0,0 +1,192 @@ +% This is the file SJISdnp.enc of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{SJISdnp.enc}[\filedate\space\fileversion] + + +% SJIS encoding (JIS X 0208:1997) for DNP fonts: +% it uses a one byte encoding (for half-width Katakana) from 0xA1 to +% 0xDF, and a two byte encoding for the remaining coding space (kanji, +% kana, and symbols). +% The first byte of the two byte encoding is in the ranges 0x81-0x9F and +% 0xE0-0xEF; the second byte is in the range 0x40 - 0xFC with a gap at +% 0x7F. + +\global\@namedef{CJK@SJISdnpEncoding}{ + \CJK@loadChr{SJISdnp} + + \CJK@namegdef{^^81}##1{\CJK@disableMakeUppercase + \CJK@sjispunctcharx{81}{sy}{-63}{sy}{-58}{##1}} + \CJK@namegdef{^^82}##1{\CJK@disableMakeUppercase + \CJK@sjispunctcharx{82}{roma}{-31}{hira}{-158}{##1}} + \CJK@namegdef{^^83}##1{\CJK@disableMakeUppercase + \CJK@sjispunctcharx{83}{kata}{-63}{greek}{-158}{##1}} + \CJK@namegdef{^^84}##1{\CJK@disableMakeUppercase + \CJK@sjischarx{russian}{-63}{keisen}{-158}{##1}} + \CJK@namegdef{^^85}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^86}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^87}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^88}##1{\CJK@disableMakeUppercase + \CJK@sjischarx{}{0}{ka}{-159}{##1}} + \CJK@namegdef{^^89}##1{\CJK@disableMakeUppercase + \CJK@charx{ka}{kb}{30}{##1}} + \CJK@namegdef{^^8a}##1{\CJK@disableMakeUppercase + \CJK@char {kb}{-38}{##1}} + \CJK@namegdef{^^8b}##1{\CJK@disableMakeUppercase + \CJK@charx{kb}{kc}{150}{##1}} + \CJK@namegdef{^^8c}##1{\CJK@disableMakeUppercase + \CJK@charx{kc}{kd}{ 82}{##1}} + \CJK@namegdef{^^8d}##1{\CJK@disableMakeUppercase + \CJK@charx{kd}{ke}{ 14}{##1}} + \CJK@namegdef{^^8e}##1{\CJK@disableMakeUppercase + \CJK@char {ke}{-54}{##1}} + \CJK@namegdef{^^8f}##1{\CJK@disableMakeUppercase + \CJK@charx{ke}{kf}{134}{##1}} + \CJK@namegdef{^^90}##1{\CJK@disableMakeUppercase + \CJK@charx{kf}{kg}{ 66}{##1}} + \CJK@namegdef{^^91}##1{\CJK@disableMakeUppercase + \CJK@char {kg}{ -2}{##1}} + \CJK@namegdef{^^92}##1{\CJK@disableMakeUppercase + \CJK@charx{kg}{kh}{186}{##1}} + \CJK@namegdef{^^93}##1{\CJK@disableMakeUppercase + \CJK@charx{kh}{ki}{118}{##1}} + \CJK@namegdef{^^94}##1{\CJK@disableMakeUppercase + \CJK@charx{ki}{kj}{ 50}{##1}} + \CJK@namegdef{^^95}##1{\CJK@disableMakeUppercase + \CJK@char {kj}{-18}{##1}} + \CJK@namegdef{^^96}##1{\CJK@disableMakeUppercase + \CJK@charx{kj}{kk}{170}{##1}} + \CJK@namegdef{^^97}##1{\CJK@disableMakeUppercase + \CJK@charx{kk}{kl}{102}{##1}} + \CJK@namegdef{^^98}##1{\CJK@disableMakeUppercase + \CJK@sjischarx{kl}{34}{km}{-159}{##1}} + \CJK@namegdef{^^99}##1{\CJK@disableMakeUppercase + \CJK@charx{km}{kn}{30}{##1}} + \CJK@namegdef{^^9a}##1{\CJK@disableMakeUppercase + \CJK@char {kn}{-38}{##1}} + \CJK@namegdef{^^9b}##1{\CJK@disableMakeUppercase + \CJK@charx{kn}{ko}{150}{##1}} + \CJK@namegdef{^^9c}##1{\CJK@disableMakeUppercase + \CJK@charx{ko}{kp}{ 82}{##1}} + \CJK@namegdef{^^9d}##1{\CJK@disableMakeUppercase + \CJK@charx{kp}{kq}{ 14}{##1}} + \CJK@namegdef{^^9e}##1{\CJK@disableMakeUppercase + \CJK@char {kq}{-54}{##1}} + \CJK@namegdef{^^9f}##1{\CJK@disableMakeUppercase + \CJK@charx{kq}{kr}{134}{##1}} + \CJK@namegdef{^^a1}{\@empty\CJK@sjischar{A1}{129}{42}} + \CJK@namegdef{^^a2}{\@empty\CJK@sjischar{A2}{129}{75}} + \CJK@namegdef{^^a3}{\@empty\CJK@sjischar{A3}{129}{76}} + \CJK@namegdef{^^a4}{\@empty\CJK@sjischar{A4}{129}{41}} + \CJK@namegdef{^^a5}{\@empty\CJK@sjischar{A5}{129}{45}} + \CJK@namegdef{^^a6}{\@empty\CJK@sjischar{A6}{131}{92}} + \CJK@namegdef{^^a7}{\@empty\CJK@sjischar{A7}{131}{40}} + \CJK@namegdef{^^a8}{\@empty\CJK@sjischar{A8}{131}{42}} + \CJK@namegdef{^^a9}{\@empty\CJK@sjischar{A9}{131}{44}} + \CJK@namegdef{^^aa}{\@empty\CJK@sjischar{AA}{131}{46}} + \CJK@namegdef{^^ab}{\@empty\CJK@sjischar{AB}{131}{48}} + \CJK@namegdef{^^ac}{\@empty\CJK@sjischar{AC}{131}{83}} + \CJK@namegdef{^^ad}{\@empty\CJK@sjischar{AD}{131}{85}} + \CJK@namegdef{^^ae}{\@empty\CJK@sjischar{AE}{131}{87}} + \CJK@namegdef{^^af}{\@empty\CJK@sjischar{AF}{131}{62}} + \CJK@namegdef{^^b0}{\@empty\CJK@sjischar{B0}{129}{5B}} + \CJK@namegdef{^^b1}{\@empty\CJK@sjischar{B1}{131}{41}} + \CJK@namegdef{^^b2}{\@empty\CJK@sjischar{B2}{131}{43}} + \CJK@namegdef{^^b3}{\@empty\CJK@sjischar{B3}{131}{45}} + \CJK@namegdef{^^b4}{\@empty\CJK@sjischar{B4}{131}{47}} + \CJK@namegdef{^^b5}{\@empty\CJK@sjischar{B5}{131}{49}} + \CJK@namegdef{^^b6}{\@empty\CJK@sjischar{B6}{131}{4A}} + \CJK@namegdef{^^b7}{\@empty\CJK@sjischar{B7}{131}{4C}} + \CJK@namegdef{^^b8}{\@empty\CJK@sjischar{B8}{131}{4E}} + \CJK@namegdef{^^b9}{\@empty\CJK@sjischar{B9}{131}{50}} + \CJK@namegdef{^^ba}{\@empty\CJK@sjischar{BA}{131}{52}} + \CJK@namegdef{^^bb}{\@empty\CJK@sjischar{BB}{131}{54}} + \CJK@namegdef{^^bc}{\@empty\CJK@sjischar{BC}{131}{56}} + \CJK@namegdef{^^bd}{\@empty\CJK@sjischar{BD}{131}{58}} + \CJK@namegdef{^^be}{\@empty\CJK@sjischar{BE}{131}{5A}} + \CJK@namegdef{^^bf}{\@empty\CJK@sjischar{BF}{131}{5C}} + \CJK@namegdef{^^c0}{\@empty\CJK@sjischar{C0}{131}{5E}} + \CJK@namegdef{^^c1}{\@empty\CJK@sjischar{C1}{131}{60}} + \CJK@namegdef{^^c2}{\@empty\CJK@sjischar{C2}{131}{63}} + \CJK@namegdef{^^c3}{\@empty\CJK@sjischar{C3}{131}{65}} + \CJK@namegdef{^^c4}{\@empty\CJK@sjischar{C4}{131}{67}} + \CJK@namegdef{^^c5}{\@empty\CJK@sjischar{C5}{131}{69}} + \CJK@namegdef{^^c6}{\@empty\CJK@sjischar{C6}{131}{6A}} + \CJK@namegdef{^^c7}{\@empty\CJK@sjischar{C7}{131}{6B}} + \CJK@namegdef{^^c8}{\@empty\CJK@sjischar{C8}{131}{6C}} + \CJK@namegdef{^^c9}{\@empty\CJK@sjischar{C9}{131}{6D}} + \CJK@namegdef{^^ca}{\@empty\CJK@sjischar{CA}{131}{6E}} + \CJK@namegdef{^^cb}{\@empty\CJK@sjischar{CB}{131}{71}} + \CJK@namegdef{^^cc}{\@empty\CJK@sjischar{CC}{131}{74}} + \CJK@namegdef{^^cd}{\@empty\CJK@sjischar{CD}{131}{77}} + \CJK@namegdef{^^ce}{\@empty\CJK@sjischar{CE}{131}{7A}} + \CJK@namegdef{^^cf}{\@empty\CJK@sjischar{CF}{131}{7D}} + \CJK@namegdef{^^d0}{\@empty\CJK@sjischar{D0}{131}{7E}} + \CJK@namegdef{^^d1}{\@empty\CJK@sjischar{D1}{131}{80}} + \CJK@namegdef{^^d2}{\@empty\CJK@sjischar{D2}{131}{81}} + \CJK@namegdef{^^d3}{\@empty\CJK@sjischar{D3}{131}{82}} + \CJK@namegdef{^^d4}{\@empty\CJK@sjischar{D4}{131}{84}} + \CJK@namegdef{^^d5}{\@empty\CJK@sjischar{D5}{131}{86}} + \CJK@namegdef{^^d6}{\@empty\CJK@sjischar{D6}{131}{88}} + \CJK@namegdef{^^d7}{\@empty\CJK@sjischar{D7}{131}{89}} + \CJK@namegdef{^^d8}{\@empty\CJK@sjischar{D8}{131}{8A}} + \CJK@namegdef{^^d9}{\@empty\CJK@sjischar{D9}{131}{8B}} + \CJK@namegdef{^^da}{\@empty\CJK@sjischar{DA}{131}{8C}} + \CJK@namegdef{^^db}{\@empty\CJK@sjischar{DB}{131}{8D}} + \CJK@namegdef{^^dc}{\@empty\CJK@sjischar{DC}{131}{8F}} + \CJK@namegdef{^^dd}{\@empty\CJK@sjischar{DD}{131}{93}} + \CJK@namegdef{^^de}{\@empty\CJK@sjischar{DE}{129}{4A}} + \CJK@namegdef{^^df}{\@empty\CJK@sjischar{DF}{129}{4B}} + \CJK@namegdef{^^e0}##1{\CJK@disableMakeUppercase + \CJK@charx{kr}{ks}{ 66}{##1}} + \CJK@namegdef{^^e1}##1{\CJK@disableMakeUppercase + \CJK@char {ks}{ -2}{##1}} + \CJK@namegdef{^^e2}##1{\CJK@disableMakeUppercase + \CJK@charx{ks}{kt}{186}{##1}} + \CJK@namegdef{^^e3}##1{\CJK@disableMakeUppercase + \CJK@charx{kt}{ku}{118}{##1}} + \CJK@namegdef{^^e4}##1{\CJK@disableMakeUppercase + \CJK@charx{ku}{kv}{ 50}{##1}} + \CJK@namegdef{^^e5}##1{\CJK@disableMakeUppercase + \CJK@char {kv}{-18}{##1}} + \CJK@namegdef{^^e6}##1{\CJK@disableMakeUppercase + \CJK@charx{kv}{kw}{170}{##1}} + \CJK@namegdef{^^e7}##1{\CJK@disableMakeUppercase + \CJK@charx{kw}{kx}{102}{##1}} + \CJK@namegdef{^^e8}##1{\CJK@disableMakeUppercase + \CJK@charx{kx}{ky}{ 34}{##1}} + \CJK@namegdef{^^e9}##1{\CJK@disableMakeUppercase + \CJK@char {ky}{-34}{##1}} + \CJK@namegdef{^^ea}##1{\CJK@disableMakeUppercase + \CJK@charx{ky}{kz}{154}{##1}} + \CJK@namegdef{^^eb}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^ec}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^ed}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^ee}##1{\@empty\CJK@errxx} + \CJK@namegdef{^^ef}##1{\@empty\CJK@errxx} +} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/c49song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/c49song.fd new file mode 100644 index 0000000000..c24aa0dc81 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/SJIS/c49song.fd @@ -0,0 +1,25 @@ +% This is the file c49song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c49song.fd}[\filedate\space\fileversion] + + +% Japanese characters +% +% character set: one-byte half-width katakana (JIS X 0201-1997) +% font encoding: eight-bit (as used in SJIS) + +\DeclareFontFamily{C49}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C49}{song}{m}{n}{<5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJK * sokana}{} +\DeclareFontShape{C49}{song}{bx}{n}{<5><6><7><8><9><10><10.95><12> + <14.4><17.28><20.74><24.88> CJK * sokanab}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/UTF8.bdg b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/UTF8.bdg new file mode 100644 index 0000000000..7e1f4988f5 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/UTF8.bdg @@ -0,0 +1,156 @@ +% This is the file UTF8.bdg of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{UTF8.bdg}[\filedate\space\fileversion] + + + +% UTF 8 bindings for two-, three-, and four-byte characters. We stop +% with 0xF4 because there are no valid Unicode characters beyond 0x10FFFF. + +\global\@namedef{CJK@UTF8Binding}{ + \CJK@namedef{^^80} + \CJK@namedef{^^81} + \CJK@namedef{^^82} + \CJK@namedef{^^83} + \CJK@namedef{^^84} + \CJK@namedef{^^85} + \CJK@namedef{^^86} + \CJK@namedef{^^87} + \CJK@namedef{^^88} + \CJK@namedef{^^89} + \CJK@namedef{^^8a} + \CJK@namedef{^^8b} + \CJK@namedef{^^8c} + \CJK@namedef{^^8d} + \CJK@namedef{^^8e} + \CJK@namedef{^^8f} + \CJK@namedef{^^90} + \CJK@namedef{^^91} + \CJK@namedef{^^92} + \CJK@namedef{^^93} + \CJK@namedef{^^94} + \CJK@namedef{^^95} + \CJK@namedef{^^96} + \CJK@namedef{^^97} + \CJK@namedef{^^98} + \CJK@namedef{^^99} + \CJK@namedef{^^9a} + \CJK@namedef{^^9b} + \CJK@namedef{^^9c} + \CJK@namedef{^^9d} + \CJK@namedef{^^9e} + \CJK@namedef{^^9f} + \CJK@namedef{^^a0} + \CJK@namedef{^^a1} + \CJK@namedef{^^a2} + \CJK@namedef{^^a3} + \CJK@namedef{^^a4} + \CJK@namedef{^^a5} + \CJK@namedef{^^a6} + \CJK@namedef{^^a7} + \CJK@namedef{^^a8} + \CJK@namedef{^^a9} + \CJK@namedef{^^aa} + \CJK@namedef{^^ab} + \CJK@namedef{^^ac} + \CJK@namedef{^^ad} + \CJK@namedef{^^ae} + \CJK@namedef{^^af} + \CJK@namedef{^^b0} + \CJK@namedef{^^b1} + \CJK@namedef{^^b2} + \CJK@namedef{^^b3} + \CJK@namedef{^^b4} + \CJK@namedef{^^b5} + \CJK@namedef{^^b6} + \CJK@namedef{^^b7} + \CJK@namedef{^^b8} + \CJK@namedef{^^b9} + \CJK@namedef{^^ba} + \CJK@namedef{^^bb} + \CJK@namedef{^^bc} + \CJK@namedef{^^bd} + \CJK@namedef{^^be} + \CJK@namedef{^^bf} + + \CJK@nameppdef{^^c0} + \CJK@nameppdef{^^c1} + \CJK@nameppdef{^^c2} + \CJK@nameppdef{^^c3} + \CJK@nameppdef{^^c4} + \CJK@nameppdef{^^c5} + \CJK@nameppdef{^^c6} + \CJK@nameppdef{^^c7} + \CJK@nameppdef{^^c8} + \CJK@nameppdef{^^c9} + \CJK@nameppdef{^^ca} + \CJK@nameppdef{^^cb} + \CJK@nameppdef{^^cc} + \CJK@nameppdef{^^cd} + \CJK@nameppdef{^^ce} + \CJK@nameppdef{^^cf} + \CJK@nameppdef{^^d0} + \CJK@nameppdef{^^d1} + \CJK@nameppdef{^^d2} + \CJK@nameppdef{^^d3} + \CJK@nameppdef{^^d4} + \CJK@nameppdef{^^d5} + \CJK@nameppdef{^^d6} + \CJK@nameppdef{^^d7} + \CJK@nameppdef{^^d8} + \CJK@nameppdef{^^d9} + \CJK@nameppdef{^^da} + \CJK@nameppdef{^^db} + \CJK@nameppdef{^^dc} + \CJK@nameppdef{^^dd} + \CJK@nameppdef{^^de} + \CJK@nameppdef{^^df} + + \CJK@namepppdef{^^e0} + \CJK@namepppdef{^^e1} + \CJK@namepppdef{^^e2} + \CJK@namepppdef{^^e3} + \CJK@namepppdef{^^e4} + \CJK@namepppdef{^^e5} + \CJK@namepppdef{^^e6} + \CJK@namepppdef{^^e7} + \CJK@namepppdef{^^e8} + \CJK@namepppdef{^^e9} + \CJK@namepppdef{^^ea} + \CJK@namepppdef{^^eb} + \CJK@namepppdef{^^ec} + \CJK@namepppdef{^^ed} + \CJK@namepppdef{^^ee} + \CJK@namepppdef{^^ef} + + \CJK@nameppppdef{^^f0} + \CJK@nameppppdef{^^f1} + \CJK@nameppppdef{^^f2} + \CJK@nameppppdef{^^f3} + \CJK@nameppppdef{^^f4}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/UTF8.chr b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/UTF8.chr new file mode 100644 index 0000000000..cdb438141e --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/UTF8.chr @@ -0,0 +1,276 @@ +% This is the file UTF8.chr of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{UTF8.chr}[\filedate\space\fileversion] + + +% define macros for handling CJK fonts and characters in UTF 8 encoding. + +% two bytes per character; covers range 0x80 - 0x7FF. + +\CJK@global\@namedef{CJK@UTF8Chr}{ + \CJK@global\def\CJK@char##1##2##3{ + {\ifnum ##3 < \CJK@min + \CJK@err + \else + \ifnum ##3 > \CJK@max + \CJK@err + \else + \@tempcnta ##3\relax + \advance\@tempcnta ##2\relax + \edef\CJK@plane{##1} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \CJKsymbol{\@tempcnta} + \fi + \fi}} + +% three bytes per character; covers range 0x800 - 0xFFFF. + + \CJK@global\def\CJK@altchar##1##2##3{ + {\ifnum ##2 < \CJK@min + \CJK@err + \else + \ifnum ##2 > \CJK@max + \CJK@err + \else + \ifnum ##3 < \CJK@min + \CJK@errx + \else + \ifnum ##3 > \CJK@max + \CJK@errx + \else + \ifCJK@CJK@ + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + \fi + + \@tempcnta ##1\relax + \@tempcntb ##2\relax + \divide\@tempcntb 4\relax + \advance\@tempcnta \@tempcntb + \CJK@numbToHex{\CJK@gtemp}{\@tempcnta} + \def\CJK@tempa####1{ + \lowercase{\edef\CJK@plane{####1}}} + \expandafter\CJK@tempa\expandafter{\CJK@gtemp} + + \@tempcnta ##2\relax + \multiply\@tempcntb -4\relax + \advance\@tempcnta \@tempcntb + \multiply\@tempcnta 64\relax + \advance\@tempcnta ##3\relax + \advance\@tempcnta -128\relax + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \ifCJK@hangul@ + \discretionary{}{}{} + \fi + \ifCJK@CJK@ + \CJK@CJK + \fi + \fi + \fi + \fi + \fi}} + +% four bytes per character; covers range 0x10000 - 0x10FFFF. + + \CJK@global\def\CJK@altxchar##1##2##3##4{ + {\ifnum ##2 < \CJK@min + \CJK@err + \else + \ifnum ##2 > \CJK@max + \CJK@err + \else + \ifnum ##3 < \CJK@min + \CJK@errx + \else + \ifnum ##3 > \CJK@max + \CJK@errx + \else + \ifnum ##3 < \CJK@min + \CJK@errxx + \else + \ifnum ##3 > \CJK@max + \CJK@errxx + \else + \ifCJK@CJK@ + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + \fi + + \@tempcnta ##1\relax + \@tempcntb ##2\relax + \multiply\@tempcntb \sixt@@n + \advance\@tempcnta \@tempcntb + \@tempcntb ##3\relax + \divide\@tempcntb 4\relax + \advance\@tempcnta \@tempcntb + \CJK@numbxToHex{\CJK@gtemp}{\@tempcnta} + \def\CJK@tempa####1{ + \lowercase{\edef\CJK@plane{####1}}} + \expandafter\CJK@tempa\expandafter{\CJK@gtemp} + + \@tempcnta ##3\relax + \multiply\@tempcntb -4\relax + \advance\@tempcnta \@tempcntb + \multiply\@tempcnta 64\relax + \advance\@tempcnta ##4\relax + \advance\@tempcnta -128\relax + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \ifCJK@hangul@ + \discretionary{}{}{} + \fi + \ifCJK@CJK@ + \CJK@CJK + \fi + \fi + \fi + \fi + \fi + \fi + \fi}} + +% define macro for handling punctuation characters. + + \CJK@global\def\CJK@punctchar##1##2##3##4{ + {\ifnum ##3 < \CJK@min + \CJK@err + \else + \ifnum ##3 > \CJK@max + \CJK@err + \else + \ifnum ##4 < \CJK@min + \CJK@errx + \else + \ifnum ##4 > \CJK@max + \CJK@errx + \else + \@tempcnta ##2\relax + \@tempcntb ##3\relax + \divide\@tempcntb 4\relax + \advance\@tempcnta \@tempcntb + \CJK@numbToHex{\CJK@gtemp}{\@tempcnta} + \def\CJK@tempa####1{ + \lowercase{\edef\CJK@plane{####1}}} + \expandafter\CJK@tempa\expandafter{\CJK@gtemp} + + \@tempcnta ##3\relax + \multiply\@tempcntb -4\relax + \advance\@tempcnta \@tempcntb + \multiply\@tempcnta 64\relax + \advance\@tempcnta ##4\relax + \advance\@tempcnta -128\relax + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + + % we need three braces to make it work with CJKulem.sty + {{{\ifCJK@CJK@ + \expandafter\CJK@testInList + \expandafter{\expandafter##1\expandafter} + \expandafter{\CJK@plane} + \ifCJK@ + \CJK@numbToHex{\CJK@gtemp}{\@tempcnta} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{\CJK@@@enc}{\CJK@plane}{\CJK@gtemp} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{\CJK@@@enc}{\CJK@plane}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \else + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \CJKpunctsymbol{\@tempcnta} + + \CJK@CJK + \fi + \else + \CJKpunctsymbol{\@tempcnta} + \fi + \ifCJK@hangul@ + \discretionary{}{}{} + \fi + }}} + \fi + \fi + \fi + \fi}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/UTF8.enc b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/UTF8.enc new file mode 100644 index 0000000000..ff401e7049 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/UTF8.enc @@ -0,0 +1,140 @@ +% This is the file UTF8.enc of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{UTF8.enc}[\filedate\space\fileversion] + + +% UTF 8 encoding: + +\CJK@global\@namedef{CJK@UTF8Encoding}{ + \CJK@loadChr{UTF8} + + % two-byte characters + % + % 110xxxxx 10xxxxxx + % | + % + % 1. Byte * 64 -> xxxxx000000 + % 2. Byte -> 128 + xxxxxx + % + \CJK@namegdef{^^c0}##1{\@empty\CJK@char{00}{-128}{##1}} + \CJK@namegdef{^^c1}##1{\@empty\CJK@char{00}{ -64}{##1}} + \CJK@namegdef{^^c2}##1{\@empty\CJK@char{00}{ 0}{##1}} + \CJK@namegdef{^^c3}##1{\@empty\CJK@char{00}{ 64}{##1}} + \CJK@namegdef{^^c4}##1{\@empty\CJK@char{01}{-128}{##1}} + \CJK@namegdef{^^c5}##1{\@empty\CJK@char{01}{ -64}{##1}} + \CJK@namegdef{^^c6}##1{\@empty\CJK@char{01}{ 0}{##1}} + \CJK@namegdef{^^c7}##1{\@empty\CJK@char{01}{ 64}{##1}} + \CJK@namegdef{^^c8}##1{\@empty\CJK@char{02}{-128}{##1}} + \CJK@namegdef{^^c9}##1{\@empty\CJK@char{02}{ -64}{##1}} + \CJK@namegdef{^^ca}##1{\@empty\CJK@char{02}{ 0}{##1}} + \CJK@namegdef{^^cb}##1{\@empty\CJK@char{02}{ 64}{##1}} + \CJK@namegdef{^^cc}##1{\@empty\CJK@char{03}{-128}{##1}} + \CJK@namegdef{^^cd}##1{\@empty\CJK@char{03}{ -64}{##1}} + \CJK@namegdef{^^ce}##1{\@empty\CJK@char{03}{ 0}{##1}} + \CJK@namegdef{^^cf}##1{\@empty\CJK@char{03}{ 64}{##1}} + \CJK@namegdef{^^d0}##1{\@empty\CJK@char{04}{-128}{##1}} + \CJK@namegdef{^^d1}##1{\@empty\CJK@char{04}{ -64}{##1}} + \CJK@namegdef{^^d2}##1{\@empty\CJK@char{04}{ 0}{##1}} + \CJK@namegdef{^^d3}##1{\@empty\CJK@char{04}{ 64}{##1}} + \CJK@namegdef{^^d4}##1{\@empty\CJK@char{05}{-128}{##1}} + \CJK@namegdef{^^d5}##1{\@empty\CJK@char{05}{ -64}{##1}} + \CJK@namegdef{^^d6}##1{\@empty\CJK@char{05}{ 0}{##1}} + \CJK@namegdef{^^d7}##1{\@empty\CJK@char{05}{ 64}{##1}} + \CJK@namegdef{^^d8}##1{\@empty\CJK@char{06}{-128}{##1}} + \CJK@namegdef{^^d9}##1{\@empty\CJK@char{06}{ -64}{##1}} + \CJK@namegdef{^^da}##1{\@empty\CJK@char{06}{ 0}{##1}} + \CJK@namegdef{^^db}##1{\@empty\CJK@char{06}{ 64}{##1}} + \CJK@namegdef{^^dc}##1{\@empty\CJK@char{07}{-128}{##1}} + \CJK@namegdef{^^dd}##1{\@empty\CJK@char{07}{ -64}{##1}} + \CJK@namegdef{^^de}##1{\@empty\CJK@char{07}{ 0}{##1}} + \CJK@namegdef{^^df}##1{\@empty\CJK@char{07}{ 64}{##1}} + + % if in preprocessed mode, `\@gobble' will be gobbled, and + % \CJK@unicodeError becomes active + + % three-byte characters + % + % 1110xxxx 10xxxxxx 10xxxxxx + % | + % + % 1. Byte * 16 -> xxxx0000 + % 2. Byte / 4 -> 32 + xxxx + % + \CJK@namegdef{^^e0}##1##2{\@gobble\CJK@unicodeError + \CJK@altchar{-32}{##1}{##2}} + \CJK@namegdef{^^e1}##1##2{\@gobble\CJK@unicodeError + \CJK@altchar{-16}{##1}{##2}} + \CJK@namegdef{^^e2}##1##2{\@gobble\CJK@unicodeError + \CJK@altchar{ 0}{##1}{##2}} + \CJK@namegdef{^^e3}##1##2{\@gobble\CJK@unicodeError + \CJK@punctchar{\CJK@uniPunct}{ 16}{##1}{##2}} + \CJK@namegdef{^^e4}##1##2{\@gobble\CJK@unicodeError + \CJK@altchar{ 32}{##1}{##2}} + \CJK@namegdef{^^e5}##1##2{\@gobble\CJK@unicodeError + \CJK@altchar{ 48}{##1}{##2}} + \CJK@namegdef{^^e6}##1##2{\@gobble\CJK@unicodeError + \CJK@altchar{ 64}{##1}{##2}} + \CJK@namegdef{^^e7}##1##2{\@gobble\CJK@unicodeError + \CJK@altchar{ 80}{##1}{##2}} + \CJK@namegdef{^^e8}##1##2{\@gobble\CJK@unicodeError + \CJK@altchar{ 96}{##1}{##2}} + \CJK@namegdef{^^e9}##1##2{\@gobble\CJK@unicodeError + \CJK@altchar{112}{##1}{##2}} + \CJK@namegdef{^^ea}##1##2{\@gobble\CJK@unicodeError + \CJK@altchar{128}{##1}{##2}} + \CJK@namegdef{^^eb}##1##2{\@gobble\CJK@unicodeError + \CJK@altchar{144}{##1}{##2}} + \CJK@namegdef{^^ec}##1##2{\@gobble\CJK@unicodeError + \CJK@altchar{160}{##1}{##2}} + \CJK@namegdef{^^ed}##1##2{\@gobble\CJK@unicodeError + \CJK@altchar{176}{##1}{##2}} + \CJK@namegdef{^^ee}##1##2{\@gobble\CJK@unicodeError + \CJK@altchar{192}{##1}{##2}} + \CJK@namegdef{^^ef}##1##2{\@gobble\CJK@unicodeError + \CJK@punctchar{\CJK@uniPunct}{208}{##1}{##2}} + + % four-byte characters + % + % 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + % | | + % + % 1. Byte * 1024 -> xxx00 00000000 + % 2. Byte * 16 -> 2048 + xx xxxx0000 + % 3. Byte / 4 -> 32 + xxxx + % + \CJK@namegdef{^^f0}##1##2##3{\@gobble\CJK@unicodexError + \CJK@altxchar{-2080}{##1}{##2}{##3}} + \CJK@namegdef{^^f1}##1##2##3{\@gobble\CJK@unicodexError + \CJK@altxchar{-1056}{##1}{##2}{##3}} + \CJK@namegdef{^^f2}##1##2##3{\@gobble\CJK@unicodexError + \CJK@altxchar{ -32}{##1}{##2}{##3}} + \CJK@namegdef{^^f3}##1##2##3{\@gobble\CJK@unicodexError + \CJK@altxchar{ 992}{##1}{##2}{##3}} + \CJK@namegdef{^^f4}##1##2##3{\@gobble\CJK@unicodexError + \CJK@altxchar{ 2016}{##1}{##2}{##3}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70bkai.fd b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70bkai.fd new file mode 100644 index 0000000000..a4f0d9a849 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70bkai.fd @@ -0,0 +1,21 @@ +% This is the file c70bkai.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c70bkai.fd}[\filedate\space\fileversion] + + +% character set: Big5 +% font encoding: Unicode + +\DeclareFontFamily{C70}{bkai}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C70}{bkai}{m}{n}{<-> CJK * bkaiu}{\CJKnormal} +\DeclareFontShape{C70}{bkai}{bx}{n}{<-> CJKb * bkaiu}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70bkai.fdx b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70bkai.fdx new file mode 100644 index 0000000000..8f3919f492 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70bkai.fdx @@ -0,0 +1,325 @@ +% This is the file c70bkai.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by the script makefdx.pl for CJK Version 4.8.5 (16-Oct-2021). + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c70bkai.fdx}[\filedate\space\fileversion] + +\CJKvdef{fullheight}{1em} +\CJKvdef{height}{.88em} +\CJKvdef{offset}{.6em} + +% Uncomment if necessary. +%\CJKvdef{norotate}{} +\CJKvdef{m/n/00/175}{\def\CJK@plane{v}\selectfont\CJKsymbol{0}} +\CJKvlet{bx/n/00/175}{m/n/00/175} +\CJKvdef{m/n/00/183}{\def\CJK@plane{v}\selectfont\CJKsymbol{1}} +\CJKvlet{bx/n/00/183}{m/n/00/183} +\CJKvdef{m/n/02/205}{\def\CJK@plane{v}\selectfont\CJKsymbol{2}} +\CJKvlet{bx/n/02/205}{m/n/02/205} +\CJKvdef{m/n/ff/8}{\def\CJK@plane{v}\selectfont\CJKsymbol{3}} +\CJKvlet{bx/n/ff/8}{m/n/ff/8} +\CJKvdef{m/n/ff/9}{\def\CJK@plane{v}\selectfont\CJKsymbol{4}} +\CJKvlet{bx/n/ff/9}{m/n/ff/9} +\CJKvdef{m/n/ff/12}{\def\CJK@plane{v}\selectfont\CJKsymbol{5}} +\CJKvlet{bx/n/ff/12}{m/n/ff/12} +\CJKvdef{m/n/ff/14}{\def\CJK@plane{v}\selectfont\CJKsymbol{6}} +\CJKvlet{bx/n/ff/14}{m/n/ff/14} +\CJKvdef{m/n/ff/59}{\def\CJK@plane{v}\selectfont\CJKsymbol{7}} +\CJKvlet{bx/n/ff/59}{m/n/ff/59} +\CJKvdef{m/n/ff/61}{\def\CJK@plane{v}\selectfont\CJKsymbol{8}} +\CJKvlet{bx/n/ff/61}{m/n/ff/61} +\CJKvdef{m/n/ff/63}{\def\CJK@plane{v}\selectfont\CJKsymbol{9}} +\CJKvlet{bx/n/ff/63}{m/n/ff/63} +\CJKvdef{m/n/ff/91}{\def\CJK@plane{v}\selectfont\CJKsymbol{10}} +\CJKvlet{bx/n/ff/91}{m/n/ff/91} +\CJKvdef{m/n/ff/93}{\def\CJK@plane{v}\selectfont\CJKsymbol{11}} +\CJKvlet{bx/n/ff/93}{m/n/ff/93} +\CJKvdef{m/n/ff/94}{\def\CJK@plane{v}\selectfont\CJKsymbol{12}} +\CJKvlet{bx/n/ff/94}{m/n/ff/94} +\CJKvdef{m/n/20/19}{\def\CJK@plane{v}\selectfont\CJKsymbol{13}} +\CJKvlet{bx/n/20/19}{m/n/20/19} +\CJKvdef{m/n/20/20}{\def\CJK@plane{v}\selectfont\CJKsymbol{14}} +\CJKvlet{bx/n/20/20}{m/n/20/20} +\CJKvdef{m/n/20/37}{\def\CJK@plane{v}\selectfont\CJKsymbol{15}} +\CJKvlet{bx/n/20/37}{m/n/20/37} +\CJKvdef{m/n/20/38}{\def\CJK@plane{v}\selectfont\CJKsymbol{16}} +\CJKvlet{bx/n/20/38}{m/n/20/38} +\CJKvdef{m/n/21/144}{\def\CJK@plane{v}\selectfont\CJKsymbol{17}} +\CJKvlet{bx/n/21/144}{m/n/21/144} +\CJKvdef{m/n/21/145}{\def\CJK@plane{v}\selectfont\CJKsymbol{18}} +\CJKvlet{bx/n/21/145}{m/n/21/145} +\CJKvdef{m/n/21/146}{\def\CJK@plane{v}\selectfont\CJKsymbol{19}} +\CJKvlet{bx/n/21/146}{m/n/21/146} +\CJKvdef{m/n/21/147}{\def\CJK@plane{v}\selectfont\CJKsymbol{20}} +\CJKvlet{bx/n/21/147}{m/n/21/147} +\CJKvdef{m/n/22/35}{\def\CJK@plane{v}\selectfont\CJKsymbol{21}} +\CJKvlet{bx/n/22/35}{m/n/22/35} +\CJKvdef{m/n/22/37}{\def\CJK@plane{v}\selectfont\CJKsymbol{22}} +\CJKvlet{bx/n/22/37}{m/n/22/37} +\CJKvdef{m/n/25/0}{\def\CJK@plane{v}\selectfont\CJKsymbol{23}} +\CJKvlet{bx/n/25/0}{m/n/25/0} +\CJKvdef{m/n/25/2}{\def\CJK@plane{v}\selectfont\CJKsymbol{24}} +\CJKvlet{bx/n/25/2}{m/n/25/2} +\CJKvdef{m/n/25/12}{\def\CJK@plane{v}\selectfont\CJKsymbol{25}} +\CJKvlet{bx/n/25/12}{m/n/25/12} +\CJKvdef{m/n/25/16}{\def\CJK@plane{v}\selectfont\CJKsymbol{26}} +\CJKvlet{bx/n/25/16}{m/n/25/16} +\CJKvdef{m/n/25/20}{\def\CJK@plane{v}\selectfont\CJKsymbol{27}} +\CJKvlet{bx/n/25/20}{m/n/25/20} +\CJKvdef{m/n/25/24}{\def\CJK@plane{v}\selectfont\CJKsymbol{28}} +\CJKvlet{bx/n/25/24}{m/n/25/24} +\CJKvdef{m/n/25/28}{\def\CJK@plane{v}\selectfont\CJKsymbol{29}} +\CJKvlet{bx/n/25/28}{m/n/25/28} +\CJKvdef{m/n/25/36}{\def\CJK@plane{v}\selectfont\CJKsymbol{30}} +\CJKvlet{bx/n/25/36}{m/n/25/36} +\CJKvdef{m/n/25/44}{\def\CJK@plane{v}\selectfont\CJKsymbol{31}} +\CJKvlet{bx/n/25/44}{m/n/25/44} +\CJKvdef{m/n/25/52}{\def\CJK@plane{v}\selectfont\CJKsymbol{32}} +\CJKvlet{bx/n/25/52}{m/n/25/52} +\CJKvdef{m/n/25/80}{\def\CJK@plane{v}\selectfont\CJKsymbol{33}} +\CJKvlet{bx/n/25/80}{m/n/25/80} +\CJKvdef{m/n/25/81}{\def\CJK@plane{v}\selectfont\CJKsymbol{34}} +\CJKvlet{bx/n/25/81}{m/n/25/81} +\CJKvdef{m/n/25/82}{\def\CJK@plane{v}\selectfont\CJKsymbol{35}} +\CJKvlet{bx/n/25/82}{m/n/25/82} +\CJKvdef{m/n/25/83}{\def\CJK@plane{v}\selectfont\CJKsymbol{36}} +\CJKvlet{bx/n/25/83}{m/n/25/83} +\CJKvdef{m/n/25/84}{\def\CJK@plane{v}\selectfont\CJKsymbol{37}} +\CJKvlet{bx/n/25/84}{m/n/25/84} +\CJKvdef{m/n/25/85}{\def\CJK@plane{v}\selectfont\CJKsymbol{38}} +\CJKvlet{bx/n/25/85}{m/n/25/85} +\CJKvdef{m/n/25/86}{\def\CJK@plane{v}\selectfont\CJKsymbol{39}} +\CJKvlet{bx/n/25/86}{m/n/25/86} +\CJKvdef{m/n/25/87}{\def\CJK@plane{v}\selectfont\CJKsymbol{40}} +\CJKvlet{bx/n/25/87}{m/n/25/87} +\CJKvdef{m/n/25/88}{\def\CJK@plane{v}\selectfont\CJKsymbol{41}} +\CJKvlet{bx/n/25/88}{m/n/25/88} +\CJKvdef{m/n/25/89}{\def\CJK@plane{v}\selectfont\CJKsymbol{42}} +\CJKvlet{bx/n/25/89}{m/n/25/89} +\CJKvdef{m/n/25/90}{\def\CJK@plane{v}\selectfont\CJKsymbol{43}} +\CJKvlet{bx/n/25/90}{m/n/25/90} +\CJKvdef{m/n/25/91}{\def\CJK@plane{v}\selectfont\CJKsymbol{44}} +\CJKvlet{bx/n/25/91}{m/n/25/91} +\CJKvdef{m/n/25/92}{\def\CJK@plane{v}\selectfont\CJKsymbol{45}} +\CJKvlet{bx/n/25/92}{m/n/25/92} +\CJKvdef{m/n/25/93}{\def\CJK@plane{v}\selectfont\CJKsymbol{46}} +\CJKvlet{bx/n/25/93}{m/n/25/93} +\CJKvdef{m/n/25/94}{\def\CJK@plane{v}\selectfont\CJKsymbol{47}} +\CJKvlet{bx/n/25/94}{m/n/25/94} +\CJKvdef{m/n/25/95}{\def\CJK@plane{v}\selectfont\CJKsymbol{48}} +\CJKvlet{bx/n/25/95}{m/n/25/95} +\CJKvdef{m/n/25/96}{\def\CJK@plane{v}\selectfont\CJKsymbol{49}} +\CJKvlet{bx/n/25/96}{m/n/25/96} +\CJKvdef{m/n/25/97}{\def\CJK@plane{v}\selectfont\CJKsymbol{50}} +\CJKvlet{bx/n/25/97}{m/n/25/97} +\CJKvdef{m/n/25/98}{\def\CJK@plane{v}\selectfont\CJKsymbol{51}} +\CJKvlet{bx/n/25/98}{m/n/25/98} +\CJKvdef{m/n/25/99}{\def\CJK@plane{v}\selectfont\CJKsymbol{52}} +\CJKvlet{bx/n/25/99}{m/n/25/99} +\CJKvdef{m/n/25/100}{\def\CJK@plane{v}\selectfont\CJKsymbol{53}} +\CJKvlet{bx/n/25/100}{m/n/25/100} +\CJKvdef{m/n/25/101}{\def\CJK@plane{v}\selectfont\CJKsymbol{54}} +\CJKvlet{bx/n/25/101}{m/n/25/101} +\CJKvdef{m/n/25/102}{\def\CJK@plane{v}\selectfont\CJKsymbol{55}} +\CJKvlet{bx/n/25/102}{m/n/25/102} +\CJKvdef{m/n/25/103}{\def\CJK@plane{v}\selectfont\CJKsymbol{56}} +\CJKvlet{bx/n/25/103}{m/n/25/103} +\CJKvdef{m/n/25/104}{\def\CJK@plane{v}\selectfont\CJKsymbol{57}} +\CJKvlet{bx/n/25/104}{m/n/25/104} +\CJKvdef{m/n/25/105}{\def\CJK@plane{v}\selectfont\CJKsymbol{58}} +\CJKvlet{bx/n/25/105}{m/n/25/105} +\CJKvdef{m/n/25/106}{\def\CJK@plane{v}\selectfont\CJKsymbol{59}} +\CJKvlet{bx/n/25/106}{m/n/25/106} +\CJKvdef{m/n/25/107}{\def\CJK@plane{v}\selectfont\CJKsymbol{60}} +\CJKvlet{bx/n/25/107}{m/n/25/107} +\CJKvdef{m/n/25/109}{\def\CJK@plane{v}\selectfont\CJKsymbol{61}} +\CJKvlet{bx/n/25/109}{m/n/25/109} +\CJKvdef{m/n/25/110}{\def\CJK@plane{v}\selectfont\CJKsymbol{62}} +\CJKvlet{bx/n/25/110}{m/n/25/110} +\CJKvdef{m/n/25/111}{\def\CJK@plane{v}\selectfont\CJKsymbol{63}} +\CJKvlet{bx/n/25/111}{m/n/25/111} +\CJKvdef{m/n/25/112}{\def\CJK@plane{v}\selectfont\CJKsymbol{64}} +\CJKvlet{bx/n/25/112}{m/n/25/112} +\CJKvdef{m/n/25/116}{\def\CJK@plane{v}\selectfont\CJKsymbol{65}} +\CJKvlet{bx/n/25/116}{m/n/25/116} +\CJKvdef{m/n/30/1}{\def\CJK@plane{v}\selectfont\CJKsymbol{66}} +\CJKvlet{bx/n/30/1}{m/n/30/1} +\CJKvdef{m/n/30/2}{\def\CJK@plane{v}\selectfont\CJKsymbol{67}} +\CJKvlet{bx/n/30/2}{m/n/30/2} +\CJKvdef{m/n/30/8}{\def\CJK@plane{v}\selectfont\CJKsymbol{68}} +\CJKvlet{bx/n/30/8}{m/n/30/8} +\CJKvdef{m/n/30/9}{\def\CJK@plane{v}\selectfont\CJKsymbol{69}} +\CJKvlet{bx/n/30/9}{m/n/30/9} +\CJKvdef{m/n/30/10}{\def\CJK@plane{v}\selectfont\CJKsymbol{70}} +\CJKvlet{bx/n/30/10}{m/n/30/10} +\CJKvdef{m/n/30/11}{\def\CJK@plane{v}\selectfont\CJKsymbol{71}} +\CJKvlet{bx/n/30/11}{m/n/30/11} +\CJKvdef{m/n/30/12}{\def\CJK@plane{v}\selectfont\CJKsymbol{72}} +\CJKvlet{bx/n/30/12}{m/n/30/12} +\CJKvdef{m/n/30/13}{\def\CJK@plane{v}\selectfont\CJKsymbol{73}} +\CJKvlet{bx/n/30/13}{m/n/30/13} +\CJKvdef{m/n/30/14}{\def\CJK@plane{v}\selectfont\CJKsymbol{74}} +\CJKvlet{bx/n/30/14}{m/n/30/14} +\CJKvdef{m/n/30/15}{\def\CJK@plane{v}\selectfont\CJKsymbol{75}} +\CJKvlet{bx/n/30/15}{m/n/30/15} +\CJKvdef{m/n/30/16}{\def\CJK@plane{v}\selectfont\CJKsymbol{76}} +\CJKvlet{bx/n/30/16}{m/n/30/16} +\CJKvdef{m/n/30/17}{\def\CJK@plane{v}\selectfont\CJKsymbol{77}} +\CJKvlet{bx/n/30/17}{m/n/30/17} +\CJKvdef{m/n/30/20}{\def\CJK@plane{v}\selectfont\CJKsymbol{78}} +\CJKvlet{bx/n/30/20}{m/n/30/20} +\CJKvdef{m/n/30/21}{\def\CJK@plane{v}\selectfont\CJKsymbol{79}} +\CJKvlet{bx/n/30/21}{m/n/30/21} +\CJKvdef{m/n/fe/79}{\def\CJK@plane{v}\selectfont\CJKsymbol{80}} +\CJKvlet{bx/n/fe/79}{m/n/fe/79} +\CJKvdef{m/n/fe/80}{\def\CJK@plane{v}\selectfont\CJKsymbol{81}} +\CJKvlet{bx/n/fe/80}{m/n/fe/80} +\CJKvdef{m/n/fe/81}{\def\CJK@plane{v}\selectfont\CJKsymbol{82}} +\CJKvlet{bx/n/fe/81}{m/n/fe/81} +\CJKvdef{m/n/fe/82}{\def\CJK@plane{v}\selectfont\CJKsymbol{83}} +\CJKvlet{bx/n/fe/82}{m/n/fe/82} +\CJKvdef{m/n/fe/89}{\def\CJK@plane{v}\selectfont\CJKsymbol{84}} +\CJKvlet{bx/n/fe/89}{m/n/fe/89} +\CJKvdef{m/n/fe/90}{\def\CJK@plane{v}\selectfont\CJKsymbol{85}} +\CJKvlet{bx/n/fe/90}{m/n/fe/90} +\CJKvdef{m/n/fe/91}{\def\CJK@plane{v}\selectfont\CJKsymbol{86}} +\CJKvlet{bx/n/fe/91}{m/n/fe/91} +\CJKvdef{m/n/fe/92}{\def\CJK@plane{v}\selectfont\CJKsymbol{87}} +\CJKvlet{bx/n/fe/92}{m/n/fe/92} +\CJKvdef{m/n/fe/93}{\def\CJK@plane{v}\selectfont\CJKsymbol{88}} +\CJKvlet{bx/n/fe/93}{m/n/fe/93} +\CJKvdef{m/n/fe/94}{\def\CJK@plane{v}\selectfont\CJKsymbol{89}} +\CJKvlet{bx/n/fe/94}{m/n/fe/94} +\CJKvdef{m/n/20/62}{\def\CJK@plane{v}\selectfont\CJKsymbol{90}} +\CJKvlet{bx/n/20/62}{m/n/20/62} + +\gdef\CJK@cmap@bkaiv{ + \expandafter\ifx\csname CJK@CMap@bkaiv\endcsname \relax + \immediate\pdfobj stream { + /CIDInit\space/ProcSet\space findresource\space begin\space + 12\space dict\space begin\space + begincmap\space + /CIDSystemInfo\space <<\space + /Registry\space (TeX)\space + /Ordering\space (bkaiv)\space + /Supplement\space 0\space >>\space def\space + /CMapName\space /TeX-bkaiv-0\space def\space + 1\space begincodespacerange\space + <00>\space <FF>\space + endcodespacerange\space + 91\space beginbfchar\space + <00>\space <00AF>\space + <01>\space <00B7>\space + <02>\space <02CD>\space + <03>\space <FF08>\space + <04>\space <FF09>\space + <05>\space <FF0C>\space + <06>\space <FF0E>\space + <07>\space <FF3B>\space + <08>\space <FF3D>\space + <09>\space <FF3F>\space + <0A>\space <FF5B>\space + <0B>\space <FF5D>\space + <0C>\space <FF5E>\space + <0D>\space <2013>\space + <0E>\space <2014>\space + <0F>\space <2025>\space + <10>\space <2026>\space + <11>\space <2190>\space + <12>\space <2191>\space + <13>\space <2192>\space + <14>\space <2193>\space + <15>\space <2223>\space + <16>\space <2225>\space + <17>\space <2500>\space + <18>\space <2502>\space + <19>\space <250C>\space + <1A>\space <2510>\space + <1B>\space <2514>\space + <1C>\space <2518>\space + <1D>\space <251C>\space + <1E>\space <2524>\space + <1F>\space <252C>\space + <20>\space <2534>\space + <21>\space <2550>\space + <22>\space <2551>\space + <23>\space <2552>\space + <24>\space <2553>\space + <25>\space <2554>\space + <26>\space <2555>\space + <27>\space <2556>\space + <28>\space <2557>\space + <29>\space <2558>\space + <2A>\space <2559>\space + <2B>\space <255A>\space + <2C>\space <255B>\space + <2D>\space <255C>\space + <2E>\space <255D>\space + <2F>\space <255E>\space + <30>\space <255F>\space + <31>\space <2560>\space + <32>\space <2561>\space + <33>\space <2562>\space + <34>\space <2563>\space + <35>\space <2564>\space + <36>\space <2565>\space + <37>\space <2566>\space + <38>\space <2567>\space + <39>\space <2568>\space + <3A>\space <2569>\space + <3B>\space <256A>\space + <3C>\space <256B>\space + <3D>\space <256D>\space + <3E>\space <256E>\space + <3F>\space <256F>\space + <40>\space <2570>\space + <41>\space <2574>\space + <42>\space <3001>\space + <43>\space <3002>\space + <44>\space <3008>\space + <45>\space <3009>\space + <46>\space <300A>\space + <47>\space <300B>\space + <48>\space <300C>\space + <49>\space <300D>\space + <4A>\space <300E>\space + <4B>\space <300F>\space + <4C>\space <3010>\space + <4D>\space <3011>\space + <4E>\space <3014>\space + <4F>\space <3015>\space + <50>\space <FE4F>\space + <51>\space <FE50>\space + <52>\space <FE51>\space + <53>\space <FE52>\space + <54>\space <FE59>\space + <55>\space <FE5A>\space + <56>\space <FE5B>\space + <57>\space <FE5C>\space + <58>\space <FE5D>\space + <59>\space <FE5E>\space + <5A>\space <203E>\space + endbfchar\space + endcmap\space + CMapName\space currentdict\space /CMap\space defineresource\space + pop\space + end\space + end\space} + \expandafter\xdef\csname CJK@CMap@bkaiv\endcsname{ + \the\pdflastobj} + \fi + \pdffontattr\font@name{ + /ToUnicode\space\csname CJK@CMap@bkaiv\endcsname\space 0\space R} +} + +% This font doesn't contain a glyph for U+3007, but it has U+25CB. + +\CJKhdef{m/n/30/7}{\def\CJK@plane{25}\selectfont\CJKsymbol{203}} +\CJKhlet{bx/n/30/7}{m/n/30/7} +\CJKvdef{m/n/30/7}{\def\CJK@plane{25}\selectfont\CJKsymbol{203}} +\CJKvlet{bx/n/30/7}{m/n/30/7} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70bsmi.fd b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70bsmi.fd new file mode 100644 index 0000000000..89ebad58e9 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70bsmi.fd @@ -0,0 +1,21 @@ +% This is the file c70bsmi.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c70bsmi.fd}[\filedate\space\fileversion] + + +% character set: Big5 +% font encoding: Unicode + +\DeclareFontFamily{C70}{bsmi}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C70}{bsmi}{m}{n}{<-> CJK * bsmiu}{\CJKnormal} +\DeclareFontShape{C70}{bsmi}{bx}{n}{<-> CJKb * bsmiu}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70bsmi.fdx b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70bsmi.fdx new file mode 100644 index 0000000000..08a298253c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70bsmi.fdx @@ -0,0 +1,325 @@ +% This is the file c70bsmi.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by the script makefdx.pl for CJK Version 4.8.5 (16-Oct-2021). + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c70bsmi.fdx}[\filedate\space\fileversion] + +\CJKvdef{fullheight}{1em} +\CJKvdef{height}{.88em} +\CJKvdef{offset}{.6em} + +% Uncomment if necessary. +%\CJKvdef{norotate}{} +\CJKvdef{m/n/00/175}{\def\CJK@plane{v}\selectfont\CJKsymbol{0}} +\CJKvlet{bx/n/00/175}{m/n/00/175} +\CJKvdef{m/n/00/183}{\def\CJK@plane{v}\selectfont\CJKsymbol{1}} +\CJKvlet{bx/n/00/183}{m/n/00/183} +\CJKvdef{m/n/02/205}{\def\CJK@plane{v}\selectfont\CJKsymbol{2}} +\CJKvlet{bx/n/02/205}{m/n/02/205} +\CJKvdef{m/n/ff/8}{\def\CJK@plane{v}\selectfont\CJKsymbol{3}} +\CJKvlet{bx/n/ff/8}{m/n/ff/8} +\CJKvdef{m/n/ff/9}{\def\CJK@plane{v}\selectfont\CJKsymbol{4}} +\CJKvlet{bx/n/ff/9}{m/n/ff/9} +\CJKvdef{m/n/ff/12}{\def\CJK@plane{v}\selectfont\CJKsymbol{5}} +\CJKvlet{bx/n/ff/12}{m/n/ff/12} +\CJKvdef{m/n/ff/14}{\def\CJK@plane{v}\selectfont\CJKsymbol{6}} +\CJKvlet{bx/n/ff/14}{m/n/ff/14} +\CJKvdef{m/n/ff/59}{\def\CJK@plane{v}\selectfont\CJKsymbol{7}} +\CJKvlet{bx/n/ff/59}{m/n/ff/59} +\CJKvdef{m/n/ff/61}{\def\CJK@plane{v}\selectfont\CJKsymbol{8}} +\CJKvlet{bx/n/ff/61}{m/n/ff/61} +\CJKvdef{m/n/ff/63}{\def\CJK@plane{v}\selectfont\CJKsymbol{9}} +\CJKvlet{bx/n/ff/63}{m/n/ff/63} +\CJKvdef{m/n/ff/91}{\def\CJK@plane{v}\selectfont\CJKsymbol{10}} +\CJKvlet{bx/n/ff/91}{m/n/ff/91} +\CJKvdef{m/n/ff/93}{\def\CJK@plane{v}\selectfont\CJKsymbol{11}} +\CJKvlet{bx/n/ff/93}{m/n/ff/93} +\CJKvdef{m/n/ff/94}{\def\CJK@plane{v}\selectfont\CJKsymbol{12}} +\CJKvlet{bx/n/ff/94}{m/n/ff/94} +\CJKvdef{m/n/20/19}{\def\CJK@plane{v}\selectfont\CJKsymbol{13}} +\CJKvlet{bx/n/20/19}{m/n/20/19} +\CJKvdef{m/n/20/20}{\def\CJK@plane{v}\selectfont\CJKsymbol{14}} +\CJKvlet{bx/n/20/20}{m/n/20/20} +\CJKvdef{m/n/20/37}{\def\CJK@plane{v}\selectfont\CJKsymbol{15}} +\CJKvlet{bx/n/20/37}{m/n/20/37} +\CJKvdef{m/n/20/38}{\def\CJK@plane{v}\selectfont\CJKsymbol{16}} +\CJKvlet{bx/n/20/38}{m/n/20/38} +\CJKvdef{m/n/21/144}{\def\CJK@plane{v}\selectfont\CJKsymbol{17}} +\CJKvlet{bx/n/21/144}{m/n/21/144} +\CJKvdef{m/n/21/145}{\def\CJK@plane{v}\selectfont\CJKsymbol{18}} +\CJKvlet{bx/n/21/145}{m/n/21/145} +\CJKvdef{m/n/21/146}{\def\CJK@plane{v}\selectfont\CJKsymbol{19}} +\CJKvlet{bx/n/21/146}{m/n/21/146} +\CJKvdef{m/n/21/147}{\def\CJK@plane{v}\selectfont\CJKsymbol{20}} +\CJKvlet{bx/n/21/147}{m/n/21/147} +\CJKvdef{m/n/22/35}{\def\CJK@plane{v}\selectfont\CJKsymbol{21}} +\CJKvlet{bx/n/22/35}{m/n/22/35} +\CJKvdef{m/n/22/37}{\def\CJK@plane{v}\selectfont\CJKsymbol{22}} +\CJKvlet{bx/n/22/37}{m/n/22/37} +\CJKvdef{m/n/25/0}{\def\CJK@plane{v}\selectfont\CJKsymbol{23}} +\CJKvlet{bx/n/25/0}{m/n/25/0} +\CJKvdef{m/n/25/2}{\def\CJK@plane{v}\selectfont\CJKsymbol{24}} +\CJKvlet{bx/n/25/2}{m/n/25/2} +\CJKvdef{m/n/25/12}{\def\CJK@plane{v}\selectfont\CJKsymbol{25}} +\CJKvlet{bx/n/25/12}{m/n/25/12} +\CJKvdef{m/n/25/16}{\def\CJK@plane{v}\selectfont\CJKsymbol{26}} +\CJKvlet{bx/n/25/16}{m/n/25/16} +\CJKvdef{m/n/25/20}{\def\CJK@plane{v}\selectfont\CJKsymbol{27}} +\CJKvlet{bx/n/25/20}{m/n/25/20} +\CJKvdef{m/n/25/24}{\def\CJK@plane{v}\selectfont\CJKsymbol{28}} +\CJKvlet{bx/n/25/24}{m/n/25/24} +\CJKvdef{m/n/25/28}{\def\CJK@plane{v}\selectfont\CJKsymbol{29}} +\CJKvlet{bx/n/25/28}{m/n/25/28} +\CJKvdef{m/n/25/36}{\def\CJK@plane{v}\selectfont\CJKsymbol{30}} +\CJKvlet{bx/n/25/36}{m/n/25/36} +\CJKvdef{m/n/25/44}{\def\CJK@plane{v}\selectfont\CJKsymbol{31}} +\CJKvlet{bx/n/25/44}{m/n/25/44} +\CJKvdef{m/n/25/52}{\def\CJK@plane{v}\selectfont\CJKsymbol{32}} +\CJKvlet{bx/n/25/52}{m/n/25/52} +\CJKvdef{m/n/25/80}{\def\CJK@plane{v}\selectfont\CJKsymbol{33}} +\CJKvlet{bx/n/25/80}{m/n/25/80} +\CJKvdef{m/n/25/81}{\def\CJK@plane{v}\selectfont\CJKsymbol{34}} +\CJKvlet{bx/n/25/81}{m/n/25/81} +\CJKvdef{m/n/25/82}{\def\CJK@plane{v}\selectfont\CJKsymbol{35}} +\CJKvlet{bx/n/25/82}{m/n/25/82} +\CJKvdef{m/n/25/83}{\def\CJK@plane{v}\selectfont\CJKsymbol{36}} +\CJKvlet{bx/n/25/83}{m/n/25/83} +\CJKvdef{m/n/25/84}{\def\CJK@plane{v}\selectfont\CJKsymbol{37}} +\CJKvlet{bx/n/25/84}{m/n/25/84} +\CJKvdef{m/n/25/85}{\def\CJK@plane{v}\selectfont\CJKsymbol{38}} +\CJKvlet{bx/n/25/85}{m/n/25/85} +\CJKvdef{m/n/25/86}{\def\CJK@plane{v}\selectfont\CJKsymbol{39}} +\CJKvlet{bx/n/25/86}{m/n/25/86} +\CJKvdef{m/n/25/87}{\def\CJK@plane{v}\selectfont\CJKsymbol{40}} +\CJKvlet{bx/n/25/87}{m/n/25/87} +\CJKvdef{m/n/25/88}{\def\CJK@plane{v}\selectfont\CJKsymbol{41}} +\CJKvlet{bx/n/25/88}{m/n/25/88} +\CJKvdef{m/n/25/89}{\def\CJK@plane{v}\selectfont\CJKsymbol{42}} +\CJKvlet{bx/n/25/89}{m/n/25/89} +\CJKvdef{m/n/25/90}{\def\CJK@plane{v}\selectfont\CJKsymbol{43}} +\CJKvlet{bx/n/25/90}{m/n/25/90} +\CJKvdef{m/n/25/91}{\def\CJK@plane{v}\selectfont\CJKsymbol{44}} +\CJKvlet{bx/n/25/91}{m/n/25/91} +\CJKvdef{m/n/25/92}{\def\CJK@plane{v}\selectfont\CJKsymbol{45}} +\CJKvlet{bx/n/25/92}{m/n/25/92} +\CJKvdef{m/n/25/93}{\def\CJK@plane{v}\selectfont\CJKsymbol{46}} +\CJKvlet{bx/n/25/93}{m/n/25/93} +\CJKvdef{m/n/25/94}{\def\CJK@plane{v}\selectfont\CJKsymbol{47}} +\CJKvlet{bx/n/25/94}{m/n/25/94} +\CJKvdef{m/n/25/95}{\def\CJK@plane{v}\selectfont\CJKsymbol{48}} +\CJKvlet{bx/n/25/95}{m/n/25/95} +\CJKvdef{m/n/25/96}{\def\CJK@plane{v}\selectfont\CJKsymbol{49}} +\CJKvlet{bx/n/25/96}{m/n/25/96} +\CJKvdef{m/n/25/97}{\def\CJK@plane{v}\selectfont\CJKsymbol{50}} +\CJKvlet{bx/n/25/97}{m/n/25/97} +\CJKvdef{m/n/25/98}{\def\CJK@plane{v}\selectfont\CJKsymbol{51}} +\CJKvlet{bx/n/25/98}{m/n/25/98} +\CJKvdef{m/n/25/99}{\def\CJK@plane{v}\selectfont\CJKsymbol{52}} +\CJKvlet{bx/n/25/99}{m/n/25/99} +\CJKvdef{m/n/25/100}{\def\CJK@plane{v}\selectfont\CJKsymbol{53}} +\CJKvlet{bx/n/25/100}{m/n/25/100} +\CJKvdef{m/n/25/101}{\def\CJK@plane{v}\selectfont\CJKsymbol{54}} +\CJKvlet{bx/n/25/101}{m/n/25/101} +\CJKvdef{m/n/25/102}{\def\CJK@plane{v}\selectfont\CJKsymbol{55}} +\CJKvlet{bx/n/25/102}{m/n/25/102} +\CJKvdef{m/n/25/103}{\def\CJK@plane{v}\selectfont\CJKsymbol{56}} +\CJKvlet{bx/n/25/103}{m/n/25/103} +\CJKvdef{m/n/25/104}{\def\CJK@plane{v}\selectfont\CJKsymbol{57}} +\CJKvlet{bx/n/25/104}{m/n/25/104} +\CJKvdef{m/n/25/105}{\def\CJK@plane{v}\selectfont\CJKsymbol{58}} +\CJKvlet{bx/n/25/105}{m/n/25/105} +\CJKvdef{m/n/25/106}{\def\CJK@plane{v}\selectfont\CJKsymbol{59}} +\CJKvlet{bx/n/25/106}{m/n/25/106} +\CJKvdef{m/n/25/107}{\def\CJK@plane{v}\selectfont\CJKsymbol{60}} +\CJKvlet{bx/n/25/107}{m/n/25/107} +\CJKvdef{m/n/25/109}{\def\CJK@plane{v}\selectfont\CJKsymbol{61}} +\CJKvlet{bx/n/25/109}{m/n/25/109} +\CJKvdef{m/n/25/110}{\def\CJK@plane{v}\selectfont\CJKsymbol{62}} +\CJKvlet{bx/n/25/110}{m/n/25/110} +\CJKvdef{m/n/25/111}{\def\CJK@plane{v}\selectfont\CJKsymbol{63}} +\CJKvlet{bx/n/25/111}{m/n/25/111} +\CJKvdef{m/n/25/112}{\def\CJK@plane{v}\selectfont\CJKsymbol{64}} +\CJKvlet{bx/n/25/112}{m/n/25/112} +\CJKvdef{m/n/25/116}{\def\CJK@plane{v}\selectfont\CJKsymbol{65}} +\CJKvlet{bx/n/25/116}{m/n/25/116} +\CJKvdef{m/n/30/1}{\def\CJK@plane{v}\selectfont\CJKsymbol{66}} +\CJKvlet{bx/n/30/1}{m/n/30/1} +\CJKvdef{m/n/30/2}{\def\CJK@plane{v}\selectfont\CJKsymbol{67}} +\CJKvlet{bx/n/30/2}{m/n/30/2} +\CJKvdef{m/n/30/8}{\def\CJK@plane{v}\selectfont\CJKsymbol{68}} +\CJKvlet{bx/n/30/8}{m/n/30/8} +\CJKvdef{m/n/30/9}{\def\CJK@plane{v}\selectfont\CJKsymbol{69}} +\CJKvlet{bx/n/30/9}{m/n/30/9} +\CJKvdef{m/n/30/10}{\def\CJK@plane{v}\selectfont\CJKsymbol{70}} +\CJKvlet{bx/n/30/10}{m/n/30/10} +\CJKvdef{m/n/30/11}{\def\CJK@plane{v}\selectfont\CJKsymbol{71}} +\CJKvlet{bx/n/30/11}{m/n/30/11} +\CJKvdef{m/n/30/12}{\def\CJK@plane{v}\selectfont\CJKsymbol{72}} +\CJKvlet{bx/n/30/12}{m/n/30/12} +\CJKvdef{m/n/30/13}{\def\CJK@plane{v}\selectfont\CJKsymbol{73}} +\CJKvlet{bx/n/30/13}{m/n/30/13} +\CJKvdef{m/n/30/14}{\def\CJK@plane{v}\selectfont\CJKsymbol{74}} +\CJKvlet{bx/n/30/14}{m/n/30/14} +\CJKvdef{m/n/30/15}{\def\CJK@plane{v}\selectfont\CJKsymbol{75}} +\CJKvlet{bx/n/30/15}{m/n/30/15} +\CJKvdef{m/n/30/16}{\def\CJK@plane{v}\selectfont\CJKsymbol{76}} +\CJKvlet{bx/n/30/16}{m/n/30/16} +\CJKvdef{m/n/30/17}{\def\CJK@plane{v}\selectfont\CJKsymbol{77}} +\CJKvlet{bx/n/30/17}{m/n/30/17} +\CJKvdef{m/n/30/20}{\def\CJK@plane{v}\selectfont\CJKsymbol{78}} +\CJKvlet{bx/n/30/20}{m/n/30/20} +\CJKvdef{m/n/30/21}{\def\CJK@plane{v}\selectfont\CJKsymbol{79}} +\CJKvlet{bx/n/30/21}{m/n/30/21} +\CJKvdef{m/n/fe/79}{\def\CJK@plane{v}\selectfont\CJKsymbol{80}} +\CJKvlet{bx/n/fe/79}{m/n/fe/79} +\CJKvdef{m/n/fe/80}{\def\CJK@plane{v}\selectfont\CJKsymbol{81}} +\CJKvlet{bx/n/fe/80}{m/n/fe/80} +\CJKvdef{m/n/fe/81}{\def\CJK@plane{v}\selectfont\CJKsymbol{82}} +\CJKvlet{bx/n/fe/81}{m/n/fe/81} +\CJKvdef{m/n/fe/82}{\def\CJK@plane{v}\selectfont\CJKsymbol{83}} +\CJKvlet{bx/n/fe/82}{m/n/fe/82} +\CJKvdef{m/n/fe/89}{\def\CJK@plane{v}\selectfont\CJKsymbol{84}} +\CJKvlet{bx/n/fe/89}{m/n/fe/89} +\CJKvdef{m/n/fe/90}{\def\CJK@plane{v}\selectfont\CJKsymbol{85}} +\CJKvlet{bx/n/fe/90}{m/n/fe/90} +\CJKvdef{m/n/fe/91}{\def\CJK@plane{v}\selectfont\CJKsymbol{86}} +\CJKvlet{bx/n/fe/91}{m/n/fe/91} +\CJKvdef{m/n/fe/92}{\def\CJK@plane{v}\selectfont\CJKsymbol{87}} +\CJKvlet{bx/n/fe/92}{m/n/fe/92} +\CJKvdef{m/n/fe/93}{\def\CJK@plane{v}\selectfont\CJKsymbol{88}} +\CJKvlet{bx/n/fe/93}{m/n/fe/93} +\CJKvdef{m/n/fe/94}{\def\CJK@plane{v}\selectfont\CJKsymbol{89}} +\CJKvlet{bx/n/fe/94}{m/n/fe/94} +\CJKvdef{m/n/20/62}{\def\CJK@plane{v}\selectfont\CJKsymbol{90}} +\CJKvlet{bx/n/20/62}{m/n/20/62} + +\gdef\CJK@cmap@bsmiv{ + \expandafter\ifx\csname CJK@CMap@bsmiv\endcsname \relax + \immediate\pdfobj stream { + /CIDInit\space/ProcSet\space findresource\space begin\space + 12\space dict\space begin\space + begincmap\space + /CIDSystemInfo\space <<\space + /Registry\space (TeX)\space + /Ordering\space (bsmiv)\space + /Supplement\space 0\space >>\space def\space + /CMapName\space /TeX-bsmiv-0\space def\space + 1\space begincodespacerange\space + <00>\space <FF>\space + endcodespacerange\space + 91\space beginbfchar\space + <00>\space <00AF>\space + <01>\space <00B7>\space + <02>\space <02CD>\space + <03>\space <FF08>\space + <04>\space <FF09>\space + <05>\space <FF0C>\space + <06>\space <FF0E>\space + <07>\space <FF3B>\space + <08>\space <FF3D>\space + <09>\space <FF3F>\space + <0A>\space <FF5B>\space + <0B>\space <FF5D>\space + <0C>\space <FF5E>\space + <0D>\space <2013>\space + <0E>\space <2014>\space + <0F>\space <2025>\space + <10>\space <2026>\space + <11>\space <2190>\space + <12>\space <2191>\space + <13>\space <2192>\space + <14>\space <2193>\space + <15>\space <2223>\space + <16>\space <2225>\space + <17>\space <2500>\space + <18>\space <2502>\space + <19>\space <250C>\space + <1A>\space <2510>\space + <1B>\space <2514>\space + <1C>\space <2518>\space + <1D>\space <251C>\space + <1E>\space <2524>\space + <1F>\space <252C>\space + <20>\space <2534>\space + <21>\space <2550>\space + <22>\space <2551>\space + <23>\space <2552>\space + <24>\space <2553>\space + <25>\space <2554>\space + <26>\space <2555>\space + <27>\space <2556>\space + <28>\space <2557>\space + <29>\space <2558>\space + <2A>\space <2559>\space + <2B>\space <255A>\space + <2C>\space <255B>\space + <2D>\space <255C>\space + <2E>\space <255D>\space + <2F>\space <255E>\space + <30>\space <255F>\space + <31>\space <2560>\space + <32>\space <2561>\space + <33>\space <2562>\space + <34>\space <2563>\space + <35>\space <2564>\space + <36>\space <2565>\space + <37>\space <2566>\space + <38>\space <2567>\space + <39>\space <2568>\space + <3A>\space <2569>\space + <3B>\space <256A>\space + <3C>\space <256B>\space + <3D>\space <256D>\space + <3E>\space <256E>\space + <3F>\space <256F>\space + <40>\space <2570>\space + <41>\space <2574>\space + <42>\space <3001>\space + <43>\space <3002>\space + <44>\space <3008>\space + <45>\space <3009>\space + <46>\space <300A>\space + <47>\space <300B>\space + <48>\space <300C>\space + <49>\space <300D>\space + <4A>\space <300E>\space + <4B>\space <300F>\space + <4C>\space <3010>\space + <4D>\space <3011>\space + <4E>\space <3014>\space + <4F>\space <3015>\space + <50>\space <FE4F>\space + <51>\space <FE50>\space + <52>\space <FE51>\space + <53>\space <FE52>\space + <54>\space <FE59>\space + <55>\space <FE5A>\space + <56>\space <FE5B>\space + <57>\space <FE5C>\space + <58>\space <FE5D>\space + <59>\space <FE5E>\space + <5A>\space <203E>\space + endbfchar\space + endcmap\space + CMapName\space currentdict\space /CMap\space defineresource\space + pop\space + end\space + end\space} + \expandafter\xdef\csname CJK@CMap@bsmiv\endcsname{ + \the\pdflastobj} + \fi + \pdffontattr\font@name{ + /ToUnicode\space\csname CJK@CMap@bsmiv\endcsname\space 0\space R} +} + +% This font doesn't contain a glyph for U+3007, but it has U+25CB. + +\CJKhdef{m/n/30/7}{\def\CJK@plane{25}\selectfont\CJKsymbol{203}} +\CJKhlet{bx/n/30/7}{m/n/30/7} +\CJKvdef{m/n/30/7}{\def\CJK@plane{25}\selectfont\CJKsymbol{203}} +\CJKvlet{bx/n/30/7}{m/n/30/7} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70gbsn.fd b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70gbsn.fd new file mode 100644 index 0000000000..f13902d0ed --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70gbsn.fd @@ -0,0 +1,21 @@ +% This is the file c70gbsn.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c70gbsn.fd}[\filedate\space\fileversion] + + +% character set: GB +% font encoding: Unicode + +\DeclareFontFamily{C70}{gbsn}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C70}{gbsn}{m}{n}{<-> CJK * gbsnu}{\CJKnormal} +\DeclareFontShape{C70}{gbsn}{bx}{n}{<-> CJKb * gbsnu}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70gbsn.fdx b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70gbsn.fdx new file mode 100644 index 0000000000..57ab05fda2 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70gbsn.fdx @@ -0,0 +1,15 @@ +% This is the file c70gbsn.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c70gbsn.fdx}[\filedate\space\fileversion] + +% This font doesn't contain a glyph for U+3007, but it has U+25CB. + +\CJKhdef{m/n/30/7}{\def\CJK@plane{25}\selectfont\CJKsymbol{203}} +\CJKhlet{bx/n/30/7}{m/n/30/7} +\CJKvdef{m/n/30/7}{\def\CJK@plane{25}\selectfont\CJKsymbol{203}} +\CJKvlet{bx/n/30/7}{m/n/30/7} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70gkai.fd b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70gkai.fd new file mode 100644 index 0000000000..532faa1d75 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70gkai.fd @@ -0,0 +1,21 @@ +% This is the file c70gkai.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c70gkai.fd}[\filedate\space\fileversion] + + +% character set: GB +% font encoding: Unicode + +\DeclareFontFamily{C70}{gkai}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C70}{gkai}{m}{n}{<-> CJK * gkaiu}{\CJKnormal} +\DeclareFontShape{C70}{gkai}{bx}{n}{<-> CJKb * gkaiu}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70gkai.fdx b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70gkai.fdx new file mode 100644 index 0000000000..d0735a97e5 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70gkai.fdx @@ -0,0 +1,15 @@ +% This is the file c70gkai.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c70gkai.fdx}[\filedate\space\fileversion] + +% This font doesn't contain a glyph for U+3007, but it has U+25CB. + +\CJKhdef{m/n/30/7}{\def\CJK@plane{25}\selectfont\CJKsymbol{203}} +\CJKhlet{bx/n/30/7}{m/n/30/7} +\CJKvdef{m/n/30/7}{\def\CJK@plane{25}\selectfont\CJKsymbol{203}} +\CJKvlet{bx/n/30/7}{m/n/30/7} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70mj.fd b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70mj.fd new file mode 100644 index 0000000000..d2f03e670e --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70mj.fd @@ -0,0 +1,51 @@ +% This is the file c70mj.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c70mj.fd}[\filedate\space\fileversion] + + +% character set: KS X 1001 +% font encoding: Unicode + +\DeclareFontFamily{C70}{mj}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C70}{mj}{c}{n}{<-> CJK * uwmjc}{} +\DeclareFontShape{C70}{mj}{c}{sl}{<-> CJK * uwmjco}{} +\DeclareFontShape{C70}{mj}{c}{it}{<-> CJKssub * mj/c/sl}{} + +\DeclareFontShape{C70}{mj}{m}{n}{<-> CJK * uwmj}{} +\DeclareFontShape{C70}{mj}{m}{sl}{<-> CJK * uwmjo}{} +\DeclareFontShape{C70}{mj}{m}{it}{<-> CJKssub * mj/m/sl}{} + +\DeclareFontShape{C70}{mj}{x}{n}{<-> CJK * uwmjx}{} +\DeclareFontShape{C70}{mj}{x}{sl}{<-> CJK * uwmjxo}{} +\DeclareFontShape{C70}{mj}{x}{it}{<-> CJKssub * mj/x/sl}{} + +\DeclareFontShape{C70}{mj}{ux}{n}{<-> CJK * uwmju}{} +\DeclareFontShape{C70}{mj}{ux}{sl}{<-> CJK * uwmjuo}{} +\DeclareFontShape{C70}{mj}{ux}{it}{<-> CJKssub * mj/ux/sl}{} + + +\DeclareFontShape{C70}{mj}{bc}{n}{<-> CJKb * uwmjc}{\CJKbold} +\DeclareFontShape{C70}{mj}{bc}{sl}{<-> CJKb * uwmjco}{\CJKbold} +\DeclareFontShape{C70}{mj}{bc}{it}{<-> CJKssub * mj/bc/sl}{} + +\DeclareFontShape{C70}{mj}{b}{n}{<-> CJKb * uwmj}{\CJKbold} +\DeclareFontShape{C70}{mj}{b}{sl}{<-> CJKb * uwmjo}{\CJKbold} +\DeclareFontShape{C70}{mj}{b}{it}{<-> CJKssub * mj/b/sl}{} + +\DeclareFontShape{C70}{mj}{bx}{n}{<-> CJKb * uwmjx}{\CJKbold} +\DeclareFontShape{C70}{mj}{bx}{sl}{<-> CJKb * uwmjxo}{\CJKbold} +\DeclareFontShape{C70}{mj}{bx}{it}{<-> CJKssub * mj/bx/sl}{} + +\DeclareFontShape{C70}{mj}{bux}{n}{<-> CJKb * uwmju}{\CJKbold} +\DeclareFontShape{C70}{mj}{bux}{sl}{<-> CJKb * uwmjuo}{\CJKbold} +\DeclareFontShape{C70}{mj}{bux}{it}{<-> CJKssub * mj/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70mj.fdx b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70mj.fdx new file mode 100644 index 0000000000..07c7235bec --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70mj.fdx @@ -0,0 +1,15 @@ +% This is the file c70mj.fdx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c70mj.fdx}[\filedate\space\fileversion] + +% This font doesn't contain a glyph for U+3007, but it has U+25CB. + +\CJKhdef{m/n/30/7}{\def\CJK@plane{25}\selectfont\CJKsymbol{203}} +\CJKhlet{bx/n/30/7}{m/n/30/7} +\CJKvdef{m/n/30/7}{\def\CJK@plane{25}\selectfont\CJKsymbol{203}} +\CJKvlet{bx/n/30/7}{m/n/30/7} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70song.fd b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70song.fd new file mode 100644 index 0000000000..db45e169f0 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/c70song.fd @@ -0,0 +1,21 @@ +% This is the file c70song.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c70song.fd}[\filedate\space\fileversion] + + +% character set: Unicode U+0080 - U+FFFD +% font encoding: Unicode + +\DeclareFontFamily{C70}{song}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C70}{song}{m}{n}{<-> CJK * cyberb}{\CJKnormal} +\DeclareFontShape{C70}{song}{bx}{n}{<-> CJKb * cyberb}{\CJKbold} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/ja.cpx b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/ja.cpx new file mode 100644 index 0000000000..0ffd3fb2da --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/ja.cpx @@ -0,0 +1,83 @@ +% This is the file ja.cpx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{ja.cpx}[\filedate\space\fileversion] + + +% Japanese captions +% +% character set: JIS X 0208:1997 (or JIS X 0208-1990) +% encoding: UTF-8 + +\newif\ifheisei +\let\ifheisei=\iffalse +\def\heisei{\let\ifheisei=\iftrue} + +\renewcommand\contentsname{目次} + +\renewcommand\listfigurename{図目次} +% \newcommand\listfigurename{図一覧} + +\renewcommand\listtablename{表目次} +% \newcommand\listtablename{表一覧} + +\CJK@ifundefined\chapter + {\renewcommand\refname{å‚考文献} + } + {\renewcommand\bibname{関連書ç±} +% \renewcommand\bibname{å‚考文献} + } +\renewcommand\indexname{索引} + +\renewcommand\figurename{図} +\renewcommand\tablename{表} + +\newcommand\prepartname{第} +\newcommand\postpartname{部} +\renewcommand\partformat{\prepartname\CJKnumber{\value{part}}\postpartname} + +% \renewcommand{\appendixname}{附録} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{è¦æ—¨}}{} + +\renewcommand\today{{\ifheisei\count0=\year\else\count0=\year + \advance\count0 -1988 å¹³æˆ\,\fi + \ifnum\count0=1 å…ƒ\else\number\count0\fi + \,å¹´\hspace{.5em}\nobreak\number\month + \,月\hspace{.5em}\nobreak\number\day\,æ—¥}} +\CJK@ifundefined\CJKnumber + {\def\CJKnumber #1{\ifcase #1\or + 一\or 二\or 三\or å››\or 五\or + å…\or 七\or å…«\or ä¹\or å\fi}}{} + +\endinput + +%%% Local Variables: +%%% coding: utf-8 +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/ko-Hang.cpx b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/ko-Hang.cpx new file mode 100644 index 0000000000..f83c47a68b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/ko-Hang.cpx @@ -0,0 +1,74 @@ +% This is the file ko-Hang.cpx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{ko-Hang.cpx}[\filedate\space\fileversion] + + +% Hangul captions +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% encoding: UTF-8 + +\renewcommand\contentsname{목차} +\renewcommand\listfigurename{그림~목차} +\renewcommand\listtablename{í‘œ~목차} +\renewcommand\indexname{색ì¸} + +\CJK@ifundefined\chapter + {\renewcommand\refname{ì°¸ê³ ~ì„œì }} + {\renewcommand\bibname{ì°¸ê³ ~문헌}} + +\renewcommand\figurename{그림} +\renewcommand\tablename{í‘œ} + +\newcommand\prepartname{ì œ} +\newcommand\postpartname{부} +\renewcommand\partformat{\prepartname~\thepart~\postpartname} + +% \newcommand\prechaptername{ì œ} +% \newcommand\postchaptername{장} +% \newcommand\presectionname{ì œ} +% \newcommand\postsectionname{ì ˆ} +% \renewcommand\appendixname{부ë¡} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{요약}}{} + +% \renewcommand\ccname{사본} +% \renewcommand\enclname{첨부물}% í˜¹ì€ ë™ë´‰ë¬¼ +% \renewcommand\pagename{페ì´ì§€~} +% \renewcommand\headtoname{받는ì´} +% \renewcommand\seename{참조} + +\renewcommand{\today}{\number\year ë…„~\number\month ì›”~\number\day ì¼} + +\endinput + +%%% Local Variables: +%%% coding: utf-8 +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/ko-Hang2.cpx b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/ko-Hang2.cpx new file mode 100644 index 0000000000..e6f40fdd2b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/ko-Hang2.cpx @@ -0,0 +1,74 @@ +% This is the file ko-Hang2.cpx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{ko-Hang2.cpx}[\filedate\space\fileversion] + + +% Hangul captions set 2 +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% encoding: UTF-8 + +\renewcommand\contentsname{차례} +\renewcommand\listfigurename{그림~차례} +\renewcommand\listtablename{í‘œ~차례} +\renewcommand\indexname{찾아보기} + +\CJK@ifundefined\chapter + {\renewcommand\refname{ì°¸ê³ ~ì„œì }} + {\renewcommand\bibname{ì°¸ê³ ~문헌}} + +\renewcommand\figurename{그림} +\renewcommand\tablename{í‘œ} + +\newcommand\prepartname{ì œ} +\newcommand\postpartname{부} +\renewcommand\partformat{\prepartname~\thepart~\postpartname} + +% \newcommand\prechaptername{ì œ} +% \newcommand\postchaptername{장} +% \newcommand\presectionname{ì œ} +% \newcommand\postsectionname{ì ˆ} +% \renewcommand\appendixname{부ë¡} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{요약}}{} + +% \renewcommand\ccname{사본} +% \renewcommand\enclname{첨부물}% í˜¹ì€ ë™ë´‰ë¬¼ +% \renewcommand\pagename{페ì´ì§€~} +% \renewcommand\headtoname{받는ì´} +% \renewcommand\seename{참조} + +\renewcommand{\today}{\number\year ë…„~\number\month ì›”~\number\day ì¼} + +\endinput + +%%% Local Variables: +%%% coding: utf-8 +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/ko-Hani.cpx b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/ko-Hani.cpx new file mode 100644 index 0000000000..f98d156212 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/ko-Hani.cpx @@ -0,0 +1,74 @@ +% This is the file ko-Hani.cpx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <a7971428@unet.univie.ac.at> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{ko-Hani.cpx}[\filedate\space\fileversion] + + +% Hanja captions +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% encoding: UTF-8 + +\renewcommand\contentsname{目次} +\renewcommand\listfigurename{그림~目次} +\renewcommand\listtablename{表~目次} +\renewcommand\indexname{索引} + +\CJK@ifundefined\chapter + {\renewcommand\refname{åƒè€ƒ~書ç±}} + {\renewcommand\bibname{åƒè€ƒ~æ–‡ç»}} + +\renewcommand\figurename{그림} +\renewcommand\tablename{表} + +\newcommand\prepartname{第} +\newcommand\postpartname{篇} +\renewcommand\partformat{\prepartname~\thepart~\postpartname} + +% \newcommand\prechaptername{第} +% \newcommand\postchaptername{ç« } +% \newcommand\presectionname{第} +% \newcommand\postsectionname{節} +% \newcommand\appendixname{附錄} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{è¦~ç´„}}{} + +% \renewcommand\ccname{寫本} +% \renewcommand\enclname{添附物}% í˜¹ì€ ë™ë´‰ë¬¼ +% \renewcommand\pagename{페ì´ì§€} +% \renewcommand\headtoname{å—信人} +% \renewcommand\seename{åƒç…§} + +\renewcommand{\today}{\number\year å¹´~\number\month 月~\number\day æ—¥} + +\endinput + +%%% Local Variables: +%%% coding: utf-8 +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/zh-Hans.cpx b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/zh-Hans.cpx new file mode 100644 index 0000000000..9ec7bf06c8 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/zh-Hans.cpx @@ -0,0 +1,86 @@ +% This is the file zh-Hans.cpx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{zh-Hans.cpx}[\filedate\space\fileversion] + + +% Chinese captions +% +% character set: GB 2312-80 +% encoding: EUC + +\renewcommand\contentsname{目录} +\renewcommand\listfigurename{æ’图} +\renewcommand\listtablename{è¡¨æ ¼} + +\CJK@ifundefined\chapter + {\renewcommand\refname{å‚考文献}} + {\renewcommand\bibname{å‚考文献}} + +\renewcommand\indexname{索引} + +\newcommand\prefigurename{第} +\newcommand\postfigurename{图} +\renewcommand\figureformat{\prefigurename~\thefigure~\postfigurename} + +\newcommand\pretablename{第} +\newcommand\posttablename{表} +\renewcommand\tableformat{\pretablename~\thetable~\posttablename} + +\newcommand\prepartname{第} +\newcommand\postpartname{部分} +\renewcommand\partformat{\prepartname\CJKnumber{\value{part}}\postpartname} + +% \newcommand\prechaptername{第} +% \newcommand\postchaptername{ç« } +% \newcommand\presectionname{第} +% \newcommand\postsectionname{节} +% \newcommand\preappendixname{第} +% \newcommand\postappendixname{附录} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{摘è¦}}{} + +% \renewcommand\ccname{} % ? +% \renewcommand\enclname{附件} +% \newcommand\prepagename{} % ? +% \newcommand\postpagename{} % ? +% \renewcommand\headtoname{} % ? +% \renewcommand\seename{} % ? + +\renewcommand\today{\number\year å¹´\number\month 月\number\day æ—¥} +\CJK@ifundefined\CJKnumber + {\def\CJKnumber#1{\ifcase #1\or + 一\or 二\or 三\or å››\or 五\or + å…\or 七\or å…«\or ä¹\or å\fi}}{} + +\endinput + +%%% Local Variables: +%%% coding: utf-8 +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/zh-Hant.cpx b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/zh-Hant.cpx new file mode 100644 index 0000000000..84b6f4df8c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/UTF8/zh-Hant.cpx @@ -0,0 +1,86 @@ +% This is the file zh-Hant.cpx of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{zh-Hant.cpx}[\filedate\space\fileversion] + + +% Chinese captions +% +% character set: Big 5 +% encoding: UTF-8 + +\renewcommand\contentsname{ç›®~~錄} +\renewcommand\listfigurename{圖~ç›®~錄} +\renewcommand\listtablename{表~ç›®~錄} + +\CJK@ifundefined\chapter + {\renewcommand\refname{åƒ~考~資~æ–™} + %\renewcommand\refname{åƒ~考~æ–‡~ç»} + } + {\renewcommand\bibname{æ–‡~~ç»} + %\renewcommand\bibname{åƒ~考~書~ç›®} +% \newcommand\prechaptername{第} +% \newcommand\postchaptername{ç« } + } + +\renewcommand\indexname{ç´¢~引} + +\renewcommand\figurename{圖} +\renewcommand\tablename{表} + +\newcommand\prepartname{第} +\newcommand\postpartname{部} +%\newcommand{\postpartname}{部分} +\renewcommand\partformat{\prepartname\CJKnumber{\value{part}}\postpartname} + + +% \newcommand\presectionname{第} +% \newcommand\postsectionname{節} +% \renewcommand\appendixname{附~錄} + +\CJK@ifundefined\mainmatter + {\renewcommand\abstractname{摘~è¦}}{} + +% \renewcommand\ccname{} % ? +% \renewcommand\enclname{附件} +% \newcommand\prepagename{} % ? +% \newcommand\postpagename{} % ? +% \renewcommand\headtoname{} % ? +% \renewcommand\seename{} % ? + +\renewcommand{\today}{\number\year å¹´ \number\month 月 \number\day æ—¥} +\CJK@ifundefined\CJKnumber + {\def\CJKnumber#1{\ifcase #1\or + 一\or 二\or 三\or å››\or 五\or + å…\or 七\or å…«\or ä¹\or å\fi}}{} + +\endinput + +%%% Local Variables: +%%% coding: utf-8 +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/extended.chr b/language/chinese/CJK/cjk-4.8.5/texinput/extended.chr new file mode 100644 index 0000000000..38cd923aa9 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/extended.chr @@ -0,0 +1,219 @@ +% This is the file extended.chr of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{extended.chr}[\filedate\space\fileversion] + + +% define macros for handling extended encodings (GBK, Big5+). + +\gdef\CJK@extendedChr{ + \CJK@global\chardef\CJK@gap "07F\relax + + \CJK@global\def\CJK@char##1##2##3{ + {\ifnum ##3 < \CJK@min + \CJK@err + \else + \ifnum ##3 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##3\relax + \ifnum ##3 > \CJK@gap + \advance\@tempcnta \m@ne + \fi + \advance\@tempcnta ##2\relax + \edef\CJK@plane{##1} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% the same, but the plane crosses the font file boundary. + + \CJK@global\def\CJK@charx##1##2##3##4{ + {\ifnum ##4 < \CJK@min + \CJK@err + \else + \ifnum ##4 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##4\relax + \@tempcntb 256\relax + \ifnum ##4 > \CJK@gap + \advance\@tempcnta \m@ne + \advance\@tempcntb \@ne + \fi + \advance\@tempcnta ##3\relax + \advance\@tempcntb -##3\relax + \chardef\@temp \@tempcntb + \ifnum ##4 < \@temp + \edef\CJK@plane{##1} + \else + \advance\@tempcnta -256\relax + \edef\CJK@plane{##2} + \fi + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% for punctuation. + + \CJK@global\def\CJK@punctchar##1##2##3##4{ + {\ifnum ##4 < \CJK@min + \CJK@err + \else + \ifnum ##4 > \CJK@max + \CJK@err + \else + \CJK@numbToHex{\CJK@gtemp}{##4} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##4\relax + \ifnum ##4 > \CJK@gap + \advance\@tempcnta \m@ne + \fi + \advance\@tempcnta ##3\relax + \edef\CJK@plane{##2} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \fi + \fi}} + + \CJK@global\def\CJK@punctcharx##1##2##3##4##5{ + {\ifnum ##5 < \CJK@min + \CJK@err + \else + \ifnum ##5 > \CJK@max + \CJK@err + \else + \CJK@numbToHex{\CJK@gtemp}{##5} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##5\relax + \@tempcntb 256\relax + \ifnum ##5 > \CJK@gap + \advance\@tempcnta \m@ne + \advance\@tempcntb \@ne + \fi + \advance\@tempcnta ##4\relax + \advance\@tempcntb -##4\relax + \chardef\@temp \@tempcntb + \ifnum ##5 < \@temp + \edef\CJK@plane{##2} + \else + \advance\@tempcnta -256\relax + \edef\CJK@plane{##3} + \fi + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \fi + \fi}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/extended.enc b/language/chinese/CJK/cjk-4.8.5/texinput/extended.enc new file mode 100644 index 0000000000..10d0ce146d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/extended.enc @@ -0,0 +1,289 @@ +% This is the file extended.enc of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{extended.enc}[\filedate\space\fileversion] + + +% extended encoding: +% each plane has 190 characters (GBK, Big5+) (0x40-0x7E, 0x80-0xFE). + +\gdef\CJK@extendedEncoding{ + \CJK@loadChr{extended} + + \CJK@namegdef{^^81}##1{\CJK@disableMakeUppercase + \CJK@char {01}{-64}{##1}} + \CJK@namegdef{^^82}##1{\CJK@disableMakeUppercase + \CJK@charx{01}{02}{126}{##1}} + \CJK@namegdef{^^83}##1{\CJK@disableMakeUppercase + \CJK@charx{02}{03}{ 60}{##1}} + \CJK@namegdef{^^84}##1{\CJK@disableMakeUppercase + \CJK@char {03}{ -6}{##1}} + \CJK@namegdef{^^85}##1{\CJK@disableMakeUppercase + \CJK@charx{03}{04}{184}{##1}} + \CJK@namegdef{^^86}##1{\CJK@disableMakeUppercase + \CJK@charx{04}{05}{118}{##1}} + \CJK@namegdef{^^87}##1{\CJK@disableMakeUppercase + \CJK@charx{05}{06}{ 52}{##1}} + \CJK@namegdef{^^88}##1{\CJK@disableMakeUppercase + \CJK@char {06}{-14}{##1}} + \CJK@namegdef{^^89}##1{\CJK@disableMakeUppercase + \CJK@charx{06}{07}{176}{##1}} + \CJK@namegdef{^^8a}##1{\CJK@disableMakeUppercase + \CJK@charx{07}{08}{110}{##1}} + \CJK@namegdef{^^8b}##1{\CJK@disableMakeUppercase + \CJK@charx{08}{09}{ 44}{##1}} + \CJK@namegdef{^^8c}##1{\CJK@disableMakeUppercase + \CJK@char {09}{-22}{##1}} + \CJK@namegdef{^^8d}##1{\CJK@disableMakeUppercase + \CJK@charx{09}{10}{168}{##1}} + \CJK@namegdef{^^8e}##1{\CJK@disableMakeUppercase + \CJK@charx{10}{11}{102}{##1}} + \CJK@namegdef{^^8f}##1{\CJK@disableMakeUppercase + \CJK@charx{11}{12}{ 36}{##1}} + \CJK@namegdef{^^90}##1{\CJK@disableMakeUppercase + \CJK@char {12}{-30}{##1}} + \CJK@namegdef{^^91}##1{\CJK@disableMakeUppercase + \CJK@charx{12}{13}{160}{##1}} + \CJK@namegdef{^^92}##1{\CJK@disableMakeUppercase + \CJK@charx{13}{14}{ 94}{##1}} + \CJK@namegdef{^^93}##1{\CJK@disableMakeUppercase + \CJK@charx{14}{15}{ 28}{##1}} + \CJK@namegdef{^^94}##1{\CJK@disableMakeUppercase + \CJK@char {15}{-38}{##1}} + \CJK@namegdef{^^95}##1{\CJK@disableMakeUppercase + \CJK@charx{15}{16}{152}{##1}} + \CJK@namegdef{^^96}##1{\CJK@disableMakeUppercase + \CJK@charx{16}{17}{ 86}{##1}} + \CJK@namegdef{^^97}##1{\CJK@disableMakeUppercase + \CJK@charx{17}{18}{ 20}{##1}} + \CJK@namegdef{^^98}##1{\CJK@disableMakeUppercase + \CJK@char {18}{-46}{##1}} + \CJK@namegdef{^^99}##1{\CJK@disableMakeUppercase + \CJK@charx{18}{19}{144}{##1}} + \CJK@namegdef{^^9a}##1{\CJK@disableMakeUppercase + \CJK@charx{19}{20}{ 78}{##1}} + \CJK@namegdef{^^9b}##1{\CJK@disableMakeUppercase + \CJK@charx{20}{21}{ 12}{##1}} + \CJK@namegdef{^^9c}##1{\CJK@disableMakeUppercase + \CJK@char {21}{-54}{##1}} + \CJK@namegdef{^^9d}##1{\CJK@disableMakeUppercase + \CJK@charx{21}{22}{136}{##1}} + \CJK@namegdef{^^9e}##1{\CJK@disableMakeUppercase + \CJK@charx{22}{23}{ 70}{##1}} + \CJK@namegdef{^^9f}##1{\CJK@disableMakeUppercase + \CJK@charx{23}{24}{ 4}{##1}} + \CJK@namegdef{^^a0}##1{\CJK@disableMakeUppercase + \CJK@char {24}{-62}{##1}} + \CJK@namegdef{^^a1}##1{\CJK@disableMakeUppercase + \CJK@punctcharx{A1}{24}{25}{128}{##1}} + \CJK@namegdef{^^a2}##1{\CJK@disableMakeUppercase + \CJK@punctcharx{A2}{25}{26}{ 62}{##1}} + \CJK@namegdef{^^a3}##1{\CJK@disableMakeUppercase + \CJK@punctchar {A3}{26}{ -4}{##1}} + \CJK@namegdef{^^a4}##1{\CJK@disableMakeUppercase + \CJK@punctcharx{A4}{26}{27}{186}{##1}} + \CJK@namegdef{^^a5}##1{\CJK@disableMakeUppercase + \CJK@punctcharx{A5}{27}{28}{120}{##1}} + \CJK@namegdef{^^a6}##1{\CJK@disableMakeUppercase + \CJK@charx{28}{29}{ 54}{##1}} + \CJK@namegdef{^^a7}##1{\CJK@disableMakeUppercase + \CJK@char {29}{-12}{##1}} + \CJK@namegdef{^^a8}##1{\CJK@disableMakeUppercase + \CJK@charx{29}{30}{178}{##1}} + \CJK@namegdef{^^a9}##1{\CJK@disableMakeUppercase + \CJK@charx{30}{31}{112}{##1}} + \CJK@namegdef{^^aa}##1{\CJK@disableMakeUppercase + \CJK@charx{31}{32}{ 46}{##1}} + \CJK@namegdef{^^ab}##1{\CJK@disableMakeUppercase + \CJK@char {32}{-20}{##1}} + \CJK@namegdef{^^ac}##1{\CJK@disableMakeUppercase + \CJK@charx{32}{33}{170}{##1}} + \CJK@namegdef{^^ad}##1{\CJK@disableMakeUppercase + \CJK@charx{33}{34}{104}{##1}} + \CJK@namegdef{^^ae}##1{\CJK@disableMakeUppercase + \CJK@charx{34}{35}{ 38}{##1}} + \CJK@namegdef{^^af}##1{\CJK@disableMakeUppercase + \CJK@char {35}{-28}{##1}} + \CJK@namegdef{^^b0}##1{\CJK@disableMakeUppercase + \CJK@charx{35}{36}{162}{##1}} + \CJK@namegdef{^^b1}##1{\CJK@disableMakeUppercase + \CJK@charx{36}{37}{ 96}{##1}} + \CJK@namegdef{^^b2}##1{\CJK@disableMakeUppercase + \CJK@charx{37}{38}{ 30}{##1}} + \CJK@namegdef{^^b3}##1{\CJK@disableMakeUppercase + \CJK@char {38}{-36}{##1}} + \CJK@namegdef{^^b4}##1{\CJK@disableMakeUppercase + \CJK@charx{38}{39}{154}{##1}} + \CJK@namegdef{^^b5}##1{\CJK@disableMakeUppercase + \CJK@charx{39}{40}{ 88}{##1}} + \CJK@namegdef{^^b6}##1{\CJK@disableMakeUppercase + \CJK@charx{40}{41}{ 22}{##1}} + \CJK@namegdef{^^b7}##1{\CJK@disableMakeUppercase + \CJK@char {41}{-44}{##1}} + \CJK@namegdef{^^b8}##1{\CJK@disableMakeUppercase + \CJK@charx{41}{42}{146}{##1}} + \CJK@namegdef{^^b9}##1{\CJK@disableMakeUppercase + \CJK@charx{42}{43}{ 80}{##1}} + \CJK@namegdef{^^ba}##1{\CJK@disableMakeUppercase + \CJK@charx{43}{44}{ 14}{##1}} + \CJK@namegdef{^^bb}##1{\CJK@disableMakeUppercase + \CJK@char {44}{-52}{##1}} + \CJK@namegdef{^^bc}##1{\CJK@disableMakeUppercase + \CJK@charx{44}{45}{138}{##1}} + \CJK@namegdef{^^bd}##1{\CJK@disableMakeUppercase + \CJK@charx{45}{46}{ 72}{##1}} + \CJK@namegdef{^^be}##1{\CJK@disableMakeUppercase + \CJK@charx{46}{47}{ 6}{##1}} + \CJK@namegdef{^^bf}##1{\CJK@disableMakeUppercase + \CJK@char {47}{-60}{##1}} + \CJK@namegdef{^^c0}##1{\CJK@disableMakeUppercase + \CJK@charx{47}{48}{130}{##1}} + \CJK@namegdef{^^c1}##1{\CJK@disableMakeUppercase + \CJK@charx{48}{49}{ 64}{##1}} + \CJK@namegdef{^^c2}##1{\CJK@disableMakeUppercase + \CJK@char {49}{ -2}{##1}} + \CJK@namegdef{^^c3}##1{\CJK@disableMakeUppercase + \CJK@charx{49}{50}{188}{##1}} + \CJK@namegdef{^^c4}##1{\CJK@disableMakeUppercase + \CJK@charx{50}{51}{122}{##1}} + \CJK@namegdef{^^c5}##1{\CJK@disableMakeUppercase + \CJK@charx{51}{52}{ 56}{##1}} + \CJK@namegdef{^^c6}##1{\CJK@disableMakeUppercase + \CJK@char {52}{-10}{##1}} + \CJK@namegdef{^^c7}##1{\CJK@disableMakeUppercase + \CJK@charx{52}{53}{180}{##1}} + \CJK@namegdef{^^c8}##1{\CJK@disableMakeUppercase + \CJK@charx{53}{54}{114}{##1}} + \CJK@namegdef{^^c9}##1{\CJK@disableMakeUppercase + \CJK@charx{54}{55}{ 48}{##1}} + \CJK@namegdef{^^ca}##1{\CJK@disableMakeUppercase + \CJK@char {55}{-18}{##1}} + \CJK@namegdef{^^cb}##1{\CJK@disableMakeUppercase + \CJK@charx{55}{56}{172}{##1}} + \CJK@namegdef{^^cc}##1{\CJK@disableMakeUppercase + \CJK@charx{56}{57}{106}{##1}} + \CJK@namegdef{^^cd}##1{\CJK@disableMakeUppercase + \CJK@charx{57}{58}{ 40}{##1}} + \CJK@namegdef{^^ce}##1{\CJK@disableMakeUppercase + \CJK@char {58}{-26}{##1}} + \CJK@namegdef{^^cf}##1{\CJK@disableMakeUppercase + \CJK@charx{58}{59}{164}{##1}} + \CJK@namegdef{^^d0}##1{\CJK@disableMakeUppercase + \CJK@charx{59}{60}{ 98}{##1}} + \CJK@namegdef{^^d1}##1{\CJK@disableMakeUppercase + \CJK@charx{60}{61}{ 32}{##1}} + \CJK@namegdef{^^d2}##1{\CJK@disableMakeUppercase + \CJK@char {61}{-34}{##1}} + \CJK@namegdef{^^d3}##1{\CJK@disableMakeUppercase + \CJK@charx{61}{62}{156}{##1}} + \CJK@namegdef{^^d4}##1{\CJK@disableMakeUppercase + \CJK@charx{62}{63}{ 90}{##1}} + \CJK@namegdef{^^d5}##1{\CJK@disableMakeUppercase + \CJK@charx{63}{64}{ 24}{##1}} + \CJK@namegdef{^^d6}##1{\CJK@disableMakeUppercase + \CJK@char {64}{-42}{##1}} + \CJK@namegdef{^^d7}##1{\CJK@disableMakeUppercase + \CJK@charx{64}{65}{148}{##1}} + \CJK@namegdef{^^d8}##1{\CJK@disableMakeUppercase + \CJK@charx{65}{66}{ 82}{##1}} + \CJK@namegdef{^^d9}##1{\CJK@disableMakeUppercase + \CJK@charx{66}{67}{ 16}{##1}} + \CJK@namegdef{^^da}##1{\CJK@disableMakeUppercase + \CJK@char {67}{-50}{##1}} + \CJK@namegdef{^^db}##1{\CJK@disableMakeUppercase + \CJK@charx{67}{68}{140}{##1}} + \CJK@namegdef{^^dc}##1{\CJK@disableMakeUppercase + \CJK@charx{68}{69}{ 74}{##1}} + \CJK@namegdef{^^dd}##1{\CJK@disableMakeUppercase + \CJK@charx{69}{70}{ 8}{##1}} + \CJK@namegdef{^^de}##1{\CJK@disableMakeUppercase + \CJK@char {70}{-58}{##1}} + \CJK@namegdef{^^df}##1{\CJK@disableMakeUppercase + \CJK@charx{70}{71}{132}{##1}} + \CJK@namegdef{^^e0}##1{\CJK@disableMakeUppercase + \CJK@charx{71}{72}{ 66}{##1}} + \CJK@namegdef{^^e1}##1{\CJK@disableMakeUppercase + \CJK@char {72}{ 0}{##1}} + \CJK@namegdef{^^e2}##1{\CJK@disableMakeUppercase + \CJK@charx{72}{73}{190}{##1}} + \CJK@namegdef{^^e3}##1{\CJK@disableMakeUppercase + \CJK@charx{73}{74}{124}{##1}} + \CJK@namegdef{^^e4}##1{\CJK@disableMakeUppercase + \CJK@charx{74}{75}{ 58}{##1}} + \CJK@namegdef{^^e5}##1{\CJK@disableMakeUppercase + \CJK@char {75}{ -8}{##1}} + \CJK@namegdef{^^e6}##1{\CJK@disableMakeUppercase + \CJK@charx{75}{76}{182}{##1}} + \CJK@namegdef{^^e7}##1{\CJK@disableMakeUppercase + \CJK@charx{76}{77}{116}{##1}} + \CJK@namegdef{^^e8}##1{\CJK@disableMakeUppercase + \CJK@charx{77}{78}{ 50}{##1}} + \CJK@namegdef{^^e9}##1{\CJK@disableMakeUppercase + \CJK@char {78}{-16}{##1}} + \CJK@namegdef{^^ea}##1{\CJK@disableMakeUppercase + \CJK@charx{78}{79}{174}{##1}} + \CJK@namegdef{^^eb}##1{\CJK@disableMakeUppercase + \CJK@charx{79}{80}{108}{##1}} + \CJK@namegdef{^^ec}##1{\CJK@disableMakeUppercase + \CJK@charx{80}{81}{ 42}{##1}} + \CJK@namegdef{^^ed}##1{\CJK@disableMakeUppercase + \CJK@char {81}{-24}{##1}} + \CJK@namegdef{^^ee}##1{\CJK@disableMakeUppercase + \CJK@charx{81}{82}{166}{##1}} + \CJK@namegdef{^^ef}##1{\CJK@disableMakeUppercase + \CJK@charx{82}{83}{100}{##1}} + \CJK@namegdef{^^f0}##1{\CJK@disableMakeUppercase + \CJK@charx{83}{84}{ 34}{##1}} + \CJK@namegdef{^^f1}##1{\CJK@disableMakeUppercase + \CJK@char {84}{-32}{##1}} + \CJK@namegdef{^^f2}##1{\CJK@disableMakeUppercase + \CJK@charx{84}{85}{158}{##1}} + \CJK@namegdef{^^f3}##1{\CJK@disableMakeUppercase + \CJK@charx{85}{86}{ 92}{##1}} + \CJK@namegdef{^^f4}##1{\CJK@disableMakeUppercase + \CJK@charx{86}{87}{ 26}{##1}} + \CJK@namegdef{^^f5}##1{\CJK@disableMakeUppercase + \CJK@char {87}{-40}{##1}} + \CJK@namegdef{^^f6}##1{\CJK@disableMakeUppercase + \CJK@charx{87}{88}{150}{##1}} + \CJK@namegdef{^^f7}##1{\CJK@disableMakeUppercase + \CJK@charx{88}{89}{ 84}{##1}} + \CJK@namegdef{^^f8}##1{\CJK@disableMakeUppercase + \CJK@charx{89}{90}{ 18}{##1}} + \CJK@namegdef{^^f9}##1{\CJK@disableMakeUppercase + \CJK@char {90}{-48}{##1}} + \CJK@namegdef{^^fa}##1{\CJK@disableMakeUppercase + \CJK@charx{90}{91}{142}{##1}} + \CJK@namegdef{^^fb}##1{\CJK@disableMakeUppercase + \CJK@charx{91}{92}{ 76}{##1}} + \CJK@namegdef{^^fc}##1{\CJK@disableMakeUppercase + \CJK@charx{92}{93}{ 10}{##1}} + \CJK@namegdef{^^fd}##1{\CJK@disableMakeUppercase + \CJK@char {93}{-56}{##1}} + \CJK@namegdef{^^fe}##1{\CJK@disableMakeUppercase + \CJK@charx{93}{94}{134}{##1}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/mule/MULEenc.sty b/language/chinese/CJK/cjk-4.8.5/texinput/mule/MULEenc.sty new file mode 100644 index 0000000000..d9e608ae02 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/mule/MULEenc.sty @@ -0,0 +1,501 @@ +% This is the file MULEenc.sty of the CJK package +% providing an interface to `cjk-enc.el' (a special Emacs mode) +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\makeatletter +\endlinechar \m@ne + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesPackage{MULEenc}[\filedate\space\fileversion] +\NeedsTeXFormat{LaTeX2e}[1998/06/01] + + +% to allow Latin encodings in verbatim environments we activate the +% character ^^7f and define it as a multiplex character which executes +% its first argument; it will also be used as a delimiter. + +\catcode "7F \active + +\def^^7f{ + \ifx\protect \@typeset@protect + \expandafter\mule@arg + \else + \noexpand ^^7f + \fi} + +\def\mule@arg#1^^7f#2^^7f{ + \mule@@arg #2^^7f#1^^7f#2^^7f} + +\def\mule@@arg#1^^7f{ + \mule@ifbslash #1^^7f + \expandafter\mule@@@arg + \else + \expandafter\mule@exec + \fi} + +\def\mule@@@arg#1^^7f#2^^7f{ + \csname mule@\string #1\endcsname{#2}} + + +% the pseudo-if \mule@ifbslash tests whether its argument contains a +% backslash with a character category code (this happens in verbatim +% environments). We need to change the catcode of `\' locally to +% achieve that. +% +% \mule@exec then swallows this backslash so we can call \csname (twice). +% +% All these weird constructions assure that we do not lose kerning between +% characters---only macro expansion is allowed! + +\let\mule@@@ \@empty + +{\catcode`\|=\z@ + \catcode`\\=12\relax + |gdef|mule@ifbslash#1^^7f{ + |mule@@ifbslash #1\^^7f} + |gdef|mule@@ifbslash#1\#2^^7f{ + |expandafter|expandafter|expandafter|ifx + |expandafter|csname |string #2mule@@@|endcsname |@empty} + |gdef|mule@exec#1^^7f\#2^^7f{ + |expandafter|csname + mule@#1|expandafter |endcsname |csname #2|endcsname} +} + + +% here come the definitions for the macros cjk-enc.el emits. + +% first some \let's to avoid problems in tabbing environments. + +\AtBeginDocument{ + \let\mule@acute \' + \let\mule@grave \` + \let\mule@macron \= + \let\mule@hacek \v} + +% and now the missing definitions for cjk-enc.el to represent Latin +% encodings. + +% these definitions may be overridden with \ProvideTextCommandDefault +% commands. + +\def\textonequarter{\ensuremath{\frac14}} +\def\textonehalf{\ensuremath{\frac12}} +\def\textthreequarters{\ensuremath{\frac34}} + +% LaTeX defines the following macros as \math... instead of \text..., +% but we want that all commands work in text mode. + +\def\textonesuperior{\ensuremath{{^1}}} +\def\texttwosuperior{\ensuremath{{^2}}} +\def\textthreesuperior{\ensuremath{{^3}}} + +% the next macros are text versions of the corresponding math macros. + +\def\textlnot{\ensuremath{\lnot}} +\def\textpm{\ensuremath{\pm}} +\def\textmu{\ensuremath{\mu}} +\def\texttimes{\ensuremath{\times}} +\def\textdiv{\ensuremath{\div}} + +% this macro is not in the LaTeX 2e base package + +\def\textcommercialat{\char64} + +% the following macro is not defined in standard LaTeX2e. +% +% JIS X 0201: 0x7E \textoverscore (U+203E) + + +% to make the multiplex macro work with \uppercase and \lowercase too, +% numbers are used as parameters in the ^^7f macro. + +\def\mule@def#1{\expandafter\def\csname mule@\string #1\endcsname} + +% accents + +\mule@def{8}{\"} +\mule@def{15}{\mule@macron} +\mule@def{20}{\mule@acute} +\mule@def{24}{\c} +\mule@def{32}{\mule@grave} +\mule@def{33}{\^} +\mule@def{34}{\~} +\mule@def{48}{\k} +\mule@def{49}{\u} +\mule@def{51}{\mule@hacek} +\mule@def{52}{\.} +\mule@def{53}{\r} +\mule@def{55}{\H} + +% Vietnamese hook (\h; only defined in T5 encoding) and dot below accent + +\mule@def{71}{\d} +\mule@def{73}{\h} + +% symbols + +\mule@def{1}{\textexclamdown} +\mule@def{2}{\textcent} +\mule@def{3}{\textsterling} +\mule@def{4}{\textcurrency} +\mule@def{5}{\textyen} +\mule@def{6}{\textbrokenbar} +\mule@def{7}{\S} +\mule@def{9}{\copyright} +\mule@def{10}{\textordfeminine} +\mule@def{11}{\guillemotleft} +\mule@def{12}{\textlnot} +\mule@def{14}{\textregistered} +\mule@def{16}{\textdegree} +\mule@def{17}{\textpm} +\mule@def{18}{\texttwosuperior} +\mule@def{19}{\textthreesuperior} +\mule@def{21}{\textmu} +\mule@def{22}{\P} +\mule@def{23}{\textperiodcentered} +\mule@def{25}{\textonesuperior} +\mule@def{26}{\textordmasculine} +\mule@def{27}{\guillemotright} +\mule@def{28}{\textonequarter} +\mule@def{29}{\textonehalf} +\mule@def{30}{\textthreequarters} +\mule@def{31}{\textquestiondown} +\mule@def{36}{\textcommercialat} +\mule@def{37}{\textquotedbl} +\mule@def{38}{\texttimes} +\mule@def{39}{\textdollar} +\mule@def{40}{\textquoteright} +\mule@def{41}{\textless} +\mule@def{42}{\textgreater} +\mule@def{43}{\textasciicircum} +\mule@def{44}{\textunderscore} +\mule@def{45}{\textdiv} +\mule@def{46}{\textquoteleft} +\mule@def{47}{\textbraceleft} +\mule@def{50}{\textbar} +\mule@def{54}{\textbraceright} +\mule@def{56}{\textoverscore} +\mule@def{99}{\nobreakspace} + +\mule@def{35}{\textnumero} % Cyrillic Number Sign + +% letters + +\let\TEXTMALTESEH \textmalteseH +\def\I{I} % uppercase form of \i + +\let\TEXTTSTROKE \textTstroke +\mule@def{59}{\textkra} + +% commands + +\mule@def{0}{\@firstofone} % for commands as arguments which exist + % in both uppercase and lowercase forms + % like \AA and \aa +\mule@def{64}{\CJKspace\@gobble} +\mule@def{65}{\CJKnospace\@gobble} +\mule@def{66}{\CJKenc{JIS}\@gobble} +\mule@def{67}{\CJKenc{GB}\@gobble} +\mule@def{68}{\CJKenc{Bg5}\@gobble} +\mule@def{69}{\CJKenc{KS}\@gobble} +\mule@def{70}{\CJKenc{SJIS}\@gobble} + +% in previous versions we have used ^^a0 for calling \CJKchar, but to +% support GBK and Big 5+ encodings which both need this slot we use the +% ^^7f interface also. + +\mule@def{72}{\mule@@@@arg} + +\def\mule@@@@arg#1^^7f#2^^7f#3^^7f{ + \uppercase{\CJKchar[#1]{#2}{#3}}} + + +% Thai support. We need the many \bgroup and \egroup commands to make it +% work with ulem.sty. + +\mule@def{57}{\bgroup\fontencoding{C90}\selectfont + \bgroup\bgroup\@gobble} % begin Thai +\mule@def{58}{\egroup + \egroup\egroup\@gobble} % end Thai +\mule@def{60}{\mule@char} % Thai diacritic +\mule@def{61}{\Thaibreak\@gobble} % Thai word break +\mule@def{62}{\nobreak\Thaiglue\nobreak\mule@char} % Thai base character +\mule@def{63}{\mule@ignorespaces} % Thai EOL + +\def\mule@char#1{\char #1 } +\def\mule@ignorespaces#1{\ignorespaces} + +\newcommand{\Thaiglue}{\hskip \z@ \@plus .03\baselineskip} +\newcommand{\Thaibreak}{\hskip \z@} + +\newcommand{\Thaispace}{\mule@def{63}{}} +\newcommand{\Thainospace}{\mule@def{63}{\mule@ignorespaces}} + + +% preprocessed mode now uses the ^^7f interface for CJK characters also +% to make it coexist with normal mode. +% +% the \@gobble macro is used to swallow the first element in \CJK@<number>; +% this is either \CJK@disableMakeUppercase or \relax if not needed. + +\def\mule@@def#1{ + \expandafter\def\csname mule@\string #1\endcsname##1{ + \expandafter\expandafter\expandafter\@gobble + \csname CJK@\number `#1\endcsname{##1} + \CJK@ignorespaces}} + +\mule@@def{^^81} +\mule@@def{^^82} +\mule@@def{^^83} +\mule@@def{^^84} +\mule@@def{^^85} +\mule@@def{^^86} +\mule@@def{^^87} +\mule@@def{^^88} +\mule@@def{^^89} +\mule@@def{^^8a} +\mule@@def{^^8b} +\mule@@def{^^8c} +\mule@@def{^^8d} +\mule@@def{^^8e} +\mule@@def{^^8f} +\mule@@def{^^90} +\mule@@def{^^91} +\mule@@def{^^92} +\mule@@def{^^93} +\mule@@def{^^94} +\mule@@def{^^95} +\mule@@def{^^96} +\mule@@def{^^97} +\mule@@def{^^98} +\mule@@def{^^99} +\mule@@def{^^9a} +\mule@@def{^^9b} +\mule@@def{^^9c} +\mule@@def{^^9d} +\mule@@def{^^9e} +\mule@@def{^^9f} +\mule@@def{^^a0} +\mule@@def{^^a1} +\mule@@def{^^a2} +\mule@@def{^^a3} +\mule@@def{^^a4} +\mule@@def{^^a5} +\mule@@def{^^a6} +\mule@@def{^^a7} +\mule@@def{^^a8} +\mule@@def{^^a9} +\mule@@def{^^aa} +\mule@@def{^^ab} +\mule@@def{^^ac} +\mule@@def{^^ad} +\mule@@def{^^ae} +\mule@@def{^^af} +\mule@@def{^^b0} +\mule@@def{^^b1} +\mule@@def{^^b2} +\mule@@def{^^b3} +\mule@@def{^^b4} +\mule@@def{^^b5} +\mule@@def{^^b6} +\mule@@def{^^b7} +\mule@@def{^^b8} +\mule@@def{^^b9} +\mule@@def{^^ba} +\mule@@def{^^bb} +\mule@@def{^^bc} +\mule@@def{^^bd} +\mule@@def{^^be} +\mule@@def{^^bf} +\mule@@def{^^c0} +\mule@@def{^^c1} +\mule@@def{^^c2} +\mule@@def{^^c3} +\mule@@def{^^c4} +\mule@@def{^^c5} +\mule@@def{^^c6} +\mule@@def{^^c7} +\mule@@def{^^c8} +\mule@@def{^^c9} +\mule@@def{^^ca} +\mule@@def{^^cb} +\mule@@def{^^cc} +\mule@@def{^^cd} +\mule@@def{^^ce} +\mule@@def{^^cf} +\mule@@def{^^d0} +\mule@@def{^^d1} +\mule@@def{^^d2} +\mule@@def{^^d3} +\mule@@def{^^d4} +\mule@@def{^^d5} +\mule@@def{^^d6} +\mule@@def{^^d7} +\mule@@def{^^d8} +\mule@@def{^^d9} +\mule@@def{^^da} +\mule@@def{^^db} +\mule@@def{^^dc} +\mule@@def{^^dd} +\mule@@def{^^de} +\mule@@def{^^df} +\mule@@def{^^e0} +\mule@@def{^^e1} +\mule@@def{^^e2} +\mule@@def{^^e3} +\mule@@def{^^e4} +\mule@@def{^^e5} +\mule@@def{^^e6} +\mule@@def{^^e7} +\mule@@def{^^e8} +\mule@@def{^^e9} +\mule@@def{^^ea} +\mule@@def{^^eb} +\mule@@def{^^ec} +\mule@@def{^^ed} +\mule@@def{^^ee} +\mule@@def{^^ef} +\mule@@def{^^f0} +\mule@@def{^^f1} +\mule@@def{^^f2} +\mule@@def{^^f3} +\mule@@def{^^f4} +\mule@@def{^^f5} +\mule@@def{^^f6} +\mule@@def{^^f7} +\mule@@def{^^f8} +\mule@@def{^^f9} +\mule@@def{^^fa} +\mule@@def{^^fb} +\mule@@def{^^fc} +\mule@@def{^^fd} +\mule@@def{^^fe} + + +% if the `verbatim' package is loaded it is possible to improve the output +% automatically, namely, to avoid breaking of overfull lines in a +% verbatim environment. The following command will install a hook to +% suppress insertion of glue between Thai glyphs. CJK.sty will extend +% it for CJK glyphs. +% +\def\mule@verbatim{ + \addto@hook{\every@verbatim}{ + \renewcommand{\Thaiglue}{} + \mule@def{61}{}}} +\ifx\CJK@verbatim \@undefined + \def\CJK@verbatim{} +\fi + +\def\CJKverbatim{ + \mule@verbatim + \CJK@verbatim} + + +% here comes our special include command which will load <file>.cjk +% instead of <file>.tex + +\def\CJKinclude#1{ + \relax + + \ifnum\@auxout = \@partaux + \@latex@error{\string\CJKinclude\space cannot be nested} + \@eha + \else + \CJK@include#1 % + \fi +} + +\def\CJK@include#1 { + \clearpage + + \if@filesw + \immediate\write\@mainaux{\string\@input{#1.aux}} + \fi + + \@tempswatrue + + \if@partsw + \@tempswafalse + \edef\reserved@b{#1} + \@for\reserved@a:=\@partlist\do + {\ifx\reserved@a \reserved@b + \@tempswatrue + \fi + } + \fi + + \if@tempswa + \let\@auxout\@partaux + \if@filesw + \immediate\openout\@partaux #1.aux + \immediate\write\@partaux{\relax} + \fi + \@input@{#1.cjk} + \clearpage + \@writeckpt{#1} + \if@filesw + \immediate\closeout\@partaux + \fi + \else + \deadcycles\z@ + \@nameuse{cp@#1} + \fi + + \let\@auxout\@mainaux +} + + +% the same for the bibliography + +\def\CJKbibliography#1{ + \if@filesw + \immediate\write\@auxout{\string\bibdata{#1-cjk}}% + \fi + \@input@{\jobname.bbl} +} + + +% here our special input command -- cjk-enc.el will scan files included with +% \CJKinput, but not with \input. +% +% We only want the syntax form of \input with braces around the parameter. +% If no file name extension is given, `cjk' is used. + +\def\CJKinput#1{ + \filename@parse{#1} + \ifx\filename@ext \relax + \def\filename@ext{cjk} + \fi + \InputIfFileExists{\filename@area\filename@base.\filename@ext} + {} + {\edef\reserved@a{ + \noexpand\@missingfileerror + {\filename@area\filename@base} + {\filename@ext}} + \reserved@a}} + + +\endlinechar `\^^M +\makeatother +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/pinyin.sty b/language/chinese/CJK/cjk-4.8.5/texinput/pinyin.sty new file mode 100644 index 0000000000..b9b1553ee2 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/pinyin.sty @@ -0,0 +1,1234 @@ +% This is the file pinyin.sty of the CJK package +% to input Chinese in pinyin transcription +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) +% +% This style file works with plain TeX also. + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} + +\catcode`@=11 +\endlinechar \m@ne + +% Older versions of the PostScript virtual files don't contain a macron +% accent at all (e.g. Palatino). Under LaTeX, you can activate the +% CM macron version with the package option `useCMmacron'. + +\newif\ifpy@useCMmacron@ +\py@useCMmacron@false + +\ifx\NeedsTeXFormat \@undefined + \message{Package: pinyin \filedate\space\fileversion} +\else + \ProvidesPackage{pinyin}[\filedate\space\fileversion] + + \DeclareOption{useCMmacron}{\py@useCMmacron@true} + \ProcessOptions +\fi + + +% Similar to the CJK and ruby packages we need a special kern to indicate +% hyphenation between pinyin syllables. Values 1sp-3sp are already used +% by those packages. + +\edef\py@sp{\kern -4sp\kern 4sp} + + +% We must preserve various TeX macros because their names overlap with +% pinyin syllables. The only exception is the internal command \long which +% can't be renamed because almost all other packages would fail. +% +% Note that \ding is not a basic LaTeX macro but defined in pifont.sty, part +% of the psnfss package. +% +% All other pinyin syllables will be defined below. + +\let\PYa=\a +\let\PYchi=\chi +\let\PYcong=\cong +\let\PYding=\ding +\let\PYge=\ge +\let\PYhang=\hang +\let\PYle=\le +%\let\PYlong=\long -> we use \Long and \LONG instead +\let\PYmin=\min +\let\PYmu=\mu +\let\PYne=\ne +\let\PYni=\ni +\let\PYnu=\nu +\let\PYo=\o +\let\PYO=\O +\let\PYpi=\pi +\let\PYPi=\Pi +\let\PYRe=\Re +\let\PYtan=\tan +\let\PYxi=\xi +\let\PYXi=\Xi + +\def\PYactivate{ + \let\a=\py@@a + \let\chi=\py@chi + \let\cong=\py@cong + \let\ding=\py@ding + \let\ge=\py@ge + \let\hang=\py@hang + \let\le=\py@le + \let\min=\py@min + \let\mu=\py@mu + \let\ne=\py@ne + \let\ni=\py@ni + \let\nu=\py@nu + \let\o=\py@@o + \let\O=\py@@O + \let\pi=\py@pi + \let\Pi=\py@Pi + \let\Re=\py@Re + \let\tan=\py@tan + \let\xi=\py@xi + \let\Xi=\py@Xi} + +\def\PYdeactivate{ + \let\a=\PYa + \let\chi=\PYchi + \let\cong=\PYcong + \let\ding=\PYding + \let\ge=\PYge + \let\hang=\PYhang + \let\le=\PYle + \let\min=\PYmin + \let\mu=\PYmu + \let\ne=\PYne + \let\ni=\PYni + \let\nu=\PYnu + \let\o=\PYo + \let\O=\PYO + \let\pi=\PYpi + \let\Pi=\PYPi + \let\Re=\PYRe + \let\tan=\PYtan + \let\xi=\PYxi + \let\Xi=\PYXi} + + +% We use our own names for the accent macros so they will also work in +% tabbing environments. + +\let\py@acute \' +\let\py@hacek \v +\let\py@grave \` + + +% Macrons of the EC fonts are far too high for the first tone, and most +% T1 encoded fonts follow this for compatibility reasons. However, +% T5 encoded fonts don't exhibit this behaviour. + +\def\py@macron#1#2{ + \edef\py@mcorr{0} + \edef\py@temp{T1} + \ifx\f@encoding \py@temp + \chardef\py@mcr 9\relax% T1 fonts + \else + \edef\py@temp{T5} + \ifx\f@encoding \py@temp + \chardef\py@mcr 9\relax% T5 fonts + \edef\py@mcorr{-.3} + \else + \chardef\py@mcr 22\relax% OT1 fonts + \fi + \fi + + {\leavevmode + \dimen@ii 1ex + \ifpy@useCMmacron@ + \edef\py@temp{\f@family} + \fontfamily{cmr} + \selectfont + \fi + \setbox\z@ \hbox{\char\py@mcr} + \dimen@ -#2ex + \advance\dimen@ \py@mcorr ex + \advance\dimen@ \ht\z@ + \ifdim 1ex < \dimen@ + \fontdimen5\font \dimen@ + \fi + \accent\py@mcr + \ifpy@useCMmacron@ + \fontfamily\py@temp + \selectfont + \fi + \fontdimen5\font \dimen@ii + #1}} + +% Here a replacement version for bookmarks in PDFs. + +\def\py@hr@macron#1#2{ + \=#1 +} + + +% The following command outputs the kern between two letters. + +\def\py@kern#1#2{ + {\setbox\z@ \hbox{#1#2} + \dimen@ \wd\z@ + \setbox\z@ \hbox{#1{}#2} + \advance\dimen@ -\wd\z@ + \kern\dimen@}} + + +% To make \MakeUppercase and \MakeLowercase work, we use a generic macro +% which constructs the necessary pinyin macros by using the first +% argument. + +\def\py@#1{ + \csname py@#1\endcsname +} + +% Here are the macros to produce various accents over the vocals. + +\def\py@@#1#2#3#4{ + \py@kern{#2}#1 + \ifcase #4 + \or\py@macron #1{.3}\or\py@acute #1\or\py@hacek #1\or\py@grave #1\or #1 + \fi + \py@kern #1{#3}} + +\def\py@a{\py@@ a} +\def\py@A{\py@@ A} + +\def\py@e{\py@@ e} +\def\py@E{\py@@ E} + +\def\py@i#1#2#3{ + \py@kern{#1}i + \ifcase #3 + \or\py@macron\i{.3}\or\py@acute\i\or\py@hacek\i\or\py@grave\i\or i + \fi + \py@kern i{#2}} +\def\py@I{\py@@ I} + +\def\py@o{\py@@ o} +\def\py@O{\py@@ O} + +\def\py@u{\py@@ u} +\def\py@U{\py@@ U} + +% the previous definitions are almost trivial. The only tricky macro is the +% following one. Above the u with umlaut dots we must place the four tone +% modifiers. To get a better appearance, we lower the umlaut dots as much +% as possible. The algorithm used here has been tested with the standard +% cm, ec, and PostScript fonts; it was taken from german.sty . + +\def\py@@v#1#2#3#4{ + \edef\py@temp{T1} + \ifx\f@encoding \py@temp + \chardef\py@umlaut 4\relax% T1 fonts + \chardef\py@ac \@ne + \chardef\py@gr \z@ + \else + \edef\py@temp{T5} + \ifx\f@encoding \py@temp + \chardef\py@umlaut 4\relax% T5 fonts + \chardef\py@ac \@ne + \chardef\py@gr \z@ + \else + \chardef\py@umlaut 127\relax% OT1 fonts + \chardef\py@ac 19\relax + \chardef\py@gr 18\relax + \fi + \fi + + {\leavevmode + \dimen@ii 1ex + \setbox\z@ \hbox{\char\py@umlaut} + \dimen@ -.4ex + \advance\dimen@ \ht\z@ + \ifdim 1ex < \dimen@ + \fontdimen5\font \dimen@ + \dimen@ .55ex + \else + \dimen@ .7ex + \fi + \py@kern{#2}#1 + \rlap{\accent\py@umlaut #1} + \fontdimen5\font \dimen@ + \ifcase #4 + \or\py@macron #1{1.1} + \or\accent\py@ac #1 + \or\py@hacek #1 + \or\accent\py@gr #1 + \or #1 + \fi + \py@kern #1{#3} + \fontdimen5\font \dimen@ii}} + +\def\py@v{\py@@v u} +\def\py@V{\py@@v U} + +% Here a replacement version for bookmarks in PDFs. + +\def\py@hr@@v#1#2#3#4{ + \ifcase #4 + \or\py@hr@dm #1\or\py@hr@da #1\or\py@hr@dh #1\or\py@hr@dg #1\or #1 + \fi +} + + +% Here our small macro to test whether we should insert a soft hyphen or +% not. Since it is the first macro in all syllable definitions, we +% also ensure horizontal mode. + +\def\py@hy{ + \leavevmode + \ifnum\lastkern = 4\relax% \py@sp + \- + \fi +} + + +% Bookmarks need Unicode characters and nothing else. + +\ifx\AtBeginDocument \undefined +\else + \AtBeginDocument{ + \ifx\pdfstringdefDisableCommands \undefined + \else + % We add some definitions to the PU encoding so that \MakeUppercase + % and \MakeLowercase work with the pinyin characters which have + % two diacritics. + \DeclareTextCommand{\py@hr@dm}{PU}[1]{ + \TextSymbolUnavailable{\py@hr@dm{#1}}#1} + \DeclareTextCommand{\py@hr@da}{PU}[1]{ + \TextSymbolUnavailable{\py@hr@da{#1}}#1} + \DeclareTextCommand{\py@hr@dh}{PU}[1]{ + \TextSymbolUnavailable{\py@hr@dh{#1}}#1} + \DeclareTextCommand{\py@hr@dg}{PU}[1]{ + \TextSymbolUnavailable{\py@hr@dg{#1}}#1} + + \DeclareTextCompositeCommand{\py@hr@dm}{PU}{U}{\81\325}% U umlaut macron + \DeclareTextCompositeCommand{\py@hr@dm}{PU}{u}{\81\326}% u umlaut macron + \DeclareTextCompositeCommand{\py@hr@da}{PU}{U}{\81\327}% U umlaut acute + \DeclareTextCompositeCommand{\py@hr@da}{PU}{u}{\81\330}% u umlaut acute + \DeclareTextCompositeCommand{\py@hr@dh}{PU}{U}{\81\331}% U umlaut hacek + \DeclareTextCompositeCommand{\py@hr@dh}{PU}{u}{\81\332}% u umlaut hacek + \DeclareTextCompositeCommand{\py@hr@dg}{PU}{U}{\81\333}% U umlaut grave + \DeclareTextCompositeCommand{\py@hr@dg}{PU}{u}{\81\334}% u umlaut grave + + \pdfstringdefDisableCommands{ + \let\py@hy \relax + \let\py@kern \@gobbletwo + \let\py@sp \relax + \let\py@macron \py@hr@macron + \let\py@@v \py@hr@@v + } + \fi + } +\fi + +% Finally the pinyin syllables themselves in lower- and uppercase forms. As +% mentioned above, the only exceptions are \Long and \LONG instead of the +% expected \long and \Long macros. + +\ifx\AtBeginDocument \undefined + \def\py@DRC#1#2{ + \def#1##1{\py@hy #2\py@sp{}} + } +\else + \def\py@DRC#1#2{ + \DeclareRobustCommand#1[1]{\py@hy #2\py@sp{}} + } +\fi + +\py@DRC{\py@@a}{\py@ a{}{}#1} +\py@DRC{\ai}{\py@ a{}i#1i} +\py@DRC{\an}{\py@ a{}n#1n} +\py@DRC{\ang}{\py@ a{}n#1ng} +\py@DRC{\ao}{\py@ a{}o#1o} + +\py@DRC{\ba}{b\py@ ab{}#1} +\py@DRC{\bai}{b\py@ abi#1i} +\py@DRC{\ban}{b\py@ abn#1n} +\py@DRC{\bang}{b\py@ abn#1ng} +\py@DRC{\bao}{b\py@ abo#1o} +\py@DRC{\bei}{b\py@ ebi#1i} +\py@DRC{\ben}{b\py@ ebn#1n} +\py@DRC{\beng}{b\py@ ebn#1ng} +\py@DRC{\bi}{b\py@ ib{}#1} +\py@DRC{\bian}{bi\py@ ain#1n} +\py@DRC{\biao}{bi\py@ aio#1o} +\py@DRC{\bie}{bi\py@ ei{}#1} +\py@DRC{\bin}{b\py@ ibn#1n} +\py@DRC{\bing}{b\py@ ibn#1ng} +\py@DRC{\bo}{b\py@ ob{}#1} +\py@DRC{\bu}{b\py@ ub{}#1} + +\py@DRC{\ca}{c\py@ ac{}#1} +\py@DRC{\cai}{c\py@ aci#1i} +\py@DRC{\can}{c\py@ acn#1n} +\py@DRC{\cang}{c\py@ acn#1ng} +\py@DRC{\cao}{c\py@ aco#1o} +\py@DRC{\ce}{c\py@ ec{}#1} +\py@DRC{\cen}{c\py@ ecn#1n} +\py@DRC{\ceng}{c\py@ ecn#1ng} +\py@DRC{\cha}{ch\py@ ah{}#1} +\py@DRC{\chai}{ch\py@ ahi#1i} +\py@DRC{\chan}{ch\py@ ahn#1n} +\py@DRC{\chang}{ch\py@ ahn#1ng} +\py@DRC{\chao}{ch\py@ aho#1o} +\py@DRC{\che}{ch\py@ eh{}#1} +\py@DRC{\chen}{ch\py@ ehn#1n} +\py@DRC{\cheng}{ch\py@ ehn#1ng} +\py@DRC{\py@chi}{ch\py@ ih{}#1} +\py@DRC{\chong}{ch\py@ ohn#1ng} +\py@DRC{\chou}{ch\py@ ohu#1u} +\py@DRC{\chu}{ch\py@ uh{}#1} +\py@DRC{\chua}{chu\py@ au{}#1} +\py@DRC{\chuai}{chu\py@ aui#1i} +\py@DRC{\chuan}{chu\py@ aun#1n} +\py@DRC{\chuang}{chu\py@ aun#1ng} +\py@DRC{\chui}{chu\py@ iu{}#1} +\py@DRC{\chun}{ch\py@ uhn#1n} +\py@DRC{\chuo}{chu\py@ ou{}#1} +\py@DRC{\ci}{c\py@ ic{}#1} +\py@DRC{\py@cong}{c\py@ ocn#1ng} +\py@DRC{\cou}{c\py@ ocu#1u} +\py@DRC{\cu}{c\py@ uc{}#1} +\py@DRC{\cuan}{cu\py@ aun#1n} +\py@DRC{\cui}{cu\py@ iu{}#1} +\py@DRC{\cun}{c\py@ ucn#1n} +\py@DRC{\cuo}{cu\py@ ou{}#1} + +\py@DRC{\da}{d\py@ ad{}#1} +\py@DRC{\dai}{d\py@ adi#1i} +\py@DRC{\dan}{d\py@ adn#1n} +\py@DRC{\dang}{d\py@ adn#1ng} +\py@DRC{\dao}{d\py@ ado#1o} +\py@DRC{\de}{d\py@ ed{}#1} +\py@DRC{\dei}{d\py@ edi#1i} +\py@DRC{\den}{d\py@ edn#1n} +\py@DRC{\deng}{d\py@ edn#1ng} +\py@DRC{\di}{d\py@ id{}#1} +\py@DRC{\dian}{di\py@ ain#1n} +\py@DRC{\diao}{di\py@ aio#1o} +\py@DRC{\die}{di\py@ ei{}#1} +\py@DRC{\py@ding}{d\py@ idn#1ng} +\py@DRC{\diu}{di\py@ ui{}#1} +\py@DRC{\dong}{d\py@ odn#1ng} +\py@DRC{\dou}{d\py@ odu#1u} +\py@DRC{\du}{d\py@ ud{}#1} +\py@DRC{\duan}{du\py@ aun#1n} +\py@DRC{\dui}{du\py@ iu{}#1} +\py@DRC{\dun}{d\py@ udn#1n} +\py@DRC{\duo}{du\py@ ou{}#1} + +\py@DRC{\e}{\py@ e{}{}#1} +\py@DRC{\ei}{\py@ e{}i#1i} +\py@DRC{\en}{\py@ e{}n#1n} +\py@DRC{\eng}{\py@ e{}n#1ng} +\py@DRC{\er}{\py@ e{}r#1r} + +\py@DRC{\fa}{f\py@ af{}#1} +\py@DRC{\fan}{f\py@ afn#1n} +\py@DRC{\fang}{f\py@ afn#1ng} +\py@DRC{\fei}{f\py@ efi#1i} +\py@DRC{\fen}{f\py@ efn#1n} +\py@DRC{\feng}{f\py@ efn#1ng} +\py@DRC{\fiao}{fi\py@ aio#1o} +\py@DRC{\fo}{f\py@ of{}#1} +\py@DRC{\fou}{f\py@ ofu#1u} +\py@DRC{\fu}{f\py@ uf{}#1} + +\py@DRC{\ga}{g\py@ ag{}#1} +\py@DRC{\gai}{g\py@ agi#1i} +\py@DRC{\gan}{g\py@ agn#1n} +\py@DRC{\gang}{g\py@ agn#1ng} +\py@DRC{\gao}{g\py@ ago#1o} +\py@DRC{\py@ge}{g\py@ eg{}#1} +\py@DRC{\gei}{g\py@ egi#1i} +\py@DRC{\gen}{g\py@ egn#1n} +\py@DRC{\geng}{g\py@ egn#1ng} +\py@DRC{\gong}{g\py@ ogn#1ng} +\py@DRC{\gou}{g\py@ ogu#1u} +\py@DRC{\gu}{g\py@ ug{}#1} +\py@DRC{\gua}{gu\py@ au{}#1} +\py@DRC{\guai}{gu\py@ aui#1i} +\py@DRC{\guan}{gu\py@ aun#1n} +\py@DRC{\guang}{gu\py@ aun#1ng} +\py@DRC{\gui}{gu\py@ iu{}#1} +\py@DRC{\gun}{g\py@ ugn#1n} +\py@DRC{\guo}{gu\py@ ou{}#1} + +\py@DRC{\ha}{h\py@ ah{}#1} +\py@DRC{\hai}{h\py@ ahi#1i} +\py@DRC{\han}{h\py@ ahn#1n} +\py@DRC{\py@hang}{h\py@ ahn#1ng} +\py@DRC{\hao}{h\py@ aho#1o} +\py@DRC{\he}{h\py@ eh{}#1} +\py@DRC{\hei}{h\py@ ehi#1i} +\py@DRC{\hen}{h\py@ ehn#1n} +\py@DRC{\heng}{h\py@ ehn#1ng} +\py@DRC{\hong}{h\py@ ohn#1ng} +\py@DRC{\hou}{h\py@ ohu#1u} +\py@DRC{\hu}{h\py@ uh{}#1} +\py@DRC{\hua}{hu\py@ au{}#1} +\py@DRC{\huai}{hu\py@ aui#1i} +\py@DRC{\huan}{hu\py@ aun#1n} +\py@DRC{\huang}{hu\py@ aun#1ng} +\py@DRC{\hui}{hu\py@ iu{}#1} +\py@DRC{\hun}{h\py@ uhn#1n} +\py@DRC{\huo}{hu\py@ ou{}#1} + +\py@DRC{\ji}{j\py@ ij{}#1} +\py@DRC{\jia}{ji\py@ ai{}#1} +\py@DRC{\jian}{ji\py@ ain#1n} +\py@DRC{\jiang}{ji\py@ ain#1ng} +\py@DRC{\jiao}{ji\py@ aio#1o} +\py@DRC{\jie}{ji\py@ ei{}#1} +\py@DRC{\jin}{j\py@ ijn#1n} +\py@DRC{\jing}{j\py@ ijn#1ng} +\py@DRC{\jiong}{ji\py@ oin#1ng} +\py@DRC{\jiu}{ji\py@ ui{}#1} +\py@DRC{\ju}{j\py@ uj{}#1} +\py@DRC{\juan}{ju\py@ aun#1n} +\py@DRC{\jue}{ju\py@ eu{}#1} +\py@DRC{\jun}{j\py@ ujn#1n} + +\py@DRC{\ka}{k\py@ ak{}#1} +\py@DRC{\kai}{k\py@ aki#1i} +\py@DRC{\kan}{k\py@ akn#1n} +\py@DRC{\kang}{k\py@ akn#1ng} +\py@DRC{\kao}{k\py@ ako#1o} +\py@DRC{\ke}{k\py@ ek{}#1} +\py@DRC{\kei}{k\py@ eki#1i} +\py@DRC{\ken}{k\py@ ekn#1n} +\py@DRC{\keng}{k\py@ ekn#1ng} +\py@DRC{\kong}{k\py@ okn#1ng} +\py@DRC{\kou}{k\py@ oku#1u} +\py@DRC{\ku}{k\py@ uk{}#1} +\py@DRC{\kua}{ku\py@ au{}#1} +\py@DRC{\kuai}{ku\py@ aui#1i} +\py@DRC{\kuan}{ku\py@ aun#1n} +\py@DRC{\kuang}{ku\py@ aun#1ng} +\py@DRC{\kui}{ku\py@ iu{}#1} +\py@DRC{\kun}{k\py@ ukn#1n} +\py@DRC{\kuo}{ku\py@ ou{}#1} + +\py@DRC{\la}{l\py@ al{}#1} +\py@DRC{\lai}{l\py@ ali#1i} +\py@DRC{\lan}{l\py@ aln#1n} +\py@DRC{\lang}{l\py@ aln#1ng} +\py@DRC{\lao}{l\py@ alo#1o} +\py@DRC{\py@le}{l\py@ el{}#1} +\py@DRC{\lei}{l\py@ eli#1i} +\py@DRC{\leng}{l\py@ eln#1ng} +\py@DRC{\li}{l\py@ il{}#1} +\py@DRC{\lia}{li\py@ ai{}#1} +\py@DRC{\lian}{li\py@ ain#1n} +\py@DRC{\liang}{li\py@ ain#1ng} +\py@DRC{\liao}{li\py@ aio#1o} +\py@DRC{\lie}{li\py@ ei{}#1} +\py@DRC{\lin}{l\py@ iln#1n} +\py@DRC{\ling}{l\py@ iln#1ng} +\py@DRC{\liu}{li\py@ ui{}#1} +\py@DRC{\Long}{l\py@ oln#1ng} +\py@DRC{\lou}{l\py@ olu#1u} +\py@DRC{\lu}{l\py@ ul{}#1} +\py@DRC{\luan}{lu\py@ aun#1n} +\py@DRC{\lun}{l\py@ uln#1n} +\py@DRC{\luo}{lu\py@ ou{}#1} +\py@DRC{\lv}{l\py@ vl{}#1} +\py@DRC{\lve}{l\"{u}\py@ ele#1} + +\py@DRC{\ma}{m\py@ am{}#1} +\py@DRC{\mai}{m\py@ ami#1i} +\py@DRC{\man}{m\py@ amn#1n} +\py@DRC{\mang}{m\py@ amn#1ng} +\py@DRC{\mao}{m\py@ amo#1o} +\py@DRC{\me}{m\py@ em{}#1} +\py@DRC{\mei}{m\py@ emi#1i} +\py@DRC{\men}{m\py@ emn#1n} +\py@DRC{\meng}{m\py@ emn#1ng} +\py@DRC{\mi}{m\py@ im{}#1} +\py@DRC{\mian}{mi\py@ ain#1n} +\py@DRC{\miao}{mi\py@ aio#1o} +\py@DRC{\mie}{mi\py@ ei{}#1} +\py@DRC{\py@min}{m\py@ imn#1n} +\py@DRC{\ming}{m\py@ imn#1ng} +\py@DRC{\miu}{mi\py@ ui{}#1} +\py@DRC{\mo}{m\py@ om{}#1} +\py@DRC{\mou}{m\py@ omu#1u} +\py@DRC{\py@mu}{m\py@ um{}#1} + +\py@DRC{\na}{n\py@ an{}#1} +\py@DRC{\nai}{n\py@ ani#1i} +\py@DRC{\nan}{n\py@ ann#1n} +\py@DRC{\nang}{n\py@ ann#1ng} +\py@DRC{\nao}{n\py@ ano#1o} +\py@DRC{\py@ne}{n\py@ en{}#1} +\py@DRC{\nei}{n\py@ eni#1i} +\py@DRC{\nen}{n\py@ enn#1n} +\py@DRC{\neng}{n\py@ enn#1ng} +\py@DRC{\py@ni}{n\py@ in{}#1} +\py@DRC{\nian}{ni\py@ ain#1n} +\py@DRC{\niang}{ni\py@ ain#1ng} +\py@DRC{\niao}{ni\py@ aio#1o} +\py@DRC{\nie}{ni\py@ ei{}#1} +\py@DRC{\nin}{n\py@ inn#1n} +\py@DRC{\ning}{n\py@ inn#1ng} +\py@DRC{\niu}{ni\py@ ui{}#1} +\py@DRC{\nong}{n\py@ onn#1ng} +\py@DRC{\nou}{n\py@ onu#1u} +\py@DRC{\py@nu}{n\py@ un{}#1} +\py@DRC{\nuan}{nu\py@ aun#1n} +\py@DRC{\nuo}{nu\py@ ou{}#1} +\py@DRC{\nv}{n\py@ vn{}#1} +\py@DRC{\nve}{n\"{u}\py@ ene#1} + +\py@DRC{\py@@o}{\py@ o{}{}#1} +\py@DRC{\ou}{\py@ o{}u#1u} + +\py@DRC{\pa}{p\py@ ap{}#1} +\py@DRC{\pai}{p\py@ api#1i} +\py@DRC{\pan}{p\py@ apn#1n} +\py@DRC{\pang}{p\py@ apn#1ng} +\py@DRC{\pao}{p\py@ apo#1o} +\py@DRC{\pei}{p\py@ epi#1i} +\py@DRC{\pen}{p\py@ epn#1n} +\py@DRC{\peng}{p\py@ epn#1ng} +\py@DRC{\py@pi}{p\py@ ip{}#1} +\py@DRC{\pian}{pi\py@ ain#1n} +\py@DRC{\piao}{pi\py@ aio#1o} +\py@DRC{\pie}{pi\py@ ei{}#1} +\py@DRC{\pin}{p\py@ ipn#1n} +\py@DRC{\ping}{p\py@ ipn#1ng} +\py@DRC{\po}{p\py@ op{}#1} +\py@DRC{\pou}{p\py@ opu#1u} +\py@DRC{\pu}{p\py@ up{}#1} + +\py@DRC{\qi}{q\py@ iq{}#1} +\py@DRC{\qia}{qi\py@ ai{}#1} +\py@DRC{\qian}{qi\py@ ain#1n} +\py@DRC{\qiang}{qi\py@ ain#1ng} +\py@DRC{\qiao}{qi\py@ aio#1o} +\py@DRC{\qie}{qi\py@ ei{}#1} +\py@DRC{\qin}{q\py@ iqn#1n} +\py@DRC{\qing}{q\py@ iqn#1ng} +\py@DRC{\qiong}{qi\py@ oin#1ng} +\py@DRC{\qiu}{qi\py@ ui{}#1} +\py@DRC{\qu}{q\py@ uq{}#1} +\py@DRC{\quan}{qu\py@ aun#1n} +\py@DRC{\que}{qu\py@ eu{}#1} +\py@DRC{\qun}{q\py@ uqn#1n} + +\py@DRC{\ran}{r\py@ arn#1n} +\py@DRC{\rang}{r\py@ arn#1ng} +\py@DRC{\rao}{r\py@ aro#1o} +\py@DRC{\re}{r\py@ er{}#1} +\py@DRC{\ren}{r\py@ ern#1n} +\py@DRC{\reng}{r\py@ ern#1ng} +\py@DRC{\ri}{r\py@ ir{}#1} +\py@DRC{\rong}{r\py@ orn#1ng} +\py@DRC{\rou}{r\py@ oru#1u} +\py@DRC{\ru}{r\py@ ur{}#1} +\py@DRC{\rua}{ru\py@ au{}#1} +\py@DRC{\ruan}{ru\py@ aun#1n} +\py@DRC{\rui}{ru\py@ iu{}#1} +\py@DRC{\run}{r\py@ urn#1n} +\py@DRC{\ruo}{ru\py@ ou{}#1} + +\py@DRC{\sa}{s\py@ as{}#1} +\py@DRC{\sai}{s\py@ asi#1i} +\py@DRC{\san}{s\py@ asn#1n} +\py@DRC{\sang}{s\py@ asn#1ng} +\py@DRC{\sao}{s\py@ aso#1o} +\py@DRC{\se}{s\py@ es{}#1} +\py@DRC{\sen}{s\py@ esn#1n} +\py@DRC{\seng}{s\py@ esn#1ng} +\py@DRC{\sha}{sh\py@ ah{}#1} +\py@DRC{\shai}{sh\py@ ahi#1i} +\py@DRC{\shan}{sh\py@ ahn#1n} +\py@DRC{\shang}{sh\py@ ahn#1ng} +\py@DRC{\shao}{sh\py@ aho#1o} +\py@DRC{\she}{sh\py@ eh{}#1} +\py@DRC{\shei}{sh\py@ ehi#1i} +\py@DRC{\shen}{sh\py@ ehn#1n} +\py@DRC{\sheng}{sh\py@ ehn#1ng} +\py@DRC{\shi}{sh\py@ ih{}#1} +\py@DRC{\shou}{sh\py@ ohu#1u} +\py@DRC{\shu}{sh\py@ uh{}#1} +\py@DRC{\shua}{shu\py@ au{}#1} +\py@DRC{\shuai}{shu\py@ aui#1i} +\py@DRC{\shuan}{shu\py@ aun#1n} +\py@DRC{\shuang}{shu\py@ aun#1ng} +\py@DRC{\shui}{shu\py@ iu{}#1} +\py@DRC{\shun}{sh\py@ uhn#1n} +\py@DRC{\shuo}{shu\py@ ou{}#1} +\py@DRC{\si}{s\py@ is{}#1} +\py@DRC{\song}{s\py@ osn#1ng} +\py@DRC{\sou}{s\py@ osu#1u} +\py@DRC{\su}{s\py@ us{}#1} +\py@DRC{\suan}{su\py@ aun#1n} +\py@DRC{\sui}{su\py@ iu{}#1} +\py@DRC{\sun}{s\py@ usn#1n} +\py@DRC{\suo}{su\py@ ou{}#1} + +\py@DRC{\ta}{t\py@ at{}#1} +\py@DRC{\tai}{t\py@ ati#1i} +\py@DRC{\py@tan}{t\py@ atn#1n} +\py@DRC{\tang}{t\py@ atn#1ng} +\py@DRC{\tao}{t\py@ ato#1o} +\py@DRC{\te}{t\py@ et{}#1} +\py@DRC{\tei}{t\py@ eti#1i} +\py@DRC{\teng}{t\py@ etn#1ng} +\py@DRC{\ti}{t\py@ it{}#1} +\py@DRC{\tian}{ti\py@ ain#1n} +\py@DRC{\tiao}{ti\py@ aio#1o} +\py@DRC{\tie}{ti\py@ ei{}#1} +\py@DRC{\ting}{t\py@ itn#1ng} +\py@DRC{\tong}{t\py@ otn#1ng} +\py@DRC{\tou}{t\py@ otu#1u} +\py@DRC{\tu}{t\py@ ut{}#1} +\py@DRC{\tuan}{tu\py@ aun#1n} +\py@DRC{\tui}{tu\py@ iu{}#1} +\py@DRC{\tun}{t\py@ utn#1n} +\py@DRC{\tuo}{tu\py@ ou{}#1} + +\py@DRC{\wa}{w\py@ aw{}#1} +\py@DRC{\wai}{w\py@ awi#1i} +\py@DRC{\wan}{w\py@ awn#1n} +\py@DRC{\wang}{w\py@ awn#1ng} +\py@DRC{\wei}{w\py@ ewi#1i} +\py@DRC{\wen}{w\py@ ewn#1n} +\py@DRC{\weng}{w\py@ ewn#1ng} +\py@DRC{\wo}{w\py@ ow{}#1} +\py@DRC{\wu}{w\py@ uw{}#1} + +\py@DRC{\py@xi}{x\py@ ix{}#1} +\py@DRC{\xia}{xi\py@ ai{}#1} +\py@DRC{\xian}{xi\py@ ain#1n} +\py@DRC{\xiang}{xi\py@ ain#1ng} +\py@DRC{\xiao}{xi\py@ aio#1o} +\py@DRC{\xie}{xi\py@ ei{}#1} +\py@DRC{\xin}{x\py@ ixn#1n} +\py@DRC{\xing}{x\py@ ixn#1ng} +\py@DRC{\xiong}{xi\py@ oin#1ng} +\py@DRC{\xiu}{xi\py@ ui{}#1} +\py@DRC{\xu}{x\py@ ux{}#1} +\py@DRC{\xuan}{xu\py@ aun#1n} +\py@DRC{\xue}{xu\py@ eu{}#1} +\py@DRC{\xun}{x\py@ uxn#1n} + +\py@DRC{\ya}{y\py@ ay{}#1} +\py@DRC{\yan}{y\py@ ayn#1n} +\py@DRC{\yang}{y\py@ ayn#1ng} +\py@DRC{\yao}{y\py@ ayo#1o} +\py@DRC{\ye}{y\py@ ey{}#1} +\py@DRC{\yi}{y\py@ iy{}#1} +\py@DRC{\yin}{y\py@ iyn#1n} +\py@DRC{\ying}{y\py@ iyn#1ng} +\py@DRC{\yo}{y\py@ oy{}#1} +\py@DRC{\yong}{y\py@ oyn#1ng} +\py@DRC{\you}{y\py@ oyu#1u} +\py@DRC{\yu}{y\py@ uy{}#1} +\py@DRC{\yuan}{yu\py@ aun#1n} +\py@DRC{\yue}{yu\py@ eu{}#1} +\py@DRC{\yun}{y\py@ uyn#1n} + +\py@DRC{\za}{z\py@ az{}#1} +\py@DRC{\zai}{z\py@ azi#1i} +\py@DRC{\zan}{z\py@ azn#1n} +\py@DRC{\zang}{z\py@ azn#1ng} +\py@DRC{\zao}{z\py@ azo#1o} +\py@DRC{\ze}{z\py@ ez{}#1} +\py@DRC{\zei}{z\py@ ezi#1i} +\py@DRC{\zen}{z\py@ ezn#1n} +\py@DRC{\zeng}{z\py@ ezn#1ng} +\py@DRC{\zha}{zh\py@ ah{}#1} +\py@DRC{\zhai}{zh\py@ ahi#1i} +\py@DRC{\zhan}{zh\py@ ahn#1n} +\py@DRC{\zhang}{zh\py@ ahn#1ng} +\py@DRC{\zhao}{zh\py@ aho#1o} +\py@DRC{\zhe}{zh\py@ eh{}#1} +\py@DRC{\zhei}{zh\py@ ehi#1i} +\py@DRC{\zhen}{zh\py@ ehn#1n} +\py@DRC{\zheng}{zh\py@ ehn#1ng} +\py@DRC{\zhi}{zh\py@ ih{}#1} +\py@DRC{\zhong}{zh\py@ ohn#1ng} +\py@DRC{\zhou}{zh\py@ ohu#1u} +\py@DRC{\zhu}{zh\py@ uh{}#1} +\py@DRC{\zhua}{zhu\py@ au{}#1} +\py@DRC{\zhuai}{zhu\py@ aui#1i} +\py@DRC{\zhuan}{zhu\py@ aun#1n} +\py@DRC{\zhuang}{zhu\py@ aun#1ng} +\py@DRC{\zhui}{zhu\py@ iu{}#1} +\py@DRC{\zhun}{zh\py@ uhn#1n} +\py@DRC{\zhuo}{zhu\py@ ou{}#1} +\py@DRC{\zi}{z\py@ iz{}#1} +\py@DRC{\zong}{z\py@ ozn#1ng} +\py@DRC{\zou}{z\py@ ozu#1u} +\py@DRC{\zu}{z\py@ uz{}#1} +\py@DRC{\zuan}{zu\py@ aun#1n} +\py@DRC{\zui}{zu\py@ iu{}#1} +\py@DRC{\zun}{z\py@ uzn#1n} +\py@DRC{\zuo}{zu\py@ ou{}#1} + + +\py@DRC{\A}{\py@ A{}{}#1} +\py@DRC{\Ai}{\py@ A{}i#1i} +\py@DRC{\An}{\py@ A{}n#1n} +\py@DRC{\Ang}{\py@ A{}n#1ng} +\py@DRC{\Ao}{\py@ A{}o#1o} + +\py@DRC{\Ba}{B\py@ aB{}#1} +\py@DRC{\Bai}{B\py@ aBi#1i} +\py@DRC{\Ban}{B\py@ aBn#1n} +\py@DRC{\Bang}{B\py@ aBn#1ng} +\py@DRC{\Bao}{B\py@ aBo#1o} +\py@DRC{\Bei}{B\py@ eBi#1i} +\py@DRC{\Ben}{B\py@ eBn#1n} +\py@DRC{\Beng}{B\py@ eBn#1ng} +\py@DRC{\Bi}{B\py@ iB{}#1} +\py@DRC{\Bian}{Bi\py@ ain#1n} +\py@DRC{\Biao}{Bi\py@ aio#1o} +\py@DRC{\Bie}{Bi\py@ ei{}#1} +\py@DRC{\Bin}{B\py@ iBn#1n} +\py@DRC{\Bing}{B\py@ iBn#1ng} +\py@DRC{\Bo}{B\py@ oB{}#1} +\py@DRC{\Bu}{B\py@ uB{}#1} + +\py@DRC{\Ca}{C\py@ aC{}#1} +\py@DRC{\Cai}{C\py@ aCi#1i} +\py@DRC{\Can}{C\py@ aCn#1n} +\py@DRC{\Cang}{C\py@ aCn#1ng} +\py@DRC{\Cao}{C\py@ aCo#1o} +\py@DRC{\Ce}{C\py@ eC{}#1} +\py@DRC{\Cen}{C\py@ eCn#1n} +\py@DRC{\Ceng}{C\py@ eCn#1ng} +\py@DRC{\Cha}{Ch\py@ ah{}#1} +\py@DRC{\Chai}{Ch\py@ ahi#1i} +\py@DRC{\Chan}{Ch\py@ ahn#1n} +\py@DRC{\Chang}{Ch\py@ ahn#1ng} +\py@DRC{\Chao}{Ch\py@ aho#1o} +\py@DRC{\Che}{Ch\py@ eh{}#1} +\py@DRC{\Chen}{Ch\py@ ehn#1n} +\py@DRC{\Cheng}{Ch\py@ ehn#1ng} +\py@DRC{\Chi}{Ch\py@ ih{}#1} +\py@DRC{\Chong}{Ch\py@ ohn#1ng} +\py@DRC{\Chou}{Ch\py@ ohu#1u} +\py@DRC{\Chu}{Ch\py@ uh{}#1} +\py@DRC{\Chuai}{Chu\py@ aui#1i} +\py@DRC{\Chuan}{Chu\py@ aun#1n} +\py@DRC{\Chuang}{Chu\py@ aun#1ng} +\py@DRC{\Chui}{Chu\py@ iu{}#1} +\py@DRC{\Chun}{Ch\py@ uhn#1n} +\py@DRC{\Chuo}{Chu\py@ ou{}#1} +\py@DRC{\Ci}{C\py@ iC{}#1} +\py@DRC{\Cong}{C\py@ oCn#1ng} +\py@DRC{\Cou}{C\py@ oCu#1u} +\py@DRC{\Cu}{C\py@ uC{}#1} +\py@DRC{\Cuan}{Cu\py@ aun#1n} +\py@DRC{\Cui}{Cu\py@ iu{}#1} +\py@DRC{\Cun}{C\py@ uCn#1n} +\py@DRC{\Cuo}{Cu\py@ ou{}#1} + +\py@DRC{\Da}{D\py@ aD{}#1} +\py@DRC{\Dai}{D\py@ aDi#1i} +\py@DRC{\Dan}{D\py@ aDn#1n} +\py@DRC{\Dang}{D\py@ aDn#1ng} +\py@DRC{\Dao}{D\py@ aDo#1o} +\py@DRC{\De}{D\py@ eD{}#1} +\py@DRC{\Dei}{D\py@ eDi#1i} +\py@DRC{\Deng}{D\py@ eDn#1ng} +\py@DRC{\Di}{D\py@ iD{}#1} +\py@DRC{\Dian}{Di\py@ ain#1n} +\py@DRC{\Diao}{Di\py@ aio#1o} +\py@DRC{\Die}{Di\py@ ei{}#1} +\py@DRC{\Ding}{D\py@ iDn#1ng} +\py@DRC{\Diu}{Di\py@ ui{}#1} +\py@DRC{\Dong}{D\py@ oDn#1ng} +\py@DRC{\Dou}{D\py@ oDu#1u} +\py@DRC{\Du}{D\py@ uD{}#1} +\py@DRC{\Duan}{Du\py@ aun#1n} +\py@DRC{\Dui}{Du\py@ iu{}#1} +\py@DRC{\Dun}{D\py@ uDn#1n} +\py@DRC{\Duo}{Du\py@ ou{}#1} + +\py@DRC{\E}{\py@ E{}{}#1} +\py@DRC{\Ei}{\py@ E{}i#1i} +\py@DRC{\En}{\py@ E{}n#1n} +\py@DRC{\Eng}{\py@ E{}n#1ng} +\py@DRC{\Er}{\py@ E{}r#1r} + +\py@DRC{\Fa}{F\py@ aF{}#1} +\py@DRC{\Fan}{F\py@ aFn#1n} +\py@DRC{\Fang}{F\py@ aFn#1ng} +\py@DRC{\Fei}{F\py@ eFi#1i} +\py@DRC{\Fen}{F\py@ eFn#1n} +\py@DRC{\Feng}{F\py@ eFn#1ng} +\py@DRC{\Fiao}{Fi\py@ aio#1o} +\py@DRC{\Fo}{F\py@ oF{}#1} +\py@DRC{\Fou}{F\py@ oFu#1u} +\py@DRC{\Fu}{F\py@ uF{}#1} + +\py@DRC{\Ga}{G\py@ aG{}#1} +\py@DRC{\Gai}{G\py@ aGi#1i} +\py@DRC{\Gan}{G\py@ aGn#1n} +\py@DRC{\Gang}{G\py@ aGn#1ng} +\py@DRC{\Gao}{G\py@ aGo#1o} +\py@DRC{\Ge}{G\py@ eG{}#1} +\py@DRC{\Gei}{G\py@ eGi#1i} +\py@DRC{\Gen}{G\py@ eGn#1n} +\py@DRC{\Geng}{G\py@ eGn#1ng} +\py@DRC{\Gong}{G\py@ oGn#1ng} +\py@DRC{\Gou}{G\py@ oGu#1u} +\py@DRC{\Gu}{G\py@ uG{}#1} +\py@DRC{\Gua}{Gu\py@ au{}#1} +\py@DRC{\Guai}{Gu\py@ aui#1i} +\py@DRC{\Guan}{Gu\py@ aun#1n} +\py@DRC{\Guang}{Gu\py@ aun#1ng} +\py@DRC{\Gui}{Gu\py@ iu{}#1} +\py@DRC{\Gun}{G\py@ uGn#1n} +\py@DRC{\Guo}{Gu\py@ ou{}#1} + +\py@DRC{\Ha}{H\py@ aH{}#1} +\py@DRC{\Hai}{H\py@ aHi#1i} +\py@DRC{\Han}{H\py@ aHn#1n} +\py@DRC{\Hang}{H\py@ aHn#1ng} +\py@DRC{\Hao}{H\py@ aHo#1o} +\py@DRC{\He}{H\py@ eH{}#1} +\py@DRC{\Hei}{H\py@ eHi#1i} +\py@DRC{\Hen}{H\py@ eHn#1n} +\py@DRC{\Heng}{H\py@ eHn#1ng} +\py@DRC{\Hong}{H\py@ oHn#1ng} +\py@DRC{\Hou}{H\py@ oHu#1u} +\py@DRC{\Hu}{H\py@ uH{}#1} +\py@DRC{\Hua}{Hu\py@ au{}#1} +\py@DRC{\Huai}{Hu\py@ aui#1i} +\py@DRC{\Huan}{Hu\py@ aun#1n} +\py@DRC{\Huang}{Hu\py@ aun#1ng} +\py@DRC{\Hui}{Hu\py@ iu{}#1} +\py@DRC{\Hun}{H\py@ uHn#1n} +\py@DRC{\Huo}{Hu\py@ ou{}#1} + +\py@DRC{\Ji}{J\py@ iJ{}#1} +\py@DRC{\Jia}{Ji\py@ ai{}#1} +\py@DRC{\Jian}{Ji\py@ ain#1n} +\py@DRC{\Jiang}{Ji\py@ ain#1ng} +\py@DRC{\Jiao}{Ji\py@ aio#1o} +\py@DRC{\Jie}{Ji\py@ ei{}#1} +\py@DRC{\Jin}{J\py@ iJn#1n} +\py@DRC{\Jing}{J\py@ iJn#1ng} +\py@DRC{\Jiong}{Ji\py@ oin#1ng} +\py@DRC{\Jiu}{Ji\py@ ui{}#1} +\py@DRC{\Ju}{J\py@ uJ{}#1} +\py@DRC{\Juan}{Ju\py@ aun#1n} +\py@DRC{\Jue}{Ju\py@ eu{}#1} +\py@DRC{\Jun}{J\py@ uJn#1n} + +\py@DRC{\Ka}{K\py@ aK{}#1} +\py@DRC{\Kai}{K\py@ aKi#1i} +\py@DRC{\Kan}{K\py@ aKn#1n} +\py@DRC{\Kang}{K\py@ aKn#1ng} +\py@DRC{\Kao}{K\py@ aKo#1o} +\py@DRC{\Ke}{K\py@ eK{}#1} +\py@DRC{\Kei}{K\py@ eKi#1i} +\py@DRC{\Ken}{K\py@ eKn#1n} +\py@DRC{\Keng}{K\py@ eKn#1ng} +\py@DRC{\Kong}{K\py@ oKn#1ng} +\py@DRC{\Kou}{K\py@ oKu#1u} +\py@DRC{\Ku}{K\py@ uK{}#1} +\py@DRC{\Kua}{Ku\py@ au{}#1} +\py@DRC{\Kuai}{Ku\py@ aui#1i} +\py@DRC{\Kuan}{Ku\py@ aun#1n} +\py@DRC{\Kuang}{Ku\py@ aun#1ng} +\py@DRC{\Kui}{Ku\py@ iu{}#1} +\py@DRC{\Kun}{K\py@ uKn#1n} +\py@DRC{\Kuo}{Ku\py@ ou{}#1} + +\py@DRC{\La}{L\py@ aL{}#1} +\py@DRC{\Lai}{L\py@ aLi#1i} +\py@DRC{\Lan}{L\py@ aLn#1n} +\py@DRC{\Lang}{L\py@ aLn#1ng} +\py@DRC{\Lao}{L\py@ aLo#1o} +\py@DRC{\Le}{L\py@ eL{}#1} +\py@DRC{\Lei}{L\py@ eLi#1i} +\py@DRC{\Leng}{L\py@ eLn#1ng} +\py@DRC{\Li}{L\py@ iL{}#1} +\py@DRC{\Lia}{Li\py@ ai{}#1} +\py@DRC{\Lian}{Li\py@ ain#1n} +\py@DRC{\Liang}{Li\py@ ain#1ng} +\py@DRC{\Liao}{Li\py@ aio#1o} +\py@DRC{\Lie}{Li\py@ ei{}#1} +\py@DRC{\Lin}{L\py@ iLn#1n} +\py@DRC{\Ling}{L\py@ iLn#1ng} +\py@DRC{\Liu}{Li\py@ ui{}#1} +\py@DRC{\LONG}{L\py@ oLn#1ng} +\py@DRC{\Lou}{L\py@ oLu#1u} +\py@DRC{\Lu}{L\py@ uL{}#1} +\py@DRC{\Luan}{Lu\py@ aun#1n} +\py@DRC{\Lun}{L\py@ uLn#1n} +\py@DRC{\Luo}{Lu\py@ ou{}#1} +\py@DRC{\Lv}{L\py@ vL{}#1} +\py@DRC{\Lve}{L\"{u}\py@ eLe#1} + +\py@DRC{\Ma}{M\py@ aM{}#1} +\py@DRC{\Mai}{M\py@ aMi#1i} +\py@DRC{\Man}{M\py@ aMn#1n} +\py@DRC{\Mang}{M\py@ aMn#1ng} +\py@DRC{\Mao}{M\py@ aMo#1o} +\py@DRC{\Mei}{M\py@ eMi#1i} +\py@DRC{\Men}{M\py@ eMn#1n} +\py@DRC{\Meng}{M\py@ eMn#1ng} +\py@DRC{\Mi}{M\py@ iM{}#1} +\py@DRC{\Mian}{Mi\py@ ain#1n} +\py@DRC{\Miao}{Mi\py@ aio#1o} +\py@DRC{\Mie}{Mi\py@ ei{}#1} +\py@DRC{\Min}{M\py@ iMn#1n} +\py@DRC{\Ming}{M\py@ iMn#1ng} +\py@DRC{\Miu}{Mi\py@ ui{}#1} +\py@DRC{\Mo}{M\py@ oM{}#1} +\py@DRC{\Mou}{M\py@ oMu#1u} +\py@DRC{\Mu}{M\py@ uM{}#1} + +\py@DRC{\Na}{N\py@ aN{}#1} +\py@DRC{\Nai}{N\py@ aNi#1i} +\py@DRC{\Nan}{N\py@ aNn#1n} +\py@DRC{\Nang}{N\py@ aNn#1ng} +\py@DRC{\Nao}{N\py@ aNo#1o} +\py@DRC{\Ne}{N\py@ eN{}#1} +\py@DRC{\Nei}{N\py@ eNi#1i} +\py@DRC{\Nen}{N\py@ eNn#1n} +\py@DRC{\Neng}{N\py@ eNn#1ng} +\py@DRC{\Ni}{N\py@ iN{}#1} +\py@DRC{\Nian}{Ni\py@ ain#1n} +\py@DRC{\Niang}{Ni\py@ ain#1ng} +\py@DRC{\Niao}{Ni\py@ aio#1o} +\py@DRC{\Nie}{Ni\py@ ei{}#1} +\py@DRC{\Nin}{N\py@ iNn#1n} +\py@DRC{\Ning}{N\py@ iNn#1ng} +\py@DRC{\Niu}{Ni\py@ ui{}#1} +\py@DRC{\Nong}{N\py@ oNn#1ng} +\py@DRC{\Nou}{N\py@ oNu#1u} +\py@DRC{\Nu}{N\py@ uN{}#1} +\py@DRC{\Nuan}{Nu\py@ aun#1n} +\py@DRC{\Nuo}{Nu\py@ ou{}#1} +\py@DRC{\Nv}{N\py@ vN{}#1} +\py@DRC{\Nve}{N\"{u}\py@ eNe#1} + +\py@DRC{\py@@O}{\py@ O{}{}#1} +\py@DRC{\Ou}{\py@ O{}u#1u} + +\py@DRC{\Pa}{P\py@ aP{}#1} +\py@DRC{\Pai}{P\py@ aPi#1i} +\py@DRC{\Pan}{P\py@ aPn#1n} +\py@DRC{\Pang}{P\py@ aPn#1ng} +\py@DRC{\Pao}{P\py@ aPo#1o} +\py@DRC{\Pei}{P\py@ ePi#1i} +\py@DRC{\Pen}{P\py@ ePn#1n} +\py@DRC{\Peng}{P\py@ ePn#1ng} +\py@DRC{\py@Pi}{P\py@ iP{}#1} +\py@DRC{\Pian}{Pi\py@ ain#1n} +\py@DRC{\Piao}{Pi\py@ aio#1o} +\py@DRC{\Pie}{Pi\py@ ei{}#1} +\py@DRC{\Pin}{P\py@ iPn#1n} +\py@DRC{\Ping}{P\py@ iPn#1ng} +\py@DRC{\Po}{P\py@ oP{}#1} +\py@DRC{\Pou}{P\py@ oPu#1u} +\py@DRC{\Pu}{P\py@ uP{}#1} + +\py@DRC{\Qi}{Q\py@ iQ{}#1} +\py@DRC{\Qia}{Qi\py@ ai{}#1} +\py@DRC{\Qian}{Qi\py@ ain#1n} +\py@DRC{\Qiang}{Qi\py@ ain#1ng} +\py@DRC{\Qiao}{Qi\py@ aio#1o} +\py@DRC{\Qie}{Qi\py@ ei{}#1} +\py@DRC{\Qin}{Q\py@ iQn#1n} +\py@DRC{\Qing}{Q\py@ iQn#1ng} +\py@DRC{\Qiong}{Qi\py@ oin#1ng} +\py@DRC{\Qiu}{Qi\py@ ui{}#1} +\py@DRC{\Qu}{Q\py@ uQ{}#1} +\py@DRC{\Quan}{Qu\py@ aun#1n} +\py@DRC{\Que}{Qu\py@ eu{}#1} +\py@DRC{\Qun}{Q\py@ uQn#1n} + +\py@DRC{\Ran}{R\py@ aRn#1n} +\py@DRC{\Rang}{R\py@ aRn#1ng} +\py@DRC{\Rao}{R\py@ aRo#1o} +\py@DRC{\py@Re}{R\py@ eR{}#1} +\py@DRC{\Ren}{R\py@ eRn#1n} +\py@DRC{\Reng}{R\py@ eRn#1ng} +\py@DRC{\Ri}{R\py@ iR{}#1} +\py@DRC{\Rong}{R\py@ oRn#1ng} +\py@DRC{\Rou}{R\py@ oRu#1u} +\py@DRC{\Ru}{R\py@ uR{}#1} +\py@DRC{\Ruan}{Ru\py@ aun#1n} +\py@DRC{\Rui}{Ru\py@ iu{}#1} +\py@DRC{\Run}{R\py@ uRn#1n} +\py@DRC{\Ruo}{Ru\py@ ou{}#1} + +\py@DRC{\Sa}{S\py@ aS{}#1} +\py@DRC{\Sai}{S\py@ aSi#1i} +\py@DRC{\San}{S\py@ aSn#1n} +\py@DRC{\Sang}{S\py@ aSn#1ng} +\py@DRC{\Sao}{S\py@ aSo#1o} +\py@DRC{\Se}{S\py@ eS{}#1} +\py@DRC{\Sen}{S\py@ eSn#1n} +\py@DRC{\Seng}{S\py@ eSn#1ng} +\py@DRC{\Sha}{Sh\py@ ah{}#1} +\py@DRC{\Shai}{Sh\py@ ahi#1i} +\py@DRC{\Shan}{Sh\py@ ahn#1n} +\py@DRC{\Shang}{Sh\py@ ahn#1ng} +\py@DRC{\Shao}{Sh\py@ aho#1o} +\py@DRC{\She}{Sh\py@ eh{}#1} +\py@DRC{\Shei}{Sh\py@ ehi#1i} +\py@DRC{\Shen}{Sh\py@ ehn#1n} +\py@DRC{\Sheng}{Sh\py@ ehn#1ng} +\py@DRC{\Shi}{Sh\py@ ih{}#1} +\py@DRC{\Shou}{Sh\py@ ohu#1u} +\py@DRC{\Shu}{Sh\py@ uh{}#1} +\py@DRC{\Shua}{Shu\py@ au{}#1} +\py@DRC{\Shuai}{Shu\py@ aui#1i} +\py@DRC{\Shuan}{Shu\py@ aun#1n} +\py@DRC{\Shuang}{Shu\py@ aun#1ng} +\py@DRC{\Shui}{Shu\py@ iu{}#1} +\py@DRC{\Shun}{Sh\py@ uhn#1n} +\py@DRC{\Shuo}{Shu\py@ ou{}#1} +\py@DRC{\Si}{S\py@ iS{}#1} +\py@DRC{\Song}{S\py@ oSn#1ng} +\py@DRC{\Sou}{S\py@ oSu#1u} +\py@DRC{\Su}{S\py@ uS{}#1} +\py@DRC{\Suan}{Su\py@ aun#1n} +\py@DRC{\Sui}{Su\py@ iu{}#1} +\py@DRC{\Sun}{S\py@ uSn#1n} +\py@DRC{\Suo}{Su\py@ ou{}#1} + +\py@DRC{\Ta}{T\py@ aT{}#1} +\py@DRC{\Tai}{T\py@ aTi#1i} +\py@DRC{\Tan}{T\py@ aTn#1n} +\py@DRC{\Tang}{T\py@ aTn#1ng} +\py@DRC{\Tao}{T\py@ aTo#1o} +\py@DRC{\Te}{T\py@ eT{}#1} +\py@DRC{\Tei}{T\py@ eTi#1i} +\py@DRC{\Teng}{T\py@ eTn#1ng} +\py@DRC{\Ti}{T\py@ iT{}#1} +\py@DRC{\Tian}{Ti\py@ ain#1n} +\py@DRC{\Tiao}{Ti\py@ aio#1o} +\py@DRC{\Tie}{Ti\py@ ei{}#1} +\py@DRC{\Ting}{T\py@ iTn#1ng} +\py@DRC{\Tong}{T\py@ oTn#1ng} +\py@DRC{\Tou}{T\py@ oTu#1u} +\py@DRC{\Tu}{T\py@ uT{}#1} +\py@DRC{\Tuan}{Tu\py@ aun#1n} +\py@DRC{\Tui}{Tu\py@ iu{}#1} +\py@DRC{\Tun}{T\py@ uTn#1n} +\py@DRC{\Tuo}{Tu\py@ ou{}#1} + +\py@DRC{\Wa}{W\py@ aW{}#1} +\py@DRC{\Wai}{W\py@ aWi#1i} +\py@DRC{\Wan}{W\py@ aWn#1n} +\py@DRC{\Wang}{W\py@ aWn#1ng} +\py@DRC{\Wei}{W\py@ eWi#1i} +\py@DRC{\Wen}{W\py@ eWn#1n} +\py@DRC{\Weng}{W\py@ eWn#1ng} +\py@DRC{\Wo}{W\py@ oW{}#1} +\py@DRC{\Wu}{W\py@ uW{}#1} + +\py@DRC{\py@Xi}{X\py@ iX{}#1} +\py@DRC{\Xia}{Xi\py@ ai{}#1} +\py@DRC{\Xian}{Xi\py@ ain#1n} +\py@DRC{\Xiang}{Xi\py@ ain#1ng} +\py@DRC{\Xiao}{Xi\py@ aio#1o} +\py@DRC{\Xie}{Xi\py@ ei{}#1} +\py@DRC{\Xin}{X\py@ iXn#1n} +\py@DRC{\Xing}{X\py@ iXn#1ng} +\py@DRC{\Xiong}{Xi\py@ oin#1ng} +\py@DRC{\Xiu}{Xi\py@ ui{}#1} +\py@DRC{\Xu}{X\py@ uX{}#1} +\py@DRC{\Xuan}{Xu\py@ aun#1n} +\py@DRC{\Xue}{Xu\py@ eu{}#1} +\py@DRC{\Xun}{X\py@ uXn#1n} + +\py@DRC{\Ya}{Y\py@ aY{}#1} +\py@DRC{\Yan}{Y\py@ aYn#1n} +\py@DRC{\Yang}{Y\py@ aYn#1ng} +\py@DRC{\Yao}{Y\py@ aYo#1o} +\py@DRC{\Ye}{Y\py@ eY{}#1} +\py@DRC{\Yi}{Y\py@ iY{}#1} +\py@DRC{\Yin}{Y\py@ iYn#1n} +\py@DRC{\Ying}{Y\py@ iYn#1ng} +\py@DRC{\Yo}{Y\py@ oY{}#1} +\py@DRC{\Yong}{Y\py@ oYn#1ng} +\py@DRC{\You}{Y\py@ oYu#1u} +\py@DRC{\Yu}{Y\py@ uY{}#1} +\py@DRC{\Yuan}{Yu\py@ aun#1n} +\py@DRC{\Yue}{Yu\py@ eu{}#1} +\py@DRC{\Yun}{Y\py@ uYn#1n} + +\py@DRC{\Za}{Z\py@ aZ{}#1} +\py@DRC{\Zai}{Z\py@ aZi#1i} +\py@DRC{\Zan}{Z\py@ aZn#1n} +\py@DRC{\Zang}{Z\py@ aZn#1ng} +\py@DRC{\Zao}{Z\py@ aZo#1o} +\py@DRC{\Ze}{Z\py@ eZ{}#1} +\py@DRC{\Zei}{Z\py@ eZi#1i} +\py@DRC{\Zen}{Z\py@ eZn#1n} +\py@DRC{\Zeng}{Z\py@ eZn#1ng} +\py@DRC{\Zha}{Zh\py@ ah{}#1} +\py@DRC{\Zhai}{Zh\py@ ahi#1i} +\py@DRC{\Zhan}{Zh\py@ ahn#1n} +\py@DRC{\Zhang}{Zh\py@ ahn#1ng} +\py@DRC{\Zhao}{Zh\py@ aho#1o} +\py@DRC{\Zhe}{Zh\py@ eh{}#1} +\py@DRC{\Zhei}{Zh\py@ ehi#1i} +\py@DRC{\Zhen}{Zh\py@ ehn#1n} +\py@DRC{\Zheng}{Zh\py@ ehn#1ng} +\py@DRC{\Zhi}{Zh\py@ ih{}#1} +\py@DRC{\Zhong}{Zh\py@ ohn#1ng} +\py@DRC{\Zhou}{Zh\py@ ohu#1u} +\py@DRC{\Zhu}{Zh\py@ uh{}#1} +\py@DRC{\Zhua}{Zhu\py@ au{}#1} +\py@DRC{\Zhuai}{Zhu\py@ aui#1i} +\py@DRC{\Zhuan}{Zhu\py@ aun#1n} +\py@DRC{\Zhuang}{Zhu\py@ aun#1ng} +\py@DRC{\Zhui}{Zhu\py@ iu{}#1} +\py@DRC{\Zhun}{Zh\py@ uhn#1n} +\py@DRC{\Zhuo}{Zhu\py@ ou{}#1} +\py@DRC{\Zi}{Z\py@ iZ{}#1} +\py@DRC{\Zong}{Z\py@ oZn#1ng} +\py@DRC{\Zou}{Z\py@ oZu#1u} +\py@DRC{\Zu}{Z\py@ uZ{}#1} +\py@DRC{\Zuan}{Zu\py@ aun#1n} +\py@DRC{\Zui}{Zu\py@ iu{}#1} +\py@DRC{\Zun}{Z\py@ uZn#1n} +\py@DRC{\Zuo}{Zu\py@ ou{}#1} + + +% We enable all pinyin syllables as the default. + +\PYactivate + + +\endlinechar `\^^M +\catcode`@=12 + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/pmC.chr b/language/chinese/CJK/cjk-4.8.5/texinput/pmC.chr new file mode 100644 index 0000000000..83a75e7e7f --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/pmC.chr @@ -0,0 +1,98 @@ +% This is the file pmC.chr of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{pmC.chr}[\filedate\space\fileversion] + + +% define macros for handling pmC fonts and characters. + +\gdef\CJK@pmCChr{ + \CJK@global\def\CJK@char##1##2##3{ + {\ifnum ##3 < \CJK@min + \CJK@err + \else + \ifnum ##3 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##3\relax + \advance\@tempcnta ##2\relax + \edef\CJK@plane{##1} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \CJKsymbol{\@tempcnta} + + \CJK@CJK + \fi + \fi}} + +% for punctuation. + + \CJK@global\def\CJK@punctchar##1##2##3##4{ + {\ifnum ##4 < \CJK@min + \CJK@err + \else + \ifnum ##4 > \CJK@max + \CJK@err + \else + \CJK@numbToHex{\CJK@gtemp}{##4} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##4\relax + \advance\@tempcnta ##3\relax + \edef\CJK@plane{##2} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \CJKpunctsymbol{\@tempcnta} + + \CJK@testPrePunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \fi + \fi}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/pmCbig.enc b/language/chinese/CJK/cjk-4.8.5/texinput/pmCbig.enc new file mode 100644 index 0000000000..57ecd41ddb --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/pmCbig.enc @@ -0,0 +1,133 @@ +% This is the file pmCbig.enc of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{pmCbig.enc}[\filedate\space\fileversion] + + +% old poor man's Chinese encoding: +% each plane gets an own font (Big 5, GB, JIS etc.). + +% big size: + +\gdef\CJK@pmCbigEncoding{ + \CJK@loadChr{pmC} + + \CJK@namegdef{^^a1}##1{\@empty\CJK@punctchar{A1}{a1}{-128}{##1}} + \CJK@namegdef{^^a2}##1{\@empty\CJK@punctchar{A2}{a2}{-128}{##1}} + \CJK@namegdef{^^a3}##1{\@empty\CJK@punctchar{A3}{a3}{-128}{##1}} + \CJK@namegdef{^^a4}##1{\@empty\CJK@punctchar{A4}{a4}{-128}{##1}} + \CJK@namegdef{^^a5}##1{\@empty\CJK@punctchar{A5}{a5}{-128}{##1}} + \CJK@namegdef{^^a6}##1{\@empty\CJK@char{a6}{-128}{##1}} + \CJK@namegdef{^^a7}##1{\@empty\CJK@char{a7}{-128}{##1}} + \CJK@namegdef{^^a8}##1{\@empty\CJK@char{a8}{-128}{##1}} + \CJK@namegdef{^^a9}##1{\@empty\CJK@char{a9}{-128}{##1}} + \CJK@namegdef{^^aa}##1{\@empty\CJK@char{aa}{-128}{##1}} + \CJK@namegdef{^^ab}##1{\@empty\CJK@char{ab}{-128}{##1}} + \CJK@namegdef{^^ac}##1{\@empty\CJK@char{ac}{-128}{##1}} + \CJK@namegdef{^^ad}##1{\@empty\CJK@char{ad}{-128}{##1}} + \CJK@namegdef{^^ae}##1{\@empty\CJK@char{ae}{-128}{##1}} + \CJK@namegdef{^^af}##1{\@empty\CJK@char{af}{-128}{##1}} + \CJK@namegdef{^^b0}##1{\@empty\CJK@char{b0}{-128}{##1}} + \CJK@namegdef{^^b1}##1{\@empty\CJK@char{b1}{-128}{##1}} + \CJK@namegdef{^^b2}##1{\@empty\CJK@char{b2}{-128}{##1}} + \CJK@namegdef{^^b3}##1{\@empty\CJK@char{b3}{-128}{##1}} + \CJK@namegdef{^^b4}##1{\@empty\CJK@char{b4}{-128}{##1}} + \CJK@namegdef{^^b5}##1{\@empty\CJK@char{b5}{-128}{##1}} + \CJK@namegdef{^^b6}##1{\@empty\CJK@char{b6}{-128}{##1}} + \CJK@namegdef{^^b7}##1{\@empty\CJK@char{b7}{-128}{##1}} + \CJK@namegdef{^^b8}##1{\@empty\CJK@char{b8}{-128}{##1}} + \CJK@namegdef{^^b9}##1{\@empty\CJK@char{b9}{-128}{##1}} + \CJK@namegdef{^^ba}##1{\@empty\CJK@char{ba}{-128}{##1}} + \CJK@namegdef{^^bb}##1{\@empty\CJK@char{bb}{-128}{##1}} + \CJK@namegdef{^^bc}##1{\@empty\CJK@char{bc}{-128}{##1}} + \CJK@namegdef{^^bd}##1{\@empty\CJK@char{bd}{-128}{##1}} + \CJK@namegdef{^^be}##1{\@empty\CJK@char{be}{-128}{##1}} + \CJK@namegdef{^^bf}##1{\@empty\CJK@char{bf}{-128}{##1}} + \CJK@namegdef{^^c0}##1{\@empty\CJK@char{c0}{-128}{##1}} + \CJK@namegdef{^^c1}##1{\@empty\CJK@char{c1}{-128}{##1}} + \CJK@namegdef{^^c2}##1{\@empty\CJK@char{c2}{-128}{##1}} + \CJK@namegdef{^^c3}##1{\@empty\CJK@char{c3}{-128}{##1}} + \CJK@namegdef{^^c4}##1{\@empty\CJK@char{c4}{-128}{##1}} + \CJK@namegdef{^^c5}##1{\@empty\CJK@char{c5}{-128}{##1}} + \CJK@namegdef{^^c6}##1{\@empty\CJK@char{c6}{-128}{##1}} + \CJK@namegdef{^^c7}##1{\@empty\CJK@char{c7}{-128}{##1}} + \CJK@namegdef{^^c8}##1{\@empty\CJK@char{c8}{-128}{##1}} + \CJK@namegdef{^^c9}##1{\@empty\CJK@char{c9}{-128}{##1}} + \CJK@namegdef{^^ca}##1{\@empty\CJK@char{ca}{-128}{##1}} + \CJK@namegdef{^^cb}##1{\@empty\CJK@char{cb}{-128}{##1}} + \CJK@namegdef{^^cc}##1{\@empty\CJK@char{cc}{-128}{##1}} + \CJK@namegdef{^^cd}##1{\@empty\CJK@char{cd}{-128}{##1}} + \CJK@namegdef{^^ce}##1{\@empty\CJK@char{ce}{-128}{##1}} + \CJK@namegdef{^^cf}##1{\@empty\CJK@char{cf}{-128}{##1}} + \CJK@namegdef{^^d0}##1{\@empty\CJK@char{d0}{-128}{##1}} + \CJK@namegdef{^^d1}##1{\@empty\CJK@char{d1}{-128}{##1}} + \CJK@namegdef{^^d2}##1{\@empty\CJK@char{d2}{-128}{##1}} + \CJK@namegdef{^^d3}##1{\@empty\CJK@char{d3}{-128}{##1}} + \CJK@namegdef{^^d4}##1{\@empty\CJK@char{d4}{-128}{##1}} + \CJK@namegdef{^^d5}##1{\@empty\CJK@char{d5}{-128}{##1}} + \CJK@namegdef{^^d6}##1{\@empty\CJK@char{d6}{-128}{##1}} + \CJK@namegdef{^^d7}##1{\@empty\CJK@char{d7}{-128}{##1}} + \CJK@namegdef{^^d8}##1{\@empty\CJK@char{d8}{-128}{##1}} + \CJK@namegdef{^^d9}##1{\@empty\CJK@char{d9}{-128}{##1}} + \CJK@namegdef{^^da}##1{\@empty\CJK@char{da}{-128}{##1}} + \CJK@namegdef{^^db}##1{\@empty\CJK@char{db}{-128}{##1}} + \CJK@namegdef{^^dc}##1{\@empty\CJK@char{dc}{-128}{##1}} + \CJK@namegdef{^^dd}##1{\@empty\CJK@char{dd}{-128}{##1}} + \CJK@namegdef{^^de}##1{\@empty\CJK@char{de}{-128}{##1}} + \CJK@namegdef{^^df}##1{\@empty\CJK@char{df}{-128}{##1}} + \CJK@namegdef{^^e0}##1{\@empty\CJK@char{e0}{-128}{##1}} + \CJK@namegdef{^^e1}##1{\@empty\CJK@char{e1}{-128}{##1}} + \CJK@namegdef{^^e2}##1{\@empty\CJK@char{e2}{-128}{##1}} + \CJK@namegdef{^^e3}##1{\@empty\CJK@char{e3}{-128}{##1}} + \CJK@namegdef{^^e4}##1{\@empty\CJK@char{e4}{-128}{##1}} + \CJK@namegdef{^^e5}##1{\@empty\CJK@char{e5}{-128}{##1}} + \CJK@namegdef{^^e6}##1{\@empty\CJK@char{e6}{-128}{##1}} + \CJK@namegdef{^^e7}##1{\@empty\CJK@char{e7}{-128}{##1}} + \CJK@namegdef{^^e8}##1{\@empty\CJK@char{e8}{-128}{##1}} + \CJK@namegdef{^^e9}##1{\@empty\CJK@char{e9}{-128}{##1}} + \CJK@namegdef{^^ea}##1{\@empty\CJK@char{ea}{-128}{##1}} + \CJK@namegdef{^^eb}##1{\@empty\CJK@char{eb}{-128}{##1}} + \CJK@namegdef{^^ec}##1{\@empty\CJK@char{ec}{-128}{##1}} + \CJK@namegdef{^^ed}##1{\@empty\CJK@char{ed}{-128}{##1}} + \CJK@namegdef{^^ee}##1{\@empty\CJK@char{ee}{-128}{##1}} + \CJK@namegdef{^^ef}##1{\@empty\CJK@char{ef}{-128}{##1}} + \CJK@namegdef{^^f0}##1{\@empty\CJK@char{f0}{-128}{##1}} + \CJK@namegdef{^^f1}##1{\@empty\CJK@char{f1}{-128}{##1}} + \CJK@namegdef{^^f2}##1{\@empty\CJK@char{f2}{-128}{##1}} + \CJK@namegdef{^^f3}##1{\@empty\CJK@char{f3}{-128}{##1}} + \CJK@namegdef{^^f4}##1{\@empty\CJK@char{f4}{-128}{##1}} + \CJK@namegdef{^^f5}##1{\@empty\CJK@char{f5}{-128}{##1}} + \CJK@namegdef{^^f6}##1{\@empty\CJK@char{f6}{-128}{##1}} + \CJK@namegdef{^^f7}##1{\@empty\CJK@char{f7}{-128}{##1}} + \CJK@namegdef{^^f8}##1{\@empty\CJK@char{f8}{-128}{##1}} + \CJK@namegdef{^^f9}##1{\@empty\CJK@char{f9}{-128}{##1}} + \CJK@namegdef{^^fa}##1{\@empty\CJK@char{fa}{-128}{##1}} + \CJK@namegdef{^^fb}##1{\@empty\CJK@char{fb}{-128}{##1}} + \CJK@namegdef{^^fc}##1{\@empty\CJK@char{fc}{-128}{##1}} + \CJK@namegdef{^^fd}##1{\@empty\CJK@char{fd}{-128}{##1}} + \CJK@namegdef{^^fe}##1{\@empty\CJK@char{fe}{-128}{##1}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/pmCsmall.enc b/language/chinese/CJK/cjk-4.8.5/texinput/pmCsmall.enc new file mode 100644 index 0000000000..2e64b23b90 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/pmCsmall.enc @@ -0,0 +1,133 @@ +% This is the file pmCsmall.enc of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{pmCsmall.enc}[\filedate\space\fileversion] + + +% old poor man's Chinese encoding: +% each plane gets an own font (Big 5, GB, JIS etc.). + +% small size: + +\gdef\CJK@pmCsmallEncoding{ + \CJK@loadChr{pmC} + + \CJK@namegdef{^^a1}##1{\@empty\CJK@punctchar{A1}{a1}{0}{##1}} + \CJK@namegdef{^^a2}##1{\@empty\CJK@punctchar{A2}{a2}{0}{##1}} + \CJK@namegdef{^^a3}##1{\@empty\CJK@punctchar{A3}{a3}{0}{##1}} + \CJK@namegdef{^^a4}##1{\@empty\CJK@punctchar{A4}{a4}{0}{##1}} + \CJK@namegdef{^^a5}##1{\@empty\CJK@punctchar{A5}{a5}{0}{##1}} + \CJK@namegdef{^^a6}##1{\@empty\CJK@char{a6}{0}{##1}} + \CJK@namegdef{^^a7}##1{\@empty\CJK@char{a7}{0}{##1}} + \CJK@namegdef{^^a8}##1{\@empty\CJK@char{a8}{0}{##1}} + \CJK@namegdef{^^a9}##1{\@empty\CJK@char{a9}{0}{##1}} + \CJK@namegdef{^^aa}##1{\@empty\CJK@char{aa}{0}{##1}} + \CJK@namegdef{^^ab}##1{\@empty\CJK@char{ab}{0}{##1}} + \CJK@namegdef{^^ac}##1{\@empty\CJK@char{ac}{0}{##1}} + \CJK@namegdef{^^ad}##1{\@empty\CJK@char{ad}{0}{##1}} + \CJK@namegdef{^^ae}##1{\@empty\CJK@char{ae}{0}{##1}} + \CJK@namegdef{^^af}##1{\@empty\CJK@char{af}{0}{##1}} + \CJK@namegdef{^^b0}##1{\@empty\CJK@char{b0}{0}{##1}} + \CJK@namegdef{^^b1}##1{\@empty\CJK@char{b1}{0}{##1}} + \CJK@namegdef{^^b2}##1{\@empty\CJK@char{b2}{0}{##1}} + \CJK@namegdef{^^b3}##1{\@empty\CJK@char{b3}{0}{##1}} + \CJK@namegdef{^^b4}##1{\@empty\CJK@char{b4}{0}{##1}} + \CJK@namegdef{^^b5}##1{\@empty\CJK@char{b5}{0}{##1}} + \CJK@namegdef{^^b6}##1{\@empty\CJK@char{b6}{0}{##1}} + \CJK@namegdef{^^b7}##1{\@empty\CJK@char{b7}{0}{##1}} + \CJK@namegdef{^^b8}##1{\@empty\CJK@char{b8}{0}{##1}} + \CJK@namegdef{^^b9}##1{\@empty\CJK@char{b9}{0}{##1}} + \CJK@namegdef{^^ba}##1{\@empty\CJK@char{ba}{0}{##1}} + \CJK@namegdef{^^bb}##1{\@empty\CJK@char{bb}{0}{##1}} + \CJK@namegdef{^^bc}##1{\@empty\CJK@char{bc}{0}{##1}} + \CJK@namegdef{^^bd}##1{\@empty\CJK@char{bd}{0}{##1}} + \CJK@namegdef{^^be}##1{\@empty\CJK@char{be}{0}{##1}} + \CJK@namegdef{^^bf}##1{\@empty\CJK@char{bf}{0}{##1}} + \CJK@namegdef{^^c0}##1{\@empty\CJK@char{c0}{0}{##1}} + \CJK@namegdef{^^c1}##1{\@empty\CJK@char{c1}{0}{##1}} + \CJK@namegdef{^^c2}##1{\@empty\CJK@char{c2}{0}{##1}} + \CJK@namegdef{^^c3}##1{\@empty\CJK@char{c3}{0}{##1}} + \CJK@namegdef{^^c4}##1{\@empty\CJK@char{c4}{0}{##1}} + \CJK@namegdef{^^c5}##1{\@empty\CJK@char{c5}{0}{##1}} + \CJK@namegdef{^^c6}##1{\@empty\CJK@char{c6}{0}{##1}} + \CJK@namegdef{^^c7}##1{\@empty\CJK@char{c7}{0}{##1}} + \CJK@namegdef{^^c8}##1{\@empty\CJK@char{c8}{0}{##1}} + \CJK@namegdef{^^c9}##1{\@empty\CJK@char{c9}{0}{##1}} + \CJK@namegdef{^^ca}##1{\@empty\CJK@char{ca}{0}{##1}} + \CJK@namegdef{^^cb}##1{\@empty\CJK@char{cb}{0}{##1}} + \CJK@namegdef{^^cc}##1{\@empty\CJK@char{cc}{0}{##1}} + \CJK@namegdef{^^cd}##1{\@empty\CJK@char{cd}{0}{##1}} + \CJK@namegdef{^^ce}##1{\@empty\CJK@char{ce}{0}{##1}} + \CJK@namegdef{^^cf}##1{\@empty\CJK@char{cf}{0}{##1}} + \CJK@namegdef{^^d0}##1{\@empty\CJK@char{d0}{0}{##1}} + \CJK@namegdef{^^d1}##1{\@empty\CJK@char{d1}{0}{##1}} + \CJK@namegdef{^^d2}##1{\@empty\CJK@char{d2}{0}{##1}} + \CJK@namegdef{^^d3}##1{\@empty\CJK@char{d3}{0}{##1}} + \CJK@namegdef{^^d4}##1{\@empty\CJK@char{d4}{0}{##1}} + \CJK@namegdef{^^d5}##1{\@empty\CJK@char{d5}{0}{##1}} + \CJK@namegdef{^^d6}##1{\@empty\CJK@char{d6}{0}{##1}} + \CJK@namegdef{^^d7}##1{\@empty\CJK@char{d7}{0}{##1}} + \CJK@namegdef{^^d8}##1{\@empty\CJK@char{d8}{0}{##1}} + \CJK@namegdef{^^d9}##1{\@empty\CJK@char{d9}{0}{##1}} + \CJK@namegdef{^^da}##1{\@empty\CJK@char{da}{0}{##1}} + \CJK@namegdef{^^db}##1{\@empty\CJK@char{db}{0}{##1}} + \CJK@namegdef{^^dc}##1{\@empty\CJK@char{dc}{0}{##1}} + \CJK@namegdef{^^dd}##1{\@empty\CJK@char{dd}{0}{##1}} + \CJK@namegdef{^^de}##1{\@empty\CJK@char{de}{0}{##1}} + \CJK@namegdef{^^df}##1{\@empty\CJK@char{df}{0}{##1}} + \CJK@namegdef{^^e0}##1{\@empty\CJK@char{e0}{0}{##1}} + \CJK@namegdef{^^e1}##1{\@empty\CJK@char{e1}{0}{##1}} + \CJK@namegdef{^^e2}##1{\@empty\CJK@char{e2}{0}{##1}} + \CJK@namegdef{^^e3}##1{\@empty\CJK@char{e3}{0}{##1}} + \CJK@namegdef{^^e4}##1{\@empty\CJK@char{e4}{0}{##1}} + \CJK@namegdef{^^e5}##1{\@empty\CJK@char{e5}{0}{##1}} + \CJK@namegdef{^^e6}##1{\@empty\CJK@char{e6}{0}{##1}} + \CJK@namegdef{^^e7}##1{\@empty\CJK@char{e7}{0}{##1}} + \CJK@namegdef{^^e8}##1{\@empty\CJK@char{e8}{0}{##1}} + \CJK@namegdef{^^e9}##1{\@empty\CJK@char{e9}{0}{##1}} + \CJK@namegdef{^^ea}##1{\@empty\CJK@char{ea}{0}{##1}} + \CJK@namegdef{^^eb}##1{\@empty\CJK@char{eb}{0}{##1}} + \CJK@namegdef{^^ec}##1{\@empty\CJK@char{ec}{0}{##1}} + \CJK@namegdef{^^ed}##1{\@empty\CJK@char{ed}{0}{##1}} + \CJK@namegdef{^^ee}##1{\@empty\CJK@char{ee}{0}{##1}} + \CJK@namegdef{^^ef}##1{\@empty\CJK@char{ef}{0}{##1}} + \CJK@namegdef{^^f0}##1{\@empty\CJK@char{f0}{0}{##1}} + \CJK@namegdef{^^f1}##1{\@empty\CJK@char{f1}{0}{##1}} + \CJK@namegdef{^^f2}##1{\@empty\CJK@char{f2}{0}{##1}} + \CJK@namegdef{^^f3}##1{\@empty\CJK@char{f3}{0}{##1}} + \CJK@namegdef{^^f4}##1{\@empty\CJK@char{f4}{0}{##1}} + \CJK@namegdef{^^f5}##1{\@empty\CJK@char{f5}{0}{##1}} + \CJK@namegdef{^^f6}##1{\@empty\CJK@char{f6}{0}{##1}} + \CJK@namegdef{^^f7}##1{\@empty\CJK@char{f7}{0}{##1}} + \CJK@namegdef{^^f8}##1{\@empty\CJK@char{f8}{0}{##1}} + \CJK@namegdef{^^f9}##1{\@empty\CJK@char{f9}{0}{##1}} + \CJK@namegdef{^^fa}##1{\@empty\CJK@char{fa}{0}{##1}} + \CJK@namegdef{^^fb}##1{\@empty\CJK@char{fb}{0}{##1}} + \CJK@namegdef{^^fc}##1{\@empty\CJK@char{fc}{0}{##1}} + \CJK@namegdef{^^fd}##1{\@empty\CJK@char{fd}{0}{##1}} + \CJK@namegdef{^^fe}##1{\@empty\CJK@char{fe}{0}{##1}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/ruby.sty b/language/chinese/CJK/cjk-4.8.5/texinput/ruby.sty new file mode 100644 index 0000000000..708a62522c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/ruby.sty @@ -0,0 +1,174 @@ +% This is the file ruby.sty of the CJK package +% for displaying ruby (i.e. furigana). +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\NeedsTeXFormat{LaTeX2e}[1995/06/01] +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesPackage{ruby}[\filedate\space\fileversion] + + +\RequirePackage{CJK}[1996/11/20] + +\newif\ifruby@overlap@ +\newif\ifruby@CJK@ + +\DeclareOption{overlap}{\ruby@overlap@true} +\DeclareOption{nooverlap}{\ruby@overlap@false} +\DeclareOption{CJK}{\ruby@CJK@true} +\DeclareOption{latin}{\ruby@CJK@false} + +\ExecuteOptions{overlap, CJK} + +\ProcessOptions + + +% we suppress any unwanted spaces produced by linefeeds. + +\endlinechar \m@ne + +% to get a small separation between adjacent lines. + +\lineskiplimit 1pt + + +\newdimen\ruby@width +\edef\ruby@kern{\kern -5sp\kern 5sp} + +\newcommand{\rubysize}{0.4} +\newcommand{\rubysep}{-0.5ex} +\newcommand{\rubyoverlap}{\ruby@overlap@true} +\newcommand{\rubynooverlap}{\ruby@overlap@false} +\newcommand{\rubyCJK}{\ruby@CJK@true} +\newcommand{\rubylatin}{\ruby@CJK@false} + + +% #1 is the base character; #2 is the ruby. + +\DeclareRobustCommand{\ruby}[2]{ + {\@tempdimc \f@size\p@ + \@tempdimc \rubysize\@tempdimc + \sbox\z@{\vrule\@height.7\baselineskip\@depth\z@\@width\z@ #1} + \sbox\@tempboxa{\fontsize{\@tempdimc}{1.2\@tempdimc}\selectfont + \vrule\@height\z@\@depth.3\baselineskip\@width\z@ #2} + + % save width value of previous ruby (if applicable) + \@tempdimb\ruby@width + + \global\ruby@width \wd\@tempboxa + \global\advance\ruby@width -\wd\z@ + \ifdim\ruby@width > \z@ + \global\divide\ruby@width \tw@ + \else + \global\ruby@width \z@ + \fi + + % we first compute the box of the ruby with its base character(s). + \ifruby@overlap@ + \setbox\@tempboxa \vbox{ + \hbox to \wd0{\hss \box\@tempboxa \hss} + \nointerlineskip + \kern\rubysep + \box\z@} + \else + \ifdim\ruby@width > \z@ + \@tempdima \wd\@tempboxa + \else + \@tempdima \wd\z@ + \fi + \setbox\@tempboxa \vbox{ + \hbox to \@tempdima{\hss \box\@tempboxa \hss} + \nointerlineskip + \kern\rubysep + \hbox to \@tempdima{\hss \box\z@ \hss}} + \fi + + % are we at the beginning of a paragraph? + \ifvmode + \leavevmode + \ifruby@overlap@ + \kern\ruby@width + \fi + \else + + % has previous character a ruby with \ruby@width > 0? + \ifnum\lastkern = 5% \ruby@kern + \kern\@tempdimb + \ifruby@CJK@ + \nobreak + \CJKglue + \nobreak + \fi + \ifruby@overlap@ + \kern\ruby@width + \fi + \else + + \ifruby@CJK@ + + % is previous character an ordinary CJK character? + \ifnum\lastkern = \@ne% \CJK@CJK + \ifdim\ruby@width > \z@ + \nobreak + \CJKglue + \nobreak + \else + \CJKglue + \fi + \else + + % is previous character a punctuation character? + \ifnum\lastkern = \tw@% \CJK@kern + \nobreak + \CJKglue + \nobreak + \fi + \fi + \fi + \fi + \fi + + \box\@tempboxa + + \ifdim\ruby@width > \z@ + \ruby@kern + \ifruby@overlap@ + \else + \global\ruby@width\z@ + \fi + \else + \kern -1sp + \kern 1sp + \global\ruby@width\z@ + \fi} + + \ifruby@CJK@ + \ignorespaces + \fi} + + +% reset endline character. + +\endlinechar `\^^M + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/standard.bdg b/language/chinese/CJK/cjk-4.8.5/texinput/standard.bdg new file mode 100644 index 0000000000..dc0a5f18a2 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/standard.bdg @@ -0,0 +1,161 @@ +% This is the file standard.bdg of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{standard.bdg}[\filedate\space\fileversion] + + +% The standard bindings for two byte encodings. + +\gdef\CJK@standardBinding{ +% 80 % used with cjk-enc.el/CEF + \CJK@nameppdef{^^81} + \CJK@nameppdef{^^82} + \CJK@nameppdef{^^83} + \CJK@nameppdef{^^84} + \CJK@nameppdef{^^85} + \CJK@nameppdef{^^86} + \CJK@nameppdef{^^87} + \CJK@nameppdef{^^88} + \CJK@nameppdef{^^89} + \CJK@nameppdef{^^8a} + \CJK@nameppdef{^^8b} + \CJK@nameppdef{^^8c} + \CJK@nameppdef{^^8d} + \CJK@nameppdef{^^8e} + \CJK@nameppdef{^^8f} + \CJK@nameppdef{^^90} + \CJK@nameppdef{^^91} + \CJK@nameppdef{^^92} + \CJK@nameppdef{^^93} + \CJK@nameppdef{^^94} + \CJK@nameppdef{^^95} + \CJK@nameppdef{^^96} + \CJK@nameppdef{^^97} + \CJK@nameppdef{^^98} + \CJK@nameppdef{^^99} + \CJK@nameppdef{^^9a} + \CJK@nameppdef{^^9b} + \CJK@nameppdef{^^9c} + \CJK@nameppdef{^^9d} + \CJK@nameppdef{^^9e} + \CJK@nameppdef{^^9f} + \CJK@nameppdef{^^a0} + \CJK@nameppdef{^^a1} + \CJK@nameppdef{^^a2} + \CJK@nameppdef{^^a3} + \CJK@nameppdef{^^a4} + \CJK@nameppdef{^^a5} + \CJK@nameppdef{^^a6} + \CJK@nameppdef{^^a7} + \CJK@nameppdef{^^a8} + \CJK@nameppdef{^^a9} + \CJK@nameppdef{^^aa} + \CJK@nameppdef{^^ab} + \CJK@nameppdef{^^ac} + \CJK@nameppdef{^^ad} + \CJK@nameppdef{^^ae} + \CJK@nameppdef{^^af} + \CJK@nameppdef{^^b0} + \CJK@nameppdef{^^b1} + \CJK@nameppdef{^^b2} + \CJK@nameppdef{^^b3} + \CJK@nameppdef{^^b4} + \CJK@nameppdef{^^b5} + \CJK@nameppdef{^^b6} + \CJK@nameppdef{^^b7} + \CJK@nameppdef{^^b8} + \CJK@nameppdef{^^b9} + \CJK@nameppdef{^^ba} + \CJK@nameppdef{^^bb} + \CJK@nameppdef{^^bc} + \CJK@nameppdef{^^bd} + \CJK@nameppdef{^^be} + \CJK@nameppdef{^^bf} + \CJK@nameppdef{^^c0} + \CJK@nameppdef{^^c1} + \CJK@nameppdef{^^c2} + \CJK@nameppdef{^^c3} + \CJK@nameppdef{^^c4} + \CJK@nameppdef{^^c5} + \CJK@nameppdef{^^c6} + \CJK@nameppdef{^^c7} + \CJK@nameppdef{^^c8} + \CJK@nameppdef{^^c9} + \CJK@nameppdef{^^ca} + \CJK@nameppdef{^^cb} + \CJK@nameppdef{^^cc} + \CJK@nameppdef{^^cd} + \CJK@nameppdef{^^ce} + \CJK@nameppdef{^^cf} + \CJK@nameppdef{^^d0} + \CJK@nameppdef{^^d1} + \CJK@nameppdef{^^d2} + \CJK@nameppdef{^^d3} + \CJK@nameppdef{^^d4} + \CJK@nameppdef{^^d5} + \CJK@nameppdef{^^d6} + \CJK@nameppdef{^^d7} + \CJK@nameppdef{^^d8} + \CJK@nameppdef{^^d9} + \CJK@nameppdef{^^da} + \CJK@nameppdef{^^db} + \CJK@nameppdef{^^dc} + \CJK@nameppdef{^^dd} + \CJK@nameppdef{^^de} + \CJK@nameppdef{^^df} + \CJK@nameppdef{^^e0} + \CJK@nameppdef{^^e1} + \CJK@nameppdef{^^e2} + \CJK@nameppdef{^^e3} + \CJK@nameppdef{^^e4} + \CJK@nameppdef{^^e5} + \CJK@nameppdef{^^e6} + \CJK@nameppdef{^^e7} + \CJK@nameppdef{^^e8} + \CJK@nameppdef{^^e9} + \CJK@nameppdef{^^ea} + \CJK@nameppdef{^^eb} + \CJK@nameppdef{^^ec} + \CJK@nameppdef{^^ed} + \CJK@nameppdef{^^ee} + \CJK@nameppdef{^^ef} + \CJK@nameppdef{^^f0} + \CJK@nameppdef{^^f1} + \CJK@nameppdef{^^f2} + \CJK@nameppdef{^^f3} + \CJK@nameppdef{^^f4} + \CJK@nameppdef{^^f5} + \CJK@nameppdef{^^f6} + \CJK@nameppdef{^^f7} + \CJK@nameppdef{^^f8} + \CJK@nameppdef{^^f9} + \CJK@nameppdef{^^fa} + \CJK@nameppdef{^^fb} + \CJK@nameppdef{^^fc} + \CJK@nameppdef{^^fd} + \CJK@nameppdef{^^fe}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/standard.chr b/language/chinese/CJK/cjk-4.8.5/texinput/standard.chr new file mode 100644 index 0000000000..e1669a627f --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/standard.chr @@ -0,0 +1,203 @@ +% This is the file standard.chr of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{standard.chr}[\filedate\space\fileversion] + + +% define macros for handling standard CJK fonts and characters. + +\gdef\CJK@standardChr{ + \CJK@global\def\CJK@char##1##2##3{ + {\ifnum ##3 < \CJK@min + \CJK@err + \else + \ifnum ##3 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##3\relax + \advance\@tempcnta ##2\relax + \edef\CJK@plane{##1} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% the same, but the plane crosses the font file boundary. + + \CJK@global\def\CJK@charx##1##2##3##4{ + {\ifnum ##4 < \CJK@min + \CJK@err + \else + \ifnum ##4 > \CJK@max + \CJK@err + \else + \CJK@testLastCJK + \ifCJK@ + \CJKglue + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##4\relax + \@tempcntb 256\relax + \advance\@tempcnta ##3\relax + \advance\@tempcntb -##3\relax + \chardef\@temp \@tempcntb + \ifnum ##4 < \@temp + \edef\CJK@plane{##1} + \else + \advance\@tempcnta -256\relax + \edef\CJK@plane{##2} + \fi + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@CJK + \fi + \fi}} + +% for punctuation. + + \CJK@global\def\CJK@punctchar##1##2##3##4{ + {\ifnum ##4 < \CJK@min + \CJK@err + \else + \ifnum ##4 > \CJK@max + \CJK@err + \else + \CJK@numbToHex{\CJK@gtemp}{##4} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##4\relax + \advance\@tempcnta ##3\relax + \edef\CJK@plane{##2} + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \fi + \fi}} + + \CJK@global\def\CJK@punctcharx##1##2##3##4##5{ + {\ifnum ##5 < \CJK@min + \CJK@err + \else + \ifnum ##5 > \CJK@max + \CJK@err + \else + \CJK@numbToHex{\CJK@gtemp}{##5} + \CJK@testLastCJK + \ifCJK@ + \CJK@testPostPunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@nobreakglue + \else + \CJKglue + \fi + \fi + \CJK@testLastKern + \ifCJK@ + \CJK@nobreakglue + \fi + + \@tempcnta ##5\relax + \@tempcntb 256\relax + \advance\@tempcnta ##4\relax + \advance\@tempcntb -##4\relax + \chardef\@temp \@tempcntb + \ifnum ##5 < \@temp + \edef\CJK@plane{##2} + \else + \advance\@tempcnta -256\relax + \edef\CJK@plane{##3} + \fi + \usefont{\CJK@enc}{\CJK@family}{\CJK@series}{\CJK@shape} + \edef\reserved@a{ + \curr@fontshape/\CJK@plane/\the\@tempcnta/\CJK@direction} + \expandafter\ifx\csname\reserved@a\endcsname \relax + \CJKpunctsymbol{\@tempcnta} + \else + \csname\reserved@a\endcsname + \fi + + \CJK@testPrePunct{\CJK@punctEnc}{##1}{\CJK@gtemp} + \ifCJK@ + \CJK@kern + \else + \CJK@CJK + \fi + \fi + \fi}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/standard.enc b/language/chinese/CJK/cjk-4.8.5/texinput/standard.enc new file mode 100644 index 0000000000..d54df3a37b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/standard.enc @@ -0,0 +1,131 @@ +% This is the file standard.enc of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{standard.enc}[\filedate\space\fileversion] + + +% standard encoding: +% each plane has 94 characters (GB, JIS etc.) (0xA1 - 0xFE). + +\gdef\CJK@standardEncoding{ + \CJK@loadChr{standard} + + \CJK@namegdef{^^a1}##1{\@empty\CJK@punctchar {A1}{01}{-161}{##1}} + \CJK@namegdef{^^a2}##1{\@empty\CJK@punctchar {A2}{01}{ -67}{##1}} + \CJK@namegdef{^^a3}##1{\@empty\CJK@punctcharx{A3}{01}{02}{27}{##1}} + \CJK@namegdef{^^a4}##1{\@empty\CJK@punctchar {A4}{02}{-135}{##1}} + \CJK@namegdef{^^a5}##1{\@empty\CJK@punctchar {A5}{02}{ -41}{##1}} + \CJK@namegdef{^^a6}##1{\@empty\CJK@charx{02}{03}{53}{##1}} + \CJK@namegdef{^^a7}##1{\@empty\CJK@char {03}{-109}{##1}} + \CJK@namegdef{^^a8}##1{\@empty\CJK@char {03}{ -15}{##1}} + \CJK@namegdef{^^a9}##1{\@empty\CJK@charx{03}{04}{79}{##1}} + \CJK@namegdef{^^aa}##1{\@empty\CJK@char {04}{ -83}{##1}} + \CJK@namegdef{^^ab}##1{\@empty\CJK@charx{04}{05}{11}{##1}} + \CJK@namegdef{^^ac}##1{\@empty\CJK@char {05}{-151}{##1}} + \CJK@namegdef{^^ad}##1{\@empty\CJK@char {05}{ -57}{##1}} + \CJK@namegdef{^^ae}##1{\@empty\CJK@charx{05}{06}{37}{##1}} + \CJK@namegdef{^^af}##1{\@empty\CJK@char {06}{-125}{##1}} + \CJK@namegdef{^^b0}##1{\@empty\CJK@char {06}{ -31}{##1}} + \CJK@namegdef{^^b1}##1{\@empty\CJK@charx{06}{07}{63}{##1}} + \CJK@namegdef{^^b2}##1{\@empty\CJK@char {07}{ -99}{##1}} + \CJK@namegdef{^^b3}##1{\@empty\CJK@char {07}{ -5}{##1}} + \CJK@namegdef{^^b4}##1{\@empty\CJK@charx{07}{08}{89}{##1}} + \CJK@namegdef{^^b5}##1{\@empty\CJK@char {08}{ -73}{##1}} + \CJK@namegdef{^^b6}##1{\@empty\CJK@charx{08}{09}{21}{##1}} + \CJK@namegdef{^^b7}##1{\@empty\CJK@char {09}{-141}{##1}} + \CJK@namegdef{^^b8}##1{\@empty\CJK@char {09}{ -47}{##1}} + \CJK@namegdef{^^b9}##1{\@empty\CJK@charx{09}{10}{47}{##1}} + \CJK@namegdef{^^ba}##1{\@empty\CJK@char {10}{-115}{##1}} + \CJK@namegdef{^^bb}##1{\@empty\CJK@char {10}{ -21}{##1}} + \CJK@namegdef{^^bc}##1{\@empty\CJK@charx{10}{11}{73}{##1}} + \CJK@namegdef{^^bd}##1{\@empty\CJK@char {11}{ -89}{##1}} + \CJK@namegdef{^^be}##1{\@empty\CJK@charx{11}{12}{ 5}{##1}} + \CJK@namegdef{^^bf}##1{\@empty\CJK@char {12}{-157}{##1}} + \CJK@namegdef{^^c0}##1{\@empty\CJK@char {12}{ -63}{##1}} + \CJK@namegdef{^^c1}##1{\@empty\CJK@charx{12}{13}{31}{##1}} + \CJK@namegdef{^^c2}##1{\@empty\CJK@char {13}{-131}{##1}} + \CJK@namegdef{^^c3}##1{\@empty\CJK@char {13}{ -37}{##1}} + \CJK@namegdef{^^c4}##1{\@empty\CJK@charx{13}{14}{57}{##1}} + \CJK@namegdef{^^c5}##1{\@empty\CJK@char {14}{-105}{##1}} + \CJK@namegdef{^^c6}##1{\@empty\CJK@char {14}{ -11}{##1}} + \CJK@namegdef{^^c7}##1{\@empty\CJK@charx{14}{15}{83}{##1}} + \CJK@namegdef{^^c8}##1{\@empty\CJK@char {15}{ -79}{##1}} + \CJK@namegdef{^^c9}##1{\@empty\CJK@charx{15}{16}{15}{##1}} + \CJK@namegdef{^^ca}##1{\@empty\CJK@char {16}{-147}{##1}} + \CJK@namegdef{^^cb}##1{\@empty\CJK@char {16}{ -53}{##1}} + \CJK@namegdef{^^cc}##1{\@empty\CJK@charx{16}{17}{41}{##1}} + \CJK@namegdef{^^cd}##1{\@empty\CJK@char {17}{-121}{##1}} + \CJK@namegdef{^^ce}##1{\@empty\CJK@char {17}{ -27}{##1}} + \CJK@namegdef{^^cf}##1{\@empty\CJK@charx{17}{18}{67}{##1}} + \CJK@namegdef{^^d0}##1{\@empty\CJK@char {18}{ -95}{##1}} + \CJK@namegdef{^^d1}##1{\@empty\CJK@char {18}{ -1}{##1}} + \CJK@namegdef{^^d2}##1{\@empty\CJK@charx{18}{19}{93}{##1}} + \CJK@namegdef{^^d3}##1{\@empty\CJK@char {19}{ -69}{##1}} + \CJK@namegdef{^^d4}##1{\@empty\CJK@charx{19}{20}{25}{##1}} + \CJK@namegdef{^^d5}##1{\@empty\CJK@char {20}{-137}{##1}} + \CJK@namegdef{^^d6}##1{\@empty\CJK@char {20}{ -43}{##1}} + \CJK@namegdef{^^d7}##1{\@empty\CJK@charx{20}{21}{51}{##1}} + \CJK@namegdef{^^d8}##1{\@empty\CJK@char {21}{-111}{##1}} + \CJK@namegdef{^^d9}##1{\@empty\CJK@char {21}{ -17}{##1}} + \CJK@namegdef{^^da}##1{\@empty\CJK@charx{21}{22}{77}{##1}} + \CJK@namegdef{^^db}##1{\@empty\CJK@char {22}{ -85}{##1}} + \CJK@namegdef{^^dc}##1{\@empty\CJK@charx{22}{23}{ 9}{##1}} + \CJK@namegdef{^^dd}##1{\@empty\CJK@char {23}{-153}{##1}} + \CJK@namegdef{^^de}##1{\@empty\CJK@char {23}{ -59}{##1}} + \CJK@namegdef{^^df}##1{\@empty\CJK@charx{23}{24}{35}{##1}} + \CJK@namegdef{^^e0}##1{\@empty\CJK@char {24}{-127}{##1}} + \CJK@namegdef{^^e1}##1{\@empty\CJK@char {24}{ -33}{##1}} + \CJK@namegdef{^^e2}##1{\@empty\CJK@charx{24}{25}{61}{##1}} + \CJK@namegdef{^^e3}##1{\@empty\CJK@char {25}{-101}{##1}} + \CJK@namegdef{^^e4}##1{\@empty\CJK@char {25}{ -7}{##1}} + \CJK@namegdef{^^e5}##1{\@empty\CJK@charx{25}{26}{87}{##1}} + \CJK@namegdef{^^e6}##1{\@empty\CJK@char {26}{ -75}{##1}} + \CJK@namegdef{^^e7}##1{\@empty\CJK@charx{26}{27}{19}{##1}} + \CJK@namegdef{^^e8}##1{\@empty\CJK@char {27}{-143}{##1}} + \CJK@namegdef{^^e9}##1{\@empty\CJK@char {27}{ -49}{##1}} + \CJK@namegdef{^^ea}##1{\@empty\CJK@charx{27}{28}{45}{##1}} + \CJK@namegdef{^^eb}##1{\@empty\CJK@char {28}{-117}{##1}} + \CJK@namegdef{^^ec}##1{\@empty\CJK@char {28}{ -23}{##1}} + \CJK@namegdef{^^ed}##1{\@empty\CJK@charx{28}{29}{71}{##1}} + \CJK@namegdef{^^ee}##1{\@empty\CJK@char {29}{ -91}{##1}} + \CJK@namegdef{^^ef}##1{\@empty\CJK@charx{29}{30}{ 3}{##1}} + \CJK@namegdef{^^f0}##1{\@empty\CJK@char {30}{-159}{##1}} + \CJK@namegdef{^^f1}##1{\@empty\CJK@char {30}{ -65}{##1}} + \CJK@namegdef{^^f2}##1{\@empty\CJK@charx{30}{31}{29}{##1}} + \CJK@namegdef{^^f3}##1{\@empty\CJK@char {31}{-133}{##1}} + \CJK@namegdef{^^f4}##1{\@empty\CJK@char {31}{ -39}{##1}} + \CJK@namegdef{^^f5}##1{\@empty\CJK@charx{31}{32}{55}{##1}} + \CJK@namegdef{^^f6}##1{\@empty\CJK@char {32}{-107}{##1}} + \CJK@namegdef{^^f7}##1{\@empty\CJK@char {32}{ -13}{##1}} + \CJK@namegdef{^^f8}##1{\@empty\CJK@charx{32}{33}{81}{##1}} + \CJK@namegdef{^^f9}##1{\@empty\CJK@char {33}{ -81}{##1}} + \CJK@namegdef{^^fa}##1{\@empty\CJK@charx{33}{34}{13}{##1}} + \CJK@namegdef{^^fb}##1{\@empty\CJK@char {34}{-149}{##1}} + \CJK@namegdef{^^fc}##1{\@empty\CJK@char {34}{ -55}{##1}} + \CJK@namegdef{^^fd}##1{\@empty\CJK@charx{34}{35}{39}{##1}} + \CJK@namegdef{^^fe}##1{\@empty\CJK@char {35}{-123}{##1}}} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90cmr.fd b/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90cmr.fd new file mode 100644 index 0000000000..d65fbf8eff --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90cmr.fd @@ -0,0 +1,24 @@ +% This is the file c90cmr.fd of the CJK package +% for using Thai with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c90cmr.fd}[\filedate\space\fileversion] + + +% Thai +% +% font encoding: OT1-like + TIS 620 + Thai glyph variants + +\DeclareFontFamily{C90}{cmr}{} + +\DeclareFontShape{C90}{cmr}{m} {n} {<-> ssub * nrsr/m/n}{} +\DeclareFontShape{C90}{cmr}{bx}{n} {<-> ssub * nrsr/bx/n}{} +\DeclareFontShape{C90}{cmr}{m} {it}{<-> ssub * nrsr/m/it}{} +\DeclareFontShape{C90}{cmr}{bx}{it}{<-> ssub * nrsr/bx/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90cmss.fd b/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90cmss.fd new file mode 100644 index 0000000000..240713a34b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90cmss.fd @@ -0,0 +1,24 @@ +% This is the file c90cmss.fd of the CJK package +% for using Thai with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c90cmss.fd}[\filedate\space\fileversion] + + +% Thai +% +% font encoding: OT1-like + TIS 620 + Thai glyph variants + +\DeclareFontFamily{C90}{cmss}{} + +\DeclareFontShape{C90}{cmss}{m} {n} {<-> ssub * gar/m/n}{} +\DeclareFontShape{C90}{cmss}{bx}{n} {<-> ssub * gar/bx/n}{} +\DeclareFontShape{C90}{cmss}{m} {it}{<-> ssub * gar/m/it}{} +\DeclareFontShape{C90}{cmss}{bx}{it}{<-> ssub * gar/bx/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90cmtt.fd b/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90cmtt.fd new file mode 100644 index 0000000000..bf50798389 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90cmtt.fd @@ -0,0 +1,24 @@ +% This is the file c90cmtt.fd of the CJK package +% for using Thai with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c90cmtt.fd}[\filedate\space\fileversion] + + +% Thai +% +% font encoding: OT1-like + TIS 620 + Thai glyph variants + +\DeclareFontFamily{C90}{cmtt}{} + +\DeclareFontShape{C90}{cmtt}{m} {n} {<-> ssub * gar/m/n}{} +\DeclareFontShape{C90}{cmtt}{bx}{n} {<-> ssub * gar/bx/n}{} +\DeclareFontShape{C90}{cmtt}{m} {it}{<-> ssub * gar/m/it}{} +\DeclareFontShape{C90}{cmtt}{bx}{it}{<-> ssub * gar/bx/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90enc.def b/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90enc.def new file mode 100644 index 0000000000..428e8e3801 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90enc.def @@ -0,0 +1,110 @@ +% (C) 2002 Dominique Unruh, LPPL +% The macros in the Thai part are oriented on TIS620, i.e. each +% letter in TIS620 is represented by exactly one macro. +% No reordering whatsoever is required. +% +\NeedsTeXFormat{LaTeX2e}[1998/12/01] +\ProvidesFile{c90enc.def}[2002/06/06 Encoding C90 for Thai] +\DeclareFontEncoding{C90}{}{} +\DeclareFontSubstitution{C90}{nrsr}{m}{n} +% +\DeclareTextSymbol{\textemdash}{C90}{"0C} +\DeclareTextSymbol{\textendash}{C90}{"0B} +\DeclareTextSymbol{\textquotedbl}{C90}{"11} +\DeclareTextSymbol{\textquotedblleft}{C90}{"0DD} +\DeclareTextSymbol{\textquotedblright}{C90}{"22} +\DeclareTextSymbol{\textquoteleft}{C90}{`\`} +\DeclareTextSymbol{\textquoteright}{C90}{`\'} +\DeclareTextSymbol{\textbraceleft}{C90}{`\{} +\DeclareTextSymbol{\textbraceright}{C90}{`\}} +\DeclareTextSymbol{\textbar}{C90}{`\|} +% +\DeclareTextSymbol{\thaiKoKai}{C90}{161} +\DeclareTextSymbol{\thaiKhoKhai}{C90}{162} +\DeclareTextSymbol{\thaiKhoKhuat}{C90}{163} +\DeclareTextSymbol{\thaiKhoKhwai}{C90}{164} +\DeclareTextSymbol{\thaiKhoKhon}{C90}{165} +\DeclareTextSymbol{\thaiKhoRakhang}{C90}{166} +\DeclareTextSymbol{\thaiNgoNgu}{C90}{167} +\DeclareTextSymbol{\thaiChoChan}{C90}{168} +\DeclareTextSymbol{\thaiChoChing}{C90}{169} +\DeclareTextSymbol{\thaiChoChang}{C90}{170} +\DeclareTextSymbol{\thaiSoSo}{C90}{171} +\DeclareTextSymbol{\thaiChoChoe}{C90}{172} +\DeclareTextSymbol{\thaiYoYing}{C90}{173} +\DeclareTextSymbol{\thaiDoChada}{C90}{174} +\DeclareTextSymbol{\thaiToPatak}{C90}{175} +\DeclareTextSymbol{\thaiThoThan}{C90}{176} +\DeclareTextSymbol{\thaiThoNangmontho}{C90}{177} +\DeclareTextSymbol{\thaiThoPhuthao}{C90}{178} +\DeclareTextSymbol{\thaiNoNen}{C90}{179} +\DeclareTextSymbol{\thaiDoDek}{C90}{180} +\DeclareTextSymbol{\thaiToTao}{C90}{181} +\DeclareTextSymbol{\thaiThoThung}{C90}{182} +\DeclareTextSymbol{\thaiThoThahan}{C90}{183} +\DeclareTextSymbol{\thaiThoThong}{C90}{184} +\DeclareTextSymbol{\thaiNoNu}{C90}{185} +\DeclareTextSymbol{\thaiBoBaimai}{C90}{186} +\DeclareTextSymbol{\thaiPoPla}{C90}{187} +\DeclareTextSymbol{\thaiPhoPhung}{C90}{188} +\DeclareTextSymbol{\thaiFoFa}{C90}{189} +\DeclareTextSymbol{\thaiPhoPhan}{C90}{190} +\DeclareTextSymbol{\thaiFoFan}{C90}{191} +\DeclareTextSymbol{\thaiPhoSamphao}{C90}{192} +\DeclareTextSymbol{\thaiMoMa}{C90}{193} +\DeclareTextSymbol{\thaiYoYak}{C90}{194} +\DeclareTextSymbol{\thaiRoRua}{C90}{195} +\DeclareTextSymbol{\thaiRu}{C90}{196} +\DeclareTextSymbol{\thaiLoLing}{C90}{197} +\DeclareTextSymbol{\thaiLu}{C90}{198} +\DeclareTextSymbol{\thaiWoWaen}{C90}{199} +\DeclareTextSymbol{\thaiSoSala}{C90}{200} +\DeclareTextSymbol{\thaiSoRusi}{C90}{201} +\DeclareTextSymbol{\thaiSoSua}{C90}{202} +\DeclareTextSymbol{\thaiHoHip}{C90}{203} +\DeclareTextSymbol{\thaiLoChula}{C90}{204} +\DeclareTextSymbol{\thaiOAng}{C90}{205} +\DeclareTextSymbol{\thaiHoNokhuk}{C90}{206} +\DeclareTextSymbol{\thaiPaiyannoi}{C90}{207} +\DeclareTextSymbol{\thaiSaraA}{C90}{208} +\DeclareTextSymbol{\thaiMaiHanakat}{C90}{209} +\DeclareTextSymbol{\thaiSaraAa}{C90}{210} +\DeclareTextSymbol{\thaiSaraAm}{C90}{211} +\DeclareTextSymbol{\thaiSaraI}{C90}{212} +\DeclareTextSymbol{\thaiSaraIi}{C90}{213} +\DeclareTextSymbol{\thaiSaraUe}{C90}{214} +\DeclareTextSymbol{\thaiSaraUee}{C90}{215} +\DeclareTextSymbol{\thaiSaraU}{C90}{216} +\DeclareTextSymbol{\thaiSaraUu}{C90}{217} +\DeclareTextSymbol{\thaiPhinthu}{C90}{218} +\DeclareTextSymbol{\textbaht}{C90}{223} +\DeclareTextSymbol{\thaiSaraE}{C90}{224} +\DeclareTextSymbol{\thaiSaraAe}{C90}{225} +\DeclareTextSymbol{\thaiSaraO}{C90}{226} +\DeclareTextSymbol{\thaiSaraAiMaimuan}{C90}{227} +\DeclareTextSymbol{\thaiSaraAiMaimalai}{C90}{228} +\DeclareTextSymbol{\thaiLakkhangyao}{C90}{229} +\DeclareTextSymbol{\thaiMaiyamok}{C90}{230} +\DeclareTextSymbol{\thaiMaitaikhu}{C90}{231} +\DeclareTextSymbol{\thaiMaiEk}{C90}{232} +\DeclareTextSymbol{\thaiMaiTho}{C90}{233} +\DeclareTextSymbol{\thaiMaiTri}{C90}{234} +\DeclareTextSymbol{\thaiMaiChattawa}{C90}{235} +\DeclareTextSymbol{\thaiThanthakhat}{C90}{236} +\DeclareTextSymbol{\thaiNikhahit}{C90}{237} +\DeclareTextSymbol{\thaiYamakkan}{C90}{238} +\DeclareTextSymbol{\thaiFongman}{C90}{239} +\DeclareTextSymbol{\thaizero}{C90}{240} +\DeclareTextSymbol{\thaione}{C90}{241} +\DeclareTextSymbol{\thaitwo}{C90}{242} +\DeclareTextSymbol{\thaithree}{C90}{243} +\DeclareTextSymbol{\thaifour}{C90}{244} +\DeclareTextSymbol{\thaifive}{C90}{245} +\DeclareTextSymbol{\thaisix}{C90}{246} +\DeclareTextSymbol{\thaiseven}{C90}{247} +\DeclareTextSymbol{\thaieight}{C90}{248} +\DeclareTextSymbol{\thainine}{C90}{249} +\DeclareTextSymbol{\thaiAngkhankhu}{C90}{250} +\DeclareTextSymbol{\thaiKhomut}{C90}{251} +% +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90gar.fd b/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90gar.fd new file mode 100644 index 0000000000..69998e058b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90gar.fd @@ -0,0 +1,34 @@ +%Filename: c90gar.fd +%Created by: tex garuda-c90 +%Created using fontinst v1.927 + +%THIS FILE SHOULD BE PUT IN A TEX INPUTS DIRECTORY + +\ProvidesFile{c90gar.fd} + [2005/07/04 Fontinst v1.927 font definitions for C90/gar.] + +\DeclareFontFamily{C90}{gar}{} + +\DeclareFontShape{C90}{gar}{m}{n}{ + <-> fgdr8z +}{} + +\DeclareFontShape{C90}{gar}{bx}{n}{ + <-> fgdb8z +}{} + +\DeclareFontShape{C90}{gar}{bx}{sl}{ + <-> fgdbo8z +}{} + +\DeclareFontShape{C90}{gar}{m}{sl}{ + <-> fgdo8z +}{} + +\DeclareFontShape{C90}{gar}{b}{n}{<->ssub * gar/bx/n}{} +\DeclareFontShape{C90}{gar}{b}{sl}{<->ssub * gar/bx/sl}{} +\DeclareFontShape{C90}{gar}{bx}{it}{<->ssub * gar/bx/sl}{} +\DeclareFontShape{C90}{gar}{b}{it}{<->ssub * gar/bx/it}{} +\DeclareFontShape{C90}{gar}{m}{it}{<->ssub * gar/m/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90nrsr.fd b/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90nrsr.fd new file mode 100644 index 0000000000..5da41a39b7 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/thai/c90nrsr.fd @@ -0,0 +1,34 @@ +%Filename: c90nrsr.fd +%Created by: tex norasi-c90 +%Created using fontinst v1.927 + +%THIS FILE SHOULD BE PUT IN A TEX INPUTS DIRECTORY + +\ProvidesFile{c90nrsr.fd} + [2005/07/04 Fontinst v1.927 font definitions for C90/nrsr.] + +\DeclareFontFamily{C90}{nrsr}{} + +\DeclareFontShape{C90}{nrsr}{m}{n}{ + <-> ftnr8z +}{} + +\DeclareFontShape{C90}{nrsr}{bx}{n}{ + <-> ftnb8z +}{} + +\DeclareFontShape{C90}{nrsr}{bx}{it}{ + <-> ftnbi8z +}{} + +\DeclareFontShape{C90}{nrsr}{m}{it}{ + <-> ftni8z +}{} + +\DeclareFontShape{C90}{nrsr}{b}{n}{<->ssub * nrsr/bx/n}{} +\DeclareFontShape{C90}{nrsr}{b}{it}{<->ssub * nrsr/bx/it}{} +\DeclareFontShape{C90}{nrsr}{bx}{sl}{<->ssub * nrsr/bx/it}{} +\DeclareFontShape{C90}{nrsr}{b}{sl}{<->ssub * nrsr/bx/sl}{} +\DeclareFontShape{C90}{nrsr}{m}{sl}{<->ssub * nrsr/m/it}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texinput/thai/thaicjk.ldf b/language/chinese/CJK/cjk-4.8.5/texinput/thai/thaicjk.ldf new file mode 100644 index 0000000000..78166632e9 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texinput/thai/thaicjk.ldf @@ -0,0 +1,89 @@ +% This is the file thaicjk.ldf of the CJK package +% for handling Thai. +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) +% +% +% It is based on a similar file of the thailatex package, written +% by Surapant Meknavin <surapan@nectec.or.th> with modifications by +% Theppitak Karoonboonyanan <thep@links.nectec.or.th>. + +\ProvidesLanguage{thaicjk} + [CJK 4.8.5 Thai support for the babel system] + +\LdfInit{thaicjk}{captionsthaicjk} + +\ifx\l@thaicjk\@undefined + \adddialect\l@thaicjk0 +\fi + +\addto\captionsthaicjk{% + \def\prefacename{º·¹Ó}% + \def\refname{˹ѧÊ×ÍÍéÒ§ÍÔ§}% + \def\abstractname{º·¤Ñ´ÂèÍ}% + \def\bibname{ºÃóҹءÃÁ}% + \def\chaptername{º··Õè}% + \def\appendixname{ÀÒ¤¼¹Ç¡}% + \def\contentsname{ÊÒúÑ}% + \def\listfigurename{ÊÒúÑÃÙ»}% + \def\listtablename{ÊÒúѵÒÃÒ§}% + \def\indexname{´Ãê¹Õ}% + \def\figurename{ÃÙ»·Õè}% + \def\tablename{µÒÃÒ§·Õè}% + \def\partname{ÀÒ¤}% + \def\enclname{ÊÔ觷ÕèṺÁÒ´éÇÂ}% + \def\ccname{ÊÓà¹Ò¶Ö§}% + \def\headtoname{àÃÕ¹}% + \def\pagename{˹éÒ}% + \def\seename{´Ù}% + \def\alsoname{´Ùà¾ÔèÁàµÔÁ}% + \def\proofname{¾ÔÊÙ¨¹ì}% + } + +\def\th@month{% + \ifcase\month\or + Á¡ÃÒ¤Á\or + ¡ØÁÀҾѹ¸ì\or + ÁÕ¹Ò¤Á\or + àÁÉÒ¹\or + ¾ÄÉÀÒ¤Á\or + ÁԶعÒ¹\or + ¡Ã¡®Ò¤Á\or + ÊÔ§ËÒ¤Á\or + ¡Ñ¹ÂÒ¹\or + µØÅÒ¤Á\or + ¾ÄȨԡÒ¹\or + ¸Ñ¹ÇÒ¤Á\fi} +\newcount\th@year +\th@year=\year +\advance\th@year by 543 +\def\datethaicjk{% + \def\today{\number\day \space \th@month\space ¾.È.~\number\th@year}} + +\addto\extrasthaicjk{\bbl@frenchspacing} +\addto\noextrasthaicjk{\bbl@nonfrenchspacing} + +\addto\extrasthaicjk{\renewcommand{\baselinestretch}{1.2}} +\addto\noextrasthaicjk{\renewcommand{\baselinestretch}{1}} + +\def\fnum@figure{\figurename\nobreakspace\thefigure} +\def\fnum@table{\tablename\nobreakspace\thetable} + +\InputIfFileExists{c90enc.def}{% + \message{Loading definitions for the Thai C90 font encoding}}{% + \errhelp{I can't find file `c90enc.def' for Thai fonts}% + \errmessage{Since I do not know what the C90 encoding means^^J + I can't typeset Thai.^^J + I stop here, while you get a suitable c90enc.def file}\@@end + } + +\ldf@finish{thaicjk} + +\endinput + +%%% Local Variables: +%%% coding: tis-620 +%%% mode: latex +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/texlive/README b/language/chinese/CJK/cjk-4.8.5/texlive/README new file mode 100644 index 0000000000..a07701fe54 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texlive/README @@ -0,0 +1,2 @@ +The font definition files in this directory are modified versions to be used +within the TeXLive distribution, using smaller font sets. diff --git a/language/chinese/CJK/cjk-4.8.5/texlive/bin-cjkutils.pl b/language/chinese/CJK/cjk-4.8.5/texlive/bin-cjkutils.pl new file mode 100644 index 0000000000..4b40c211e8 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texlive/bin-cjkutils.pl @@ -0,0 +1,112 @@ +# bin-cjkutils.pl +# +# Public domain. +# +# Written by Werner Lemberg <wl@gnu.org> +# +# This file is intended to be called from the `MAKEcjk' subroutine within +# the ctan2tds perl script. It installs the necessary files from the CJK +# package into the correct destinations. +# +# It expects that the CJK packages (cjk-4.8.5 and cjk-4.8.5-doc) have been +# unpacked (unmodified) in the current directory. + + +# XXX: This installs files in `texmf', not `texmf-dist'! + + +my $D = "doc"; +my $M = "doc/man/man1"; +my $H = "hbf2gf"; + + +# +# cjk-4.8.5 +# --------- +# + +&I("utils/Bg5conv/bg5conv.1", "$M/bg5conv.1"); + +&I("utils/CEFconv/cef5conv.1", "$M/cef5conv.1"); +&I("utils/CEFconv/cefconv.1", "$M/cefconv.1"); +&I("utils/CEFconv/cefsconv.1", "$M/cefsconv.1"); + +&I("utils/extconv/extconv.1", "$M/extconv.1"); + +&I("utils/hbf2gf/hbf2gf.1", "$M/hbf2gf.1"); + +&I("utils/SJISconv/sjisconv.1", "$M/sjisconv.1"); + +&I("utils/hbf2gf/cfg/b5ka12.cfg", "$H/b5ka12.cfg"); +&I("utils/hbf2gf/cfg/b5kr12.cfg", "$H/b5kr12.cfg"); +&I("utils/hbf2gf/cfg/b5so12.cfg", "$H/b5so12.cfg"); +&I("utils/hbf2gf/cfg/c1so12.cfg", "$H/c1so12.cfg"); +&I("utils/hbf2gf/cfg/c2so12.cfg", "$H/c2so12.cfg"); +&I("utils/hbf2gf/cfg/c3so12.cfg", "$H/c3so12.cfg"); +&I("utils/hbf2gf/cfg/c4so12.cfg", "$H/c4so12.cfg"); +&I("utils/hbf2gf/cfg/c5so12.cfg", "$H/c5so12.cfg"); +&I("utils/hbf2gf/cfg/c6so12.cfg", "$H/c6so12.cfg"); +&I("utils/hbf2gf/cfg/c7so12.cfg", "$H/c7so12.cfg"); +&I("utils/hbf2gf/cfg/csso12.cfg", "$H/csso12.cfg"); +&I("utils/hbf2gf/cfg/gsfs14.cfg", "$H/gsfs14.cfg"); +&I("utils/hbf2gf/cfg/j2so12.cfg", "$H/j2so12.cfg"); +&I("utils/hbf2gf/cfg/jsso12.cfg", "$H/jsso12.cfg"); +&I("utils/hbf2gf/cfg/ksso17.cfg", "$H/ksso17.cfg"); +&I("utils/hbf2gf/cfg/README", "$H/README"); + + +# +# cjk-4.8.5-doc +# ------------- +# + +# doc/dvi/bg5conv.dvi --- +# doc/dvi/cef5conv.dvi --- +# doc/dvi/cefconv.dvi --- +# doc/dvi/cefsconv.dvi --- +# doc/dvi/extconv.dvi --- +# doc/dvi/hbf2gf.dvi --- +# doc/dvi/sjisconv.dvi --- + +# doc/man/dvi/bg5conv.dvi --- +# doc/man/dvi/cef5conv.dvi --- +# doc/man/dvi/cefconv.dvi --- +# doc/man/dvi/cefsconv.dvi --- +# doc/man/dvi/extconv.dvi --- +# doc/man/dvi/hbf2gf.dvi --- +# doc/man/dvi/sjisconv.dvi --- + +# doc/man/html/bg5conv.html --- +# doc/man/html/cef5conv.html --- +# doc/man/html/cefconv.html --- +# doc/man/html/cefsconv.html --- +# doc/man/html/extconv.html --- +# doc/man/html/hbf2gf.html --- +# doc/man/html/sjisconv.html --- + +# doc/man/pdf/bg5conv.pdf --- +# doc/man/pdf/cef5conv.pdf --- +# doc/man/pdf/cefconv.pdf --- +# doc/man/pdf/cefsconv.pdf --- +# doc/man/pdf/extconv.pdf --- +# doc/man/pdf/hbf2gf.pdf --- +# doc/man/pdf/sjisconv.pdf --- + +# doc/man/txt/bg5conv.txt --- +# doc/man/txt/cef5conv.txt --- +# doc/man/txt/cefconv.txt --- +# doc/man/txt/cefsconv.txt --- +# doc/man/txt/extconv.txt --- +# doc/man/txt/hbf2gf.txt --- +# doc/man/txt/sjisconv.txt --- + +&I("doc/pdf/bg5conv.pdf", "$D/bg5conv/bg5conv.pdf"); +&I("doc/pdf/cef5conv.pdf", "$D/cef5conv/cef5conv.pdf"); +&I("doc/pdf/cefconv.pdf", "$D/cefconv/cefconv.pdf"); +&I("doc/pdf/cefsconv.pdf", "$D/cefsconv/cefsconv.pdf"); +&I("doc/pdf/extconv.pdf", "$D/extconv/extconv.pdf"); +&I("doc/pdf/hbf2gf.pdf", "$D/hbf2gf/hbf2gf.pdf"); +&I("doc/pdf/sjisconv.pdf", "$D/sjisconv/sjisconv.pdf"); + +1; +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/texlive/c63mj.fd b/language/chinese/CJK/cjk-4.8.5/texlive/c63mj.fd new file mode 100644 index 0000000000..f4625c9df9 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texlive/c63mj.fd @@ -0,0 +1,56 @@ +% This is file c63mj.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% This font definition file is a modified version of the standard c63mj.fd +% file; it is for the TeXLive distribution, using smaller font sets. + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c63mj.fd}[\filedate\space\fileversion] + +% Korean characters (Hangul) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcMyoungjo + +\DeclareFontFamily{C63}{mj}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C63}{mj}{c}{n}{<-> CJK * wmjc}{} +\DeclareFontShape{C63}{mj}{c}{sl}{<-> CJK * wmjco}{} +\DeclareFontShape{C63}{mj}{c}{it}{<-> CJKssub * mj/c/sl}{} + +\DeclareFontShape{C63}{mj}{m}{n}{<-> CJK * wmj}{} +\DeclareFontShape{C63}{mj}{m}{sl}{<-> CJK * wmjo}{} +\DeclareFontShape{C63}{mj}{m}{it}{<-> CJKssub * mj/m/sl}{} + +\DeclareFontShape{C63}{mj}{x}{n}{<-> CJK * wmjx}{} +\DeclareFontShape{C63}{mj}{x}{sl}{<-> CJK * wmjxo}{} +\DeclareFontShape{C63}{mj}{x}{it}{<-> CJKssub * mj/x/sl}{} + +\DeclareFontShape{C63}{mj}{ux}{n}{<-> CJK * wmju}{} +\DeclareFontShape{C63}{mj}{ux}{sl}{<-> CJK * wmjuo}{} +\DeclareFontShape{C63}{mj}{ux}{it}{<-> CJKssub * mj/ux/sl}{} + +\DeclareFontShape{C63}{mj}{bc}{n}{<-> CJKb * wmjc}{\CJKbold} +\DeclareFontShape{C63}{mj}{bc}{sl}{<-> CJKb * wmjco}{\CJKbold} +\DeclareFontShape{C63}{mj}{bc}{it}{<-> CJKssub * mj/bc/sl}{} + +\DeclareFontShape{C63}{mj}{b}{n}{<-> CJKb * wmj}{\CJKbold} +\DeclareFontShape{C63}{mj}{b}{sl}{<-> CJKb * wmjo}{\CJKbold} +\DeclareFontShape{C63}{mj}{b}{it}{<-> CJKssub * mj/b/sl}{} + +\DeclareFontShape{C63}{mj}{bx}{n}{<-> CJKb * wmjx}{\CJKbold} +\DeclareFontShape{C63}{mj}{bx}{sl}{<-> CJKb * wmjxo}{\CJKbold} +\DeclareFontShape{C63}{mj}{bx}{it}{<-> CJKssub * mj/bx/sl}{} + +\DeclareFontShape{C63}{mj}{bux}{n}{<-> CJKb * wmju}{\CJKbold} +\DeclareFontShape{C63}{mj}{bux}{sl}{<-> CJKb * wmjuo}{\CJKbold} +\DeclareFontShape{C63}{mj}{bux}{it}{<-> CJKssub * mj/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texlive/c64mj.fd b/language/chinese/CJK/cjk-4.8.5/texlive/c64mj.fd new file mode 100644 index 0000000000..42b321861c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texlive/c64mj.fd @@ -0,0 +1,56 @@ +% This is file c64mj.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% This font definition file is a modified version of the standard c64mj.fd +% file; it is for the TeXLive distribution, using smaller font sets. + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c64mj.fd}[\filedate\space\fileversion] + +% Korean characters (Symbols) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcMyoungjo + +\DeclareFontFamily{C64}{mj}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C64}{mj}{c}{n}{<-> CJK * wmjc}{} +\DeclareFontShape{C64}{mj}{c}{sl}{<-> CJK * wmjco}{} +\DeclareFontShape{C64}{mj}{c}{it}{<-> CJKssub * mj/c/sl}{} + +\DeclareFontShape{C64}{mj}{m}{n}{<-> CJK * wmj}{} +\DeclareFontShape{C64}{mj}{m}{sl}{<-> CJK * wmjo}{} +\DeclareFontShape{C64}{mj}{m}{it}{<-> CJKssub * mj/m/sl}{} + +\DeclareFontShape{C64}{mj}{x}{n}{<-> CJK * wmjx}{} +\DeclareFontShape{C64}{mj}{x}{sl}{<-> CJK * wmjxo}{} +\DeclareFontShape{C64}{mj}{x}{it}{<-> CJKssub * mj/x/sl}{} + +\DeclareFontShape{C64}{mj}{ux}{n}{<-> CJK * wmju}{} +\DeclareFontShape{C64}{mj}{ux}{sl}{<-> CJK * wmjuo}{} +\DeclareFontShape{C64}{mj}{ux}{it}{<-> CJKssub * mj/ux/sl}{} + +\DeclareFontShape{C64}{mj}{bc}{n}{<-> CJKb * wmjc}{\CJKbold} +\DeclareFontShape{C64}{mj}{bc}{sl}{<-> CJKb * wmjco}{\CJKbold} +\DeclareFontShape{C64}{mj}{bc}{it}{<-> CJKssub * mj/bc/sl}{} + +\DeclareFontShape{C64}{mj}{b}{n}{<-> CJKb * wmj}{\CJKbold} +\DeclareFontShape{C64}{mj}{b}{sl}{<-> CJKb * wmjo}{\CJKbold} +\DeclareFontShape{C64}{mj}{b}{it}{<-> CJKssub * mj/b/sl}{} + +\DeclareFontShape{C64}{mj}{bx}{n}{<-> CJKb * wmjx}{\CJKbold} +\DeclareFontShape{C64}{mj}{bx}{sl}{<-> CJKb * wmjxo}{\CJKbold} +\DeclareFontShape{C64}{mj}{bx}{it}{<-> CJKssub * mj/bx/sl}{} + +\DeclareFontShape{C64}{mj}{bux}{n}{<-> CJKb * wmju}{\CJKbold} +\DeclareFontShape{C64}{mj}{bux}{sl}{<-> CJKb * wmjuo}{\CJKbold} +\DeclareFontShape{C64}{mj}{bux}{it}{<-> CJKssub * mj/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texlive/c65mj.fd b/language/chinese/CJK/cjk-4.8.5/texlive/c65mj.fd new file mode 100644 index 0000000000..3307685af0 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texlive/c65mj.fd @@ -0,0 +1,56 @@ +% This is file c65mj.fd of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% This font definition file is a modified version of the standard c65mj.fd +% file; it is for the TeXLive distribution, using smaller font sets. + +\def\fileversion{4.8.5} +\def\filedate{2021/10/16} +\ProvidesFile{c65mj.fd}[\filedate\space\fileversion] + +% Korean characters (Hanja) +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% font encoding: HL + +% UhcMyoungjo + +\DeclareFontFamily{C65}{mj}{\hyphenchar \font\m@ne} + +\DeclareFontShape{C65}{mj}{c}{n}{<-> CJK * wmjc}{} +\DeclareFontShape{C65}{mj}{c}{sl}{<-> CJK * wmjco}{} +\DeclareFontShape{C65}{mj}{c}{it}{<-> CJKssub * mj/c/sl}{} + +\DeclareFontShape{C65}{mj}{m}{n}{<-> CJK * wmj}{} +\DeclareFontShape{C65}{mj}{m}{sl}{<-> CJK * wmjo}{} +\DeclareFontShape{C65}{mj}{m}{it}{<-> CJKssub * mj/m/sl}{} + +\DeclareFontShape{C65}{mj}{x}{n}{<-> CJK * wmjx}{} +\DeclareFontShape{C65}{mj}{x}{sl}{<-> CJK * wmjxo}{} +\DeclareFontShape{C65}{mj}{x}{it}{<-> CJKssub * mj/x/sl}{} + +\DeclareFontShape{C65}{mj}{ux}{n}{<-> CJK * wmju}{} +\DeclareFontShape{C65}{mj}{ux}{sl}{<-> CJK * wmjuo}{} +\DeclareFontShape{C65}{mj}{ux}{it}{<-> CJKssub * mj/ux/sl}{} + +\DeclareFontShape{C65}{mj}{bc}{n}{<-> CJKb * wmjc}{\CJKbold} +\DeclareFontShape{C65}{mj}{bc}{sl}{<-> CJKb * wmjco}{\CJKbold} +\DeclareFontShape{C65}{mj}{bc}{it}{<-> CJKssub * mj/bc/sl}{} + +\DeclareFontShape{C65}{mj}{b}{n}{<-> CJKb * wmj}{\CJKbold} +\DeclareFontShape{C65}{mj}{b}{sl}{<-> CJKb * wmjo}{\CJKbold} +\DeclareFontShape{C65}{mj}{b}{it}{<-> CJKssub * mj/b/sl}{} + +\DeclareFontShape{C65}{mj}{bx}{n}{<-> CJKb * wmjx}{\CJKbold} +\DeclareFontShape{C65}{mj}{bx}{sl}{<-> CJKb * wmjxo}{\CJKbold} +\DeclareFontShape{C65}{mj}{bx}{it}{<-> CJKssub * mj/bx/sl}{} + +\DeclareFontShape{C65}{mj}{bux}{n}{<-> CJKb * wmju}{\CJKbold} +\DeclareFontShape{C65}{mj}{bux}{sl}{<-> CJKb * wmjuo}{\CJKbold} +\DeclareFontShape{C65}{mj}{bux}{it}{<-> CJKssub * mj/bux/sl}{} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/texlive/c90.pl b/language/chinese/CJK/cjk-4.8.5/texlive/c90.pl new file mode 100644 index 0000000000..c7cbbacf6a --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texlive/c90.pl @@ -0,0 +1,28 @@ +# c90.pl +# +# Public domain. +# +# Written by Werner Lemberg <wl@gnu.org> +# +# This file is intended to be called from the `MAKEcjk' subroutine within +# the ctan2tds perl script. It installs the necessary files from the CJK +# package into the correct destinations. +# +# It expects that the CJK packages (cjk-4.8.5 and cjk-4.8.5-doc) have been +# unpacked (unmodified) in the current directory. + +my $D = "doc/fonts/enc/c90"; +my $S = "source/fonts/enc/c90"; +my $T = "fonts/enc/dvips/c90"; + + +&I("utils/thaifont/texmf/fonts/enc/dvips/thai/c90.enc", "$T/c90.enc"); + +&I("utils/thaifont/tools/c90.etx", "$S/c90.etx"); +&I("utils/thaifont/tools/c90.mtx", "$S/c90.mtx"); + +# doc/dvi/c90.dvi --- +&I("doc/pdf/c90.pdf", "$D/c90.pdf"); + +1; +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/texlive/cjk-build.pl b/language/chinese/CJK/cjk-4.8.5/texlive/cjk-build.pl new file mode 100644 index 0000000000..8837c28ee2 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texlive/cjk-build.pl @@ -0,0 +1,63 @@ +# cjk-build.pl +# +# Public domain. +# +# Written by Werner Lemberg <wl@gnu.org> +# +# This file is intended to be called from the `MAKEcjk' subroutine within +# the ctan2tds perl script. It installs the necessary files from the CJK +# package into the correct destinations. +# +# It expects that the CJK packages (cjk-4.8.5 and cjk-4.8.5-doc) have been +# unpacked (unmodified) in the current directory. For installation, it +# simply uses `install -d' so that missing subdirectories are created +# automatically. + + +# XXX: This installs files in the Build hierarchy! + + +my $B = "cjkutils/bat"; +my $C = "cjkutils/conv"; +my $H = "cjkutils/hbf2gf"; +my $S = "cjkutils/scripts"; + + +&I("utils/Bg5conv/bg5conv.c", "$C/bg5conv.c"); +&I("utils/Bg5conv/bg5latex", "$S/bg5latex"); +&I("utils/Bg5conv/bg5pdflatex", "$S/bg5pdflatex"); + +&I("utils/CEFconv/cef5conv.c", "$C/cef5conv.c"); +&I("utils/CEFconv/cef5latex", "$S/cef5latex"); +&I("utils/CEFconv/cef5pdflatex", "$S/cef5pdflatex"); +&I("utils/CEFconv/cefconv.c", "$C/cefconv.c"); +&I("utils/CEFconv/ceflatex", "$S/ceflatex"); +&I("utils/CEFconv/cefpdflatex", "$S/cefpdflatex"); +&I("utils/CEFconv/cefsconv.c", "$C/cefsconv.c"); +&I("utils/CEFconv/cefslatex", "$S/cefslatex"); +&I("utils/CEFconv/cefspdflatex", "$S/cefspdflatex"); + +&I("utils/cjklatex/cjklatex.c", "$B/cjklatex.c"); + +# utils/extconv/bg5+latex --- # soft link to gbklatex +# utils/extconv/bg5+pdflatex --- # soft link to gbkpdflatex +&I("utils/extconv/extconv.c", "$C/extconv.c"); +&I("utils/extconv/gbklatex", "$S/gbklatex"); +&I("utils/extconv/gbkpdflatex", "$S/gbkpdflatex"); + +&I("utils/hbf2gf/configure.ac", "$H/configure.ac"); +&I("utils/hbf2gf/emdir.c", "$H/emdir.c"); +&I("utils/hbf2gf/emdir.h", "$H/emdir.h"); +&I("utils/hbf2gf/emtexdir.c", "$H/emtexdir.c"); +&I("utils/hbf2gf/emtexdir.h", "$H/emtexdir.h"); +&I("utils/hbf2gf/hbf2gf.def", "$H/hbf2gf.def"); +&I("utils/hbf2gf/hbf2gf.w", "$H/hbf2gf.w"); +&I("utils/hbf2gf/hbf.c", "$H/hbf.c"); +&I("utils/hbf2gf/hbf.h", "$H/hbf.h"); + +&I("utils/SJISconv/sjisconv.c", "$C/sjisconv.c"); +&I("utils/SJISconv/sjislatex", "$S/sjislatex"); +&I("utils/SJISconv/sjispdflatex", "$S/sjispdflatex"); + +1; +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/texlive/cjk.pl b/language/chinese/CJK/cjk-4.8.5/texlive/cjk.pl new file mode 100644 index 0000000000..d631dcad05 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texlive/cjk.pl @@ -0,0 +1,489 @@ +# cjk.pl +# +# Public domain. +# +# Written by Werner Lemberg <wl@gnu.org> +# +# This file is intended to be called from the `MAKEcjk' subroutine within +# the ctan2tds perl script. It installs the necessary files from the CJK +# package into the correct destinations. +# +# It expects that the CJK packages (cjk-4.8.5 and cjk-4.8.5-doc) have been +# unpacked (unmodified) in the current directory. + +# +# cjk-4.8.5 +# --------- +# + +my $D = "doc/latex/cjk"; +my $S = "source/latex/cjk"; +my $T = "tex/latex/cjk"; + + +&I("ChangeLog", "$D/ChangeLog"); +&I("Makefile", "$D/Makefile"); +&I("MANIFEST", "$D/MANIFEST"); +&I("README", "$D/README"); +&I("TODO", "$D/TODO"); + +&I("contrib/wadalab/c42goth.fd", "$T/contrib/wadalab/c42goth.fd"); +&I("contrib/wadalab/c42goth.fdx", "$T/contrib/wadalab/c42goth.fdx"); +&I("contrib/wadalab/c42maru.fd", "$T/contrib/wadalab/c42maru.fd"); +&I("contrib/wadalab/c42maru.fdx", "$T/contrib/wadalab/c42maru.fdx"); +&I("contrib/wadalab/c42min.fd", "$T/contrib/wadalab/c42min.fd"); +&I("contrib/wadalab/c42min.fdx", "$T/contrib/wadalab/c42min.fdx"); +&I("contrib/wadalab/c52maru.fd", "$T/contrib/wadalab/c52maru.fd"); +&I("contrib/wadalab/c52maru.fdx", "$T/contrib/wadalab/c52maru.fdx"); +&I("contrib/wadalab/c52min.fd", "$T/contrib/wadalab/c52min.fd"); +&I("contrib/wadalab/c52min.fdx", "$T/contrib/wadalab/c52min.fdx"); +&I("contrib/wadalab/c70goth.fd", "$T/contrib/wadalab/c70goth.fd"); +&I("contrib/wadalab/c70goth.fdx", "$T/contrib/wadalab/c70goth.fdx"); +&I("contrib/wadalab/c70maru.fd", "$T/contrib/wadalab/c70maru.fd"); +&I("contrib/wadalab/c70maru.fdx", "$T/contrib/wadalab/c70maru.fdx"); +&I("contrib/wadalab/c70min.fd", "$T/contrib/wadalab/c70min.fd"); +&I("contrib/wadalab/c70min.fdx", "$T/contrib/wadalab/c70min.fdx"); + +&I("contrib/wadalab/fixwada", "$S/contrib/wadalab/fixwada"); +&I("contrib/wadalab/fixwada2.pl", "$S/contrib/wadalab/fixwada2.pl"); +&I("contrib/wadalab/makefont", "$S/contrib/wadalab/makefont"); +&I("contrib/wadalab/makeuniwada.pl", "$S/contrib/wadalab/makeuniwada.pl"); +&I("contrib/wadalab/wadalab.map", "$S/contrib/wadalab/wadalab.map"); +&I("contrib/wadalab/wadalab.txt", "$S/contrib/wadalab/wadalab.txt"); + +&I("doc/CEF.txt", "$D/doc/CEF.txt"); +&I("doc/cjk-enc.txt", "$D/doc/cjk-enc.txt"); +&I("doc/CJKnumb.txt", "$D/doc/CJKnumb.txt"); +&I("doc/CJKspace.txt", "$D/doc/CJKspace.txt"); +&I("doc/CJK.txt", "$D/doc/CJK.txt"); +&I("doc/CJKutf8.txt", "$D/doc/CJKutf8.txt"); +&I("doc/commands.txt", "$D/doc/commands.txt"); +&I("doc/COPYING", "$D/doc/COPYING"); +&I("doc/dvidrv.txt", "$D/doc/dvidrv.txt"); +&I("doc/fdxfiles.txt", "$D/doc/fdxfiles.txt"); +&I("doc/fonts.txt", "$D/doc/fonts.txt"); +&I("doc/hbf2gf.txt", "$D/doc/hbf2gf.txt"); +&I("doc/history.2_5", "$D/doc/history.2_5"); +&I("doc/history.txt", "$D/doc/history.txt"); +&I("doc/INSTALL", "$D/doc/INSTALL"); +&I("doc/pinyin.txt", "$D/doc/pinyin.txt"); +&I("doc/pyhyphen.txt", "$D/doc/pyhyphen.txt"); +&I("doc/reftex.txt", "$D/doc/reftex.txt"); +&I("doc/ruby.txt", "$D/doc/ruby.txt"); +&I("doc/TDS.txt", "$D/doc/TDS.txt"); +&I("doc/thaifont.txt", "$D/doc/thaifont.txt"); +&I("doc/vertical.txt", "$D/doc/vertical.txt"); + +&I("doc/chinese/emTeXb5.txt", "$D/doc/chinese/emTeXb5.txt"); +&I("doc/chinese/README", "$D/doc/chinese/README"); +&I("doc/chinese/READMEb5.tex", "$D/doc/chinese/READMEb5.tex"); +&I("doc/chinese/READMEgb.tex", "$D/doc/chinese/READMEgb.tex"); +&I("doc/chinese/teTeXb5.txt", "$D/doc/chinese/teTeXb5.txt"); + +&I("doc/japanese/ascii.txt", "$D/doc/japanese/ascii.txt"); +&I("doc/japanese/japanese.jis", "$D/doc/japanese/japanese.jis"); +&I("doc/japanese/japanese.txt", "$D/doc/japanese/japanese.txt"); +&I("doc/japanese/jp-fonts.txt", "$D/doc/japanese/jp-fonts.txt"); +&I("doc/japanese/jp-tex.txt", "$D/doc/japanese/jp-tex.txt"); +&I("doc/japanese/preview.txt", "$D/doc/japanese/preview.txt"); +&I("doc/japanese/README", "$D/doc/japanese/README"); +&I("doc/japanese/shibuaki.txt", "$D/doc/japanese/shibuaki.txt"); + +&I("doc/pdfhowto/examples/bkai.map", "$D/doc/pdfhowto/examples/bkai.map"); +&I("doc/pdfhowto/examples/cid-x.map", "$D/doc/pdfhowto/examples/cid-x.map"); +&I("doc/pdfhowto/examples/cwtb.map", "$D/doc/pdfhowto/examples/cwtb.map"); +&I("doc/pdfhowto/examples/dvipdfmx.cfg", "$D/doc/pdfhowto/examples/dvipdfmx.cfg"); +&I("doc/pdfhowto/examples/gen-map.pl", "$D/doc/pdfhowto/examples/gen-map.pl"); +&I("doc/pdfhowto/examples/map.list", "$D/doc/pdfhowto/examples/map.list"); +&I("doc/pdfhowto/examples/texinput/Bg5/c00cwtb.fd", "$D/doc/pdfhowto/examples/texinput/Bg5/c00cwtb.fd"); +&I("doc/pdfhowto/examples/texinput/Bg5/c00tmpl.fd", "$D/doc/pdfhowto/examples/texinput/Bg5/c00tmpl.fd"); +&I("doc/pdfhowto/examples/texinput/GB/c10tmpl.fd", "$D/doc/pdfhowto/examples/texinput/GB/c10tmpl.fd"); +&I("doc/pdfhowto/examples/texinput/JIS/c40tmpl.fd", "$D/doc/pdfhowto/examples/texinput/JIS/c40tmpl.fd"); +&I("doc/pdfhowto/examples/texinput/SJIS/c49tmpl.fd", "$D/doc/pdfhowto/examples/texinput/SJIS/c49tmpl.fd"); +&I("doc/pdfhowto/examples/updmap.my", "$D/doc/pdfhowto/examples/updmap.my"); +&I("doc/pdfhowto/examples/wcl.sfd", "$D/doc/pdfhowto/examples/wcl.sfd"); +&I("doc/pdfhowto/HOWTO.txt", "$D/doc/pdfhowto/HOWTO.txt"); + +&I("examples/Big5.tex", "$D/examples/Big5.tex"); +&I("examples/Big5vert.tex", "$D/examples/Big5vert.tex"); +&I("examples/CEF_test.tex", "$D/examples/CEF_test.tex"); +&I("examples/CJKbabel.tex", "$D/examples/CJKbabel.tex"); +&I("examples/CJKfntef.tex", "$D/examples/CJKfntef.tex"); +&I("examples/CJKmixed.tex", "$D/examples/CJKmixed.tex"); +&I("examples/CJKspace.tex", "$D/examples/CJKspace.tex"); +&I("examples/CJKutf8.tex", "$D/examples/CJKutf8.tex"); +&I("examples/GB.tex", "$D/examples/GB.tex"); +&I("examples/JIS.tex", "$D/examples/JIS.tex"); +&I("examples/KS.tex", "$D/examples/KS.tex"); +&I("examples/muletest.tex", "$D/examples/muletest.tex"); +&I("examples/py_test.tex", "$D/examples/py_test.tex"); +&I("examples/README", "$D/examples/README"); +&I("examples/rubytest.tex", "$D/examples/rubytest.tex"); +&I("examples/SJIS.tex", "$D/examples/SJIS.tex"); +&I("examples/thai.tex", "$D/examples/thai.tex"); +&I("examples/thai_utf8.tex","$D/examples/thai_utf8.tex"); +&I("examples/UTF8.tex", "$D/examples/UTF8.tex"); + +&I("texinput/CJK.enc", "$T/texinput/CJK.enc"); +&I("texinput/CJKfntef.sty", "$T/texinput/CJKfntef.sty"); +&I("texinput/CJKnumb.sty", "$T/texinput/CJKnumb.sty"); +&I("texinput/CJKspace.sty", "$T/texinput/CJKspace.sty"); +&I("texinput/CJK.sty", "$T/texinput/CJK.sty"); +&I("texinput/CJKulem.sty", "$T/texinput/CJKulem.sty"); +&I("texinput/CJKutf8.sty", "$T/texinput/CJKutf8.sty"); +&I("texinput/CJKvert.sty", "$T/texinput/CJKvert.sty"); +&I("texinput/extended.chr", "$T/texinput/extended.chr"); +&I("texinput/extended.enc", "$T/texinput/extended.enc"); +&I("texinput/pinyin.sty", "$T/texinput/pinyin.sty"); +&I("texinput/pmCbig.enc", "$T/texinput/pmCbig.enc"); +&I("texinput/pmC.chr", "$T/texinput/pmC.chr"); +&I("texinput/pmCsmall.enc", "$T/texinput/pmCsmall.enc"); +&I("texinput/ruby.sty", "$T/texinput/ruby.sty"); +&I("texinput/standard.bdg", "$T/texinput/standard.bdg"); +&I("texinput/standard.chr", "$T/texinput/standard.chr"); +&I("texinput/standard.enc", "$T/texinput/standard.enc"); + +&I("texinput/Bg5/Bg5.cap", "$T/texinput/Bg5/Bg5.cap"); +&I("texinput/Bg5/Bg5.chr", "$T/texinput/Bg5/Bg5.chr"); +&I("texinput/Bg5/Bg5.cpx", "$T/texinput/Bg5/Bg5.cpx"); +&I("texinput/Bg5/Bg5.enc", "$T/texinput/Bg5/Bg5.enc"); +&I("texinput/Bg5/c00bkai.fd", "$T/texinput/Bg5/c00bkai.fd"); +&I("texinput/Bg5/c00bkai.fdx", "$T/texinput/Bg5/c00bkai.fdx"); +&I("texinput/Bg5/c00bsmi.fd", "$T/texinput/Bg5/c00bsmi.fd"); +&I("texinput/Bg5/c00bsmi.fdx", "$T/texinput/Bg5/c00bsmi.fdx"); +&I("texinput/Bg5/c00bsmir.fd", "$T/texinput/Bg5/c00bsmir.fd"); +&I("texinput/Bg5/c00bsmir.fdx", "$T/texinput/Bg5/c00bsmir.fdx"); +&I("texinput/Bg5/c00cns.fd", "$T/texinput/Bg5/c00cns.fd"); +&I("texinput/Bg5/c00fs.fd", "$T/texinput/Bg5/c00fs.fd"); +&I("texinput/Bg5/c00kai.fd", "$T/texinput/Bg5/c00kai.fd"); +&I("texinput/Bg5/c00kair.fd", "$T/texinput/Bg5/c00kair.fd"); +&I("texinput/Bg5/c00kair.fdx", "$T/texinput/Bg5/c00kair.fdx"); +&I("texinput/Bg5/c00song.fd", "$T/texinput/Bg5/c00song.fd"); +&I("texinput/Bg5/c01song.fd", "$T/texinput/Bg5/c01song.fd"); +&I("texinput/Bg5/c05song.fd", "$T/texinput/Bg5/c05song.fd"); +&I("texinput/Bg5/c09song.fd", "$T/texinput/Bg5/c09song.fd"); +&I("texinput/Bg5/HK.enc", "$T/texinput/Bg5/HK.enc"); + +&I("texinput/CEF/c80song.fd", "$T/texinput/CEF/c80song.fd"); +&I("texinput/CEF/c81song.fd", "$T/texinput/CEF/c81song.fd"); + +&I("texinput/CNS/c31song.fd", "$T/texinput/CNS/c31song.fd"); +&I("texinput/CNS/c32song.fd", "$T/texinput/CNS/c32song.fd"); +&I("texinput/CNS/c33song.fd", "$T/texinput/CNS/c33song.fd"); +&I("texinput/CNS/c34song.fd", "$T/texinput/CNS/c34song.fd"); +&I("texinput/CNS/c35song.fd", "$T/texinput/CNS/c35song.fd"); +&I("texinput/CNS/c36song.fd", "$T/texinput/CNS/c36song.fd"); +&I("texinput/CNS/c37song.fd", "$T/texinput/CNS/c37song.fd"); +&I("texinput/CNS/EUC-TW.bdg", "$T/texinput/CNS/EUC-TW.bdg"); +&I("texinput/CNS/EUC-TW.chr", "$T/texinput/CNS/EUC-TW.chr"); +&I("texinput/CNS/EUC-TW.enc", "$T/texinput/CNS/EUC-TW.enc"); + +&I("texinput/GB/c10fs.fd", "$T/texinput/GB/c10fs.fd"); +&I("texinput/GB/c10gbsn.fd", "$T/texinput/GB/c10gbsn.fd"); +&I("texinput/GB/c10gbsn.fdx", "$T/texinput/GB/c10gbsn.fdx"); +&I("texinput/GB/c10gkai.fd", "$T/texinput/GB/c10gkai.fd"); +&I("texinput/GB/c10gkai.fdx", "$T/texinput/GB/c10gkai.fdx"); +&I("texinput/GB/c10song.fd", "$T/texinput/GB/c10song.fd"); +&I("texinput/GB/c11song.fd", "$T/texinput/GB/c11song.fd"); +&I("texinput/GB/c19song.fd", "$T/texinput/GB/c19song.fd"); +&I("texinput/GB/c20song.fd", "$T/texinput/GB/c20song.fd"); +&I("texinput/GB/c21song.fd", "$T/texinput/GB/c21song.fd"); +&I("texinput/GB/GB.cap", "$T/texinput/GB/GB.cap"); +&I("texinput/GB/GB.cpx", "$T/texinput/GB/GB.cpx"); + +&I("texinput/JIS/c40song.fd", "$T/texinput/JIS/c40song.fd"); +&I("texinput/JIS/c41song.fd", "$T/texinput/JIS/c41song.fd"); +&I("texinput/JIS/c42song.fd", "$T/texinput/JIS/c42song.fd"); +&I("texinput/JIS/c43song.fd", "$T/texinput/JIS/c43song.fd"); +&I("texinput/JIS/c50song.fd", "$T/texinput/JIS/c50song.fd"); +&I("texinput/JIS/EUC-JP.bdg", "$T/texinput/JIS/EUC-JP.bdg"); +&I("texinput/JIS/EUC-JP.chr", "$T/texinput/JIS/EUC-JP.chr"); +&I("texinput/JIS/EUC-JP.enc", "$T/texinput/JIS/EUC-JP.enc"); +&I("texinput/JIS/EUC-JPdnp.enc", "$T/texinput/JIS/EUC-JPdnp.enc"); +&I("texinput/JIS/JIS.cap", "$T/texinput/JIS/JIS.cap"); +&I("texinput/JIS/JIS.cpx", "$T/texinput/JIS/JIS.cpx"); +&I("texinput/JIS/JISdnp.enc", "$T/texinput/JIS/JISdnp.enc"); + +&I("texinput/KS/c60dr.fd", "$T/texinput/KS/c60dr.fd"); +&I("texinput/KS/c60gr.fd", "$T/texinput/KS/c60gr.fd"); +&I("texinput/KS/c60gs.fd", "$T/texinput/KS/c60gs.fd"); +&I("texinput/KS/c60gt.fd", "$T/texinput/KS/c60gt.fd"); +&I("texinput/KS/c60hgt.fd", "$T/texinput/KS/c60hgt.fd"); +&I("texinput/KS/c60hmj.fd", "$T/texinput/KS/c60hmj.fd"); +&I("texinput/KS/c60hol.fd", "$T/texinput/KS/c60hol.fd"); +&I("texinput/KS/c60hpg.fd", "$T/texinput/KS/c60hpg.fd"); +&I("texinput/KS/c60mj.fd", "$T/texinput/KS/c60mj.fd"); +&I("texinput/KS/c61dr.fd", "$T/texinput/KS/c61dr.fd"); +&I("texinput/KS/c61gr.fd", "$T/texinput/KS/c61gr.fd"); +&I("texinput/KS/c61gs.fd", "$T/texinput/KS/c61gs.fd"); +&I("texinput/KS/c61gt.fd", "$T/texinput/KS/c61gt.fd"); +&I("texinput/KS/c61hgt.fd", "$T/texinput/KS/c61hgt.fd"); +&I("texinput/KS/c61hmj.fd", "$T/texinput/KS/c61hmj.fd"); +&I("texinput/KS/c61hol.fd", "$T/texinput/KS/c61hol.fd"); +&I("texinput/KS/c61hpg.fd", "$T/texinput/KS/c61hpg.fd"); +&I("texinput/KS/c61mj.fd", "$T/texinput/KS/c61mj.fd"); +&I("texinput/KS/c62song.fd", "$T/texinput/KS/c62song.fd"); +&I("texinput/KS/hangul2.cap", "$T/texinput/KS/hangul2.cap"); +&I("texinput/KS/hangul2.cpx", "$T/texinput/KS/hangul2.cpx"); +&I("texinput/KS/hangul.cap", "$T/texinput/KS/hangul.cap"); +&I("texinput/KS/hangul.cpx", "$T/texinput/KS/hangul.cpx"); +&I("texinput/KS/hanja.cap", "$T/texinput/KS/hanja.cap"); +&I("texinput/KS/hanja.cpx", "$T/texinput/KS/hanja.cpx"); +&I("texinput/KS/KS.chr", "$T/texinput/KS/KS.chr"); +&I("texinput/KS/KS.enc", "$T/texinput/KS/KS.enc"); + +&I("texinput/KS/HLaTeX/c63bm.fd", "$T/texinput/KS/HLaTeX/c63bm.fd"); +&I("texinput/KS/HLaTeX/c63dn.fd", "$T/texinput/KS/HLaTeX/c63dn.fd"); +&I("texinput/KS/HLaTeX/c63gr.fd", "$T/texinput/KS/HLaTeX/c63gr.fd"); +&I("texinput/KS/HLaTeX/c63gs.fd", "$T/texinput/KS/HLaTeX/c63gs.fd"); +&I("texinput/KS/HLaTeX/c63gt.fd", "$T/texinput/KS/HLaTeX/c63gt.fd"); +&I("texinput/KS/HLaTeX/c63jgt.fd", "$T/texinput/KS/HLaTeX/c63jgt.fd"); +&I("texinput/KS/HLaTeX/c63jmj.fd", "$T/texinput/KS/HLaTeX/c63jmj.fd"); +&I("texinput/KS/HLaTeX/c63jnv.fd", "$T/texinput/KS/HLaTeX/c63jnv.fd"); +&I("texinput/KS/HLaTeX/c63jsr.fd", "$T/texinput/KS/HLaTeX/c63jsr.fd"); +&I("texinput/KS/HLaTeX/c63mj.fd", "$S/texinput/KS/HLaTeX/c63mj.fd"); # $S +&I("texinput/KS/HLaTeX/c63pga.fd", "$T/texinput/KS/HLaTeX/c63pga.fd"); +&I("texinput/KS/HLaTeX/c63pg.fd", "$T/texinput/KS/HLaTeX/c63pg.fd"); +&I("texinput/KS/HLaTeX/c63ph.fd", "$T/texinput/KS/HLaTeX/c63ph.fd"); +&I("texinput/KS/HLaTeX/c63pn.fd", "$T/texinput/KS/HLaTeX/c63pn.fd"); +&I("texinput/KS/HLaTeX/c63sh.fd", "$T/texinput/KS/HLaTeX/c63sh.fd"); +&I("texinput/KS/HLaTeX/c63tz.fd", "$T/texinput/KS/HLaTeX/c63tz.fd"); +&I("texinput/KS/HLaTeX/c63vd.fd", "$T/texinput/KS/HLaTeX/c63vd.fd"); +&I("texinput/KS/HLaTeX/c63yt.fd", "$T/texinput/KS/HLaTeX/c63yt.fd"); +&I("texinput/KS/HLaTeX/c64bm.fd", "$T/texinput/KS/HLaTeX/c64bm.fd"); +&I("texinput/KS/HLaTeX/c64dn.fd", "$T/texinput/KS/HLaTeX/c64dn.fd"); +&I("texinput/KS/HLaTeX/c64gr.fd", "$T/texinput/KS/HLaTeX/c64gr.fd"); +&I("texinput/KS/HLaTeX/c64gs.fd", "$T/texinput/KS/HLaTeX/c64gs.fd"); +&I("texinput/KS/HLaTeX/c64gt.fd", "$T/texinput/KS/HLaTeX/c64gt.fd"); +&I("texinput/KS/HLaTeX/c64jgt.fd", "$T/texinput/KS/HLaTeX/c64jgt.fd"); +&I("texinput/KS/HLaTeX/c64jmj.fd", "$T/texinput/KS/HLaTeX/c64jmj.fd"); +&I("texinput/KS/HLaTeX/c64jnv.fd", "$T/texinput/KS/HLaTeX/c64jnv.fd"); +&I("texinput/KS/HLaTeX/c64jsr.fd", "$T/texinput/KS/HLaTeX/c64jsr.fd"); +&I("texinput/KS/HLaTeX/c64mj.fd", "$S/texinput/KS/HLaTeX/c64mj.fd"); # $S +&I("texinput/KS/HLaTeX/c64pga.fd", "$T/texinput/KS/HLaTeX/c64pga.fd"); +&I("texinput/KS/HLaTeX/c64pg.fd", "$T/texinput/KS/HLaTeX/c64pg.fd"); +&I("texinput/KS/HLaTeX/c64ph.fd", "$T/texinput/KS/HLaTeX/c64ph.fd"); +&I("texinput/KS/HLaTeX/c64pn.fd", "$T/texinput/KS/HLaTeX/c64pn.fd"); +&I("texinput/KS/HLaTeX/c64sh.fd", "$T/texinput/KS/HLaTeX/c64sh.fd"); +&I("texinput/KS/HLaTeX/c64tz.fd", "$T/texinput/KS/HLaTeX/c64tz.fd"); +&I("texinput/KS/HLaTeX/c64vd.fd", "$T/texinput/KS/HLaTeX/c64vd.fd"); +&I("texinput/KS/HLaTeX/c64yt.fd", "$T/texinput/KS/HLaTeX/c64yt.fd"); +&I("texinput/KS/HLaTeX/c65bm.fd", "$T/texinput/KS/HLaTeX/c65bm.fd"); +&I("texinput/KS/HLaTeX/c65dn.fd", "$T/texinput/KS/HLaTeX/c65dn.fd"); +&I("texinput/KS/HLaTeX/c65gr.fd", "$T/texinput/KS/HLaTeX/c65gr.fd"); +&I("texinput/KS/HLaTeX/c65gs.fd", "$T/texinput/KS/HLaTeX/c65gs.fd"); +&I("texinput/KS/HLaTeX/c65gt.fd", "$T/texinput/KS/HLaTeX/c65gt.fd"); +&I("texinput/KS/HLaTeX/c65jgt.fd", "$T/texinput/KS/HLaTeX/c65jgt.fd"); +&I("texinput/KS/HLaTeX/c65jmj.fd", "$T/texinput/KS/HLaTeX/c65jmj.fd"); +&I("texinput/KS/HLaTeX/c65jnv.fd", "$T/texinput/KS/HLaTeX/c65jnv.fd"); +&I("texinput/KS/HLaTeX/c65jsr.fd", "$T/texinput/KS/HLaTeX/c65jsr.fd"); +&I("texinput/KS/HLaTeX/c65mj.fd", "$S/texinput/KS/HLaTeX/c65mj.fd"); # $S +&I("texinput/KS/HLaTeX/c65pga.fd", "$T/texinput/KS/HLaTeX/c65pga.fd"); +&I("texinput/KS/HLaTeX/c65pg.fd", "$T/texinput/KS/HLaTeX/c65pg.fd"); +&I("texinput/KS/HLaTeX/c65ph.fd", "$T/texinput/KS/HLaTeX/c65ph.fd"); +&I("texinput/KS/HLaTeX/c65pn.fd", "$T/texinput/KS/HLaTeX/c65pn.fd"); +&I("texinput/KS/HLaTeX/c65sh.fd", "$T/texinput/KS/HLaTeX/c65sh.fd"); +&I("texinput/KS/HLaTeX/c65tz.fd", "$T/texinput/KS/HLaTeX/c65tz.fd"); +&I("texinput/KS/HLaTeX/c65vd.fd", "$T/texinput/KS/HLaTeX/c65vd.fd"); +&I("texinput/KS/HLaTeX/c65yt.fd", "$T/texinput/KS/HLaTeX/c65yt.fd"); +&I("texinput/KS/HLaTeX/HLaTeX.chr", "$T/texinput/KS/HLaTeX/HLaTeX.chr"); +&I("texinput/KS/HLaTeX/KSHL.enc", "$T/texinput/KS/HLaTeX/KSHL.enc"); +&I("texinput/KS/HLaTeX/pshan.sty", "$T/texinput/KS/HLaTeX/pshan.sty"); + +&I("texinput/mule/MULEenc.sty", "$T/texinput/mule/MULEenc.sty"); + +&I("texinput/SJIS/c49song.fd", "$T/texinput/SJIS/c49song.fd"); +&I("texinput/SJIS/SJIS.bdg", "$T/texinput/SJIS/SJIS.bdg"); +&I("texinput/SJIS/SJIS.cap", "$T/texinput/SJIS/SJIS.cap"); +&I("texinput/SJIS/SJIS.chr", "$T/texinput/SJIS/SJIS.chr"); +&I("texinput/SJIS/SJIS.cpx", "$T/texinput/SJIS/SJIS.cpx"); +&I("texinput/SJIS/SJISdnp.chr", "$T/texinput/SJIS/SJISdnp.chr"); +&I("texinput/SJIS/SJISdnp.enc", "$T/texinput/SJIS/SJISdnp.enc"); +&I("texinput/SJIS/SJIS.enc", "$T/texinput/SJIS/SJIS.enc"); + +&I("texinput/thai/c90cmr.fd", "$T/texinput/thai/c90cmr.fd"); +&I("texinput/thai/c90cmss.fd", "$T/texinput/thai/c90cmss.fd"); +&I("texinput/thai/c90cmtt.fd", "$T/texinput/thai/c90cmtt.fd"); +&I("texinput/thai/c90enc.def", "$T/texinput/thai/c90enc.def"); +&I("texinput/thai/c90gar.fd", "$T/texinput/thai/c90gar.fd"); +&I("texinput/thai/c90nrsr.fd", "$T/texinput/thai/c90nrsr.fd"); +&I("texinput/thai/thaicjk.ldf", "$T/texinput/thai/thaicjk.ldf"); + +&I("texinput/UTF8/c70bkai.fd", "$T/texinput/UTF8/c70bkai.fd"); +&I("texinput/UTF8/c70bkai.fdx", "$T/texinput/UTF8/c70bkai.fdx"); +&I("texinput/UTF8/c70bsmi.fd", "$T/texinput/UTF8/c70bsmi.fd"); +&I("texinput/UTF8/c70bsmi.fdx", "$T/texinput/UTF8/c70bsmi.fdx"); +&I("texinput/UTF8/c70gbsn.fd", "$T/texinput/UTF8/c70gbsn.fd"); +&I("texinput/UTF8/c70gbsn.fdx", "$T/texinput/UTF8/c70gbsn.fdx"); +&I("texinput/UTF8/c70gkai.fd", "$T/texinput/UTF8/c70gkai.fd"); +&I("texinput/UTF8/c70gkai.fdx", "$T/texinput/UTF8/c70gkai.fdx"); +&I("texinput/UTF8/c70mj.fd", "$T/texinput/UTF8/c70mj.fd"); +&I("texinput/UTF8/c70mj.fdx", "$T/texinput/UTF8/c70mj.fdx"); +&I("texinput/UTF8/c70song.fd", "$T/texinput/UTF8/c70song.fd"); +&I("texinput/UTF8/ja.cpx", "$T/texinput/UTF8/ja.cpx"); +&I("texinput/UTF8/ko-Hang2.cpx", "$T/texinput/UTF8/ko-Hang2.cpx"); +&I("texinput/UTF8/ko-Hang.cpx", "$T/texinput/UTF8/ko-Hang.cpx"); +&I("texinput/UTF8/ko-Hani.cpx", "$T/texinput/UTF8/ko-Hani.cpx"); +&I("texinput/UTF8/UTF8.bdg", "$T/texinput/UTF8/UTF8.bdg"); +&I("texinput/UTF8/UTF8.chr", "$T/texinput/UTF8/UTF8.chr"); +&I("texinput/UTF8/UTF8.enc", "$T/texinput/UTF8/UTF8.enc"); +&I("texinput/UTF8/zh-Hans.cpx", "$T/texinput/UTF8/zh-Hans.cpx"); +&I("texinput/UTF8/zh-Hant.cpx", "$T/texinput/UTF8/zh-Hant.cpx"); + +&I("texlive/c63mj.fd", "$T/texinput/KS/HLaTeX/c63mj.fd"); +&I("texlive/c64mj.fd", "$T/texinput/KS/HLaTeX/c64mj.fd"); +&I("texlive/c65mj.fd", "$T/texinput/KS/HLaTeX/c65mj.fd"); +# texlive/README --- +&I("texlive/bin-cjkutils.pl", "$D/texlive/bin-cjkutils.pl"); +&I("texlive/c90.pl", "$D/texlive/c90.pl"); +&I("texlive/cjk-build.pl", "$D/texlive/cjk-build.pl"); +&I("texlive/cjk.pl", "$D/texlive/cjk.pl"); +&I("texlive/dnp.pl", "$D/texlive/dnp.pl"); +&I("texlive/garuda-c90.pl", "$D/texlive/garuda-c90.pl"); +&I("texlive/norasi-c90.pl", "$D/texlive/norasi-c90.pl"); + +&I("utils/f_name.bat", "$S/utils/f_name.bat"); + +&I("utils/Bg5conv/bg5conv.w", "$S/utils/Bg5conv/bg5conv.w"); +&I("utils/Bg5conv/bg5latex.bat", "$S/utils/Bg5conv/bg5latex.bat"); +&I("utils/Bg5conv/bg5latex.cmd", "$S/utils/Bg5conv/bg5latex.cmd"); + +&I("utils/CEFconv/cef5conv.w", "$S/utils/CEFconv/cef5conv.w"); +&I("utils/CEFconv/cef5ltx.bat", "$S/utils/CEFconv/cef5ltx.bat"); +&I("utils/CEFconv/cef5ltx.cmd", "$S/utils/CEFconv/cef5ltx.cmd"); +&I("utils/CEFconv/cefconv.w", "$S/utils/CEFconv/cefconv.w"); +&I("utils/CEFconv/ceflatex.bat", "$S/utils/CEFconv/ceflatex.bat"); +&I("utils/CEFconv/ceflatex.cmd", "$S/utils/CEFconv/ceflatex.cmd"); +&I("utils/CEFconv/cefsconv.w", "$S/utils/CEFconv/cefsconv.w"); +&I("utils/CEFconv/cefsltx.bat", "$S/utils/CEFconv/cefsltx.bat"); +&I("utils/CEFconv/cefsltx.cmd", "$S/utils/CEFconv/cefsltx.cmd"); + +&I("utils/extconv/bg5pltx.bat", "$S/utils/extconv/bg5pltx.bat"); +&I("utils/extconv/bg5pltx.cmd", "$S/utils/extconv/bg5pltx.cmd"); +&I("utils/extconv/extconv.w", "$S/utils/extconv/extconv.w"); +&I("utils/extconv/gbklatex.bat", "$S/utils/extconv/gbklatex.bat"); +&I("utils/extconv/gbklatex.cmd", "$S/utils/extconv/gbklatex.cmd"); + +&I("utils/hbf2gf/c-auto.h", "$S/utils/hbf2gf/c-auto.h"); +# utils/hbf2gf/config.guess --- +# utils/hbf2gf/config.sub --- +# utils/hbf2gf/configure --- +&I("utils/hbf2gf/dvidrv.btm", "$S/utils/hbf2gf/dvidrv.btm"); +# utils/hbf2gf/hbf2gf.c --- +# utils/hbf2gf/install-sh --- +&I("utils/hbf2gf/Makefile.gnu", "$S/utils/hbf2gf/Makefile.gnu"); +&I("utils/hbf2gf/Makefile.in", "$S/utils/hbf2gf/Makefile.in"); +# utils/hbf2gf/mkinstalldirs --- +&I("utils/hbf2gf/README", "$S/utils/hbf2gf/README"); + +# utils/hbf2gf/scripts/teTeX-0.4/MakeTeXPK.diff --- +# utils/hbf2gf/scripts/teTeX-0.4/MakeTeXTFM.diff --- +# utils/hbf2gf/scripts/web2c-6.1/MakeTeXPK.diff --- +# utils/hbf2gf/scripts/web2c-6.1/README --- +# utils/hbf2gf/scripts/web2c-7.0/MakeTeXPK.diff --- +# utils/hbf2gf/scripts/web2c-7.0/MakeTeXTFM.diff --- +# utils/hbf2gf/scripts/web2c-7.1/MakeTeXPK.diff --- +# utils/hbf2gf/scripts/web2c-7.1/MakeTeXTFM.diff --- +# utils/hbf2gf/scripts/web2c-7.2/mktexpk.diff --- +# utils/hbf2gf/scripts/web2c-7.2/mktextfm.diff --- + +&I("utils/lisp/cjkspace.el", "$S/utils/lisp/cjkspace.el"); +&I("utils/lisp/cjktilde.el", "$S/utils/lisp/cjktilde.el"); + +&I("utils/lisp/emacs/cjk-enc.el", "$S/utils/lisp/emacs/cjk-enc.el"); +&I("utils/lisp/emacs/thai-word.el", "$S/utils/lisp/emacs/thai-word.el"); + +&I("utils/lisp/mule-2.3/cjk-enc.el", "$S/utils/lisp/mule-2.3/cjk-enc.el"); + +&I("utils/pyhyphen/pinyin.c", "$S/utils/pyhyphen/pinyin.c"); +&I("utils/pyhyphen/pinyin.ldf", "$T/utils/pyhyphen/pinyin.ldf"); # $T +&I("utils/pyhyphen/pinyin.tr", "$S/utils/pyhyphen/pinyin.tr"); +&I("utils/pyhyphen/pyhyph.tex", "$S/utils/pyhyphen/pyhyph.tex"); +&I("utils/pyhyphen/pytest.tex", "$D/utils/pyhyphen/pytest.tex"); # $D + +&I("utils/SJISconv/sjisconv.w", "$S/utils/SJISconv/sjisconv.w"); +&I("utils/SJISconv/sjisltx.bat", "$S/utils/SJISconv/sjisltx.bat"); +&I("utils/SJISconv/sjisltx.cmd", "$S/utils/SJISconv/sjisltx.cmd"); + +&I("utils/subfonts/clonevf.pl", "$S/utils/subfonts/clonevf.pl"); +&I("utils/subfonts/hlatex2agl.pl", "$S/utils/subfonts/hlatex2agl.pl"); +&I("utils/subfonts/makefdx.pl", "$S/utils/subfonts/makefdx.pl"); +&I("utils/subfonts/sfd2uni.pl", "$S/utils/subfonts/sfd2uni.pl"); +&I("utils/subfonts/subfonts.pe", "$S/utils/subfonts/subfonts.pe"); +&I("utils/subfonts/uni2sfd.pl", "$S/utils/subfonts/uni2sfd.pl"); +&I("utils/subfonts/vertical.pe", "$S/utils/subfonts/vertical.pe"); +&I("utils/subfonts/vertref.pe", "$S/utils/subfonts/vertref.pe"); + +# utils/thaifont/tools/dbtt-old/config.dbtt-old --- +# utils/thaifont/tools/dbtt-old/dbtt-old-alias.etx --- +# utils/thaifont/tools/dbtt-old/dbtt-old-alias.mtx --- +# utils/thaifont/tools/dbtt-old/dbtt-old-alias.tex --- +# utils/thaifont/tools/dbtt-old/dbtt-old.fontinst --- +# utils/thaifont/tools/dbtt-old/dbtt-old.map --- +# utils/thaifont/tools/INSTALL --- + + +# +# cjk-4.8.5-doc +# ------------- +# + +&I("doc/cjk/README", "$D/doc/cjk/README"); +&I("doc/cjk/READMEb5.cjk", "$D/doc/cjk/READMEb5.cjk"); + +# doc/dvi/READMEb5.dvi --- +# doc/dvi/READMEgb.dvi --- + +&I("doc/pdf/READMEb5.pdf", "$D/doc/pdf/READMEb5.pdf"); +&I("doc/pdf/READMEgb.pdf", "$D/doc/pdf/READMEgb.pdf"); + +&I("examples/cjk/Big5.cjk", "$D/examples/cjk/Big5.cjk"); +&I("examples/cjk/Big5vert.cjk", "$D/examples/cjk/Big5vert.cjk"); +&I("examples/cjk/CEF_test.cjk", "$D/examples/cjk/CEF_test.cjk"); +&I("examples/cjk/CJKbabel.cjk", "$D/examples/cjk/CJKbabel.cjk"); +&I("examples/cjk/muletest.cjk", "$D/examples/cjk/muletest.cjk"); +&I("examples/cjk/rubytest.cjk", "$D/examples/cjk/rubytest.cjk"); +&I("examples/cjk/SJIS.cjk", "$D/examples/cjk/SJIS.cjk"); +&I("examples/cjk/thai.cjk", "$D/examples/cjk/thai.cjk"); + +# examples/dvi/Big5.dvi --- +# examples/dvi/Big5vert.dvi --- +# examples/dvi/CEF_test.dvi --- +# examples/dvi/CJKbabel.dvi --- +# examples/dvi/CJKfntef.dvi --- +# examples/dvi/CJKmixed.dvi --- +# examples/dvi/CJKspace.dvi --- +# examples/dvi/CJKutf8.dvi --- +# examples/dvi/GB.dvi --- +# examples/dvi/JIS.dvi --- +# examples/dvi/KS.dvi --- +# examples/dvi/muletest.dvi --- +# examples/dvi/py_test.dvi --- +# examples/dvi/pytest.dvi --- +# examples/dvi/rubytest.dvi --- +# examples/dvi/SJIS.dvi --- +# examples/dvi/thai.dvi --- +# examples/dvi/UTF8.dvi --- + +&I("examples/pdf/Big5.pdf", "$D/examples/pdf/Big5.pdf"); +&I("examples/pdf/Big5vert.pdf", "$D/examples/pdf/Big5vert.pdf"); +&I("examples/pdf/CEF_test.pdf", "$D/examples/pdf/CEF_test.pdf"); +&I("examples/pdf/CJKbabel.pdf", "$D/examples/pdf/CJKbabel.pdf"); +&I("examples/pdf/CJKfntef.pdf", "$D/examples/pdf/CJKfntef.pdf"); +&I("examples/pdf/CJKmixed.pdf", "$D/examples/pdf/CJKmixed.pdf"); +&I("examples/pdf/CJKspace.pdf", "$D/examples/pdf/CJKspace.pdf"); +&I("examples/pdf/CJKutf8.pdf", "$D/examples/pdf/CJKutf8.pdf"); +&I("examples/pdf/GB.pdf", "$D/examples/pdf/GB.pdf"); +&I("examples/pdf/JIS.pdf", "$D/examples/pdf/JIS.pdf"); +&I("examples/pdf/KS.pdf", "$D/examples/pdf/KS.pdf"); +&I("examples/pdf/muletest.pdf", "$D/examples/pdf/muletest.pdf"); +&I("examples/pdf/py_test.pdf", "$D/examples/pdf/py_test.pdf"); +&I("examples/pdf/pytest.pdf", "$D/examples/pdf/pytest.pdf"); +&I("examples/pdf/rubytest.pdf", "$D/examples/pdf/rubytest.pdf"); +&I("examples/pdf/SJIS.pdf", "$D/examples/pdf/SJIS.pdf"); +&I("examples/pdf/thai.pdf", "$D/examples/pdf/thai.pdf"); +&I("examples/pdf/thai_utf8.pdf","$D/examples/pdf/thai_utf8.pdf"); +&I("examples/pdf/UTF8.pdf", "$D/examples/pdf/UTF8.pdf"); + +1; +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/texlive/dnp.pl b/language/chinese/CJK/cjk-4.8.5/texlive/dnp.pl new file mode 100644 index 0000000000..f7e75555eb --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texlive/dnp.pl @@ -0,0 +1,21 @@ +# dnp.pl +# +# Public domain. +# +# Written by Werner Lemberg <wl@gnu.org> +# +# This file is intended to be called from the `MAKEcjk' subroutine within +# the ctan2tds perl script. It installs the necessary files from the CJK +# package into the correct destinations. +# +# It expects that the CJK packages (cjk-4.8.5 and cjk-4.8.5-doc) have been +# unpacked (unmodified) in the current directory. + + +# XXX: This installs files in `texmf', not `texmf-dist'! + + +&I("contrib/wadalab/DNP.sfd", "fonts/sfd/dnp/DNP.sfd"); + +1; +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/texlive/garuda-c90.pl b/language/chinese/CJK/cjk-4.8.5/texlive/garuda-c90.pl new file mode 100644 index 0000000000..539e7bf63c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texlive/garuda-c90.pl @@ -0,0 +1,32 @@ +# garuda-c90.pl +# +# Public domain. +# +# Written by Werner Lemberg <wl@gnu.org> +# +# This file is intended to be called from the `MAKEcjk' subroutine within +# the ctan2tds perl script. It installs the necessary files from the CJK +# package into the correct destinations. +# +# It expects that the CJK packages (cjk-4.8.5 and cjk-4.8.5-doc) have been +# unpacked (unmodified) in the current directory. + +my $D = "dvips/garuda-c90"; +my $M = "fonts/map/dvips/garuda-c90"; +my $S = "source/fonts/garuda-c90"; +my $T = "fonts/tfm/public/garuda-c90"; + + +&I("utils/thaifont/texmf/dvips/garuda-c90/config.garuda-c90", "$D/config.garuda-c90"); + +&I("utils/thaifont/texmf/fonts/map/dvips/garuda-c90/garuda-c90.map", "$M/garuda-c90.map"); + +&I("utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdb8z.tfm", "$T/fgdb8z.tfm"); +&I("utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdbo8z.tfm", "$T/fgdbo8z.tfm"); +&I("utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdo8z.tfm", "$T/fgdo8z.tfm"); +&I("utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdr8z.tfm", "$T/fgdr8z.tfm"); + +&I("utils/thaifont/tools/garuda-c90.fontinst", "$S/garuda-c90.fontinst"); + +1; +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/texlive/norasi-c90.pl b/language/chinese/CJK/cjk-4.8.5/texlive/norasi-c90.pl new file mode 100644 index 0000000000..88dd7cbf7f --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/texlive/norasi-c90.pl @@ -0,0 +1,32 @@ +# norasi-c90.pl +# +# Public domain. +# +# Written by Werner Lemberg <wl@gnu.org> +# +# This file is intended to be called from the `MAKEcjk' subroutine within +# the ctan2tds perl script. It installs the necessary files from the CJK +# package into the correct destinations. +# +# It expects that the CJK packages (cjk-4.8.5 and cjk-4.8.5-doc) have been +# unpacked (unmodified) in the current directory. + +my $D = "dvips/norasi-c90"; +my $M = "fonts/map/dvips/norasi-c90"; +my $S = "source/fonts/norasi-c90"; +my $T = "fonts/tfm/public/norasi-c90"; + + +&I("utils/thaifont/texmf/dvips/norasi-c90/config.norasi-c90", "$D/config.norasi-c90"); + +&I("utils/thaifont/texmf/fonts/map/dvips/norasi-c90/norasi-c90.map", "$M/norasi-c90.map"); + +&I("utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnb8z.tfm", "$T/ftnb8z.tfm"); +&I("utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnbi8z.tfm", "$T/ftnbi8z.tfm"); +&I("utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftni8z.tfm", "$T/ftni8z.tfm"); +&I("utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnr8z.tfm", "$T/ftnr8z.tfm"); + +&I("utils/thaifont/tools/norasi-c90.fontinst", "$S/norasi-c90.fontinst"); + +1; +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5conv.1 b/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5conv.1 new file mode 100644 index 0000000000..c18087e1c3 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5conv.1 @@ -0,0 +1,110 @@ +.\" man page for bg5conv +.\" Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +.\" +.\" This program is free software; you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation; either version 2 of the License, or +.\" (at your option) any later version. +.\" +.\" This program is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License +.\" along with this program in doc/COPYING; if not, write to the Free +.\" Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +.\" MA 02110-1301 USA +. +.TH BG5CONV 1 16-Oct-2021 "CJK Version 4.8.5" +. +.\" ==== +.\" ==== macro definitions +.\" ==== +. +.\" here we define \TeX for troff and nroff +.if t .ds TX \fRT\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X\fP +.if n .ds TX TeX +. +.\" and here the same for \LaTeX +.if t \{\ +.ie '\*(.T'dvi' \ +.ds LX \fRL\h'-0.36m'\v'-0.15v'\s-3A\s0\h'-0.15m'\v'0.15v'\fP\*(TX +.el .ds LX \fRL\h'-0.36m'\v'-0.22v'\s-2A\s0\h'-0.15m'\v'0.22v'\fP\*(TX +.\} +.if n .ds LX LaTeX +. +.\" \LaTeXe +.\" note that we need \vareps for TeX instead of \eps which can only be +.\" accessed with the \N escape sequence (in the Math Italic font) +.if t \{\ +.ie '\*(.T'dvi' .ds LE \*(LX\h'0.15m'2\v'0.20v'\f(MI\N'34'\fP\v'-0.20v' +.el .ds LE \*(LX\h'0.15m'2\v'0.20v'\(*e\v'-0.20v' +.\} +.if n .ds LE LaTeX\ 2e +. +.\" a typewriter font +.if t \{\ +.de C +\fC\\$1\fP\\$2 +.. +.\} +.if n \{\ +.de C +\\$1\\$2 +.. +.\} +. +.\" ==== +.\" ==== end of macro definitions +.\" ==== +. +. +. +.SH NAME +bg5conv \- convert a TeX document in Big\ 5 encoding into `preprocessed' +form. +. +. +.SH SYNOPSIS +.B bg5conv +< +.I infile +> +.I outfile +. +. +.SH DESCRIPTION +Big\ 5 encoding for traditional Chinese uses the characters +.C { , +.C } , +and +.C \e +which have special meanings in \*(TX +documents. +.PP +After processing a \*(LE +document which contains Big\ 5 characters with +.B bg5conv +you need not care about these special characters. +.PP +This filter is part of the +.B CJK +macro package for \*(LE. +. +. +.SH "SEE ALSO" +.BR \%sjisconv (1), +.BR \%cefconv (1), +.BR cef5conv (1), +.BR \%cefsconv (1), +.BR \%extconv (1), +.br +the +.B CJK +documentation files. +. +. +.SH AUTHOR +Werner Lemberg +.C <wl@gnu.org> diff --git a/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5conv.c b/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5conv.c new file mode 100644 index 0000000000..e5c7ecf2a4 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5conv.c @@ -0,0 +1,33 @@ +#define banner \ +"bg5conv (CJK ver. 4.8.5)" \ + +/*2:*/ +#line 94 "/home/wl/git/cjk/cjk-4.8.5/utils/Bg5conv/bg5conv.w" + +#include <stdio.h> +#include <stdlib.h> + + +int main(int argc,char*argv[]) +{int ch; + +fprintf(stdout,"\\def\\CJKpreproc{%s}",banner); + +ch= fgetc(stdin); + +while(!feof(stdin)) +{if(ch>=0xA1&&ch<=0xFE) +{fprintf(stdout,"\177%c\177",ch); + +ch= fgetc(stdin); +if(!feof(stdin)) +fprintf(stdout,"%d\177",ch); +} +else +fputc(ch,stdout); + +ch= fgetc(stdin); +} +exit(EXIT_SUCCESS); +return 0; +}/*:2*/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5conv.w b/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5conv.w new file mode 100644 index 0000000000..fdce159e14 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5conv.w @@ -0,0 +1,121 @@ +% This is the cweb file bg5conv.w of the CJK Package Ver. 4.8.5 16-Oct-2021 + +% Copyright (C) 1994-2021 Werner Lemberg <wl@@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +% To print this CWEB file you should (but not must) use the CWEAVE of the +% c2cweb-package (found at the CTAN archives, e.g. ftp.dante.de) and then say +% +% cweave +a bg5conv.w +% +% This (fully compatible) CWEAVE can transform CWEB-files with alternative +% output rules (look at the position of braces below!) the author (it's me +% too :-) prefer. Otherwise this file will be formatted traditionally. + +\def\title{bg5conv (CJK Version 4.8.5)} + +\def\topofcontents{ + \null\vfill + \centerline{\titlefont The {\ttitlefont bg5conv} program} + \vskip 20pt + \centerline{(CJK Version 4.8.5)} + \vfill} + +\def\botofcontents{ + \vfill + \noindent + Copyright \copyright\ 1996, 1998 by Werner Lemberg + \bigskip\noindent + Permission is granted to make and distribute verbatim copies of this + document provided that the copyright notice and this permission notice + are preserved on all copies. + + \smallskip\noindent + Permission is granted to copy and distribute modified versions of this + document under the conditions for verbatim copying, provided that the + entire resulting derived work is distributed under the terms of a + permission notice identical to this one.} + +\pageno=\contentspagenumber \advance\pageno by 1 +\let\maybe=\iftrue +\fullpageheight=240mm +\pageheight=223mm +\pagewidth=158mm +\setpage +\frenchspacing + +\noinx +\nosecs +\nocon + +@* Function and Use. +This small program will convert Big~5 encoded Chinese characters into a +`preprocessed' form. The need of this program arises from the fact that this +encoding uses the characters `\.{\\}', `\.{\{}', and `\.{\}}' which have +special meanings in \TeX. + +Use this program as a filter: + +\hskip 2em \.{bg5conv < input\_file > output\_file} + + +@* The program. +The only function of this program is to replace all occurrences of Big 5 +encoded characters \.{XY} (\.{X} and \.{Y} are the first and the second byte +of the character) with +\.{\char94 \char94 7fX\char94 \char94 7fZZZ\char94 \char94 7f}, where +\.{ZZZ} represents the second byte as a decimal number. \.{0x7F} is used as +an active character and delimiter. + +Additionally we define a \TeX\ macro at the very beginning to signal a +preprocessed file. + +The following code is very simple. No error detection is done because \TeX\ +which will see the output of \.{bg5conv} complains loudly if something is +wrong. + +@d banner +"bg5conv (CJK ver. 4.8.5)" + +@c +#include <stdio.h> +#include <stdlib.h>@# + + +int main(int argc, char *argv[]) + {int ch; + + fprintf(stdout, "\\def\\CJKpreproc{%s}", banner);@# + + ch = fgetc(stdin);@# + + while(!feof(stdin)) + {if(ch >= 0xA1 && ch <= 0xFE) + {fprintf(stdout, "\177%c\177", ch);@# + + ch = fgetc(stdin); + if(!feof(stdin)) + fprintf(stdout, "%d\177", ch); + } + else + fputc(ch, stdout);@# + + ch = fgetc(stdin); + } + exit(EXIT_SUCCESS); + return 0; /* never reached */ + } diff --git a/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5latex b/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5latex new file mode 100755 index 0000000000..91eca16d77 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5latex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] latex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +bg5conv < "$tex" > "$aux" && eval latex "$argv" "\$aux" + +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5latex.bat b/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5latex.bat new file mode 100644 index 0000000000..91e7dfd857 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5latex.bat @@ -0,0 +1,3 @@ +call f_name %1
+bg5conv < %1 > %fd%%fp%%fn%.cjk
+latex %fd%%fu%%fn%.cjk
diff --git a/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5latex.cmd b/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5latex.cmd new file mode 100644 index 0000000000..401a426ec0 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5latex.cmd @@ -0,0 +1,44 @@ +/*----------------------------------------------------------------------*\
+ bg5latex.cmd
+
+ This file is part of the CJK macro package for LaTeX2e ver. 4.8.5
+
+ Copyright (C) 1994-2021 Wonkoo Kim <wkim+@pitt.edu>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program in doc/COPYING; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ MA 02110-1301 USA
+
+ Wonkoo Kim (wkim+@pitt.edu), September 2, 1996
+\*----------------------------------------------------------------------*/
+
+Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
+Call SysLoadFuncs
+
+parse arg file
+
+drive = filespec('drive', file)
+path = filespec('path', file)
+fname = filespec('name', file)
+m = lastpos('.', fname)
+if (m = 0) then m = length(fname) + 1
+cjkfile = drive||path||delstr(fname, m)||'.cjk'
+
+'bg5conv <' file '>' cjkfile
+
+ucjkfile = translate(cjkfile,'/','\')
+if stream(cjkfile, 'C', 'QUERY EXISTS') \= '' then
+ 'call latex.cmd' ucjkfile
+
+/* End of bg5latex.cmd */
diff --git a/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5pdflatex b/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5pdflatex new file mode 100755 index 0000000000..a89ab4ea8f --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/Bg5conv/bg5pdflatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] pdflatex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +bg5conv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux" + +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5conv.1 b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5conv.1 new file mode 100644 index 0000000000..5c5c3cd1c3 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5conv.1 @@ -0,0 +1,127 @@ +.\" man page for cef5conv +.\" Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +.\" +.\" This program is free software; you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation; either version 2 of the License, or +.\" (at your option) any later version. +.\" +.\" This program is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License +.\" along with this program in doc/COPYING; if not, write to the Free +.\" Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +.\" MA 02110-1301 USA +. +.TH CEF5CONV 1 16-Oct-2021 "CJK Version 4.8.5" +. +.\" ==== +.\" ==== macro definitions +.\" ==== +. +.\" here we define \TeX for troff and nroff +.if t .ds TX \fRT\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X\fP +.if n .ds TX TeX +. +.\" and here the same for \LaTeX +.if t \{\ +.ie '\*(.T'dvi' \ +.ds LX \fRL\h'-0.36m'\v'-0.15v'\s-3A\s0\h'-0.15m'\v'0.15v'\fP\*(TX +.el .ds LX \fRL\h'-0.36m'\v'-0.22v'\s-2A\s0\h'-0.15m'\v'0.22v'\fP\*(TX +.\} +.if n .ds LX LaTeX +. +.\" \LaTeXe +.\" note that we need \vareps for TeX instead of \eps which can only be +.\" accessed with the \N escape sequence (in the Math Italic font) +.if t \{\ +.ie '\*(.T'dvi' .ds LE \*(LX\h'0.15m'2\v'0.20v'\f(MI\N'34'\fP\v'-0.20v' +.el .ds LE \*(LX\h'0.15m'2\v'0.20v'\(*e\v'-0.20v' +.\} +.if n .ds LE LaTeX\ 2e +. +.\" a typewriter font +.if t \{\ +.de C +\fC\\$1\fP +.. +.\} +.if n \{\ +.de C +\\$1 +.. +.\} +. +.\" ==== +.\" ==== end of macro definitions +.\" ==== +. +. +. +.SH NAME +cef5conv \- convert a TeX document in Big\ 5 encoding containing CEF macros +into `preprocessed' form. +. +. +.SH SYNOPSIS +.B cef5conv +< +.I infile +> +.I outfile +. +. +.SH DESCRIPTION +The +.B Chinese Encoding Framework +.RB ( CEF ) +developed by Christian Wittern +.C <cwittern@conline.central.de> +makes it possible to include CJK characters in various encodings using the +SGML macros +.B &CX-aabb; +for Big\ 5 and CNS encoding and +.B &U-aabb; +for Unicode +.RB ( X +denotes a number between 0 and 7; 0 represents Big\ 5 encoding, 1-7 CNS +encoding planes 1-7. +.B aabb +is either a decimal or hexadecimal number). +.PP +.B cef5conv +converts the CEF macros of a Big\ 5 encoded document together with the Big\ +5 encoding itself into a form which can directly processed with \*(LE. +It is identical to +.IP +.B bg5conv +< +.I infile +| +.B cefconv +> +.I outfile +.PP +This filter is part of the +.B CJK +macro package for \*(LE. +. +. +.SH "SEE ALSO" +.BR \%sjisconv (1), +.BR bg5conv (1), +.BR \%cefconv (1), +.BR \%cefsconv (1), +.BR \%extconv (1), +.br +the +.B CJK +documentation files. +. +. +.SH AUTHOR +Werner Lemberg +.C <wl@gnu.org> diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5conv.c b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5conv.c new file mode 100644 index 0000000000..b5b479b6e6 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5conv.c @@ -0,0 +1,135 @@ +#define banner \ +"cef5conv (CJK ver. 4.8.5)" \ + +/*2:*/ +#line 108 "/home/wl/git/cjk/cjk-4.8.5/utils/CEFconv/cef5conv.w" + +#include <ctype.h> +#include <stdio.h> +#include <stdlib.h> + + +int main(int argc,char*argv[]) +{int ch,i; +unsigned char in[16]; +unsigned char out[32]; +unsigned char*inp,*outp; + +fprintf(stdout,"\\def\\CNSpreproc{%s}",banner); + +ch= fgetc(stdin); + +while(!feof(stdin)) +{if(ch>=0xA1&&ch<=0xFE) +{fprintf(stdout,"\177%c\177",ch); + +ch= fgetc(stdin); +if(!feof(stdin)) +fprintf(stdout,"%d\177",ch); +} +else if(ch=='&') + +{inp= in; +outp= out; +*inp= ch; +*(++inp)= fgetc(stdin); + +if(*inp=='C'&&!feof(stdin)) +{*(++inp)= fgetc(stdin); +if(*inp=='0'&&!feof(stdin)) +{*(outp++)= 'B'; +*(outp++)= 'g'; +*(outp++)= '5'; +} +else if(*inp>='1'&&*inp<='7'&&!feof(stdin)) +{*(outp++)= 'C'; +*(outp++)= 'N'; +*(outp++)= 'S'; +*(outp++)= *inp; +} +else if((*inp=='X'||*inp=='Y')&&!feof(stdin)) +{*(outp++)= 'C'; +*(outp++)= 'E'; +*(outp++)= 'F'; +*(outp++)= *inp; +} +else +goto no_macro; +} +else if(*inp=='U'&&!feof(stdin)) +{*(outp++)= 'U'; +*(outp++)= 'T'; +*(outp++)= 'F'; +*(outp++)= '8'; +} +else +goto no_macro; + +*(++inp)= fgetc(stdin); +if(*inp!='-'||feof(stdin)) +goto no_macro; + +*(outp++)= '\177'; +*(outp++)= '\177'; +*(outp++)= '\"'; +*(outp++)= '0'; + +*(++inp)= fgetc(stdin); +if(isxdigit(*inp)&&*inp<0x80&&!feof(stdin)) +*(outp++)= toupper(*inp); +else +goto no_macro; + +*(++inp)= fgetc(stdin); +if(isxdigit(*inp)&&*inp<0x80&&!feof(stdin)) +*(outp++)= toupper(*inp); +else +goto no_macro; + +*(outp++)= '\177'; +*(outp++)= '\"'; +*(outp++)= '0'; + +*(++inp)= fgetc(stdin); +if(isxdigit(*inp)&&*inp<0x80&&!feof(stdin)) +*(outp++)= toupper(*inp); +else +goto no_macro; + +*(++inp)= fgetc(stdin); +if(isxdigit(*inp)&&*inp<0x80&&!feof(stdin)) +*(outp++)= toupper(*inp); +else +goto no_macro; + +*(outp++)= '\177'; +*outp= '\0'; + +*(++inp)= fgetc(stdin); +if(*inp!=';'||feof(stdin)) +goto no_macro; + +outp= out; +fprintf(stdout,"\17772\177"); +while(*outp) +fputc(*(outp++),stdout); + +ch= fgetc(stdin); +continue; + +no_macro: +ch= *inp; +i= inp-in; +inp= in; +while(i--) +fputc(*(inp++),stdout); +continue; +} +else +fputc(ch,stdout); + +ch= fgetc(stdin); +} +exit(EXIT_SUCCESS); +return 0; +}/*:2*/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5conv.w b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5conv.w new file mode 100644 index 0000000000..59942012ab --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5conv.w @@ -0,0 +1,237 @@ +% This is the cweb file cef5conv.w of the CJK Package Ver. 4.8.5 16-Oct-2021 + +% Copyright (C) 1994-2021 Werner Lemberg <wl@@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +% To print this CWEB file you should (but not must) use the CWEAVE of the +% c2cweb-package (found at the CTAN archives, e.g. ftp.dante.de) and then say +% +% cweave +a cef5conv.w +% +% This (fully compatible) CWEAVE can transform CWEB-files with alternative +% output rules (look at the position of braces below!) the author (it's me +% too :-) prefer. Otherwise this file will be formatted traditionally. + +\def\title{cef5conv (CJK Version 4.8.5)} + +\def\topofcontents{ + \null\vfill + \centerline{\titlefont The {\ttitlefont cef5conv} program} + \vskip 20pt + \centerline{(CJK Version 4.8.5)} + \vfill} + +\def\botofcontents{ + \vfill + \noindent + Copyright \copyright\ 1996, 1998, 2002 by Werner Lemberg + \bigskip\noindent + Permission is granted to make and distribute verbatim copies of this + document provided that the copyright notice and this permission notice + are preserved on all copies. + + \smallskip\noindent + Permission is granted to copy and distribute modified versions of this + document under the conditions for verbatim copying, provided that the + entire resulting derived work is distributed under the terms of a + permission notice identical to this one.} + +\pageno=\contentspagenumber \advance\pageno by 1 +\let\maybe=\iftrue +\fullpageheight=240mm +\pageheight=223mm +\pagewidth=158mm +\setpage +\frenchspacing + +\noinx +\nosecs +\nocon + +@* Function and Use. +This small program will convert Big~5 encoding with CNS encoded Chinese +characters using the {\it Chinese Encoding Framework (CEF)} into a +`preprocessed' form. The need of this program arises from the fact that +Big~5 encoding uses the characters `\.{\\}', `\.{\{}', and `\.{\}}' which +have special meanings in \TeX. + +Use this program as a filter: + +\hskip 2em \.{cef5conv < input\_file > output\_file} + + +@* The program. +In contrast to \.{cefconv} two tasks will be executed: + +Replacing all occurrences of Big~5 encoded characters \.{XY} (\.{X} and +\.{Y} are the first and the second byte of the character) with +\.{\char94 \char94 7fX\char94 \char94 7fZZZ\char94 \char94 7f}, where +\.{ZZZ} represents the second byte as a decimal number. \.{0x7F} is used as +a control character and a delimiter. + +Replacing CEF macros of the form \.{\&xx-yyzz;} (\.{xx} can be C1--C7 for +the CNS planes 1--7, C0 for Big~5 encoding, an encoding CX reserved for +IRIZ, a private encoding CY, and U for Unicode encoding; \.{yyzz} is a +hexadecimal representation of the code point in this plane) with +\medskip +\quad\.{\char94 \char94 7f72\char94 \char94 7fXX\char94 \char94 7f% +\char94 \char94 7f"0yy\char94 \char94 7f"0zz\char94 \char94 7f}\quad. +\medskip +\.{XX} is the corresponding CJK encoding of \.{xx}; the number `72' +specifies a macro in the file \.{MULEenc.sty} which further processes this +representation -- it is automatically loaded by the \.{CJK} package. + +Additionally we define a \TeX\ macro at the very beginning to signal a +preprocessed file. + +The following code is very simple. No error detection is done because \TeX\ +which will see the output of \.{cef5conv} complains loudly if something is +wrong. + +@d banner +"cef5conv (CJK ver. 4.8.5)" + +@c +#include <ctype.h> +#include <stdio.h> +#include <stdlib.h>@# + + +int main(int argc, char *argv[]) + {int ch, i; + unsigned char in[16]; + unsigned char out[32]; + unsigned char *inp, *outp; + + fprintf(stdout, "\\def\\CNSpreproc{%s}", banner);@# + + ch = fgetc(stdin);@# + + while(!feof(stdin)) + {if(ch >= 0xA1 && ch <= 0xFE) + {fprintf(stdout, "\177%c\177", ch);@# + + ch = fgetc(stdin); + if(!feof(stdin)) + fprintf(stdout, "%d\177", ch); + } + else if(ch == '&') + /* the macro test is hardcoded to make things simple */ + {inp = in; + outp = out; + *inp = ch; + *(++inp) = fgetc(stdin);@# + + if(*inp == 'C' && !feof(stdin)) + {*(++inp) = fgetc(stdin); + if(*inp == '0' && !feof(stdin)) + {*(outp++) = 'B'; + *(outp++) = 'g'; + *(outp++) = '5'; + } + else if(*inp >= '1' && *inp <= '7' && !feof(stdin)) + {*(outp++) = 'C'; + *(outp++) = 'N'; + *(outp++) = 'S'; + *(outp++) = *inp; + } + else if((*inp == 'X' || *inp == 'Y') && !feof(stdin)) + {*(outp++) = 'C'; + *(outp++) = 'E'; + *(outp++) = 'F'; + *(outp++) = *inp; + } + else + goto no_macro; + } + else if(*inp == 'U' && !feof(stdin)) + {*(outp++) = 'U'; + *(outp++) = 'T'; + *(outp++) = 'F'; + *(outp++) = '8'; + } + else + goto no_macro;@# + + *(++inp) = fgetc(stdin); + if(*inp != '-' || feof(stdin)) + goto no_macro;@# + + *(outp++) = '\177'; + *(outp++) = '\177'; + *(outp++) = '\"'; + *(outp++) = '0';@# + + *(++inp) = fgetc(stdin); + if(isxdigit(*inp) && *inp < 0x80 && !feof(stdin)) + *(outp++) = toupper(*inp); + else + goto no_macro;@# + + *(++inp) = fgetc(stdin); + if(isxdigit(*inp) && *inp < 0x80 && !feof(stdin)) + *(outp++) = toupper(*inp); + else + goto no_macro;@# + + *(outp++) = '\177'; + *(outp++) = '\"'; + *(outp++) = '0';@# + + *(++inp) = fgetc(stdin); + if(isxdigit(*inp) && *inp < 0x80 && !feof(stdin)) + *(outp++) = toupper(*inp); + else + goto no_macro;@# + + *(++inp) = fgetc(stdin); + if(isxdigit(*inp) && *inp < 0x80 && !feof(stdin)) + *(outp++) = toupper(*inp); + else + goto no_macro;@# + + *(outp++) = '\177'; + *outp = '\0';@# + + *(++inp) = fgetc(stdin); + if(*inp != ';' || feof(stdin)) + goto no_macro;@# + + outp = out; + fprintf(stdout, "\17772\177"); + while(*outp) + fputc(*(outp++), stdout);@# + + ch = fgetc(stdin); + continue;@# + +no_macro: + ch = *inp; + i = inp - in; + inp = in; + while(i--) + fputc(*(inp++), stdout); + continue; + } + else + fputc(ch, stdout);@# + + ch = fgetc(stdin); + } + exit(EXIT_SUCCESS); + return 0; /* never reached */ + } diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5latex b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5latex new file mode 100755 index 0000000000..3a0f5a300c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5latex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] latex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +cef5conv < "$tex" > "$aux" && eval latex "$argv" "\$aux" + +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5ltx.bat b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5ltx.bat new file mode 100644 index 0000000000..187485301f --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5ltx.bat @@ -0,0 +1,3 @@ +call f_name %1
+cef5conv < %1 > %fd%%fp%%fn%.cjk
+latex %fd%%fu%%fn%.cjk
diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5ltx.cmd b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5ltx.cmd new file mode 100644 index 0000000000..29496f8967 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5ltx.cmd @@ -0,0 +1,46 @@ +/*----------------------------------------------------------------------*\
+ cef5ltx.cmd
+
+ This file is part of the CJK macro package for LaTeX2e ver. 4.8.5
+
+ This file is part of the CJK macro package for LaTeX2e ver. 4.8.5
+
+ Copyright (C) 1994-2021 Wonkoo Kim <wkim+@pitt.edu>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program in doc/COPYING; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ MA 02110-1301 USA
+
+ Wonkoo Kim (wkim+@pitt.edu), September 2, 1996
+\*----------------------------------------------------------------------*/
+
+Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
+Call SysLoadFuncs
+
+parse arg file
+
+drive = filespec('drive', file)
+path = filespec('path', file)
+fname = filespec('name', file)
+m = lastpos('.', fname)
+if (m = 0) then m = length(fname) + 1
+cjkfile = drive||path||delstr(fname, m)||'.cjk'
+
+'cef5conv <' file '>' cjkfile
+
+ucjkfile = translate(cjkfile,'/','\')
+if stream(cjkfile, 'C', 'QUERY EXISTS') \= '' then
+ 'call latex.cmd' ucjkfile
+
+/* End of cef5ltx.cmd */
diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5pdflatex b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5pdflatex new file mode 100755 index 0000000000..cdd4384ec7 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cef5pdflatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] pdflatex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +cef5conv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux" + +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefconv.1 b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefconv.1 new file mode 100644 index 0000000000..50a8bbf6f6 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefconv.1 @@ -0,0 +1,117 @@ +.\" man page for cefconv +.\" Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +.\" +.\" This program is free software; you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation; either version 2 of the License, or +.\" (at your option) any later version. +.\" +.\" This program is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License +.\" along with this program in doc/COPYING; if not, write to the Free +.\" Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +.\" MA 02110-1301 USA +. +.TH CEFCONV 1 16-Oct-2021 "CJK Version 4.8.5" +. +.\" ==== +.\" ==== macro definitions +.\" ==== +. +.\" here we define \TeX for troff and nroff +.if t .ds TX \fRT\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X\fP +.if n .ds TX TeX +. +.\" and here the same for \LaTeX +.if t \{\ +.ie '\*(.T'dvi' \ +.ds LX \fRL\h'-0.36m'\v'-0.15v'\s-3A\s0\h'-0.15m'\v'0.15v'\fP\*(TX +.el .ds LX \fRL\h'-0.36m'\v'-0.22v'\s-2A\s0\h'-0.15m'\v'0.22v'\fP\*(TX +.\} +.if n .ds LX LaTeX +. +.\" \LaTeXe +.\" note that we need \vareps for TeX instead of \eps which can only be +.\" accessed with the \N escape sequence (in the Math Italic font) +.if t \{\ +.ie '\*(.T'dvi' .ds LE \*(LX\h'0.15m'2\v'0.20v'\f(MI\N'34'\fP\v'-0.20v' +.el .ds LE \*(LX\h'0.15m'2\v'0.20v'\(*e\v'-0.20v' +.\} +.if n .ds LE LaTeX\ 2e +. +.\" a typewriter font +.if t \{\ +.de C +\fC\\$1\fP +.. +.\} +.if n \{\ +.de C +\\$1 +.. +.\} +. +.\" ==== +.\" ==== end of macro definitions +.\" ==== +. +. +. +.SH NAME +cefconv \- convert a TeX document containing CEF macros into `preprocessed' +form. +. +. +.SH SYNOPSIS +.B cefconv +< +.I infile +> +.I outfile +. +. +.SH DESCRIPTION +The +.B Chinese Encoding Framework +.RB ( CEF ) +developed by Christian Wittern +.C <cwittern@conline.central.de> +makes it possible to include CJK characters in various encodings using the +SGML macros +.B &CX-aabb; +for Big\ 5 and CNS encoding and +.B &U-aabb; +for Unicode +.RB ( X +denotes a number between 0 and 7; 0 represents Big\ 5 encoding, 1-7 CNS +encoding planes 1-7. +.B aabb +is either a decimal or hexadecimal number) +.PP +.B \%cefconv +converts the CEF macros into a form which can directly processed with \*(LE. +.PP +This filter is part of the +.B CJK +macro package for \*(LE. +. +. +.SH "SEE ALSO" +.BR \%sjisconv (1), +.BR bg5conv (1), +.BR cef5conv (1), +.BR \%cefsconv (1), +.BR \%extconv (1), +.br +the +.B CJK +documentation files. +. +. +.SH AUTHOR +Werner Lemberg +.C <wl@gnu.org> diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefconv.c b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefconv.c new file mode 100644 index 0000000000..354bf073cc --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefconv.c @@ -0,0 +1,127 @@ +#define banner \ +"cefconv (CJK ver. 4.8.5)" \ + +/*2:*/ +#line 100 "/home/wl/git/cjk/cjk-4.8.5/utils/CEFconv/cefconv.w" + +#include <ctype.h> +#include <stdio.h> +#include <stdlib.h> + + +int main(int argc,char*argv[]) +{int ch,i; +unsigned char in[16]; +unsigned char out[32]; +unsigned char*inp,*outp; + +fprintf(stdout,"\\def\\CNSpreproc{%s}",banner); + +ch= fgetc(stdin); + +while(!feof(stdin)) +{if(ch=='&') +{inp= in; +outp= out; +*inp= ch; +*(++inp)= fgetc(stdin); + +if(*inp=='C'&&!feof(stdin)) +{*(++inp)= fgetc(stdin); +if(*inp=='0'&&!feof(stdin)) +{*(outp++)= 'B'; +*(outp++)= 'g'; +*(outp++)= '5'; +} +else if(*inp>='1'&&*inp<='7'&&!feof(stdin)) +{*(outp++)= 'C'; +*(outp++)= 'N'; +*(outp++)= 'S'; +*(outp++)= *inp; +} +else if((*inp=='X'||*inp=='Y')&&!feof(stdin)) +{*(outp++)= 'C'; +*(outp++)= 'E'; +*(outp++)= 'F'; +*(outp++)= *inp; +} +else +goto no_macro; +} +else if(*inp=='U'&&!feof(stdin)) +{*(outp++)= 'U'; +*(outp++)= 'T'; +*(outp++)= 'F'; +*(outp++)= '8'; +} +else +goto no_macro; + +*(++inp)= fgetc(stdin); +if(*inp!='-'||feof(stdin)) +goto no_macro; + +*(outp++)= '\177'; +*(outp++)= '\177'; +*(outp++)= '\"'; +*(outp++)= '0'; + +*(++inp)= fgetc(stdin); +if(isxdigit(*inp)&&*inp<0x80&&!feof(stdin)) +*(outp++)= toupper(*inp); +else +goto no_macro; + +*(++inp)= fgetc(stdin); +if(isxdigit(*inp)&&*inp<0x80&&!feof(stdin)) +*(outp++)= toupper(*inp); +else +goto no_macro; + +*(outp++)= '\177'; +*(outp++)= '\"'; +*(outp++)= '0'; + +*(++inp)= fgetc(stdin); +if(isxdigit(*inp)&&*inp<0x80&&!feof(stdin)) +*(outp++)= toupper(*inp); +else +goto no_macro; + +*(++inp)= fgetc(stdin); +if(isxdigit(*inp)&&*inp<0x80&&!feof(stdin)) +*(outp++)= toupper(*inp); +else +goto no_macro; + +*(outp++)= '\177'; +*outp= '\0'; + +*(++inp)= fgetc(stdin); +if(*inp!=';'||feof(stdin)) +goto no_macro; + +outp= out; +fprintf(stdout,"\17772\177"); +while(*outp) +fputc(*(outp++),stdout); + +ch= fgetc(stdin); +continue; + +no_macro: +ch= *inp; +i= inp-in; +inp= in; +while(i--) +fputc(*(inp++),stdout); +continue; +} +else +fputc(ch,stdout); + +ch= fgetc(stdin); +} +exit(EXIT_SUCCESS); +return 0; +}/*:2*/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefconv.w b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefconv.w new file mode 100644 index 0000000000..93fe237f24 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefconv.w @@ -0,0 +1,221 @@ +% This is the cweb file cefconv.w of the CJK Package Ver. 4.8.5 16-Oct-2021 + +% Copyright (C) 1994-2021 Werner Lemberg <wl@@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +% To print this CWEB file you should (but not must) use the CWEAVE of the +% c2cweb-package (found at the CTAN archives, e.g. ftp.dante.de) and then say +% +% cweave +a cefconv.w +% +% This (fully compatible) CWEAVE can transform CWEB-files with alternative +% output rules (look at the position of braces below!) the author (it's me +% too :-) prefer. Otherwise this file will be formatted traditionally. + +\def\title{cefconv (CJK Version 4.8.5)} + +\def\topofcontents{ + \null\vfill + \centerline{\titlefont The {\ttitlefont cefconv} program} + \vskip 20pt + \centerline{(CJK Version 4.8.5)} + \vfill} + +\def\botofcontents{ + \vfill + \noindent + Copyright \copyright\ 1996, 1998, 2002 by Werner Lemberg + \bigskip\noindent + Permission is granted to make and distribute verbatim copies of this + document provided that the copyright notice and this permission notice + are preserved on all copies. + + \smallskip\noindent + Permission is granted to copy and distribute modified versions of this + document under the conditions for verbatim copying, provided that the + entire resulting derived work is distributed under the terms of a + permission notice identical to this one.} + +\pageno=\contentspagenumber \advance\pageno by 1 +\let\maybe=\iftrue +\fullpageheight=240mm +\pageheight=223mm +\pagewidth=158mm +\setpage +\frenchspacing + +\noinx +\nosecs +\nocon + +@* Function and Use. +This small program will convert EUC encoding with CNS encoded Chinese +characters using the {\it Chinese Encoding Framework (CEF)} into a +`preprocessed' form, expanding the CEF macros. + +Use this program as a filter: + +\hskip 2em \.{cefconv < input\_file > output\_file} + + +@* The program. +In contrast to \.{cef5conv} or \.{cefsconv}, only one task will be executed: + +Replacing CEF macros of the form \.{\&xx-yyzz;} (\.{xx} can be C1--C7 for +the CNS planes 1--7, C0 for Big~5 encoding, an encoding CX reserved for +IRIZ, a private encoding CY, and U for Unicode encoding; \.{yyzz} is a +hexadecimal representation of the code point in this plane) with +\medskip +\quad\.{\char94 \char94 7f72\char94 \char94 7fXX\char94 \char94 7f% +\char94 \char94 7f"0yy\char94 \char94 7f"0zz\char94 \char94 7f}\quad. +\medskip +\.{XX} is the corresponding CJK encoding of \.{xx}; the number `72' +specifies a macro in the file \.{MULEenc.sty} which further processes this +representation -- it is automatically loaded by the \.{CJK} package. + +Additionally we define an empty \TeX\ macro at the very beginning to signal +a preprocessed file. + +The following code is very simple. No error detection is done because \TeX\ +which will see the output of \.{cefconv} complains loudly if something is +wrong. + +@d banner +"cefconv (CJK ver. 4.8.5)" + +@c +#include <ctype.h> +#include <stdio.h> +#include <stdlib.h>@# + + +int main(int argc, char *argv[]) + {int ch, i; + unsigned char in[16]; + unsigned char out[32]; + unsigned char *inp, *outp; + + fprintf(stdout, "\\def\\CNSpreproc{%s}", banner);@# + + ch = fgetc(stdin);@# + + while(!feof(stdin)) + {if(ch == '&') /* the macro test is hardcoded to make things simple */ + {inp = in; + outp = out; + *inp = ch; + *(++inp) = fgetc(stdin);@# + + if(*inp == 'C' && !feof(stdin)) + {*(++inp) = fgetc(stdin); + if(*inp == '0' && !feof(stdin)) + {*(outp++) = 'B'; + *(outp++) = 'g'; + *(outp++) = '5'; + } + else if(*inp >= '1' && *inp <= '7' && !feof(stdin)) + {*(outp++) = 'C'; + *(outp++) = 'N'; + *(outp++) = 'S'; + *(outp++) = *inp; + } + else if((*inp == 'X' || *inp == 'Y') && !feof(stdin)) + {*(outp++) = 'C'; + *(outp++) = 'E'; + *(outp++) = 'F'; + *(outp++) = *inp; + } + else + goto no_macro; + } + else if(*inp == 'U' && !feof(stdin)) + {*(outp++) = 'U'; + *(outp++) = 'T'; + *(outp++) = 'F'; + *(outp++) = '8'; + } + else + goto no_macro;@# + + *(++inp) = fgetc(stdin); + if(*inp != '-' || feof(stdin)) + goto no_macro;@# + + *(outp++) = '\177'; + *(outp++) = '\177'; + *(outp++) = '\"'; + *(outp++) = '0';@# + + *(++inp) = fgetc(stdin); + if(isxdigit(*inp) && *inp < 0x80 && !feof(stdin)) + *(outp++) = toupper(*inp); + else + goto no_macro;@# + + *(++inp) = fgetc(stdin); + if(isxdigit(*inp) && *inp < 0x80 && !feof(stdin)) + *(outp++) = toupper(*inp); + else + goto no_macro;@# + + *(outp++) = '\177'; + *(outp++) = '\"'; + *(outp++) = '0';@# + + *(++inp) = fgetc(stdin); + if(isxdigit(*inp) && *inp < 0x80 && !feof(stdin)) + *(outp++) = toupper(*inp); + else + goto no_macro;@# + + *(++inp) = fgetc(stdin); + if(isxdigit(*inp) && *inp < 0x80 && !feof(stdin)) + *(outp++) = toupper(*inp); + else + goto no_macro;@# + + *(outp++) = '\177'; + *outp = '\0';@# + + *(++inp) = fgetc(stdin); + if(*inp != ';' || feof(stdin)) + goto no_macro;@# + + outp = out; + fprintf(stdout, "\17772\177"); + while(*outp) + fputc(*(outp++), stdout);@# + + ch = fgetc(stdin); + continue;@# + +no_macro: + ch = *inp; + i = inp - in; + inp = in; + while(i--) + fputc(*(inp++), stdout); + continue; + } + else + fputc(ch, stdout);@# + + ch = fgetc(stdin); + } + exit(EXIT_SUCCESS); + return 0; /* never reached */ + } diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/ceflatex b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/ceflatex new file mode 100755 index 0000000000..8102e177fa --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/ceflatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] latex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +cefconv < "$tex" > "$aux" && eval latex "$argv" "\$aux" + +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/ceflatex.bat b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/ceflatex.bat new file mode 100644 index 0000000000..ba5925a6df --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/ceflatex.bat @@ -0,0 +1,3 @@ +call f_name %1
+cefconv < %1 > %fd%%fp%%fn%.cjk
+latex %fd%%fu%%fn%.cjk
diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/ceflatex.cmd b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/ceflatex.cmd new file mode 100644 index 0000000000..43666071bc --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/ceflatex.cmd @@ -0,0 +1,46 @@ +/*----------------------------------------------------------------------*\
+ ceflatex.cmd
+
+ This file is part of the CJK macro package for LaTeX2e ver. 4.8.5
+
+ This file is part of the CJK macro package for LaTeX2e ver. 4.8.5
+
+ Copyright (C) 1994-2021 Wonkoo Kim <wkim+@pitt.edu>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program in doc/COPYING; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ MA 02110-1301 USA
+
+ Wonkoo Kim (wkim+@pitt.edu), September 2, 1996
+\*----------------------------------------------------------------------*/
+
+Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
+Call SysLoadFuncs
+
+parse arg file
+
+drive = filespec('drive', file)
+path = filespec('path', file)
+fname = filespec('name', file)
+m = lastpos('.', fname)
+if (m = 0) then m = length(fname) + 1
+cjkfile = drive||path||delstr(fname, m)||'.cjk'
+
+'cefconv <' file '>' cjkfile
+
+ucjkfile = translate(cjkfile,'/','\')
+if stream(cjkfile, 'C', 'QUERY EXISTS') \= '' then
+ 'call latex.cmd' ucjkfile
+
+/* End of ceflatex.cmd */
diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefpdflatex b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefpdflatex new file mode 100755 index 0000000000..16847a515c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefpdflatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] pdflatex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +cefconv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux" + +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefsconv.1 b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefsconv.1 new file mode 100644 index 0000000000..58f0ad8e81 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefsconv.1 @@ -0,0 +1,127 @@ +.\" man page for cefsconv +.\" Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +.\" +.\" This program is free software; you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation; either version 2 of the License, or +.\" (at your option) any later version. +.\" +.\" This program is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License +.\" along with this program in doc/COPYING; if not, write to the Free +.\" Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +.\" MA 02110-1301 USA +. +.TH CEFSCONV 1 16-Oct-2021 "CJK Version 4.8.5" +. +.\" ==== +.\" ==== macro definitions +.\" ==== +. +.\" here we define \TeX for troff and nroff +.if t .ds TX \fRT\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X\fP +.if n .ds TX TeX +. +.\" and here the same for \LaTeX +.if t \{\ +.ie '\*(.T'dvi' \ +.ds LX \fRL\h'-0.36m'\v'-0.15v'\s-3A\s0\h'-0.15m'\v'0.15v'\fP\*(TX +.el .ds LX \fRL\h'-0.36m'\v'-0.22v'\s-2A\s0\h'-0.15m'\v'0.22v'\fP\*(TX +.\} +.if n .ds LX LaTeX +. +.\" \LaTeXe +.\" note that we need \vareps for TeX instead of \eps which can only be +.\" accessed with the \N escape sequence (in the Math Italic font) +.if t \{\ +.ie '\*(.T'dvi' .ds LE \*(LX\h'0.15m'2\v'0.20v'\f(MI\N'34'\fP\v'-0.20v' +.el .ds LE \*(LX\h'0.15m'2\v'0.20v'\(*e\v'-0.20v' +.\} +.if n .ds LE LaTeX\ 2e +. +.\" a typewriter font +.if t \{\ +.de C +\fC\\$1\fP +.. +.\} +.if n \{\ +.de C +\\$1 +.. +.\} +. +.\" ==== +.\" ==== end of macro definitions +.\" ==== +. +. +. +.SH NAME +cefsconv \- convert a TeX document in SJIS encoding containing CEF macros +into `preprocessed' form. +. +. +.SH SYNOPSIS +.B cefsconv +< +.I infile +> +.I outfile +. +. +.SH DESCRIPTION +The +.B Chinese Encoding Framework +.RB ( CEF ) +developed by Christian Wittern +.C <cwittern@conline.central.de> +makes it possible to include CJK characters in various encodings using the +SGML macros +.B &CX-aabb; +for Big\ 5 and CNS encoding and +.B &U-aabb; +for Unicode +.RB ( X +denotes a number between 0 and 7; 0 represents Big\ 5 encoding, 1-7 CNS +encoding planes 1-7. +.B aabb +is either a decimal or hexadecimal number). +.PP +.B \%cefsconv +converts the CEF macros of a SJIS encoded document together with the SJIS +encoding itself into a form which can directly processed with \*(LE. +It is identical to +.IP +.B sjisconv +< +.I infile +| +.B cefconv +> +.I outfile +.PP +This filter is part of the +.B CJK +macro package for \*(LE. +. +. +.SH "SEE ALSO" +.BR \%sjisconv (1), +.BR bg5conv (1), +.BR \%cefconv (1), +.BR cef5conv (1), +.BR \%extconv (1), +.br +the +.B CJK +documentation files. +. +. +.SH AUTHOR +Werner Lemberg +.C <wl@gnu.org> diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefsconv.c b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefsconv.c new file mode 100644 index 0000000000..76629c6568 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefsconv.c @@ -0,0 +1,135 @@ +#define banner \ +"cefsconv (CJK ver. 4.8.5)" \ + +/*2:*/ +#line 111 "/home/wl/git/cjk/cjk-4.8.5/utils/CEFconv/cefsconv.w" + +#include <ctype.h> +#include <stdio.h> +#include <stdlib.h> + + +int main(int argc,char*argv[]) +{int ch,i; +unsigned char in[16]; +unsigned char out[32]; +unsigned char*inp,*outp; + +fprintf(stdout,"\\def\\CNSpreproc{%s}",banner); + +ch= fgetc(stdin); + +while(!feof(stdin)) +{if((ch>=0x81&&ch<=0x9F)||(ch>=0xE0&&ch<=0xEF)) +{fprintf(stdout,"\177%c\177",ch); + +ch= fgetc(stdin); +if(!feof(stdin)) +fprintf(stdout,"%d\177",ch); +} +else if(ch=='&') + +{inp= in; +outp= out; +*inp= ch; +*(++inp)= fgetc(stdin); + +if(*inp=='C'&&!feof(stdin)) +{*(++inp)= fgetc(stdin); +if(*inp=='0'&&!feof(stdin)) +{*(outp++)= 'B'; +*(outp++)= 'g'; +*(outp++)= '5'; +} +else if(*inp>='1'&&*inp<='7'&&!feof(stdin)) +{*(outp++)= 'C'; +*(outp++)= 'N'; +*(outp++)= 'S'; +*(outp++)= *inp; +} +else if((*inp=='X'||*inp=='Y')&&!feof(stdin)) +{*(outp++)= 'C'; +*(outp++)= 'E'; +*(outp++)= 'F'; +*(outp++)= *inp; +} +else +goto no_macro; +} +else if(*inp=='U'&&!feof(stdin)) +{*(outp++)= 'U'; +*(outp++)= 'T'; +*(outp++)= 'F'; +*(outp++)= '8'; +} +else +goto no_macro; + +*(++inp)= fgetc(stdin); +if(*inp!='-'||feof(stdin)) +goto no_macro; + +*(outp++)= '\177'; +*(outp++)= '\177'; +*(outp++)= '\"'; +*(outp++)= '0'; + +*(++inp)= fgetc(stdin); +if(isxdigit(*inp)&&*inp<0x80&&!feof(stdin)) +*(outp++)= toupper(*inp); +else +goto no_macro; + +*(++inp)= fgetc(stdin); +if(isxdigit(*inp)&&*inp<0x80&&!feof(stdin)) +*(outp++)= toupper(*inp); +else +goto no_macro; + +*(outp++)= '\177'; +*(outp++)= '\"'; +*(outp++)= '0'; + +*(++inp)= fgetc(stdin); +if(isxdigit(*inp)&&*inp<0x80&&!feof(stdin)) +*(outp++)= toupper(*inp); +else +goto no_macro; + +*(++inp)= fgetc(stdin); +if(isxdigit(*inp)&&*inp<0x80&&!feof(stdin)) +*(outp++)= toupper(*inp); +else +goto no_macro; + +*(outp++)= '\177'; +*outp= '\0'; + +*(++inp)= fgetc(stdin); +if(*inp!=';'||feof(stdin)) +goto no_macro; + +outp= out; +fprintf(stdout,"\17772\177"); +while(*outp) +fputc(*(outp++),stdout); + +ch= fgetc(stdin); +continue; + +no_macro: +ch= *inp; +i= inp-in; +inp= in; +while(i--) +fputc(*(inp++),stdout); +continue; +} +else +fputc(ch,stdout); + +ch= fgetc(stdin); +} +exit(EXIT_SUCCESS); +return 0; +}/*:2*/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefsconv.w b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefsconv.w new file mode 100644 index 0000000000..5f8d7870ca --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefsconv.w @@ -0,0 +1,240 @@ +% This is the cweb file cefsconv.w of the CJK Package Ver. 4.8.5 16-Oct-2021 + +% Copyright (C) 1994-2021 Werner Lemberg <wl@@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +% To print this CWEB file you should (but not must) use the CWEAVE of the +% c2cweb-package (found at the CTAN archives, e.g. ftp.dante.de) and then say +% +% cweave +a cefsconv.w +% +% This (fully compatible) CWEAVE can transform CWEB-files with alternative +% output rules (look at the position of braces below!) the author (it's me +% too :-) prefer. Otherwise this file will be formatted traditionally. + +\def\title{cefsconv (CJK Version 4.8.5)} + +\def\topofcontents{ + \null\vfill + \centerline{\titlefont The {\ttitlefont cefsconv} program} + \vskip 20pt + \centerline{(CJK Version 4.8.5)} + \vfill} + +\def\botofcontents{ + \vfill + \noindent + Copyright \copyright\ 1996, 1998 by Werner Lemberg + \bigskip\noindent + Permission is granted to make and distribute verbatim copies of this + document provided that the copyright notice and this permission notice + are preserved on all copies. + + \smallskip\noindent + Permission is granted to copy and distribute modified versions of this + document under the conditions for verbatim copying, provided that the + entire resulting derived work is distributed under the terms of a + permission notice identical to this one.} + +\pageno=\contentspagenumber \advance\pageno by 1 +\let\maybe=\iftrue +\fullpageheight=240mm +\pageheight=223mm +\pagewidth=158mm +\setpage +\frenchspacing + +\noinx +\nosecs +\nocon + +@* Function and Use. +This small program will convert SJIS encoding with CNS encoded Chinese +characters using the {\it Chinese Encoding Framework (CEF)} into a +`preprocessed' form. The need of this program arises from the fact that +SJIS encoding uses the characters `\.{\\}', `\.{\{}', and `\.{\}}' which +have special meanings in \TeX. + +Use this program as a filter: + +\hskip 2em \.{cefsconv < input\_file > output\_file} + + +@* The program. +In contrast to \.{cefconv} two tasks will be executed: + +Replacing all occurrences of two byte SJIS encoded characters \.{XY} with +\.{\char94 \char94 7fX\char94 \char94 7fZZZ\char94 \char94 7f} (\.{X} and +\.{Y} are the first and the second byte of the character; \.{ZZZ} represents +the second byte as a decimal number). + +Replacing CEF macros of the form \.{\&xx-yyzz;} (\.{xx} can be C1--C7 for +the CNS planes 1--7, C0 for Big~5 encoding, an encoding CX reserved for +IRIZ, a private encoding CY, and U for Unicode encoding; \.{yyzz} is a +hexadecimal representation of the code point in this plane) with +\medskip +\quad\.{\char94 \char94 7f72\char94 \char94 7fXX\char94 \char94 7f% +\char94 \char94 7f"0yy\char94 \char94 7f"0zz\char94 \char94 7f}\quad. +\medskip +\.{XX} is the corresponding CJK encoding of \.{xx}; the number `72' +specifies a macro in the file \.{MULEenc.sty} which further processes this +representation -- it is necessary to explicitly load this file with +\.{\\usepackage}. + +Additionally we define a \TeX\ macro at the very beginning to signal a +preprocessed file. + +The following code is very simple. No error detection is done because \TeX\ +which will see the output of \.{cefsconv} complains loudly if something is +wrong. + +Note that the user-defined character area of SJIS (with the first bytes in +the range 0xF0--0xFC) is not supported because it is not portable. + +@d banner +"cefsconv (CJK ver. 4.8.5)" + +@c +#include <ctype.h> +#include <stdio.h> +#include <stdlib.h>@# + + +int main(int argc, char *argv[]) + {int ch, i; + unsigned char in[16]; + unsigned char out[32]; + unsigned char *inp, *outp; + + fprintf(stdout, "\\def\\CNSpreproc{%s}", banner);@# + + ch = fgetc(stdin);@# + + while(!feof(stdin)) + {if((ch >= 0x81 && ch <= 0x9F) || (ch >= 0xE0 && ch <= 0xEF)) + {fprintf(stdout, "\177%c\177", ch);@# + + ch = fgetc(stdin); + if(!feof(stdin)) + fprintf(stdout, "%d\177", ch); + } + else if(ch == '&') + /* the macro test is hardcoded to make things simple */ + {inp = in; + outp = out; + *inp = ch; + *(++inp) = fgetc(stdin);@# + + if(*inp == 'C' && !feof(stdin)) + {*(++inp) = fgetc(stdin); + if(*inp == '0' && !feof(stdin)) + {*(outp++) = 'B'; + *(outp++) = 'g'; + *(outp++) = '5'; + } + else if(*inp >= '1' && *inp <= '7' && !feof(stdin)) + {*(outp++) = 'C'; + *(outp++) = 'N'; + *(outp++) = 'S'; + *(outp++) = *inp; + } + else if((*inp == 'X' || *inp == 'Y') && !feof(stdin)) + {*(outp++) = 'C'; + *(outp++) = 'E'; + *(outp++) = 'F'; + *(outp++) = *inp; + } + else + goto no_macro; + } + else if(*inp == 'U' && !feof(stdin)) + {*(outp++) = 'U'; + *(outp++) = 'T'; + *(outp++) = 'F'; + *(outp++) = '8'; + } + else + goto no_macro;@# + + *(++inp) = fgetc(stdin); + if(*inp != '-' || feof(stdin)) + goto no_macro;@# + + *(outp++) = '\177'; + *(outp++) = '\177'; + *(outp++) = '\"'; + *(outp++) = '0';@# + + *(++inp) = fgetc(stdin); + if(isxdigit(*inp) && *inp < 0x80 && !feof(stdin)) + *(outp++) = toupper(*inp); + else + goto no_macro;@# + + *(++inp) = fgetc(stdin); + if(isxdigit(*inp) && *inp < 0x80 && !feof(stdin)) + *(outp++) = toupper(*inp); + else + goto no_macro;@# + + *(outp++) = '\177'; + *(outp++) = '\"'; + *(outp++) = '0';@# + + *(++inp) = fgetc(stdin); + if(isxdigit(*inp) && *inp < 0x80 && !feof(stdin)) + *(outp++) = toupper(*inp); + else + goto no_macro;@# + + *(++inp) = fgetc(stdin); + if(isxdigit(*inp) && *inp < 0x80 && !feof(stdin)) + *(outp++) = toupper(*inp); + else + goto no_macro;@# + + *(outp++) = '\177'; + *outp = '\0';@# + + *(++inp) = fgetc(stdin); + if(*inp != ';' || feof(stdin)) + goto no_macro;@# + + outp = out; + fprintf(stdout, "\17772\177"); + while(*outp) + fputc(*(outp++), stdout);@# + + ch = fgetc(stdin); + continue;@# + +no_macro: + ch = *inp; + i = inp - in; + inp = in; + while(i--) + fputc(*(inp++), stdout); + continue; + } + else + fputc(ch, stdout);@# + + ch = fgetc(stdin); + } + exit(EXIT_SUCCESS); + return 0; /* never reached */ + } diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefslatex b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefslatex new file mode 100755 index 0000000000..fd78a24468 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefslatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] latex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +cefsconv < "$tex" > "$aux" && eval latex "$argv" "\$aux" + +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefsltx.bat b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefsltx.bat new file mode 100644 index 0000000000..662ef9e3af --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefsltx.bat @@ -0,0 +1,3 @@ +call f_name %1
+cefsconv < %1 > %fd%%fp%%fn%.cjk
+latex %fd%%fu%%fn%.cjk
diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefsltx.cmd b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefsltx.cmd new file mode 100644 index 0000000000..dc7663d274 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefsltx.cmd @@ -0,0 +1,46 @@ +/*----------------------------------------------------------------------*\
+ cefsltx.cmd
+
+ This file is part of the CJK macro package for LaTeX2e ver. 4.8.5
+
+ This file is part of the CJK macro package for LaTeX2e ver. 4.8.5
+
+ Copyright (C) 1994-2021 Wonkoo Kim <wkim+@pitt.edu>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program in doc/COPYING; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ MA 02110-1301 USA
+
+ Wonkoo Kim (wkim+@pitt.edu), September 2, 1996
+\*----------------------------------------------------------------------*/
+
+Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
+Call SysLoadFuncs
+
+parse arg file
+
+drive = filespec('drive', file)
+path = filespec('path', file)
+fname = filespec('name', file)
+m = lastpos('.', fname)
+if (m = 0) then m = length(fname) + 1
+cjkfile = drive||path||delstr(fname, m)||'.cjk'
+
+'cefsconv <' file '>' cjkfile
+
+ucjkfile = translate(cjkfile,'/','\')
+if stream(cjkfile, 'C', 'QUERY EXISTS') \= '' then
+ 'call latex.cmd' ucjkfile
+
+/* End of cefsltx.cmd */
diff --git a/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefspdflatex b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefspdflatex new file mode 100755 index 0000000000..ee78cd3bd5 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/CEFconv/cefspdflatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] latex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +cefsconv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux" + +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjisconv.1 b/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjisconv.1 new file mode 100644 index 0000000000..2ad865721c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjisconv.1 @@ -0,0 +1,110 @@ +.\" man page for sjisconv +.\" Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +.\" +.\" This program is free software; you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation; either version 2 of the License, or +.\" (at your option) any later version. +.\" +.\" This program is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License +.\" along with this program in doc/COPYING; if not, write to the Free +.\" Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +.\" MA 02110-1301 USA +. +.TH SJISCONV 1 16-Oct-2021 "CJK Version 4.8.5" +. +.\" ==== +.\" ==== macro definitions +.\" ==== +. +.\" here we define \TeX for troff and nroff +.if t .ds TX \fRT\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X\fP +.if n .ds TX TeX +. +.\" and here the same for \LaTeX +.if t \{\ +.ie '\*(.T'dvi' \ +.ds LX \fRL\h'-0.36m'\v'-0.15v'\s-3A\s0\h'-0.15m'\v'0.15v'\fP\*(TX +.el .ds LX \fRL\h'-0.36m'\v'-0.22v'\s-2A\s0\h'-0.15m'\v'0.22v'\fP\*(TX +.\} +.if n .ds LX LaTeX +. +.\" \LaTeXe +.\" note that we need \vareps for TeX instead of \eps which can only be +.\" accessed with the \N escape sequence (in the Math Italic font) +.if t \{\ +.ie '\*(.T'dvi' .ds LE \*(LX\h'0.15m'2\v'0.20v'\f(MI\N'34'\fP\v'-0.20v' +.el .ds LE \*(LX\h'0.15m'2\v'0.20v'\(*e\v'-0.20v' +.\} +.if n .ds LE LaTeX\ 2e +. +.\" a typewriter font +.if t \{\ +.de C +\fC\\$1\fP\\$2 +.. +.\} +.if n \{\ +.de C +\\$1\\$2 +.. +.\} +. +.\" ==== +.\" ==== end of macro definitions +.\" ==== +. +. +. +.SH NAME +sjisconv \- convert a TeX document in SJIS encoding into `preprocessed' +form. +. +. +.SH SYNOPSIS +.B sjisconv +< +.I infile +> +.I outfile +. +. +.SH DESCRIPTION +SJIS encoding for Japanese uses the characters +.C { , +.C } , +and +.C \e +which have special meanings in \*(TX +documents. +.PP +After processing a \*(LE +document which contains SJIS characters with +.B \%sjisconv +you need not care about these special characters. +.PP +This filter is part of the +.B CJK +macro package for \*(LE. +. +. +.SH "SEE ALSO" +.BR bg5conv (1), +.BR \%cefconv (1), +.BR cef5conv (1), +.BR \%cefsconv (1), +.BR \%extconv (1), +.br +the +.B CJK +documentation files. +. +. +.SH AUTHOR +Werner Lemberg +.C <wl@gnu.org> diff --git a/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjisconv.c b/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjisconv.c new file mode 100644 index 0000000000..0b42ecfdcb --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjisconv.c @@ -0,0 +1,33 @@ +#define banner \ +"sjisconv (CJK ver. 4.8.5)" \ + +/*2:*/ +#line 96 "/home/wl/git/cjk/cjk-4.8.5/utils/SJISconv/sjisconv.w" + +#include <stdio.h> +#include <stdlib.h> + + +int main(int argc,char*argv[]) +{int ch; + +fprintf(stdout,"\\def\\CJKpreproc{%s}",banner); + +ch= fgetc(stdin); + +while(!feof(stdin)) +{if((ch>=0x81&&ch<=0x9F)||(ch>=0xE0&&ch<=0xEF)) +{fprintf(stdout,"\177%c\177",ch); + +ch= fgetc(stdin); +if(!feof(stdin)) +fprintf(stdout,"%d\177",ch); +} +else +fputc(ch,stdout); + +ch= fgetc(stdin); +} +exit(EXIT_SUCCESS); +return 0; +}/*:2*/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjisconv.w b/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjisconv.w new file mode 100644 index 0000000000..c3e72454e4 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjisconv.w @@ -0,0 +1,123 @@ +% This is the cweb file sjisconv.w of the CJK Package Ver. 4.8.5 16-Oct-2021 + +% Copyright (C) 1994-2021 Werner Lemberg <wl@@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +% To print this CWEB file you should (but not must) use the CWEAVE of the +% c2cweb-package (found at the CTAN archives, e.g. ftp.dante.de) and then say +% +% cweave +a sjisconv.w +% +% This (fully compatible) CWEAVE can transform CWEB-files with alternative +% output rules (look at the position of braces below!) the author (it's me +% too :-) prefer. Otherwise this file will be formatted traditionally. + +\def\title{sjisconv (CJK Version 4.8.5)} + +\def\topofcontents{ + \null\vfill + \centerline{\titlefont The {\ttitlefont sjisconv} program} + \vskip 20pt + \centerline{(CJK Version 4.8.5)} + \vfill} + +\def\botofcontents{ + \vfill + \noindent + Copyright \copyright\ 1996, 1998 by Werner Lemberg + \bigskip\noindent + Permission is granted to make and distribute verbatim copies of this + document provided that the copyright notice and this permission notice + are preserved on all copies. + + \smallskip\noindent + Permission is granted to copy and distribute modified versions of this + document under the conditions for verbatim copying, provided that the + entire resulting derived work is distributed under the terms of a + permission notice identical to this one.} + +\pageno=\contentspagenumber \advance\pageno by 1 +\let\maybe=\iftrue +\fullpageheight=240mm +\pageheight=223mm +\pagewidth=158mm +\setpage +\frenchspacing + +\noinx +\nosecs +\nocon + +@* Function and Use. +This small program will convert SJIS encoded Japanese characters into a +`preprocessed' form. The need of this program arises from the fact that this +encoding uses the characters `\.{\\}', `\.{\{}', and `\.{\}}' which have +special meanings in \TeX. + +Use this program as a filter: + +\hskip 2em \.{sjisconv < input\_file > output\_file} + + +@* The program. +The only function of this program is to replace all occurrences of SJIS +encoded two byte characters \.{XY} with +\.{\char94 \char94 7fX\char94 \char94 7fZZZ\char94 \char94 7f} (\.{X} +and \.{Y} are the first and the second byte of the character; \.{ZZZ} +represents the second byte as a decimal number). + +Additionally we define a \TeX\ macro at the very beginning to signal a +preprocessed file. + +The following code is very simple. No error detection is done because \TeX\ +which will see the output of \.{sjisconv} complains loudly if something is +wrong. + +Note that the user-defined character area of SJIS (with the first bytes in +the range 0xF0--0xFC) is not supported because it is not portable. + +@d banner +"sjisconv (CJK ver. 4.8.5)" + +@c +#include <stdio.h> +#include <stdlib.h>@# + + +int main(int argc, char *argv[]) + {int ch; + + fprintf(stdout, "\\def\\CJKpreproc{%s}", banner);@# + + ch = fgetc(stdin);@# + + while(!feof(stdin)) + {if((ch >= 0x81 && ch <= 0x9F) || (ch >= 0xE0 && ch <= 0xEF)) + {fprintf(stdout, "\177%c\177", ch);@# + + ch = fgetc(stdin); + if(!feof(stdin)) + fprintf(stdout, "%d\177", ch); + } + else + fputc(ch, stdout);@# + + ch = fgetc(stdin); + } + exit(EXIT_SUCCESS); + return 0; /* never reached */ + } diff --git a/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjislatex b/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjislatex new file mode 100755 index 0000000000..9cc170468b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjislatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] latex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +sjisconv < "$tex" > "$aux" && eval latex "$argv" "\$aux" + +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjisltx.bat b/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjisltx.bat new file mode 100644 index 0000000000..5702c113bd --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjisltx.bat @@ -0,0 +1,3 @@ +call f_name %1
+sjisconv < %1 > %fd%%fp%%fn%.cjk
+latex %fd%%fu%%fn%.cjk
diff --git a/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjisltx.cmd b/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjisltx.cmd new file mode 100644 index 0000000000..12c8a394c8 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjisltx.cmd @@ -0,0 +1,44 @@ +/*----------------------------------------------------------------------*\
+ sjisltx.cmd
+
+ This file is part of the CJK macro package for LaTeX2e ver. 4.8.5
+
+ Copyright (C) 1994-2021 Wonkoo Kim <wkim+@pitt.edu>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program in doc/COPYING; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ MA 02110-1301 USA
+
+ Wonkoo Kim (wkim+@pitt.edu), September 2, 1996
+\*----------------------------------------------------------------------*/
+
+Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
+Call SysLoadFuncs
+
+parse arg file
+
+drive = filespec('drive', file)
+path = filespec('path', file)
+fname = filespec('name', file)
+m = lastpos('.', fname)
+if (m = 0) then m = length(fname) + 1
+cjkfile = drive||path||delstr(fname, m)||'.cjk'
+
+'sjisconv <' file '>' cjkfile
+
+ucjkfile = translate(cjkfile,'/','\')
+if stream(cjkfile, 'C', 'QUERY EXISTS') \= '' then
+ 'call latex.cmd' ucjkfile
+
+/* End of sjisltx.cmd */
diff --git a/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjispdflatex b/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjispdflatex new file mode 100755 index 0000000000..4a5d4817ee --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/SJISconv/sjispdflatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] latex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +sjisconv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux" + +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/cjklatex/cjklatex.c b/language/chinese/CJK/cjk-4.8.5/utils/cjklatex/cjklatex.c new file mode 100644 index 0000000000..ebea1fc3c5 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/cjklatex/cjklatex.c @@ -0,0 +1,293 @@ +/* + Purpose: call LATEX after preprocessing of the .tex file by + the cjk conversion tool. The old f_name.bat script + is not working anymore. + Author : F. Popineau <Fabrice.Popineau@supelec.fr> + Date : <29/06/2001> +*/ + +#ifndef LATEX +#define LATEX "latex" +#endif + +/* + Copyright (C) 2001-2021 F. Popineau <Fabrice.Popineau@supelec.fr> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program in doc/COPYING; if not, write to the Free + Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA +*/ + +#include <stdio.h> +#include <stdlib.h> + +#include <kpathsea/config.h> +#include <kpathsea/lib.h> +#include <kpathsea/getopt.h> + +static const char *cjklatex_version_string = "1.0"; + +static const char *usage_str[] = { + "Usage: %s OPTIONS FILE\n", + "Calls `" LATEX "' on FILE after conversion by the filter\n", + "specified by OPTIONS.\n", + "--conv=bg5\tfor traditional Chinese, encoding Big 5,\n", + "--conv=cef\tfor Chinese Encoding Framework, encoding CEF,\n", + "--conv=cef5\tidem CEF, also converts Big5 characters,\n", + "--conv=cefs\tidem CEF, also converts SJIS characters,\n", + "--conv=gbk\tfor Chinese, encoding GBK,\n", + "--conv=sjis\tfor Japanese, SJIS encoding.", + "\nAlternatively, for compatibility with the previous DOS batch files,\n", + "you can also copy this program to any of the following names:\n", + "bg5" LATEX ".exe, cef5" LATEX ".exe, cef" LATEX ".exe, cefs" LATEX ".exe,\n", + "gbk" LATEX ".exe and sjis" LATEX ".exe .\n", + "Then running one of these programs will be identical to specify\n", + "the corresponding option.\n", + "\nAdditional options:\n", + "--verbose\tbe a bit more verbose about what is happening,\n", + "--nocleanup\tdo not remove intermediate files,\n", + "--latex=engine\tuse `engine' instead of `" LATEX "' to process the file.\n", + NULL +}; + +static char *progname = NULL; + +static struct _conv_table { + const char *progname; + const char *processor; +} CJKtable[] = { + { "cjk" LATEX, "" }, + { "bg5" LATEX, "bg5conv" }, + { "cef" LATEX, "cefconv" }, + { "cef5" LATEX, "cef5conv" }, + { "cefs" LATEX, "cefsconv" }, + { "gbk" LATEX, "extconv" }, + { "sjis" LATEX, "sjisconv" } +}; + +#define PROGRAM_IS(p) FILESTRCASEEQ (p, progname) +#define ARGUMENT_IS(a) STREQ (long_options[option_index].name, a) + +static int program_number = -1; +static int opt_verbose = 0; +static int opt_nocleanup = 0; +static char *texname, *cjkname, *texengine; + +static struct option long_options [] = { + { "debug", 1, 0, 0}, + { "help", 0, 0, 0}, + { "version", 0, 0, 0}, + { "verbose", 0, 0, 0}, + { "nocleanup", 0, 0, 0}, + { "latex", 1, 0, 0}, + { "conv", 1, 0, 0}, + {0, 0, 0, 0} +}; + +static BOOL sigint_handler(DWORD dwCtrlType) +{ + /* Fix me : there is a problem if a system() command is running. + We should wait for the son process to be interrupted. + Only way I can think of to do that : rewrite system() based on + spawn() with parsing of the command line and set a global pid + Next cwait(pid) in the HandlerRoutine. + */ + + /* This is not that good, but else we would need to wait for + the child processes to finish ! */ + Sleep(250); + + fprintf(stderr, "Sending Ctrl+Break!\n"); + GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT, 0); + + if (! opt_nocleanup) + unlink(cjkname); + + exit(1); + + return FALSE; /* return value obligatory */ +} + +static void usage(void) +{ + int i; + fprintf(stderr, "CJK" LATEX " version %s\n", cjklatex_version_string); + fprintf(stderr,usage_str[0], progname ); + fputs("\n", stderr); + for(i = 1; usage_str[i]; ++i) + fputs(usage_str[i], stderr); +} + +static int do_process(const char *processor, const char *filename) +{ + char *ext, *p; + char cmd[_MAX_PATH*3]; + DWORD dwFA; + int ret; + + if (strlen(filename) > 4 && _strnicmp(filename + strlen(filename) - 4, ".tex", 4) == 0) { + texname = xstrdup(filename); + } + else { + texname = concat(filename, ".tex"); + } + for (p = texname; p && *p; p++) + *p = (*p == '\\' ? '/' : *p); + + dwFA = GetFileAttributes(texname); + if (dwFA == 0xFFFFFFFF || (dwFA & FILE_ATTRIBUTE_DIRECTORY)) { + fprintf(stderr, "%s: %s is an invalid input file.\n", + progname, texname); + ret = 1; + } + else { + cjkname = xstrdup(texname); + ext = strrchr(cjkname, '.'); + assert(ext != NULL); + strcpy(cjkname + (ext - cjkname), ".cjk"); + + sprintf(cmd, "%s < %s > %s", processor, texname, cjkname); + if (opt_verbose) + fprintf(stderr, "%s: running command `%s'.\n", progname, cmd); + ret = system(cmd); + if (ret == 0) { + sprintf(cmd, "%s %s", texengine, cjkname); + if (opt_verbose) + fprintf(stderr, "%s: running command `%s'.\n", progname, cmd); + ret = system(cmd); + if (! opt_nocleanup) + unlink(cjkname); + } + } + + free(texname); + free(cjkname); + + return ret; +} + +int main(int argc, char *argv[]) +{ + int g; /* getopt return code */ + int i; + int option_index; + char *filename; + + if (!progname) + progname = argv[0]; + + kpse_set_program_name (progname, NULL); + progname = kpse_program_name; + + for (i = 0; i < sizeof(CJKtable)/sizeof(CJKtable[0]) && program_number < 0; i++) { + if (STREQ(progname, CJKtable[i].progname) +#if 0 + || (STREQ(progname, CJKtable[i].progname) + && STREQ(progname+strlen(CJKtable[i].progname), ".exe")) +#endif + ) { + program_number = i; + } + } + + if (program_number == -1) { + fprintf(stderr, "%s: this program has been incorrecty copied to the name %s.\n", progname, progname); + usage(); + exit(1); + } + + for(;;) { + g = getopt_long_only (argc, argv, "", long_options, &option_index); + + if (g == EOF) + break; + + if (g == '?') { + usage(); /* Unknown option. */ + exit(1); + } + + /* assert (g == 0); */ /* We have no short option names. */ + /* + FIXME : try 'mktexpk --mfmode --bdpi 600 ...' + */ + if (ARGUMENT_IS ("debug")) { + kpathsea_debug |= atoi (optarg); + } + else if (ARGUMENT_IS ("help")) { + usage(); + exit(0); + } + else if (ARGUMENT_IS ("verbose")) { + opt_verbose = 1; + } + else if (ARGUMENT_IS ("nocleanup")) { + opt_nocleanup = 1; + } + else if (ARGUMENT_IS ("latex")) { + texengine = xstrdup(optarg); + } + else if (ARGUMENT_IS ("version")) { + fprintf(stderr, "%s of %s.\n", progname, cjklatex_version_string); + exit(0); + } + else if (PROGRAM_IS("cjk" LATEX)) { + if (ARGUMENT_IS("conv")) { + for (i = 1; i < sizeof(CJKtable)/sizeof(CJKtable[0]) && program_number <= 0; i++) { + if (STRNEQ(optarg, CJKtable[i].progname, strlen(optarg))) { + program_number = i; + } + } + } + } + } + + /* shifting options from argv[] list */ + for (i = 1; optind < argc; i++, optind++) + argv[i] = argv[optind]; + argv[i] = NULL; + + argc = i; + + if (argc < 2) { + fprintf (stderr, "%s: Missing argument(s).\nTry `%s --help' for more information.\n", progname, kpse_program_name); + exit(1); + } + + if (argc > 2) { + fprintf(stderr, "%s: Extra arguments", progname); + for (i = 2; i < argc; i++) + fprintf (stderr, " \"%s\"", argv[i]); + fprintf (stderr, "\nTry `%s --help' for more information.\n", + kpse_program_name); + exit(1); + } + + SetConsoleCtrlHandler((PHANDLER_ROUTINE)sigint_handler, TRUE); + + filename = xstrdup(argv[1]); + + assert(program_number > 0); + + if (! texengine) { + texengine = xstrdup(LATEX); + } + + do_process(CJKtable[program_number].processor, filename); + + free(filename); + free(texengine); + + return 0; +} diff --git a/language/chinese/CJK/cjk-4.8.5/utils/extconv/bg5+latex b/language/chinese/CJK/cjk-4.8.5/utils/extconv/bg5+latex new file mode 100755 index 0000000000..257d8c43ad --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/extconv/bg5+latex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] latex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +extconv < "$tex" > "$aux" && eval latex "$argv" "\$aux" + +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/extconv/bg5+pdflatex b/language/chinese/CJK/cjk-4.8.5/utils/extconv/bg5+pdflatex new file mode 100755 index 0000000000..c3ab62a343 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/extconv/bg5+pdflatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] pdflatex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +extconv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux" + +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/extconv/bg5pltx.bat b/language/chinese/CJK/cjk-4.8.5/utils/extconv/bg5pltx.bat new file mode 100644 index 0000000000..ccc6c76acd --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/extconv/bg5pltx.bat @@ -0,0 +1,3 @@ +call f_name %1
+extconv < %1 > %fd%%fp%%fn%.cjk
+latex %fd%%fu%%fn%.cjk
diff --git a/language/chinese/CJK/cjk-4.8.5/utils/extconv/bg5pltx.cmd b/language/chinese/CJK/cjk-4.8.5/utils/extconv/bg5pltx.cmd new file mode 100644 index 0000000000..ee93548a0d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/extconv/bg5pltx.cmd @@ -0,0 +1,44 @@ +/*----------------------------------------------------------------------*\
+ bg5pltx.cmd
+
+ This file is part of the CJK macro package for LaTeX2e ver. 4.8.5
+
+ Copyright (C) 1994-2021 Wonkoo Kim <wkim+@pitt.edu>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program in doc/COPYING; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ MA 02110-1301 USA
+
+ Wonkoo Kim (wkim+@pitt.edu), September 2, 1996
+\*----------------------------------------------------------------------*/
+
+Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
+Call SysLoadFuncs
+
+parse arg file
+
+drive = filespec('drive', file)
+path = filespec('path', file)
+fname = filespec('name', file)
+m = lastpos('.', fname)
+if (m = 0) then m = length(fname) + 1
+cjkfile = drive||path||delstr(fname, m)||'.cjk'
+
+'extconv <' file '>' cjkfile
+
+ucjkfile = translate(cjkfile,'/','\')
+if stream(cjkfile, 'C', 'QUERY EXISTS') \= '' then
+ 'call latex.cmd' ucjkfile
+
+/* End of bg5pltx.cmd */
diff --git a/language/chinese/CJK/cjk-4.8.5/utils/extconv/extconv.1 b/language/chinese/CJK/cjk-4.8.5/utils/extconv/extconv.1 new file mode 100644 index 0000000000..9d275b7345 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/extconv/extconv.1 @@ -0,0 +1,111 @@ +.\" man page for bg5conv +.\" +.\" Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +.\" +.\" This program is free software; you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation; either version 2 of the License, or +.\" (at your option) any later version. +.\" +.\" This program is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License +.\" along with this program in doc/COPYING; if not, write to the Free +.\" Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +.\" MA 02110-1301 USA +. +.TH EXTCONV 1 16-Oct-2021 "CJK Version 4.8.5" +. +.\" ==== +.\" ==== macro definitions +.\" ==== +. +.\" here we define \TeX for troff and nroff +.if t .ds TX \fRT\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X\fP +.if n .ds TX TeX +. +.\" and here the same for \LaTeX +.if t \{\ +.ie '\*(.T'dvi' \ +.ds LX \fRL\h'-0.36m'\v'-0.15v'\s-3A\s0\h'-0.15m'\v'0.15v'\fP\*(TX +.el .ds LX \fRL\h'-0.36m'\v'-0.22v'\s-2A\s0\h'-0.15m'\v'0.22v'\fP\*(TX +.\} +.if n .ds LX LaTeX +. +.\" \LaTeXe +.\" note that we need \vareps for TeX instead of \eps which can only be +.\" accessed with the \N escape sequence (in the Math Italic font) +.if t \{\ +.ie '\*(.T'dvi' .ds LE \*(LX\h'0.15m'2\v'0.20v'\f(MI\N'34'\fP\v'-0.20v' +.el .ds LE \*(LX\h'0.15m'2\v'0.20v'\(*e\v'-0.20v' +.\} +.if n .ds LE LaTeX\ 2e +. +.\" a typewriter font +.if t \{\ +.de C +\fC\\$1\fP\\$2 +.. +.\} +.if n \{\ +.de C +\\$1\\$2 +.. +.\} +. +.\" ==== +.\" ==== end of macro definitions +.\" ==== +. +. +. +.SH NAME +extconv \- convert a TeX document in either Big\ 5+ or GBK encoding into +`preprocessed' form. +. +. +.SH SYNOPSIS +.B extconv +< +.I infile +> +.I outfile +. +. +.SH DESCRIPTION +Big\ 5+ and GBK encodings use the characters +.C { , +.C } , +and +.C \e +which have special meanings in \*(TX +documents. +.PP +After processing a \*(LE +document which contains such characters with +.B \%extconv +you need not care about these special characters. +.PP +This filter is part of the +.B CJK +macro package for \*(LE. +. +. +.SH "SEE ALSO" +.BR bg5conv (1), +.BR \%sjisconv (1), +.BR \%cefconv (1), +.BR cef5conv (1), +.BR \%cefsconv (1), +.br +the +.B CJK +documentation files. +. +. +.SH AUTHOR +Werner Lemberg +.C <wl@gnu.org> diff --git a/language/chinese/CJK/cjk-4.8.5/utils/extconv/extconv.c b/language/chinese/CJK/cjk-4.8.5/utils/extconv/extconv.c new file mode 100644 index 0000000000..fdfa9dc924 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/extconv/extconv.c @@ -0,0 +1,34 @@ +#define banner \ +"extconv (CJK ver. 4.8.5)" \ + +/*2:*/ +#line 94 "/home/wl/git/cjk/cjk-4.8.5/utils/extconv/extconv.w" + +#include <stdio.h> +#include <stdlib.h> + + +int main(int argc,char*argv[]) +{int ch; + + +fprintf(stdout,"\\def\\CJKpreproc{%s}",banner); + +ch= fgetc(stdin); + +while(!feof(stdin)) +{if(ch>=0x81&&ch<=0xFE) +{fprintf(stdout,"\177%c\177",ch); + +ch= fgetc(stdin); +if(!feof(stdin)) +fprintf(stdout,"%d\177",ch); +} +else +fputc(ch,stdout); + +ch= fgetc(stdin); +} +exit(EXIT_SUCCESS); +return 0; +}/*:2*/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/extconv/extconv.w b/language/chinese/CJK/cjk-4.8.5/utils/extconv/extconv.w new file mode 100644 index 0000000000..fe1b1ff006 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/extconv/extconv.w @@ -0,0 +1,122 @@ +% This is the cweb file extconv.w of the CJK Package Ver. 4.8.5 16-Oct-2021 + +% Copyright (C) 1994-2021 Werner Lemberg <wl@@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +% To print this CWEB file you should (but not must) use the CWEAVE of the +% c2cweb-package (found at the CTAN archives, e.g. ftp.dante.de) and then say +% +% cweave +a extconv.w +% +% This (fully compatible) CWEAVE can transform CWEB-files with alternative +% output rules (look at the position of braces below!) the author (it's me +% too :-) prefer. Otherwise this file will be formatted traditionally. + +\def\title{extconv (CJK Version 4.8.5)} + +\def\topofcontents{ + \null\vfill + \centerline{\titlefont The {\ttitlefont extconv} program} + \vskip 20pt + \centerline{(CJK Version 4.8.5)} + \vfill} + +\def\botofcontents{ + \vfill + \noindent + Copyright \copyright\ 1996, 1998 by Werner Lemberg + \bigskip\noindent + Permission is granted to make and distribute verbatim copies of this + document provided that the copyright notice and this permission notice + are preserved on all copies. + + \smallskip\noindent + Permission is granted to copy and distribute modified versions of this + document under the conditions for verbatim copying, provided that the + entire resulting derived work is distributed under the terms of a + permission notice identical to this one.} + +\pageno=\contentspagenumber \advance\pageno by 1 +\let\maybe=\iftrue +\fullpageheight=240mm +\pageheight=223mm +\pagewidth=158mm +\setpage +\frenchspacing + +\noinx +\nosecs +\nocon + +@* Function and Use. +This small program will convert Big~5+ or GBK encoded Chinese characters +into a `preprocessed' form. The need of this program arises from the fact +that these two encodings use the characters `\.{\\}', `\.{\{}', and `\.{\}}' +which have special meanings in \TeX. + +Use this program as a filter: + +\hskip 2em \.{extconv < input\_file > output\_file} + + +@* The program. +The only function of this program is to replace all occurrences of Big~5+ +and GBK encoded characters \.{XY} (\.{X} and \.{Y} are the first and the +second byte of the character) with +\.{\char94 \char94 7fX\char94 \char94 7fZZZ\char94 \char94 7f}, where \.{ZZZ} +represents the second byte as a decimal number. \.{0x7F} is used as an active +character and delimiter. + +Additionally we define a \TeX\ macro at the very beginning to signal a +preprocessed file. + +The following code is very simple. No error detection is done because \TeX\ +which will see the output of \.{extconv} complains loudly if something is +wrong. + +@d banner +"extconv (CJK ver. 4.8.5)" + +@c +#include <stdio.h> +#include <stdlib.h>@# + + +int main(int argc, char *argv[]) + {int ch; + + + fprintf(stdout, "\\def\\CJKpreproc{%s}", banner);@# + + ch = fgetc(stdin);@# + + while(!feof(stdin)) + {if(ch >= 0x81 && ch <= 0xFE) + {fprintf(stdout, "\177%c\177", ch);@# + + ch = fgetc(stdin); + if(!feof(stdin)) + fprintf(stdout, "%d\177", ch); + } + else + fputc(ch, stdout);@# + + ch = fgetc(stdin); + } + exit(EXIT_SUCCESS); + return 0; /* never reached */ + } diff --git a/language/chinese/CJK/cjk-4.8.5/utils/extconv/gbklatex b/language/chinese/CJK/cjk-4.8.5/utils/extconv/gbklatex new file mode 100755 index 0000000000..257d8c43ad --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/extconv/gbklatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] latex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +extconv < "$tex" > "$aux" && eval latex "$argv" "\$aux" + +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/extconv/gbklatex.bat b/language/chinese/CJK/cjk-4.8.5/utils/extconv/gbklatex.bat new file mode 100644 index 0000000000..ccc6c76acd --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/extconv/gbklatex.bat @@ -0,0 +1,3 @@ +call f_name %1
+extconv < %1 > %fd%%fp%%fn%.cjk
+latex %fd%%fu%%fn%.cjk
diff --git a/language/chinese/CJK/cjk-4.8.5/utils/extconv/gbklatex.cmd b/language/chinese/CJK/cjk-4.8.5/utils/extconv/gbklatex.cmd new file mode 100644 index 0000000000..c53de7b5e1 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/extconv/gbklatex.cmd @@ -0,0 +1,44 @@ +/*----------------------------------------------------------------------*\
+ gbklatex.cmd
+
+ This file is part of the CJK macro package for LaTeX2e ver. 4.8.5
+
+ Copyright (C) 1994-2021 Wonkoo Kim <wkim+@pitt.edu>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program in doc/COPYING; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ MA 02110-1301 USA
+
+ Wonkoo Kim (wkim+@pitt.edu), September 2, 1996
+\*----------------------------------------------------------------------*/
+
+Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
+Call SysLoadFuncs
+
+parse arg file
+
+drive = filespec('drive', file)
+path = filespec('path', file)
+fname = filespec('name', file)
+m = lastpos('.', fname)
+if (m = 0) then m = length(fname) + 1
+cjkfile = drive||path||delstr(fname, m)||'.cjk'
+
+'extconv <' file '>' cjkfile
+
+ucjkfile = translate(cjkfile,'/','\')
+if stream(cjkfile, 'C', 'QUERY EXISTS') \= '' then
+ 'call latex.cmd' ucjkfile
+
+/* End of gbklatex.cmd */
diff --git a/language/chinese/CJK/cjk-4.8.5/utils/extconv/gbkpdflatex b/language/chinese/CJK/cjk-4.8.5/utils/extconv/gbkpdflatex new file mode 100755 index 0000000000..c3ab62a343 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/extconv/gbkpdflatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] pdflatex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +extconv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux" + +# EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/f_name.bat b/language/chinese/CJK/cjk-4.8.5/utils/f_name.bat new file mode 100644 index 0000000000..70e6e69ce9 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/f_name.bat @@ -0,0 +1,205 @@ +@echo off
+:4dosCheck
+ if "%@eval[2+2]"=="4" loadbtm on
+:Start
+ if [%1]==[] goto Usage
+ if [%1]==[/?] goto Help
+ if [%2]==[] goto InputCheck
+REM
+REM This file is called F_NAME.BAT per default. Call it whatever you like.
+REM
+REM You need enough free environment space for this batch file.
+REM If there's not enough free space, f_name.bat will give you a warning.
+REM
+REM While f_name.bat tries to test your free environment space, you'll
+REM probably need to check your config.sys for the following line:
+REM
+REM SHELL=C:\DOS\COMMAND.COM C:\DOS\ /E:1024 /p
+REM
+REM The '/E:1024' sets your environment space - it will probably need to
+REM be 1024 or higher (unless you're really economical with env-space).
+REM
+REM If you are not sure about free space, set fp and fn with long dummy
+REM strings in autoexec.bat to get enough free space, eg.:
+REM
+REM set fp=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+REM set fu=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+REM set fn=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+REM set fd=xx
+REM set fe=xxxx
+REM
+REM Using dummy strings is necessary if you're going to execute
+REM f_name.bat from a second command shell, eg. from Norton Commander.
+REM In this case the total length reserved for f_name.bat should be up
+REM to 192 bytes. My suggestion is, let the strings for fp, fu, and fn count
+REM up to 186 bytes (eg. 62 each).
+REM
+REM Some releases of DOS (eg. some beta-releases/pre-releases of DOS 6.0
+REM and some older DOS releases) does not support the batchcommand 'NOT'.
+REM If you're still using such a release you cannot use this batchfile
+REM since it uses this batchcommand.
+REM
+REM Please also note that f_name.bat cannot work properly if filespec is
+REM longer than around 38 (? I don't know the exact length) characters. If
+REM filespec is long, f_name.bat will fail at 'for %%x in ... do if ...'
+REM lines. The result of error is fairly unpredictable as DOS will try to
+REM execute with a truncated batch command line. So, please use the
+REM batch file for short filespecs (< 38??). (On my DOS 6.22 using
+REM strings above 38 chars gives me an endless loop, Claus Futtrup).
+REM
+REM For large batchfiles it is usually an advantage to use a
+REM 'batch-compiler', which will convert the .bat file into a .com or
+REM .exe file. With f_name.bat this could probably speed it up many
+REM times, but it has not been possible to find a batch-compiler, which
+REM will compile this batchfile. The compilers PWR14G.ZIP and
+REM BAT2EX15.ZIP have been tested without success.
+REM
+REM This modified release is more solid when it comes to garbage input, it
+REM is provided with help option, additional documentation and additional
+REM checking for sufficient environment space and now remove the temporary
+REM environment settings (P, Q, R, S, T) at the bottom of the batchfile. The
+REM structure is changed a bit, but the basic still is made by Wonkoo Kim.
+REM
+REM Please do not distribute this file without the above documentation
+REM included in the batch-file. If you change the file please add your
+REM name as a "modifier" as done below + document your changes. We do
+REM not intend to hold a copyright, though. You may use, misuse or abuse
+REM this batchfile as you see fit.
+REM
+REM This file is provided to you on a free basis. The author/modifiers
+REM do not want to be hold responsible to whatever this batchfile is
+REM doing. Use of this batchfile is entirely at your own risk.
+REM
+REM Wonkoo Kim (wkim+@pitt.edu), August 11, 1995
+REM Modified by Claus Futtrup (odie@csek.iprod.auc.dk), August 23. 1995
+REM Modified by Werner Lemberg (wl@gnu.org), Jan. 10. 1996
+REM to run this batch file under 4DOS too (replacing all %%f with %%x
+REM and doubling the speed with the LOADBTM ON command)
+REM Modified by Werner Lemberg (wl@gnu.org), Aug. 31. 1996
+REM to return unix-like paths additionally in the variable %fu%;
+REM the batch file will now parse e.g. \a.b\ correctly as a directory.
+REM
+:Usage
+ echo.
+ echo Usage: %0 filespec
+ echo.
+ echo Returns: fd (drive), fp (path), fu (unix path), fn (name), fe (extension)
+ echo.
+ echo Type %0 /? for additional help
+ echo %0 is made by Wonkoo Kim, modified by C. Futtrup and W. Lemberg.
+ echo.
+ goto END
+:Help
+ cls
+ echo %0 -- extracts the drive, path, name, and ext from file-path-name.
+ echo.
+ echo Return envs: FD (drive), FP (path), FU (unix path), FN (name), FE (ext)
+ echo Temp envs: P, Q, R, S, T
+ echo.
+ echo INPUT FILE fd fp fn fe
+ echo ------------------ --------- --------- --------- ---------
+ echo abc abc
+ echo abc.tex abc .tex
+ echo c:\abc.tex c: \ abc .tex
+ echo c:tmp\abc.tex c: tmp\ abc .tex
+ echo c:\tmp\abc.tex c: \tmp\ abc .tex
+ echo c:tmp\tex\abc.tex c: tmp\tex\ abc .tex
+ echo c:\tmp\tex\abc.tex c: \tmp\tex\ abc .tex
+ echo.
+ echo Please note this file isn't blazing fast + it needs a lot
+ echo of environment space. See comments in %0 for more info.
+ echo.
+ echo Wonkoo Kim (wkim+@pitt.edu), August 11, 1995
+ echo Modified by Claus Futtrup (odie@csek.iprod.auc.dk), August 23. 1995
+ echo Modified by Werner Lemberg (wl@gnu.org), Aug 31. 1996
+ goto END
+:InputCheck
+ for %%x in (%1) do if "%%x"=="%1" goto Okay
+ echo *** ERROR: Please do not use wildcards in input file name.
+ goto END
+:Okay
+ set p=
+ set r=
+ set fp=
+ set fu=
+ set fe=
+ set fn=%1
+ set s=XXXXXXXX%fn%
+ set t=%fn%
+ set s=
+ if [%t%]==[%1] goto GetDrive
+:EnvErr
+ echo *** ERROR: Not enough environment space!
+ echo *** See documentation at top of file '%0'
+ goto END
+:GetDrive
+ for %%x in (/%t%) do set fn=%%x
+ for %%x in (/%t%) do if not [%%x]==[%fn%] set fd=%%x
+ if [%fn%]==[:] goto DriveOnly
+ set t=%fn%
+ for %%x in (/%t%) do set fn=%%x
+ if [:%fn%]==[%t%] goto DriveFound
+ set fd=
+ set fn=%1
+ goto GetPath
+:DriveOnly
+ set fn=
+:DriveFound
+ set fd=%fd%:
+:GetPath
+ set s=%fn%
+:PathLoop
+ set t=%s%
+ for %%x in (/%t%) do set s=%%x
+ set q=
+ for %%x in (/%t%) do if not [%%x]==[%s%] set q=%%x
+ if "\%s%"=="%t%" goto Separator
+ set p=%p%%q%
+ set r=%r%%q%
+ if [%s%]==[%t%] goto PathCheck
+ goto PathLoop
+:Separator
+ set fn=%s%
+ set p=%p%\
+ set r=%r%/
+ set fp=%p%
+ set fu=%r%
+ goto PathLoop
+:PathCheck
+ if [%s%]==[\] goto NoFilename
+ if not [%fn%]==[\] goto GetExt
+ set fp=\
+ set fu=/
+ set fn=
+ goto Done
+:NoFilename
+ set fp=%p%\
+ set fu=%r%/
+ set fn=
+ goto Done
+:GetExt
+ set s=%fn%
+ set fe=%fn%
+ set fn=
+:ExtLoop
+ set t=%fe%
+ for %%x in (/%t%) do set fe=%%x
+ if ".%fe%"=="%t%" goto ExtFound
+ if [%fe%]==[%t%] goto NoExt
+ for %%x in (/%t%) do if not [%%x]==[%fe%] set fn=%fn%%%x
+ goto ExtLoop
+:ExtFound
+ set fe=.%fe%
+ goto Done
+:NoExt
+ if not [%fe%]==[.] set fn=%s%
+ set fe=
+:Done
+ echo DRIVE=%fd% PATH=%fp% UNIX_PATH=%fu% NAME=%fn% EXT=%fe%
+:END
+ set p=
+ set q=
+ set r=
+ set s=
+ set t=
+
diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/Makefile.gnu b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/Makefile.gnu new file mode 100644 index 0000000000..7dd88f3b22 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/Makefile.gnu @@ -0,0 +1,127 @@ +# This file is part of the CJK package Version 4.8.5 (16-Oct-2021) + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +# GNU Makefile for hbf2gf + +.PHONY: default all debug documentation clean \ + do_all + +.CAUTIOUS: hbf2gf.c + +default: + @echo " say " + @echo ". " + @echo " make TARGET OS=SYSTEM " + @echo ". " + @echo " SYSTEM can be one of the following: " + @echo ". " + @echo " os2 bound (emx) " + @echo " dos (djgpp) " + @echo ". " + @echo " TARGET can be one of the following: " + @echo ". " + @echo " all debug " + @echo " documentation (needs cweave package)" + @echo " clean " + +ifdef OS + + # default values (bound executables built with emx) + FS = msdos + CC = gcc -Wall -O -DHAVE_EMTEXDIR + LIB = + O = .o + EXE = .exe + RM = del + + ifeq ($(OS),os2) + FS = msdos + CC = gcc -Wall -Zomf -Zmtd -O -DHAVE_EMTEXDIR + LIB = hbf2gf.def + O = .obj + EXE = .exe + RM = del + endif + + ifeq ($(OS),dos) + FS = msdos + CC = gcc -Wall -O -DHAVE_EMTEXDIR + LIB = + O = .o + EXE = .exe + RM = del + endif + + + %$O: %.c + $(CC) $(CFLAGS) -c -D$(FS) -o $@ $< + + %.c: %.w %.ch + $(CTANGLE) $^ $@ + %.c: %.w + $(CTANGLE) $< + + %.tex: %.w %.ch + $(CWEAVE) +ai $^ $@ + %.tex: %.w + $(CWEAVE) +ai $< + + %.dvi: %.tex + $(TEX) $* + + + all: + $(MAKE) -f Makefile.gnu do_all CFLAGS=-s + + debug: + $(MAKE) -f Makefile.gnu do_all CFLAGS=-g + + # this builds the .dvi-file + documentation: hbf2gf.dvi + + # remove the unnecessary files; + clean: + -$(RM) *.scn + -$(RM) *.toc + -$(RM) *.idx + -$(RM) *.log + -$(RM) *.o + + + do_all: hbf2gf$(EXE) + + hbf2gf$(EXE): hbf2gf$O hbf$O emdir$O emtexdir$O + ifeq ($(OS),dos) + $(CC) $(CFLAGS) -o $(basename $@) $^ + strip $(basename $@) + coff2exe $(basename $@) + -del $(basename $@) + else + $(CC) $(CFLAGS) -o $@ $^ $(LIB) + endif + + hbf$O: hbf.c hbf.h + emdir$O: emdir.c emdir.h + emtexdir$O: emtexdir.c emtexdir.h emdir.h + +else # ifdef OS + + all debug documentation clean: default + +endif diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/Makefile.in b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/Makefile.in new file mode 100644 index 0000000000..bf6022f818 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/Makefile.in @@ -0,0 +1,127 @@ +# Makefile for hbf2gf -- wl@gnu.org + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +VPATH = @srcdir@ +srcdir = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +libdir = @libdir@ +bindir = @bindir@ +mandir = @mandir@ + +RM = @RM@ +RMF = @RM@ -f + +TEX = tex +CTANGLE = ctangle +CWEAVE = cweave + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ + +CC = @CC@ +CPP = @CPP@ + +MKINSTALLDIRS = $(srcdir)/mkinstalldirs + +CFLAGS = @CFLAGS@ +CPPFLAGS = @CPPFLAGS@ @DEFS@ @no_strdup@ -Dunix +MY_CFLAGS = $(CFLAGS) $(CPPFLAGS) @XX_CFLAGS@ +LDFLAGS = @LDFLAGS@ @LIBS@ + +SRC = hbf2gf.c $(srcdir)/hbf.c +OBJ = hbf2gf.o hbf.o + + +.SUFFIXES: .dvi .tex .w + + +.w.c: + $(CTANGLE) $< +.c.o: + $(CC) -c $(MY_CFLAGS) $< + +.w.tex: + $(CWEAVE) +ai $< + +.tex.dvi: + $(TEX) $< + + + +PROGRAMS = hbf2gf + +default all: $(PROGRAMS) + +hbf2gf.c: $(srcdir)/hbf2gf.w + +hbf2gf: $(OBJ) + $(CC) $(MY_CFLAGS) -o hbf2gf $(OBJ) $(LDFLAGS) + +documentation: hbf2gf.dvi + +install: $(PROGRAMS) + $(MKINSTALLDIRS) $(bindir) $(mandir)/man1 + for P in $(PROGRAMS) ; do \ + $(INSTALL_PROGRAM) $$P $(bindir)/$$P ; \ + $(INSTALL_DATA) $(srcdir)/$$P.1 $(mandir)/man1 ; \ + done + +uninstall: + -for P in $(PROGRAMS) ; do \ + $(RMF) $(bindir)/$$P ; \ + $(RMF) $(mandir)/man1/$$P.1 ; \ + done + +clean: do_clean + +distclean: do_clean + -$(RMF) dep.end $(PROGRAMS) *.dvi + -$(RMF) *~ *.orig core *.core + -$(RMF) config.cache config.log config.status Makefile + +do_clean: + -$(RMF) *.o + -$(RMF) *.scn *.toc *.idx *.log + +maintainer-clean: distclean + -$(RMF) hbf2gf.c + +depend: $(SRC) + (echo '/^#.* PUT NO STUFF BELOW/,$$d'; echo w; echo q) | \ + ed - Makefile + echo '# Dependencies generated by make depend: PUT NO STUFF BELOW' \ + >> Makefile + for file in $(SRC) ; do \ + $(CPP) $(CPPFLAGS) $$file | \ + sed -n -e 's|^# [1-9][0-9]* "\([^/].*\.h\)".*|\1|p' \ + -e 's|^# [1-9][0-9]* "\($(srcdir)/.*\.h\)".*|\1|p' | \ + sed -e 's|/\./|.|g' -e "s/^/`basename $$file .c`.o: /" ; \ + done | \ + sort -u | \ + awk '{ if (LINE == 1) \ + { line = last = $$1 } \ + else if ($$1 != last) \ + { print line ; line = last = $$1 } \ + line = line " " $$2 } \ + END { print line }' >> Makefile + +# Dependencies generated by make depend: PUT NO STUFF BELOW diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/README b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/README new file mode 100644 index 0000000000..a7de0ec140 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/README @@ -0,0 +1,2 @@ +Additional installation documentation can be found in the files `INSTALL' +(in the top directory) and `doc/hbf2gf.txt'. diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/c-auto.h b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/c-auto.h new file mode 100644 index 0000000000..96e9b06279 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/c-auto.h @@ -0,0 +1,39 @@ +/* + * c-auto.h + * + * This file is part of the CJK package ver 4.8.5 16-Oct-2021 + * + */ + +/* + Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program in doc/COPYING; if not, write to the Free + Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA + */ + +#ifndef C_AUTO_H +#define C_AUTO_H + +/* + * We need to get kpathsea's configuration file. + */ + +#include "kpathsea/c-auto.h" + +#endif /* C_AUTO_H */ + + +/* end */ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/README b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/README new file mode 100644 index 0000000000..689d59e739 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/README @@ -0,0 +1,10 @@ +In this directory you find some hbf2gf configuration files for common CJK +bitmap fonts. + +No paths are specified for the HBF files -- under web2c you should add the +path for these fonts to the `MISCFONTS' variable in texmf.cnf; under emTeX +you should set the environment variable `HBFONTS'. + +The font paths used here in the config files of this directory are TDS +compliant; only the `HBF_TARGET' environment variable is used (an example +would be `set HBF_TARGET=/usr/local/TeX/texmf/fonts'). diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/b5ka12.cfg b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/b5ka12.cfg new file mode 100644 index 0000000000..f5c142f023 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/b5ka12.cfg @@ -0,0 +1,28 @@ + +hbf_header ntukai48.hbf +mag_x 1 +threshold 128 +comment Big 5 normal 48x48 pixel font scaled and adapted to 12pt + +design_size 12 + +x_offset 2 +y_offset -12 + +nmb_files -1 + +output_name b5ka12 + +checksum 123456789 + +dpi_x 300 + +pk_files no +tfm_files yes + + long_extension no + +coding codingscheme Big 5 encoded TeX text + +pk_directory $HBF_TARGET/pk/modeless/ntu/b5ka12/ +tfm_directory $HBF_TARGET/tfm/ntu/b5ka12/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/b5kr12.cfg b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/b5kr12.cfg new file mode 100644 index 0000000000..9d9da2c1a2 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/b5kr12.cfg @@ -0,0 +1,30 @@ + +hbf_header ntukai48.hbf +mag_x 1 +threshold 128 +comment Big 5 normal 48x48 pixel font rotated, scaled and adapted to 12pt + +design_size 12 + +x_offset 2 +y_offset -10 + +rotation yes + +nmb_files -1 + +output_name b5kr12 + +checksum 123456789 + +dpi_x 300 + +pk_files no +tfm_files yes + + long_extension no + +coding codingscheme Big 5 encoded TeX text + +pk_directory $HBF_TARGET/pk/modeless/ntu/b5kr12/ +tfm_directory $HBF_TARGET/tfm/ntu/b5kr12/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/b5so12.cfg b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/b5so12.cfg new file mode 100644 index 0000000000..dc0bcd9fbf --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/b5so12.cfg @@ -0,0 +1,31 @@ + +hbf_header et24.hbf +mag_x 2.076 +threshold 128 +comment fanti songti 24x24 pixel font magnified and adapted for 12pt + +design_size 12.0 + +x_offset 3 +y_offset -8 + +nmb_files -1 + +output_name b5so12 + +checksum 123456789 + +dpi_x 300 + +tfm_files yes +pk_files no + +coding codingscheme Big 5 encoded TeX text + +pk_directory $HBF_TARGET/pk/modeless/eten/b5so12/ +tfm_directory $HBF_TARGET/tfm/eten/b5so12/ + + rm_command del + cp_command copy + long_extension no + job_extension .cmd diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c1so12.cfg b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c1so12.cfg new file mode 100644 index 0000000000..de5b32b3ef --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c1so12.cfg @@ -0,0 +1,28 @@ + +hbf_header cns40-1.hbf +mag_x 1 +threshold 128 +comment CNS plane 1 song 40x40 pixel font scaled and adapted to 12pt + +design_size 12.0 + +x_offset 2 +y_offset -8 + +nmb_files -1 + +output_name c1so12 + +checksum 123456789 + +dpi_x 300 + +pk_files no +tfm_files yes + + long_extension no + +coding codingscheme CNS plane 1 encoded TeX text + +pk_directory $HBF_TARGET/pk/modeless/cns/c1so12/ +tfm_directory $HBF_TARGET/tfm/cns/c1so12/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c2so12.cfg b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c2so12.cfg new file mode 100644 index 0000000000..969af8fae1 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c2so12.cfg @@ -0,0 +1,28 @@ + +hbf_header cns40-2.hbf +mag_x 1 +threshold 128 +comment CNS plane 2 song 40x40 pixel font scaled and adapted to 12pt + +design_size 12.0 + +x_offset 2 +y_offset -8 + +nmb_files -1 + +output_name c2so12 + +checksum 123456789 + +dpi_x 300 + +pk_files no +tfm_files yes + + long_extension no + +coding codingscheme CNS plane 2 encoded TeX text + +pk_directory $HBF_TARGET/pk/modeless/cns/c2so12/ +tfm_directory $HBF_TARGET/tfm/cns/c2so12/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c3so12.cfg b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c3so12.cfg new file mode 100644 index 0000000000..0e65768ee5 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c3so12.cfg @@ -0,0 +1,28 @@ + +hbf_header cns40-3.hbf +mag_x 1 +threshold 128 +comment CNS plane 3 song 40x40 pixel font scaled and adapted to 12pt + +design_size 12.0 + +x_offset 2 +y_offset -8 + +nmb_files -1 + +output_name c3so12 + +checksum 123456789 + +dpi_x 300 + +pk_files no +tfm_files yes + + long_extension no + +coding codingscheme CNS plane 3 encoded TeX text + +pk_directory $HBF_TARGET/pk/modeless/cns/c3so12/ +tfm_directory $HBF_TARGET/tfm/cns/c3so12/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c4so12.cfg b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c4so12.cfg new file mode 100644 index 0000000000..8ea3a8b270 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c4so12.cfg @@ -0,0 +1,28 @@ + +hbf_header cns40-4.hbf +mag_x 1 +threshold 128 +comment CNS plane 4 song 40x40 pixel font scaled and adapted to 12pt + +design_size 12.0 + +x_offset 2 +y_offset -8 + +nmb_files -1 + +output_name c4so12 + +checksum 123456789 + +dpi_x 300 + +pk_files no +tfm_files yes + + long_extension no + +coding codingscheme CNS plane 4 encoded TeX text + +pk_directory $HBF_TARGET/pk/modeless/cns/c4so12/ +tfm_directory $HBF_TARGET/tfm/cns/c4so12/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c5so12.cfg b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c5so12.cfg new file mode 100644 index 0000000000..1b81c90a0d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c5so12.cfg @@ -0,0 +1,28 @@ + +hbf_header cns40-5.hbf +mag_x 1 +threshold 128 +comment CNS plane 5 song 40x40 pixel font scaled and adapted to 12pt + +design_size 12.0 + +x_offset 2 +y_offset -8 + +nmb_files -1 + +output_name c5so12 + +checksum 123456789 + +dpi_x 300 + +pk_files no +tfm_files yes + + long_extension no + +coding codingscheme CNS plane 5 encoded TeX text + +pk_directory $HBF_TARGET/pk/modeless/cns/c5so12/ +tfm_directory $HBF_TARGET/tfm/cns/c5so12/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c6so12.cfg b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c6so12.cfg new file mode 100644 index 0000000000..5b9c912ce5 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c6so12.cfg @@ -0,0 +1,28 @@ + +hbf_header cns40-6.hbf +mag_x 1 +threshold 128 +comment CNS plane 6 song 40x40 pixel font scaled and adapted to 12pt + +design_size 12.0 + +x_offset 2 +y_offset -8 + +nmb_files -1 + +output_name c6so12 + +checksum 123456789 + +dpi_x 300 + +pk_files no +tfm_files yes + + long_extension no + +coding codingscheme CNS plane 6 encoded TeX text + +pk_directory $HBF_TARGET/pk/modeless/cns/c6so12/ +tfm_directory $HBF_TARGET/tfm/cns/c6so12/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c7so12.cfg b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c7so12.cfg new file mode 100644 index 0000000000..051b260142 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/c7so12.cfg @@ -0,0 +1,28 @@ + +hbf_header cns40-7.hbf +mag_x 1 +threshold 128 +comment CNS plane 7 song 40x40 pixel font scaled and adapted to 12pt + +design_size 12.0 + +x_offset 2 +y_offset -8 + +nmb_files -1 + +output_name c7so12 + +checksum 123456789 + +dpi_x 300 + +pk_files no +tfm_files yes + + long_extension no + +coding codingscheme CNS plane 7 encoded TeX text + +pk_directory $HBF_TARGET/pk/modeless/cns/c7so12/ +tfm_directory $HBF_TARGET/tfm/cns/c7so12/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/csso12.cfg b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/csso12.cfg new file mode 100644 index 0000000000..9ad91b0c57 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/csso12.cfg @@ -0,0 +1,28 @@ + +hbf_header cns40-b5.hbf +mag_x 1 +threshold 128 +comment CNS song 40x40 pixel font (Bg5 encoded) scaled and adapted to 12pt + +design_size 12.0 + +x_offset 2 +y_offset -8 + +nmb_files -1 + +output_name csso12 + +checksum 123456789 + +dpi_x 300 + +pk_files no +tfm_files yes + + long_extension no + +coding codingscheme Big 5 encoded TeX text + +pk_directory $HBF_TARGET/pk/modeless/cns/csso12/ +tfm_directory $HBF_TARGET/tfm/cns/csso12/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/gsfs14.cfg b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/gsfs14.cfg new file mode 100644 index 0000000000..4b397aca46 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/gsfs14.cfg @@ -0,0 +1,27 @@ + +hbf_header jfs56.hbf +mag_x 1 +threshold 128 +comment jianti fansongti 56x56 pixel font scaled and adapted to 14.4pt + +design_size 14.4 + +y_offset -13 + +nmb_files -1 + +output_name gsfs14 + +checksum 123456789 + +dpi_x 300 + +pk_files no +tfm_files yes + + long_extension no + +coding codingscheme GuoBiao encoded TeX text + +pk_directory $HBF_TARGET/pk/modeless/ccdos/gsfs14/ +tfm_directory $HBF_TARGET/tfm/ccdos/gsfs14/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/j2so12.cfg b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/j2so12.cfg new file mode 100644 index 0000000000..7e0d70b5c0 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/j2so12.cfg @@ -0,0 +1,30 @@ + +hbf_header jisksp40.hbf +mag_x 1.0 +threshold 128 +comment supplemental kanji normal 40x40 pixel font scaled and adapted to 12pt + +design_size 12 + +min_char 0x2121 + +x_offset 2 +y_offset -7 + +nmb_files -1 + +output_name j2so12 + +checksum 123456789 + +dpi_x 300 + +pk_files no +tfm_files yes + + long_extension no + +coding codingscheme JIS2 encoded TeX text + +pk_directory $HBF_TARGET/pk/modeless/jisx0212/j2so12/ +tfm_directory $HBF_TARGET/tfm/jisx0212/j2so12/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/jsso12.cfg b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/jsso12.cfg new file mode 100644 index 0000000000..9bdfc7b1e8 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/jsso12.cfg @@ -0,0 +1,28 @@ + +hbf_header kanji48.hbf +mag_x 0.83 +threshold 128 +comment kanji normal 48x48 pixel font scaled and adapted to 12pt + +design_size 12 + +x_offset 2 +y_offset -7 + +nmb_files -1 + +output_name jsso12 + +checksum 123456789 + +dpi_x 300 + +pk_files no +tfm_files yes + + long_extension no + +coding codingscheme JIS encoded TeX text + +pk_directory $HBF_TARGET/pk/modeless/jisx0208/jsso12/ +tfm_directory $HBF_TARGET/tfm/jisx0208/jsso12/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/ksso17.cfg b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/ksso17.cfg new file mode 100644 index 0000000000..c82f7e7eee --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/cfg/ksso17.cfg @@ -0,0 +1,27 @@ + +hbf_header hanja65.hbf +mag_x 1 +threshold 128 +comment hanja normal 65x65 pixel font scaled and adapted to 17.28pt + +design_size 17.28 + +y_offset -16 + +nmb_files -1 + +output_name ksso17 + +checksum 123456789 + +dpi_x 300 + +pk_files no +tfm_files yes + + long_extension no + +coding codingscheme KS encoded TeX text + +pk_directory $HBF_TARGET/pk/modeless/ksc5601/ksso17/ +tfm_directory $HBF_TARGET/tfm/ksc5601/ksso17/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/config.guess b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/config.guess new file mode 100755 index 0000000000..e81d3ae7c2 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/config.guess @@ -0,0 +1,1748 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2021 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2021-06-03' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see <https://www.gnu.org/licenses/>. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess +# +# Please send patches to <config-patches@gnu.org>. + + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to <config-patches@gnu.org>." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2021 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +# Just in case it came from the environment. +GUESS= + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039,SC3028 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD=$driver + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if test -f /.attbin/uname ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case $UNAME_SYSTEM in +Linux|GNU|GNU/*) + LIBC=unknown + + set_cc_for_build + cat <<-EOF > "$dummy.c" + #include <features.h> + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #elif defined(__GLIBC__) + LIBC=gnu + #else + #include <stdarg.h> + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif + #endif + EOF + cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$cc_set_libc" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + fi + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)` + case $UNAME_MACHINE_ARCH in + aarch64eb) machine=aarch64_be-unknown ;; + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; + *) machine=$UNAME_MACHINE_ARCH-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case $UNAME_MACHINE_ARCH in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case $UNAME_MACHINE_ARCH in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case $UNAME_VERSION in + Debian*) + release='-gnu' + ;; + *) + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + GUESS=$machine-${os}${release}${abi-} + ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE + ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE + ;; + *:SecBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE + ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE + ;; + *:MidnightBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE + ;; + *:ekkoBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE + ;; + *:SolidBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE + ;; + *:OS108:*:*) + GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE + ;; + macppc:MirBSD:*:*) + GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE + ;; + *:MirBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE + ;; + *:Sortix:*:*) + GUESS=$UNAME_MACHINE-unknown-sortix + ;; + *:Twizzler:*:*) + GUESS=$UNAME_MACHINE-unknown-twizzler + ;; + *:Redox:*:*) + GUESS=$UNAME_MACHINE-unknown-redox + ;; + mips:OSF1:*.*) + GUESS=mips-dec-osf1 + ;; + alpha:OSF1:*:*) + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + trap '' 0 + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case $ALPHA_CPU_TYPE in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + GUESS=$UNAME_MACHINE-dec-osf$OSF_REL + ;; + Amiga*:UNIX_System_V:4.0:*) + GUESS=m68k-unknown-sysv4 + ;; + *:[Aa]miga[Oo][Ss]:*:*) + GUESS=$UNAME_MACHINE-unknown-amigaos + ;; + *:[Mm]orph[Oo][Ss]:*:*) + GUESS=$UNAME_MACHINE-unknown-morphos + ;; + *:OS/390:*:*) + GUESS=i370-ibm-openedition + ;; + *:z/VM:*:*) + GUESS=s390-ibm-zvmoe + ;; + *:OS400:*:*) + GUESS=powerpc-ibm-os400 + ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + GUESS=arm-acorn-riscix$UNAME_RELEASE + ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + GUESS=arm-unknown-riscos + ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + GUESS=hppa1.1-hitachi-hiuxmpp + ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + case `(/bin/universe) 2>/dev/null` in + att) GUESS=pyramid-pyramid-sysv3 ;; + *) GUESS=pyramid-pyramid-bsd ;; + esac + ;; + NILE*:*:*:dcosx) + GUESS=pyramid-pyramid-svr4 + ;; + DRS?6000:unix:4.0:6*) + GUESS=sparc-icl-nx6 + ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) GUESS=sparc-icl-nx7 ;; + esac + ;; + s390x:SunOS:*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL + ;; + sun4H:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-hal-solaris2$SUN_REL + ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris2$SUN_REL + ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + GUESS=i386-pc-auroraux$UNAME_RELEASE + ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$SUN_ARCH-pc-solaris2$SUN_REL + ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris3$SUN_REL + ;; + sun4*:SunOS:*:*) + case `/usr/bin/arch -k` in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` + GUESS=sparc-sun-sunos$SUN_REL + ;; + sun3*:SunOS:*:*) + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case `/bin/arch` in + sun3) + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; + sun4) + GUESS=sparc-sun-sunos$UNAME_RELEASE + ;; + esac + ;; + aushp:SunOS:*:*) + GUESS=sparc-auspex-sunos$UNAME_RELEASE + ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + GUESS=m68k-milan-mint$UNAME_RELEASE + ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + GUESS=m68k-hades-mint$UNAME_RELEASE + ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + GUESS=m68k-unknown-mint$UNAME_RELEASE + ;; + m68k:machten:*:*) + GUESS=m68k-apple-machten$UNAME_RELEASE + ;; + powerpc:machten:*:*) + GUESS=powerpc-apple-machten$UNAME_RELEASE + ;; + RISC*:Mach:*:*) + GUESS=mips-dec-mach_bsd4.3 + ;; + RISC*:ULTRIX:*:*) + GUESS=mips-dec-ultrix$UNAME_RELEASE + ;; + VAX*:ULTRIX*:*:*) + GUESS=vax-dec-ultrix$UNAME_RELEASE + ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + GUESS=clipper-intergraph-clix$UNAME_RELEASE + ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" +#ifdef __cplusplus +#include <stdio.h> /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && + { echo "$SYSTEM_NAME"; exit; } + GUESS=mips-mips-riscos$UNAME_RELEASE + ;; + Motorola:PowerMAX_OS:*:*) + GUESS=powerpc-motorola-powermax + ;; + Motorola:*:4.3:PL8-*) + GUESS=powerpc-harris-powermax + ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + GUESS=powerpc-harris-powermax + ;; + Night_Hawk:Power_UNIX:*:*) + GUESS=powerpc-harris-powerunix + ;; + m88k:CX/UX:7*:*) + GUESS=m88k-harris-cxux7 + ;; + m88k:*:4*:R4*) + GUESS=m88k-motorola-sysv4 + ;; + m88k:*:3*:R3*) + GUESS=m88k-motorola-sysv3 + ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 + then + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x + then + GUESS=m88k-dg-dgux$UNAME_RELEASE + else + GUESS=m88k-dg-dguxbcs$UNAME_RELEASE + fi + else + GUESS=i586-dg-dgux$UNAME_RELEASE + fi + ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + GUESS=m88k-dolphin-sysv3 + ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + GUESS=m88k-motorola-sysv3 + ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + GUESS=m88k-tektronix-sysv3 + ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + GUESS=m68k-tektronix-bsd + ;; + *:IRIX*:*:*) + IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` + GUESS=mips-sgi-irix$IRIX_REL + ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id + ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + GUESS=i386-ibm-aix + ;; + ia64:AIX:*:*) + if test -x /usr/bin/oslevel ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE + fi + GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV + ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include <sys/systemcfg.h> + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` + then + GUESS=$SYSTEM_NAME + else + GUESS=rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + GUESS=rs6000-ibm-aix3.2.4 + else + GUESS=rs6000-ibm-aix3.2 + fi + ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if test -x /usr/bin/lslpp ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE + fi + GUESS=$IBM_ARCH-ibm-aix$IBM_REV + ;; + *:AIX:*:*) + GUESS=rs6000-ibm-aix + ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + GUESS=romp-ibm-bsd4.4 + ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to + ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + GUESS=rs6000-bull-bosx + ;; + DPX/2?00:B.O.S.:*:*) + GUESS=m68k-bull-sysv3 + ;; + 9000/[34]??:4.3bsd:1.*:*) + GUESS=m68k-hp-bsd + ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + GUESS=m68k-hp-bsd4.4 + ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + case $UNAME_MACHINE in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if test -x /usr/bin/getconf; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case $sc_cpu_version in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case $sc_kernel_bits in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + + #define _HPUX_SOURCE + #include <stdlib.h> + #include <unistd.h> + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if test "$HP_ARCH" = hppa2.0w + then + set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + GUESS=$HP_ARCH-hp-hpux$HPUX_REV + ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + GUESS=ia64-hp-hpux$HPUX_REV + ;; + 3050*:HI-UX:*:*) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include <unistd.h> + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + GUESS=unknown-hitachi-hiuxwe2 + ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + GUESS=hppa1.1-hp-bsd + ;; + 9000/8??:4.3bsd:*:*) + GUESS=hppa1.0-hp-bsd + ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + GUESS=hppa1.0-hp-mpeix + ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + GUESS=hppa1.1-hp-osf + ;; + hp8??:OSF1:*:*) + GUESS=hppa1.0-hp-osf + ;; + i*86:OSF1:*:*) + if test -x /usr/sbin/sysversion ; then + GUESS=$UNAME_MACHINE-unknown-osf1mk + else + GUESS=$UNAME_MACHINE-unknown-osf1 + fi + ;; + parisc*:Lites*:*:*) + GUESS=hppa1.1-hp-lites + ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + GUESS=c1-convex-bsd + ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + GUESS=c34-convex-bsd + ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + GUESS=c38-convex-bsd + ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + GUESS=c4-convex-bsd + ;; + CRAY*Y-MP:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=ymp-cray-unicos$CRAY_REL + ;; + CRAY*[A-Z]90:*:*:*) + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=t90-cray-unicos$CRAY_REL + ;; + CRAY*T3E:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=alphaev5-cray-unicosmk$CRAY_REL + ;; + CRAY*SV1:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=sv1-cray-unicos$CRAY_REL + ;; + *:UNICOS/mp:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=craynv-cray-unicosmp$CRAY_REL + ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` + GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE + ;; + sparc*:BSD/OS:*:*) + GUESS=sparc-unknown-bsdi$UNAME_RELEASE + ;; + *:BSD/OS:*:*) + GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE + ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=`uname -p` + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi + else + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf + fi + ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case $UNAME_PROCESSOR in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL + ;; + i*:CYGWIN*:*) + GUESS=$UNAME_MACHINE-pc-cygwin + ;; + *:MINGW64*:*) + GUESS=$UNAME_MACHINE-pc-mingw64 + ;; + *:MINGW*:*) + GUESS=$UNAME_MACHINE-pc-mingw32 + ;; + *:MSYS*:*) + GUESS=$UNAME_MACHINE-pc-msys + ;; + i*:PW*:*) + GUESS=$UNAME_MACHINE-pc-pw32 + ;; + *:Interix*:*) + case $UNAME_MACHINE in + x86) + GUESS=i586-pc-interix$UNAME_RELEASE + ;; + authenticamd | genuineintel | EM64T) + GUESS=x86_64-unknown-interix$UNAME_RELEASE + ;; + IA64) + GUESS=ia64-unknown-interix$UNAME_RELEASE + ;; + esac ;; + i*:UWIN*:*) + GUESS=$UNAME_MACHINE-pc-uwin + ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + GUESS=x86_64-pc-cygwin + ;; + prep*:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=powerpcle-unknown-solaris2$SUN_REL + ;; + *:GNU:*:*) + # the GNU system + GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` + GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL + ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC + ;; + *:Minix:*:*) + GUESS=$UNAME_MACHINE-unknown-minix + ;; + aarch64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arm*:Linux:*:*) + set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi + else + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf + fi + fi + ;; + avr32*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + cris:Linux:*:*) + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; + crisv32:Linux:*:*) + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; + e2k:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + frv:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + hexagon:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + i*86:Linux:*:*) + GUESS=$UNAME_MACHINE-pc-linux-$LIBC + ;; + ia64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + k1om:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + m32r*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + m68*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + mips:Linux:*:* | mips64:Linux:*:*) + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" + #undef CPU + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + MIPS_ENDIAN=el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + MIPS_ENDIAN= + #else + MIPS_ENDIAN= + #endif + #endif +EOF + cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` + eval "$cc_set_vars" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } + ;; + mips64el:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + openrisc*:Linux:*:*) + GUESS=or1k-unknown-linux-$LIBC + ;; + or32:Linux:*:* | or1k*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + padre:Linux:*:*) + GUESS=sparc-unknown-linux-$LIBC + ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + GUESS=hppa64-unknown-linux-$LIBC + ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; + PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; + *) GUESS=hppa-unknown-linux-$LIBC ;; + esac + ;; + ppc64:Linux:*:*) + GUESS=powerpc64-unknown-linux-$LIBC + ;; + ppc:Linux:*:*) + GUESS=powerpc-unknown-linux-$LIBC + ;; + ppc64le:Linux:*:*) + GUESS=powerpc64le-unknown-linux-$LIBC + ;; + ppcle:Linux:*:*) + GUESS=powerpcle-unknown-linux-$LIBC + ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + s390:Linux:*:* | s390x:Linux:*:*) + GUESS=$UNAME_MACHINE-ibm-linux-$LIBC + ;; + sh64*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + sh*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + tile*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + vax:Linux:*:*) + GUESS=$UNAME_MACHINE-dec-linux-$LIBC + ;; + x86_64:Linux:*:*) + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI=${LIBC}x32 + fi + fi + GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI + ;; + xtensa*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + GUESS=i386-sequent-sysv4 + ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION + ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + GUESS=$UNAME_MACHINE-pc-os2-emx + ;; + i*86:XTS-300:*:STOP) + GUESS=$UNAME_MACHINE-unknown-stop + ;; + i*86:atheos:*:*) + GUESS=$UNAME_MACHINE-unknown-atheos + ;; + i*86:syllable:*:*) + GUESS=$UNAME_MACHINE-pc-syllable + ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + GUESS=i386-unknown-lynxos$UNAME_RELEASE + ;; + i*86:*DOS:*:*) + GUESS=$UNAME_MACHINE-pc-msdosdjgpp + ;; + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL + else + GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL + fi + ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` + GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL + elif /bin/uname -X 2>/dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL + else + GUESS=$UNAME_MACHINE-pc-sysv32 + fi + ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + GUESS=i586-pc-msdosdjgpp + ;; + Intel:Mach:3*:*) + GUESS=i386-pc-mach3 + ;; + paragon:*:*:*) + GUESS=i860-intel-osf1 + ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 + fi + ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + GUESS=m68010-convergent-sysv + ;; + mc68k:UNIX:SYSTEM5:3.51m) + GUESS=m68k-convergent-sysv + ;; + M680?0:D-NIX:5.3:*) + GUESS=m68k-diab-dnix + ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + GUESS=m68k-unknown-lynxos$UNAME_RELEASE + ;; + mc68030:UNIX_System_V:4.*:*) + GUESS=m68k-atari-sysv4 + ;; + TSUNAMI:LynxOS:2.*:*) + GUESS=sparc-unknown-lynxos$UNAME_RELEASE + ;; + rs6000:LynxOS:2.*:*) + GUESS=rs6000-unknown-lynxos$UNAME_RELEASE + ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + GUESS=powerpc-unknown-lynxos$UNAME_RELEASE + ;; + SM[BE]S:UNIX_SV:*:*) + GUESS=mips-dde-sysv$UNAME_RELEASE + ;; + RM*:ReliantUNIX-*:*:*) + GUESS=mips-sni-sysv4 + ;; + RM*:SINIX-*:*:*) + GUESS=mips-sni-sysv4 + ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + GUESS=$UNAME_MACHINE-sni-sysv4 + else + GUESS=ns32k-sni-sysv + fi + ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says <Richard.M.Bartel@ccMail.Census.GOV> + GUESS=i586-unisys-sysv4 + ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes <hewes@openmarket.com>. + # How about differentiating between stratus architectures? -djm + GUESS=hppa1.1-stratus-sysv4 + ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + GUESS=i860-stratus-sysv4 + ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + GUESS=$UNAME_MACHINE-stratus-vos + ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + GUESS=hppa1.1-stratus-vos + ;; + mc68*:A/UX:*:*) + GUESS=m68k-apple-aux$UNAME_RELEASE + ;; + news*:NEWS-OS:6*:*) + GUESS=mips-sony-newsos6 + ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if test -d /usr/nec; then + GUESS=mips-nec-sysv$UNAME_RELEASE + else + GUESS=mips-unknown-sysv$UNAME_RELEASE + fi + ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + GUESS=powerpc-be-beos + ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + GUESS=powerpc-apple-beos + ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + GUESS=i586-pc-beos + ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + GUESS=i586-pc-haiku + ;; + x86_64:Haiku:*:*) + GUESS=x86_64-unknown-haiku + ;; + SX-4:SUPER-UX:*:*) + GUESS=sx4-nec-superux$UNAME_RELEASE + ;; + SX-5:SUPER-UX:*:*) + GUESS=sx5-nec-superux$UNAME_RELEASE + ;; + SX-6:SUPER-UX:*:*) + GUESS=sx6-nec-superux$UNAME_RELEASE + ;; + SX-7:SUPER-UX:*:*) + GUESS=sx7-nec-superux$UNAME_RELEASE + ;; + SX-8:SUPER-UX:*:*) + GUESS=sx8-nec-superux$UNAME_RELEASE + ;; + SX-8R:SUPER-UX:*:*) + GUESS=sx8r-nec-superux$UNAME_RELEASE + ;; + SX-ACE:SUPER-UX:*:*) + GUESS=sxace-nec-superux$UNAME_RELEASE + ;; + Power*:Rhapsody:*:*) + GUESS=powerpc-apple-rhapsody$UNAME_RELEASE + ;; + *:Rhapsody:*:*) + GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE + ;; + arm64:Darwin:*:*) + GUESS=aarch64-apple-darwin$UNAME_RELEASE + ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE + fi + GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE + ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE + ;; + *:QNX:*:4*) + GUESS=i386-pc-qnx + ;; + NEO-*:NONSTOP_KERNEL:*:*) + GUESS=neo-tandem-nsk$UNAME_RELEASE + ;; + NSE-*:NONSTOP_KERNEL:*:*) + GUESS=nse-tandem-nsk$UNAME_RELEASE + ;; + NSR-*:NONSTOP_KERNEL:*:*) + GUESS=nsr-tandem-nsk$UNAME_RELEASE + ;; + NSV-*:NONSTOP_KERNEL:*:*) + GUESS=nsv-tandem-nsk$UNAME_RELEASE + ;; + NSX-*:NONSTOP_KERNEL:*:*) + GUESS=nsx-tandem-nsk$UNAME_RELEASE + ;; + *:NonStop-UX:*:*) + GUESS=mips-compaq-nonstopux + ;; + BS2000:POSIX*:*:*) + GUESS=bs2000-siemens-sysv + ;; + DS/*:UNIX_System_V:*:*) + GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE + ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "${cputype-}" = 386; then + UNAME_MACHINE=i386 + elif test "x${cputype-}" != x; then + UNAME_MACHINE=$cputype + fi + GUESS=$UNAME_MACHINE-unknown-plan9 + ;; + *:TOPS-10:*:*) + GUESS=pdp10-unknown-tops10 + ;; + *:TENEX:*:*) + GUESS=pdp10-unknown-tenex + ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + GUESS=pdp10-dec-tops20 + ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + GUESS=pdp10-xkl-tops20 + ;; + *:TOPS-20:*:*) + GUESS=pdp10-unknown-tops20 + ;; + *:ITS:*:*) + GUESS=pdp10-unknown-its + ;; + SEI:*:*:SEIUX) + GUESS=mips-sei-seiux$UNAME_RELEASE + ;; + *:DragonFly:*:*) + DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL + ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case $UNAME_MACHINE in + A*) GUESS=alpha-dec-vms ;; + I*) GUESS=ia64-dec-vms ;; + V*) GUESS=vax-dec-vms ;; + esac ;; + *:XENIX:*:SysV) + GUESS=i386-pc-xenix + ;; + i*86:skyos:*:*) + SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` + GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL + ;; + i*86:rdos:*:*) + GUESS=$UNAME_MACHINE-pc-rdos + ;; + *:AROS:*:*) + GUESS=$UNAME_MACHINE-unknown-aros + ;; + x86_64:VMkernel:*:*) + GUESS=$UNAME_MACHINE-unknown-esx + ;; + amd64:Isilon\ OneFS:*:*) + GUESS=x86_64-unknown-onefs + ;; + *:Unleashed:*:*) + GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE + ;; +esac + +# Do we have a guess based on uname results? +if test "x$GUESS" != x; then + echo "$GUESS" + exit +fi + +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" <<EOF +#ifdef _SEQUENT_ +#include <sys/types.h> +#include <sys/utsname.h> +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include <signal.h> +#if defined(_SIZE_T_) || defined(SIGLOST) +#include <sys/utsname.h> +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include <sys/param.h> + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include <sys/param.h> +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +echo "$0: unable to guess system type" >&2 + +case $UNAME_MACHINE:$UNAME_SYSTEM in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <<EOF + +NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize +the system type. Please install a C compiler and try again. +EOF + ;; +esac + +cat >&2 <<EOF + +This script (version $timestamp), has failed to recognize the +operating system you are using. If your script is old, overwrite *all* +copies of config.guess and config.sub with the latest versions from: + + https://git.savannah.gnu.org/cgit/config.git/plain/config.guess +and + https://git.savannah.gnu.org/cgit/config.git/plain/config.sub +EOF + +our_year=`echo $timestamp | sed 's,-.*,,'` +thisyear=`date +%Y` +# shellcheck disable=SC2003 +script_age=`expr "$thisyear" - "$our_year"` +if test "$script_age" -lt 3 ; then + cat >&2 <<EOF + +If $0 has already been updated, send the following data and any +information you think might be pertinent to config-patches@gnu.org to +provide the necessary information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" +EOF +fi + +exit 1 + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/config.sub b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/config.sub new file mode 100755 index 0000000000..d74fb6deac --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/config.sub @@ -0,0 +1,1884 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2021 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2021-08-14' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see <https://www.gnu.org/licenses/>. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to <config-patches@gnu.org>. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to <config-patches@gnu.org>." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2021 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <<EOF +$1 +EOF +IFS=$saved_IFS + +# Separate into logical components for further validation +case $1 in + *-*-*-*-*) + echo Invalid configuration \`"$1"\': more than four components >&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <<EOF +$basic_machine +EOF + IFS=$saved_IFS + ;; + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + cpu=$basic_machine + vendor=pc + ;; + # These rules are duplicated from below for sake of the special case above; + # i.e. things that normalized to x86 arches should also default to "pc" + pc98) + cpu=i386 + vendor=pc + ;; + x64 | amd64) + cpu=x86_64 + vendor=pc + ;; + # Recognize the basic CPU types without company name. + *) + cpu=$basic_machine + vendor=unknown + ;; +esac + +unset -v basic_machine + +# Decode basic machines in the full and proper CPU-Company form. +case $cpu-$vendor in + # Here we handle the default manufacturer of certain CPU types in canonical form. It is in + # some cases the only manufacturer, in others, it is the most popular. + craynv-unknown) + vendor=cray + basic_os=${basic_os:-unicosmp} + ;; + c90-unknown | c90-cray) + vendor=cray + basic_os=${Basic_os:-unicos} + ;; + fx80-unknown) + vendor=alliant + ;; + romp-unknown) + vendor=ibm + ;; + mmix-unknown) + vendor=knuth + ;; + microblaze-unknown | microblazeel-unknown) + vendor=xilinx + ;; + rs6000-unknown) + vendor=ibm + ;; + vax-unknown) + vendor=dec + ;; + pdp11-unknown) + vendor=dec + ;; + we32k-unknown) + vendor=att + ;; + cydra-unknown) + vendor=cydrome + ;; + i370-ibm*) + vendor=ibm + ;; + orion-unknown) + vendor=highlevel + ;; + xps-unknown | xps100-unknown) + cpu=xps100 + vendor=honeywell + ;; + + # Here we normalize CPU types with a missing or matching vendor + dpx20-unknown | dpx20-bull) + cpu=rs6000 + vendor=bull + basic_os=${basic_os:-bosx} + ;; + + # Here we normalize CPU types irrespective of the vendor + amd64-*) + cpu=x86_64 + ;; + blackfin-*) + cpu=bfin + basic_os=linux + ;; + c54x-*) + cpu=tic54x + ;; + c55x-*) + cpu=tic55x + ;; + c6x-*) + cpu=tic6x + ;; + e500v[12]-*) + cpu=powerpc + basic_os=${basic_os}"spe" + ;; + mips3*-*) + cpu=mips64 + ;; + ms1-*) + cpu=mt + ;; + m68knommu-*) + cpu=m68k + basic_os=linux + ;; + m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) + cpu=s12z + ;; + openrisc-*) + cpu=or32 + ;; + parisc-*) + cpu=hppa + basic_os=linux + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + cpu=i586 + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) + cpu=i686 + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + cpu=i686 + ;; + pentium4-*) + cpu=i786 + ;; + pc98-*) + cpu=i386 + ;; + ppc-* | ppcbe-*) + cpu=powerpc + ;; + ppcle-* | powerpclittle-*) + cpu=powerpcle + ;; + ppc64-*) + cpu=powerpc64 + ;; + ppc64le-* | powerpc64little-*) + cpu=powerpc64le + ;; + sb1-*) + cpu=mipsisa64sb1 + ;; + sb1el-*) + cpu=mipsisa64sb1el + ;; + sh5e[lb]-*) + cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` + ;; + spur-*) + cpu=spur + ;; + strongarm-* | thumb-*) + cpu=arm + ;; + tx39-*) + cpu=mipstx39 + ;; + tx39el-*) + cpu=mipstx39el + ;; + x64-*) + cpu=x86_64 + ;; + xscale-* | xscalee[bl]-*) + cpu=`echo "$cpu" | sed 's/^xscale/arm/'` + ;; + arm64-*) + cpu=aarch64 + ;; + + # Recognize the canonical CPU Types that limit and/or modify the + # company names they are paired with. + cr16-*) + basic_os=${basic_os:-elf} + ;; + crisv32-* | etraxfs*-*) + cpu=crisv32 + vendor=axis + ;; + cris-* | etrax*-*) + cpu=cris + vendor=axis + ;; + crx-*) + basic_os=${basic_os:-elf} + ;; + neo-tandem) + cpu=neo + vendor=tandem + ;; + nse-tandem) + cpu=nse + vendor=tandem + ;; + nsr-tandem) + cpu=nsr + vendor=tandem + ;; + nsv-tandem) + cpu=nsv + vendor=tandem + ;; + nsx-tandem) + cpu=nsx + vendor=tandem + ;; + mipsallegrexel-sony) + cpu=mipsallegrexel + vendor=sony + ;; + tile*-*) + basic_os=${basic_os:-linux-gnu} + ;; + + *) + # Recognize the canonical CPU types that are allowed with any + # company name. + case $cpu in + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | abacus \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ + | alphapca5[67] | alpha64pca5[67] \ + | am33_2.0 \ + | amdgcn \ + | arc | arceb | arc32 | arc64 \ + | arm | arm[lb]e | arme[lb] | armv* \ + | avr | avr32 \ + | asmjs \ + | ba \ + | be32 | be64 \ + | bfin | bpf | bs2000 \ + | c[123]* | c30 | [cjt]90 | c4x \ + | c8051 | clipper | craynv | csky | cydra \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | elxsi | epiphany \ + | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ + | h8300 | h8500 \ + | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i*86 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | loongarch32 | loongarch64 | loongarchx32 \ + | m32c | m32r | m32rle \ + | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ + | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ + | m88110 | m88k | maxq | mb | mcore | mep | metag \ + | microblaze | microblazeel \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64eb | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r3 | mipsisa32r3el \ + | mipsisa32r5 | mipsisa32r5el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r3 | mipsisa64r3el \ + | mipsisa64r5 | mipsisa64r5el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mmix \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nfp \ + | nios | nios2 | nios2eb | nios2el \ + | none | np1 | ns16k | ns32k | nvptx \ + | open8 \ + | or1k* \ + | or32 \ + | orion \ + | picochip \ + | pdp10 | pdp11 | pj | pjl | pn | power \ + | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ + | pru \ + | pyramid \ + | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ + | rl78 | romp | rs6000 | rx \ + | s390 | s390x \ + | score \ + | sh | shl \ + | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ + | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ + | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ + | spu \ + | tahoe \ + | thumbv7* \ + | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ + | tron \ + | ubicom32 \ + | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ + | vax \ + | visium \ + | w65 \ + | wasm32 | wasm64 \ + | we32k \ + | x86 | x86_64 | xc16x | xgate | xps100 \ + | xstormy16 | xtensa* \ + | ymp \ + | z8k | z80) + ;; + + *) + echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <<EOF +$basic_os +EOF + IFS=$saved_IFS + ;; + # Default OS when just kernel was specified + nto*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto|qnx|'` + ;; + linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|linux|gnu|'` + ;; + *) + kernel= + os=$basic_os + ;; +esac + +# Now, normalize the OS (knowing we just have one component, it's not a kernel, +# etc.) +case $os in + # First match some system type aliases that might get confused + # with valid system types. + # solaris* is a basic system type, with this one exception. + auroraux) + os=auroraux + ;; + bluegene*) + os=cnk + ;; + solaris1 | solaris1.*) + os=`echo "$os" | sed -e 's|solaris1|sunos4|'` + ;; + solaris) + os=solaris2 + ;; + unixware*) + os=sysv4.2uw + ;; + # es1800 is here to avoid being matched by es* (a different OS) + es1800*) + os=ose + ;; + # Some version numbers need modification + chorusos*) + os=chorusos + ;; + isc) + os=isc2.2 + ;; + sco6) + os=sco5v6 + ;; + sco5) + os=sco3.2v5 + ;; + sco4) + os=sco3.2v4 + ;; + sco3.2.[4-9]*) + os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'` + ;; + sco*v* | scout) + # Don't match below + ;; + sco*) + os=sco3.2v2 + ;; + psos*) + os=psos + ;; + qnx*) + os=qnx + ;; + hiux*) + os=hiuxwe2 + ;; + lynx*178) + os=lynxos178 + ;; + lynx*5) + os=lynxos5 + ;; + lynxos*) + # don't get caught up in next wildcard + ;; + lynx*) + os=lynxos + ;; + mac[0-9]*) + os=`echo "$os" | sed -e 's|mac|macos|'` + ;; + opened*) + os=openedition + ;; + os400*) + os=os400 + ;; + sunos5*) + os=`echo "$os" | sed -e 's|sunos5|solaris2|'` + ;; + sunos6*) + os=`echo "$os" | sed -e 's|sunos6|solaris3|'` + ;; + wince*) + os=wince + ;; + utek*) + os=bsd + ;; + dynix*) + os=bsd + ;; + acis*) + os=aos + ;; + atheos*) + os=atheos + ;; + syllable*) + os=syllable + ;; + 386bsd) + os=bsd + ;; + ctix* | uts*) + os=sysv + ;; + nova*) + os=rtmk-nova + ;; + ns2) + os=nextstep2 + ;; + # Preserve the version number of sinix5. + sinix5.*) + os=`echo "$os" | sed -e 's|sinix|sysv|'` + ;; + sinix*) + os=sysv4 + ;; + tpf*) + os=tpf + ;; + triton*) + os=sysv3 + ;; + oss*) + os=sysv3 + ;; + svr4*) + os=sysv4 + ;; + svr3) + os=sysv3 + ;; + sysvr4) + os=sysv4 + ;; + ose*) + os=ose + ;; + *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) + os=mint + ;; + dicos*) + os=dicos + ;; + pikeos*) + # Until real need of OS specific support for + # particular features comes up, bare metal + # configurations are quite functional. + case $cpu in + arm*) + os=eabi + ;; + *) + os=elf + ;; + esac + ;; + *) + # No normalization, but not necessarily accepted, that comes below. + ;; +esac + +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +kernel= +case $cpu-$vendor in + score-*) + os=elf + ;; + spu-*) + os=elf + ;; + *-acorn) + os=riscix1.2 + ;; + arm*-rebel) + kernel=linux + os=gnu + ;; + arm*-semi) + os=aout + ;; + c4x-* | tic4x-*) + os=coff + ;; + c8051-*) + os=elf + ;; + clipper-intergraph) + os=clix + ;; + hexagon-*) + os=elf + ;; + tic54x-*) + os=coff + ;; + tic55x-*) + os=coff + ;; + tic6x-*) + os=coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=tops20 + ;; + pdp11-*) + os=none + ;; + *-dec | vax-*) + os=ultrix4.2 + ;; + m68*-apollo) + os=domain + ;; + i386-sun) + os=sunos4.0.2 + ;; + m68000-sun) + os=sunos3 + ;; + m68*-cisco) + os=aout + ;; + mep-*) + os=elf + ;; + mips*-cisco) + os=elf + ;; + mips*-*) + os=elf + ;; + or32-*) + os=coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=sysv3 + ;; + sparc-* | *-sun) + os=sunos4.1.1 + ;; + pru-*) + os=elf + ;; + *-be) + os=beos + ;; + *-ibm) + os=aix + ;; + *-knuth) + os=mmixware + ;; + *-wec) + os=proelf + ;; + *-winbond) + os=proelf + ;; + *-oki) + os=proelf + ;; + *-hp) + os=hpux + ;; + *-hitachi) + os=hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=sysv + ;; + *-cbm) + os=amigaos + ;; + *-dg) + os=dgux + ;; + *-dolphin) + os=sysv3 + ;; + m68k-ccur) + os=rtu + ;; + m88k-omron*) + os=luna + ;; + *-next) + os=nextstep + ;; + *-sequent) + os=ptx + ;; + *-crds) + os=unos + ;; + *-ns) + os=genix + ;; + i370-*) + os=mvs + ;; + *-gould) + os=sysv + ;; + *-highlevel) + os=bsd + ;; + *-encore) + os=bsd + ;; + *-sgi) + os=irix + ;; + *-siemens) + os=sysv4 + ;; + *-masscomp) + os=rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=uxpv + ;; + *-rom68k) + os=coff + ;; + *-*bug) + os=coff + ;; + *-apple) + os=macos + ;; + *-atari*) + os=mint + ;; + *-wrs) + os=vxworks + ;; + *) + os=none + ;; +esac + +fi + +# Now, validate our (potentially fixed-up) OS. +case $os in + # Sometimes we do "kernel-libc", so those need to count as OSes. + musl* | newlib* | relibc* | uclibc*) + ;; + # Likewise for "kernel-abi" + eabi* | gnueabi*) + ;; + # VxWorks passes extra cpu info in the 4th filed. + simlinux | simwindows | spe) + ;; + # Now accept the basic system types. + # The portable systems comes first. + # Each alternative MUST end in a * to match a version number. + gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ + | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ + | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ + | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ + | hiux* | abug | nacl* | netware* | windows* \ + | os9* | macos* | osx* | ios* \ + | mpw* | magic* | mmixware* | mon960* | lnews* \ + | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ + | aos* | aros* | cloudabi* | sortix* | twizzler* \ + | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ + | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ + | mirbsd* | netbsd* | dicos* | openedition* | ose* \ + | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ + | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ + | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ + | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ + | udi* | lites* | ieee* | go32* | aux* | hcos* \ + | chorusrdb* | cegcc* | glidix* | serenity* \ + | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ + | midipix* | mingw32* | mingw64* | mint* \ + | uxpv* | beos* | mpeix* | udk* | moxiebox* \ + | interix* | uwin* | mks* | rhapsody* | darwin* \ + | openstep* | oskit* | conix* | pw32* | nonstopux* \ + | storm-chaos* | tops10* | tenex* | tops20* | its* \ + | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ + | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ + | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ + | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr*) + ;; + # This one is extra strict with allowed versions + sco3.2v2 | sco3.2v[4-9]* | sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + ;; + none) + ;; + *) + echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) + vendor=acorn + ;; + *-sunos*) + vendor=sun + ;; + *-cnk* | *-aix*) + vendor=ibm + ;; + *-beos*) + vendor=be + ;; + *-hpux*) + vendor=hp + ;; + *-mpeix*) + vendor=hp + ;; + *-hiux*) + vendor=hitachi + ;; + *-unos*) + vendor=crds + ;; + *-dgux*) + vendor=dg + ;; + *-luna*) + vendor=omron + ;; + *-genix*) + vendor=ns + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) + vendor=sequent + ;; + *-tpf*) + vendor=ibm + ;; + *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; + *-aux*) + vendor=apple + ;; + *-hms*) + vendor=hitachi + ;; + *-mpw* | *-macos*) + vendor=apple + ;; + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; + *-vos*) + vendor=stratus + ;; + esac + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/configure b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/configure new file mode 100755 index 0000000000..4fb6d6b7ce --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/configure @@ -0,0 +1,5224 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.71. +# +# +# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else $as_nop + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. +as_nl=' +' +export as_nl +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi +if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi + +# The user is always right. +if ${PATH_SEPARATOR+false} :; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="as_nop=: +if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else \$as_nop + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ) +then : + +else \$as_nop + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +blah=\$(echo \$(echo blah)) +test x\"\$blah\" = xblah || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" + if (eval "$as_required") 2>/dev/null +then : + as_have_required=yes +else $as_nop + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null +then : + +else $as_nop + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$as_shell as_have_required=yes + if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null +then : + break 2 +fi +fi + done;; + esac + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi +fi + + + if test "x$CONFIG_SHELL" != x +then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno +then : + printf "%s\n" "$0: This script requires a shell more modern than all" + printf "%s\n" "$0: the shells that I found on your system." + if test ${ZSH_VERSION+y} ; then + printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" + printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." + else + printf "%s\n" "$0: Please tell bug-autoconf@gnu.org about your system, +$0: including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else $as_nop + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else $as_nop + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + printf "%s\n" "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +test -n "$DJDIR" || exec 7<&0 </dev/null +exec 6>&1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='' +PACKAGE_TARNAME='' +PACKAGE_VERSION='' +PACKAGE_STRING='' +PACKAGE_BUGREPORT='' +PACKAGE_URL='' + +ac_unique_file="hbf.h" +# Factoring default headers for most tests. +ac_includes_default="\ +#include <stddef.h> +#ifdef HAVE_STDIO_H +# include <stdio.h> +#endif +#ifdef HAVE_STDLIB_H +# include <stdlib.h> +#endif +#ifdef HAVE_STRING_H +# include <string.h> +#endif +#ifdef HAVE_INTTYPES_H +# include <inttypes.h> +#endif +#ifdef HAVE_STDINT_H +# include <stdint.h> +#endif +#ifdef HAVE_STRINGS_H +# include <strings.h> +#endif +#ifdef HAVE_SYS_TYPES_H +# include <sys/types.h> +#endif +#ifdef HAVE_SYS_STAT_H +# include <sys/stat.h> +#endif +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif" + +ac_header_c_list= +ac_func_c_list= +ac_subst_vars='LTLIBOBJS +LIBOBJS +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +RM +no_strdup +XX_CFLAGS +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +target_os +target_vendor +target_cpu +target +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +runstatedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +with_kpathsea_include +with_kpathsea_lib +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir runstatedir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures this package to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] + --target=TARGET configure for building compilers for TARGET [HOST] +_ACEOF +fi + +if test -n "$ac_init_help"; then + + cat <<\_ACEOF + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-kpathsea-include=DIR + location of the kpathsea include dir + --with-kpathsea-lib=DIR + location of the kpathsea lib dir + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a + nonstandard directory <lib dir> + LIBS libraries to pass to the linker, e.g. -l<library> + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if + you have headers in a nonstandard directory <include dir> + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to the package provider. +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for configure.gnu first; this name is used for a wrapper for + # Metaconfig's "Configure" on case-insensitive file systems. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +configure +generated by GNU Autoconf 2.71 + +Copyright (C) 2021 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest.beam + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + } +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$3=yes" +else $as_nop + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case <limits.h> declares $2. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. */ + +#include <limits.h> +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main (void) +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "$3=yes" +else $as_nop + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func +ac_configure_args_raw= +for ac_arg +do + case $ac_arg in + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_configure_args_raw " '$ac_arg'" +done + +case $ac_configure_args_raw in + *$as_nl*) + ac_safe_unquote= ;; + *) + ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. + ac_unsafe_a="$ac_unsafe_z#~" + ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" + ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; +esac + +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by $as_me, which was +generated by GNU Autoconf 2.71. Invocation command line was + + $ $0$ac_configure_args_raw + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + printf "%s\n" "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Sanitize IFS. + IFS=" "" $as_nl" + # Save into config.log some information that might help in debugging. + { + echo + + printf "%s\n" "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + printf "%s\n" "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + printf "%s\n" "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + printf "%s\n" "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + printf "%s\n" "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + printf "%s\n" "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + printf "%s\n" "$as_me: caught signal $ac_signal" + printf "%s\n" "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +printf "%s\n" "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +if test -n "$CONFIG_SITE"; then + ac_site_files="$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + ac_site_files="$prefix/share/config.site $prefix/etc/config.site" +else + ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" +fi + +for ac_site_file in $ac_site_files +do + case $ac_site_file in #( + */*) : + ;; #( + *) : + ac_site_file=./$ac_site_file ;; +esac + if test -f "$ac_site_file" && test -r "$ac_site_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +printf "%s\n" "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +printf "%s\n" "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Test code for whether the C compiler supports C89 (global declarations) +ac_c_conftest_c89_globals=' +/* Does the compiler advertise C89 conformance? + Do not test the value of __STDC__, because some compilers set it to 0 + while being otherwise adequately conformant. */ +#if !defined __STDC__ +# error "Compiler does not advertise C89 conformance" +#endif + +#include <stddef.h> +#include <stdarg.h> +struct stat; +/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ +struct buf { int x; }; +struct buf * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not \xHH hex character constants. + These do not provoke an error unfortunately, instead are silently treated + as an "x". The following induces an error, until -std is added to get + proper ANSI mode. Curiously \x00 != x always comes out true, for an + array size at least. It is necessary to write \x00 == 0 to get something + that is true only with -std. */ +int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) '\''x'\'' +int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), + int, int);' + +# Test code for whether the C compiler supports C89 (body of main). +ac_c_conftest_c89_main=' +ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); +' + +# Test code for whether the C compiler supports C99 (global declarations) +ac_c_conftest_c99_globals=' +// Does the compiler advertise C99 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L +# error "Compiler does not advertise C99 conformance" +#endif + +#include <stdbool.h> +extern int puts (const char *); +extern int printf (const char *, ...); +extern int dprintf (int, const char *, ...); +extern void *malloc (size_t); + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +// dprintf is used instead of fprintf to avoid needing to declare +// FILE and stderr. +#define debug(...) dprintf (2, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + #error "your preprocessor is broken" +#endif +#if BIG_OK +#else + #error "your preprocessor is broken" +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case '\''s'\'': // string + str = va_arg (args_copy, const char *); + break; + case '\''d'\'': // int + number = va_arg (args_copy, int); + break; + case '\''f'\'': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +' + +# Test code for whether the C compiler supports C99 (body of main). +ac_c_conftest_c99_main=' + // Check bool. + _Bool success = false; + success |= (argc != 0); + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[0] = argv[0][0]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' + || dynamic_array[ni.number - 1] != 543); +' + +# Test code for whether the C compiler supports C11 (global declarations) +ac_c_conftest_c11_globals=' +// Does the compiler advertise C11 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L +# error "Compiler does not advertise C11 conformance" +#endif + +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; +' + +# Test code for whether the C compiler supports C11 (body of main). +ac_c_conftest_c11_main=' + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); + v1.i = 2; + v1.w.k = 5; + ok |= v1.i != 5; +' + +# Test code for whether the C compiler supports C11 (complete). +ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} +${ac_c_conftest_c11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + ${ac_c_conftest_c11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C99 (complete). +ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + return ok; +} +" + +# Test code for whether the C compiler supports C89 (complete). +ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + return ok; +} +" + +as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" +as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" +as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" +as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" +as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" +as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" +as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" +as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" +as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" +as_fn_append ac_func_c_list " vprintf HAVE_VPRINTF" + +# Auxiliary files required by this configure script. +ac_aux_files="install-sh config.guess config.sub" + +# Locations in which to look for auxiliary files. +ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.." + +# Search for a directory containing all of the required auxiliary files, +# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. +# If we don't find one directory that contains all the files we need, +# we report the set of missing files from the *first* directory in +# $ac_aux_dir_candidates and give up. +ac_missing_aux_files="" +ac_first_candidate=: +printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in $ac_aux_dir_candidates +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + + printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 + ac_aux_dir_found=yes + ac_install_sh= + for ac_aux in $ac_aux_files + do + # As a special case, if "install-sh" is required, that requirement + # can be satisfied by any of "install-sh", "install.sh", or "shtool", + # and $ac_install_sh is set appropriately for whichever one is found. + if test x"$ac_aux" = x"install-sh" + then + if test -f "${as_dir}install-sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 + ac_install_sh="${as_dir}install-sh -c" + elif test -f "${as_dir}install.sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 + ac_install_sh="${as_dir}install.sh -c" + elif test -f "${as_dir}shtool"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 + ac_install_sh="${as_dir}shtool install -c" + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} install-sh" + else + break + fi + fi + else + if test -f "${as_dir}${ac_aux}"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" + else + break + fi + fi + fi + done + if test "$ac_aux_dir_found" = yes; then + ac_aux_dir="$as_dir" + break + fi + ac_first_candidate=false + + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 +fi + + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +if test -f "${ac_aux_dir}config.guess"; then + ac_config_guess="$SHELL ${ac_aux_dir}config.guess" +fi +if test -f "${ac_aux_dir}config.sub"; then + ac_config_sub="$SHELL ${ac_aux_dir}config.sub" +fi +if test -f "$ac_aux_dir/configure"; then + ac_configure="$SHELL ${ac_aux_dir}configure" +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' + and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + + + + # Make sure we can run config.sub. +$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5 + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +printf %s "checking build system type... " >&6; } +if test ${ac_cv_build+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +printf "%s\n" "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +printf %s "checking host system type... " >&6; } +if test ${ac_cv_host+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +printf "%s\n" "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 +printf %s "checking target system type... " >&6; } +if test ${ac_cv_target+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "x$target_alias" = x; then + ac_cv_target=$ac_cv_host +else + ac_cv_target=`$SHELL "${ac_aux_dir}config.sub" $target_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $target_alias failed" "$LINENO" 5 +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 +printf "%s\n" "$ac_cv_target" >&6; } +case $ac_cv_target in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; +esac +target=$ac_cv_target +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_target +shift +target_cpu=$1 +target_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +target_os=$* +IFS=$ac_save_IFS +case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac + + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +test -n "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + + + + + + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +fi + + +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion -version; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +printf %s "checking whether the C compiler works... " >&6; } +ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else $as_nop + ac_file='' +fi +if test -z "$ac_file" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +printf %s "checking for C compiler default output file name... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +printf "%s\n" "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +printf %s "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +printf "%s\n" "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdio.h> +int +main (void) +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +printf %s "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +printf "%s\n" "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +printf %s "checking for suffix of object files... " >&6; } +if test ${ac_cv_objext+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +printf "%s\n" "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_compiler_gnu=yes +else $as_nop + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+y} +ac_save_CFLAGS=$CFLAGS +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_g=yes +else $as_nop + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c11=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 +fi +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + +# Check whether --with-kpathsea-include was given. +if test ${with_kpathsea_include+y} +then : + withval=$with_kpathsea_include; + if test x$withval = xyes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Usage is: --with-kpathsea-include=includedir" >&5 +printf "%s\n" "$as_me: WARNING: Usage is: --with-kpathsea-include=includedir" >&2;} + else + if test x$withval = xno; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Usage is: --with-kpathsea-include=includedir" >&5 +printf "%s\n" "$as_me: WARNING: Usage is: --with-kpathsea-include=includedir" >&2;} + else + kpathsea_include=$withval + fi + fi + +fi + + + + +# Check whether --with-kpathsea-lib was given. +if test ${with_kpathsea_lib+y} +then : + withval=$with_kpathsea_lib; + if test x$withval = xyes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Usage is: --with-kpathsea-lib=libdir" >&5 +printf "%s\n" "$as_me: WARNING: Usage is: --with-kpathsea-lib=libdir" >&2;} + else + if test x$withval = xno; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Usage is: --with-kpathsea-lib=libdir" >&5 +printf "%s\n" "$as_me: WARNING: Usage is: --with-kpathsea-lib=libdir" >&2;} + else + kpathsea_lib=$withval + fi + fi + +fi + + + +if test -n "$kpathsea_include" -o -n "$kpathsea_lib"; then + LIBS="$LIBS -L$kpathsea_lib" + CPPFLAGS="$CPPFLAGS -I$kpathsea_include -I$srcdir" + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for kpse_set_program_name in -lkpathsea" >&5 +printf %s "checking for kpse_set_program_name in -lkpathsea... " >&6; } +if test ${ac_cv_lib_kpathsea_kpse_set_program_name+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lkpathsea $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char kpse_set_program_name (); +int +main (void) +{ +return kpse_set_program_name (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_kpathsea_kpse_set_program_name=yes +else $as_nop + ac_cv_lib_kpathsea_kpse_set_program_name=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_kpathsea_kpse_set_program_name" >&5 +printf "%s\n" "$ac_cv_lib_kpathsea_kpse_set_program_name" >&6; } +if test "x$ac_cv_lib_kpathsea_kpse_set_program_name" = xyes +then : + printf "%s\n" "#define HAVE_LIBKPATHSEA 1" >>confdefs.h + + LIBS="-lkpathsea $LIBS" + +else $as_nop + printf "%s\n" "#define OLD_KPATHSEA 1" >>confdefs.h + +fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for kpse_init_prog in -lkpathsea" >&5 +printf %s "checking for kpse_init_prog in -lkpathsea... " >&6; } +if test ${ac_cv_lib_kpathsea_kpse_init_prog+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lkpathsea $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char kpse_init_prog (); +int +main (void) +{ +return kpse_init_prog (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_kpathsea_kpse_init_prog=yes +else $as_nop + ac_cv_lib_kpathsea_kpse_init_prog=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_kpathsea_kpse_init_prog" >&5 +printf "%s\n" "$ac_cv_lib_kpathsea_kpse_init_prog" >&6; } +if test "x$ac_cv_lib_kpathsea_kpse_init_prog" = xyes +then : + printf "%s\n" "#define HAVE_LIBKPATHSEA 1" >>confdefs.h + + LIBS="-lkpathsea $LIBS" + +else $as_nop + + as_fn_error $? "Can't find kpathsea library! Use --with-kpathsea-lib option." "$LINENO" 5 +fi + + + ac_header= ac_cache= +for ac_item in $ac_header_c_list +do + if test $ac_cache; then + ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" + if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then + printf "%s\n" "#define $ac_item 1" >> confdefs.h + fi + ac_header= ac_cache= + elif test $ac_header; then + ac_cache=$ac_item + else + ac_header=$ac_item + fi +done + + + + + + + + +if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes +then : + +printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "kpathsea/kpathsea.h" "ac_cv_header_kpathsea_kpathsea_h" "$ac_includes_default" +if test "x$ac_cv_header_kpathsea_kpathsea_h" = xyes +then : + +else $as_nop + printf "%s\n" "#define VERY_OLD_KPATHSEA 1" >>confdefs.h + +fi + + + ac_fn_c_check_header_compile "$LINENO" "kpathsea/c-auto.h" "ac_cv_header_kpathsea_c_auto_h" "$ac_includes_default" +if test "x$ac_cv_header_kpathsea_c_auto_h" = xyes +then : + +else $as_nop + + as_fn_error $? "Can't find kpathsea include files! Use --with-kpathsea-include option." "$LINENO" 5 +fi + +else + CPPFLAGS="$CPPFLAGS -I$srcdir" +fi + + +if test "x$CC" = xgcc; then + XX_CFLAGS="-Wall" +else + case "$host" in + alpha-dec-osf*) + XX_CFLAGS="-std1 -O2 -g3" + ;; + *) + XX_CFLAGS= + ;; + esac +fi + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +printf %s "checking for an ANSI C-conforming const... " >&6; } +if test ${ac_cv_c_const+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + +#ifndef __cplusplus + /* Ultrix mips cc rejects this sort of thing. */ + typedef int charset[2]; + const charset cs = { 0, 0 }; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* IBM XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this sort of thing. */ + char tx; + char *t = &tx; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; } bx; + struct s *b = &bx; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_const=yes +else $as_nop + ac_cv_c_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +printf "%s\n" "$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then + +printf "%s\n" "#define const /**/" >>confdefs.h + +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 +printf %s "checking whether struct tm is in sys/time.h or time.h... " >&6; } +if test ${ac_cv_struct_tm+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> +#include <time.h> + +int +main (void) +{ +struct tm tm; + int *p = &tm.tm_sec; + return !p; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_struct_tm=time.h +else $as_nop + ac_cv_struct_tm=sys/time.h +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 +printf "%s\n" "$ac_cv_struct_tm" >&6; } +if test $ac_cv_struct_tm = sys/time.h; then + +printf "%s\n" "#define TM_IN_SYS_TIME 1" >>confdefs.h + +fi + + + +ac_func= +for ac_item in $ac_func_c_list +do + if test $ac_func; then + ac_fn_c_check_func "$LINENO" $ac_func ac_cv_func_$ac_func + if eval test \"x\$ac_cv_func_$ac_func\" = xyes; then + echo "#define $ac_item 1" >> confdefs.h + fi + ac_func= + else + ac_func=$ac_item + fi +done + +if test "x$ac_cv_func_vprintf" = xno +then : + ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" +if test "x$ac_cv_func__doprnt" = xyes +then : + +printf "%s\n" "#define HAVE_DOPRNT 1" >>confdefs.h + +fi + +fi +ac_fn_c_check_func "$LINENO" "strdup" "ac_cv_func_strdup" +if test "x$ac_cv_func_strdup" = xyes +then : + printf "%s\n" "#define HAVE_STRDUP 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "strstr" "ac_cv_func_strstr" +if test "x$ac_cv_func_strstr" = xyes +then : + printf "%s\n" "#define HAVE_STRSTR 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol" +if test "x$ac_cv_func_strtol" = xyes +then : + printf "%s\n" "#define HAVE_STRTOL 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "strtoul" "ac_cv_func_strtoul" +if test "x$ac_cv_func_strtoul" = xyes +then : + printf "%s\n" "#define HAVE_STRTOUL 1" >>confdefs.h + +fi + + +if test "x$ac_cv_func_strdup" = xno; then + no_strdup=-DNO_STRDUP +fi + + +# Extract the first word of "rm", so it can be a program name with args. +set dummy rm; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RM+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$RM"; then + ac_cv_prog_RM="$RM" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_RM="rm" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RM=$ac_cv_prog_RM +if test -n "$RM"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RM" >&5 +printf "%s\n" "$RM" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + + # Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +printf %s "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if test ${ac_cv_path_install+y} +then : + printf %s "(cached) " >&6 +else $as_nop + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + # Account for fact that we put trailing slashes in our PATH walk. +case $as_dir in #(( + ./ | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test ${ac_cv_path_install+y}; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +printf "%s\n" "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +if test -z "$kpathsea_include" -a -z "$kpathsea_lib"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: + + hbf2gf will be compiled without file search library support! + For kpathsea support use the --with-kpathsea-lib and + --with-kpathsea-include options. + " >&5 +printf "%s\n" "$as_me: WARNING: + + hbf2gf will be compiled without file search library support! + For kpathsea support use the --with-kpathsea-lib and + --with-kpathsea-include options. + " >&2;} +fi + +ac_config_files="$ac_config_files Makefile" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +printf "%s\n" "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +# +# If the first sed substitution is executed (which looks for macros that +# take arguments), then branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +ac_script=' +:mline +/\\$/{ + N + s,\\\n,, + b mline +} +t clear +:clear +s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g +t quote +s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g +t quote +b any +:quote +s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g +s/\[/\\&/g +s/\]/\\&/g +s/\$/$$/g +H +:any +${ + g + s/^\n// + s/\n/ /g + p +} +' +DEFS=`sed -n "$ac_script" confdefs.h` + + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else $as_nop + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. +as_nl=' +' +export as_nl +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi +if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi + +# The user is always right. +if ${PATH_SEPARATOR+false} :; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + printf "%s\n" "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else $as_nop + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else $as_nop + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by $as_me, which was +generated by GNU Autoconf 2.71. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + +Configuration files: +$config_files + +Report bugs to the package provider." + +_ACEOF +ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` +ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config='$ac_cs_config_escaped' +ac_cs_version="\\ +config.status +configured by $0, generated by GNU Autoconf 2.71, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2021 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + printf "%s\n" "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + printf "%s\n" "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h | --help | --hel | -h ) + printf "%s\n" "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + printf "%s\n" "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' <conf$$subs.awk | sed ' +/^[^""]/{ + N + s/\n// +} +' >>$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + + +eval set X " :F $CONFIG_FILES " +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf "%s\n" "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`printf "%s\n" "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + + + + esac + +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/configure.ac b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/configure.ac new file mode 100644 index 0000000000..2fb3878516 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/configure.ac @@ -0,0 +1,128 @@ +dnl This file is part of the CJK package ver. 4.8.5 + +dnl Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> + +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. + +dnl You should have received a copy of the GNU General Public License +dnl along with this program in doc/COPYING; if not, write to the Free +dnl Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +dnl MA 02110-1301 USA + +dnl Process this file with autoconf to produce a configure script. +AC_INIT +AC_CONFIG_SRCDIR([hbf.h]) + + +dnl check host +AC_CANONICAL_TARGET([]) + + +dnl Checks for programs. +AC_PROG_CC + + +AC_ARG_WITH(kpathsea-include, + [ --with-kpathsea-include=DIR + location of the kpathsea include dir],[ + if test x$withval = xyes; then + AC_MSG_WARN(Usage is: --with-kpathsea-include=includedir) + else + if test x$withval = xno; then + AC_MSG_WARN(Usage is: --with-kpathsea-include=includedir) + else + kpathsea_include=$withval + fi + fi +]) + + +dnl Checks for libraries. +AC_ARG_WITH(kpathsea-lib, + [ --with-kpathsea-lib=DIR + location of the kpathsea lib dir],[ + if test x$withval = xyes; then + AC_MSG_WARN(Usage is: --with-kpathsea-lib=libdir) + else + if test x$withval = xno; then + AC_MSG_WARN(Usage is: --with-kpathsea-lib=libdir) + else + kpathsea_lib=$withval + fi + fi +]) + + +if test -n "$kpathsea_include" -o -n "$kpathsea_lib"; then + LIBS="$LIBS -L$kpathsea_lib" + CPPFLAGS="$CPPFLAGS -I$kpathsea_include -I$srcdir" + + dnl the function kpse_set_program_name() is available since kpathsea 3.2 + AC_CHECK_LIB(kpathsea, kpse_set_program_name, , AC_DEFINE(OLD_KPATHSEA)) + + AC_CHECK_LIB(kpathsea, kpse_init_prog, ,[ + AC_MSG_ERROR([Can't find kpathsea library! Use --with-kpathsea-lib option.])]) + + dnl the header file kpathsea.h doesn't exist in kpathsea 2.6 and before + AC_CHECK_HEADER(kpathsea/kpathsea.h, , AC_DEFINE(VERY_OLD_KPATHSEA)) + + AC_CHECK_HEADER(kpathsea/c-auto.h, ,[ + AC_MSG_ERROR([Can't find kpathsea include files! Use --with-kpathsea-include option.])]) +else + CPPFLAGS="$CPPFLAGS -I$srcdir" +fi + + +dnl Get compiler flags right. +if test "x$CC" = xgcc; then + XX_CFLAGS="-Wall" +else + case "$host" in + alpha-dec-osf*) + XX_CFLAGS="-std1 -O2 -g3" + ;; + *) + XX_CFLAGS= + ;; + esac +fi +AC_SUBST(XX_CFLAGS) + + +dnl Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_STRUCT_TM + + +dnl Checks for library functions. +AC_FUNC_VPRINTF +AC_CHECK_FUNCS(strdup strstr strtol strtoul) + +dnl we need this for hbf.c +if test "x$ac_cv_func_strdup" = xno; then + no_strdup=-DNO_STRDUP +fi +AC_SUBST(no_strdup) + +AC_CHECK_PROG(RM, rm, rm) +AC_PROG_INSTALL + +if test -z "$kpathsea_include" -a -z "$kpathsea_lib"; then + AC_MSG_WARN([ + + hbf2gf will be compiled without file search library support! + For kpathsea support use the --with-kpathsea-lib and + --with-kpathsea-include options. + ]) +fi + +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/dvidrv.btm b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/dvidrv.btm new file mode 100644 index 0000000000..9b43c09100 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/dvidrv.btm @@ -0,0 +1,352 @@ +setdos /y1 +:: +:: Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +:: +:: This program is free software; you can redistribute it and/or modify +:: it under the terms of the GNU General Public License as published by +:: the Free Software Foundation; either version 2 of the License, or +:: (at your option) any later version. +:: +:: This program is distributed in the hope that it will be useful, +:: but WITHOUT ANY WARRANTY; without even the implied warranty of +:: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +:: GNU General Public License for more details. +:: +:: You should have received a copy of the GNU General Public License +:: along with this program in doc/COPYING; if not, write to the Free +:: Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +:: MA 02110-1301 USA +:: +:: +:: This is dvidrv.btm, a batch file for 4DOS/4OS2 written by +:: Werner Lemberg <wl@gnu.org> partially based on the +:: dvidrv.btm file of the 4allTeX package written by Phons Bloemen. +:: +:: It is a replacement for dvidrv.exe of the emTeX package. +:: +:: Additional features: support of ps2pk +:: support of ttf2pk +:: support of hbf2gf for HBFs (Hanzi bitmap fonts) +:: +:: Only quadratic printer modes are supported for ttf2pk! +:: +:: All needed binaries will be searched in the path. + +iff %# lt 2 then + echo `` + echo Usage: %0 dvi-driver dvi-file [parameters] + quit +endiff + +setlocal + :: we set a default value only if the corresponding environment variable + :: is empty. The `=' must follow the variable name immediately. + alias set_def `iff "%[%@word["=",0,%1]]" eq "" then %+ set %& %+ endiff` + + :: ========================================= + :: ======== User defined variables. ======== + :: ========================================= + :: + :: Can be overridden in the environment (except %ps2pk, %ttf2pk, %hbf2gf, + :: %pre_dpi, and %post_dpi). + + :: Comment out the programs you don't want to use. + set ps2pk=yes + set ttf2pk=yes + set hbf2gf=yes + + :: where the PK files will be installed created by ps2pk, ttf2pk, and + :: hbf2gf. + :: dvidrv.btm adds `\modeless\XXXdpi' to this string (see below for the + :: exact string). + set_def pkdir=%emtexdir\pixel\tmp\pk + + :: where the TrueType fonts reside. + set_def ttfonts=%emtexdir\fonts\truetype + :: where auxiliary files of ttf2pk are located. + set_def ttfcfg=%emtexdir\ttf2pk + + :: where the HBF files reside. + set_def hbfonts=%emtexdir\fonts\hbf + :: where the hbf2gf config files are. + set_def hbfcfg=%emtexdir\hbf2gf + + :: the dpi-subdirectory has various forms; the most common are XXXdpi and + :: dpiXXX, e.g. 300dpi and dpi300. Here we define two variables which + :: control this behaviour. + :: [dpiXXX is used for TDS compatible TeX trees.] + set pre_dpi=dpi + set post_dpi= + + :: ================================================ + :: ======== End of user defined variables. ======== + :: ================================================ + + :: the base name for log files etc. + set basename=%@name[%1] + + :: do we run dvips? + iff "%basename" ne "dvips" then + goto nodvips1 + endiff + + :: we delete dvips.mfj if it exists. + del dvips.mfj >& nul + + :: now we run dvips with all supplied parameters. + %& + + :: do we have to generate fonts? + iff exist dvips.mfj then + goto generate_fonts + endiff + + :: else all is done. + goto end + + +:nodvips1 + :: here we call the dvi driver with all supplied parameters. + %& -pj:%basename.mfj + + :: do we have to generate fonts? + iff errorlevel 8 then + goto generate_fonts + endiff + + :: else all is done. + goto end + + +:generate_fonts + gosub call_mfjob + + :: do we run dvips? + iff "%basename" ne "dvips" then + goto nodvips2 + endiff + + :: we now call dvips a second time + %& + + :: since no fonts will be generated in the second run we remove dvips.mfj + del dvips.mfj >& nul + + goto end + + +:nodvips2 + :: we call the dvi driver a second time (without font generation). + %& -pj -fm + + del %basename.mfj >& nul + + goto end + + +:: this is the main subroutine which calls mfjob and then parses the mfjob +:: file for fonts which can be handled by ps2pk, ttf2pk, or hbf2gf. +:call_mfjob + :: this alias prints a message on the screen and writes it into the logfile. + alias echolog=`echo %& | tee /a %basename.mlg` + + echo ======== DVIDRV.BTM logfile ======== > %basename.mlg + echo Commandline: dvidrv.btm %& >> %basename.mlg + echo `` >> %basename.mlg + echo basename=%basename >> %basename.mlg + echo emtexdir=%emtexdir >> %basename.mlg + echo dvidrvfonts=%dvidrvfonts >> %basename.mlg + echo mfinput=%mfinput >> %basename.mlg + echo mfjobopt=%mfjobopt >> %basename.mlg + echo textfm=%textfm >> %basename.mlg + echo psfonts=%psfonts >> %basename.mlg + echo ttfonts=%ttfonts >> %basename.mlg + echo ttfcfg=%ttfcfg >> %basename.mlg + echo hbfonts=%hbfonts >> %basename.mlg + echo hbfcfg=%hbfcfg >> %basename.mlg + echo `` >> %basename.mlg + + iff "%@search[mfjob]" eq "" then + echolog MFJOB not found in the path. + echolog Can't generate PK fonts from METAFONT automatically. + echo `` + quit + endiff + + :: now we call mfjob. + echolog mfjob %mfjobopt -g%basename.mfl %basename.mfj + mfjob %mfjobopt -g%basename.mfl %basename.mfj + iff %? gt 0 then + echolog `` + echolog Something went wrong while running METAFONT. + echolog Look into the log files... + echolog `` + endiff + + :: after running mfjob we scan the mfjob input file for fonts which can + :: be handled by ps2pk, ttf2pk or hbf2gf. + set lnnr=0 + set totlines=%@lines[%basename.mfj] + + do while %lnnr le %totlines + :: input a line. + set scratch=%@line[%basename.mfj,%lnnr] + set lnnr=%@inc[%lnnr] + + :: get resolutions (METAFONT mode will be ignored). + :: example: + :: mode=lqlores[180 180]; + iff %@index[%scratch,mode] ge 0 then + set temp=%@word["[]",1,%scratch] + set xdpi=%@word[0,%temp] + set ydpi=%@word[1,%temp] + endiff + + :: get fontname and magnification; we then compute the font resolutions + :: (rounded to the nearest integer---there is no necessity to adjust + :: these values further because of possible rounding errors since both + :: emTeX's dvi drivers and dvips check neighbored values too). + :: example: + :: {font=cmr10; mag=0.5;} + iff %@index[%scratch,{font] ge 0 then + set testfont=%@word["=;",1,%scratch] + set temp=%@word["=;",3,%scratch] + :: we use highest arithmetic precision for these calculations. + :: Additionally we write 1/2 instead of 0.5 to avoid problems with + :: countries which use a comma instead of a colon as the decimal + :: separator. + set fontresx=%@int[%@eval[%xdpi*%temp+1/2=8]] + set fontresy=%@int[%@eval[%ydpi*%temp+1/2=8]] + set pksubdir=modeless\%[pre_dpi]%[fontresx]%post_dpi + + set success=0 + + :: check whether %testfont leads to a PS font (we call ps2pkmfj). + iff %success == 0 .and. "%ps2pk" ne "" then + gosub call_ps2pk + endiff + + :: check whether %testfont leads to a TrueType font. + iff %success == 0 .and. "%ttf2pk" ne "" then + gosub call_ttf2pk + endiff + + :: check whether %testfont leads to a HBF file. + iff %success == 0 .and. "%hbf2gf" ne "" then + gosub call_hbf2gf + endiff + endiff + enddo + + iff exist %basename.mfp then + echo `` >> %basename.mlg + echo `` >> %basename.mlg + echo ======== PS2PK logfile ======== >> %basename.mlg + echo `` >> %basename.mlg + type %basename.mfp >> %basename.mlg + echo `` >> %basename.mlg + del %basename.mfp >& nul + endiff + + iff exist %basename.mfl then + echo `` >> %basename.mlg + type %basename.mfl >> %basename.mlg + echo `` >> %basename.mlg + del %basename.mfl >& nul + endiff + + return + + +:call_ttf2pk + iff "%@search[ttf2pk]" eq "" then + echolog TTF2PK not found in the path. + echolog Can't generate PK fonts from TrueType fonts automatically. + echo `` + quit + endiff + + echolog ttf2pk -q -n %testfont %fontresx + ttf2pk -q -n %testfont %fontresx + + iff %? == 0 then + echolog Font %pkdir\%pksubdir\%testfont.pk generated. + mkdir /s %pkdir\%pksubdir >& nul + move %testfont.pk %pkdir\%pksubdir >& nul + set success=1 + elseiff %? == 2 then + echolog (%lnnr/%totlines): Font %testfont is no TrueType font. + set success=0 + else + echolog Error running TTF2PK for font %testfont! + endiff + + return + + +:call_hbf2gf + iff "%@search[hbf2gf]" eq "" then + echolog HBF2GF not found in the path. + echolog Can't generate PK fonts from HBF files automatically. + echo `` + quit + endiff + + echolog hbf2gf -q -p -n %testfont %fontresx %fontresy + hbf2gf -q -p -n %testfont %fontresx %fontresy + + iff %? == 0 then + echolog Font %pkdir\%pksubdir\%testfont.pk generated. + mkdir /s %pkdir\%pksubdir >& nul + gftopk %testfont.gf %testfont.pk + move %testfont.pk %pkdir\%pksubdir >& nul + del %testfont.gf >& nul + set success=1 + elseiff %? == 2 then + echolog (%lnnr/%totlines): Font %testfont is no HBF. + set success=0 + else + echolog Error running HBF2GF for font %testfont! + endiff + + return + + +:call_ps2pk + iff not exist %pkdir\%pksubdir\%testfont.pk then + iff "%@search[ps2pkmfj]" eq "" .or. "%@search[ps2pk]" eq "" then + echolog PS2PKMFJ and/or PS2PK not found in the path. + echolog Can't generate PK fonts from PostScript fonts automatically. + echo `` + quit + endiff + + echolog ps2pkmfj -X%fontresx -Y%fontresy %testfont %testfont.pk + ps2pkmfj -X%fontresx -Y%fontresy %testfont %testfont.pk | input %%pspkline + + iff errorlevel != 1 then + %pspkline >> %basename.mfp + iff %? == 0 then + echolog Font %pkdir\%pksubdir\%testfont.pk generated. + mkdir /s %pkdir\%pksubdir >& nul + move %testfont.pk %pkdir\%pksubdir >& nul + success=1 + else + echolog Error running PS2PK for font %testfont! + endiff + else + echolog (%lnnr/%totlines): Font %testfont is no PS font. + success=0 + endiff + else + echolog Font %pkdir\%pksubdir\%testfont.pk already exists. + endiff + + return + + +:end + +endlocal + +:: ==== end of dvidrv.btm ==== diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/emdir.c b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/emdir.c new file mode 100644 index 0000000000..4e759c83eb --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/emdir.c @@ -0,0 +1,109 @@ +/* emdir.c -- Written by Eberhard Mattes, donated to the public domain */ + +#include "emdir.h" + +#ifdef OS2 + +#undef HPS +#define INCL_DOSFILEMGR +#include <os2.h> +#include <string.h> + +#define FHDIR(b) (*(HDIR *)(b)->reserved) + +static void fconv (struct ll_findbuffer *dst, const FILEFINDBUF *src) +{ + dst->attr = src->attrFile; + dst->time = *(unsigned *)&src->ftimeLastWrite; + dst->date = *(unsigned *)&src->fdateLastWrite; + dst->size = src->cbFile; + strcpy (dst->name, src->achName); +} + + +int ll_findfirst (const char *path, int attr, struct ll_findbuffer *buffer) +{ + USHORT rc; + ULONG count; + HDIR hdir; + FILEFINDBUF ffbuf; + + hdir = HDIR_CREATE; + count = 1; + rc = DosFindFirst ((PSZ)path, &hdir, attr, &ffbuf, sizeof (ffbuf), + &count, 0L); + if (rc != 0 || count != 1) + return 0; + FHDIR (buffer) = hdir; + fconv (buffer, &ffbuf); + return 1; +} + + +int ll_findnext (struct ll_findbuffer *buffer) +{ + USHORT rc; + ULONG count; + HDIR hdir; + FILEFINDBUF ffbuf; + + hdir = FHDIR (buffer); + count = 1; + rc = DosFindNext (hdir, &ffbuf, sizeof (ffbuf), &count); + if (rc != 0 || count != 1) + { + DosFindClose (hdir); + return 0; + } + fconv (buffer, &ffbuf); + return 1; +} + + +#elif defined(DJGPP) + +/* djgpp support by Hartmut Schirmer (hsc@techfak.uni-kiel.de), May 30, 1997 */ + +#include <dos.h> +#include <dir.h> + +static int ll_attr = 0; +int ll_findnext (struct ll_findbuffer *buffer) +{ + int res; + do { + res = _dos_findnext ((struct find_t *)buffer); + if (res != 0) return 0; + } while ( (buffer->attrib&ll_attr) == 0); + return 1; +} + +int ll_findfirst (const char *path, int attr, struct ll_findbuffer *buffer) +{ + int res; + ll_attr = attr; + res = _dos_findfirst((char *)path, attr, (struct find_t *)buffer); + if (res != 0) return 0; + if ( (buffer->attrib&ll_attr) == 0) + return ll_findnext(buffer); + return 1; +} + +#elif !defined(__EMX__) /* if not OS2 nor DJGPP nor __EMX__ defined */ + +/* Not tested */ + +#include <dos.h> + +int ll_findfirst (const char *path, int attr, struct ll_findbuffer *buffer) +{ + return _dos_findfirst (path, attr, (struct find_t *)buffer) == 0; +} + + +int ll_findnext (struct ll_findbuffer *buffer) +{ + return _dos_findnext ((struct find_t *)buffer) == 0; +} + +#endif diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/emdir.h b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/emdir.h new file mode 100644 index 0000000000..0606d476ab --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/emdir.h @@ -0,0 +1,25 @@ +/* emdir.h -- Written by Eberhard Mattes, donated to the public domain */ + +#if defined(DJGPP) + +/* djgpp support by Hartmut Schirmer (hsc@techfak.uni-kiel.de), May 30, 1997 */ +#include <dos.h> +#define ll_findbuffer find_t +#define attr attrib + +#else + +struct ll_findbuffer +{ + char reserved[21]; + unsigned char attr; + unsigned time; + unsigned date; + long size; + char name[257]; +}; + +#endif + +int ll_findfirst (const char *path, int attr, struct ll_findbuffer *buffer); +int ll_findnext (struct ll_findbuffer *buffer); diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/emtexdir.c b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/emtexdir.c new file mode 100644 index 0000000000..9a35570adb --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/emtexdir.c @@ -0,0 +1,405 @@ +/* emtexdir.c -- written by Eberhard Mattes, donated to the public domain */ + +#if defined (__EMX__) +#include <emx/syscalls.h> +#else +#include "emdir.h" +#endif +#if defined(DJGPP) || defined(GO32) +#include <unistd.h> +#endif +#include <stdlib.h> +#include <string.h> +#include <fcntl.h> +#include <io.h> +#include "emtexdir.h" + +#define FALSE 0 +#define TRUE 1 + +void (*emtex_dir_find_callback)(const char *name, int ok) = NULL; + +static int setup_add (struct emtex_dir *dst, const char *path) +{ + char *p; + + if (dst->used >= dst->alloc) + { + dst->alloc += 8; + dst->list = realloc (dst->list, dst->alloc * sizeof (*dst->list)); + if (dst->list == NULL) + return (FALSE); + } + p = strdup (path); + if (p == NULL) + return (FALSE); + dst->list[dst->used++] = p; + return (TRUE); +} + + +static int setup_subdir (struct emtex_dir *dst, char *path, size_t add, + unsigned flags, int recurse) +{ + int ok, i, end, len; +#if defined (__EMX__) + struct _find find; +#else + struct ll_findbuffer find; +#endif + + i = dst->used; + strcpy (path + add, "*.*"); +#if defined (__EMX__) + ok = __findfirst (path, 0x10, &find) == 0; +#else + ok = ll_findfirst (path, 0x10, &find); +#endif + while (ok) + { + if ((find.attr & 0x10) + && !(strcmp (find.name, ".") == 0 || strcmp (find.name, "..") == 0)) + { + len = strlen (find.name); + memcpy (path + add, find.name, len); + path[add+len] = '\\'; + path[add+len+1] = 0; + if (!setup_add (dst, path)) + return (FALSE); + } +#if defined (__EMX__) + ok = __findnext (&find) == 0; +#else + ok = ll_findnext (&find); +#endif + } + if (recurse) + { + end = dst->used; + while (i < end) + { + strcpy (path, dst->list[i]); + if (!setup_subdir (dst, path, strlen (path), flags, TRUE)) + return (FALSE); + ++i; + } + } + return (TRUE); +} + + +static int setup_dir (struct emtex_dir *dst, char *path, + const char *base_dir, size_t base_dir_len, + const char *sub_dir, + unsigned flags) +{ + size_t i, len; + + memcpy (path, base_dir, base_dir_len); + i = base_dir_len; + if ((flags & EDS_BANG) && sub_dir == NULL) + { + flags &= ~(EDS_ONESUBDIR|EDS_ALLSUBDIR); + if (i >= 2 && path[i-1] == '!' && path[i-2] == '!') + { + flags |= EDS_ALLSUBDIR; + i -= 2; + } + else if (i >= 1 && path[i-1] == '!') + { + flags |= EDS_ONESUBDIR; + --i; + } + } + if (sub_dir != NULL && *sub_dir != 0) + { + if (i != 0 && path[i-1] != ':' && path[i-1] != '/' && path[i-1] != '\\') + path[i++] = '\\'; + len = strlen (sub_dir); + memcpy (path+i, sub_dir, len); + i += len; + } + if (path[i-1] != ':' && path[i-1] != '/' && path[i-1] != '\\') + path[i++] = '\\'; + path[i] = 0; + if (!setup_add (dst, path)) + return (FALSE); + if (flags & EDS_ALLSUBDIR) + return (setup_subdir (dst, path, i, flags, TRUE)); + else if (flags & EDS_ONESUBDIR) + return (setup_subdir (dst, path, i, flags, FALSE)); + else + return (TRUE); +} + + +/*static */int setup_list (struct emtex_dir *dst, char *path, + const char *list, unsigned flags) +{ + const char *end; + size_t i; + + for (;;) + { + while (*list == ' ' || *list == '\t') + ++list; + if (*list == 0) + return (TRUE); + end = list; + while (*end != 0 && *end != ';') + ++end; + i = end - list; + while (i > 0 && (list[i-1] == ' ' || list[i-1] == '\t')) + --i; + if (i != 0 && !setup_dir (dst, path, list, i, NULL, flags)) + return (FALSE); + if (*end == 0) + return (TRUE); + list = end + 1; + } +} + + +int emtex_dir_setup (struct emtex_dir *ed, const char *env, const char *dir, + unsigned flags) +{ + const char *val; + char path[260]; + + ed->alloc = 0; + ed->used = 0; + ed->list = NULL; + if (env != NULL && (val = getenv (env)) != NULL) + return (setup_list (ed, path, val, flags)); + else if ((val = getenv ("EMTEXDIR")) != NULL) + return (setup_dir (ed, path, val, strlen (val), dir, flags)); + else + return (setup_dir (ed, path, "\\emtex", 6, dir, flags)); +} + + +static void pretty (char *path, unsigned flags) +{ + char *p; + + if (flags & EDF_FSLASH) + for (p = path; *p != 0; ++p) + if (*p == '\\') + *p = '/'; +} + + +#define ADDCHAR(C) \ + if (dst_size < 1) return (EDT_TOOLONG); \ + *dst++ = (C); --dst_size + +int emtex_dir_trunc (char *dst, size_t dst_size, const char *src, + unsigned flags, int method) +{ + int len, truncated, dot; + + if (src[0] != 0 && src[1] == ':') + { + ADDCHAR (src[0]); + ADDCHAR (src[1]); + src += 2; + } + + truncated = FALSE; dot = FALSE; len = 0; + for (;;) + { + switch (*src) + { + case 0: + ADDCHAR (0); + return (truncated ? EDT_CHANGED : EDT_UNCHANGED); + + case ':': + return (EDT_INVALID); + + case '/': + case '\\': + ADDCHAR (*src); + len = 0; dot = FALSE; + break; + + case '.': + if (dot) + return (EDT_INVALID); + ADDCHAR (*src); + + /* ".." is allowed -- don't return EDT_INVALID for the next + dot. */ + + if (!(len == 0 && src[1] == '.' + && (src[2] == 0 || src[2] == '/' || src[2] == '\\'))) + { + len = 0; dot = TRUE; + } + break; + + default: + if (dot && len == 3) + truncated = TRUE; + else if (!dot && len == 8) + { + truncated = TRUE; + if (method == 0) + { + dst[-3] = dst[-2]; + dst[-2] = dst[-1]; + dst[-1] = *src; + } + } + else + { + ADDCHAR (*src); + ++len; + } + break; + } + ++src; + } +} + + +static int find2 (const char *name, unsigned flags) +{ + int ok; + + ok = (access (name, 4) == 0); + if (flags & EDF_TRACE) + emtex_dir_find_callback (name, ok); + return (ok); +} + + +static int find1 (char *path, size_t path_size, const char *dir, + const char *fname, unsigned flags) +{ + char buf[260]; + int method, rc; + size_t len, tmp; + + len = 0; + if (dir != NULL) + { + tmp = strlen (dir); + if (tmp >= sizeof (buf)) + return (FALSE); + memcpy (buf, dir, tmp); + len = tmp; + } + tmp = strlen (fname); + if (len + tmp >= sizeof (buf)) + return (FALSE); + memcpy (buf + len, fname, tmp + 1); + len += tmp; +#if 0 /* wkim */ +/* disabled for Win95's long file name support */ +/* -- Wonkoo Kim (wkim+@pitt.edu), May 18, 1997 */ + if (_osmode == DOS_MODE) + { + rc = emtex_dir_trunc (path, path_size, buf, flags, EDT_5_PLUS_3); + if ((rc == EDT_UNCHANGED || rc == EDT_CHANGED) && find2 (path, flags)) + { + pretty (path, flags); + return (TRUE); + } + rc = emtex_dir_trunc (path, path_size, buf, flags, EDT_8); + if (rc == EDT_CHANGED && find2 (path, flags)) + { + pretty (path, flags); + return (TRUE); + } + return (FALSE); + } + else +#endif /* wkim */ + { + if (len < path_size && find2 (buf, flags)) + { + memcpy (path, buf, len + 1); + pretty (path, flags); + return (TRUE); + } + for (method = 0; method < 2; ++method) + { + rc = emtex_dir_trunc (path, path_size, buf, flags, method); + if (rc == EDT_CHANGED && find2 (path, flags)) + { + pretty (path, flags); + return (TRUE); + } + } + return (FALSE); + } +} + + +int emtex_dir_find (char *path, size_t path_size, + const struct emtex_dir *ed, + const char *fname, unsigned flags) +{ + int i, absp; + const char *p; + + absp = FALSE; + for (p = fname; *p != 0; ++p) + if (*p == ':' || *p == '/' || *p == '\\') + { + absp = TRUE; + break; + } + + if (absp) + return (find1 (path, path_size, NULL, fname, flags)); + + if ((flags & EDF_CWD) && find1 (path, path_size, NULL, fname, flags)) + return (TRUE); + + for (i = 0; i < ed->used; ++i) + if (find1 (path, path_size, ed->list[i], fname, flags)) + return (TRUE); + return (FALSE); +} + + +#if defined (TEST) + +#include <stdio.h> + +int main (int argc, char *argv[]) +{ + struct emtex_dir ed; + int i; + unsigned flags1, flags2; + char path[260]; + + if (argc != 6) + { + puts ("Usage: emtexdir <flags> <flags> <env> <dir> <fname>"); + return (1); + } + + flags1 = (unsigned)strtol (argv[1], NULL, 0); + flags2 = (unsigned)strtol (argv[2], NULL, 0); + + if (!emtex_dir_setup (&ed, argv[3], argv[4], flags1)) + { + fputs ("emtex_dir_setup failed\n", stderr); + return (2); + } + + printf ("Directories:\n"); + for (i = 0; i < ed.used; ++i) + printf (" %s\n", ed.list[i]); + + if (!emtex_dir_find (path, sizeof (path), &ed, argv[5], flags2)) + puts ("File not found"); + else + printf ("Path: %s\n", path); + return (0); +} + +#endif diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/emtexdir.h b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/emtexdir.h new file mode 100644 index 0000000000..a9a986db05 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/emtexdir.h @@ -0,0 +1,57 @@ +/* emtexdir.h -- written by Eberhard Mattes, donated to the public domain */ + +#if !defined (_EMTEXDIR_H) +#define _EMTEXDIR_H + +#if defined (__cplusplus) +extern "C" { +#endif + + +/* Flags for emtex_dir_setup */ + +#define EDS_ONESUBDIR 0x0001 +#define EDS_ALLSUBDIR 0x0002 +#define EDS_BANG 0x0004 + +/* Flags for emtex_dir_find */ + +#define EDF_CWD 0x0001 +#define EDF_FSLASH 0x0002 +#define EDF_TRACE 0x8000 + +/* Methods for emtex_dir_trunc */ + +#define EDT_5_PLUS_3 0 /* 5+3.3 */ +#define EDT_8 1 /* 8.3 */ + +/* Return values for emtex_dir_trunc */ + +#define EDT_UNCHANGED 0 /* Path name not changed */ +#define EDT_CHANGED 1 /* Path name truncated */ +#define EDT_TOOLONG 2 /* Path name too long */ +#define EDT_INVALID 3 /* Path name invalid */ + +struct emtex_dir +{ + char **list; + int used; + int alloc; +}; + +extern void (*emtex_dir_find_callback)(const char *name, int ok); + +int emtex_dir_setup (struct emtex_dir *ed, const char *env, const char *dir, + unsigned flags); + +int emtex_dir_find (char *path, size_t path_size, const struct emtex_dir *ed, + const char *fname, unsigned flags); + +int emtex_dir_trunc (char *dst, size_t dst_size, const char *src, + unsigned flags, int method); + +#if defined (__cplusplus) +} +#endif + +#endif /* !defined (_EMTEXDIR_H) */ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf.c b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf.c new file mode 100644 index 0000000000..dedb9650b2 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf.c @@ -0,0 +1,1494 @@ +/* + * Copyright 1993,1994,1995,2005 by Ross Paterson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * + * Ross Paterson <ross@soi.city.ac.uk> + * 17 October 1995 + * + * The following people have supplied bug fixes: + * + * Simon Chow <khsc@synoptics.com> + * Fung Fung Lee <lee@simd.stanford.edu> + * Man-Chi Pong <mcpong@cs.ust.hk> + * Steven Simpson <simpson@math.psu.edu> + * Charles Wang <charles.wang@infores.com> + * Werner Lemberg <wl@gnu.org> + * + * Ross no longer maintains this code. Please send bug reports to + * Werner Lemberg <wl@gnu.org>. + * + */ + +/* + * Two C interfaces to HBF files. + * + * The multiple interfaces make this code rather messy; I intend + * to clean it up as experience is gained on what is really needed. + * + * There are also two modes of operation: + * - the default is to read each bitmap from its file as demanded + * - if IN_MEMORY is defined, the whole bitmap file is held in memory. + * In this case, if running under Unix, the bitmap files may be gzipped + * (but the filename used in the HBF file should be the name of the + * file before it was gzipped). + */ +#include <stddef.h> +#include <stdlib.h> +#include <stdio.h> +#include <ctype.h> +#include <string.h> +#include "hbf.h" + +#ifdef __MSDOS__ +#define msdos +#endif + +/* + * if the linker complains about an unresolved identifier '_strdup', + * uncomment the following definition. + */ +/* #define NO_STRDUP */ + +#ifdef __STDC__ +# define _(x) x +#else +# define _(x) () +#endif + +#define reg register + +typedef int bool; +#define TRUE 1 +#define FALSE 0 + +#define Bit(n) (1<<(7 - (n))) + +/* + * Messy file system issues + */ + +#ifdef unix +#define PATH_DELIMITER ':' +#define RelativeFileName(fn) ((fn)[0] != '/') +#define LocalFileName(fn) (strchr(fn, '/') == NULL) +#endif /* unix */ +#ifdef msdos +#define PATH_DELIMITER ';' +#define HasDrive(fn) (isalpha((fn)[0]) && (fn)[1] == ':') +#ifdef __EMX__ +#define RelativeFileName(fn) (! HasDrive(fn) && \ + !((fn)[0] == '\\' || (fn)[0] == '/')) +#define LocalFileName(fn) (! HasDrive(fn) && \ + strchr(fn, '\\') == NULL && \ + strchr(fn, '/') == NULL) +#else +#define RelativeFileName(fn) (! HasDrive(fn) && (fn)[0] != '\\') +#define LocalFileName(fn) (! HasDrive(fn) && strchr(fn, '\\') == NULL) +#endif /* __EMX__ */ +#define READ_BINARY "rb" +#endif /* msdos */ +#ifdef vms +#define PATH_DELIMITER ',' +#define RelativeFileName(fn) (strchr(fn, ':') == NULL && ((fn)[0] != '[' || (fn)[1] == '.' || (fn)[1] == '-')) +#define LocalFileName(fn) (strchr(fn, ':') == NULL && strchr(fn, ']') == NULL) +#endif + +#ifndef RelativeFileName +#define RelativeFileName(fn) FALSE +#endif + +#ifndef LocalFileName +#define LocalFileName(fn) FALSE +#endif + +#ifndef READ_BINARY +#define READ_BINARY "r" +#endif + +#define MAX_FILENAME 1024 + +/* + * Internal structures + */ + +typedef unsigned char byte; + +#define PROPERTY struct _PROPERTY +#define BM_FILE struct _BM_FILE +#define B2_RANGE struct _B2_RANGE +#define CODE_RANGE struct _CODE_RANGE + +PROPERTY { + char *prop_name; + char *prop_value; + PROPERTY *prop_next; +}; + +BM_FILE { + char *bmf_name; +#ifdef IN_MEMORY + byte *bmf_contents; +#else + FILE *bmf_file; +#endif + long bmf_size; + BM_FILE *bmf_next; +}; + +B2_RANGE { + byte b2r_start; + byte b2r_finish; + B2_RANGE *b2r_next; +}; + +typedef unsigned short CHAR; +typedef unsigned int CHAR_INDEX; /* character index in file */ +#define BAD_CHAR_INDEX 0xffff + +CODE_RANGE { + CHAR code_start; + CHAR code_finish; + BM_FILE *code_bm_file; + long code_offset; + CHAR_INDEX code_pos; + bool code_transposed; + bool code_inverted; + CODE_RANGE *code_next; +}; + +/* + * Extended internal version of HBF + */ + +typedef struct { + /* fields corresponding to the definition */ + HBF public; + /* plus internal stuff */ + char *filename; + byte *bitmap_buffer; + unsigned int b2_size; /* number of legal byte-2's */ + PROPERTY *property; + B2_RANGE *byte_2_range; + CODE_RANGE *code_range; + BM_FILE *bm_file; +} HBF_STRUCT; + +#define FirstByte(code) ((code)>>8) +#define SecondByte(code) ((code)&0xff) +#define MakeCode(byte1,byte2) (((byte1)<<8)|(byte2)) + +/* size of a bitmap in the file (may be affected by transposition) */ +#define FileBitmapSize(hbfFile,cp) \ + ((cp)->code_transposed ? \ + (hbfBitmapBBox(hbfFile)->hbf_height + 7)/8 * \ + hbfBitmapBBox(hbfFile)->hbf_width : \ + HBF_BitmapSize(hbfFile)) + +#define NEW(type) ((type *)malloc((unsigned)(sizeof(type)))) + +#define QUOTE '"' + +#define MAXLINE 1024 + +#ifdef WIN32 +#define strdup(x) _strdup(x) +#else + extern char *strdup _((const char *s)); +#endif + +static void add_b2r _((B2_RANGE **last_b2r, int start, int finish)); +static bool add_code_range _((HBF_STRUCT *hbf, const char *line)); +static void add_property _((HBF_STRUCT *hbf, const char *lp)); +static CHAR_INDEX b2_pos _((HBF_STRUCT *hbf, HBF_CHAR code)); +static int b2_size _((B2_RANGE *b2r)); +static void clear_bbox _((HBF_BBOX *bbox)); +static void clear_record _((HBF_STRUCT *hbf)); +static char *concat _((const char *dir, int dirlen, const char *stem)); +static char *expand_filename _((const char *name, const char *filename)); +static const byte *get_bitmap + _((HBF_STRUCT *hbf, HBF_CHAR code, byte *buffer)); +static byte *local_buffer _((HBF_STRUCT *hbf)); +static void invert _((byte *buffer, unsigned length)); +#ifdef IN_MEMORY +static bool read_bitmap_file _((BM_FILE *bmf, FILE *f)); +static bool copy_transposed + _((HBF *hbf, byte *bitmap, const byte *source)); +#else +static bool get_transposed _((HBF *hbf, FILE *f, byte *bitmap)); +#endif +static bool match _((const char *lp, const char *sp)); +static bool parse_file _((FILE *f, HBF_STRUCT *hbf)); +static FILE *path_open + _((const char *path, const char *filename, char **fullp)); +static bool real_open _((const char *filename, HBF_STRUCT *hbf)); + +/* Error reporting */ + +int hbfDebug; /* set this for error reporting */ + +#ifdef __STDC__ +#include <stdarg.h> + +static void +eprintf(const char *fmt, ...) +{ + if (hbfDebug) { + va_list args; + + (void)fprintf(stderr, "HBF: "); + va_start(args, fmt); + (void)vfprintf(stderr, fmt, args); + va_end(args); + (void)fprintf(stderr, "\n"); + } +} +#else /* ! __STDC__ */ +/* poor man's variable-length argument list */ +static void +eprintf(fmt, x1, x2, x3, x4, x5, x6, x7, x8, x9) + const char *fmt; + int x1, x2, x3, x4, x5, x6, x7, x8, x9; +{ + if (hbfDebug) { + (void)fprintf(stderr, "HBF: "); + (void)fprintf(stderr, fmt, x1, x2, x3, x4, x5, x6, x7, x8, x9); + (void)fprintf(stderr, "\n"); + } +} +#endif /* __STDC__ */ + +static void +clear_bbox(HBF_BBOX *bbox) +{ + bbox->hbf_width = bbox->hbf_height = 0; + bbox->hbf_xDisplacement = bbox->hbf_yDisplacement = 0; +} + +static void +clear_record(HBF_STRUCT *hbf) +{ + clear_bbox(&(hbf->public.hbf_bitmap_bbox)); + clear_bbox(&(hbf->public.hbf_font_bbox)); + hbf->property = NULL; + hbf->filename = NULL; + hbf->bitmap_buffer = NULL; + hbf->byte_2_range = NULL; + hbf->code_range = NULL; + hbf->bm_file = NULL; +} + +/* + * Byte-2 ranges + */ + +static void +add_b2r(reg B2_RANGE **last_b2r, int start, int finish) +{ +reg B2_RANGE *b2r; + + b2r = NEW(B2_RANGE); + while (*last_b2r != NULL && (*last_b2r)->b2r_start < start) + last_b2r = &((*last_b2r)->b2r_next); + b2r->b2r_next = *last_b2r; + b2r->b2r_start = start; + b2r->b2r_finish = finish; + *last_b2r = b2r; +} + +static CHAR_INDEX +b2_pos(HBF_STRUCT *hbf, HBF_CHAR code) +{ +reg B2_RANGE *b2r; +reg unsigned c; +reg CHAR_INDEX pos; + + c = SecondByte(code); + pos = 0; + for (b2r = hbf->byte_2_range; b2r != NULL; b2r = b2r->b2r_next) + if (b2r->b2r_start <= c && c <= b2r->b2r_finish) + return pos + c - b2r->b2r_start; + else + pos += b2r->b2r_finish - b2r->b2r_start + 1; + return BAD_CHAR_INDEX; +} + +static int +b2_size(reg B2_RANGE *b2r) +{ +reg int size; + + size = 0; + for ( ; b2r != NULL; b2r = b2r->b2r_next) + size += b2r->b2r_finish - b2r->b2r_start + 1; + return size; +} + +/* map a position to a character code */ +static long +code_of(HBF_STRUCT *hbf, long pos) +{ + long code; + int residue; +reg B2_RANGE *b2r; + + code = pos / hbf->b2_size * 256; + residue = pos % hbf->b2_size; + for (b2r = hbf->byte_2_range; b2r != NULL; b2r = b2r->b2r_next) + if (b2r->b2r_start + residue <= b2r->b2r_finish) + return code + b2r->b2r_start + residue; + else + residue -= b2r->b2r_finish - b2r->b2r_start + 1; + /* should never get here */ + return 0L; +} + +/* + * String stuff + */ + +static bool +match(reg const char *lp, reg const char *sp) +{ + while (*lp == *sp && *sp != '\0') { + lp++; + sp++; + } + return (*lp == '\0' || isspace((unsigned char)*lp)) && *sp == '\0'; +} + +#ifdef NO_STRDUP +char * +strdup(const char *s) +{ + char *new_s; + + new_s = malloc((unsigned)strlen(s) + 1); + strcpy(new_s, s); + return new_s; +} +#endif + +/* + * Properties + */ + +static void +add_property(reg HBF_STRUCT *hbf, const char *lp) +{ +reg PROPERTY *prop; + char tmp[MAXLINE]; +reg char *tp; + + prop = NEW(PROPERTY); + + tp = tmp; + while (*lp != '\0' && ! isspace((unsigned char)*lp)) + *tp++ = *lp++; + *tp = '\0'; + prop->prop_name = strdup(tmp); + + while (*lp != '\0' && isspace((unsigned char)*lp)) + lp++; + + tp = tmp; + if (*lp == QUOTE) { + lp++; + while (*lp != '\0' && ! (*lp == QUOTE && *++lp != QUOTE)) + *tp++ = *lp++; + } + else + for (;;) { + while (*lp != '\0' && ! isspace((unsigned char)*lp)) + *tp++ = *lp++; + while (*lp != '\0' && isspace((unsigned char)*lp)) + lp++; + if (*lp == '\0') + break; + *tp++ = ' '; + } + *tp = '\0'; + prop->prop_value = strdup(tmp); + + prop->prop_next = hbf->property; + hbf->property = prop; +} + +const char * +hbfProperty(HBF *hbfFile, const char *propName) +{ +reg HBF_STRUCT *hbf; +reg PROPERTY *prop; + + hbf = (HBF_STRUCT *)hbfFile; + for (prop = hbf->property; prop != NULL; prop = prop->prop_next) + if (strcmp(prop->prop_name, propName) == 0) + return prop->prop_value; + return NULL; +} + +/* + * Compatability routines + */ + +const char * +HBF_GetProperty(HBF *handle, const char *propertyName) +{ + return hbfProperty(handle, propertyName); +} + +int +HBF_GetFontBoundingBox(HBF_Handle handle, + unsigned int *width, unsigned int *height, + int *xDisplacement, int *yDisplacement) +{ + if (width != NULL) + *width = hbfFontBBox(handle)->hbf_width; + if (height != NULL) + *height = hbfFontBBox(handle)->hbf_height; + if (xDisplacement != NULL) + *xDisplacement = hbfFontBBox(handle)->hbf_xDisplacement; + if (yDisplacement != NULL) + *yDisplacement = hbfFontBBox(handle)->hbf_yDisplacement; + return 0; +} + +int +HBF_GetBitmapBoundingBox(HBF_Handle handle, + unsigned int *width, unsigned int *height, + int *xDisplacement, int *yDisplacement) +{ + if (width != NULL) + *width = hbfBitmapBBox(handle)->hbf_width; + if (height != NULL) + *height = hbfBitmapBBox(handle)->hbf_height; + if (xDisplacement != NULL) + *xDisplacement = hbfBitmapBBox(handle)->hbf_xDisplacement; + if (yDisplacement != NULL) + *yDisplacement = hbfBitmapBBox(handle)->hbf_yDisplacement; + return 0; +} + +/* + * Prepend a directory to a relative filename. + */ +static char * +concat(const char *dir, /* not necessarily null-terminated */ + int dirlen, /* number of significant chars in dir */ + const char *stem) /* relative filename */ +{ + char *fullname; + + if (dirlen == 0) /* null: current directory */ + return strdup(stem); +#ifdef unix + fullname = malloc(dirlen + strlen(stem) + 2); + (void)sprintf(fullname, "%.*s/%s", dirlen, dir, stem); +#else +#ifdef msdos + fullname = malloc(dirlen + strlen(stem) + 2); + (void)sprintf(fullname, "%.*s\\%s", dirlen, dir, stem); +#else +#ifdef vms + if (dir[dirlen-1] == ']' && stem[0] == '[' && stem[1] == '-') { + dirlen--; + stem++; + fullname = malloc(dirlen + strlen(stem) + 2); + (void)sprintf(fullname, "%.*s.%s", dirlen, dir, stem); + } + else { + if (dir[dirlen-1] == ']' && stem[0] == '[' && stem[1] == '.') { + dirlen--; + stem++; + } + fullname = malloc(dirlen + strlen(stem) + 1); + (void)sprintf(fullname, "%.*s%s", dirlen, dir, stem); + } +#else + fullname = strdup(stem); +#endif /* vms */ +#endif /* msdos */ +#endif /* unix */ + return fullname; +} + +/* + * Bitmap files + * + * If the host operating system has a heirarchical file system and + * the bitmap file name is relative, it is relative to the directory + * containing the HBF file. + */ +static char * +expand_filename(const char *name, const char *hbf_name) +{ +#ifdef unix +reg char *s; +reg int size; + + size = name[0] != '/' && (s = strrchr(hbf_name, '/')) != NULL ? + s - hbf_name + 1 : 0; + s = malloc((unsigned)size + strlen(name) + 1); + (void)sprintf(s, "%.*s%s", size, hbf_name, name); + return s; +#else +#ifdef msdos +reg char *s; +reg int size; + +#ifdef __EMX__ + s = (unsigned char *)hbf_name + strlen((unsigned char *)hbf_name) - 1; + for(;;) { + if (*s == '\\' || *s == '/') + break; + if (s == hbf_name) { + s = NULL; + break; + } + s--; + } + + size = HasDrive(name) ? 0 : + (name[0] == '\\' || name[0] == '/') ? + (HasDrive(hbf_name) ? 2 : 0) : + s != NULL ? s - hbf_name + 1 : 0; +#else + size = HasDrive(name) ? 0 : + name[0] == '\\' ? (HasDrive(hbf_name) ? 2 : 0) : + (s = strrchr(hbf_name, '\\')) != NULL ? + s - hbf_name + 1 : 0; +#endif /* __EMX__ */ + s = malloc((unsigned)size + strlen(name) + 1); + (void)sprintf(s, "%.*s%s", size, hbf_name, name); + return s; +#else +#ifdef vms +reg char *s; +reg const char *copyto; +reg int size; + + if ((s = strchr(hbf_name, ']')) != NULL && RelativeFileName(name)) + return concat(hbf_name, (s - hbf_name) + 1, name); + + copyto = hbf_name; + if ((s = strstr(copyto, "::")) != NULL && strstr(name, "::") == NULL) + copyto = s+2; + if ((s = strchr(copyto, ':')) != NULL && strchr(name, ':') == NULL) + copyto = s+1; + size = copyto - hbf_name; + s = malloc((unsigned)size + strlen(name) + 1); + (void)sprintf(s, "%.*s%s", size, hbf_name, name); + return s; +#else + return strdup(name); +#endif /* vms */ +#endif /* msdos */ +#endif /* unix */ +} + +static BM_FILE * +find_file(HBF_STRUCT *hbf, const char *filename) +{ + BM_FILE **fp; +reg BM_FILE *file; + FILE *f; + char *bmfname; +#ifdef IN_MEMORY +#ifdef unix + bool from_pipe; +#endif +#endif + + for (fp = &(hbf->bm_file); *fp != NULL; fp = &((*fp)->bmf_next)) { + bmfname = strrchr((*fp)->bmf_name, '/'); + bmfname = (bmfname) ? bmfname + 1 : (*fp)->bmf_name; + if (strcmp(bmfname, filename) == 0) + return *fp; + } + + file = NEW(BM_FILE); + if (file == NULL) { + eprintf("out of memory"); + return NULL; + } + file->bmf_name = expand_filename(filename, hbf->filename); + if (file->bmf_name == NULL) { + free((char *)file); + return NULL; + } + f = fopen(file->bmf_name, READ_BINARY); +#ifdef IN_MEMORY +#ifdef unix + from_pipe = FALSE; + if (f == NULL) { + char tmp[400]; + + sprintf(tmp, "%s.gz", file->bmf_name); + if ((f = fopen(tmp, "r")) != NULL) { + fclose(f); + sprintf(tmp, "gzcat %s.gz", file->bmf_name); + if ((f = popen(tmp, "r")) != NULL) + from_pipe = TRUE; + } + } +#endif /* unix */ +#endif /* IN_MEMORY */ + if (f == NULL) { + eprintf("can't open bitmap file '%s'", file->bmf_name); + free(file->bmf_name); + free((char *)file); + return NULL; + } +#ifdef IN_MEMORY + if (! read_bitmap_file(file, f)) { + free(file->bmf_name); + free((char *)file); + return NULL; + } +#ifdef unix + if (from_pipe) + pclose(f); + else + fclose(f); +#else /* ! unix */ + fclose(f); +#endif /* ! unix */ +#else /* ! IN_MEMORY */ + file->bmf_file = f; + fseek(f, 0L, 2); + file->bmf_size = ftell(f); +#endif /* ! IN_MEMORY */ + file->bmf_next = NULL; + *fp = file; + return file; +} + +#ifdef IN_MEMORY +#define GRAIN_SIZE 512 + +static bool +read_bitmap_file(BM_FILE *bmf, FILE *f) +{ + byte *contents, *cp; + long size; + int c; + + size = 0; + cp = contents = (byte *)malloc((unsigned)GRAIN_SIZE); + if (contents == NULL) { + eprintf("not enough space for bitmap file"); + return NULL; + } + while ((c = getc(f)) != EOF) { + if (size%GRAIN_SIZE == 0) { + contents = (byte *)realloc((char *)contents, + (unsigned)(size + GRAIN_SIZE)); + if (contents == NULL) { + eprintf("not enough space for bitmap file"); + return NULL; + } + cp = contents + size; + } + *cp++ = c; + size++; + } + bmf->bmf_size = size; + bmf->bmf_contents = (byte *)realloc((char *)contents, (unsigned)size); + return TRUE; +} +#endif /* IN_MEMORY */ + +/* + * Code ranges + */ + +/* check that a code range fits within its bitmap file */ +static bool +too_short(HBF_STRUCT *hbf, CODE_RANGE *cp) +{ + int bm_size; + long offset, end_offset; + BM_FILE *bmf; + long start, finish; + + bm_size = FileBitmapSize(&(hbf->public), cp); + offset = cp->code_offset; + start = cp->code_start; + finish = cp->code_finish; + end_offset = offset + bm_size * + (hbf->b2_size*(long)FirstByte(finish) + + b2_pos(hbf, finish) - cp->code_pos + 1); + bmf = cp->code_bm_file; + if (end_offset <= bmf->bmf_size) + return FALSE; + /* bitmap file is too short: produce a specific error message */ + if (offset > bmf->bmf_size) + eprintf("bitmap file '%s' is shorter than offset 0x%04lx", + bmf->bmf_name, offset); + else if (offset + bm_size > bmf->bmf_size) + eprintf("bitmap file '%s' too short: no room for any bitmaps at offset 0x%04lx", + bmf->bmf_name, offset); + else + eprintf("bitmap file '%s' is too short - code range appears to be 0x%04lx-0x%04lx", + bmf->bmf_name, + start, + code_of(hbf, cp->code_pos + + (bmf->bmf_size - offset)/bm_size) - 1); + return TRUE; +} + +static const char * +skip_word(int n, const char *s) +{ + for ( ; n > 0; n--) { + while (*s != '\0' && ! isspace((unsigned char)*s)) + s++; + while (*s != '\0' && isspace((unsigned char)*s)) + s++; + } + return s; +} + +/* optional keywords at the end of a CODE_RANGE line */ +static void +parse_keywords(CODE_RANGE *cp, const char *s) +{ + for (s = skip_word(4, s) ; *s != '\0'; s = skip_word(1, s)) { + switch (*s) { + case 's': case 'S': case 't': case 'T': + /* keyword "sideways" or "transposed" */ + cp->code_transposed = TRUE; + break; + case 'i': case 'I': + /* keyword "inverted" */ + cp->code_inverted = TRUE; + } + } +} + +static bool +add_code_range(HBF_STRUCT *hbf, const char *line) +{ + CODE_RANGE *cp; + CODE_RANGE **cpp; + long start, finish; + long offset; + char filename[MAXLINE]; + BM_FILE *bmf; + CHAR_INDEX b2pos; + + if (sscanf(line, "HBF_CODE_RANGE %li-%li %s %li", + &start, &finish, filename, &offset) != 4) { + eprintf("syntax error in HBF_CODE_RANGE"); + return FALSE; + } + /* code ranges are checked in real_open() */ + if ((bmf = find_file(hbf, filename)) == NULL) + return FALSE; + if ((cp = NEW(CODE_RANGE)) == NULL) { + eprintf("out of memory"); + return FALSE; + } + + cp->code_start = (CHAR)start; + cp->code_finish = (CHAR)finish; + cp->code_bm_file = bmf; + cp->code_offset = offset; + cp->code_transposed = cp->code_inverted = FALSE; + parse_keywords(cp, line); + /* insert it in order */ + for (cpp = &hbf->code_range; + *cpp != NULL && (*cpp)->code_finish < start; + cpp = &((*cpp)->code_next)) + ; + if (*cpp != NULL && (*cpp)->code_start <= finish) { + eprintf("code ranges overlap"); + return FALSE; + } + cp->code_next = *cpp; + *cpp = cp; + + /* set code_pos, and check range */ + if (start > finish) { + eprintf("illegal code range 0x%04lx-0x%04lx", start, finish); + return FALSE; + } + if ((b2pos = b2_pos(hbf, start)) == BAD_CHAR_INDEX) { + eprintf("illegal start code 0x%04lx", start); + return FALSE; + } + cp->code_pos = hbf->b2_size*(long)FirstByte(start) + b2pos; + if ((b2pos = b2_pos(hbf, finish)) == BAD_CHAR_INDEX) { + eprintf("illegal finish code 0x%04lx", finish); + return FALSE; + } + /* check that the bitmap file has enough bitmaps */ + return ! too_short(hbf, cp); +} + +/* + * Reading and parsing of an HBF file + */ + +/* get line, truncating to len, and trimming trailing spaces */ +static bool +get_line(char *buf, int len, FILE *f) +{ + int c; + char *bp; + + bp = buf; + for (;;) { + if ((c = getc(f)) == EOF) { + eprintf("unexpected end of file"); + return FALSE; + } + if (c == '\n' || c == '\r') { + /* trim trailing space */ + while (bp > buf && isspace((unsigned char)*(bp-1))) + bp--; + *bp = '\0'; + return TRUE; + } + if (len > 0) { + *bp++ = c; + len--; + } + } +} + +/* get next non-COMMENT line */ +static bool +get_text_line(char *buf, int len, FILE *f) +{ + while (get_line(buf, len, f)) + if (*buf != '\0' && ! match(buf, "COMMENT")) + return TRUE; + return FALSE; +} + +static bool +get_property(const char *line, const char *keyword, HBF_STRUCT *hbf) +{ + if (! match(line, keyword)) { + eprintf("%s expected", keyword); + return FALSE; + } + add_property(hbf, line); + return TRUE; +} + +static bool +get_bbox(const char *line, const char *keyword, HBF_BBOX *bbox) +{ + int w, h, xd, yd; + + if (! match(line, keyword) || + sscanf(line + strlen(keyword), "%i %i %i %i", + &w, &h, &xd, &yd) != 4) { + eprintf("%s expected", keyword); + return FALSE; + } + if (w <= 0 || h <= 0) { + eprintf("illegal %s dimensions %dx%d", keyword, w, h); + return FALSE; + } + bbox->hbf_width = w; + bbox->hbf_height = h; + bbox->hbf_xDisplacement = xd; + bbox->hbf_yDisplacement = yd; + return TRUE; +} + +/* + * HBFHeaderFile ::= + * 'HBF_START_FONT' version EOLN + * 'HBF_CODE_SCHEME' word ... EOLN + * 'FONT' fontName EOLN + * 'SIZE' ptsize xres yres EOLN + * 'HBF_BITMAP_BOUNDING_BOX' w h xd yd EOLN + * 'FONTBOUNDINGBOX' w h xd yd EOLN + * X11R5FontPropertySection + * 'CHARS' n EOLN + * HBFByte2RangeSection + * HBFCodeRangeSection + * 'HBF_END_FONT' EOLN . + * + * This implementation allows extra lines before HBF_END_FONT. + * Anything after HBF_END_FONT is ignored. + */ + +static bool +parse_file(FILE *f, reg HBF_STRUCT *hbf) +{ + char line[MAXLINE]; + int start, finish; + + if (! get_text_line(line, MAXLINE, f) || + ! get_property(line, "HBF_START_FONT", hbf)) + return FALSE; + + if (! get_text_line(line, MAXLINE, f) || + ! get_property(line, "HBF_CODE_SCHEME", hbf)) + return FALSE; + + if (! get_text_line(line, MAXLINE, f) || + ! get_property(line, "FONT", hbf)) + return FALSE; + + if (! get_text_line(line, MAXLINE, f) || + ! get_property(line, "SIZE", hbf)) + return FALSE; + + if (! get_text_line(line, MAXLINE, f) || + ! get_bbox(line, "HBF_BITMAP_BOUNDING_BOX", + &(hbf->public.hbf_bitmap_bbox))) + return FALSE; + + if (! get_text_line(line, MAXLINE, f) || + ! get_bbox(line, "FONTBOUNDINGBOX", &(hbf->public.hbf_font_bbox))) + return FALSE; + + if (! get_text_line(line, MAXLINE, f)) + return FALSE; + if (match(line, "STARTPROPERTIES")) { + for (;;) { + if (! get_text_line(line, MAXLINE, f)) + return FALSE; + if (match(line, "ENDPROPERTIES")) + break; + add_property(hbf, line); + } + if (! get_text_line(line, MAXLINE, f)) + return FALSE; + } + + if (match(line, "CHARS")) + if (! get_text_line(line, MAXLINE, f)) + return FALSE; + + if (match(line, "HBF_START_BYTE_2_RANGES")) { + for (;;) { + if (! get_text_line(line, MAXLINE, f)) + return FALSE; + if (match(line, "HBF_END_BYTE_2_RANGES")) + break; + if (sscanf(line, "HBF_BYTE_2_RANGE %i-%i", + &start, &finish) != 2) { + eprintf("HBF_BYTE_2_RANGE expected"); + return FALSE; + } + add_b2r(&(hbf->byte_2_range), start, finish); + } + if (! get_text_line(line, MAXLINE, f)) + return FALSE; + } + else + add_b2r(&(hbf->byte_2_range), 0, 0xff); + hbf->b2_size = b2_size(hbf->byte_2_range); + + if (! match(line, "HBF_START_CODE_RANGES")) { + eprintf("HBF_START_CODE_RANGES expected"); + return FALSE; + } + for (;;) { + if (! get_text_line(line, MAXLINE, f)) + return FALSE; + if (match(line, "HBF_END_CODE_RANGES")) + break; + if (! add_code_range(hbf, line)) + return FALSE; + } + + for (;;) { + if (! get_text_line(line, MAXLINE, f)) + return FALSE; + if (match(line, "HBF_END_FONT")) + break; + /* treat extra lines as properties (for private extensions) */ + add_property(hbf, line); + } + + return TRUE; +} + +static FILE * +path_open(const char *path, const char *filename, char **fullp) +{ + if (LocalFileName(filename) && path != NULL) { +#ifdef PATH_DELIMITER + char *fullname; + FILE *f; + const char *p_next; + + for (;;) { + p_next = strchr(path, PATH_DELIMITER); + if (p_next == NULL) + p_next = path + strlen(path); + fullname = concat(path, p_next - path, filename); + if ((f = fopen(fullname, "r")) != NULL) { + *fullp = fullname; + return f; + } + free(fullname); + if (*p_next == '\0') + break; + path = p_next + 1; + } +#endif + return NULL; + } + else { + *fullp = strdup(filename); + return fopen(*fullp, "r"); + } +} + +static bool +real_open(const char *filename, reg HBF_STRUCT *hbf) +{ + FILE *f; + + f = path_open(getenv("HBFPATH"), filename, &(hbf->filename)); + if (f == NULL) { + eprintf("can't read file '%s'", filename); + return FALSE; + } + if (! parse_file(f, hbf)) { + fclose(f); + return FALSE; + } + fclose(f); + return TRUE; +} + +HBF * +hbfOpen(const char *filename) +{ +reg HBF_STRUCT *hbf; + + if ((hbf = NEW(HBF_STRUCT)) == NULL) { + eprintf("can't allocate HBF structure"); + return NULL; + } + clear_record(hbf); + if (real_open(filename, hbf)) + return &(hbf->public); + hbfClose(&(hbf->public)); + return NULL; +} + +int +HBF_OpenFont(const char *filename, HBF **ptrHandleStorage) +{ + return (*ptrHandleStorage = hbfOpen(filename)) == NULL ? -1 : 0; +} + +/* + * Close files, free everything associated with the HBF. + */ + +int +HBF_CloseFont(HBF *hbfFile) +{ +reg HBF_STRUCT *hbf; + PROPERTY *prop_ptr, *prop_next; + B2_RANGE *b2r_ptr, *b2r_next; + CODE_RANGE *code_ptr, *code_next; + BM_FILE *bmf_ptr, *bmf_next; + int status; + + status = 0; + hbf = (HBF_STRUCT *)hbfFile; + + if (hbf->filename != NULL) + free(hbf->filename); + if (hbf->bitmap_buffer != NULL) + free(hbf->bitmap_buffer); + + for (prop_ptr = hbf->property; + prop_ptr != NULL; + prop_ptr = prop_next) { + prop_next = prop_ptr->prop_next; + free(prop_ptr->prop_name); + free(prop_ptr->prop_value); + free((char *)prop_ptr); + } + + for (b2r_ptr = hbf->byte_2_range; + b2r_ptr != NULL; + b2r_ptr = b2r_next) { + b2r_next = b2r_ptr->b2r_next; + free((char *)b2r_ptr); + } + + for (code_ptr = hbf->code_range; + code_ptr != NULL; + code_ptr = code_next) { + code_next = code_ptr->code_next; + free((char *)code_ptr); + } + + for (bmf_ptr = hbf->bm_file; + bmf_ptr != NULL; + bmf_ptr = bmf_next) { + bmf_next = bmf_ptr->bmf_next; +#ifdef IN_MEMORY + free((char *)(bmf_ptr->bmf_contents)); +#else + if (bmf_ptr->bmf_file != NULL && + fclose(bmf_ptr->bmf_file) < 0) + status = -1; +#endif + free(bmf_ptr->bmf_name); + free((char *)bmf_ptr); + } + + free((char *)hbf); + + return status; +} + +void +hbfClose(HBF *hbfFile) +{ + (void)HBF_CloseFont(hbfFile); +} + +/* + * Fetch a bitmap + */ + +const byte * +hbfGetBitmap(HBF *hbf, HBF_CHAR code) +{ + return get_bitmap((HBF_STRUCT *)hbf, code, (byte *)NULL); +} + +int +HBF_GetBitmap(HBF *hbf, HBF_CHAR code, byte *buffer) +{ + return get_bitmap((HBF_STRUCT *)hbf, code, buffer) == NULL ? -1 : 0; +} + +/* + * Internal function to fetch a bitmap. + * If buffer is non-null, it must be used. + */ +static const byte * +get_bitmap(reg HBF_STRUCT *hbf, HBF_CHAR code, byte *buffer) +{ + CHAR_INDEX pos, b2pos; +reg CODE_RANGE *cp; + BM_FILE *bmf; + int bm_size; + long offset; + + if ((b2pos = b2_pos(hbf, code)) == BAD_CHAR_INDEX) + return NULL; + pos = hbf->b2_size*FirstByte(code) + b2pos; + for (cp = hbf->code_range; cp != NULL; cp = cp->code_next) + if (cp->code_start <= code && code <= cp->code_finish) { + bmf = cp->code_bm_file; + bm_size = FileBitmapSize(&(hbf->public), cp); + offset = cp->code_offset + + (long)(pos - cp->code_pos) * bm_size; +#ifdef IN_MEMORY + if (buffer == NULL && + ! cp->code_transposed && ! cp->code_inverted) + return bmf->bmf_contents + offset; +#endif /* IN_MEMORY */ + if (buffer == NULL && + ((buffer = local_buffer(hbf)) == NULL)) + return NULL; +#ifdef IN_MEMORY + if (cp->code_transposed) + copy_transposed(&(hbf->public), + buffer, + bmf->bmf_contents + offset); + else + memcpy((char *)buffer, + (char *)(bmf->bmf_contents + offset), + bm_size); +#else /* ! IN_MEMORY */ + if (fseek(bmf->bmf_file, offset, 0) != 0) { + eprintf("seek error on code 0x%04x", code); + return NULL; + } + if (cp->code_transposed ? + ! get_transposed(&(hbf->public), bmf->bmf_file, + buffer) : + fread((char *)buffer, + bm_size, 1, bmf->bmf_file) != 1) { + eprintf("read error on code 0x%04x", code); + return NULL; + } +#endif /* IN_MEMORY */ + if (cp->code_inverted) + invert(buffer, HBF_BitmapSize(&(hbf->public))); + return buffer; + } + eprintf("code 0x%04x out of range", code); + return NULL; +} + +static byte * +local_buffer(HBF_STRUCT *hbf) +{ + if (hbf->bitmap_buffer == NULL && + (hbf->bitmap_buffer = (byte *)malloc(HBF_BitmapSize(&(hbf->public)))) == NULL) { + eprintf("out of memory"); + return NULL; + } + return hbf->bitmap_buffer; +} + +static void +invert(byte *buffer, unsigned int length) +{ + for ( ; length > 0; length--) + *buffer++ ^= 0xff; +} + +#ifdef IN_MEMORY +static bool +copy_transposed(HBF *hbf, reg byte *bitmap, reg const byte *source) +{ +reg byte *pos; +reg byte *bm_end; + int x; + int width; +reg int row_size; +reg int c; +reg int imask, omask; + + width = hbfBitmapBBox(hbf)->hbf_width; + row_size = HBF_RowSize(hbf); + bm_end = bitmap + HBF_BitmapSize(hbf); + (void)memset((char *)bitmap, '\0', HBF_BitmapSize(hbf)); + for (x = 0; x < width; x++) { + pos = bitmap + x/8; + omask = Bit(x%8); + /* y = 0 */ + for (;;) { + c = *source++; + for (imask = Bit(0); imask != 0; imask >>= 1) { + /* + * At this point, + * + * imask == Bit(y%8) + * pos == bitmap + y*row_size + x/8 + * + * We examine bit y of row x of the input, + * setting bit x of row y of the output if + * required, by applying omask to *pos. + */ + if ((c & imask) != 0) + *pos |= omask; + /* if (++y > height) goto end_column */ + pos += row_size; + if (pos >= bm_end) + goto end_column; + } + } +end_column: + ; + } + return TRUE; +} +#else /* ! IN_MEMORY */ +static bool +get_transposed(HBF *hbf, FILE *f, reg byte *bitmap) +{ +reg byte *pos; +reg byte *bm_end; + int x; + int width; +reg int row_size; +reg int c; +reg int imask, omask; + + width = hbfBitmapBBox(hbf)->hbf_width; + row_size = HBF_RowSize(hbf); + bm_end = bitmap + HBF_BitmapSize(hbf); + (void)memset((char *)bitmap, '\0', HBF_BitmapSize(hbf)); + for (x = 0; x < width; x++) { + pos = bitmap + x/8; + omask = Bit(x%8); + /* y = 0 */ + for (;;) { + if ((c = getc(f)) == EOF) + return FALSE; + for (imask = Bit(0); imask != 0; imask >>= 1) { + /* + * At this point, + * + * imask == Bit(y%8) + * pos == bitmap + y*row_size + x/8 + * + * We examine bit y of row x of the input, + * setting bit x of row y of the output if + * required, by applying omask to *pos. + */ + if ((c & imask) != 0) + *pos |= omask; + /* if (++y > height) goto end_column */ + pos += row_size; + if (pos >= bm_end) + goto end_column; + } + } +end_column: + ; + } + return TRUE; +} +#endif /* ! IN_MEMORY */ + +/* + * Call function on each valid code in ascending order. + */ +void +hbfForEach(reg HBF *hbfFile, void (*func)(HBF *, HBF_CHAR)) +{ + HBF_STRUCT *hbf; + CODE_RANGE *cp; +reg B2_RANGE *b2r; +reg unsigned byte1, byte2; +reg unsigned finish; + + hbf = (HBF_STRUCT *)hbfFile; + for (cp = hbf->code_range; cp != NULL; cp = cp->code_next) { + byte1 = FirstByte(cp->code_start); + byte2 = SecondByte(cp->code_start); + while (MakeCode(byte1, byte2) <= cp->code_finish) { + for (b2r = hbf->byte_2_range; + b2r != NULL; + b2r = b2r->b2r_next) { + if (byte2 < b2r->b2r_start) + byte2 = b2r->b2r_start; + finish = b2r->b2r_finish; + if (byte1 == FirstByte(cp->code_finish) && + finish > SecondByte(cp->code_finish)) + finish = SecondByte(cp->code_finish); + while (byte2 <= finish) { + (*func)(hbfFile, + MakeCode(byte1, byte2)); + byte2++; + } + } + byte1++; + byte2 = 0; + } + } +} + +const char * +hbfFileName(HBF *hbf) +{ + return ((HBF_STRUCT *)hbf)->filename; +} + +long +hbfChars(HBF *hbfFile) +{ + HBF_STRUCT *hbf; + CODE_RANGE *cp; + long num_chars; + + hbf = (HBF_STRUCT *)hbfFile; + num_chars = 0; + for (cp = hbf->code_range; cp != NULL; cp = cp->code_next) + num_chars += + hbf->b2_size*FirstByte(cp->code_finish) + + b2_pos(hbf, cp->code_finish) - + (hbf->b2_size*FirstByte(cp->code_start) + + b2_pos(hbf, cp->code_start)) + 1; + return num_chars; +} + +/* + * Functions also implemented as macros + */ + +#ifdef hbfBitmapBBox +#undef hbfBitmapBBox +#endif + +HBF_BBOX * +hbfBitmapBBox(HBF *hbf) +{ + return &(hbf->hbf_bitmap_bbox); +} + +#ifdef hbfFontBBox +#undef hbfFontBBox +#endif + +HBF_BBOX * +hbfFontBBox(HBF *hbf) +{ + return &(hbf->hbf_font_bbox); +} + +const void * +hbfGetByte2Range(HBF *hbfFile, const void *b2r_pointer, + byte *startp, byte *finishp) +{ + HBF_STRUCT *hbf; + const B2_RANGE *b2r; + + hbf = (HBF_STRUCT *)hbfFile; + if (b2r_pointer == NULL) + b2r = hbf->byte_2_range; + else + b2r = ((const B2_RANGE *)b2r_pointer)->b2r_next; + if(b2r == NULL) + return NULL; + *startp = b2r->b2r_start; + *finishp = b2r->b2r_finish; + return (const void *)b2r; +} + +const void * +hbfGetCodeRange(HBF *hbfFile, const void *code_pointer, + HBF_CHAR *startp, HBF_CHAR *finishp) +{ + HBF_STRUCT *hbf; + const CODE_RANGE *cp; + + hbf = (HBF_STRUCT *)hbfFile; + if (code_pointer == NULL) + cp = hbf->code_range; + else + cp = ((const CODE_RANGE *)code_pointer)->code_next; + if(cp == NULL) + return NULL; + *startp = cp->code_start; + *finishp = cp->code_finish; + return (const void *)cp; +} diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf.h b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf.h new file mode 100644 index 0000000000..34f5940a71 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf.h @@ -0,0 +1,215 @@ +/* + * Copyright 1993,1994,1995,2005 by Ross Paterson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * + * Two interfaces to HBF files -- take your pick. + * + * Ross Paterson <ross@soi.city.ac.uk> + * + * Ross no longer maintains this code. Please send bug reports to + * Werner Lemberg <wl@gnu.org>. + * + */ +#ifndef _HBF_ +#define _HBF_ + +#ifndef __STDC__ +# ifndef const +# define const +# endif +#endif + +/* + * #1: a lightweight C interface. + */ + +typedef unsigned int HBF_CHAR; + +typedef struct { + unsigned short hbf_width; + unsigned short hbf_height; + short hbf_xDisplacement; + short hbf_yDisplacement; +} HBF_BBOX; + +typedef struct { + /* fields corresponding to the definition */ + HBF_BBOX hbf_bitmap_bbox; /* HBF_BITMAP_BOUNDING_BOX */ + HBF_BBOX hbf_font_bbox; /* FONTBOUNDINGBOX */ +} HBF; + +extern HBF *hbfOpen( +#ifdef __STDC__ + const char *filename +#endif + ); + +extern void hbfClose( +#ifdef __STDC__ + HBF *hbf +#endif + ); + +extern const char *hbfProperty( +#ifdef __STDC__ + HBF *hbf, + const char *propName +#endif + ); + +extern const unsigned char *hbfGetBitmap( +#ifdef __STDC__ + HBF *hbf, + HBF_CHAR code +#endif + ); + +extern void hbfForEach( +#ifdef __STDC__ + HBF *hbf, + void (*func)(HBF *sameHbf, HBF_CHAR code) +#endif + ); + +extern const char *hbfFileName( +#ifdef __STDC__ + HBF *hbf +#endif + ); + +extern long hbfChars( +#ifdef __STDC__ + HBF *hbf +#endif + ); + +extern HBF_BBOX *hbfBitmapBBox( +#ifdef __STDC__ + HBF *hbf +#endif + ); +/* but defined here as a macro */ +#define hbfBitmapBBox(hbf) (&((hbf)->hbf_bitmap_bbox)) + +extern HBF_BBOX *hbfFontBBox( +#ifdef __STDC__ + HBF *hbf +#endif + ); +/* but defined here as a macro */ +#define hbfFontBBox(hbf) (&((hbf)->hbf_font_bbox)) + +#define HBF_RowSize(hbf)\ + ((hbfBitmapBBox(hbf)->hbf_width + 7)/8) + +#define HBF_BitmapSize(hbf)\ + (HBF_RowSize(hbf) * hbfBitmapBBox(hbf)->hbf_height) + +#define HBF_GetBit(hbf,bitmap,x,y)\ + (((bitmap)[(y)*HBF_RowSize(hbf) + (x)/8]>>(7 - (x)%8))&01) + +extern int hbfDebug; /* set non-zero for error reporting */ + +extern const void *hbfGetCodeRange( +#ifdef __STDC__ + HBF *hbfFile, + const void *code_pointer, + HBF_CHAR *startp, + HBF_CHAR *finishp +#endif + ); + +extern const void *hbfGetByte2Range( +#ifdef __STDC__ + HBF *hbfFile, + const void *b2r_pointer, + unsigned char *startp, + unsigned char *finishp +#endif + ); + +/* + * #2: taken from Appendix 2 of the HBF draft. + */ + +typedef unsigned int HBF_HzCode; +typedef unsigned char HBF_Byte ; +typedef HBF_Byte * HBF_BytePtr ; +typedef HBF * HBF_Handle ; +typedef HBF_Handle * HBF_HandlePtr ; +typedef char * String ; + +extern int HBF_OpenFont( +#ifdef __STDC__ + const char * filename, + HBF_HandlePtr ptrHandleStorage +#endif +); + +extern int HBF_CloseFont( +#ifdef __STDC__ + HBF_Handle handle +#endif +); + +extern const char * HBF_GetProperty( +#ifdef __STDC__ + HBF_Handle handle, + const char * propertyName +#endif +); + +extern int HBF_GetFontBoundingBox( +#ifdef __STDC__ + HBF_Handle handle, + unsigned int *width, + unsigned int *height, + int *xDisplacement, + int *yDisplacement +#endif +); + +extern int HBF_GetBitmapBoundingBox( +#ifdef __STDC__ + HBF_Handle handle, + unsigned int *width, + unsigned int *height, + int *xDisplacement, + int *yDisplacement +#endif +); + +extern int HBF_GetBitmap( +#ifdef __STDC__ + HBF_Handle handle, + HBF_HzCode hanziCode, + HBF_BytePtr ptrBitmapBuffer +#endif +); + +#endif /* ! _HBF_ */ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf2gf.1 b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf2gf.1 new file mode 100644 index 0000000000..c856eff1c9 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf2gf.1 @@ -0,0 +1,718 @@ +.\" man page for hbf2gf +.\" +.\" Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +.\" +.\" This program is free software; you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation; either version 2 of the License, or +.\" (at your option) any later version. +.\" +.\" This program is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License +.\" along with this program in doc/COPYING; if not, write to the Free +.\" Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +.\" MA 02110-1301 USA +.\" +. +.TH HBF2GF 1 16-Oct-2021 "CJK Version 4.8.5" +.SH NAME +hbf2gf \- convert a CJK bitmap font into subfonts usable by TeX and Omega. +. +. +.SH SYNOPSIS +.na +.nh +.B hbf2gf +.RB [ \-q ] +.IR \%configuration-file [ .cfg ] +.br +.B hbf2gf +'in +\n(.ku +.RB [ \-q ] +.RB [ \-p ] +.RB [ \-g ] +.RB [ \-n ] +.I \%subfont-name \%x-resolution +.RI [ \%y-scale \ | \ \%y-resolution ] +.br +.in +.B hbf2gf +.B \-t +.RB [ \-q ] +.I \%subfont-name +.br +.B "hbf2gf \-\-version" +| +.B \-\-help +.ad +.hy +. +. +. +.\" ==== +.\" ==== macro definitions +.\" ==== +. +.\" here we define \TeX for troff and nroff +.if t .ds TX \fRT\h'-0.1667m'\v'0.20v'E\v'-0.20v'\h'-0.125m'X\fP +.if n .ds TX TeX +. +.\" and here the same for \LaTeX +.if t \{\ +.ie '\*(.T'dvi' \ +.ds LX \fRL\h'-0.36m'\v'-0.15v'\s-3A\s0\h'-0.15m'\v'0.15v'\fP\*(TX +.el .ds LX \fRL\h'-0.36m'\v'-0.22v'\s-2A\s0\h'-0.15m'\v'0.22v'\fP\*(TX +.\} +.if n .ds LX LaTeX +. +.\" \LaTeXe +.\" note that we need \vareps for TeX instead of \eps which can only be +.\" accessed with the \N escape sequence (in the Math Italic font) +.if t \{\ +.ie '\*(.T'dvi' .ds LE \*(LX\h'0.15m'2\v'0.20v'\f(MI\N'34'\fP\v'-0.20v' +.el .ds LE \*(LX\h'0.15m'2\v'0.20v'\(*e\v'-0.20v' +.\} +.if n .ds LE LaTeX\ 2e +. +.\" a definition for \Delta +.if t .ds DE \(*D +.if n .ds DE Delta_ +. +.\" a typewriter font +.if t \{\ +.de C +\fC\\$1\fP\\$2 +.. +.\} +.if n \{\ +.de C +\\$1\\$2 +.. +.\} +. +.\" an addition to .TP to allow two labels for the same item +.de TQ +.br +.ns +.TP +.. +. +.\" ==== +.\" ==== end of macro definitions +.\" ==== +. +. +. +.SH DESCRIPTION +CJK bitmap fonts can't be directly used with \*(TX +because the number of characters in such fonts exceeds\ 256, the limit of a +\*(TX +font. +Thus it is necessary to split these fonts into subfonts, and this is +exactly what +.B hbf2gf +does. +.PP +As the name says, +.B hbf2gf +uses CJK fonts in a certain format which is called +.B Hanzi Bitmap Font +.RB ( HBF ) +format. +It simply consists of the CJK bitmap file(s) and a text file in a format +very similar to the BDF format of the X\ Window System which describes the +bitmap font files: the encoding, the size, etc. +The produced +.C GF +files can then be converted with +.B gftopk +into standard +.C PK +files. +.PP +.B hbf2gf +can be called in three modes: +. +.PP +.in +2m +.B hbf2gf +.RB [ \-q ] +.IR configuration-file [ .cfg ] +.PP +.in +5m +This call normally creates a set of +.C GF +files, one +.C PL +file, and a batch file which must be executed after +.B hbf2gf +has finished. +This script will then call +.B gftopk +to convert all +.C GF +files into +.C PK +files, and it will call +.B pltotf +to convert the +.C PL +file into a +.C TFM +file. +Finally it will copy the +.C TFM +file so that each +.C PK +file has its +.C TFM +file (which are all identical). +.PP +.in +5m +If +.B ofm_file +is set to \(oqyes\(cq in the configuration file, +.C OFM +and +.C OVF +files will be created too. +. +.PP +.in +5m +.B \-q +makes +.B hbf2gf +quiet. +.PP +.in +2m +.na +.nh +.B hbf2gf +'in +\n(.ku +.RB [ \-q ] +.RB [ \-p ] +.RB [ \-g ] +.RB [ \-n ] +.I \%subfont-name \%x-resolution +.RI [ \%y-scale \ | \ \%y-resolution ] +.ad +.hy +.PP +.in +5m +This mode is intended for use with +.B \%mktexpk +and its derivates. +Only one +.C GF +file together with a +.C PL +file for the given subfont will be computed, taking the horizontal +resolution and a vertical scaling factor (if the value is smaller than\ 10) +resp. the vertical resolution (otherwise) from the command line, ignoring +the +.B nmb_fonts +parameter of the configuration file. +The last two characters (which are interpreted as the subfont number) are +stripped to get the name for the configuration file (which must end with +\(oq\c +.C \&.cfg \(cq). +No job file will be created. +If option +.B \-p +is set, no +.C PL +file is created. +If +.B \-g +is set, no +.C GF +file is created. +The extension can be controlled with +.BR \-n ; +if set, the extension is \(oq\c +.C \&.gf \(cq, +otherwise \(oq\c +.C \&. <\c +.IR resolution >\c +.C gf \(cq. +.B \-q +makes +.B hbf2gf +quiet. +. +.PP +.in +2m +.na +.nh +.B hbf2gf +'in +\n(.ku +.B \-t +.RB [ \-q ] +.I \%subfont-name +.ad +.hy +.PP +.in +5m +This mode is intended for use with scripts like +.BR \%mktexpk ; +it tests whether the specified subfont name leads to an +.B hbf2gf +configuration file. +It returns 0 on success and prints out the name of that configuration file +(provided the +.B \-q +switch isn't set). +This test isn't a thorough one; it only removes the last two characters +and checks whether a configuration file with that name exists. +.PP +See the next section for more details about configuration files. +.PP +Specifying the option +.B \-\-version +returns the current version of +.B hbf2gf +and the used file search library (e.g.\ \c +.BR kpathsea ). +Usage information is shown with the +.B \-\-help +parameter. +. +. +.SH "CONFIGURATION FILE" +Here a sample configuration file (\c +.C gsfs14.cfg ) +for a 56\(mu56 Chinese font in GB encoding; note that all information +about the font is in the +.C jfs56.hbf +file. +See the +.B "FILE SEARCHING" +section how HBF fonts and +.B hbf2gf +configuration files are found. +See the +.B AVAILABILITY +section where to get CJK fonts together with its +.C HBF +files: +.PP +.if t \fC +.nf + hbf_header jfs56.hbf + mag_x 1 + threshold 128 + comment jianti fansongti 56x56 pixel font + + design_size 14.4 + + y_offset \-13 + + nmb_files \-1 + + output_name gsfs14 + + checksum 123456789 + + dpi_x 300 + + pk_files no + tfm_files yes + + coding codingscheme GuoBiao encoded TeX text + + pk_directory $HBF_TARGET/pk/modeless/gb2312/gsfs14/ + tfm_directory $HBF_TARGET/tfm/gb2312/gsfs14/ +.fi +.if t \fP +.PP +A configuration file is a plain text file consisting of keywords and its +arguments. +A keyword must start a line, otherwise the whole line will be ignored. +If the word starting a line is not a keyword, the line will be ignored too. +Empty lines will also be skipped. +The search for keywords is case insensitive; in contrast, the arguments will +be taken exactly as given (except \(oqyes\(cq and \(oqno\(cq which can be written with +uppercase or lowercase letters). +Each keyword has one argument which must be separated by whitespace (blanks +or tabs) from the keyword and must be on the same line. +Each line must not be longer than 256 characters. +.PP +You can use environment variables in the configuration file. +The escape character starting an environment variable in the configuration +file is always \(oq\c +.C $ \(cq, +even for operating systems like DOS which has other conventions. +.B hbf2gf +recognizes only environment variable names which start with a letter or an +underscore, followed by alphanumeric characters or underscores. +You can surround the variable with braces to indicate where the variable +name ends, for example +.C ${FOO} . +To get a dollar sign you must write \(oq\c +.C $$ \(cq. +The expansion of environment variables in hbf2gf itself (without the help of +either kpathsea, emtexdir, or MiKTeX searching routines) is very limited; +this feature has been carried over from previous versions. +It can't expand variables set in texmf.cnf; it also can't handle more than +one directory as the variable's value. +.B Don't use it except for the \(oqpk_directory\(cq and \(oqtfm_directory\(cq +.B parameters! +.PP +This is the list of all necessary keywords: +.TP +.B hbf_header +The HBF header file name of the input font(s). +.B hbf2gf +uses the given searching mechanism (kpathsea, emtexdir, or MiKTeX) to locate +this file. +.TP +.B output_name +The name stem of the output files. +A running two digit decimal number starting with \(oq\c +.C 01 \(cq +will be appended. +For Unicode fonts see the keyword +.B unicode +below. +This value is in almost all cases identical to the name of the configuration +file. +.PP +And now all optional keywords: +.TP +.B x_offset +Increases the character width. +Will be applied on both sides; default for non-rotated glyphs is the value +given in the HBF header +.RB ( HBF_BITMAP_BOUNDING_BOX ) +scaled to +.B design_size +(in pixels). +.TP +.B y_offset +Shifts all characters up or down; default for non-rotated glyphs is the value +given in the HBF header +.RB ( HBF_BITMAP_BOUNDING_BOX ) +scaled to +.B design_size +(in pixels). +.TP +.B design_size +The design size (in points) of the font. +.B x_offset +and +.B y_offset +refer to this size. +Default is\ 10.0. +.TP +.B slant +The slant of the font (given as \*(DEx\ /\ \*(DEy). +Only values in the range 0\ \(<=\ \fBslant\fP\ \(<=\ 1 are allowed. +Default is\ 0.0. +.TP +.B rotation +If set to \(oqyes\(cq, all glyphs will be rotated 90\ degrees counter-clockwise. +The default offsets as given in the HBF header will be ignored (and set +to\ 0). +Default is \(oqno\(cq. +.TP +.B mag_x +.TQ +.B mag_y +Scaling values of the characters to reach design size. +If only one magnification is given, x and y values are assumed to be equal. +Default is \fBmag_x\fP\ =\ \fBmag_y\fP\ =\ 1.0. +.PP +.TP +.B threshold +A value between 1 and\ 254 defining a threshold for converting the internal +graymap into the output bitmap; lower values cut more pixels. +Default value is\ 128. +.PP +.TP +.B comment +A comment describing the font; default is none. +.PP +.TP +.B nmb_fonts +The number of subfonts to create. +Default value is \-1 for creating all fonts. +.TP +.B unicode +If \(oqyes\(cq, a two digit hexadecimal number will be used as a running number, +starting with the value of the first byte of the first code range. +Default is \(oqno\(cq. +.TP +.B min_char +The minimum value of the encoding. +You should set this value to get correct subfile offsets if it is not +identical to the lowest character code in the HBF file. +.PP +.TP +.B dpi_x +.TQ +.B dpi_y +The horizontal and vertical resolution (in dpi) of the printer. +If only one resolution is given, x and y values are assumed to be equal. +Default is\ 300. +.TP +.B checksum +A checksum to identify the +.C GF +files with the appropriate +.C TFM +files. +The default value of this unsigned 32bit integer is\ 0. +.TP +.B coding +A comment describing the coding scheme; default is none. +.PP +.TP +.B pk_directory +The destination directory of the +.C PK +files; default: none. +Attention! +The batch file will not check whether this directory exists. +.TP +.B tfm_directory +The destination directory of the +.C TFM +files; default: none. +Attention! +The batch file will not check whether this directory exists. +.TP +.B pk_files +Whether to create +.C PK +files or not; default is \(oqyes\(cq. +.TP +.B tfm_files +Whether to create +.C TFM +files or not; default is \(oqyes\(cq. +.TP +.B ofm_file +Whether to create an +.C OPL +file or not; default is \(oqno\(cq. +The batch file will then use +.B ovp2ovf +of the Omega distribution to convert it into an +.C OFM +and an +.C OVF +file. +The +.C OPL +file simply maps all subfonts back to a single Omega font. +.TP +.B long_extension +If \(oqyes\(cq, +.C PK +files will include the resolution in the extension (e.g. +.C gsso1201.300pk ). +This affects the batch file only (default is \(oqyes\(cq). +.TP +.B rm_command +The shell command to remove files; default: \(oqrm\(cq. +.TP +.B cp_command +The shell command to copy files; default: \(oqcp\(cq. +.TP +.B job_extension +The extension of the batch file which calls +.B gftopk +and +.B pltotf +to convert the +.C GF +and the +.C PL +files into +.C PK +and +.C TFM +files respectively; default is none. +. +. +.SH "FILE SEARCHING" +.B hbf2gf +uses either the +.BR kpathsea , +.BR emtexdir , +or +.B MiKTeX +library for searching files +.RB ( emtexdir +will work only on operating systems which have an MS-DOSish background, +i.e., MS-DOS, OS/2, Windows; +.B MiKTeX +is for Win32 systems). +. +.SS kpathsea +The actual version of kpathsea is displayed on screen if you call +.B hbf2gf +.BR \-\-version . +.PP +Here is a table of the file type and the corresponding +.B kpathsea +variables. +.PP +.in +4m +.ta 2i +.br +.C "\&.hbf MISCFONTS" +.br +.C "\&.cfg HBF2GFINPUTS" +.PP +Please consult the info files of +.B kpathsea +for details on these variables. +The decision which naming scheme to use for variables will be done during +compilation. +.PP +You should set the +.C TEXMFCNF +variable to the directory where your +.C texmf.cnf +configuration file resides. +.PP +Here is the proper command to find out to which value a +.B kpathsea +variable is set (we use +.C MISCFONTS +as an example). +This is especially useful if a variable isn't set in +.C texmf.cnf +or in the environment, thus pointing to the default value which is +hard-coded into the +.B kpathsea +library. +.PP +.in +2m +.C "kpsewhich \-progname=hbf2gf \-expand\-var='$MISCFONTS'" +.PP +We select the program name also since it is possible to specify +variables which are searched only for a certain program \(en in our +example it would be +.C MISCFONTS.hbf2gf . +.PP +A similar but not identical method is to say +.PP +.in +2m +.C "kpsewhich \-progname=hbf2gf \-show\-path='misc fonts'" +.PP +[A full list of format types can be obtained by saying \(oq\c +.C "kpsewhich \-\-help" \(cq +on the command line prompt.] +This is exactly how +.B hbf2gf +searches for files; the disadvantage is that all variables are expanded +which can cause very long strings. +. +.SS emtexdir +.PP +Here the list of suffixes and its related environment variables to be set in +.C autoexec.bat +(resp. in +.C config.sys +for OS/2): +.PP +.in +4m +.ta 2i +.br +.C "\&.hbf HBFONTS" +.br +.C "\&.cfg HBFCFG" +.PP +If one of the variables isn't set, a warning message is emitted. +The current directory will always be searched. +As usual, one exclamation mark appended to a directory path causes +subdirectories one level deep to be searched, two exclamation marks causes +all subdirectories to be searched. +Example: +.PP +.in +2m +.C HBFONTS=c:\\\\fonts\\\\hbf!!;d:\\\\myfonts\\\\hbf! +.PP +Constructions like \(oq\c +.C c:\\\\fonts!!\\\\hbf \(cq +aren't possible. +. +.SS MikTeX +.PP +Please consult the documentation files of +.B MiKTeX +for more details. +. +. +.SH LIMITATIONS +The x and y output size must not exceed +.BR MAX_CHAR_SIZE , +which is defined at compile time; its default value is 1023\ (pixel). +. +. +.SH "SEE ALSO" +.BR ttf2pk (1) +.PP +.C hbf2gf.w : +'in +\n(.ku +this is the source code written in +.B CWEB +which can be converted into a pretty-printed \*(TX +document using +.BR cweave . +The CJK package also contains a preformatted +.C hbf2gf.pdf +file. +.PP +the +.B CJK +documentation files (\c +.C hbf2gf.txt ). +.PP +the +.B Hanzi Bitmap File +.RB ( HBF ) +standard version\ 1.3; available at +.C \%ftp.ifcss.org . +.PP +the Omega documentation available at +.C ftp.ens.fr +and the CTAN hosts and mirrors. +. +. +.SH FILES +.TP +.C *.cfg +The +.B hbf2gf +configuration scripts. +.TP +.C *.hbf +HBF header files which describe fixed-width bitmap fonts. +Note that the bitmap font name(s) themselves as specified in the header files +are irrelevant for +.BR hbf2gf . +. +. +.SH AVAILABILITY +.B hbf2gf +is part of the CJK macro package for \*(LE +available at the CTAN hosts and its mirrors. +.PP +CJK fonts together with HBF header files can be found at +.C ftp.ifcss.org +and its mirrors. +. +. +.SH AUTHORS +Werner Lemberg +.C <wl@gnu.org> +.br +Ross Paterson (the HBF API) +.C <ross@soi.city.ac.uk> diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf2gf.c b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf2gf.c new file mode 100644 index 0000000000..c6f666581d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf2gf.c @@ -0,0 +1,2250 @@ +#define banner \ +"hbf2gf (CJK ver. 4.8.5)" \ + \ + +#define TRUE 1 +#define FALSE 0 \ + +#define STRING_LENGTH 255 \ + +#define FILE_NAME_LENGTH 1024 \ + \ + +#define VERSION \ +"\n" \ +"Copyright (C) 1996-1999 Werner Lemberg.\n" \ +"There is NO warranty. You may redistribute this software\n" \ +"under the terms of the GNU General Public License\n" \ +"and the HBF library copyright.\n" \ +"\n" \ +"For more information about these matters, see the files\n" \ +"named COPYING and hbf.c.\n" \ +"\n" \ + +#define USAGE \ +"\n" \ +"Usage: hbf2gf [-q] configuration_file[.cfg]\n" \ +" hbf2gf [options] font_name x_resolution [y_scale | y_resolution]\n" \ +" hbf2gf -t [-q] font_name\n" \ +"\n" \ +" Convert a font in HBF format to TeX's GF resp. PK format.\n" \ +"\n" \ +" -q be silent\n" \ +" -p don't produce a PL file\n" \ +" -g don't produce a GF file\n" \ +" -n use no resolution in extension (only `.gf')\n" \ +" -t test for font_name (returns 0 on success)\n" \ +" --help print this message and exit\n" \ +" --version print version number and exit\n" \ +"\n" \ + +#define GF_ID 131 +#define PRE 247 \ + +#define header " hbf2gf output " \ + +#define BOC 67 +#define BOC1 68 +#define EOC 69 \ + +#define _2_16 65536.0 +#define _2_20 1048576.0 \ + +#define XXX1 239 +#define XXX2 240 +#define XXX3 241 +#define XXX4 242 \ + +#define YYY 243 \ + +#define POST 248 \ + +#define CHAR_LOC 245 +#define CHAR_LOC0 246 \ + +#define POSTPOST 249 +#define POSTPOST_ID 223 \ + +#define BLACK 1 +#define WHITE 0 \ + +#define PIXEL_MAXVAL 255 +#define SCALE 4096 +#define HALFSCALE 2048 \ + +#define MAX_CHAR_SIZE 1023 \ + +#define PAINT_(x) (x) +#define PAINT1 64 +#define PAINT2 65 +#define PAINT3 66 \ + +#define SKIP0 70 +#define SKIP1 71 +#define SKIP2 72 +#define SKIP3 73 \ + +#define NEW_ROW_(x) ((x) +74) \ + +#define NOOP 244 \ + +#define EXTENSION_LENGTH 8 \ + +#define GFTOPK_NAME "gftopk" +#define PLTOTF_NAME "pltotf" +#define OVP2OVF_NAME "ovp2ovf" \ + +#define PRINTER_MIN_RES_X 50 +#define PRINTER_MIN_RES_Y 50 \ + +#define VALID_SUBCODE 1 \ + +/*4:*/ +#line 191 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +/*10:*/ +#line 408 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +#ifdef HAVE_CONFIG_H +#include <c-auto.h> +#endif +#include <ctype.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#ifdef TM_IN_SYS_TIME +#include <sys/time.h> +#endif +#include "hbf.h" + + + +/*:10*//*69:*/ +#line 2473 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +#if defined(HAVE_LIBKPATHSEA) +#include "kpathsea/kpathsea.h" + +#elif defined(HAVE_EMTEXDIR) +#include "emtexdir.h" + +#elif defined(HAVE_MIKTEX) +#include "miktex.h" +#endif + +/*:69*/ +#line 192 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +/*11:*/ +#line 429 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void write_file(void); + + +/*:11*//*13:*/ +#line 491 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void write_pre(void); + + +/*:13*//*16:*/ +#line 579 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void write_data(void); + + +/*:16*//*20:*/ +#line 690 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void write_post(void); + + +/*:20*//*25:*/ +#line 834 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void fputl(long,FILE*); + + +/*:25*//*29:*/ +#line 994 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void make_pixel_array(void); + + +/*:29*//*36:*/ +#line 1222 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static +#ifdef __GNUC__ +__inline__ +#endif +void read_row(unsigned char*); + + +/*:36*//*39:*/ +#line 1274 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static +#ifdef __GNUC__ +__inline__ +#endif +void write_row(unsigned char*); + + +/*:39*//*41:*/ +#line 1329 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void write_coding(void); + + +/*:41*//*45:*/ +#line 1490 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void write_pl(void); + + +/*:45*//*47:*/ +#line 1587 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void write_ovp(void); + + +/*:47*//*50:*/ +#line 1732 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void write_job(void); + + +/*:50*//*54:*/ +#line 1981 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void read_config(void); + + +/*:54*//*64:*/ +#line 2312 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static int fsearch(const char*); + + +/*:64*//*67:*/ +#line 2451 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void config_error(const char*); + + +/*:67*//*71:*/ +#line 2494 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static const char*TeX_search_version(void); + + +/*:71*//*74:*/ +#line 2529 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +#ifdef HAVE_EMTEXDIR +extern int setup_list(struct emtex_dir*,char*,const char*,unsigned); +static int dir_setup(struct emtex_dir*,const char*,const char*,unsigned); +static char*file_find(char*,struct emtex_dir*); +#endif + + +/*:74*//*79:*/ +#line 2621 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static char*TeX_search_cfg_file(char*); +static char*TeX_search_hbf_file(char*); + + +/*:79*/ +#line 193 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +/*2:*/ +#line 127 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +int nmb_files= -1; +int unicode= FALSE; + +int testing= FALSE; + +int mf_like= FALSE; +int file_number= 0; + +double x_resolution= 0.0; +double y_scale= 1.0; + +int pk_files= TRUE; +int tfm_files= TRUE; +int long_extension= TRUE; +int quiet= FALSE; + +char config_file[FILE_NAME_LENGTH+4+1]; + +char output_name[STRING_LENGTH+1]; + +FILE*config,*out; +HBF*hbf; + +#ifdef msdos +#define WRITE_BIN "wb" +#define WRITE_TXT "wt" +#define READ_BIN "rb" +#define READ_TXT "rt" +#else +#define WRITE_BIN "w" +#define WRITE_TXT "w" +#define READ_BIN "r" +#define READ_TXT "r" +#endif + +int end_of_file= FALSE; + + +/*:2*//*15:*/ +#line 538 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +long char_adr[256]; +long*char_adr_p; + +int pk_offset_x; + + +double tfm_offset_x; +int pk_offset_y; + +double tfm_offset_y; + +int input_size_x; +int input_size_y; +const char*font_encoding; +int pk_width; +int pk_output_size_x; + +double tfm_output_size_x; +int pk_output_size_y; +double tfm_output_size_y; + +double design_size= 10.0; +double target_size_x; +double target_size_y; +double magstep_x; +double magstep_y; +double slant; +int rotation; + +double mag_x; +double mag_y; + +int empty_char; +int last_char; + +int dot_count; + + + +/*:15*//*19:*/ +#line 667 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +char coding[STRING_LENGTH+1]; +char comment[STRING_LENGTH+1]; + +unsigned long checksum; + +long pk_total_min_x; +long pk_total_max_x; +long pk_total_min_y; +long pk_total_max_y; + +int dpi_x; +int dpi_y; +double ppp_x; +double ppp_y; + + +/*:19*//*27:*/ +#line 871 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +HBF_CHAR code; +const unsigned char*bitmap; + +const unsigned char*bP; + +unsigned char out_char[MAX_CHAR_SIZE*MAX_CHAR_SIZE+1]; + +unsigned char*out_char_p; + +unsigned char pixelrow[MAX_CHAR_SIZE]; +unsigned char temp_pixelrow[MAX_CHAR_SIZE]; +unsigned char new_pixelrow[MAX_CHAR_SIZE+1]; + +int curr_row; + +long grayrow[MAX_CHAR_SIZE]; + +long s_mag_x,s_mag_y,s_slant; + + +/*:27*//*38:*/ +#line 1269 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +int threshold= 128; + + +/*:38*//*49:*/ +#line 1721 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +char job_extension[EXTENSION_LENGTH+1]; +char rm_command[STRING_LENGTH+1]; +char cp_command[STRING_LENGTH+1]; +char pk_directory[STRING_LENGTH+1]; +char tfm_directory[STRING_LENGTH+1]; + +int ofm_file= FALSE; + + +/*:49*//*53:*/ +#line 1976 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +char Buffer[STRING_LENGTH+1]; + + +/*:53*//*58:*/ +#line 2094 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +int offset_x; +int offset_y; + +HBF_CHAR user_min_char; +int have_min_char= FALSE; + +/*:58*//*60:*/ +#line 2251 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +HBF_CHAR min_char,max_char; + + +/*:60*//*62:*/ +#line 2278 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +char b2_codes[256]; +unsigned char min_2_byte,max_2_byte; +int nmb_2_bytes= 0; + + +/*:62*//*70:*/ +#line 2485 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +#if defined(HAVE_EMTEXDIR) +char emtex_version_string[]= "emTeXdir"; +#elif !defined(HAVE_MIKTEX) +char no_version_string[]= "no search library"; +#endif + + +/*:70*//*73:*/ +#line 2522 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +#ifdef HAVE_EMTEXDIR +struct emtex_dir cfg_path,hbf_path; +#endif + + +/*:73*//*76:*/ +#line 2569 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +#ifdef HAVE_EMTEXDIR +char name_buffer[FILE_NAME_LENGTH+1]; +#endif + + +/*:76*/ +#line 194 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + + + +int main(int argc,char*argv[]) +{char*p; + +/*78:*/ +#line 2594 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +#if defined(HAVE_LIBKPATHSEA) +kpse_set_program_name(argv[0],"hbf2gf"); +kpse_init_prog("HBF2GF",300,"cx","cmr10"); + +#elif defined(HAVE_EMTEXDIR) +if(!dir_setup(&cfg_path,"HBFCFG",NULL,EDS_BANG)) +{fprintf(stderr, +"Couldn't setup search path for configuration files\n"); +exit(1); +} +if(!dir_setup(&hbf_path,"HBFONTS",NULL,EDS_BANG)) +{fprintf(stderr, +"Couldn't setup search path for HBF header files\n"); +exit(1); +} +#endif + + +/*:78*/ +#line 200 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + + +/*7:*/ +#line 307 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +if(argc==2) +{if(strcmp(argv[1],"--help")==0) +/*6:*/ +#line 288 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +{printf(USAGE); +exit(0); +} + + +/*:6*/ +#line 310 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +else if(strcmp(argv[1],"--version")==0) +/*5:*/ +#line 261 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +{printf("\n"); +printf(banner); +printf(" (%s)\n",TeX_search_version()); +printf(VERSION); +exit(0); +} + + +/*:5*/ +#line 312 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +} + +while(argc> 1) +{p= argv[1]; +if(p[0]!='-') +break; +if(p[1]=='p') +tfm_files= FALSE; +else if(p[1]=='g') +pk_files= FALSE; +else if(p[1]=='n') +long_extension= FALSE; +else if(p[1]=='q') +quiet= TRUE; +else if(p[1]=='t') +testing= TRUE; + +argv++; +argc--; +} + +if(testing) +{if(argc!=2) +{fprintf(stderr,"Need exactly one parameter for `-t' option.\n"); +fprintf(stderr,"Try `hbf2gf --help' for more information.\n"); +exit(1); +} +} +else if(argc<2||argc> 4) +{fprintf(stderr,"Invalid number of parameters.\n"); +fprintf(stderr,"Try `hbf2gf --help' for more information.\n"); +exit(1); +} + + +/*:7*/ +#line 202 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + + +if(!quiet) +printf("\n%s\n\n",banner); + +strncpy(config_file,argv[1],FILE_NAME_LENGTH); +config_file[FILE_NAME_LENGTH]= '\0'; + +if(argc> 2||testing) +{int l= strlen(config_file); + +if(l> 2) +config_file[l-2]= '\0'; + +else +{if(!quiet) +printf("`%s' can't be a subfont created by hbf2gf\n", +config_file); +exit(2); +} + +mf_like= TRUE; +} + +read_config(); + +if(mf_like) +/*8:*/ +#line 352 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +{if(unicode) +file_number= (int)strtol(&argv[1][strlen(argv[1])-2], +(char**)NULL,16); +else +file_number= atoi(&argv[1][strlen(argv[1])-2]); + +x_resolution= atof(argv[2]); +if(x_resolution<PRINTER_MIN_RES_X) +{fprintf(stderr,"Invalid horizontal resolution\n"); +exit(1); +} + +if(argc> 3) +{y_scale= atof(argv[3]); +if(y_scale<0.01) +{fprintf(stderr, +"Invalid vertical scaling factor or resolution\n"); +exit(1); +} +if(y_scale> 10.0) +y_scale= (double)x_resolution/y_scale; +} +} + + +/*:8*/ +#line 229 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + + +/*28:*/ +#line 903 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +{int col,offset; + +if(rotation) +{int tmp; + + +tmp= input_size_x; +input_size_x= input_size_y; +input_size_y= tmp; +} + +if(mf_like) +{target_size_x= design_size*(x_resolution/dpi_x); +target_size_y= design_size*(x_resolution*y_scale/dpi_y); +} +else +target_size_x= target_size_y= design_size; +magstep_x= target_size_x/design_size; +magstep_y= target_size_y/design_size; + +pk_offset_x= offset_x*magstep_x+0.5; +pk_offset_y= offset_y*magstep_y+0.5; +tfm_offset_x= offset_x/(dpi_x/72.27)/design_size; +tfm_offset_y= offset_y/(dpi_y/72.27)/design_size; + +pk_width= input_size_x*mag_x*magstep_x+0.5; +pk_output_size_x= input_size_x*mag_x*magstep_x+ +input_size_y*mag_y*magstep_y*slant+0.5; +pk_output_size_y= input_size_y*mag_y*magstep_y+0.5; +tfm_output_size_x= input_size_x*mag_x/ +(dpi_x/72.27)/design_size; +tfm_output_size_y= input_size_y*mag_y/ +(dpi_y/72.27)/design_size; +if(pk_output_size_x> MAX_CHAR_SIZE) +{fprintf(stderr,"Output character box width too big\n"); +exit(1); +} +if(pk_output_size_y> MAX_CHAR_SIZE) +{fprintf(stderr,"Output character box height too big\n"); +exit(1); +} + +for(col= 0;col<input_size_x;++col) +grayrow[col]= HALFSCALE; + +if(!mf_like) +code= (min_char&0xFF00)+min_2_byte; +else +{if((file_number<(unicode?0:1))||(file_number>=0x100)) +{fprintf(stderr,"Invalid subfile number\n"); +exit(1); +} + +if(unicode) +{offset= 0; +code= file_number*0x100; +} +else +{offset= (file_number-1)*256%nmb_2_bytes; +code= (min_char&0xFF00)+min_2_byte+ +(file_number-1)*256/nmb_2_bytes*0x100; +} + +while(offset--) +while(!b2_codes[code++&0xFF]) + +; + +if(code> max_char) +{fprintf(stderr,"Invalid subfile number\n"); +exit(1); +} +} + +s_mag_x= mag_x*magstep_x*SCALE; +s_mag_y= mag_y*magstep_y*SCALE; +s_slant= slant*SCALE; +} + + +/*:28*/ +#line 231 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + + +/*9:*/ +#line 387 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +{int j,max_numb; + +if(!mf_like) +{file_number= (unicode==TRUE?(min_char>>8):1); +if(nmb_files==-1) +max_numb= (unicode==TRUE?0x100:100); +else +max_numb= nmb_files; +} +else +max_numb= 1; + +for(j= 0;(j<max_numb)&&!end_of_file;file_number++,j++) +write_file(); + +nmb_files= j; +} + + +/*:9*/ +#line 233 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + + +if(tfm_files) +write_pl(); +if(ofm_file) +write_ovp(); +if(!mf_like) +write_job(); + +hbfClose(hbf); + +exit(0); +return 0; +} + + +/*:4*//*12:*/ +#line 437 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void write_file(void) +{char output_file[FILE_NAME_LENGTH+1]; + + +if(pk_files) +{if(mf_like) +{if(unicode) +sprintf(output_file,"%s%02x.%.0igf", +output_name,file_number, +long_extension?(int)(x_resolution+0.5):0); +else +sprintf(output_file,"%s%02i.%.0igf", +output_name,file_number, +long_extension?(int)(x_resolution+0.5):0); +} +else +{if(unicode) +sprintf(output_file,"%s%02x.gf",output_name,file_number); +else +sprintf(output_file,"%s%02i.gf",output_name,file_number); +} +if(!(out= fopen(output_file,WRITE_BIN))) +{fprintf(stderr,"Couldn't open `%s'\n",output_file); +exit(1); +} +if(!quiet) +printf("Writing `%s' ",output_file); + +write_pre(); +write_data(); +write_post(); +fclose(out); + +if(!quiet) +printf("\n"); +} +else +write_data(); +} + + +/*:12*//*14:*/ +#line 498 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void write_pre(void) +{char out_s[40],s[20]; +time_t secs_now; +struct tm*time_now; + + +strcpy(out_s,header); + +secs_now= time(NULL); +time_now= localtime(&secs_now); +strftime(s,20,"%Y.%m.%d:%H.%M",time_now); +strcat(out_s,s); + +fputc(PRE,out); +fputc(GF_ID,out); +fputc(strlen(out_s),out); +fputs(out_s,out); +} + + +/*:14*//*17:*/ +#line 584 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void write_data(void) +{dot_count= 0; +char_adr_p= char_adr; + +for(last_char= 0;(last_char<256)&&!end_of_file;last_char++) +/*18:*/ +#line 609 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +{if(dot_count++%10==0) +if(pk_files&&!quiet) +{printf("."); +fflush(stdout); +} + +empty_char= FALSE; +make_pixel_array(); +if(end_of_file) +return; + +if(pk_files) +{*char_adr_p= ftell(out); +char_adr_p++; + +if(empty_char) +{fputc(BOC1,out); +fputc((unsigned char)last_char,out); +fputc(0,out); +fputc(0,out); +fputc(0,out); +fputc(0,out); +fputc(EOC,out); +} +else +{fputc(BOC,out); +fputl(last_char,out); +fputl(-1L,out); +fputl(pk_offset_x,out); +fputl(pk_output_size_x+pk_offset_x,out); +fputl(pk_offset_y,out); +fputl(pk_output_size_y+pk_offset_y,out); + +write_coding(); + +fputc(EOC,out); +} +} +} + + +/*:18*/ +#line 590 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +} + + +/*:17*//*21:*/ +#line 695 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void write_post(void) +{long special_adr; +long post_adr; + +long designsize= design_size*_2_20; + +int pk_dx; +long tfm_width; + +int i; +long temp; + + +ppp_x= dpi_x/72.27*magstep_x; +ppp_y= dpi_y/72.27*magstep_y; + +pk_total_min_x= pk_offset_x; +pk_total_max_x= pk_output_size_x+2*pk_offset_x; +pk_total_min_y= pk_offset_y; +pk_total_max_y= pk_output_size_y+pk_offset_y; + +pk_dx= pk_width+2*pk_offset_x; +tfm_width= (tfm_output_size_x+2*tfm_offset_x)*_2_20; + + +/*22:*/ +#line 741 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +special_adr= ftell(out); + +if(*coding) +{fputc(XXX1,out); +fputc(strlen(coding),out); +fputs(coding,out); +} + +if(*comment) +{fputc(XXX1,out); +fputc(strlen(comment),out); +fputs(comment,out); +} + + +/*:22*/ +#line 721 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +/*23:*/ +#line 770 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +post_adr= ftell(out); +fputc(POST,out); +fputl(special_adr,out); + +fputl(designsize,out); +fputl(checksum,out); +fputl(ppp_x*_2_16,out); +fputl(ppp_y*_2_16,out); +fputl(pk_total_min_x,out); +fputl(pk_total_max_x,out); +fputl(pk_total_min_y,out); +fputl(pk_total_max_y,out); + +char_adr_p= char_adr; + +if(pk_dx<256) +{for(i= 0;i<last_char;i++) +{fputc(CHAR_LOC0,out); +fputc(i,out); +fputc(pk_dx,out); +fputl(tfm_width,out); +fputl(*char_adr_p++,out); +} +} +else +{for(i= 0;i<last_char;i++) +{fputc(CHAR_LOC,out); +fputc(i,out); +fputl(pk_dx*_2_16,out); +fputl(0,out); +fputl(tfm_width,out); +fputl(*char_adr_p++,out); +} +} + + +/*:23*/ +#line 722 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +/*24:*/ +#line 821 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +fputc(POSTPOST,out); +fputl(post_adr,out); +fputc(GF_ID,out); +temp= ftell(out); +i= (int)(temp%4)+4; +while(i--) +fputc(POSTPOST_ID,out); + + +/*:24*/ +#line 723 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +} + + +/*:21*//*26:*/ +#line 839 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void fputl(long num,FILE*f) +{fputc(num>>24,f); +fputc(num>>16,f); +fputc(num>>8,f); +fputc(num,f); +} + + +/*:26*//*30:*/ +#line 999 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void make_pixel_array(void) +{unsigned char*prP; +unsigned char*temp_prP; +unsigned char*new_prP; +long*grP; + +register unsigned char*xP; +register unsigned char*nxP; + +register int row,col; +int rows_read= 0; +register int need_to_read_row= 1; + +long frac_row_to_fill= SCALE; +long frac_row_left= s_mag_y; + +int no_code= FALSE; + + +prP= pixelrow; +temp_prP= temp_pixelrow; +new_prP= new_pixelrow; +grP= grayrow; +out_char_p= out_char; + +again: +if(b2_codes[code&0xFF]) +{if(pk_files) +{bitmap= hbfGetBitmap(hbf,code); +bP= bitmap; + + +if(!bitmap) +empty_char= TRUE; +else +/*31:*/ +#line 1058 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +{if(pk_output_size_y==input_size_y) +temp_prP= prP; + +curr_row= input_size_y-1; +for(row= 0;row<pk_output_size_y;++row) +{/*32:*/ +#line 1072 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +if(pk_output_size_y==input_size_y) + +read_row(prP); +else +{while(frac_row_left<frac_row_to_fill) +{if(need_to_read_row) +if(rows_read<input_size_y) +{read_row(prP); +++rows_read; +} + +for(col= 0,xP= prP;col<input_size_x;++col,++xP) +grP[col]+= frac_row_left*(*xP); + +frac_row_to_fill-= frac_row_left; +frac_row_left= s_mag_y; +need_to_read_row= 1; +} + +/*33:*/ +#line 1099 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +if(need_to_read_row) +if(rows_read<input_size_y) +{read_row(prP); +++rows_read; +need_to_read_row= 0; +} + +for(col= 0,xP= prP,nxP= temp_prP; +col<input_size_x;++col,++xP,++nxP) +{register long g; + + +g= grP[col]+frac_row_to_fill*(*xP); +g/= SCALE; +if(g> PIXEL_MAXVAL) +g= PIXEL_MAXVAL; + +*nxP= g; +grP[col]= HALFSCALE; +} + +frac_row_left-= frac_row_to_fill; +if(frac_row_left==0) +{frac_row_left= s_mag_y; +need_to_read_row= 1; +} +frac_row_to_fill= SCALE; + + +/*:33*/ +#line 1092 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +} + + +/*:32*/ +#line 1064 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +/*34:*/ +#line 1140 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +if(pk_width==input_size_x&&s_slant==0) + +write_row(temp_prP); +else +{register long g= HALFSCALE; +register long frac_col_to_fill= SCALE; +register long frac_col_left; +register int need_col= 0; + + +nxP= new_prP; + +frac_col_left= (pk_output_size_y-row)*s_slant; +while(frac_col_left>=frac_col_to_fill) +{*(nxP++)= 0; +frac_col_left-= frac_col_to_fill; +} + +if(frac_col_left> 0) +frac_col_to_fill-= frac_col_left; + +for(col= 0,xP= temp_prP;col<input_size_x;++col,++xP) +{frac_col_left= s_mag_x; +while(frac_col_left>=frac_col_to_fill) +{if(need_col) +{++nxP; +g= HALFSCALE; +} + +g+= frac_col_to_fill*(*xP); +g/= SCALE; +if(g> PIXEL_MAXVAL) +g= PIXEL_MAXVAL; + +*nxP= g; +frac_col_left-= frac_col_to_fill; +frac_col_to_fill= SCALE; +need_col= 1; +} + +if(frac_col_left> 0) +{if(need_col) +{++nxP; +g= HALFSCALE; +need_col= 0; +} + +g+= frac_col_left*(*xP); +frac_col_to_fill-= frac_col_left; +} +} + +/*35:*/ +#line 1198 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +if(frac_col_to_fill> 0) +{--xP; +g+= frac_col_to_fill*(*xP); +} + +if(!need_col) +{g/= SCALE; +if(g> PIXEL_MAXVAL) +g= PIXEL_MAXVAL; +*nxP= g; +} + +*(++nxP)= 0; + +write_row(new_prP); + + +/*:35*/ +#line 1193 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +} + + +/*:34*/ +#line 1066 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +} +} + + +/*:31*/ +#line 1035 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +} +} +else +no_code= TRUE; + +if((code&0xFF)==max_2_byte) +code+= 0xFF-(max_2_byte-min_2_byte); +if(code>=max_char) +{end_of_file= TRUE; +return; +} + +code++; + +if(no_code) +{no_code= FALSE; +goto again; +} +} + + +/*:30*//*37:*/ +#line 1231 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static +#ifdef __GNUC__ +__inline__ +#endif +void read_row(unsigned char*pixelrow) +{register int col,bitshift,offset; +register unsigned char*xP; +register unsigned char item= 0; + +if(rotation) +{bitshift= 7-(curr_row%8); +offset= (input_size_y+7)/8; +bP= bitmap+curr_row/8; +for(col= 0,xP= pixelrow;col<input_size_x;++col,++xP) +{*xP= ((*bP>>bitshift)&1)==1?PIXEL_MAXVAL:0; +bP+= offset; +} +curr_row--; +} +else +{bitshift= -1; +for(col= 0,xP= pixelrow;col<input_size_x;++col,++xP) +{if(bitshift==-1) +{item= *(bP++); +bitshift= 7; +} +*xP= ((item>>bitshift)&1)==1?PIXEL_MAXVAL:0; +--bitshift; +} +} +} + + +/*:37*//*40:*/ +#line 1283 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static +#ifdef __GNUC__ +__inline__ +#endif +void write_row(unsigned char*pixelrow) +{register int col; +register unsigned char*xP; + +for(col= 0,xP= pixelrow;col<pk_output_size_x;++col,++xP) +*(out_char_p++)= (*xP>=threshold)?1:0; + +} + + +/*:40*//*42:*/ +#line 1337 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void write_coding(void) +{register int count,skip; +register unsigned char paint; +register int x,y; +register unsigned char*cp; + +x= 0; +y= 0; +cp= out_char+y*pk_output_size_x+x; +count= skip= 0; +paint= WHITE; +goto start; + +while(y<pk_output_size_y) +{/*43:*/ +#line 1361 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +count= 0; +x= 0; +cp= out_char+y*pk_output_size_x+x; + +while(x<pk_output_size_x) +{if(*cp==paint) +count++; +else +{if(skip==0) +{if(count<=164) +fputc(NEW_ROW_(count),out); +else +{fputc(SKIP0,out); + +if(count<256) +{fputc(PAINT1,out); +fputc(count,out); +} +else +{fputc(PAINT2,out); +fputc(count>>8,out); +fputc(count&0xFF,out); +} +} +} +else +{if(skip==1) +fputc(SKIP0,out); +else +{if(skip<256) +{fputc(SKIP1,out); +fputc(skip,out); +} +else +{fputc(SKIP2,out); +fputc(skip>>8,out); +fputc(skip&0xFF,out); +} +} +skip= 0; +if(count<64) +fputc(PAINT_(count),out); +else if(count<256) +{fputc(PAINT1,out); +fputc(count,out); +} +else +{fputc(PAINT2,out); +fputc(count>>8,out); +fputc(count&0xFF,out); +} +} +count= 0; +paint= BLACK; +break; +} +x++; +cp++; +} +if(x>=pk_output_size_x) +{skip++; +y++; +continue; +} + + +/*:43*/ +#line 1352 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +start: +/*44:*/ +#line 1429 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +while(x<pk_output_size_x) +{if(*cp==paint) +count++; +else +{if(count<64) +fputc(PAINT_(count),out); +else if(count<256) +{fputc(PAINT1,out); +fputc(count,out); +} +else +{fputc(PAINT2,out); +fputc(count>>8,out); +fputc(count&0xFF,out); +} +count= 1; +paint= BLACK-paint; +} +x++; +cp++; +} +if(paint==BLACK) +{if(count<64) +fputc(PAINT_(count),out); +else if(count<256) +{fputc(PAINT1,out); +fputc(count,out); +} +else +{fputc(PAINT2,out); +fputc(count>>8,out); +fputc(count&0xFF,out); +} +paint= WHITE; +} + + + +/*:44*/ +#line 1354 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +y++; +} +} + + +/*:42*//*46:*/ +#line 1495 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void write_pl(void) +{int i,pos; +char output_file[FILE_NAME_LENGTH+1]; +long t,sc; +char*s; +char tfm_header[]= "Created by hbf2gf"; + +file_number--; + +if(mf_like) +{if(unicode) +sprintf(output_file,"%s%02x.pl",output_name,file_number); +else +sprintf(output_file,"%s%02i.pl",output_name,file_number); +} +else +sprintf(output_file,"%s.pl",output_name); + +if(!(out= fopen(output_file,WRITE_TXT))) +{fprintf(stderr,"Couldn't open `%s'\n",output_file); +exit(1); +} +if(!quiet) +printf("\nWriting `%s'\n",output_file); + +fprintf(out, +"\n(FAMILY %s%d)" +"\n(CODINGSCHEME CJK-%s)", +output_name,file_number,font_encoding); + +fprintf(out, +"\n(DESIGNSIZE R %.6f)" +"\n(COMMENT DESIGNSIZE IS IN POINTS)" +"\n(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)" +"\n(CHECKSUM O %lo)" +"\n(FONTDIMEN" +"\n (SLANT R %.6f)" +"\n (SPACE R 0.0)" +"\n (STRETCH R 0.0)" +"\n (SHRINK R 0.0)" +"\n (XHEIGHT R 1.0)" +"\n (QUAD R 1.0)" +"\n (EXTRASPACE R 0.0)" +"\n )",design_size,checksum,slant); + +s= tfm_header; +i= strlen(s); +t= ((long)i)<<24; +sc= 16; +pos= 18; + +fprintf(out,"\n"); +while(i> 0) +{t|= ((long)(*(unsigned char*)s++))<<sc; +sc-= 8; +if(sc<0) +{fprintf(out,"\n(HEADER D %d O %lo)",pos,t); +t= 0; +sc= 24; +pos++; +} +i--; +} +if(t) +fprintf(out,"\n(HEADER D %d O %lo)",pos,t); +fprintf(out,"\n"); + +for(i= 0;i<256;i++) +{fprintf(out, +"\n(CHARACTER O %o" +"\n (CHARWD R %.6f)" +"\n (CHARHT R %.6f)" +"\n (CHARDP R %.6f)" +"\n (CHARIC R %.6f)" +"\n )", +i, +tfm_output_size_x+2*tfm_offset_x, +tfm_output_size_y+tfm_offset_y, +-tfm_offset_y, +slant*(tfm_output_size_y+tfm_offset_y)); +} + +fclose(out); +} + + + +/*:46*//*48:*/ +#line 1592 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void write_ovp(void) +{int c,i,nmb_subfonts,remainder,count,pos; +char output_file[FILE_NAME_LENGTH+1]; +long t,sc; +char*s; +char ofm_header[]= "Created by hbf2gf"; + +nmb_subfonts= ((max_char-(min_char&0xFF00))/256*nmb_2_bytes) +/256+1; +remainder= ((max_char-(min_char&0xFF00))/256*nmb_2_bytes) +%256; + + +for(count= 0;count<(max_char&0xFF);count++) +if(b2_codes[count]) +remainder++; +if(remainder>=256) +nmb_subfonts++; + +sprintf(output_file,"%s.ovp",output_name); + +if(!(out= fopen(output_file,WRITE_TXT))) +{fprintf(stderr,"Couldn't open `%s'\n",output_file); +exit(1); +} +if(!quiet) +printf("\nWriting `%s'\n",output_file); + +fprintf(out, +"\n(VTITLE Omega virtual font created by hbf2gf)" +"\n(DESIGNSIZE R %.6f)" +"\n(COMMENT DESIGNSIZE IS IN POINTS)" +"\n(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)" +"\n(CHECKSUM O %lo)" +"\n(FONTDIMEN" +"\n (SLANT R %.6f)" +"\n (SPACE R 0.0)" +"\n (STRETCH R 0.0)" +"\n (SHRINK R 0.0)" +"\n (XHEIGHT R 1.0)" +"\n (QUAD R 1.0)" +"\n (EXTRASPACE R 0.0)" +"\n )",design_size,checksum,slant); + +s= ofm_header; +i= strlen(s); +t= ((long)i)<<24; +sc= 16; +pos= 18; + +fprintf(out,"\n"); +while(i> 0) +{t|= ((long)(*(unsigned char*)s++))<<sc; +sc-= 8; +if(sc<0) +{fprintf(out,"\n(HEADER D %d O %lo)",pos,t); +t= 0; +sc= 24; +pos++; +} +i--; +} +if(t) +fprintf(out,"\n(HEADER D %d O %lo)",pos,t); +fprintf(out,"\n"); + +for(i= 0;i<nmb_subfonts;i++) +{fprintf(out, +"\n(MAPFONT D %i" +"\n (FONTNAME %s%02i)" +"\n (FONTCHECKSUM O %lo)" +"\n (FONTAT R 1.0)" +"\n (FONTDSIZE R %.6f)" +"\n )",i,output_name,i+1,checksum,design_size); +} + +for(c= min_char,i= 0,count= 0;c<=max_char;c++) +{if(b2_codes[c&0xFF]==VALID_SUBCODE) +{fprintf(out, +"\n(CHARACTER O %o" +"\n (CHARWD R %.6f)" +"\n (CHARHT R %.6f)" +"\n (CHARDP R %.6f)" +"\n (CHARIC R %.6f)" +"\n (MAP" +"\n (SELECTFONT D %i)" +"\n (SETCHAR O %o)" +"\n )" +"\n )", +c, +tfm_output_size_x+2*tfm_offset_x, +tfm_output_size_y+tfm_offset_y, +-tfm_offset_y, +slant*(tfm_output_size_y+tfm_offset_y), +i, +count); + +count++; +if(count==256) +{count= 0; +i++; +} +} +else +continue; +} + +fclose(out); +} + + + +/*:48*//*51:*/ +#line 1737 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void write_job(void) +{FILE*out; +int i,j; +char buffer[FILE_NAME_LENGTH+1]; + + +strcpy(buffer,output_name); +strcat(buffer,job_extension); +if(!(out= fopen(buffer,WRITE_TXT))) +{fprintf(stderr,"Couldn't open `%s'\n",buffer); +exit(1); +} +if(!quiet) +printf("\nWriting `%s'\n",buffer); + +if(pk_files) +{if(unicode) +{for(i= (min_char>>8),j= 0;j<nmb_files;i++,j++) +fprintf(out, +"%s %s%02x.gf %s%s%02x.%.0ipk\n" +"%s %s%02x.gf\n", +GFTOPK_NAME,output_name,i, +pk_directory,output_name,i, +long_extension?(int)(dpi_x*magstep_x+0.5):0, +rm_command,output_name,i); +} +else +{for(i= 1;i<=nmb_files;i++) +fprintf(out, +"%s %s%02i.gf %s%s%02i.%.0ipk\n" +"%s %s%02i.gf\n", +GFTOPK_NAME,output_name,i, +pk_directory,output_name,i, +long_extension?(int)(dpi_x*magstep_x+0.5):0, +rm_command,output_name,i); +} +} + +if(tfm_files) +{fprintf(out, +"\n" +"%s %s.pl %s.tfm\n" +"%s %s.pl\n" +"\n", +PLTOTF_NAME,output_name,output_name, +rm_command,output_name); + +if(unicode) +{for(i= (min_char>>8),j= 0;j<nmb_files;i++,j++) +fprintf(out, +"%s %s.tfm %s%s%02x.tfm\n", +cp_command,output_name, +tfm_directory,output_name,i); +} +else +{for(i= 1;i<=nmb_files;i++) +fprintf(out, +"%s %s.tfm %s%s%02i.tfm\n", +cp_command,output_name, +tfm_directory,output_name,i); +} + +fprintf(out, +"\n" +"%s %s.tfm", +rm_command,output_name); +} + +if(ofm_file) +{fprintf(out, +"\n" +"%s %s.ovp %s.ovf %s.ofm\n" +"%s %s.ovp\n" +"\n", +OVP2OVF_NAME,output_name,output_name,output_name, +rm_command,output_name); +} + +fclose(out); +} + + + +/*:51*//*55:*/ +#line 1989 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void read_config(void) +{HBF_BBOX*boxp; +char*real_config_file; + + +/*56:*/ +#line 2041 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +{int i,lastext= -1; + +for(i= 0;config_file[i];i++) +if(config_file[i]=='.') +lastext= i; +else if(config_file[i]=='/'|| +config_file[i]==':'|| +config_file[i]=='\\') +lastext= -1; + +if(lastext==-1) +strcat(config_file,".cfg"); +} + + +/*:56*/ +#line 1995 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + + +real_config_file= TeX_search_cfg_file(config_file); +if(!real_config_file) +{if(mf_like) +{if(!quiet) +printf("Couldn't find `%s'\n",config_file); +exit(2); +} +else +{fprintf(stderr,"Couldn't find `%s'\n",config_file); +exit(1); +} +} + +if(!(config= fopen(real_config_file,READ_TXT))) +{if(!testing) +{fprintf(stderr,"Couldn't open `%s'\n",config_file); +exit(1); +} +else +{if(!quiet) +fprintf(stderr,"Couldn't find or open `%s'\n",config_file); +exit(2); +} +} + +if(testing) +{if(!quiet) +printf("%s\n",real_config_file); +exit(0); +} + +/*57:*/ +#line 2058 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +{char hbf_header[STRING_LENGTH+1]; +char*real_hbf_header; + +if(!fsearch("hbf_header")) +config_error("hbf_header"); +else +strcpy(hbf_header,Buffer); + +real_hbf_header= TeX_search_hbf_file(hbf_header); +if(!real_hbf_header) +{fprintf(stderr,"Couldn't find `%s'\n",hbf_header); +exit(1); +} + +hbfDebug= 1; + + +if(!(hbf= hbfOpen(real_hbf_header))) +exit(1); + +hbfDebug= 0; + +boxp= hbfBitmapBBox(hbf); +input_size_x= boxp->hbf_height; +input_size_y= boxp->hbf_width; +font_encoding= hbfProperty(hbf,"HBF_CODE_SCHEME"); + +if(!fsearch("output_name")) +config_error("output_name"); +else +strcpy(output_name,Buffer); +} + + +/*:57*/ +#line 2028 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +/*59:*/ +#line 2102 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +{if(fsearch("nmb_files")) +nmb_files= atoi(Buffer); +if(fsearch("unicode")) +if(Buffer[0]=='y'||Buffer[0]=='Y') +unicode= TRUE; +if(fsearch("min_char")) +{user_min_char= strtoul(Buffer,(char**)NULL,0); +have_min_char= TRUE; +} + +if(!mf_like) +{if(fsearch("pk_files")) +if(Buffer[0]=='n'||Buffer[0]=='N') +pk_files= FALSE; +if(fsearch("tfm_files")) +if(Buffer[0]=='n'||Buffer[0]=='N') +tfm_files= FALSE; +if(fsearch("ofm_file")) +if(Buffer[0]=='y'||Buffer[0]=='Y') +ofm_file= TRUE; +if(fsearch("long_extension")) +if(Buffer[0]=='n'||Buffer[0]=='N') +long_extension= FALSE; +} + +if(fsearch("slant")) +slant= atof(Buffer); +if(slant<0.0||slant> 1.0) +{fprintf(stderr,"Invalid slant\n"); +exit(1); +} +if(fsearch("rotation")) +if(Buffer[0]=='y'||Buffer[0]=='Y') +rotation= TRUE; + +if(fsearch("mag_x")) +mag_x= atof(Buffer); +if(fsearch("mag_y")) +mag_y= atof(Buffer); +if(!mag_x&&!mag_y) +{mag_x= 1.0; +mag_y= 1.0; +} +if(mag_x&&!mag_y) +mag_y= mag_x; +if(mag_y&&!mag_x) +mag_x= mag_y; +if(mag_x<=0.0) +{fprintf(stderr,"Invalid horizontal magnification\n"); +exit(1); +} +if(mag_y<=0.0) +{fprintf(stderr,"Invalid vertical magnification\n"); +exit(1); +} + +if(fsearch("dpi_x")) +dpi_x= atoi(Buffer); +if(fsearch("dpi_y")) +dpi_y= atoi(Buffer); +if(!dpi_x&&!dpi_y) +{dpi_x= 300; +dpi_y= 300; +} +if(dpi_x&&!dpi_y) +dpi_y= dpi_x; +if(dpi_y&&!dpi_x) +dpi_x= dpi_y; +if(dpi_x<=PRINTER_MIN_RES_X) +{fprintf(stderr,"Invalid horizontal printer resolution\n"); +exit(1); +} +if(dpi_y<=PRINTER_MIN_RES_Y) +{fprintf(stderr,"Invalid vertical printer resolution\n"); +exit(1); +} + +if(fsearch("design_size")) +design_size= atof(Buffer); + +if(fsearch("x_offset")) +offset_x= atoi(Buffer); +else +offset_x= rotation?0:(boxp->hbf_xDisplacement*mag_x+0.5); +if(fsearch("y_offset")) +offset_y= atoi(Buffer); +else +offset_y= rotation?0:(boxp->hbf_yDisplacement*mag_y+0.5); +if(!fsearch("comment")) +comment[0]= '\0'; +else +strcpy(comment,Buffer); + +if(fsearch("threshold")) +threshold= atoi(Buffer); +if(threshold<=0||threshold>=255) +{fprintf(stderr,"Invalid threshold\n"); +exit(1); +} + +if(!fsearch("checksum")) +checksum= 0; +else +checksum= strtoul(Buffer,(char**)NULL,0); + +if(!fsearch("coding")) +coding[0]= '\0'; +else +strcpy(coding,Buffer); + +if(!fsearch("pk_directory")) +pk_directory[0]= '\0'; +else +strcpy(pk_directory,Buffer); + +if(!fsearch("tfm_directory")) +tfm_directory[0]= '\0'; +else +strcpy(tfm_directory,Buffer); + +if(fsearch("rm_command")) +strcpy(rm_command,Buffer); +else +strcpy(rm_command,"rm"); + +if(fsearch("cp_command")) +strcpy(cp_command,Buffer); +else +strcpy(cp_command,"cp"); + +if(!fsearch("job_extension")) +job_extension[0]= '\0'; +else +{strncpy(job_extension,Buffer,EXTENSION_LENGTH); +job_extension[EXTENSION_LENGTH]= '\0'; +} +} + + +/*:59*/ +#line 2029 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + + +/*61:*/ +#line 2256 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +{const void*cp; +HBF_CHAR dummy; + +cp= hbfGetCodeRange(hbf,NULL,&min_char,&max_char); +for(;cp!=NULL;cp= hbfGetCodeRange(hbf,cp,&dummy,&max_char)) +; + +if(have_min_char) +min_char= user_min_char; +} + + +/*:61*/ +#line 2031 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +/*63:*/ +#line 2285 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +{const void*b2r; +unsigned char dummy; +int i; + +for(i= 0;i<256;i++) +b2_codes[i]= 0; + +b2r= hbfGetByte2Range(hbf,NULL,&min_2_byte,&max_2_byte); +dummy= min_2_byte; +for(;b2r!=NULL;b2r= hbfGetByte2Range(hbf,b2r,&dummy,&max_2_byte)) +{for(i= dummy;i<=max_2_byte;i++) +b2_codes[i]= VALID_SUBCODE; +} + +for(i= 0;i<256;i++) +if(b2_codes[i]==VALID_SUBCODE) +nmb_2_bytes++; +} + + +/*:63*/ +#line 2032 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + + +fclose(config); +} + + +/*:55*//*65:*/ +#line 2317 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static int fsearch(const char*search_string) +{char*P,p; +const char*Q; +char temp_buffer[STRING_LENGTH+1]; +char env_name[STRING_LENGTH+1]; +char*env_p; +char*env_value; +char*Buf_p; +int Ch,ch,old_ch= '\n'; +int count= STRING_LENGTH; + +rewind(config); + +do +{Q= search_string; +p= tolower((unsigned char)*Q); +Ch= fgetc(config); +ch= tolower(Ch); +while(!(ch==p&&old_ch=='\n')&&Ch!=EOF) + + +{old_ch= ch; +Ch= fgetc(config); +ch= tolower(Ch); +} + +for(;;) +{if(*(++Q)=='\0') +if((Ch= fgetc(config))==' '||Ch=='\t') + +goto success; +Ch= fgetc(config); +if(tolower(Ch)!=tolower((unsigned char)*Q)) +break; +} +} +while(Ch!=EOF); + +return 0; + +success: +P= temp_buffer; + +while((Ch= fgetc(config))==' '||Ch=='\t') + +; +while(Ch!='\n'&&--count> 0&&Ch!=EOF) +{*P++= Ch; +Ch= fgetc(config); +} +*P= '\0'; + +if(*temp_buffer) +/*66:*/ +#line 2396 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +{P= temp_buffer; +Buf_p= Buffer; +count= STRING_LENGTH-1; + +while(*P&&count> 0) +{env_p= env_name; + +if(*P=='$') +{P++; +if(*P=='$') +{*(Buf_p++)= *(P++); +count--; +continue; +} +while(*P=='{') +P++; +if(!(isalpha((unsigned char)*P)||*P=='_')) +{fprintf(stderr, +"Invalid environment variable name in configuration file\n"); +exit(1); +} +*(env_p++)= *(P++); +while(*P) +{if(isalnum((unsigned char)*P)||*P=='_') +*(env_p++)= *(P++); +else +{while(*P=='}') +P++; +*env_p= '\0'; +break; +} +} + +env_value= getenv(env_name); +if(env_value) +{while(*env_value&&count> 0) +{*(Buf_p++)= *(env_value++); +count--; +} +} +} +else +{*(Buf_p++)= *(P++); +count--; +} +} +*Buf_p= '\0'; +} + + +/*:66*/ +#line 2371 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +else +*Buffer= '\0'; + +return(*Buffer)?1:0; +} + + +/*:65*//*68:*/ +#line 2456 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static void config_error(const char*message) +{fprintf(stderr,"Couldn't find `%s' entry in configuration file\n", +message); +exit(1); +} + + + +/*:68*//*72:*/ +#line 2499 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +static const char*TeX_search_version(void) +{ +#if defined(HAVE_LIBKPATHSEA) +return kpathsea_version_string; +#elif defined(HAVE_EMTEXDIR) +return emtex_version_string; +#elif defined(HAVE_MIKTEX) +char buf[200]; + +strcpy(buf,"MiKTeX "); +miktex_get_miktex_version_string_ex(buf+7,sizeof(buf)-7); + +return buf; +#else +return no_version_string; +#endif +} + + +/*:72*//*75:*/ +#line 2541 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +#ifdef HAVE_EMTEXDIR +static int dir_setup(ed,env,dir,flags) +struct emtex_dir*ed; +const char*env; +const char*dir; +unsigned flags; + +{const char*val; +char path[260]; + +ed->alloc= 0; +ed->used= 0; +ed->list= NULL; + +if(env!=NULL&&(val= getenv(env))!=NULL) +return setup_list(ed,path,val,flags); +else +fprintf(stderr, +"Environment variable `%s' not set; use current directory\n", +env); + +return TRUE; +} +#endif + + +/*:75*//*77:*/ +#line 2576 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +#ifdef HAVE_EMTEXDIR +static char*file_find(name,list) +char*name; +struct emtex_dir*list; + +{if(emtex_dir_find(name_buffer,sizeof(name_buffer),list,name,EDF_CWD)) +return name_buffer; + +return NULL; +} +#endif + + +/*:77*//*80:*/ +#line 2627 "/home/wl/git/cjk/cjk-4.8.5/utils/hbf2gf/hbf2gf.w" + +#if defined(HAVE_LIBKPATHSEA) +static char*TeX_search_cfg_file(char*name) +{ +return kpse_find_file(name,kpse_program_text_format,TRUE); +} + + +static char*TeX_search_hbf_file(char*name) +{ +return kpse_find_file(name,kpse_miscfonts_format,TRUE); +} + + +#elif defined(HAVE_EMTEXDIR) +static char*TeX_search_cfg_file(char*name) +{return file_find(name,&cfg_path); +} + + +static char*TeX_search_hbf_file(char*name) +{return file_find(name,&hbf_path); +} + + +#elif defined(HAVE_MIKTEX) +static char*TeX_search_cfg_file(char*name) +{char result[_MAX_PATH]; + +if(!miktex_find_input_file("hbf2gf",*name,result)) +return 0; +return strdup(result); +} + + +static char*TeX_search_hbf_file(char*name) +{char result[_MAX_PATH]; + + +if(!miktex_find_miscfont_file(*name,result)) +return 0; +return strdup(result); +} + + +#else +static char*TeX_search_cfg_file(char*name) +{return name; +} + + +static char*TeX_search_hbf_file(char*name) +{return name; +} +#endif + + + +/*:80*/ diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf2gf.def b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf2gf.def new file mode 100644 index 0000000000..6f4d22ee8c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf2gf.def @@ -0,0 +1,3 @@ +NAME HBF2GF WINDOWCOMPAT +DESCRIPTION 'hbf2gf (CJK Ver. 4.8.5)' +STACKSIZE 0x80000 diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf2gf.w b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf2gf.w new file mode 100644 index 0000000000..b248ecc694 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/hbf2gf.w @@ -0,0 +1,2816 @@ +% This is the cweb file hbf2gf.w of the CJK package ver. 4.8.5 16-Oct-2021 + +% Copyright (C) 1994-2021 Werner Lemberg <wl@@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +% To print this CWEB file you should (but not must) use the CWEAVE of the +% c2cweb-package (found at the CTAN archives, e.g. ftp.dante.de) and then say +% +% cweave +ai hbf2gf.w +% +% This (fully compatible) CWEAVE can transform CWEB-files with alternative +% output rules (look at the position of braces below!) the author (it's me +% too :-) prefer. Otherwise this file will be formatted traditionally. + +\font\meta=logo10 +\def\mf{{\meta META}\-{\meta FONT}} +\def\Om{\char "0A} % Omega symbol + +\def\title{hbf2gf (CJK Version 4.8.5)} + +\def\topofcontents{ + \null\vfill + \centerline{\titlefont The {\ttitlefont hbf2gf} program} + \vskip 20pt + \centerline{(CJK Version 4.8.5)} + \vfill} + +\def\botofcontents{ + \vfill + \noindent + Copyright \copyright~1996-1999 by Werner Lemberg + \bigskip\noindent + Permission is granted to make and distribute verbatim copies of this + document provided that the copyright notice and this permission notice are + preserved on all copies. + + \smallskip\noindent + Permission is granted to copy and distribute modified versions of this + document under the conditions for verbatim copying, provided that the + entire resulting derived work is distributed under the terms of a + permission notice identical to this one.} + +\pageno=\contentspagenumber \advance\pageno by 1 +\let\maybe=\iftrue +\fullpageheight=240mm +\pageheight=223mm +\pagewidth=158mm +\setpage +\frenchspacing + + +\def\msdos{\.{msdos}} +@s msdos TeX + +@s HBF int +@s HBF_CHAR int +@s HBF_BBOX int + +@s __inline__ int + + +@* Introduction. +This is the \.{hbf2gf} program by Werner Lemberg +(\.{wl@@gnu.org}). + +The ``banner line'' defined here should be changed whenever \.{hbf2gf} is +modified. + +@d banner +"hbf2gf (CJK ver. 4.8.5)" + + +@ +\.{hbf2gf} is intended to convert Hanzi Bitmap Fonts (HBF) into \TeX\ +generic font files (\.{GF} files) according to the \\{CJK} package, which +\.{hbf2gf} is part of. + +The outline of \.{hbf2gf} is simple: a CJK (Chinese/Japanese/Korean) bitmap +file will be scaled and written in at most |nmb_files| \.{GF} files, each +file containing |256|~characters (except the last and possibly the first +one). In the normal case it's not necessary to compute the right value of +|nmb_files| because \.{hbf2gf} will do this; you should use |-1| instead to +indicate this. See the last section for an example. + +Alternatively you can call \.{hbf2gf} similar to \mf, i.e., the program will +compute one font on demand. This mode will be used if two or three input +parameters instead of one are given: the font name, the horizontal +resolution, and optionally a vertical scaling factor or resolution to allow +modes for e.g.\ $300\times600\,\hbox{dpi}$ printers. \.{hbf2gf} will extract +the configuration file name from the font name; if this file isn't found, +the program exits with error code~|2| (this is useful for scripts like +\.{mktexpk}). If the configuration file is found but an error occurs while +computing the font, error code~|1| is returned. In case of success, the exit +code is zero. + +The characters in the input font files are completely described by the HBF +header file. This program uses the HBF API implementation of Ross Paterson +(\.{ross@@soi.city.ac.uk}; with small extensions). You will find a +description of the HBF standard at \.{ftp.ifcss.org}. + +A batch file created by \.{hbf2gf} too (if the program computes a whole set +of subfonts) will convert the \.{GF} files to \.{PK} files using +\.{GFtoPK}, a part of every \TeX\ package. + +@d TRUE 1 +@d FALSE 0@# + +@d STRING_LENGTH 255 + /* the maximal length of an input string in the configuration file */ +@d FILE_NAME_LENGTH 1024 + /* the maximal length (including the path) of a filename */@# + +@<Global variables@>= +int nmb_files = -1; /* create all files by default */ +int unicode = FALSE; /* whether a Unicode font should be processed */@# + +int testing = FALSE; /* whether we test only the font name */@# + +int mf_like = FALSE; /* whether we are in the \mf-like mode */ +int file_number = 0; /* the subfont number */@# + +double x_resolution = 0.0; /* the second and third input parameter */ +double y_scale = 1.0;@# + +int pk_files = TRUE; /* command line options */ +int tfm_files = TRUE; +int long_extension = TRUE; +int quiet = FALSE;@# + +char config_file[FILE_NAME_LENGTH + 4 + 1]; + /* we probably must add `\.{.cfg}' */ +char output_name[STRING_LENGTH + 1];@# + +FILE *config, *out; +HBF *hbf;@# + +#ifdef msdos /* if we compile under DOS or OS/2 */ +#define WRITE_BIN "wb" +#define WRITE_TXT "wt" +#define READ_BIN "rb" +#define READ_TXT "rt" +#else +#define WRITE_BIN "w" +#define WRITE_TXT "w" +#define READ_BIN "r" +#define READ_TXT "r" +#endif@# + +int end_of_file = FALSE; + + +@ +One \.{PL} file will be created additionally, which describes the font +metrics in a readable way. Because all CJK characters have identical +bounding boxes, one metrics file is enough---the batch job created by +\.{hbf2gf} calls \.{PLtoTF} to produce this \.{TFM} file and then copies +it into |nmb_files| metrics files. There usually will be a discrepancy +between the number of characters in the last \.{GF} file and the +\.{TFM} file, but this does not harm. + +If you specify the \.{ofm\_file} option in the configuration file, an +extended virtual property file (such files have the extension \.{.ovp}) for +the \Om\ system is written; this will be then converted with +\.{ovp2ovf} into an \.{OFM} and an \.{OVF} file to map all the subfonts +into one large virtual font. + + + +@* The main routine. +The main routine takes |file_name|, |x_resolution|, and |y_scale| as command +line parameters if in \mf-like mode, otherwise |config_file| as the only +argument. |read_config()| scans the configuration file and fills the global +variables, |write_file()| writes the \.{GF} files, |write_pl()| and +|write_ovp()| write the \.{PL} and \.{OVP} files respectively, and +|write_job()| the batch file. + +@c +@<Include files@>@; +@<Prototypes@>@; +@<Global variables@>@;@# + + +int main(int argc, char *argv[]) + {char *p; + + @<Initialize \TeX\ file searching@>@;@# + + @<Scan options@>@;@# + + if(!quiet) + printf("\n%s\n\n", banner);@# + + strncpy(config_file, argv[1], FILE_NAME_LENGTH); + config_file[FILE_NAME_LENGTH] = '\0';@# + + if(argc > 2 || testing) + {int l = strlen(config_file); + + if(l > 2) + config_file[l - 2] = '\0'; + /* strip subfont number from file name */ + else + {if(!quiet) + printf("`%s' can't be a subfont created by hbf2gf\n", + config_file); + exit(2); + }@# + + mf_like = TRUE; + }@# + + read_config(); /* will call |exit(1)| on errors */@# + + if(mf_like) + @<Check other arguments@>@;@# + + @<Initialize variables@>@;@# + + @<Write files@>@;@# + + if(tfm_files) + write_pl(); + if(ofm_file) + write_ovp(); + if(!mf_like) + write_job();@# + + hbfClose(hbf);@# + + exit(0); + return 0; /* never reached */ + } + + +@ +@d VERSION @/ +"\n"@/ +"Copyright (C) 1996-1999 Werner Lemberg.\n"@/ +"There is NO warranty. You may redistribute this software\n"@/ +"under the terms of the GNU General Public License\n"@/ +"and the HBF library copyright.\n"@/ +"\n"@/ +"For more information about these matters, see the files\n"@/ +"named COPYING and hbf.c.\n"@/ +"\n" + +@<Print version@>= + {printf("\n"); + printf(banner); + printf(" (%s)\n", TeX_search_version()); + printf(VERSION); + exit(0); + } + + +@ +@d USAGE @/ +"\n"@/ +"Usage: hbf2gf [-q] configuration_file[.cfg]\n"@/ +" hbf2gf [options] font_name x_resolution [y_scale | y_resolution]\n"@/ +" hbf2gf -t [-q] font_name\n"@/ +"\n"@/ +" Convert a font in HBF format to TeX's GF resp. PK format.\n"@/ +"\n"@/ +" -q be silent\n"@/ +" -p don't produce a PL file\n"@/ +" -g don't produce a GF file\n"@/ +" -n use no resolution in extension (only `.gf')\n"@/ +" -t test for font_name (returns 0 on success)\n"@/ +" --help print this message and exit\n"@/ +" --version print version number and exit\n"@/ +"\n" + +@<Print help information@>= + {printf(USAGE); + exit(0); + } + + +@ +Three options can be specified to the program (\.{-p}, \.{-g}, and \.{-n}) +if in \mf-like mode to suppress creation of a \.{PL} resp.\ a +\.{GF} file, and to force a `\.{.gf}' extension (instead of +e.g.\ `\.{.300gf}'). The corresponding setting of a particular switch in the +configuration file is ignored then. + +Additionally, the option \.{-t} tests whether the specified subfont name +leads to an \.{hbf2gf} configuration file. It returns 0 on success and prints +out the name of that configuration file (provided the \.{-q} switch isn't +set). This test isn't a thorough one; it only removes the last two characters +and checks whether a configuration file with that name exists. + +@<Scan options@>= + if(argc == 2) + {if(strcmp(argv[1], "--help") == 0) + @<Print help information@>@; + else if(strcmp(argv[1], "--version") == 0) + @<Print version@>@; + }@# + + while(argc > 1) + {p = argv[1]; + if(p[0] != '-') + break; + if(p[1] == 'p') + tfm_files = FALSE; + else if(p[1] == 'g') + pk_files = FALSE; + else if(p[1] == 'n') + long_extension = FALSE; + else if(p[1] == 'q') + quiet = TRUE; + else if(p[1] == 't') + testing = TRUE;@# + + argv++; + argc--; + }@# + + if(testing) + {if(argc != 2) + {fprintf(stderr, "Need exactly one parameter for `-t' option.\n"); + fprintf(stderr, "Try `hbf2gf --help' for more information.\n"); + exit(1); + } + } + else if(argc < 2 || argc > 4) + {fprintf(stderr, "Invalid number of parameters.\n"); + fprintf(stderr, "Try `hbf2gf --help' for more information.\n"); + exit(1); + }@# + + +@ +If the (optional) argument is larger than~|10|, we treat it as a value for +the vertical resolution (in dpi), otherwise as a vertical scaling factor. + +@<Check other arguments@>= + {if(unicode) + file_number = (int)strtol(&argv[1][strlen(argv[1]) - 2], + (char **)NULL, 16); + else + file_number = atoi(&argv[1][strlen(argv[1]) - 2]);@# + + x_resolution = atof(argv[2]); + if(x_resolution < PRINTER_MIN_RES_X) + {fprintf(stderr, "Invalid horizontal resolution\n"); + exit(1); + }@# + + if(argc > 3) + {y_scale = atof(argv[3]); + if(y_scale < 0.01) + {fprintf(stderr, + "Invalid vertical scaling factor or resolution\n"); + exit(1); + } + if(y_scale > 10.0) + y_scale = (double)x_resolution / y_scale; + } + } + + +@ +If |unicode| is |TRUE|, the start value of the running number appended to +the base name of the output font files is taken from the HBF header file, +otherwise it starts with~`\.{01}'. |min_char| represents the lower bound of +the code range. + +If we are in \mf-like mode, |file_number| is taken from the command line, +and |max_numb| will be set to~|1|. + +@<Write files@>= + {int j, max_numb; + + if(!mf_like) + {file_number = (unicode == TRUE ? (min_char >> 8) : 1); + if(nmb_files == -1) + max_numb = (unicode == TRUE ? 0x100 : 100); + else + max_numb = nmb_files; + } + else + max_numb = 1;@# + + for(j = 0; (j < max_numb) && !end_of_file; file_number++, j++) + write_file();@# + + nmb_files = j; /* the real number of output font files */ + } + + +@ +@<Include files@>= +#ifdef HAVE_CONFIG_H +#include <c-auto.h> +#endif +#include <ctype.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#ifdef TM_IN_SYS_TIME +#include <sys/time.h> +#endif +#include "hbf.h" + + + +@* The functions. +The first function to be described is |write_file()|. Each \.{GF} file +consists of three sections: a preamble, a data section, and a postamble. The +functions |write_pre()|, |write_data()|, and |write_post()| handle this. + +@<Prototypes@>= +static void write_file(void); + + +@ +In \mf-like mode we create font file name extensions similar to \mf\ if +the \.{-n} option isn't specified; otherwise only `\.{.gf}' will be appended. + +@c +static void write_file(void) + {char output_file[FILE_NAME_LENGTH + 1]; + + + if(pk_files) + {if(mf_like) + {if(unicode) + sprintf(output_file, "%s%02x.%.0igf",@/ + output_name, file_number, + long_extension ? (int)(x_resolution + 0.5) : 0); + else + sprintf(output_file, "%s%02i.%.0igf",@/ + output_name, file_number, + long_extension ? (int)(x_resolution + 0.5) : 0); + } + else + {if(unicode) + sprintf(output_file, "%s%02x.gf", output_name, file_number); + else + sprintf(output_file, "%s%02i.gf", output_name, file_number); + } + if(!(out = fopen(output_file, WRITE_BIN))) + {fprintf(stderr, "Couldn't open `%s'\n", output_file); + exit(1); + } + if(!quiet) + printf("Writing `%s' ", output_file);@# + + write_pre(); + write_data(); + write_post(); + fclose(out);@# + + if(!quiet) + printf("\n"); + } + else + write_data(); + } + + +@ +The preamble has two bytes at the very beginning, |PRE| and |GF_ID|. |PRE| +starts the preamble, and |GF_ID| is the Generic Font Identity Byte. The next +bytes are a string in Pascal format containing a header, the date, and the +time. Strings in Pascal format start with the length of the string and have +no terminating NULL byte. + +@d GF_ID 131 +@d PRE 247@# + +@d header " hbf2gf output " + +@<Prototypes@>= +static void write_pre(void); + + +@ +@s tm int + +@c +static void write_pre(void) + {char out_s[40], s[20]; + time_t secs_now; + struct tm *time_now; + + + strcpy(out_s, header);@# + + secs_now = time(NULL); /* system date and time */ + time_now = localtime(&secs_now); + strftime(s, 20, "%Y.%m.%d:%H.%M", time_now); + strcat(out_s, s);@# + + fputc(PRE, out); + fputc(GF_ID, out); + fputc(strlen(out_s), out); + fputs(out_s, out); + } + + +@ +|write_data()| produces the middle part of the \.{GF} file. It first sets +|char_adr_p| equal to the address of |char_adr[]| which will contain file +offsets of the compressed characters. + +|input_size_x| and |input_size_y| reflect the original dimensions of the +bitmap font, |pk_output_size_x| and |pk_output_size_y| contain the width and +height of the output character box (in pixels), |pk_offset_x| and +|pk_offset_y| define the baseline of the font. The same names starting with +`\\{tfm\_}' instead of `\\{pk\_}' are used for \.{TFM} files (values are +multiples of design size). |mag_x| and |mag_y| hold the scaling factors +which are needed to reach |design_size|. |slant| defines the slant ($\Delta +x / \Delta y$), |target_size_x| and |target_size_y| will be the final +dimensions; |magstep_x = target_size_x / design_size| is \TeX's +\.{\\magstep}. + +The \CEE/ standard specifies that all global values will be automatically +set to~|0| if no initialization value is given. + +@<Global...@>= +long char_adr[256]; +long *char_adr_p;@# + +int pk_offset_x; + /* horizontal offset (increase character width a bit; will be applied on + both the left and the right side) */ +double tfm_offset_x; +int pk_offset_y; + /* vertical offset (must be configured to desired font size) */ +double tfm_offset_y;@# + +int input_size_x; +int input_size_y; +const char *font_encoding; /* taken from the HBF file */ +int pk_width; /* without slant */ +int pk_output_size_x; + /* the output character box dimensions without offsets */ +double tfm_output_size_x; +int pk_output_size_y; +double tfm_output_size_y;@# + +double design_size = 10.0; /* in points */ +double target_size_x; /* in points */ +double target_size_y; +double magstep_x; +double magstep_y; +double slant; +int rotation;@# + +double mag_x; /* horizontal and vertical magnification values */ +double mag_y;@# + +int empty_char; /* a flag whether the character does not exist or is empty */ +int last_char; /* the last valid character in a \.{GF} file */@# + +int dot_count; /* this counts the processed characters; + every ten characters a dot is output to the screen */ + + +@ +@<Prototypes@>= +static void write_data(void); + + +@ +@c +static void write_data(void) + {dot_count = 0; + char_adr_p = char_adr;@# + + for(last_char = 0; (last_char < 256) && !end_of_file; last_char++) + @<Write character@>@; + } + + +@ +The code in this section saves the current file position first and calls +|make_pixel_array()|, which expands and scales the character bitmap. + +|BOC| (and |BOC1|), the Begin Of Character command byte, must be followed by +the character code and the dimensions of the character as explained in +``\mf---the program'' (corrected by vertical and horizontal offsets). + +|write_coding()| compresses and outputs the bitmap; |EOC| (End Of Character) +finishes the current character. + +@d BOC 67 +@d BOC1 68 /* simplified version of |BOC| */ +@d EOC 69 + +@<Write character@>= + {if(dot_count++ % 10 == 0) /* a progress report for impatient users */ + if(pk_files && !quiet) + {printf("."); + fflush(stdout); + }@# + + empty_char = FALSE; + make_pixel_array(); + if(end_of_file) + return;@# + + if(pk_files) + {*char_adr_p = ftell(out); + char_adr_p++;@# + + if(empty_char) + {fputc(BOC1, out); + fputc((unsigned char)last_char, out); + fputc(0, out); + fputc(0, out); + fputc(0, out); + fputc(0, out); + fputc(EOC, out); + } + else + {fputc(BOC, out); + fputl(last_char, out); + fputl(-1L, out); + fputl(pk_offset_x, out); + fputl(pk_output_size_x + pk_offset_x, out); + fputl(pk_offset_y, out); + fputl(pk_output_size_y + pk_offset_y, out);@# + + write_coding();@# + + fputc(EOC, out); + } + } + } + + +@ +The current \.{GF} file will be completed with data written by +|write_post()|. The end consists of three sections: ``special'', ``post'', +and ``postpost''. The first contains material not used by \TeX\ itself but +which can be used by other programs like \.{GFtoDVI} or for documentary +purposes (|coding[]| and |comment[]|). The second describes the font as a +whole, and the last marks the end of the file. + +|pk_total_min_x| up to |pk_total_max_y| define the greatest bounding box of +this file (including offsets); the horizontal character escapement after +drawing the character is |pk_dx|. |tfm_width| is the width in multiples of +the design size ignoring the target size. + +@d _2_16 65536.0 /* $2^{16}$ */ +@d _2_20 1048576.0 /* $2^{20}$ */ + +@<Global...@>= +char coding[STRING_LENGTH + 1]; /* a comment describing the font encoding */ +char comment[STRING_LENGTH + 1]; /* a comment describing the font */@# + +unsigned long checksum;@# + +long pk_total_min_x; +long pk_total_max_x; +long pk_total_min_y; +long pk_total_max_y;@# + +int dpi_x; /* printer resolution */ +int dpi_y; +double ppp_x; /* pixels per point */ +double ppp_y; + + +@ +To clarify the meaning of these values see the sections about the metrics +and configuration file also. + +\TeX\ defines that 72.27~points are exactly 1~inch. + +@<Prototypes@>= +static void write_post(void); + + +@ +@c +static void write_post(void) + {long special_adr; + long post_adr;@# + + long designsize = design_size * _2_20; /* design size $* 2^{20}$ */@# + + int pk_dx; + long tfm_width;@# + + int i; + long temp; + + + ppp_x = dpi_x / 72.27 * magstep_x; + ppp_y = dpi_y / 72.27 * magstep_y;@# + + pk_total_min_x = pk_offset_x; + pk_total_max_x = pk_output_size_x + 2 * pk_offset_x; + pk_total_min_y = pk_offset_y; + pk_total_max_y = pk_output_size_y + pk_offset_y;@# + + pk_dx = pk_width + 2 * pk_offset_x; /* no slant */ + tfm_width = (tfm_output_size_x + 2 * tfm_offset_x) * _2_20; + /* width in multiples of design size $* 2^{20}$ */@# + + @<Special section@>@; + @<Post section@>@; + @<Postpost section@>@; + } + + +@ +\.{XXXn} will be followed by n~bytes representing the length of a string +which follows immediately. |YYY| is a 32~bit integer which is normally +connected with the preceding string (but not used here). |special_adr| +contains the address of the ``special section''. All items here are +optional. + +@d XXX1 239 /* these are all special command bytes */ +@d XXX2 240 /* not used */ +@d XXX3 241 /* not used */ +@d XXX4 242 /* not used */@# + +@d YYY 243 /* not used */ + +@<Special section@>= + special_adr = ftell(out);@# + + if(*coding) + {fputc(XXX1, out); /* |XXX1| implies a string length |< 256| */ + fputc(strlen(coding), out); + fputs(coding, out); + }@# + + if(*comment) + {fputc(XXX1, out); + fputc(strlen(comment), out); + fputs(comment, out); + } + + +@ +All character offsets collected in |char_adr| will be written to the output +file. |fputl()| writes a 32~bit integer into a file. + +|CHAR_LOC0| (and |CHAR_LOC|) is the first byte of a character locator +(i.e., offset, character code, and width information). |POST| starts the +postamble, and |post_adr| points to the beginning byte of the postamble. + +@d POST 248@# + +@d CHAR_LOC 245 +@d CHAR_LOC0 246 /* simplified version of |CHAR_LOC| */ + +@<Post section@>= + post_adr = ftell(out); + fputc(POST, out); + fputl(special_adr, out);@# + + fputl(designsize, out); + fputl(checksum, out); + fputl(ppp_x * _2_16, out); + fputl(ppp_y * _2_16, out); + fputl(pk_total_min_x, out); + fputl(pk_total_max_x, out); + fputl(pk_total_min_y, out); + fputl(pk_total_max_y, out);@# + + char_adr_p = char_adr;@# + + if(pk_dx < 256) + {for(i = 0; i < last_char; i++) /* the character locators */ + {fputc(CHAR_LOC0, out); + fputc(i, out); + fputc(pk_dx, out); + fputl(tfm_width, out); + fputl(*char_adr_p++, out); + } + } + else /* will only happen if |MAX_CHAR_SIZE >= 256| */ + {for(i = 0; i < last_char; i++) + {fputc(CHAR_LOC, out); + fputc(i, out); + fputl(pk_dx * _2_16, out); + fputl(0, out); + fputl(tfm_width, out); + fputl(*char_adr_p++, out); + } + } + + +@ +|POSTPOST| starts the section after the postamble. To get all information in +a \.{GF} file, you must start here. The very last bytes of the file have +the value |POSTPOST_ID| (the file is filled with at least 4 of these bytes +until a file length of a multiple of~4 is reached). Going backwards a +|GF_ID| will be next, then comes the address of the postamble section. + +Jumping to the postamble, a |POST| byte comes first, then the address of +the special section, and afterwards all character offsets. These offsets and +addresses describe the whole file. + +@d POSTPOST 249 +@d POSTPOST_ID 223 + +@<Postpost section@>= + fputc(POSTPOST, out); + fputl(post_adr, out); + fputc(GF_ID, out); + temp = ftell(out); + i = (int)(temp % 4) + 4; + while(i--) + fputc(POSTPOST_ID, out); + + +@ +\TeX\ wants the most significant byte first. + +@<Prototypes@>= +static void fputl(long, FILE *); + + +@ +@c +static void fputl(long num, FILE *f) + {fputc(num >> 24, f); + fputc(num >> 16, f); + fputc(num >> 8, f); + fputc(num, f); + } + + +@ +|make_pixel_array()| scales a character into the array |out_char[]| where +each \\{byte} represents one pixel, contrary to the input file where each +\\{bit} is used to store the character bitmap. |BLACK| indicates a black +pixel. + +The scaling routine was modeled after the program \.{pnmscale} of the +\.{pbmplus} package. \.{pbmplus} was designed to handle arbitrary pictures, +and bitmaps are only a special case of a graymap with values from~0 for +white up to |PIXEL_MAXVAL = 255| for black. + +If |EOF| is encountered, |end_of_file| is set and the function returns +immediately. + +@d BLACK 1 +@d WHITE 0@# + +@d PIXEL_MAXVAL 255 +@d SCALE 4096 +@d HALFSCALE 2048@# + +@d MAX_CHAR_SIZE 1023 + +@<Global...@>= +HBF_CHAR code; +const unsigned char *bitmap; + /* a proper input bitmap array will be allocated by the HBF API */ +const unsigned char *bP;@# + +unsigned char out_char[MAX_CHAR_SIZE * MAX_CHAR_SIZE + 1]; + /* the output bitmap array */ +unsigned char *out_char_p;@# + +unsigned char pixelrow[MAX_CHAR_SIZE]; +unsigned char temp_pixelrow[MAX_CHAR_SIZE]; +unsigned char new_pixelrow[MAX_CHAR_SIZE + 1]; + /* we need space to append a white pixel */@# +int curr_row; /* for |read_row()| if we access the glyph rotated */ + +long grayrow[MAX_CHAR_SIZE];@# + +long s_mag_x, s_mag_y, s_slant; + + +@ +We need to initialize the |grayrow[]| array together with some other +variables. + +Two steps are necessary to compute the |code| if we are in the \mf-like +mode. Assuming that we search the code \.{0xXXYY}, we first set |code| to +the value \.{0xXXAA}, where \.{0xAA} is equal to |min_2_byte| (getting +|offset| as the number of remaining characters to reach the first character +in our given subfont), then we increment |code| (and decrement |offset|) +until |offset| equals~0. + +@<Initialize variables@>= + {int col, offset; + + if(rotation) + {int tmp; + + + tmp = input_size_x; + input_size_x = input_size_y; + input_size_y = tmp; + }@# + + if(mf_like) + {target_size_x = design_size * (x_resolution / dpi_x); + target_size_y = design_size * (x_resolution * y_scale / dpi_y); + } + else + target_size_x = target_size_y = design_size; + magstep_x = target_size_x / design_size; + magstep_y = target_size_y / design_size;@# + + pk_offset_x = offset_x * magstep_x + 0.5; + pk_offset_y = offset_y * magstep_y + 0.5; + tfm_offset_x = offset_x / (dpi_x / 72.27) / design_size; + tfm_offset_y = offset_y / (dpi_y / 72.27) / design_size;@# + + pk_width = input_size_x * mag_x * magstep_x + 0.5; /* without slant */ + pk_output_size_x = input_size_x * mag_x * magstep_x + + input_size_y * mag_y * magstep_y * slant + 0.5; + pk_output_size_y = input_size_y * mag_y * magstep_y + 0.5; + tfm_output_size_x = input_size_x * mag_x / + (dpi_x / 72.27) / design_size; + tfm_output_size_y = input_size_y * mag_y / + (dpi_y / 72.27) / design_size; + if(pk_output_size_x > MAX_CHAR_SIZE) + {fprintf(stderr, "Output character box width too big\n"); + exit(1); + } + if(pk_output_size_y > MAX_CHAR_SIZE) + {fprintf(stderr, "Output character box height too big\n"); + exit(1); + }@# + + for(col = 0; col < input_size_x; ++col) + grayrow[col] = HALFSCALE;@# + + if(!mf_like) + code = (min_char & 0xFF00) + min_2_byte; + else + {if((file_number < (unicode ? 0 : 1)) || (file_number >= 0x100)) + {fprintf(stderr, "Invalid subfile number\n"); + exit(1); + }@# + + if(unicode) + {offset = 0; + code = file_number * 0x100; + } + else + {offset = (file_number - 1) * 256 % nmb_2_bytes; + code = (min_char & 0xFF00) + min_2_byte + + (file_number - 1) * 256 / nmb_2_bytes * 0x100; + }@# + + while(offset--) + while(!b2_codes[code++ & 0xFF]) + /* eliminate invalid |b2_codes| */ + ;@# + + if(code > max_char) + {fprintf(stderr, "Invalid subfile number\n"); + exit(1); + } + } + + s_mag_x = mag_x * magstep_x * SCALE; + s_mag_y = mag_y * magstep_y * SCALE; + s_slant = slant * SCALE; + } + + +@ +All arrays of the \\{pixelrow} family contain gray values. While scaling +with non-integer values a pixel of the input bitmap will normally not align +with the pixel grid of the output bitmap (geometrically spoken). In this +case we first compute the fractions of input pixel rows scaled vertically +and add the corresponding gray values until a temporary row is produced. +Then we repeat this procedure horizontally pixel by pixel and write the +result into an output array. + + +@<Prototypes@>= +static void make_pixel_array(void); + + +@ +@c +static void make_pixel_array(void) + {unsigned char *prP; + unsigned char *temp_prP; + unsigned char *new_prP; + long *grP;@# + + register unsigned char *xP; + register unsigned char *nxP;@# + + register int row, col; + int rows_read = 0; + register int need_to_read_row = 1;@# + + long frac_row_to_fill = SCALE; + long frac_row_left = s_mag_y;@# + + int no_code = FALSE; + + + prP = pixelrow; + temp_prP = temp_pixelrow; + new_prP = new_pixelrow; + grP = grayrow; + out_char_p = out_char; /* will be increased by |write_row()| */@# + +again: + if(b2_codes[code & 0xFF]) /* a valid second byte? */ + {if(pk_files) + {bitmap = hbfGetBitmap(hbf, code); + bP = bitmap; + /* will be increased by |read_row()| */@# + + if(!bitmap) + empty_char = TRUE; + else + @<Scale row by row@>@; + } + } + else + no_code = TRUE;@# + + if((code & 0xFF) == max_2_byte) + code += 0xFF - (max_2_byte - min_2_byte); /* go to next plane */ + if(code >= max_char) + {end_of_file = TRUE; + return; + }@# + + code++;@# + + if(no_code) + {no_code = FALSE; + goto again; + } + } + + +@ +@<Scale row by row@>= + {if(pk_output_size_y == input_size_y) /* shortcut Y~scaling if possible */ + temp_prP = prP;@# + + curr_row = input_size_y - 1; /* only needed for rotated glyphs */ + for(row = 0; row < pk_output_size_y; ++row) + {@<Scale Y from |pixelrow[]| into |temp_pixelrow[]|@>@; + @<Scale X from |temp_pixelrow[]| into |new_pixelrow[]| + and write it into |out_char[]|@>@; + } + } + + +@ +@<Scale Y from |pixelrow[]| into |temp_pixelrow[]|@>= + if(pk_output_size_y == input_size_y) + /* shortcut Y~scaling if possible */ + read_row(prP); + else + {while(frac_row_left < frac_row_to_fill) + {if(need_to_read_row) + if(rows_read < input_size_y) + {read_row(prP); + ++rows_read; + }@# + + for(col = 0, xP = prP; col < input_size_x; ++col, ++xP) + grP[col] += frac_row_left * (*xP);@# + + frac_row_to_fill -= frac_row_left; + frac_row_left = s_mag_y; + need_to_read_row = 1; + }@# + + @<Produce a temporary row@>@; + } + + +@ +Now |frac_row_left >= frac_row_to_fill|, so we can produce a row. + +@<Produce a temporary row@>= + if(need_to_read_row) + if(rows_read < input_size_y) + {read_row(prP); + ++rows_read; + need_to_read_row = 0; + }@# + + for(col = 0, xP = prP, nxP = temp_prP; + col < input_size_x; ++col, ++xP, ++nxP) + {register long g; + + + g = grP[col] + frac_row_to_fill * (*xP); + g /= SCALE; + if(g > PIXEL_MAXVAL) + g = PIXEL_MAXVAL;@# + + *nxP = g; + grP[col] = HALFSCALE; + }@# + + frac_row_left -= frac_row_to_fill; + if(frac_row_left == 0) + {frac_row_left = s_mag_y; + need_to_read_row = 1; + } + frac_row_to_fill = SCALE; + + +@ +To implement the slant we move the starting point |nxP| to the right +according to the corresponding |y|~value. To simplify life only positive +shift values are allowed. + +We always append a white pixel to avoid artefacts at the end of the line +produced by the last line. This rule sets the second condition that the +slant must not be greater than~|1|---such a large slant would be unusable +anyway for typesetting purposes. + +@<Scale X from |temp_pixelrow[]| into |new_pixelrow[]| + and write it into |out_char[]|@>= + if(pk_width == input_size_x && s_slant == 0) + /* shortcut X~scaling if possible */ + write_row(temp_prP); + else + {register long g = HALFSCALE; + register long frac_col_to_fill = SCALE; + register long frac_col_left; + register int need_col = 0; + + + nxP = new_prP;@# + + frac_col_left = (pk_output_size_y - row) * s_slant; + while(frac_col_left >= frac_col_to_fill) + {*(nxP++) = 0; + frac_col_left -= frac_col_to_fill; + }@# + + if(frac_col_left > 0) + frac_col_to_fill -= frac_col_left;@# + + for(col = 0, xP = temp_prP; col < input_size_x; ++col, ++xP) + {frac_col_left = s_mag_x; + while(frac_col_left >= frac_col_to_fill) + {if(need_col) + {++nxP; + g = HALFSCALE; + }@# + + g += frac_col_to_fill * (*xP); + g /= SCALE; + if(g > PIXEL_MAXVAL) + g = PIXEL_MAXVAL;@# + + *nxP = g; + frac_col_left -= frac_col_to_fill; + frac_col_to_fill = SCALE; + need_col = 1; + }@# + + if(frac_col_left > 0) + {if(need_col) + {++nxP; + g = HALFSCALE; + need_col = 0; + }@# + + g += frac_col_left * (*xP); + frac_col_to_fill -= frac_col_left; + } + }@# + + @<Write out a row@>@; + } + + +@ +@<Write out a row@>= + if(frac_col_to_fill > 0) + {--xP; + g += frac_col_to_fill * (*xP); + }@# + + if(!need_col) + {g /= SCALE; + if(g > PIXEL_MAXVAL) + g = PIXEL_MAXVAL; + *nxP = g; + }@# + + *(++nxP) = 0; /* append a blank pixel */@# + + write_row(new_prP); + + +@ +|read_row()| reads a row from |bitmap[]| and converts it into a graymap row. +If the |rotation| flag has been set, we get the proper column instead (note +that in this case |input_size_x| already reflects the width of the rotated +glyph). + +@<Prototypes@>= +static +#ifdef __GNUC__ +__inline__ +#endif +void read_row(unsigned char *); + + +@ +@c +static +#ifdef __GNUC__ +__inline__ +#endif +void read_row(unsigned char *pixelrow) + {register int col, bitshift, offset; + register unsigned char *xP; + register unsigned char item = 0; + + if(rotation) + {bitshift = 7 - (curr_row % 8); + offset = (input_size_y + 7) / 8; + bP = bitmap + curr_row / 8; + for(col = 0, xP = pixelrow; col < input_size_x; ++col, ++xP) + {*xP = ((*bP >> bitshift) & 1) == 1 ? PIXEL_MAXVAL : 0; + bP += offset; + } + curr_row--; + } + else + {bitshift = -1; + for(col = 0, xP = pixelrow; col < input_size_x; ++col, ++xP) + {if(bitshift == -1) + {item = *(bP++); /* increase input bitmap pointer */ + bitshift = 7; + } + *xP = ((item >> bitshift) & 1) == 1 ? PIXEL_MAXVAL : 0; + --bitshift; + } + } + } + + +@ +|write_row()| converts the graymap back into a bitmap using a simple +threshold. + +@<Global...@>= +int threshold = 128; + + +@ +@<Prototypes@>= +static +#ifdef __GNUC__ +__inline__ +#endif +void write_row(unsigned char *); + + +@ +@c +static +#ifdef __GNUC__ +__inline__ +#endif +void write_row(unsigned char *pixelrow) + {register int col; + register unsigned char *xP; + + for(col = 0, xP = pixelrow; col < pk_output_size_x; ++col, ++xP) + *(out_char_p++) = (*xP >= threshold) ? 1 : 0; + /* increase output bitmap pointer */ + } + + +@ +Now comes the most interesting routine. The pixel array will be compressed +in sequences of black and white pixels. + +|SKIP0|, |SKIP1|, and |SKIP2| indicate how many blank lines will be skipped. +|PAINT_(x)| means that the next x~pixels will have the same color, then the +color changes. |NEW_ROW_(x)| is the first black pixel in the next row. + +An example: the pixel sequence 111100011001 [new row] 000111011110 will be +output as 4 3 2 2 1 77 3 1 4 1. + +Commands with an ending~`n' in its name indicate that the next n~bytes +should be read as the counter. Example: |SKIP1|~26 means `skip the next +26~rows'. + +For further details please refer to ``\mf---the program''. + +@d PAINT_(x) (x) /* $0 \le x \le 63$ */ +@d PAINT1 64 +@d PAINT2 65 +@d PAINT3 66 /* not used */@# + +@d SKIP0 70 +@d SKIP1 71 +@d SKIP2 72 +@d SKIP3 73 /* not used */@# + +@d NEW_ROW_(x) ((x) + 74) /* $0 \le x \le 164$ */@# + +@d NOOP 244 /* not used */ + +@<Prototypes@>= +static void write_coding(void); + + +@ +The |goto start| instruction causes some compilers to complain about +``Unreachable code $\ldots$'' or something similar. + +@c +static void write_coding(void) + {register int count, skip; + register unsigned char paint; + register int x, y; + register unsigned char *cp; + + x = 0; + y = 0; + cp = out_char + y * pk_output_size_x + x; + count = skip = 0; + paint = WHITE; + goto start;@# + + while (y < pk_output_size_y) + {@<Search blank lines@>@; +start: + @<Process rest of line@>@; + y++; + } + }@# + + +@ +@<Search blank lines@>= + count = 0; + x = 0; + cp = out_char + y * pk_output_size_x + x;@# + + while(x < pk_output_size_x) + {if(*cp == paint) + count++; + else + {if(skip == 0) + {if(count <= 164) + fputc(NEW_ROW_(count), out); + else + {fputc(SKIP0, out);@# + + if(count < 256) + {fputc(PAINT1, out); + fputc(count, out); + } + else + {fputc(PAINT2, out); + fputc(count >> 8, out); + fputc(count & 0xFF, out); + } + } + } + else + {if(skip == 1) + fputc(SKIP0, out); + else + {if(skip < 256) + {fputc(SKIP1, out); + fputc(skip, out); + } + else + {fputc(SKIP2, out); + fputc(skip >> 8, out); + fputc(skip & 0xFF, out); + } + } + skip = 0; + if(count < 64) + fputc(PAINT_(count), out); + else if(count < 256) + {fputc(PAINT1, out); + fputc(count, out); + } + else + {fputc(PAINT2, out); + fputc(count >> 8, out); + fputc(count & 0xFF, out); + } + } + count = 0; + paint = BLACK; + break; + } + x++; + cp++; + } + if(x >= pk_output_size_x) + {skip++; + y++; + continue; + } + + +@ +@<Process rest of line@>= + while(x < pk_output_size_x) + {if(*cp == paint) + count++; + else + {if(count < 64) + fputc(PAINT_(count), out); + else if(count < 256) + {fputc(PAINT1, out); + fputc(count, out); + } + else + {fputc(PAINT2, out); + fputc(count >> 8, out); + fputc(count & 0xFF, out); + } + count = 1; + paint = BLACK - paint; + } + x++; + cp++; + } + if(paint == BLACK) + {if(count < 64) + fputc(PAINT_(count), out); + else if(count < 256) + {fputc(PAINT1, out); + fputc(count, out); + } + else + {fputc(PAINT2, out); + fputc(count >> 8, out); + fputc(count & 0xFF, out); + } + paint = WHITE; + } + + + +@* The font metrics file. +This routine creates one \.{PL} file with the font properties. None of the +\TeX\ font dimensions are needed because you never will use CJK fonts +directly, and intercharacter stretching is handled by the \\{CJK} macro +\.{\\CJKglue}. (Other packages may define similar commands.) + +The name of the \.{PL} file will contain the running two digits in +\mf-like mode only. + +It makes sense \\{not} to compute the check sum automatically for two +reasons. Firstly, since \TeX's checksum algorithm is based on the character +width, the number of valid characters, and the designsize, there is a much +higher chance that two subfonts from different HBF fonts have the same check +sum than it is for ordinary fonts, because all characters have the same +width, usually 256~characters in a subfont, and very often the same design +size. Secondly, and this is more important, we create just one +\.{TFM} file for all subfonts regardless of the real number of characters +in a particular subfont. + +To have an identification string in the \.{TFM} file, we split it into +single bytes and use the \.{HEADER} command repeatedly. + +@<Prototypes@>= +static void write_pl(void); + + +@ +@c +static void write_pl(void) + {int i, pos; + char output_file[FILE_NAME_LENGTH + 1]; + long t, sc; + char *s; + char tfm_header[] = "Created by hbf2gf"; + + file_number--; /* for \mf-like mode */@# + + if(mf_like) + {if(unicode) + sprintf(output_file, "%s%02x.pl", output_name, file_number); + else + sprintf(output_file, "%s%02i.pl", output_name, file_number); + } + else + sprintf(output_file, "%s.pl", output_name);@# + + if(!(out = fopen(output_file, WRITE_TXT))) + {fprintf(stderr, "Couldn't open `%s'\n", output_file); + exit(1); + } + if(!quiet) + printf("\nWriting `%s'\n", output_file);@# + + fprintf(out,@/ + "\n(FAMILY %s%d)"@/ + "\n(CODINGSCHEME CJK-%s)", + output_name, file_number, font_encoding);@# + + fprintf(out,@/ + "\n(DESIGNSIZE R %.6f)"@/ + "\n(COMMENT DESIGNSIZE IS IN POINTS)"@/ + "\n(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)"@/ + "\n(CHECKSUM O %lo)"@/ + "\n(FONTDIMEN"@/ + "\n (SLANT R %.6f)"@/ + "\n (SPACE R 0.0)"@/ + "\n (STRETCH R 0.0)"@/ + "\n (SHRINK R 0.0)"@/ + "\n (XHEIGHT R 1.0)"@/ + "\n (QUAD R 1.0)"@/ + "\n (EXTRASPACE R 0.0)"@/ + "\n )", design_size, checksum, slant);@# + + s = tfm_header; + i = strlen(s); + t = ((long)i) << 24; + sc = 16; + pos = 18;@# + + fprintf(out, "\n"); + while(i > 0) + {t |= ((long)(*(unsigned char *)s++)) << sc; + sc -= 8; + if(sc < 0) + {fprintf(out, "\n(HEADER D %d O %lo)", pos, t); + t = 0; + sc = 24; + pos++; + } + i--; + } + if(t) + fprintf(out, "\n(HEADER D %d O %lo)", pos, t); + fprintf(out, "\n");@# + + for(i = 0; i < 256; i++) + {fprintf(out,@/ + "\n(CHARACTER O %o"@/ + "\n (CHARWD R %.6f)"@/ + "\n (CHARHT R %.6f)"@/ + "\n (CHARDP R %.6f)"@/ + "\n (CHARIC R %.6f)"@/ + "\n )",@/ + i, + tfm_output_size_x + 2 * tfm_offset_x, + tfm_output_size_y + tfm_offset_y, + -tfm_offset_y, + slant * (tfm_output_size_y + tfm_offset_y)); + }@# + + fclose(out); + } + + + +@* The extended virtual font file for \Om. +The following is very similar to |write_pl()|; we simply map the glyphs +of the subfonts back to the original encoding positions. + +@<Prototypes@>= +static void write_ovp(void); + + +@ +@c +static void write_ovp(void) + {int c, i, nmb_subfonts, remainder, count, pos; + char output_file[FILE_NAME_LENGTH + 1]; + long t, sc; + char *s; + char ofm_header[] = "Created by hbf2gf"; + + nmb_subfonts = ((max_char - (min_char & 0xFF00)) / 256 * nmb_2_bytes) + / 256 + 1; + remainder = ((max_char - (min_char & 0xFF00)) / 256 * nmb_2_bytes) + % 256;@# + + /* correction for the last incomplete second byte range */ + for(count = 0; count < (max_char & 0xFF); count++) + if(b2_codes[count]) + remainder++; + if(remainder >= 256) + nmb_subfonts++;@# + + sprintf(output_file, "%s.ovp", output_name);@# + + if(!(out = fopen(output_file, WRITE_TXT))) + {fprintf(stderr, "Couldn't open `%s'\n", output_file); + exit(1); + } + if(!quiet) + printf("\nWriting `%s'\n", output_file);@# + + fprintf(out,@/ + "\n(VTITLE Omega virtual font created by hbf2gf)"@/ + "\n(DESIGNSIZE R %.6f)"@/ + "\n(COMMENT DESIGNSIZE IS IN POINTS)"@/ + "\n(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)"@/ + "\n(CHECKSUM O %lo)"@/ + "\n(FONTDIMEN"@/ + "\n (SLANT R %.6f)"@/ + "\n (SPACE R 0.0)"@/ + "\n (STRETCH R 0.0)"@/ + "\n (SHRINK R 0.0)"@/ + "\n (XHEIGHT R 1.0)"@/ + "\n (QUAD R 1.0)"@/ + "\n (EXTRASPACE R 0.0)"@/ + "\n )", design_size, checksum, slant);@# + + s = ofm_header; + i = strlen(s); + t = ((long)i) << 24; + sc = 16; + pos = 18;@# + + fprintf(out, "\n"); + while(i > 0) + {t |= ((long)(*(unsigned char *)s++)) << sc; + sc -= 8; + if(sc < 0) + {fprintf(out, "\n(HEADER D %d O %lo)", pos, t); + t = 0; + sc = 24; + pos++; + } + i--; + } + if(t) + fprintf(out, "\n(HEADER D %d O %lo)", pos, t); + fprintf(out, "\n");@# + + for(i = 0; i < nmb_subfonts; i++) + {fprintf(out,@/ + "\n(MAPFONT D %i"@/ + "\n (FONTNAME %s%02i)"@/ + "\n (FONTCHECKSUM O %lo)"@/ + "\n (FONTAT R 1.0)"@/ + "\n (FONTDSIZE R %.6f)"@/ + "\n )", i, output_name, i + 1, checksum, design_size); + }@# + + for(c = min_char, i = 0, count = 0; c <= max_char; c++) + {if(b2_codes[c & 0xFF] == VALID_SUBCODE) + {fprintf(out,@/ + "\n(CHARACTER O %o"@/ + "\n (CHARWD R %.6f)"@/ + "\n (CHARHT R %.6f)"@/ + "\n (CHARDP R %.6f)"@/ + "\n (CHARIC R %.6f)"@/ + "\n (MAP"@/ + "\n (SELECTFONT D %i)"@/ + "\n (SETCHAR O %o)"@/ + "\n )"@/ + "\n )",@/ + c, + tfm_output_size_x + 2 * tfm_offset_x, + tfm_output_size_y + tfm_offset_y, + -tfm_offset_y, + slant * (tfm_output_size_y + tfm_offset_y), + i, + count);@# + + count++; + if(count == 256) + {count = 0; + i++; + } + } + else + continue; + }@# + + fclose(out); + } + + + +@* The job file. +This routine is the most system specific one. If your operating system needs +a different outline, make appropriate changes here. + +You have to call this batch file after \.{hbf2gf} has finished (if not in +\mf-like mode). It will transform the \.{GF} files into \.{PK} files and +delete the now unnecessary \.{GF} files, then transform the \.{PL} file into +a \.{TFM} file and copy it |nmb_files| times. The name of the job file is +|output_name|. + +@d EXTENSION_LENGTH 8 /* the maximal length of a file extension */@# + +@d GFTOPK_NAME "gftopk" +@d PLTOTF_NAME "pltotf" +@d OVP2OVF_NAME "ovp2ovf" + +@<Global...@>= +char job_extension[EXTENSION_LENGTH + 1]; +char rm_command[STRING_LENGTH + 1]; +char cp_command[STRING_LENGTH + 1]; +char pk_directory[STRING_LENGTH + 1]; +char tfm_directory[STRING_LENGTH + 1];@# + +int ofm_file = FALSE; + + +@ +@<Prototypes@>= +static void write_job(void); + + +@ +@c +static void write_job(void) + {FILE *out; + int i, j; + char buffer[FILE_NAME_LENGTH + 1]; + + + strcpy(buffer, output_name); + strcat(buffer, job_extension); + if(!(out = fopen(buffer, WRITE_TXT))) + {fprintf(stderr, "Couldn't open `%s'\n", buffer); + exit(1); + } + if(!quiet) + printf("\nWriting `%s'\n", buffer);@# + + if(pk_files) + {if(unicode) + {for(i = (min_char >> 8), j = 0; j < nmb_files; i++, j++) + fprintf(out,@/ + "%s %s%02x.gf %s%s%02x.%.0ipk\n"@/ + "%s %s%02x.gf\n",@/ + GFTOPK_NAME, output_name, i,@/ + pk_directory, output_name, i, + long_extension ? (int)(dpi_x * magstep_x + 0.5) : 0,@/ + rm_command, output_name, i); + } + else + {for(i = 1; i <= nmb_files; i++) + fprintf(out,@/ + "%s %s%02i.gf %s%s%02i.%.0ipk\n"@/ + "%s %s%02i.gf\n",@/ + GFTOPK_NAME, output_name, i,@/ + pk_directory, output_name, i, + long_extension ? (int)(dpi_x * magstep_x + 0.5) : 0,@/ + rm_command, output_name, i); + } + }@# + + if(tfm_files) + {fprintf(out,@/ + "\n"@/ + "%s %s.pl %s.tfm\n"@/ + "%s %s.pl\n"@/ + "\n",@/ + PLTOTF_NAME, output_name, output_name,@/ + rm_command, output_name);@# + + if(unicode) + {for(i = (min_char >> 8), j = 0; j < nmb_files; i++, j++) + fprintf(out,@/ + "%s %s.tfm %s%s%02x.tfm\n",@/ + cp_command, output_name, + tfm_directory, output_name, i); + } + else + {for(i = 1; i <= nmb_files; i++) + fprintf(out,@/ + "%s %s.tfm %s%s%02i.tfm\n",@/ + cp_command, output_name, + tfm_directory, output_name, i); + }@# + + fprintf(out,@/ + "\n"@/ + "%s %s.tfm",@/ + rm_command, output_name); + }@# + + if(ofm_file) + {fprintf(out,@/ + "\n"@/ + "%s %s.ovp %s.ovf %s.ofm\n"@/ + "%s %s.ovp\n"@/ + "\n",@/ + OVP2OVF_NAME, output_name, output_name, output_name,@/ + rm_command, output_name); + }@# + + fclose(out); + } + + + +@* The configuration file. +Here is a list with all necessary keywords (and parameters): +\medskip +\halign{\quad\.{#}\hfil&\quad#\hfil\cr + hbf\_header & the HBF header file name of the input font(s). \cr + output\_name & the name stem of the output files. \cr + & Should be equal to the name of the configuration file + in most cases.\cr + & A running two digit decimal number starting with + \.{01} will be appended. \cr + & (For Unicode fonts see the keyword \.{unicode} + below.) \cr + } +\bigskip +And now all optional keywords: +\medskip +\halign{\quad\.{#}\hfil&\quad#\hfil\cr + x\_offset & increases the character width. \cr + & Will be applied on both sides; \cr + & default is the value given in the HBF header + (\.{HBF\_BITMAP\_BOUNDING\_BOX}) \cr + & scaled to \\{design\/}size (in pixels). \cr + y\_offset & shifts all characters up or down; \cr + & default is the value given in the HBF header + (\.{HBF\_BITMAP\_BOUNDING\_BOX}) \cr + & scaled to \\{design\/}size (in pixels). \cr + design\_size & the design size (in points) of the font. \cr + & \.{x\_offset} and \.{y\_offset} refer to this + size. \cr + & Default is |10.0| \cr + target\_size & This command is obsolete now and will be + ignored.\cr + & \cr + slant & the slant of the font (given as $\Delta x / + \Delta y$). \cr + & Only values in the range |0 <= slant <= 1| + are allowed. \cr + & Default is |0.0| \cr + rotation & if set to `yes'. the glyphs are rotated + 90~degrees counter-clockwise. \cr + & The default offsets as given in the HBF header + will be ignored (and set to~|0|). \cr + & Default is `no'. \cr + & \cr + mag\_x & \cr + mag\_y & scaling values of the characters to reach + design size. \cr + & If only one magnification is given, x and y + values are assumed to be equal. \cr + & Default is \.{mag\_x} $=$ \.{mag\_y} $=$ |1.0| + \cr + threshold & A value between |1| and |254| defining a + threshold for converting the internal \cr + & graymap into the output bitmap; lower values + cut more pixels. \cr + & Default value is |128|. \cr + & \cr + comment & a comment describing the font; \cr + & default is none. \cr + & \cr + nmb\_fonts & the number of the fonts. \cr + & Default value is~|-1| for creating all + fonts. \cr + unicode & if `yes', a two digit hexadecimal number will + be used as a running number, \cr + & starting with the value of the first byte of + the first code range. \cr + & Default is `no'. \cr + min\_char & the minimum of the encoding range. \cr + & Specify this value if it is not identical to + the lowest code value \cr + & in the HBF file (to which it defaults). \cr + & \cr + dpi\_x & \cr + dpi\_y & the horizontal and vertical resolution (in + dpi) of the printer. \cr + & If only one resolution is given, x and y + values are assumed to be equal. \cr + & Default is |300|. \cr + checksum & a checksum to identify the \.{GF} files + with the appropriate \.{TFM} files. \cr + & The default of this 32~bit unsigned integer + is |0|. \cr + coding & a comment describing the coding scheme; \cr + & default is none. \cr + & \cr + pk\_directory & the destination directory of the + \.{PK} files; \cr + & default: none. \cr + & Attention! The batch file will not check + whether this directory exists. \cr + tfm\_directory & the destination directory of the + \.{TFM} files; \cr + & default: none. \cr + & Attention! The batch file will not check + whether this directory exists. \cr + pk\_files & whether to create \.{PK} files or not; \cr + & default is `yes'. \cr + tfm\_files & whether to create \.{TFM} files or not; \cr + & default is `yes'. \cr + ofm\_file & whether to create an \.{OFM} and an + \.{OVF} file or not; \cr + & default is `no'. \cr + long\_extension & if `yes', \.{PK} files will include the + resolution in the extension \cr + & (e.g. \.{gsso1201.300pk}). \cr + & This affects the batch file only (default is + `yes'). \cr + rm\_command & this shell command removes files; \cr + & default: `rm'. \cr + cp\_command & this shell command copies files; \cr + & default: `cp'. \cr + job\_extension & the extension of the batch file which calls + \.{GFtoPK} and \.{PLtoTF} \cr + & to convert the \.{GF} and the + \.{PL} files into \.{PK} and + \.{TFM} files; \cr + & default is none. \cr + } +\bigskip + +The searching algorithm (for the keywords) of \.{hbf2gf} is case +insensitive; it makes no difference whether you write for example \.{comment} +or \.{CommenT}. The keywords must start a line (be in the first column), and +the corresponding parameters must be on the same line with the keyword and +separated by at least one space or tabulator stop. Lines starting not with a +keyword are ignored. + +Key values \\{are} case sensitive (except \.{yes} and \.{no}). + +The default system dependent values are for \UNIX/-like operating systems; +if you use for example DOS, you must write +\medskip +\halign{\quad\.{#}\hfil&\quad\.{#}\hfil\cr + long\_extension & no \cr + rm\_command & del \cr + cp\_command & copy \cr + job\_extension & .bat \cr + } +\medskip + +Both the values |pk_output_size_x| and |pk_output_size_y| must not exceed +|MAX_CHAR_SIZE|; \.{x\_offset} and \.{y\_offset} are related to the +design size (and not to the input size). + +In \mf-like mode, one \.{GF} file and one \.{PL} file will be computed +(depending on the command line options \.{-g} and \.{-p}), taking +|x_resolution| and |y_scale| from the command line. \.{nmb\_fonts} will +always be set to~|1|; no job file will be created. + + +@ +@d PRINTER_MIN_RES_X 50 +@d PRINTER_MIN_RES_Y 50 + +@<Global...@>= +char Buffer[STRING_LENGTH + 1]; + + +@ +@<Prototypes@>= +static void read_config(void); + + +@ +If |config_file| isn't found in \mf-like mode we assume that the font +isn't a HBF font at all. + +@c +static void read_config(void) + {HBF_BBOX *boxp; + char *real_config_file; + + + @<Handle extension@>@;@# + + real_config_file = TeX_search_cfg_file(config_file); + if(!real_config_file) + {if(mf_like) + {if(!quiet) + printf("Couldn't find `%s'\n", config_file); + exit(2); + } + else + {fprintf(stderr, "Couldn't find `%s'\n", config_file); + exit(1); + } + }@# + + if(!(config = fopen(real_config_file, READ_TXT))) + {if(!testing) + {fprintf(stderr, "Couldn't open `%s'\n", config_file); + exit(1); + } + else /* We reach this point only if no searching library is used */ + {if(!quiet) + fprintf(stderr, "Couldn't find or open `%s'\n", config_file); + exit(2); + } + }@# + + if(testing) + {if(!quiet) + printf("%s\n", real_config_file); + exit(0); + } + + @<Necessary parameters@>@; + @<Optional parameters@>@;@# + + @<Get code range@>@; + @<Get sub code range@>@;@# + + fclose(config); + } + + +@ +Here we check whether we have to add an extension. + +@<Handle extension@>= + {int i, lastext = -1; + + for(i = 0; config_file[i]; i++) + if(config_file[i] == '.') + lastext = i; + else if (config_file[i] == '/' || + config_file[i] == ':' || + config_file[i] == '\\') + lastext = -1;@# + + if(lastext == -1) + strcat(config_file, ".cfg"); + } + + +@ +@<Necess...@>= + {char hbf_header[STRING_LENGTH + 1]; + char *real_hbf_header; + + if(!fsearch("hbf_header")) + config_error("hbf_header"); + else + strcpy(hbf_header, Buffer);@# + + real_hbf_header = TeX_search_hbf_file(hbf_header); + if(!real_hbf_header) + {fprintf(stderr, "Couldn't find `%s'\n", hbf_header); + exit(1); + }@# + + hbfDebug = 1; /* we activate error messages of the HBF API + while scanning the HBF header file */@# + + if(!(hbf = hbfOpen(real_hbf_header))) + exit(1);@# + + hbfDebug = 0;@# + + boxp = hbfBitmapBBox(hbf); + input_size_x = boxp->hbf_height; /* will be checked later for rotation */ + input_size_y = boxp->hbf_width; + font_encoding = hbfProperty(hbf, "HBF_CODE_SCHEME");@# + + if(!fsearch("output_name")) + config_error("output_name"); + else + strcpy(output_name, Buffer); + } + + +@ +@<Global...@>= +int offset_x; +int offset_y;@# + +HBF_CHAR user_min_char; +int have_min_char = FALSE; + +@ +@<Opt...@>= + {if(fsearch("nmb_files")) + nmb_files = atoi(Buffer); + if(fsearch("unicode")) + if(Buffer[0] == 'y' || Buffer[0] == 'Y') + unicode = TRUE; + if(fsearch("min_char")) + {user_min_char = strtoul(Buffer, (char **)NULL, 0); + have_min_char = TRUE; + }@# + + if(!mf_like) + {if(fsearch("pk_files")) + if(Buffer[0] == 'n' || Buffer[0] == 'N') + pk_files = FALSE; + if(fsearch("tfm_files")) + if(Buffer[0] == 'n' || Buffer[0] == 'N') + tfm_files = FALSE; + if(fsearch("ofm_file")) + if(Buffer[0] == 'y' || Buffer[0] == 'Y') + ofm_file = TRUE; + if(fsearch("long_extension")) + if(Buffer[0] == 'n' || Buffer[0] == 'N') + long_extension = FALSE; + }@# + + if(fsearch("slant")) + slant = atof(Buffer); + if(slant < 0.0 || slant > 1.0) + {fprintf(stderr, "Invalid slant\n"); + exit(1); + } + if(fsearch("rotation")) + if(Buffer[0] == 'y' || Buffer[0] == 'Y') + rotation = TRUE;@# + + if(fsearch("mag_x")) + mag_x = atof(Buffer); + if(fsearch("mag_y")) + mag_y = atof(Buffer); + if(!mag_x && !mag_y) + {mag_x = 1.0; + mag_y = 1.0; + } + if(mag_x && !mag_y) + mag_y = mag_x; + if(mag_y && !mag_x) + mag_x = mag_y; + if(mag_x <= 0.0) + {fprintf(stderr, "Invalid horizontal magnification\n"); + exit(1); + } + if(mag_y <= 0.0) + {fprintf(stderr, "Invalid vertical magnification\n"); + exit(1); + }@# + + if(fsearch("dpi_x")) + dpi_x = atoi(Buffer); + if(fsearch("dpi_y")) + dpi_y = atoi(Buffer); + if(!dpi_x && !dpi_y) + {dpi_x = 300; + dpi_y = 300; + } + if(dpi_x && !dpi_y) + dpi_y = dpi_x; + if(dpi_y && !dpi_x) + dpi_x = dpi_y; + if(dpi_x <= PRINTER_MIN_RES_X) + {fprintf(stderr, "Invalid horizontal printer resolution\n"); + exit(1); + } + if(dpi_y <= PRINTER_MIN_RES_Y) + {fprintf(stderr, "Invalid vertical printer resolution\n"); + exit(1); + }@# + + if(fsearch("design_size")) + design_size = atof(Buffer);@# + + if(fsearch("x_offset")) + offset_x = atoi(Buffer); + else + offset_x = rotation ? 0 : (boxp->hbf_xDisplacement * mag_x + 0.5); + if(fsearch("y_offset")) + offset_y = atoi(Buffer); + else + offset_y = rotation ? 0 : (boxp->hbf_yDisplacement * mag_y + 0.5); + if(!fsearch("comment")) + comment[0] = '\0'; + else + strcpy(comment, Buffer);@# + + if(fsearch("threshold")) + threshold = atoi(Buffer); + if(threshold <= 0 || threshold >= 255) + {fprintf(stderr, "Invalid threshold\n"); + exit(1); + }@# + + if(!fsearch("checksum")) + checksum = 0; + else + checksum = strtoul(Buffer, (char **)NULL, 0);@# + + if(!fsearch("coding")) + coding[0] = '\0'; + else + strcpy(coding, Buffer);@# + + if(!fsearch("pk_directory")) + pk_directory[0] = '\0'; + else + strcpy(pk_directory, Buffer);@# + + if(!fsearch("tfm_directory")) + tfm_directory[0] = '\0'; + else + strcpy(tfm_directory, Buffer);@# + + if(fsearch("rm_command")) + strcpy(rm_command, Buffer); + else + strcpy(rm_command, "rm");@# + + if(fsearch("cp_command")) + strcpy(cp_command, Buffer); + else + strcpy(cp_command, "cp");@# + + if(!fsearch("job_extension")) + job_extension[0] = '\0'; + else + {strncpy(job_extension, Buffer, EXTENSION_LENGTH); + job_extension[EXTENSION_LENGTH] = '\0'; + } + } + + +@ +The function |hbfGetCodeRange()| is an extension to the HBF API. + +Successive calls return the code ranges in ascending order; we only need the +extrema of the whole code range. + +In case |min_char| has been supplied in the configuration file, we use that +value instead. + +@<Global...@>= +HBF_CHAR min_char, max_char; + + +@ +@<Get code range@>= + {const void *cp; + HBF_CHAR dummy; + + cp = hbfGetCodeRange(hbf, NULL, &min_char, &max_char); + for(; cp != NULL; cp = hbfGetCodeRange(hbf, cp, &dummy, &max_char)) + ;@# + + if(have_min_char) + min_char = user_min_char; + } + + +@ +The function |hbfGetByte2Range()| is an extension to the HBF API. + +Successive calls return the byte~2 ranges in ascending order. We raise +|VALID_SUBCODE| in the array |b2_codes[]| for all characters in subcode +ranges. + +@d VALID_SUBCODE 1 + +@<Global...@>= +char b2_codes[256]; +unsigned char min_2_byte, max_2_byte; +int nmb_2_bytes = 0; + + +@ +@<Get sub code range@>= + {const void *b2r; + unsigned char dummy; + int i; + + for(i = 0; i < 256; i++) + b2_codes[i] = 0;@# + + b2r = hbfGetByte2Range(hbf, NULL, &min_2_byte, &max_2_byte); + dummy = min_2_byte; + for(; b2r != NULL; b2r = hbfGetByte2Range(hbf, b2r, &dummy, &max_2_byte)) + {for(i = dummy; i <= max_2_byte; i++) + b2_codes[i] = VALID_SUBCODE; + }@# + + for(i = 0; i < 256; i++) /* compute the number of valid |b2_codes| */ + if(b2_codes[i] == VALID_SUBCODE) + nmb_2_bytes++; + } + + +@ +This search routine is case insignificant. Each keyword must start a line; +the function checks whether the character before the keyword is a newline +character (|'\n'|). It also checks the presence of a parameter and fills +|Buffer| if existent. |fsearch()| returns~1 on success. + +@<Prototypes@>= +static int fsearch(const char *); + + +@ +@c +static int fsearch(const char *search_string) + {char *P, p; + const char *Q; + char temp_buffer[STRING_LENGTH + 1]; + char env_name[STRING_LENGTH + 1]; + char *env_p; + char *env_value; + char *Buf_p; + int Ch, ch, old_ch = '\n'; + int count = STRING_LENGTH; + + rewind(config); /* we start at offset~0 */@# + + do + {Q = search_string; + p = tolower((unsigned char)*Q); + Ch = fgetc(config); + ch = tolower(Ch); + while(!(ch == p && old_ch == '\n') && Ch != EOF) + /* search first character of |search_string|; + |'\n'| must be the character before */ + {old_ch = ch; + Ch = fgetc(config); + ch = tolower(Ch); + }@# + + for(;;) + {if(*(++Q) == '\0') + if((Ch = fgetc(config)) == ' ' || Ch == '\t') + /* there must be a space or a tab stop after the keyword */ + goto success; + Ch = fgetc(config); + if(tolower(Ch) != tolower((unsigned char)*Q)) + break; + } + } + while(Ch != EOF);@# + + return 0;@# + +success: + P = temp_buffer;@# + + while((Ch = fgetc(config)) == ' ' || Ch == '\t') + /* remove leading blanks and tabs */ + ; + while(Ch != '\n' && --count > 0 && Ch != EOF) /* fill |Buffer| */ + {*P++ = Ch; + Ch = fgetc(config); + } + *P = '\0';@# + + if (*temp_buffer) + @<Check for environment variables@>@; + else + *Buffer = '\0';@# + + return (*Buffer) ? 1 : 0; /* is there something in the buffer? */ + } + + +@ +To make the configuration file more flexible we allow environment variables +in the arguments. We scan the parameter stored in |temp_buffer| whether it +contains a `\.{\$}' character. If yes, the following code fragment tries to +get an environment variable name whose value will be then fetched with +|getenv()|. An environment variable name recognized by \.{hbf2gf} must start +with a letter or underscore; the other characters may be alphanumeric or an +underscore. You can surround the environment variable name with braces to +indicate where the name ends, e.g. \.{\$\{FOO\}}. The interpolated +configuration parameter will be truncated to |STRING_LENGTH| characters. If +you want to have `\.{\$}' you must write `\.{\$\$}'. + +Note that you should avoid to use such environment variables for specifying +the location of the configuration file in case you have support for a file +searching library like kpathsea. Its primary aim is to specify the target +directories for the \.{pk\_directory} and the \.{tfm\_directory} keywords. + +@<Check for environment variables@>= + {P = temp_buffer; + Buf_p = Buffer; + count = STRING_LENGTH - 1;@# + + while(*P && count > 0) + {env_p = env_name;@# + + if(*P == '$') + {P++; + if(*P == '$') + {*(Buf_p++) = *(P++); + count--; + continue; + } + while(*P == '{') @q } @> + P++; + if(!(isalpha((unsigned char)*P) || *P == '_')) + {fprintf(stderr,@/ + "Invalid environment variable name in configuration file\n"); + exit(1); + } + *(env_p++) = *(P++); + while(*P) + {if(isalnum((unsigned char)*P) || *P == '_') + *(env_p++) = *(P++); + else + {@q { @> while(*P == '}') + P++; + *env_p = '\0'; + break; + } + }@# + + env_value = getenv(env_name); + if(env_value) /* append the environment value to |Buffer| */ + {while(*env_value && count > 0) + {*(Buf_p++) = *(env_value++); + count--; + } + } + } + else + {*(Buf_p++) = *(P++); + count--; + } + } + *Buf_p = '\0'; + } + + +@ +If an error occurs, |config_error()| will leave the program with an error +message. + +@<Prototypes@>= +static void config_error(const char *); + + +@ +@c +static void config_error(const char *message) + {fprintf(stderr, "Couldn't find `%s' entry in configuration file\n", + message); + exit(1); + } + + + +@* File searching. + +We support three searching engines: emtexdir, kpathsea, and MiKTeX (which is +a Win32 port of kpathsea). For emtexdir, define |HAVE_EMTEXDIR| while +compiling. For kpathsea, define |HAVE_LIBKPATHSEA|. For MikTeX, define +|HAVE_MIKTEX|. If none of these macros is defined, a simple |fopen()| will +be used instead. + +@<Include files@>= +#if defined(HAVE_LIBKPATHSEA) +#include "kpathsea/kpathsea.h" + +#elif defined(HAVE_EMTEXDIR) +#include "emtexdir.h" + +#elif defined(HAVE_MIKTEX) +#include "miktex.h" +#endif + +@ +@<Global variables@>= +#if defined(HAVE_EMTEXDIR) +char emtex_version_string[] = "emTeXdir"; +#elif !defined(HAVE_MIKTEX) +char no_version_string[] = "no search library"; +#endif + + +@ +@<Prototypes@>= +static const char *TeX_search_version(void); + + +@ +@c +static const char *TeX_search_version(void) + { +#if defined(HAVE_LIBKPATHSEA) + return kpathsea_version_string; +#elif defined(HAVE_EMTEXDIR) + return emtex_version_string; +#elif defined(HAVE_MIKTEX) + char buf[200]; + + strcpy(buf, "MiKTeX "); + miktex_get_miktex_version_string_ex(buf + 7, sizeof (buf) - 7); + + return buf; +#else + return no_version_string; +#endif + } + + +@ +@s emtex_dir int + +@<Global variables@>= +#ifdef HAVE_EMTEXDIR +struct emtex_dir cfg_path, hbf_path; +#endif + + +@ +@<Prototypes@>= +#ifdef HAVE_EMTEXDIR +extern int setup_list(struct emtex_dir *, char *, const char *, unsigned); +static int dir_setup(struct emtex_dir *, const char *, const char *, unsigned); +static char *file_find(char *, struct emtex_dir *); +#endif + + +@ +We slightly modify |emtex_dir_setup()| (from the file \.{emtexdir.c}) to +output a warning in case the environment variable |env| isn't set properly. + +@c +#ifdef HAVE_EMTEXDIR +static int dir_setup(ed, env, dir, flags) + struct emtex_dir *ed; + const char *env; + const char *dir; + unsigned flags; + + {const char *val; + char path[260]; + + ed->alloc = 0; + ed->used = 0; + ed->list = NULL;@# + + if(env != NULL && (val = getenv(env)) != NULL) + return setup_list(ed, path, val, flags); + else + fprintf(stderr, + "Environment variable `%s' not set; use current directory\n", + env);@# + + return TRUE; + } +#endif + + +@ +@<Global variables@>= +#ifdef HAVE_EMTEXDIR +char name_buffer[FILE_NAME_LENGTH + 1]; +#endif + + +@ +@c +#ifdef HAVE_EMTEXDIR +static char *file_find(name, list) + char *name; + struct emtex_dir *list; + + {if(emtex_dir_find(name_buffer, sizeof(name_buffer), list, name, EDF_CWD)) + return name_buffer;@# + + return NULL; + } +#endif + + +@ +For emtexdir we use the environment variables \.{HBFCFG} and \.{HBFONTS} for +configuration resp.\ HBF header files. + +@<Initialize \TeX\ file searching@>= +#if defined(HAVE_LIBKPATHSEA) + kpse_set_program_name(argv[0], "hbf2gf"); + kpse_init_prog("HBF2GF", 300, "cx", "cmr10");@# + +#elif defined(HAVE_EMTEXDIR) + if(!dir_setup(&cfg_path, "HBFCFG", NULL, EDS_BANG)) + {fprintf(stderr, + "Couldn't setup search path for configuration files\n"); + exit(1); + } + if(!dir_setup(&hbf_path, "HBFONTS", NULL, EDS_BANG)) + {fprintf(stderr, + "Couldn't setup search path for HBF header files\n"); + exit(1); + } +#endif + + +@ +Finally, here are the searching routines. A special format in the kpathsea +library for fonts which are neither PostScript nor TrueType (\.{MISCFONTS}) +is available with version~3.3 and newer. For older versions we use the path +for PostScript fonts (\.{T1FONTS}) to find HBF files. Configuration files +are searched in the path specified within \.{TEXCONFIG} for old kpathsea +versions, and within \.{HBF2GFINPUTS} for new versions. + +@<Prototypes@>= +static char *TeX_search_cfg_file(char *); +static char *TeX_search_hbf_file(char *); + + +@ +@c +#if defined(HAVE_LIBKPATHSEA) +static char *TeX_search_cfg_file(char *name) + { + return kpse_find_file(name, kpse_program_text_format, TRUE); + }@# + + +static char *TeX_search_hbf_file(char *name) + { + return kpse_find_file(name, kpse_miscfonts_format, TRUE); + }@# + + +#elif defined(HAVE_EMTEXDIR) +static char *TeX_search_cfg_file(char *name) + {return file_find(name, &cfg_path); + }@# + + +static char *TeX_search_hbf_file(char *name) + {return file_find(name, &hbf_path); + }@# + + +#elif defined(HAVE_MIKTEX) +static char *TeX_search_cfg_file(char *name) + {char result[_MAX_PATH]; + + if (!miktex_find_input_file("hbf2gf", *name, result)) + return 0; + return strdup(result); + }@# + + +static char *TeX_search_hbf_file(char *name) + {char result[_MAX_PATH]; + + + if (!miktex_find_miscfont_file(*name, result)) + return 0; + return strdup(result); + }@# + + +#else +static char *TeX_search_cfg_file(char *name) + {return name; + }@# + + +static char *TeX_search_hbf_file(char *name) + {return name; + } +#endif + + + +@* An example. +This is the example configuration file \.{b5so12.cfg} (for use with DOS or +OS/2 and the emtexdir searching engine): +\bigskip +\halign{\quad\.{#}\hfil&\quad\.{#}\hfil\cr + hbf\_header & et24.hbf \cr + mag\_x & 2.076 \cr + x\_offset & 3 \cr + y\_offset & -8 \cr + comment & fanti songti 24x24 pixel font scaled and + adapted to 12 pt \cr + & \cr + design\_size & 12.0 \cr + & \cr + nmb\_fonts & -1 \cr + & \cr + output\_name & b5so12 \cr + & \cr + dpi\_x & 300 \cr + checksum & 123456789 \cr + coding & codingscheme Big 5 encoded TeX text \cr + & \cr + long\_extension & no \cr + job\_extension & .cmd \cr + rm\_command & del \cr + cp\_command & copy \cr + pk\_directory & \$HBF\_TARGET\\pk\\360dpi\\ \cr + tfm\_directory & \$HBF\_TARGET\\tfm\\ \cr + } +\bigskip +If you say e.g. +\medskip +\quad \.{set HBF\_TARGET=c:\\emtex\\texfonts} +\medskip +on your DOS prompt (or in your \.{autoexec.bat} file), then the interpolated +value of the \.{tfm\_directory} keyword is \.{c:\\emtex\\texfonts\\tfm\\}. +The HBF header file \.{et24.hbf} will be searched in the path specified by +the \.{HBFCFG} environment variable. +\bigskip +The call +\medskip +\quad \.{hbf2gf b5so12.cfg} +\medskip +creates the files +\medskip +\quad \.{b5so1201.gf}, \.{b5so1202.gf}, $\ldots$ , \.{b5so1255.gf}, +\.{b5so12.pl}, and \.{b5so12.cmd} +\bigskip +After calling +\medskip +\quad \.{b5so12.cmd} +\medskip +you will find the \.{PK} files in the +\.{c:\\emtex\\texfonts\\pk\\360dpi} directory and the \.{TFM} files in +the \.{c:\\emtex\\texfonts\\tfm} directory; all \.{GF} files and +\.{b5so12.pl} will be deleted. +\bigskip +The call +\medskip +\quad \.{hbf2gf -n b5so1220 417} +\medskip +creates two files: +\medskip +\quad \.{b5so1220.gf} and \.{b5so1220.pl} +\medskip +using the configuration file \.{b5so12.cfg}. The \.{GF} file would be +named \.{b5so1220.417gf} if the flag \.{-n} had not been used. + +\medskip + +It is possible to convert bitmap fonts to \.{PK} files almost +automatically. The HBF header file already has the entry +\.{HBF\_BITMAP\_BOUNDING\_BOX} which defines vertical and horizontal offsets +(in pixels), but these values are not in all cases optimal. If you omit +\.{x\_offset} and \.{y\_offset} in the configuration file, the third and +fourth parameter of \.{HBF\_BITMAP\_BOUNDING\_BOX} is used, scaled to design +size (to say it in other words: \.{x\_offset} and \.{y\_offset} will always +apply to the design size to be synchronous with the \.{TFM} files). + +Don't confuse scaling and magnification: Scaling here means that you choose +a (arbitrary) design size and compute scaling values (\.{mag\_x} and +\.{mag\_y}) which scales the bitmap to this particular design size at a +certain (arbitrarily chosen) resolution (\.{dpi\_x} and \.{dpi\_y}). +Magnification means that the scaled bitmap will be then magnified to a +certain target size while still using the font parameters (i.e., the +\.{TFM} file) of the design size. + +In the sample, you have a $24 \times 24$ bitmap font which will be scaled to +$12\,\hbox{pt}$ having a resolution of $300\,\hbox{dpi}$: +\medskip +\quad $1\,\hbox{pt}$ are $300 / 72.27 = 4.1511$ pixel; + +\quad $12\,\hbox{pt}$ are $4.1511 * 12 = 49.813$ pixel; + +\quad thus the theoretical scaling value is $49.813 / 24 = 2.076$. + +\medskip + +But especially for small sizes, this may not be the best value if the font +should harmonize with, say, Knuth's Computer Modern fonts. I recommend to +compute, say, 5~\.{PK} fonts, then check the CJK font with different \TeX\ +fonts to see whether the offsets and/or the scaling value is good. The +greater the design size the finer you can control the offsets---as an +example you could use a design size of $30\,\hbox{pt}$ (nevertheless there +is a compile-time constant |MAX_CHAR_SIZE| which limits the maximal +character size; default is 255~pixels). + +If you have found optimal offsets, you can produce many different +magnifications of the CJK font using the same set of \.{TFM} files +analogous to ordinary \TeX\ fonts; as a simplification, we assume that +\.{PK} files with a resolution of $300\,\hbox{dpi}$ and a design size of +$10\,\hbox{pt}$ have the extension `\.{.300pk}' (respectively come into a +`\.{300dpi}' subdirectory)---this is the reason why in the above example for +the $12\,\hbox{pt}$ design size a `\.{360dpi}' target directory has been +used. Now we can use the following formula: + + $$ \\{needed\_dpi} = \\{your\_horizontal\_resolution} * + {\\{your\_target\_size} \over 10.0} $$ + +Example: assuming that your printer has a resolution of +$300\times400\,\hbox{dpi}$, and you want $14.4\,\hbox{pt}$: + + $$ 300 * {14.4 \over 10.0} = 432 $$ + +The vertical scaling value is $400 / 300 = 1.3333$. Use these values now to +call \.{hbf2gf} in \mf-like mode: + +\quad \.{hbf2gf b5so1220 432 1.3333} + + + +@* Index. diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/install-sh b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/install-sh new file mode 100755 index 0000000000..ec298b5374 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/install-sh @@ -0,0 +1,541 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2020-11-14.01; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +tab=' ' +nl=' +' +IFS=" $tab$nl" + +# Set DOITPROG to "echo" to test this script. + +doit=${DOITPROG-} +doit_exec=${doit:-exec} + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +# Create dirs (including intermediate dirs) using mode 755. +# This is like GNU 'install' as of coreutils 8.32 (2020). +mkdir_umask=22 + +backupsuffix= +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +is_target_a_directory=possibly + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -p pass -p to $cpprog. + -s $stripprog installed files. + -S SUFFIX attempt to back up existing files, with suffix SUFFIX. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG + +By default, rm is invoked with -f; when overridden with RMPROG, +it's up to you to specify -f if you want it. + +If -S is not specified, no backups are attempted. + +Email bug reports to bug-automake@gnu.org. +Automake home page: https://www.gnu.org/software/automake/ +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -p) cpprog="$cpprog -p";; + + -s) stripcmd=$stripprog;; + + -S) backupsuffix="$2" + shift;; + + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) is_target_a_directory=never;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + # Don't chown directories that already exist. + if test $dstdir_status = 0; then + chowncmd="" + fi + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename. + if test -d "$dst"; then + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac + dstdir_status=0 + else + dstdir=`dirname "$dst"` + test -d "$dstdir" + dstdir_status=$? + fi + fi + + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + # The $RANDOM variable is not portable (e.g., dash). Use it + # here however when possible just to lower collision chance. + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + + trap ' + ret=$? + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null + exit $ret + ' 0 + + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p'. + if (umask $mkdir_umask && + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null + fi + trap '' 0;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + oIFS=$IFS + IFS=/ + set -f + set fnord $dstdir + shift + set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && + { test -z "$stripcmd" || { + # Create $dsttmp read-write so that cp doesn't create it read-only, + # which would cause strip to fail. + if test -z "$doit"; then + : >"$dsttmp" # No need to fork-exec 'touch'. + else + $doit touch "$dsttmp" + fi + } + } && + $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + set +f && + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # If $backupsuffix is set, and the file being installed + # already exists, attempt a backup. Don't worry if it fails, + # e.g., if mv doesn't support -f. + if test -n "$backupsuffix" && test -f "$dst"; then + $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null + fi + + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/mkinstalldirs b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/mkinstalldirs new file mode 100755 index 0000000000..c364f3d5e1 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/mkinstalldirs @@ -0,0 +1,162 @@ +#! /bin/sh +# mkinstalldirs --- make directory hierarchy + +scriptversion=2020-07-26.22; # UTC + +# Original author: Noah Friedman <friedman@prep.ai.mit.edu> +# Created: 1993-05-16 +# Public domain. +# +# This file is maintained in Automake, please report +# bugs to <bug-automake@gnu.org> or send patches to +# <automake-patches@gnu.org>. + +nl=' +' +IFS=" "" $nl" +errstatus=0 +dirmode= + +usage="\ +Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... + +Create each directory DIR (with mode MODE, if specified), including all +leading file name components. + +Report bugs to <bug-automake@gnu.org>." + +# process command line arguments +while test $# -gt 0 ; do + case $1 in + -h | --help | --h*) # -h for help + echo "$usage" + exit $? + ;; + -m) # -m PERM arg + shift + test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } + dirmode=$1 + shift + ;; + --version) + echo "$0 $scriptversion" + exit $? + ;; + --) # stop option processing + shift + break + ;; + -*) # unknown option + echo "$usage" 1>&2 + exit 1 + ;; + *) # first non-opt arg + break + ;; + esac +done + +for file +do + if test -d "$file"; then + shift + else + break + fi +done + +case $# in + 0) exit 0 ;; +esac + +# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and +# mkdir -p a/c at the same time, both will detect that a is missing, +# one will create a, then the other will try to create a and die with +# a "File exists" error. This is a problem when calling mkinstalldirs +# from a parallel make. We use --version in the probe to restrict +# ourselves to GNU mkdir, which is thread-safe. +case $dirmode in + '') + if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then + echo "mkdir -p -- $*" + exec mkdir -p -- "$@" + else + # On NextStep and OpenStep, the 'mkdir' command does not + # recognize any option. It will interpret all options as + # directories to create, and then abort because '.' already + # exists. + test -d ./-p && rmdir ./-p + test -d ./--version && rmdir ./--version + fi + ;; + *) + if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && + test ! -d ./--version; then + echo "umask 22" + umask 22 + echo "mkdir -m $dirmode -p -- $*" + exec mkdir -m "$dirmode" -p -- "$@" + else + # Clean up after NextStep and OpenStep mkdir. + for d in ./-m ./-p ./--version "./$dirmode"; + do + test -d $d && rmdir $d + done + fi + ;; +esac + +echo "umask 22" +umask 22 + +for file +do + case $file in + /*) pathcomp=/ ;; + *) pathcomp= ;; + esac + oIFS=$IFS + IFS=/ + set fnord $file + shift + IFS=$oIFS + + for d + do + test "x$d" = x && continue + + pathcomp=$pathcomp$d + case $pathcomp in + -*) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + fi + fi + + pathcomp=$pathcomp/ + done + + if test ! -z "$dirmode"; then + echo "chmod $dirmode $file" + chmod "$dirmode" "$file" || errstatus=$? + fi +done + +exit $errstatus + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/teTeX-0.4/MakeTeXPK.diff b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/teTeX-0.4/MakeTeXPK.diff new file mode 100644 index 0000000000..02f6250898 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/teTeX-0.4/MakeTeXPK.diff @@ -0,0 +1,63 @@ +--- MakeTeXPK.orig Sun Feb 23 22:12:05 1997 ++++ MakeTeXPK Tue Aug 18 08:07:40 1998 +@@ -80,18 +80,57 @@ + : ${MAKETEXDIR=$TEXMF/maketex} + export TEXMF MAKETEXDIR + ++unset cmd ++ ++# test for TTF fonts ++if test -z "$cmd"; then ++ ttf2pk -q $NAME $DPI ++ errstatus=$? ++ ++ if test $errstatus -ne 2; then ++ if test $errstatus -ne 0; then ++ echo "ttf2pk failed" >&2 ++ exit 1 ++ fi ++ MODE=ttf2pk # preferred mode for TDS would be `modeless' ++ cmd=true ++ fi ++fi ++ ++# test for HBF fonts ++if test -z "$cmd"; then ++ hbf2gf -q -p $NAME $DPI ++ errstatus=$? ++ ++ if test $errstatus -ne 2; then ++ if test $errstatus -ne 0; then ++ echo "hbf2gf failed" >&2 ++ exit 1 ++ fi ++ MODE=hbf2gf # preferred mode for TDS would be `modeless' ++ cmd=true ++ fi ++fi ++ ++unset psline ++ + # grep for the font in $PSMAPFILE, if some ps-to-pk is claimed to be supported. + # We have to figure out the name of the base font -- $NAME is probably + # something like pplr, but it's rpplr or pplr0 or pplr8r that's in psfonts.map. +-pattern="^r?$NAME"'(0|8r)?([ ]|$)' +-psline=`egrep "$pattern" $PSMAPFILE` ++if test -z "$cmd"; then ++ pattern="^r?$NAME"'(0|8r)?([ ]|$)' ++ psline=`egrep "$pattern" $PSMAPFILE` ++fi ++ + if test -n "$psline"; then + cmd="gsftopk $NAME $DPI" + MODE=gsftopk + # some installations have set up gs in such a way that creating files + # is only allowed if the parameter -DNOSAFER is used: + GS_OPTIONS=-DNOSAFER; export GS_OPTIONS +-else ++fi ++ ++if test -z "$cmd"; then + # If an explicit mode is not supplied, try to guess. You can get a + # list of extant modes from ftp.cs.umb.edu:pub/tex/modes.mf. + if test -z "$MODE" || test "$MODE" = default; then diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/teTeX-0.4/MakeTeXTFM.diff b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/teTeX-0.4/MakeTeXTFM.diff new file mode 100644 index 0000000000..52cd52e1c1 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/teTeX-0.4/MakeTeXTFM.diff @@ -0,0 +1,28 @@ +--- MakeTeXTFM.orig Mon Feb 10 22:40:31 1997 ++++ MakeTeXTFM Tue Aug 18 08:14:40 1998 +@@ -48,7 +48,24 @@ + BDPI=${MT_DEF_BDPI-600} + DPI=$BDPI + +-cmd="mf \mode:=$MODE; mag:=$MAG; scrollmode; input $NAME" ++unset cmd ++ ++# test for CJK bitmap font in HBF format ++hbf2gf -q $NAME $DPI ++errstatus=$? ++ ++if test $errstatus -ne 2; then ++ if test $errstatus -ne 0; then ++ echo "$progname: \`hbf2gf failed." >&2 ++ exit 1 ++ fi ++ pltotf ./$NAME.pl $TFMNAME || exit 1 ++ cmd=true ++fi ++ ++if test -z "$cmd"; then ++ cmd="mf \mode:=$MODE; mag:=$MAG; scrollmode; input $NAME" ++fi + + set x `MakeTeXnames $NAME $DPI $MODE $DEST` + PKDEST=$2 diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-6.1/MakeTeXPK.diff b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-6.1/MakeTeXPK.diff new file mode 100644 index 0000000000..0536dbc7a4 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-6.1/MakeTeXPK.diff @@ -0,0 +1,75 @@ +--- MakeTeXPK.orig Sun Aug 16 08:05:07 1998 ++++ MakeTeXPK Tue Aug 18 07:53:57 1998 +@@ -1,5 +1,5 @@ + #!/bin/sh +-# original MakeTeXPK -- make a new PK font, because one wasn't found. ++# MakeTeXPK -- make a new PK font, because one wasn't found. + # Version of 12dec94. + # + # (If you change or delete the word `original' on the previous line, +@@ -142,11 +142,52 @@ + test -d $TEMPDIR || mkdir $TEMPDIR + cd $TEMPDIR || exit 1 + ++unset cmd ++ ++# test for TTF fonts ++if test -z "$cmd"; then ++ ttf2pk -q $NAME $DPI ++ errstatus=$? ++ ++ if test $errstatus -ne 2; then ++ if test $errstatus -ne 0; then ++ echo "ttf2pk failed" >&2 ++ exit 1 ++ fi ++ test -z "$6" && DESTDIR="$DESTROOT/ttf2pk" # preferred mode for TDS ++ # would be `modeless' ++ echo "Successful call to ttf2pk" >&2 ++ cmd=ttf2pk ++ fi ++fi ++ ++# test for HBF fonts ++if test -z "$cmd"; then ++ hbf2gf -q -p $NAME $DPI ++ errstatus=$? ++ ++ if test $errstatus -ne 2; then ++ if test $errstatus -ne 0; then ++ echo "hbf2gf failed" >&2 ++ exit 1 ++ fi ++ test -z "$6" && DESTDIR="$DESTROOT/hbf2gf" # preferred mode for TDS ++ # would be `modeless' ++ echo "Successful call to hbf2gf" >&2 ++ cmd=hbf2gf ++ ++ gftopk ./$GFNAME $PKNAME || exit 1 ++ fi ++fi ++ + # grep for the font in $PSMAPFILE, if some ps-to-pk is claimed to be supported. + # We have to figure out the name of the base font -- $NAME is probably + # something like pplr, but it's rpplr or pplr0 or pplr8r that's in psfonts.map. +-pattern="^r?$NAME"'(0|8r)?([ ]|$)' +-test -n "$ps_to_pk" && egrep "$pattern" $PSMAPFILE >psline ++if test -z "$cmd"; then ++ pattern="^r?$NAME"'(0|8r)?([ ]|$)' ++ test -n "$ps_to_pk" && egrep "$pattern" $PSMAPFILE > psline ++fi ++ + if test -s psline; then + # This is a PostScript font. + MODE=$ps_to_pk +@@ -173,8 +214,9 @@ + export DVIPSHEADERS + echo "$0: Running $cmd" >&2 + $cmd >&2 || { echo "$0: $ps_to_pk failed." >&2; exit 1; } ++fi + +-else ++if test -z "$cmd"; then + # Try Metafont. + MFINPUTS="$MFINPUTS:$SAVEPWD" + export MFINPUTS diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-6.1/README b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-6.1/README new file mode 100644 index 0000000000..eb12bec7a3 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-6.1/README @@ -0,0 +1 @@ +This is for web2c-6.1 with the patch for kpathsea 2.6 diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.0/MakeTeXPK.diff b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.0/MakeTeXPK.diff new file mode 100644 index 0000000000..23f7cb58fe --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.0/MakeTeXPK.diff @@ -0,0 +1,67 @@ +--- MakeTeXPK.orig Sat Feb 8 15:52:00 1997 ++++ MakeTeXPK Tue Aug 18 07:58:22 1998 +@@ -1,5 +1,5 @@ + #!/bin/sh +-# original MakeTeXPK -- make a new PK font, because one wasn't found. ++# MakeTeXPK -- make a new PK font, because one wasn't found. + # + # (If you change or delete the word `original' on the previous line, + # installation won't write this script over yours.) +@@ -44,15 +44,54 @@ + MODE=$5 + DEST=$6 + ++unset cmd ++ ++# test for TTF fonts ++if test -z "$cmd"; then ++ ttf2pk -q $NAME $DPI ++ errstatus=$? ++ ++ if test $errstatus -ne 2; then ++ if test $errstatus -ne 0; then ++ echo "ttf2pk failed" >&2 ++ exit 1 ++ fi ++ MODE=modeless ++ cmd=true ++ fi ++fi ++ ++# test for HBF fonts ++if test -z "$cmd"; then ++ hbf2gf -q -p $NAME $DPI ++ errstatus=$? ++ ++ if test $errstatus -ne 2; then ++ if test $errstatus -ne 0; then ++ echo "hbf2gf failed" >&2 ++ exit 1 ++ fi ++ MODE=modeless ++ cmd=true ++ fi ++fi ++ ++unset psline ++ + # grep for the font in $PSMAPFILE. These are base font names, such as + # rpplr (the original) or pplr0 (an interim step) or pplr8r (current). +-pattern="^r?$NAME"'(0|8r)?([ ]|$)' +-psline=`egrep "$pattern" $PSMAPFILE` ++if test -z "$cmd"; then ++ pattern="^r?$NAME"'(0|8r)?([ ]|$)' ++ psline=`egrep "$pattern" $PSMAPFILE` ++fi ++ + if test -n "$psline"; then + MODE=modeless + # ps_to_pk set in MakeTeXcommon and/or MakeTeX.site. + cmd="$ps_to_pk $NAME $DPI" +-else ++fi ++ ++if test -z "$cmd"; then + # Check that $BDPI and $MODE are consistent; if not, ignore the mode and + # hope we can correctly guess it from bdpi. (People like to specify the + # resolution on the command line, not the mode so much.) diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.0/MakeTeXTFM.diff b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.0/MakeTeXTFM.diff new file mode 100644 index 0000000000..a67df4e14b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.0/MakeTeXTFM.diff @@ -0,0 +1,36 @@ +--- MakeTeXTFM.orig Sat Feb 8 15:52:00 1997 ++++ MakeTeXTFM Sun Aug 16 15:41:39 1998 +@@ -1,5 +1,5 @@ + #!/bin/sh +-# original MakeTeXTFM -- make a new TFM file, because one wasn't found. ++# MakeTeXTFM -- make a new TFM file, because one wasn't found. + # + # (If you change or delete the word `original' on the previous line, + # installation won't write this script over yours.) +@@ -50,7 +50,25 @@ + exit 1 + fi + +-cmd="mf \mode:=$MODE; mag:=$MAG; scrollmode; input $NAME" ++unset cmd ++ ++# test for CJK bitmap font in HBF format ++hbf2gf -q $NAME $DPI ++errstatus=$? ++ ++if test $errstatus -ne 2; then ++ if test $errstatus -ne 0; then ++ echo "$progname: \`hbf2gf failed." >&2 ++ exit 1 ++ fi ++ pltotf ./$NAME.pl $TFMNAME || exit 1 ++ cmd=true ++fi ++ ++if test -z "$cmd"; then ++ cmd="mf \mode:=$MODE; mag:=$MAG; scrollmode; input $NAME" ++fi ++ + echo "$0: Running $cmd" + $cmd </dev/null + test -r $TFMNAME || { echo "$0: \`$cmd' failed to make $TFMNAME."; exit 1; } diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.1/MakeTeXPK.diff b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.1/MakeTeXPK.diff new file mode 100644 index 0000000000..1faf078adb --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.1/MakeTeXPK.diff @@ -0,0 +1,72 @@ +--- MakeTeXPK.orig Fri Oct 31 09:30:54 1997 ++++ MakeTeXPK Tue Aug 18 08:01:33 1998 +@@ -1,5 +1,5 @@ + #!/bin/sh +-# original MakeTeXPK -- make a new PK font, because one wasn't found. ++# MakeTeXPK -- make a new PK font, because one wasn't found. + # + # (If you change or delete the word `original' on the previous line, + # installation won't write this script over yours.) +@@ -57,11 +57,48 @@ + MODE=$5 + DEST=$6 + ++unset cmd ++ ++# test for TTF fonts ++if test -z "$cmd"; then ++ ttf2pk -q $NAME $DPI ++ errstatus=$? ++ ++ if test $errstatus -ne 2; then ++ if test $errstatus -ne 0; then ++ echo "ttf2pk failed" >&2 ++ exit 1 ++ fi ++ MODE=modeless ++ cmd=true ++ fi ++fi ++ ++# test for HBF fonts ++if test -z "$cmd"; then ++ hbf2gf -q -p $NAME $DPI ++ errstatus=$? ++ ++ if test $errstatus -ne 2; then ++ if test $errstatus -ne 0; then ++ echo "hbf2gf failed" >&2 ++ exit 1 ++ fi ++ MODE=modeless ++ cmd=true ++ fi ++fi ++ ++unset psline ++ + # grep for the font in $PSMAPFILE. These are base font names, such as + # rpplr (the original) or pplr0 (an interim step) or pplr8r (current). +-: ${PSMAPFILE=`kpsewhich psfonts.map`} +-pattern="^$NAME"'([ ]|$)' +-psline=`egrep "$pattern" $PSMAPFILE` ++if test -z "$cmd"; then ++ : ${PSMAPFILE=`kpsewhich psfonts.map`} ++ pattern="^r?$NAME"'(0|8r)?([ ]|$)' ++ psline=`egrep "$pattern" $PSMAPFILE` ++fi ++ + if test -n "$psline"; then + MODE=modeless + # ps_to_pk is set in MakeTeX.cnf +@@ -100,7 +137,9 @@ + cmd="$ps_to_pk $NAME $DPI" + ;; + esac +-else ++fi ++ ++if test -z "$cmd"; then + # Check that $BDPI and $MODE are consistent; if not, ignore the mode and + # hope we can correctly guess it from bdpi. (People like to specify the + # resolution on the command line, not the mode so much.) diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.1/MakeTeXTFM.diff b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.1/MakeTeXTFM.diff new file mode 100644 index 0000000000..3fd17f9453 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.1/MakeTeXTFM.diff @@ -0,0 +1,36 @@ +--- MakeTeXTFM.orig Tue Oct 21 21:22:12 1997 ++++ MakeTeXTFM Sun Aug 16 15:51:20 1998 +@@ -1,5 +1,5 @@ + #!/bin/sh +-# original MakeTeXTFM -- make a new TFM file, because one wasn't found. ++# MakeTeXTFM -- make a new TFM file, because one wasn't found. + # + # (If you change or delete the word `original' on the previous line, + # installation won't write this script over yours.) +@@ -53,7 +53,25 @@ + exit 1 + fi + +-cmd="mf \mode:=$MODE; mag:=$MAG; scrollmode; input $NAME" ++unset cmd ++ ++# test for CJK bitmap font in HBF format ++hbf2gf -q $NAME $DPI ++errstatus=$? ++ ++if test $errstatus -ne 2; then ++ if test $errstatus -ne 0; then ++ echo "$progname: \`hbf2gf failed." >&2 ++ exit 1 ++ fi ++ pltotf ./$NAME.pl $TFMNAME || exit 1 ++ cmd=true ++fi ++ ++if test -z "$cmd"; then ++ cmd="mf \mode:=$MODE; mag:=$MAG; scrollmode; input $NAME" ++fi ++ + echo "$progname: Running $cmd" + + $cmd </dev/null || { diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.2/mktexpk.diff b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.2/mktexpk.diff new file mode 100644 index 0000000000..ac703fd7d3 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.2/mktexpk.diff @@ -0,0 +1,72 @@ +--- mktexpk.orig Fri Feb 20 16:23:22 1998 ++++ mktexpk Tue Aug 18 08:04:40 1998 +@@ -1,5 +1,5 @@ + #!/bin/sh +-# original mktexpk -- make a new PK font, because one wasn't found. ++# mktexpk -- make a new PK font, because one wasn't found. + # + # (If you change or delete the word `original' on the previous line, + # installation won't write this script over yours.) +@@ -73,11 +73,48 @@ + + NAME=$1 + ++unset cmd ++ ++# test for TTF fonts ++if test -z "$cmd"; then ++ ttf2pk -q $NAME $DPI ++ errstatus=$? ++ ++ if test $errstatus -ne 2; then ++ if test $errstatus -ne 0; then ++ echo "ttf2pk failed" >&2 ++ exit 1 ++ fi ++ MODE=modeless ++ cmd=true ++ fi ++fi ++ ++# test for HBF fonts ++if test -z "$cmd"; then ++ hbf2gf -q -p $NAME $DPI ++ errstatus=$? ++ ++ if test $errstatus -ne 2; then ++ if test $errstatus -ne 0; then ++ echo "hbf2gf failed" >&2 ++ exit 1 ++ fi ++ MODE=modeless ++ cmd=true ++ fi ++fi ++ ++unset psline ++ + # grep for the font in $PSMAPFILE. These are base font names, such as + # rpplr (the original) or pplr0 (an interim step) or pplr8r (current). +-: ${PSMAPFILE=`kpsewhich psfonts.map`} +-pattern="^$NAME"'([ ]|$)' +-psline=`egrep "$pattern" $PSMAPFILE` ++if test -z "$cmd"; then ++ : ${PSMAPFILE=`kpsewhich psfonts.map`} ++ pattern="^r?$NAME"'(0|8r)?([ ]|$)' ++ psline=`egrep "$pattern" $PSMAPFILE` ++fi ++ + if test -n "$psline"; then + MODE=modeless + # ps_to_pk is set in mktex.opt +@@ -116,7 +153,9 @@ + cmd="$ps_to_pk $NAME $DPI" + ;; + esac +-else ++fi ++ ++if test -z "$cmd"; then + # Check that $BDPI and $MODE are consistent; if not, ignore the mode and + # hope we can correctly guess it from bdpi. (People like to specify the + # resolution on the command line, not the mode so much.) diff --git a/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.2/mktextfm.diff b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.2/mktextfm.diff new file mode 100644 index 0000000000..b7bf872e8c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.2/mktextfm.diff @@ -0,0 +1,36 @@ +--- mktextfm.orig Mon Feb 16 08:56:13 1998 ++++ mktextfm Tue Aug 18 06:13:22 1998 +@@ -1,5 +1,5 @@ + #!/bin/sh +-# original mktextfm -- make a new TFM file, because one wasn't found. ++# mktextfm -- make a new TFM file, because one wasn't found. + # + # (If you change or delete the word `original' on the previous line, + # installation won't write this script over yours.) +@@ -70,7 +70,25 @@ + exit 1 + fi + +-cmd="mf \mode:=$MODE; mag:=$MAG; nonstopmode; input $NAME" ++unset cmd ++ ++# test for CJK bitmap font in HBF format ++hbf2gf -q $NAME $DPI ++errstatus=$? ++ ++if test $errstatus -ne 2; then ++ if test $errstatus -ne 0; then ++ echo "$progname: \`hbf2gf failed." >&2 ++ exit 1 ++ fi ++ pltotf ./$NAME.pl $TFMNAME || exit 1 ++ cmd=true ++fi ++ ++if test -z "$cmd"; then ++ cmd="mf \mode:=$MODE; mag:=$MAG; nonstopmode; input $NAME" ++fi ++ + echo "$progname: Running $cmd" + + $cmd </dev/null || { diff --git a/language/chinese/CJK/cjk-4.8.5/utils/lisp/cjkspace.el b/language/chinese/CJK/cjk-4.8.5/utils/lisp/cjkspace.el new file mode 100644 index 0000000000..4903f300de --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/lisp/cjkspace.el @@ -0,0 +1,102 @@ +;;; cjkspace.el --- provide a tilde character if you type a space. +;;; use this file with AUCTeX. + +;; Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +;; +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2 of the License, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this program in doc/COPYING; if not, write to the Free +;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +;; MA 02110-1301 USA + +;; This file is part of the CJK package Version 4.8.5 (16-Oct-2021) + +;; Insert tilde characters instead of spaces for LaTeX CJK documents. +;; If `CJK-space-after-space' is non-nil, typing a space yields a space. +;; Typing two consecutive spaces yields a tilde. If `CJK-space-after-space' +;; is nil, the behaviour is reversed. +;; +;; You should put the following in your .emacs file (additionally to the +;; common AUCTeX adaptations): +;; +;; (autoload 'CJK-insert-space "cjkspace" +;; "Insert tildes appropriately in CJK document." t) +;; (defun my-LaTeX-mode-hook () +;; "Key definitions for LaTeX mode." +;; (define-key LaTeX-mode-map " " 'CJK-insert-space) +;; ) +;; (add-hook 'LaTeX-mode-hook 'my-LaTeX-mode-hook) + + +;;; Code: + +(provide 'cjkspace) + + +(defvar CJK-space "~") + +(defvar CJK-space-after-space nil + + "*If non-nil, typing a space yields a space. Typing two consecutive +spaces yields a tilde. If nil the behaviour is reversed.") + +(make-variable-buffer-local 'CJK-space-after-space) + + +;;;###autoload +(defun CJK-insert-space (arg) + + "Insert tilde characters instead of spaces for LaTeX CJK documents. +If `CJK-space-after-space' is non-nil, typing a space yields a space. +Typing two consecutive spaces yields a tilde. If `CJK-space-after-space' +is nil, the behaviour is reversed. + +With prefix argument, always inserts space characters." + + (interactive "*P") + + (if arg + (self-insert-command (prefix-numeric-value arg)) + (TeX-update-style) + (if CJK-space-after-space + (insert (cond ((bobp) + ?\ ) + ((not (= (preceding-char) ?\ )) + ?\ ) + ((and (> (point) 2) + (save-excursion + (forward-char -2) + (looking-at (concat "[" CJK-space + (regexp-quote TeX-esc) "]")))) + ?\ ) + (t + (delete-backward-char 1) + CJK-space))) + (insert (cond ((bobp) + ?\ ) + ((= (preceding-char) (string-to-char TeX-esc)) + ?\ ) + ((= (preceding-char) ?\ ) + ?\ ) + ((and (> (point) 2) + (save-excursion + (forward-char -2) + (looking-at (concat (regexp-quote TeX-esc) + CJK-space)))) + CJK-space) + ((= (preceding-char) (string-to-char CJK-space)) + (delete-backward-char 1) + ?\ ) + (t + CJK-space)))))) + +;;; EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/lisp/cjktilde.el b/language/chinese/CJK/cjk-4.8.5/utils/lisp/cjktilde.el new file mode 100644 index 0000000000..2d961ddd12 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/lisp/cjktilde.el @@ -0,0 +1,111 @@ +;;; cjktilde.el -- minor mode exchanging `~' and ` ' keys. + +;; Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +;; +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2 of the License, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this program in doc/COPYING; if not, write to the Free +;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +;; MA 02110-1301 USA + +;; This file is part of the CJK package Version 4.8.5 (16-Oct-2021) + +;; Function `cjk-tilde-mode' activates a minor mode (`cjk-tilde-minor-mode') +;; which exchanges the tilde key with the space key. This is useful for +;; writing Chinese or Japanese with the CJK macro package for LaTeX 2e which +;; redefines the `~' command to insert a shibuaki space (see documentation +;; of the \CJKtilde macro for further details). + +;;; Code: + +(provide 'cjktilde) + + +(defvar cjk-tilde-minor-mode nil + + "*Non-nil enables CJK tilde mode. +Setting this variable makes it local to the current buffer. +See `cjk-tilde-mode' for details.") + +(make-variable-buffer-local 'cjk-tilde-minor-mode) + + +;; the following two functions do the exchange. +(defun electric-cjk-tilde (arg) + + "insert space if tilde key is pressed provided cjk-tilde-minor-mode is +activated." + + (if cjk-tilde-minor-mode + (char-to-string ?\ ) + (char-to-string ?\~) + ) +) + + +(defun electric-cjk-space (arg) + + "insert tilde if space key is pressed provided cjk-tilde-minor-mode is +activated." + + (if cjk-tilde-minor-mode + (char-to-string ?\~) + (char-to-string ?\ ) + ) +) + + +(or key-translation-map (setq key-translation-map (make-sparse-keymap))) + +(define-key key-translation-map " " 'electric-cjk-space) +(define-key key-translation-map "~" 'electric-cjk-tilde) + + +;; we indicate the minor mode in the mode line. +(or (assq 'cjk-tilde-minor-mode minor-mode-map-alist) + (setq minor-mode-alist + (append minor-mode-alist + '((cjk-tilde-minor-mode " ~")) + ) + ) +) + +;;;###autoload +(defun cjk-tilde-mode (&optional arg) + + "Toggle CJK tilde mode. If enabled, a tilde character will be inserted if +the space key is pressed and vice versa. + +Use with caution! This minor mode makes only sense for CJK environments +after insertion of the \\CJKtilde command. See the documentation of the +CJK package for further details. + +With an argument, a positive argument enables CJK tilde mode, +and a negative argument disables it." + + (interactive "P") + + (if (if arg + ;; negative arg: switch off + (<= (prefix-numeric-value arg) 0) + ;; no arg: toggle + cjk-tilde-minor-mode) + (setq cjk-tilde-minor-mode nil) + + ;; positive arg: switch on + (setq cjk-tilde-minor-mode t) + ) + (force-mode-line-update) +) + + +;;; end of cjktilde.el diff --git a/language/chinese/CJK/cjk-4.8.5/utils/lisp/emacs/cjk-enc.el b/language/chinese/CJK/cjk-4.8.5/utils/lisp/emacs/cjk-enc.el new file mode 100644 index 0000000000..93add2d75b --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/lisp/emacs/cjk-enc.el @@ -0,0 +1,1183 @@ +;;; cjk-enc.el --- provide a coding system for LaTeX2e CJK package + +;; Copyright (C) 1996-2000 Electrotechnical Laboratory, JAPAN. + +;; Author: Kenichi HANDA <handa@etl.go.jp> +;; Werner LEMBERG <wl@gnu.org> +;; Hin-Tak Leung <htl10@users.sourceforge.net> + +;; Keywords: CJK package, LaTeX2e, emacs, xemacs + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to +;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + +;; +;; CJK Version 4.8.5 (16-Oct-2021) +;; + +;;; Code + +;; This file will work with both Emacs (>=20.3) and XEmacs (>=21). In +;; the following `Emacs' is used for both Emacs and XEmacs except where +;; it differs. + +;; XXX: Thai stuff not yet ported to XEmacs. I don't know whether it +;; makes sense currently to support it because the Thai implementation +;; in XEmacs (version 21.1 and probably the upcoming 21.2) is not +;; complete: For example, there is no correct display handling of IR +;; 166 (this is the right part of TIS-620) in an ISO-2022 data stream, +;; decomposition of precomposed Thai (in xtis character set) doesn't +;; provide linguistic properties, etc. + +;; The following tables map from Emacs's character sets to LaTeX2e +;; macros. Note that not all macros defined here really do exist. See +;; MULEenc.sty and cjk-enc.txt for further details. +;; +;; MULEenc.sty makes TeX character 0x7F `active' and assigns to it a +;; multiplex command which executes its first argument. To make the +;; macro expansion robust against \uppercase and \lowercase, only +;; numbers are used as parameters which index the various commands. +;; +;; 0x7F will be used as a parameter delimiting character also. +;; +(defconst cjk-latin-1 + [;0xa0 + "99\177" "1\177" "2\177" "3\177" + "4\177" "5\177" "6\177" "7\177" + "8\177\\ " "9\177" "10\177" "11\177" + "12\177" "0\177-{}" "14\177" "15\177\\ " + + ; 0xb0 + "16\177" "17\177" "18\177" "19\177" + "20\177\\ " "21\177" "22\177" "23\177" + "24\177\\ " "25\177" "26\177" "27\177" + "28\177" "29\177" "30\177" "31\177" + + ; 0xc0 + "32\177A" "20\177A" "33\177A" "34\177A" + "8\177A" "0\177\\AA" "0\177\\AE" "24\177C" + "32\177E" "20\177E" "33\177E" "8\177E" + "32\177I" "20\177I" "33\177I" "8\177I" + + ; 0xd0 + "0\177\\DJ" "34\177N" "32\177O" "20\177O" + "33\177O" "34\177O" "8\177O" "38\177" + "0\177\\O" "32\177U" "20\177U" "33\177U" + "8\177U" "20\177Y" "0\177\\TH" "0\177\\ss" + + ; 0xe0 + "32\177a" "20\177a" "33\177a" "34\177a" + "8\177a" "0\177\\aa" "0\177\\ae" "24\177c" + "32\177e" "20\177e" "33\177e" "8\177e" + "32\177\\i" "20\177\\i" "33\177\\i" "8\177\\i" + + ; 0xf0 + "0\177\\dj" "34\177n" "32\177o" "20\177o" + "33\177o" "34\177o" "8\177o" "45\177" + "0\177\\o" "32\177u" "20\177u" "33\177u" + "8\177u" "20\177y" "0\177\\th" "8\177y" + ]) + +(defconst cjk-latin-2 + [; 0xa0 + "99\177" "48\177A" "49\177\\ " "0\177\\L" + "4\177" "51\177L" "20\177S" "7\177" + "8\177\\ " "51\177S" "24\177S" "51\177T" + "20\177Z" "0\177-{}" "51\177Z" "52\177Z" + + ; 0xb0 + "16\177" "48\177a" "48\177\\ " "0\177\\l" + "20\177\\ " "51\177l" "20\177s" "51\177\\ " + "24\177\\ " "51\177s" "24\177s" "51\177t" + "20\177z" "55\177\\ " "51\177z" "52\177z" + + ; 0xc0 + "20\177R" "20\177A" "33\177A" "49\177A" + "8\177A" "20\177L" "20\177C" "24\177C" + "51\177C" "20\177E" "48\177E" "8\177E" + "51\177E" "20\177I" "33\177I" "51\177D" + + ; 0xd0 + "0\177\\DJ" "20\177N" "51\177N" "20\177O" + "33\177O" "55\177O" "8\177O" "38\177" + "51\177R" "53\177U" "20\177U" "55\177U" + "8\177U" "20\177Y" "24\177T" "0\177\\ss" + + ; 0xe0 + "20\177r" "20\177a" "33\177a" "49\177a" + "8\177a" "20\177l" "20\177c" "24\177c" + "51\177c" "20\177e" "48\177e" "8\177e" + "51\177e" "20\177\\i" "33\177\\i" "51\177d" + + ; 0xf0 + "0\177\\dj" "20\177n" "51\177n" "20\177o" + "33\177o" "55\177o" "8\177o" "45\177" + "51\177r" "53\177u" "20\177u" "55\177u" + "8\177u" "20\177y" "24\177t" "52\177\\ " + ]) + +(defconst cjk-latin-3 + [; 0xa0 + "99\177" "0\177\\TEXTMALTESEH" "49\177\\ " "3\177" + "4\177" "" "33\177H" "7\177" + "8\177\\ " "52\177I" "24\177S" "49\177G" + "33\177J" "0\177-{}" "" "52\177Z" + + ; 0xb0 + "16\177" "0\177\\textmalteseh" "18\177" "19\177" + "20\177\\ " "21\177" "33\177h" "23\177" + "24\177\\ " "0\177\\i" "24\177s" "49\177g" + "33\177\\j" "29\177" "" "52\177z" + + ; 0xc0 + "32\177A" "20\177A" "33\177A" "" + "8\177A" "52\177C" "33\177C" "24\177C" + "32\177E" "20\177E" "33\177E" "8\177E" + "32\177I" "20\177I" "33\177I" "8\177I" + + ; 0xd0 + "" "34\177N" "32\177O" "20\177O" + "33\177O" "52\177G" "8\177O" "38\177" + "33\177G" "32\177U" "20\177U" "33\177U" + "8\177U" "49\177U" "33\177S" "0\177\\ss" + + ; 0xe0 + "32\177a" "20\177a" "33\177a" "" + "8\177a" "52\177c" "33\177c" "24\177c" + "32\177e" "20\177e" "33\177e" "8\177e" + "32\177\\i" "20\177\\i" "33\177\\i" "8\177\\i" + + ; 0xf0 + "" "34\177n" "32\177o" "20\177o" + "33\177o" "52\177g" "8\177o" "45\177" + "33\177g" "32\177u" "20\177u" "33\177u" + "8\177u" "49\177u" "33\177s" "52\177\\ " + ]) + +(defconst cjk-latin-4 + [; 0xa0 + "99\177" "48\177A" "59\177" "24\177R" + "4\177" "34\177I" "24\177L" "7\177" + "8\177\\ " "51\177S" "15\177E" "24\177G" + "0\177\\TEXTTSTROKE" "0\177-{}" "51\177Z" "15\177\\ " + + ; 0xb0 + "16\177" "48\177a" "48\177\\ " "24\177r" + "20\177\\ " "34\177\\i" "24\177l" "51\177\\ " + "24\177\\ " "51\177s" "15\177e" "24\177g" + "0\177\\texttstroke" "0\177\\NG" "51\177z" "0\177\\ng" + + ; 0xc0 + "15\177A" "20\177A" "33\177A" "34\177A" + "8\177A" "0\177\\AA" "0\177\\AE" "48\177I" + "51\177C" "20\177E" "48\177E" "8\177E" + "52\177E" "20\177I" "33\177I" "15\177I" + + ; 0xd0 + "0\177\\DJ" "24\177N" "15\177O" "24\177K" + "33\177O" "34\177O" "8\177O" "38\177" + "0\177\\O" "48\177U" "20\177U" "33\177U" + "8\177U" "34\177U" "15\177U" "0\177\\ss" + + ; 0xe0 + "15\177a" "20\177a" "33\177a" "34\177a" + "8\177a" "0\177\\aa" "0\177\\ae" "48\177i" + "51\177c" "20\177e" "48\177e" "8\177e" + "52\177e" "20\177\\i" "33\177\\i" "15\177\\i" + + ; 0xf0 + "0\177\\dj" "24\177n" "15\177o" "24\177k" + "33\177o" "34\177o" "8\177o" "45\177" + "0\177\\o" "48\177u" "20\177u" "33\177u" + "8\177u" "34\177u" "15\177u" "52\177\\ " + ]) + +(defconst cjk-latin-5 ; ISO 8859-9 + [; 0xa0 + "99\177" "1\177" "2\177" "3\177" + "4\177" "5\177" "6\177" "7\177" + "8\177\\ " "9\177" "10\177" "11\177" + "12\177" "0\177-{}" "14\177" "15\177\\ " + + ; 0xb0 + "16\177" "17\177" "18\177" "19\177" + "20\177\\ " "21\177" "22\177" "23\177" + "24\177\\ " "25\177" "26\177" "27\177" + "28\177" "29\177" "30\177" "31\177" + + ; 0xc0 + "32\177A" "20\177A" "33\177A" "34\177A" + "8\177A" "0\177\\AA" "0\177\\AE" "24\177C" + "32\177E" "20\177E" "33\177E" "8\177E" + "32\177I" "20\177I" "33\177I" "8\177I" + + ; 0xd0 + "49\177G" "34\177N" "32\177O" "20\177O" + "33\177O" "34\177O" "8\177O" "38\177" + "0\177\\O" "32\177U" "20\177U" "33\177U" + "8\177U" "52\177I" "24\177S" "0\177\\ss" + + ; 0xe0 + "32\177a" "20\177a" "33\177a" "34\177a" + "8\177a" "0\177\\aa" "0\177\\ae" "24\177c" + "32\177e" "20\177e" "33\177e" "8\177e" + "32\177\\i" "20\177\\i" "33\177\\i" "8\177\\i" + + ; 0xf0 + "49\177g" "34\177n" "32\177o" "20\177o" + "33\177o" "34\177o" "8\177o" "45\177" + "0\177\\o" "32\177u" "20\177u" "33\177u" + "8\177u" "0\177\\i" "24\177s" "8\177y" + ]) + +(defconst cjk-latin-jisx ; JIS X 0201 lower half + [; 0xa0 + "" "0\177!" "37\177" "0\177\\#" + "39\177" "0\177\\%" "0\177\\&" "40\177" + "0\177(" "0\177)" "0\177*" "0\177+" + "0\177," "0\177-" "0\177." "0\177/" + + ; 0xb0 + "0\1770" "0\1771" "0\1772" "0\1773" + "0\1774" "0\1775" "0\1776" "0\1777" + "0\1778" "0\1779" "0\177:" "0\177;" + "41\177" "0\177=" "42\177" "0\177?" + + ; 0xc0 + "36\177" "0\177A" "0\177B" "0\177C" + "0\177D" "0\177E" "0\177F" "0\177G" + "0\177H" "0\177I" "0\177J" "0\177K" + "0\177L" "0\177M" "0\177N" "0\177O" + + ; 0xd0 + "0\177P" "0\177Q" "0\177R" "0\177S" + "0\177T" "0\177U" "0\177V" "0\177W" + "0\177X" "0\177Y" "0\177Z" "0\177[" + "5\177" "0\177]" "43\177" "44\177" + + ; 0xe0 + "46\177" "0\177a" "0\177b" "0\177c" + "0\177d" "0\177e" "0\177f" "0\177g" + "0\177h" "0\177i" "0\177j" "0\177k" + "0\177l" "0\177m" "0\177n" "0\177o" + + ; 0xf0 + "0\177p" "0\177q" "0\177r" "0\177s" + "0\177t" "0\177u" "0\177v" "0\177w" + "0\177x" "0\177y" "0\177z" "47\177" + "50\177" "54\177" "56\177" "" + ]) + +(defconst cjk-cyrillic ; ISO 8859-5 + [; 0xa0 + "99\177" "0\177\\CYRYO" "0\177\\CYRDJE" "20\177\\CYRG" + "0\177\\CYRIE" "0\177\\CYRDZE" "0\177\\CYRII" "0\177\\CYRYI" + "0\177\\CYRJE" "0\177\\CYRLJE" "0\177\\CYRNJE" "0\177\\CYRTSHE" + "20\177\\CYRK" "0\177-{}" "0\177\\CYRUSHRT" "0\177\\CYRDZHE" + + ; 0xb0 + "0\177\\CYRA" "0\177\\CYRB" "0\177\\CYRV" "0\177\\CYRG" + "0\177\\CYRD" "0\177\\CYRE" "0\177\\CYRZH" "0\177\\CYRZ" + "0\177\\CYRI" "0\177\\CYRISHRT" "0\177\\CYRK" "0\177\\CYRL" + "0\177\\CYRM" "0\177\\CYRN" "0\177\\CYRO" "0\177\\CYRP" + + ; 0xc0 + "0\177\\CYRR" "0\177\\CYRS" "0\177\\CYRT" "0\177\\CYRU" + "0\177\\CYRF" "0\177\\CYRH" "0\177\\CYRC" "0\177\\CYRCH" + "0\177\\CYRSH" "0\177\\CYRSHCH" "0\177\\CYRHRDSN" "0\177\\CYRERY" + "0\177\\CYRSFTSN" "0\177\\CYREREV" "0\177\\CYRYU" "0\177\\CYRYA" + + ; 0xd0 + "0\177\\cyra" "0\177\\cyrb" "0\177\\cyrv" "0\177\\cyrg" + "0\177\\cyrd" "0\177\\cyre" "0\177\\cyrzh" "0\177\\cyrz" + "0\177\\cyri" "0\177\\cyrishrt" "0\177\\cyrk" "0\177\\cyrl" + "0\177\\cyrm" "0\177\\cyrn" "0\177\\cyro" "0\177\\cyrp" + + ; 0xe0 + "0\177\\cyrr" "0\177\\cyrs" "0\177\\cyrt" "0\177\\cyru" + "0\177\\cyrf" "0\177\\cyrh" "0\177\\cyrc" "0\177\\cyrch" + "0\177\\cyrsh" "0\177\\cyrshch" "0\177\\cyrhrdsn" "0\177\\cyrery" + "0\177\\cyrsftsn" "0\177\\cyrerev" "0\177\\cyryu" "0\177\\cyrya" + + ; 0xf0 + "35\177" "0\177\\cyryo" "0\177\\cyrdje" "20\177\\cyrg" + "0\177\\cyrie" "0\177\\cyrdze" "0\177\\cyrii" "0\177\\cyryi" + "0\177\\cyrje" "0\177\\cyrlje" "0\177\\cyrnje" "0\177\\cyrtshe" + "20\177\\cyrk" "7\177" "0\177\\cyrushrt" "0\177\\cyrdzhe" + ]) + +(defconst cjk-greek ; ISO 8859-7 + [;0xa0 + "99\177" "0\177<{}" "0\177>{}" "3\177" + "" "" "6\177" "7\177" + "8\177\\ " "9\177" "" "0\177((" + "12\177" "0\177-{}" "" "0\177---" + + ; 0xb0 + "16\177" "17\177" "18\177" "19\177" + "0\177'{}" "0\177\"'{}" "0\177'A" "0\177;" + "0\177'E" "0\177'H" "0\177'I" "0\177))" + "0\177'O" "29\177" "0\177'U" "0\177'W" + + ; 0xc0 + "0\177\"'i" "0\177A" "0\177B" "0\177G" + "0\177D" "0\177E" "0\177Z" "0\177H" + "0\177J" "0\177I" "0\177K" "0\177L" + "0\177M" "0\177N" "0\177X" "0\177O" + + ; 0xd0 + "0\177P" "0\177R" "" "0\177S" + "0\177T" "0\177U" "0\177F" "0\177Q" + "0\177Y" "0\177W" "0\177\"I" "0\177\"U" + "0\177'a" "0\177'e" "0\177'h" "0\177'i" + + ; 0xe0 + "0\177\"'u" "0\177a" "0\177b" "0\177g" + "0\177d" "0\177e" "0\177z" "0\177h" + "0\177j" "0\177i" "0\177k" "0\177l" + "0\177m" "0\177n" "0\177x" "0\177o" + + ; 0xf0 + "0\177p" "0\177r" "0\177c" "0\177s" + "0\177t" "0\177u" "0\177f" "0\177q" + "0\177y" "0\177w" "0\177\"i" "0\177\"u" + "0\177'o" "0\177'u" "0\177'w" "" + ]) + +(defconst cjk-viscii-lower + [; 0xA0 + "" "20\177\\abreve" "32\177\\abreve" "71\177\\abreve" + "20\177\\acircumflex" "32\177\\acircumflex" "73\177\\acircumflex" "71\177\\acircumflex" + "34\177e" "71\177e" "20\177\\ecircumflex" "32\177\\ecircumflex" + "73\177\\ecircumflex" "34\177\\ecircumflex" "71\177\\ecircumflex" "20\177\\ocircumflex" + + ; 0xB0 + "32\177\\ocircumflex" "73\177\\ocircumflex" "34\177\\ocircumflex" "" + "" "71\177\\ocircumflex" "32\177\\ohorn" "73\177\\ohorn" + "71\177i" "" "" "" + "" "0\177\\ohorn" "20\177\\ohorn" "" + + ; 0xC0 + "" "" "" "" + "" "" "73\177\\abreve" "34\177\\abreve" + "" "" "" "" + "" "" "" "32\177y" + + ; 0xD0 + "" "20\177\\uhorn" "" "" + "" "71\177a" "73\177y" "32\177\\uhorn" + "73\177\\uhorn" "" "" "34\177y" + "71\177y" "" "34\177\\ohorn" "0\177\\uhorn" + + ; 0xE0 + "32\177a" "20\177a" "0\177\\acircumflex" "34\177a" + "73\177a" "0\177\\abreve" "34\177\\uhorn" "34\177\\acircumflex" + "32\177e" "20\177e" "0\177\\ecircumflex" "73\177e" + "32\177i" "20\177i" "34\177i" "73\177i" + + ; 0xF0 + "0\177\\dj" "71\177\\uhorn" "32\177o" "20\177o" + "0\177\\ocircumflex" "34\177o" "73\177o" "71\177o" + "71\177u" "32\177u" "20\177u" "34\177u" + "73\177u" "20\177y" "71\177\\ohorn" "" + ]) + +(defconst cjk-viscii-upper + [; 0xA0 + "" "20\177\\ABREVE" "32\177\\ABREVE" "71\177\\ABREVE" + "20\177\\ACIRCUMFLEX" "32\177\\ACIRCUMFLEX" "73\177\\ACIRCUMFLEX" "71\177\\ACIRCUMFLEX" + "34\177E" "71\177E" "20\177\\ECIRCUMFLEX" "32\177\\ECIRCUMFLEX" + "73\177\\ECIRCUMFLEX" "34\177\\ECIRCUMFLEX" "71\177\\ECIRCUMFLEX" "20\177\\OCIRCUMFLEX" + + ; 0xB0 + "32\177\\OCIRCUMFLEX" "73\177\\OCIRCUMFLEX" "34\177\\OCIRCUMFLEX" "" + "" "71\177\\OCIRCUMFLEX" "32\177\\OHORN" "73\177\\OHORN" + "71\177I" "" "" "" + "" "0\177\\OHORN" "20\177\\OHORN" "" + + ; 0xC0 + "" "" "" "" + "" "" "73\177\\ABREVE" "34\177\\ABREVE" + "" "" "" "" + "" "" "" "32\177Y" + + ; 0xD0 + "" "20\177\\UHORN" "" "" + "" "71\177A" "73\177Y" "32\177\\UHORN" + "73\177\\UHORN" "" "" "34\177Y" + "71\177Y" "" "34\177\\OHORN" "0\177\\UHORN" + + ; 0xE0 + "32\177A" "20\177A" "0\177\\ACIRCUMFLEX" "34\177A" + "73\177A" "0\177\\ABREVE" "34\177\\UHORN" "34\177\\ACIRCUMFLEX" + "32\177E" "20\177E" "0\177\\ECIRCUMFLEX" "73\177E" + "32\177I" "20\177I" "34\177I" "73\177I" + + ; 0xF0 + "0\177\\DJ" "71\177\\UHORN" "32\177O" "20\177O" + "0\177\\OCIRCUMFLEX" "34\177O" "73\177O" "71\177O" + "71\177U" "32\177U" "20\177U" "34\177U" + "73\177U" "20\177Y" "71\177\\OHORN" "" + ]) + + +;; The following encodings will be selected (if they occur in the input +;; buffer) at the very beginning of the output buffer to load the +;; corresponding CJK macros. +;; +(defconst cjk-enc-table + '((chinese-gb2312 . GB) + (katakana-jisx0201 . SJIS) + (japanese-jisx0208 . JIS) + (japanese-jisx0212 . JIS2) + (korean-ksc5601 . KS) + (chinese-big5-1 . Bg5) + (chinese-big5-2 . Bg5) + (big5 . Bg5) + (chinese-cns11643-1 . CNS1) + (chinese-cns11643-2 . CNS2) + (chinese-cns11643-3 . CNS3) + (chinese-cns11643-4 . CNS4) + (chinese-cns11643-5 . CNS5) + (chinese-cns11643-6 . CNS6) + (chinese-cns11643-7 . CNS7))) + + +;; MULEenc's versions of \CJKspace and \CJKnospace +;; +(defconst cjk-space "\17764\177\177") +(defconst cjk-nospace "\17765\177\177") + +;; MULEenc's command to insert a word break. +;; +(defconst cjk-word-break "\17761\177\177") + + +;; Here we have the format specification table which defines what to do +;; for each encoding. +;; +;; Later in the code we check to which group of commands the encoding +;; belongs. This is done by testing how the encoding and its data is +;; stored, e.g. whether it is a vector, or a cons cell, etc. +;; +(defconst cjk-format-spec-table + `( + ;; Cdr part is a vector VEC. Each character is formatted as: + ;; + ;; (format "\177%s\177" (aref VEC (- char-position-code-1 32))) + ;; + (latin-iso8859-1 . ,cjk-latin-1) + (latin-iso8859-2 . ,cjk-latin-2) + (latin-iso8859-3 . ,cjk-latin-3) + (latin-iso8859-4 . ,cjk-latin-4) + (latin-iso8859-9 . ,cjk-latin-5) + (latin-jisx0201 . ,cjk-latin-jisx) + ;; T2A encoding is used for Cyrillic letters. You must explicitly + ;; switch between T2 and T1/OT1 encoding. + (cyrillic-iso8859-5 . ,cjk-cyrillic) + ;; LGR encoding (resp. its ligatures) is used for Greek letters. + ;; You must explicitly switch between LGR and T1/OT1 encoding (using + ;; e.g. Babel's `greek' option). + (greek-iso8859-7 . ,cjk-greek) + ;; For Vietnamese a Vietnamese TeX-font has to be used which + ;; contains ASCII characters too! You must explicitly switch + ;; between Vietnamese T5 and T1/OT1 encoding. + (vietnamese-viscii-lower . ,cjk-viscii-lower) + (vietnamese-viscii-upper . ,cjk-viscii-upper) + + ;; Cdr part is a cons of header HEAD and formatter FORMAT. HEAD is + ;; printed first, then each character is formatted as: + ;; + ;; (format FORMAT char-code-1 [char-code-2]) + ;; + (katakana-jisx0201 . ("\17770\177\177" . "\177%c\177\177")) + (japanese-jisx0208 . ("\17766\177\177" . "\177%c\177%d\177")) + (chinese-gb2312 . ("\17767\177\177" . "\177%c\177%d\177")) + (chinese-big5-1 . ("\17768\177\177" . "\177%c\177%d\177")) + (chinese-big5-2 . ("\17768\177\177" . "\177%c\177%d\177")) + (big5 . ("\17768\177\177" . "\177%c\177%d\177")) + (korean-ksc5601 . ("\17769\177\177" . "\177%c\177%d\177")) + + ;; Cdr part is a formatter string FORMAT. Each character is + ;; formatted as: + ;; + ;; (format FORMAT char-code-1 char-code-2) + ;; + (japanese-jisx0212 . "\17772\177JIS2\177\177%d\177%d\177") + (chinese-cns11643-1 . "\17772\177CNS1\177\177%d\177%d\177") + (chinese-cns11643-2 . "\17772\177CNS2\177\177%d\177%d\177") + (chinese-cns11643-3 . "\17772\177CNS3\177\177%d\177%d\177") + (chinese-cns11643-4 . "\17772\177CNS4\177\177%d\177%d\177") + (chinese-cns11643-5 . "\17772\177CNS5\177\177%d\177%d\177") + (chinese-cns11643-6 . "\17772\177CNS6\177\177%d\177%d\177") + (chinese-cns11643-7 . "\17772\177CNS7\177\177%d\177%d\177") + + ;; Cdr part is a list of the form (SYMBOL ARG1 ARG2 ...). SYMBOL + ;; indicates how to process the following characters. + ;; + (thai-tis620 . (thai + "\17757\177\177" ; Thai start + "\17758\177\177" ; Thai end + "\17762\177%d\177" ; Thai base character + "\17760\177%d\177" ; Thai upper/lower vowel and tone + "\17763\177\177" ; Thai EOL + )) + )) + + +;; An alist of charsets vs list of features required for processing +;; the corresponding charset. The feature is loaded then on demand. +;; +(defconst cjk-feature-table + '((thai-tis620 thai-word))) + + +;; Create an output encoding called `cjk-coding', using the function +;; cjk-encode to actually convert the output. +;; +(if (featurep 'xemacs) + (make-coding-system + 'cjk-coding 'no-conversion + "Coding-system for LaTeX2e CJK Package" + '(mnemonic "CJK" + pre-write-conversion cjk-encode)) + (if (< emacs-major-version 23) + (make-coding-system + 'cjk-coding 0 ?c + "Coding-system for LaTeX2e CJK Package" + nil + '((pre-write-conversion . cjk-encode))) + (define-coding-system + 'cjk-coding + "Coding-system for LaTeX2e CJK Package" + :mnemonic ?c + :coding-type 'emacs-mule + :default-char ? + :charset-list '(ascii + latin-iso8859-1 + latin-iso8859-2 + latin-iso8859-3 + latin-iso8859-4 + cyrillic-iso8859-5 + greek-iso8859-7 + thai-tis620 + vietnamese-viscii-lower + vietnamese-viscii-upper + latin-jisx0201 + katakana-jisx0201 + japanese-jisx0208 + japanese-jisx0212 + korean-ksc5601 + chinese-gb2312 + chinese-big5-1 + chinese-big5-2 + chinese-cns11643-1 + chinese-cns11643-2 + chinese-cns11643-3 + chinese-cns11643-4 + chinese-cns11643-5 + chinese-cns11643-6 + chinese-cns11643-7) + :pre-write-conversion 'cjk-encode))) + +;; XEmacs doesn't have set-buffer-multibyte. +;; +(defmacro cjk-set-buffer-multibyte (arg) + (if (fboundp 'set-buffer-multibyte) + `(set-buffer-multibyte ,arg))) + + +;; The conversion routine. Its main idea is to analyze the character +;; set for each character and then to do something if the previous +;; character has a different character set. For Thai, we must +;; additionally find proper word breaks using a large word list. +;; +(defun cjk-encode (from to) + (let ((old-buf (current-buffer)) + (temp-buf (get-buffer-create " *cjk-tmp*")) + (work-buf (get-buffer-create " *cjk-work*")) + (required-features (copy-sequence cjk-feature-table))) + ;; Initialize all working buffers. + (set-buffer work-buf) + (erase-buffer) + (cjk-set-buffer-multibyte nil) + + (set-buffer temp-buf) + (erase-buffer) + (cjk-set-buffer-multibyte t) + + ;; Copy the original contents into TEMP-BUF. + (insert-buffer-substring old-buf from to) + (if (and (not (featurep 'xemacs)) + (string< emacs-version "21.0")) + (progn + (message "Decomposing...") + (decompose-region (point-min) (point-max)))) + + (let ((enc nil) + (space-state nil) + prev-charset charset + ch ch1 ch2 + format-spec + (skipped-whitespace nil) + (last-pos 0) + (unsupported-charset-warned nil)) + ;; Now we go to beginning of TEMP-BUF and start the loop. + (goto-char (point-min)) + (setq prev-charset 'ascii) + + (while (not (eobp)) + ;; In emacs 23+, the `charset' property holds the original + ;; encoding value; in emacs 22 and earlier, we get `nil'. + (setq tpch (get-text-property (point) 'charset)) + (setq ch (following-char)) + (set-buffer work-buf) + + ;; Set CHARSET to the character set of the current character. + ;; Use text property in preference to `char-charset'. + (if (not (eq tpch nil)) + (setq charset tpch) + (setq charset (char-charset ch))) + + ;; Avoid `tis620-2533' (new with emacs 23+); we replace it with + ;; Thai and ASCII (as a new optional argument to + ;; `char-charset'. + (if (eq charset 'tis620-2533) + (setq charset (char-charset ch '(thai-tis620 ascii)))) + + ;; emacs 25+: Language-detection heuristics changed. + ;; `big5' is preferred over `chinese-big5-1' and `chinese-big5-1'. + ;; If not overridden, can also swallow LaTeX (ascii) instructions + ;; afterwards. + (if (eq charset 'big5) + (setq charset (char-charset ch '(ascii big5)))) + + ;; Check whether we have Unicode based input. + (if (eq charset 'unicode) + (let ((l (split-char ch))) + (progn + ;; Unicode 0x0E00-0x0E7F is Thai. Transform back to TIS620 + (setq ch2 (nth 2 l) + ch3 (nth 3 l)) + (if (and (eq ch2 14) (< ch3 128)) + (setq charset 'thai-tis620 + ch (encode-char ch 'thai-tis620)))))) + + ;; `split-char' in emacs 23+ is sensitive to charset priority. + (cond ((> emacs-major-version 22) + (if (not (eq charset 'ascii)) + (set-charset-priority charset)))) + + (if (eq charset 'ascii) + ;; Not a multibyte character. + (progn + ;; Don't modify PREV-CHARSET for whitespace characters. + (setq skipped-whitespace (string-match "[ \t\n]" + (string ch))) + (if (not skipped-whitespace) + (setq prev-charset 'ascii)) + (insert ch)) + + ;; Now we are at a multibyte character. Set the following + ;; variables: + ;; + ;; CH1 -- first character code + ;; CH2 -- second character code (of two-byte characters) + ;; if any + (if (or (eq charset 'big5) + (or (eq charset 'chinese-big5-1) + (eq charset 'chinese-big5-2))) + ;; Emacs uses two special character sets for Big5 + ;; characters. We must decode the current character to + ;; get the real Big5 character code. + (progn + (setq ch (encode-big5-char ch)) + (if (consp ch) + ;; XEmacs + (setq ch1 (car ch) + ch2 (cdr ch)) + ;; Emacs + (setq ch1 (lsh ch -8) + ch2 (logand ch 255))) + ;; 128 will be later added again. + (setq ch1 (- ch1 128)) + (setq ch2 (- ch2 128))) + ;; For all other character sets, split-char does the right + ;; thing. Note that CH2 can be zero in case it is a + ;; single-byte character set. + (let ((l (split-char ch))) + (setq ch1 (nth 1 l) + ch2 (or (nth 2 l) 0)))) + + ;; FORMAT-SPEC tells how to encode this character. + (setq format-spec (cdr (assq charset cjk-format-spec-table))) + (if (null format-spec) + ;; Unsupported character set. + (when (not unsupported-charset-warned) + (let ((coding-system-for-write (terminal-coding-system))) + (message "WARNING: Detected unsupported character set %s" + charset) + (message "Consider using \`coding:\' or setting LANG.")) + ;; Suppress further warning in the same lang block. + (setq unsupported-charset-warned t)) + ;; Ok, it is supported. If this character set is a CJK + ;; character set (i.e., it is in CJK-ENC-TABLE), we need a + ;; special header at the beginning of the output file. + ;; This information is stored in the ENC list. + (let ((tag (cdr (assq charset cjk-enc-table)))) + (if tag + (or (memq tag enc) + (setq enc (cons tag enc))))) + + ;; Load all features which are required to handle this + ;; character set. + (let ((tail (assq charset required-features))) + ;; We remove all occurrences of TAIL in the feature list + ;; to avoid loading packages multiple times. + (setq required-features (delete tail required-features) + tail (cdr tail)) + (while tail + (require (car tail)) + (setq tail (cdr tail)))) + + (cond + ;; If FORMAT-SPEC has the form (SYMBOL ARG1 ARG2 ...), + ;; SYMBOL indicates how to process the following + ;; characters. + ((and (consp format-spec) (symbolp (car format-spec))) + (cond + ((eq (car format-spec) 'thai) + ;; FORMAT-SPEC has this form: + ;; (thai START-STRING END-STRING + ;; BASE-CHAR-FORMAT COMBINING-CHAR-FORMAT + ;; EOL-STRING) + (let ((base-format (nth 3 format-spec)) + (combining-format (nth 4 format-spec)) + pos + start + end + str + len + (i 0)) + ;; First, insert the code for starting Thai. + (if (not (eq prev-charset charset)) + (insert (nth 1 format-spec))) + ;; Analyze the maximum run of Thai characters in + ;; TEMP-BUF and insert `|' at all word boundaries. + (set-buffer temp-buf) + (setq start (point)) + ;; "\\ct+" searches for characters which have the + ;; category `t', i.e. are Thai characters. + (re-search-forward "\\ct+" nil t) + (setq end (point-marker)) + (goto-char start) + ;; THAI-BREAK-WORDS is in `thai-word.el', + ;; shipped with emacs 22+ onwards. + ;; loads from cjk for emacs 21 or below. + (thai-break-words "|" end) + ;; Extract this run. + (setq str (buffer-substring start end) + len (length str)) + (goto-char end) + (set-marker end nil) + ;; Insert characters in STR one by one while + ;; converting `|' to `cjk-word-break' and formatting + ;; Thai characters according to FORMAT-SPEC. + (set-buffer work-buf) + (while (< i len) + (setq ch (aref str i) + i (1+ i)) + (if (= ch ?|) + (insert cjk-word-break) + (let* ((split (split-char ch)) + (category-set (char-category-set ch))) + ;; We now analyze the linguistic category + ;; assigned to the current character and take + ;; the appropriate format. Then we add 128 + ;; for producing TIS-620 output. + (insert (format + (if (or (aref category-set ?2) + (aref category-set ?3) + (aref category-set ?4)) + combining-format + base-format) + (+ (nth 1 split) 128)))))) + ;; It depends on the following characters what to do + ;; next. If we have tabs and spaces followed by a + ;; Thai character, nothing will be done. If we have + ;; a newline character additionally, we insert a + ;; special command which usually expands to + ;; `\ignorespaces' (which will suppress all + ;; whitespace characters). In all other cases, we + ;; close the Thai block. + ;; + ;; Reason for this algorithm is the fact that in the + ;; Thai language a space isn't used to separate + ;; words but to structure a sentence. A normal line + ;; break shall not automatically cause the insertion + ;; of a space. The user has rather to explicitly + ;; type one or more space characters in the middle + ;; of a line to indicate that he or she really wants + ;; a space -- note that usually a Thai space is + ;; wider than a Roman space resp. can be stretched + ;; more. + (set-buffer temp-buf) + (if (looking-at "[ \t]+\\ct") + (setq str "") + (if (looking-at "[ \t]*\n[ \t]*\\ct") + (setq str (nth 5 format-spec)) + (setq str (nth 2 format-spec)))) + ;; To compensate the forward-char at the end of loop. + (forward-char -1) + (set-buffer work-buf) + (insert str))))) + + ;; We may have to insert the car part of the cons and/or + ;; space controlling commands (cjk-space/cjk-nospace) + ;; depending on the current context. + ;; + ;; Note that this logic sometimes fails. In the example + ;; below, cjk-encode will insert \CJKspace in the comment + ;; instead of right after the comment. Since cjk-encode + ;; should be a low-level function we can't assume that + ;; `%' is always the TeX comment character. Only TeX + ;; itself can reliably detect the current comment + ;; character. + ;; + ;; Chinese Text + ;; % Korean comment + ;; Korean Text + ;; + ;; Two solutions: Either switch between Korean and other + ;; languages only outside of a comment, or manually insert + ;; \CJKspace and \CJKnospace commands as needed. + ((consp format-spec) + (if (eq charset 'korean-ksc5601) + (or (eq space-state cjk-space) + (insert (setq space-state cjk-space))) + (or (eq space-state cjk-nospace) + (insert (setq space-state cjk-nospace)))) + + ;; Now insert the the header and character(s) + ;; according to CJK-FORMAT-SPEC-TABLE. The CJK + ;; package needs the characters in GR notation, so + ;; we add 0x80. + (if (not (eq prev-charset charset)) + (insert (car format-spec))) + (insert (format (cdr format-spec) + (+ ch1 128) (+ ch2 128)))) + + ;; Since Emacs provides the character sets in GL + ;; notation, we simply subtract 0x20 to get the proper + ;; index. + ((vectorp format-spec) + (insert (format "\177%s\177" + (aref format-spec (- ch1 32))))) + + ;; Otherwise, FORMAT-SPEC is just a formatting + ;; string. + (t + (insert (format format-spec ch1 ch2))))) + + (setq prev-charset charset)) + + ;; We have finished the analysis of the character set. Print + ;; some progress information if we have done another 1000 + ;; characters. + (set-buffer temp-buf) + (if (> (- (point) last-pos) 1000) + (progn + (setq last-pos (point)) + (let ((coding-system-for-write (terminal-coding-system))) + (message "Converting: %2d%%" + (/ (* 100 (point)) (point-max)))))) + + ;; Advance to the next character and loop. + (forward-char 1)) + + ;; The remaining task is to insert an appropriate header at the + ;; very beginning of the output file. If ENC isn't empty, we need + ;; the extra LaTeX commands to load CJK package and to output all + ;; collected CJK encodings. + (set-buffer work-buf) + (goto-char (point-min)) + (if enc + (progn + (insert "\\def\\CJKhook{") + (while enc + (insert (format "\\CJKenc{%s}" (car enc))) + (setq enc (cdr enc))) + (insert "}") + (insert "\\ifx\\CJKpreproc\\undefined") + (insert "\\def\\CJKpreproc{cjk-enc}") + (insert "\\RequirePackage[global]{CJK}") + (insert "\\AtBeginDocument{\\begin{CJK}{}{}\\CJKspace}") + (insert "\\AtEndDocument{\\end{CJK}}") + (insert "\\else\\CJKhook\\fi ")) + (insert "\\ifx\\CJKpreproc\\undefined") + (insert "\\def\\CJKpreproc{cjk-enc}") + (insert "\\RequirePackage{MULEenc}") + (insert "\\fi "))))) + + +(defun cjk-get-name (filename) + "Replace the extension of the file name with `.cjk'. +If the extension of FILENAME is `.bib', `-cjk.bib' will be appended +to the file name without extension." + + (concat (file-name-sans-extension filename) + (if (string-equal (file-name-extension filename) "bib") + "-cjk.bib" + ".cjk"))) + + +(defun cjk-write-file () + "Save current buffer and <buffername>.cjk in cjk-coding. +Files of the form <buffername>.bib are saved as <buffername>-cjk.bib. + +If no file is associated with the buffer, you are asked to specify a +file name." + + (interactive) + (save-buffer) + (let* ((bufname (buffer-file-name)) + (newbufname (cjk-get-name bufname))) + (message "Saving %s and %s" bufname newbufname) + (let ((coding-system-for-write 'cjk-coding)) + (write-region (point-min) (point-max) newbufname)))) + + +(defun cjk-file-write-file (filename &optional load) + "Save FILENAME as <FILENAME>.cjk in cjk-coding. +With prefix arg (noninteractively: 2nd arg LOAD), load FILENAME into +current buffer also." + + (interactive + (let ((file buffer-file-name) + (file-name nil) + (file-dir nil)) + (and file + ;; If we are in LaTeX mode, we present the file associated + ;; with the current buffer as the default. + (eq (cdr (assq 'major-mode (buffer-local-variables))) + 'latex-mode) + (setq file-name (file-name-nondirectory file) + file-dir (file-name-directory file))) + ;; Now we build the argument list. + (list (read-file-name (if current-prefix-arg + "Load file and save it in cjk-coding: " + "Save file in cjk-coding: ") + file-dir file-name nil) + current-prefix-arg))) + + (setq filename (expand-file-name filename)) + + (let (input-buffer + (new-filename (cjk-get-name filename))) + (save-excursion + (setq input-buffer (get-buffer-create " *cjk-temp*")) + (set-buffer input-buffer) + (erase-buffer) + (cjk-set-buffer-multibyte t) + (insert-file-contents filename) + (let ((coding-system-for-write 'cjk-coding)) + (write-region (point-min) (point-max) new-filename)))) + + (if load + (find-file filename))) + + +;; To be independent from AUC TeX, we copy the TeX-in-comment function. + +(defvar cjk-tex-esc "\\" + "The TeX escape character.") + + +(defconst cjk-comment-start-skip (concat "\\(\\(^\\|[^\\]\\)\\(" + (regexp-quote cjk-tex-esc) + (regexp-quote cjk-tex-esc) + "\\)*\\)\\(%+ *\\)") + "A regexp to identify the beginning of a comment in TeX.") + + +(defun cjk-tex-in-comment () + "Return non-nil if point is in a TeX comment." + + (if (or (bolp) + (eq (preceding-char) ?\r)) + nil + (save-excursion + (let ((pos (point))) + (re-search-backward "^\\|\r" nil t) + (or (looking-at cjk-comment-start-skip) + (re-search-forward cjk-comment-start-skip pos t)))))) + + +(defun cjk-write-all-files (filename &optional load force) + "Save FILENAME and all files included in FILENAME in cjk-coding. +This function runs `cjk-file-write-file' on each file if necessary. +The inclusion commands scanned for are `\\CJKinput', `\\CJKinclude', +and `\\CJKbibliography'. + +With 1 \\[universal-argument] (noninteractively: 2nd arg LOAD), + load FILENAME into current buffer also. +With 2 \\[universal-argument]'s (noninteractively: 3rd arg FORCE), + run `cjk-file-write-file' unconditionally. +With 3 \\[universal-argument]'s, do both." + + (interactive + (let ((file buffer-file-name) + (file-name nil) + (file-dir nil)) + (and file + ;; If we are in LaTeX mode, we present the file associated + ;; with the current buffer as the default. + (eq (cdr (assq 'major-mode (buffer-local-variables))) + 'latex-mode) + (setq file-name (file-name-nondirectory file) + file-dir (file-name-directory file))) + ;; Now we build the argument list. + (setq load (member current-prefix-arg '((4) (64)))) + (setq force (member current-prefix-arg '((16) (64)))) + (list + (read-file-name (if load + "Load file and save it in cjk-coding: " + "Save file in cjk-coding: ") + file-dir file-name nil) + load + force))) + + (let (input-buffer + (dir (file-name-directory filename)) + (tex-include-regexp "\\\\CJKinclude *{\\(.*\\)}") + (tex-input-regexp "\\\\CJKinput *{\\(.*\\)}") + (bib-regexp "\\\\CJKbibliography *{\\(.*\\)}") + (result '()) + (newresult '())) + (save-excursion + ;; First, load the file associated with FILENAME into INPUT-BUFFER + (setq input-buffer (get-buffer-create " *cjk-temp*")) + (set-buffer input-buffer) + (erase-buffer) + (cjk-set-buffer-multibyte t) + (insert-file-contents filename) + (goto-char (point-min)) + + ;; Then, search `\CJKinput', `\CJKinclude', and `\CJKbibliography' and + ;; append the found filenames to the RESULT list. + (while (re-search-forward tex-include-regexp nil t) + ;; We assume that the include file name is well behaved and + ;; doesn't contain a comment character. + (let ((match (match-string 1))) + (if (not (cjk-tex-in-comment)) + (setq result (cons (concat match ".tex") result))))) + (while (re-search-forward tex-input-regexp nil t) + (let ((match (match-string 1))) + (if (not (cjk-tex-in-comment)) + (if (string-equal (file-name-sans-extension match) match) + (setq result (cons (concat match ".tex") result)) + (setq result (cons match result)))))) + (while (re-search-forward bib-regexp nil t) + (let ((match (match-string 1))) + (if (not (cjk-tex-in-comment)) + (setq result (cons (concat match ".bib") result)))))) + + ;; Add directory to each element. + (dolist (elt result) + (setq newresult (cons (concat dir elt) newresult))) + + ;; Add the master file itself to the list. + (setq newresult (cons filename newresult)) + + ;; Process file by file. + (dolist (source newresult) + (if (not (file-readable-p source)) + (message "Can't operate on %s" source) + (if (or (file-newer-than-file-p source (cjk-get-name source)) + force) + (cjk-file-write-file source))))) + + (if load + (find-file filename))) + + +(defun batch-cjk-write-file () + "Run `cjk-file-write-file' on the remaining files if necessary. +Use this from the command line, with `--batch' (or `-batch'); it won't +work in an interactive Emacs. For example, invoke + + \"emacs -batch -l cjk-enc -f batch-cjk-write-file *.tex\" + +Note that if you specify a directory name, all files in this directory +are processed." + + (do-batch-cjk-write-file)) + + +(defun batch-force-cjk-write-file () + "Run `cjk-file-write-file' on the remaining files unconditionally. +Use this from the command line, with `--batch' (or `-batch'); it won't +work in an interactive Emacs. For example, invoke + + \"emacs -b -l cjk-enc -f batch-force-cjk-write-file *.tex\" + +Note that if you specify a directory name, all files in this directory +are processed. + +This function is useful for Makefiles to let the make program do the +file time management." + + (do-batch-cjk-write-file t)) + + +(defun do-batch-cjk-write-file (&optional force) + "Run `cjk-file-write-file' on remaining arguments. +If optional argument FORCE is non-nil, run it unconditionally." + + (defvar command-line-args-left) ; Avoid `free variable' warning. + + (if (not noninteractive) + (error "`batch-write-cjk-file' is to be used only with --batch")) + + (while command-line-args-left + (let ((source (car command-line-args-left)) + dest) + (if (file-directory-p (expand-file-name source)) + ;; Handle all files in directory. + (let ((files (directory-files source))) + (while files + (if (and (not (auto-save-file-name-p (car files))) + ;; Replace the directory name saved in `source' + ;; with a file name. + (setq source + (expand-file-name (car files) source)) + (setq dest (cjk-get-name source)) + (not (file-directory-p source)) + (or (file-newer-than-file-p source dest) + force)) + (cjk-file-write-file source)) + (setq files (cdr files)))) + ;; Otherwise, process a single file. + (if (not (file-readable-p source)) + (message "Can't operate on %s" source) + (if (or (file-newer-than-file-p source (cjk-get-name source)) + force) + (cjk-file-write-file source))))) + + (setq command-line-args-left (cdr command-line-args-left))) + + (message "Done") + (kill-emacs 0)) + +;;; EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/lisp/emacs/thai-word.el b/language/chinese/CJK/cjk-4.8.5/utils/lisp/emacs/thai-word.el new file mode 100644 index 0000000000..956cf27b06 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/lisp/emacs/thai-word.el @@ -0,0 +1,11052 @@ +;;; thai-word.el -- find Thai word boundaries + +;; Copyright (C) 2000, 2001, 2002, 2003, 2004 +;; Electrotechnical Laboratory, JAPAN. + +;; Author: Kenichi HANDA <handa@etl.go.jp> + +;; Keywords: thai, word break, emacs + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to +;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + +;; The used Thai word list has been taken from IBM's ICU4J project +;; (file `thai6.ucs', version 1.4, converted to TIS encoding, with +;; removal of three incorrect entries) to which the following license +;; applies: +;; +;; COPYRIGHT AND PERMISSION NOTICE +;; +;; +;; Copyright (c) 1995-2001 International Business Machines +;; Corporation and others +;; +;; All rights reserved. +;; +;; +;; Permission is hereby granted, free of charge, to any person +;; obtaining a copy of this software and associated documentation +;; files (the "Software"), to deal in the Software without +;; restriction, including without limitation the rights to use, +;; copy, modify, merge, publish, distribute, and/or sell copies of +;; the Software, and to permit persons to whom the Software is +;; furnished to do so, provided that the above copyright notice(s) +;; and this permission notice appear in all copies of the Software +;; and that both the above copyright notice(s) and this permission +;; notice appear in supporting documentation. +;; +;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +;; OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +;; NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE +;; COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE +;; FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, +;; OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR +;; PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +;; TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +;; PERFORMANCE OF THIS SOFTWARE. +;; +;; Except as contained in this notice, the name of a copyright +;; holder shall not be used in advertising or otherwise to promote +;; the sale, use or other dealings in this Software without prior +;; written authorization of the copyright holder. + + +;; This file implements an algorithm to find Thai word breaks using a +;; dictionary. It is based on the C program `cttex' written by +;; Vuthichai Ampornaramveth <vuthi@nii.ac.jp>. + + +;; Table of Thai words. It is a nested alist (see `nested-alist-p'), +;; which means that you can easily index the list character by +;; character. + +(defconst thai-word-table nil) + + +;; Set up `thai-word-table'. + +(let + ((l + '("¡¡" + "¡¡Å" + "¡¡Ø¸Àѳ±ì" + "¡§" + "¡§¡ÒÃ" + "¡§ÊØÅ" + "¡§àµê¡" + "¡®" + "¡®ËÁÒÂ" + "¡°Ô¹" + "¡´" + "¡µÑªÅÕ" + "¡µÑصÒ" + "¡µÑÙ" + "¡µÒ¸Ô¡ÒÃ" + "¡µÒÀÔ¹ÔËÒÃ" + "¡µÔ¡Ò" + "¡µàÇ·ÔµÒ" + "¡µàÇ·Õ" + "¡¶Ò" + "¡·Á" + "¡·ÅÕ" + "¡¹" + "¡¹¡" + "¡¹ÔÉ°Ò" + "¡º" + "¡º¯" + "¡º´Ò¹" + "¡º·Ù" + "¡ºÒÅ" + "¡ºÔ¹·Ãì" + "¡ºÔÅ" + "¡ºÕè" + "¡ÁÅ" + "¡Ã" + "¡Ã¡®" + "¡Ã¡®Ò¤Á" + "¡Ã¡¯" + "¡Ã§" + "¡Ã³±ì" + "¡Ã³Õ" + "¡Ã³Õ¡Ԩ" + "¡Ã³ÕÂì" + "¡Ã´" + "¡Ã¹" + "¡Ãº" + "¡ÃºÙÃ" + "¡ÃÁ" + "¡ÃÁ·èÒ" + "¡ÃÁ¸ÃÃÁì" + "¡ÃÃ" + "¡Ãêԧ" + "¡Ãó" + "¡ÃóԡÒÃì" + "¡ÃþØÁ" + "¡ÃÃÁ" + "¡ÃÃÁ¡Ã" + "¡ÃÃÁ¡ÒÃ" + "¡ÃÃÁªÇÒµ" + "¡ÃÃÁÒª¹" + "¡ÃÃÁÒªÕ¾" + "¡ÃÃÁÒ¸Ô¡ÒÃ" + "¡ÃÃà¨Õ¡" + "¡ÃÃàªÕ§" + "¡ÃÃá·Ã¡" + "¡ÃÃ⪡" + "¡ÃÃä¡Ã" + "¡ÃÇ´" + "¡ÃǺ" + "¡ÃÇÂ" + "¡ÃÍ" + "¡ÃÍ¡" + "¡ÃÍ¡á¡Ã¡" + "¡Ãͧ" + "¡Ãͧ¡ÃÍÂ" + "¡ÃÍ´" + "¡Ãͺ" + "¡ÃÍÁ" + "¡ÃÐ" + "¡ÃЧ¡¡ÃÐà§Ôè¹" + "¡ÃЧèͧ¡ÃÐá§è§" + "¡ÃЧè͹¡ÃÐá§è¹" + "¡ÃШ¡" + "¡ÃШ͡" + "¡ÃШͧÍá§" + "¡ÃШѧ" + "¡ÃШѺ" + "¡ÃШҴ" + "¡ÃШҺ" + "¡ÃШÒÂ" + "¡ÃШԴ" + "¡ÃШԺ" + "¡ÃШÔÃÔ´" + "¡ÃШء" + "¡ÃШغ¡ÃШԺ" + "¡ÃШØÂ" + "¡ÃШØ맡ÃШÔë§" + "¡ÃШØëÁ¡ÃШÔëÁ" + "¡ÃШÙë¡ÃШÕë" + "¡ÃШèÒ§" + "¡ÃШé͹" + "¡ÃЩ͡" + "¡ÃЩѺ¡ÃÐ੧" + "¡ÃЩٴ" + "¡ÃЩè͹" + "¡ÃЪ͹" + "¡ÃЪѺ" + "¡ÃЪÑé¹" + "¡ÃЪҡ" + "¡ÃЪØ" + "¡ÃЫԡ" + "¡ÃЫԺ" + "¡ÃЮØÁ¾Õ" + "¡Ãд¡" + "¡Ãдͧ" + "¡Ãд͹" + "¡Ãдѧ§Ò" + "¡Ãдҡ" + "¡ÃдҧÅÒ§" + "¡Ãдҹ" + "¡ÃдÒÉ" + "¡Ãдԡ" + "¡ÃдÔè§" + "¡ÃдÕè" + "¡Ãд׺" + "¡ÃдØÁ" + "¡Ãд١" + "¡Ãдé§" + "¡ÃдéÒ§" + "¡Ãеԡ" + "¡ÃеԺ" + "¡ÃеÔê´" + "¡Ãе×ÍÃ×ÍÃé¹" + "¡Ãеء" + "¡ÃеØ駡ÃеÔé§" + "¡ÃеØé¹" + "¡Ãеèͧ¡ÃÐáµè§" + "¡ÃеèÒÂ" + "¡ÃеéÇÁ¡ÃÐàµÕéÂÁ" + "¡Ãеêͺ" + "¡ÃжԹ" + "¡Ãз§" + "¡Ãзº" + "¡ÃзÃǧ" + "¡ÃзÐ" + "¡ÃзÑè§" + "¡Ãзԧ" + "¡Ãз׺" + "¡Ãзا" + "¡ÃзÙé" + "¡ÃзèÍÁ" + "¡Ãзé͹" + "¡ÃзéÍÁ¡ÃÐá·éÁ" + "¡ÃйÑé¹" + "¡Ãкǹ" + "¡ÃкÇÂ" + "¡Ãк͡" + "¡Ãкͧ" + "¡ÃкÐ" + "¡ÃкÔ" + "¡ÃкÕè" + "¡Ãк×Í" + "¡Ãкا" + "¡ÃлÃÕé¡ÃÐà»ÃèÒ" + "¡ÃлÑéÇ¡ÃÐà»ÕéÂ" + "¡ÃлèÓ" + "¡ÃлéÍ¡ÃÐá»é" + "¡Ãлëͧ" + "¡ÃмÅÕ¡ÃмÅÒÁ" + "¡Ãмա" + "¡ÃоÕé" + "¡Ãо×Í" + "¡ÃоØé§" + "¡ÃпѴ¡ÃÐà¿Õ´" + "¡ÃпÙÁ¡ÃпÒÂ" + "¡ÃÐÁÍÁ¡ÃÐáÁÁ" + "¡ÃÐÁѧ" + "¡ÃÐÂÒ˧ѹ" + "¡ÃÐÂÖ¡¡ÃÐÂ×Í" + "¡ÃÐÂè͹" + "¡ÃÐÃÍ¡" + "¡ÃÐÅÍÁ" + "¡ÃÐÅÑÁ¾Ã" + "¡ÃÐÇÔ¹" + "¡ÃÐÇÕ¡ÃÐÇÒ´" + "¡ÃÐÉÑÂ" + "¡ÃÐÉÒ»³ì" + "¡ÃÐÊͺ" + "¡ÃÐÊѧ" + "¡ÃÐÊѹ" + "¡ÃÐÊÒ" + "¡ÃÐÊ×Í" + "¡ÃÐÊا¡ÃÐÊÔ§" + "¡ÃÐÊع" + "¡ÃÐ˹¡" + "¡ÃÐ˹Һ" + "¡ÃÐ˹èÓ" + "¡ÃÐËÁÔº" + "¡ÃÐËÁèÍÁ" + "¡ÃÐËÂÔèÁ" + "¡ÃÐËÒÂ" + "¡ÃÐËÖÁ" + "¡ÃÐËÖèÁ" + "¡ÃÐÍͺ" + "¡ÃÐÍÑ¡" + "¡ÃÐÍÑ¡¡ÃÐÍèǹ" + "¡ÃÐà§éÒ¡ÃЧʹ" + "¡ÃÐà¨Ò" + "¡ÃÐà¨Ô§" + "¡ÃÐà¨Ô´¡ÃÐà¨Ô§" + "¡ÃÐà¨Õêº" + "¡ÃÐàªéÒ" + "¡ÃÐà«Í" + "¡ÃÐà«Ô§" + "¡ÃÐà«ç¹" + "¡ÃÐà«éÒ" + "¡ÃÐà´Ô´" + "¡ÃÐà´Õ´" + "¡ÃÐà´×Í¡" + "¡ÃÐà´×èͧ" + "¡ÃÐà´ç¹" + "¡ÃÐà´éÒ" + "¡ÃÐ൧" + "¡ÃÐàµÒÐ" + "¡ÃÐàµ×éͧ" + "¡ÃÐàµç¹" + "¡ÃÐà¶Ôº" + "¡ÃÐà·ÕÂÁ" + "¡ÃÐà·×͹" + "¡ÃÐູ" + "¡ÃÐàºÕ´" + "¡ÃÐàº×éͧ" + "¡ÃÐà»ÒÐ" + "¡ÃÐà»ëÒ" + "¡ÃÐà¾ÒÐ" + "¡ÃÐà¾×èÍÁ" + "¡ÃÐàÂéÍ¡ÃÐáËÂè§" + "¡ÃÐàÃÕ¹" + "¡ÃÐàÊÕ¹" + "¡ÃÐàÊÕÂÃ" + "¡ÃÐàÊ繡ÃÐÊÒÂ" + "¡ÃÐàÊèÒ" + "¡ÃÐàËÁç´¡ÃÐáËÁè" + "¡ÃÐá¨Ð" + "¡ÃÐá«Ð" + "¡ÃÐá´Ð" + "¡ÃÐá´èÇ" + "¡ÃÐáµ" + "¡ÃÐá·¡" + "¡ÃÐáÊ" + "¡ÃÐáÍÁ" + "¡ÃÐ⨹" + "¡ÃÐâ¨Á" + "¡ÃÐâ©¡¡ÃÐà©¡" + "¡ÃÐâ´¡" + "¡ÃÐâ´¡¡ÃÐà´¡" + "¡ÃÐâ´§" + "¡ÃÐâ´´" + "¡ÃÐⶹ" + "¡ÃÐâºÁ" + "¡ÃÐâ»Ã§" + "¡ÃÐâËé" + "¡ÃÑ¡" + "¡Ãѧ" + "¡Ãѹ" + "¡ÃѺ" + "¡ÃÑÁ" + "¡ÃÒ¡" + "¡ÃÒ§" + "¡ÃÒ´" + "¡ÃÒ¹" + "¡ÃÒº" + "¡ÃÒ¿" + "¡ÃÒ¿¿Ô¡" + "¡ÃÒ¿Ô¡" + "¡ÃÒÁ" + "¡ÃÒÂ" + "¡ÃÒÇ" + "¡ÃÓ" + "¡ÃÔ¡" + "¡ÃÔ§¡ÃÔÇ" + "¡ÃÔª" + "¡ÃÔº" + "¡ÃÔÁ" + "¡ÃÔÂÒ" + "¡ÃÔÇ" + "¡ÃÔè§" + "¡ÃÔèÁ" + "¡ÃÔéÇ" + "¡ÃÔê¡" + "¡ÃÔê§" + "¡ÃÕ" + "¡ÃÕ¡" + "¡ÃÕ±Ò" + "¡ÃÕ´" + "¡ÃÕ¸Ò" + "¡ÃÕê´" + "¡ÃØ" + "¡ÃØ¡" + "¡Ãا" + "¡Ãا෾" + "¡ÃسÒ" + "¡ÃسҸԤس" + "¡Ãع" + "¡Ãغ" + "¡ÃØÂ" + "¡ÃØè¹" + "¡ÃØèÁ" + "¡ÃØéÁ¡ÃÔèÁ" + "¡ÃØê»" + "¡ÃÙ" + "¡ÃÙ´" + "¡ÃçÍ¡¡ÃëÍÂ" + "¡Ãè͹" + "¡ÃèÍÂ" + "¡ÃèÒ§" + "¡ÃèÒÂ" + "¡ÃèÓ" + "¡ÃéÇÁ" + "¡ÃéÍ" + "¡ÃéÒ¹" + "¡ÃéÒÇ" + "¡ÄɮաÒ" + "¡ÄɳÒ" + "¡Å" + "¡Å´" + "¡Åº" + "¡ÅÁ" + "¡ÅÂØ·¸ì" + "¡Åǧ" + "¡ÅÍ¡" + "¡Åͧ" + "¡Å͹" + "¡ÅÍÂ" + "¡ÅÑ¡" + "¡ÅÑ´" + "¡ÅѺ" + "¡ÅÑÇ" + "¡ÅÑè¹" + "¡ÅÑé¹" + "¡ÅÑéÇ" + "¡ÅÒ¡" + "¡ÅÒ§" + "¡ÅÒ´" + "¡ÅÒÂ" + "¡ÅÒâËÁ" + "¡ÅÔè§" + "¡ÅÔè¹" + "¡ÅÔé§" + "¡ÅÔéÁ" + "¡ÅÕ" + "¡ÅÕº" + "¡ÅÕè" + "¡ÅÖ§" + "¡Å×¹" + "¡ÅØèÁ" + "¡ÅØéÁ" + "¡ÅÙâ¤Ê" + "¡ÅàÁç´" + "¡Åè¹" + "¡Åèͧ" + "¡Åè͹" + "¡ÅèÍÁ" + "¡ÅèÒÇ" + "¡ÅèÓ" + "¡ÅéÇÂ" + "¡ÅéÇÂäÁé" + "¡ÅéÍ" + "¡Åéͧ" + "¡Åé͹" + "¡ÅéÍÁá¡ÅéÁ" + "¡ÅéÒ" + "¡ÅéÒÁ" + "¡ÅéÓ" + "¡Ç´" + "¡Ç¹" + "¡ÇÁ" + "¡ÇÂ" + "¡Ç¨Ñêº" + "¡Ç¨Õê" + "¡ÇÑ¡" + "¡ÇÑ´" + "¡ÇÒ§" + "¡ÇÒ§µØé§" + "¡ÇÒ´" + "¡ÇÒÇà¤Ã×Í" + "¡ÇÕ" + "¡ÇèÒ" + "¡ÇéÒ§" + "¡ÇéÒ¹" + "¡ÇêÒ¹" + "¡ÉѵÃÔÂì" + "¡ÉÑÂ" + "¡ÉÒ»³ì" + "¡ÊÔ" + "¡ÊÔ¡Ã" + "¡ÊÔ¡ÃÃÁ" + "¡ÊÔ³" + "¡Í" + "¡Í¡" + "¡Í§" + "¡Í«" + "¡Í´" + "¡Íº" + "¡Í»Ã" + "¡ÍÂ" + "¡ÍÃÔÅÅÒ" + "¡ÍÅì¿" + "¡ÍàÍÕêÂÐ" + "¡Ð" + "¡ÐªÖ衡ЪÑè¡" + "¡Ð«Ç¡" + "¡Ð´Õè" + "¡ÐµéÓ" + "¡ÐµêÒ¡" + "¡Ð·¡Ã¡" + "¡Ð·Ñ´ÃÑ´" + "¡Ð·Ñ¹Ëѹ" + "¡Ð·Ô" + "¡Ð·×Í" + "¡ÐºÑ§ÅÁ" + "¡ÐºÔé§" + "¡Ð»ÃÔ´¡Ð»ÃÍÂ" + "¡Ð»Ç¡¡Ðà»Õ¡" + "¡Ð»Ð" + "¡Ð»Ô" + "¡Ð¾§" + "¡Ð¾ÃÔº" + "¡Ð¾Åèͧ¡Ðá¾Åè§" + "¡Ð¾éÍ" + "¡ÐÃѵ" + "¡ÐÃØ觡ÐÃÔè§" + "¡ÐÅÇÂ" + "¡ÐÅÍ" + "¡ÐÅлѧËÒ" + "¡ÐÅÐÁѧ" + "¡ÐÅÐáÁ" + "¡ÐÅÒ" + "¡ÐÅÒÊÕ" + "¡ÐÅÔéÁ¡ÐàËÅÕèÂ" + "¡ÐÅè͹" + "¡ÐÅèÍÁ¡ÐáÅèÁ" + "¡ÐÅèÍ¡ÐËÅÔº" + "¡ÐÊéÒËÍÂ" + "¡Ð˹ا¡Ð˹ԧ" + "¡Ð˹çͧ¡Ðá˹ç§" + "¡ÐËÃÍ´" + "¡ÐËÃÕè" + "¡ÐËÃçÍÁ¡ÐáËÃçÁ" + "¡ÐËÃèͧ" + "¡ÐËÅÕè" + "¡ÐËÅØ¡¡ÐËÅÔ¡" + "¡ÐËÅèÓ" + "¡Ðà´¡" + "¡Ð൧" + "¡Ðà·Â" + "¡Ðà·ÒÐ" + "¡Ðà»Ô꺡лêÒº" + "¡Ðà¼Å¡" + "¡ÐàÃÕè¡ÐÃÒ´" + "¡ÐàÅÔ´" + "¡ÐàÅèÍ¡ÐÅèÒ" + "¡ÐàËÃÕè§" + "¡ÐàËÅÒÐà»ÒÐ" + "¡Ðáªè" + "¡Ðⵧ¡Ð൧" + "¡Ðâµé§âËè§" + "¡Ðâµê¡" + "¡Ðâ»Ã§" + "¡Ðâ»âÅ" + "¡Ðâ¼Å¡¡Ðà¼Å¡" + "¡ÐâËÅ¡" + "¡Ñ¡" + "¡Ñ¡¢ÌÐ" + "¡Ñ§" + "¡Ñ§¡éÒ" + "¡Ñ§¢Ò" + "¡Ñ§©Ô¹" + "¡Ñ§¿Ù" + "¡Ñ§ÇÅ" + "¡Ñ§ÇÒ¹" + "¡Ñ§Ê´ÒÅ" + "¡Ñ§Ëѹ" + "¡Ñ§äÊ" + "¡ÑªÒ" + "¡ÑÒ" + "¡Ñ³±ì" + "¡Ñ´" + "¡Ñ¹" + "¡Ñ¹´ÒÃ" + "¡Ñ¹µì" + "¡Ñ¹ÂÒ¹" + "¡Ñ¹Âì" + "¡Ñº" + "¡Ñ»" + "¡Ñ»µÑ¹" + "¡ÑÁ»¹Ò·" + "¡ÑÁ»ÃÐâ´" + "¡ÑÁ¾ÙªÒ" + "¡ÑÁÁѹµÀÒ¾ÃѧÊÕ" + "¡ÑÁÁѹµÃѧÊÕ" + "¡Ñź¡" + "¡ÑÅ»¾Ä¡Éì" + "¡ÑŻѧËÒ" + "¡ÑÅ»ÒÇÊÒ¹" + "¡ÑÅ»ì" + "¡ÑÅÂÒ" + "¡ÑÅÂÒ³" + "¡ÑÅÂÒ³ÁÔµÃ" + "¡ÑÅÂÒ³Õ" + "¡ÑÅâª" + "¡Ñè¹" + "¡Ñé§" + "¡Ñé¹" + "¡Ñé¹ËÂÑè¹" + "¡Ñê¡" + "¡Ò" + "¡Ò¡" + "¡Ò¡Õ" + "¡Ò§" + "¡Ò§à¡§" + "¡Ò§à¢¹" + "¡Ò«ÐÅͧ" + "¡Ò¨¹ºØÃÕ" + "¡Ò¨¹Ò" + "¡Ò´" + "¡Ò¹" + "¡Ò¹´Ò" + "¡Ò¹¾ÅÙ" + "¡Òº" + "¡Ò½Ò¡" + "¡Ò¾Âì" + "¡ÒÁ" + "¡ÒÁÒÃÁ³ì" + "¡ÒÂ" + "¡Ò¡ÃÃÁ" + "¡ÒÂÀÒ¾" + "¡ÒÂÇÔÀÒ¤" + "¡ÒÂÊÔ·¸Ôì" + "¡ÒÂҾ¾" + "¡ÒÃ" + "¡Òóì" + "¡ÒúÙÃ" + "¡ÒÃÐà¡´" + "¡ÒÃѳÂì" + "¡ÒÃѹµì" + "¡ÒÃØ" + "¡ÒÃسÂì" + "¡ÒÃàÇ¡" + "¡ÒÃì" + "¡ÒÃì´" + "¡ÒÃìµÙ¹" + "¡ÒÅ" + "¡ÒÅ¡Ô³Õ" + "¡ÒÅÕ" + "¡ÒÅà·ÈÐ" + "¡ÒÇ" + "¡ÒÈ" + "¡ÒÊ" + "¡ÒÊÃ" + "¡ÒÊÔâ¹" + "¡ÒËŧ" + "¡ÒÌ" + "¡ÒàËÇèÒ" + "¡Òá¿" + "¡ÒáÅç¡«Õ" + "¡Ó" + "¡Ó¡ÇÁ" + "¡Ó¡Ñ´" + "¡Ó¡Ñº" + "¡Ó¨Ã" + "¡Ó¨Ñ´" + "¡Ó¨ÒÂ" + "¡ÓªÑº" + "¡Ó«Òº" + "¡Ó´Ñ´" + "¡Ó¸Ã" + "¡Ó¹Ñ¹" + "¡Ó¹ÑÅ" + "¡ÓºÑ§" + "¡Ó»Ñè¹" + "¡Ó¾ÃéÒ" + "¡Ó¾×´" + "¡ÓÁжѹ" + "¡ÓÁÐÅÍ" + "¡ÓÁÐËÂÕè" + "¡ÓÂÒ¹" + "¡ÓÂÓ" + "¡ÓÃÒº" + "¡ÓÅѧ" + "¡ÓÊÃÇÅ" + "¡Ó˹´" + "¡Ó˹Ѵ" + "¡Óà´Ò" + "¡Óà¹Ô´" + "¡ÓàÃÔº" + "¡Óà˹ç¨" + "¡Óᾧ" + "¡Óá˧" + "¡ÓäÃ" + "¡ÓäÅ" + "¡Ô¡" + "¡Ô¡Ð" + "¡Ô¨" + "¡Ô¨¡ÃÃÁ" + "¡Ô¨¡ÒÃ" + "¡Ô¨¨ÐÅѡɳÐ" + "¡Ô¨¨Ò" + "¡ÔµµÔ" + "¡ÔµµÔ¤Ø³" + "¡ÔµµÔÁÈÑ¡´Ôì" + "¡ÔµµÔÈѾ·ì" + "¡Ô¹" + "¡Ô¹¹Ã" + "¡Ô¹ÃÕ" + "¡ÔÃÔ³Õ" + "¡ÔÃÔÂÒ" + "¡ÔàŹ" + "¡ÔàÅÊ" + "¡ÔâÁâ¹" + "¡Ôâµչ" + "¡ÔâÅ" + "¡ÔâÅ¡ÃÑÁ" + "¡ÔâÅÅÔµÃ" + "¡ÔâÅàÁµÃ" + "¡ÔâÅàÎÔõ«ì" + "¡Ôè§" + "¡ÔèÇ" + "¡Ô駡×Í" + "¡Ô駡èÒ" + "¡Ôê¡" + "¡Ôêº" + "¡ÔëÇ" + "¡Õ¯ÇÔ·ÂÒ" + "¡Õ´" + "¡ÕµÒÃì" + "¡Õº" + "¡ÕÌÒ" + "¡Õè" + "¡Õé" + "¡Õë" + "¡Ö¡" + "¡Ö¡¡éͧ" + "¡Öè§" + "¡Öë¹" + "¡Ø" + "¡Ø¡" + "¡Ø¡¡Ñ¡" + "¡ØªÃ" + "¡Øá¨" + "¡Ø®ØÁ¾Õ" + "¡Ø¯°Ñ§" + "¡Ø¯Ô" + "¡Ø³±Å" + "¡Ø´" + "¡Ø´Ñ§" + "¡Ø´Ñè¹" + "¡Ø¹" + "¡Ø¹«×Í" + "¡Ø¹àªÕ§" + "¡Øº" + "¡ØÁ" + "¡ØÁÀÒ" + "¡ØÁÀì" + "¡ØÁÒÃ" + "¡ØÁÒÃÒ" + "¡ØÁÒÃÕ" + "¡ØÂ" + "¡ØªèÒÂ" + "¡ØÂàΧ" + "¡ØÅ" + "¡ØŸԴÒ" + "¡ØźصÃ" + "¡ØÅʵÃÕ" + "¡ØÅÒ" + "¡ØÅÕ" + "¡ØÅաبÍ" + "¡ØÈÅ" + "¡ØÈâźÒÂ" + "¡ØËÅÒº" + "¡ØèÁ" + "¡Øé§" + "¡Øê¡" + "¡Øê¹" + "¡ØêÂ" + "¡ØëÂ" + "¡Ù" + "¡Ù³±ì" + "¡Ù´" + "¡Ùº" + "¡Ùè" + "¡Ùé" + "¡àÌÇÃÒ¡" + "¡ç" + "¡è§" + "¡è¹" + "¡èÍ" + "¡èͧ" + "¡è͹" + "¡èÒÂ" + "¡èÓ" + "¡é§â¤é§" + "¡é¹" + "¡éÁ" + "¡éÍ" + "¡éͧ" + "¡é͹" + "¡éÍÁ" + "¡éÍÂ" + "¡éÍÃèÍ¡é͵ԡ" + "¡éÒ§" + "¡éÒ¹" + "¡éÒÁ" + "¡éÒÇ" + "¡éÓ" + "¡éÓ¡Öè§" + "¡éÓà¡Ô¹" + "¡ê¡" + "¡ê§" + "¡êÍ¡" + "¡êͺ»Õé" + "¡êÍ»»Õé" + "¡êÒ«" + "¡êÒ´" + "¡ë§" + "¡ëÇÂàµÕëÂÇ" + "¡ëÍÂ" + "¡ëÒ" + "¢§¨×êÍ" + "¢¨Ã" + "¢¨Ñ´" + "¢¨ÒÂ" + "¢¨Õ" + "¢¨ØÂ" + "¢³Ð" + "¢´" + "¢¹" + "¢¹§" + "¢¹´" + "¢¹¹" + "¢¹º" + "¢¹Á" + "¢¹Áͺ" + "¢¹Ñ´" + "¢¹Ñ¹" + "¢¹Ò¡" + "¢¹Ò§" + "¢¹Ò´" + "¢¹Ò¹" + "¢¹Òº" + "¢¹ÒÂ" + "¢¹ÔÉ°Ò" + "¢¹Ø¹" + "¢º" + "¢º¶" + "¢ºÇ¹" + "¢Á" + "¢ÁÇ´" + "¢Áͧ" + "¢ÁÍÂ" + "¢Áѧ" + "¢ÁѺ" + "¢ÁÒ" + "¢ÁÔº" + "¢ÁÔé¹" + "¢ÁÕ¢Áѹ" + "¢ÁÖ§" + "¢ÁØ¡¢ÁÍÁ" + "¢ÁØ¡¢ÁÑÇ" + "¢Áغ" + "¢Áغ¢ÁÔº" + "¢ÁèÍÁ" + "¢ÁéÓ" + "¢ÂÍ¡" + "¢Âͧ" + "¢ÂÐ" + "¢ÂÑ¡" + "¢Âѹ" + "¢ÂѺ" + "¢ÂÑé¹" + "¢ÂÒ´" + "¢ÂÒº" + "¢ÂÒÂ" + "¢ÂÓ" + "¢ÂÔ¡" + "¢ÂÔº" + "¢ÂÔèÁ" + "¢ÂÕé" + "¢ÂØ¡¢ÂÔ¡" + "¢ÂØ¡¢ÂØÂ" + "¢Âغ" + "¢Âغ¢ÂÔº" + "¢ÂØÁ" + "¢ÂØÂ" + "¢ÂØéÁ" + "¢ÂèÁ" + "¢Âè͹" + "¢Âé͹" + "¢ÂéÓ" + "¢ÃÁ" + "¢Ãäì" + "¢ÃÑÇ" + "¢ÃÔº" + "¢ÃÖÁ" + "¢ÃØ¢ÃÐ" + "¢Åѧ" + "¢ÅѺ" + "¢ÅÒ" + "¢ÅÒ´" + "¢ÅÔº" + "¢ÅØ¡" + "¢ÅØ¡¢ÅÑ¡" + "¢ÅØ¡¢ÅÔ¡" + "¢Åغ" + "¢ÅØÁ" + "¢ÅØèÂ" + "¢Ç§" + "¢Ç´" + "¢Ç¹¢ÇÒÂ" + "¢Çº" + "¢ÇÂ" + "¢ÇÑ¡ä¢Çè" + "¢ÇÑ" + "¢ÇÑ´" + "¢ÇѺ" + "¢ÇѺà¢ÇÕÂÇ" + "¢ÇÑé¹" + "¢ÇÒ" + "¢ÇÒ¡" + "¢ÇÒ§" + "¢ÇÒ´" + "¢ÇÒ¹" + "¢ÇÒ¢ǹ" + "¢ÇÔ´" + "¢ÇéÒ§" + "¢Í" + "¢Í¡" + "¢Í§" + "¢Í´" + "¢Í¹" + "¢Íº" + "¢Íº¤Ø³" + "¢Íºã¨" + "¢ÍÁ" + "¢ÐÁÍÁ¢ÐáÁÁ" + "¢ÐÁÑ¡à¢Áé¹" + "¢ÐÁØ¡¢ÐÁÍÁ" + "¢ÐÂÔ¡" + "¢ÐÂØ¡" + "¢ÐàÂéÍá¢Âè§" + "¢ÐáÂÐ" + "¢Ñ§" + "¢Ñ³±Ê¡Ã" + "¢Ñ³±ÊÕÁÒ" + "¢Ñ´" + "¢ÑµµÔÂÁÒ¹Ð" + "¢Ñ¹" + "¢Ñ¹ªÐà¹ÒÐ" + "¢Ñ¹µÔ" + "¢Ñ¹·Õ" + "¢Ñ¹¸ì" + "¢Ñ¹ËÁÒ¡" + "¢Ñ¹âµ¡" + "¢Ñº" + "¢ÑÂ" + "¢Ñé¹" + "¢ÑéÇ" + "¢Ò" + "¢Ò¡" + "¢Ò¡êÇÂ" + "¢Ò§" + "¢Ò´" + "¢Ò¹" + "¢Òº" + "¢ÒÁ" + "¢ÒÂ" + "¢ÒÅ" + "¢ÒÇ" + "¢Ó" + "¢Ô¡" + "¢Ô§" + "¢ÔÁ" + "¢Ôè§" + "¢Õ´" + "¢Õ»¹ÒÇظ" + "¢Õè" + "¢Õé" + "¢ÕéàËÃè" + "¢Ö§" + "¢Öé§" + "¢Öé¹" + "¢Ö鹩èÒÂ" + "¢×¹" + "¢×è¹" + "¢×èÍ" + "¢Ø¡" + "¢Ø´" + "¢Ø¹" + "¢Ø¹·Í§" + "¢Ø¹á¼¹" + "¢ØÁ" + "¢ØÂ" + "¢Øè¹" + "¢Ù´" + "¢Ùè" + "¢âÁÂ" + "¢èÁ" + "¢èǹ" + "¢èÍ" + "¢è͹" + "¢èÍÂ" + "¢èÒ" + "¢èÒ§" + "¢èÒÂ" + "¢èÒÇ" + "¢èÒÇÊÒÃ" + "¢é¹" + "¢éÍ" + "¢éͧ" + "¢é͹" + "¢éÍÁÙÅ" + "¢éÍÂ" + "¢éÒ" + "¢éÒ§" + "¢éÒ¾à¨éÒ" + "¢éÒÁ" + "¢éÒÇ" + "¢éÒÇÊÒÃ" + "¢éÒÇàÁèÒ" + "¢éÒÇâ¾´" + "¢éÒÈÖ¡" + "¢éÒËÅǧ" + "¤¤¹ÑÁ¾Ã" + "¤¤¹Ò§¤ì" + "¤¤¹Ò¹µì" + "¤§" + "¤§¤Ò" + "¤ªÃÒª" + "¤ªÊÒÃ" + "¤ªÒªÒµÔ" + "¤ªÒªÕ¾" + "¤ªÒ¸ÒÃ" + "¤ªÒÀóì" + "¤³¹Ò" + "¤³º´Õ" + "¤³Ð" + "¤³Ò¨ÒÃÂì" + "¤³Ò¸Ô¡ÒÃ" + "¤³Ò¸Ô»äµÂ" + "¤³Ò¹Ñº" + "¤³Ô¡Ò" + "¤³Ôµ" + "¤³ÔµÈÒʵÃì" + "¤´" + "¤´Õ" + "¤µÔ" + "¤µÔ¸ÃÃÁ" + "¤µÔ¾¨¹ì" + "¤·Ò" + "¤¹" + "¤¹¸Ãþì" + "¤¹â·" + "¤º" + "¤Á" + "¤Á¹Ò¡ÒÃ" + "¤Á¹Ò¤Á" + "¤Ã¡" + "¤Ãº" + "¤ÃêԵ" + "¤ÃÃÀ" + "¤ÃÃÀì" + "¤ÃÃÅͧ" + "¤ÃÃâŧ" + "¤ÃÃäÅ" + "¤ÃÇ" + "¤ÃÇÑ¡" + "¤ÃÇÕ" + "¤ÃËÒ" + "¤ÃÍ¡" + "¤Ãͧ" + "¤Ãͧá¤Ã§" + "¤Ãͺ" + "¤Ãͺ¤ÃÑÇ" + "¤ÃÐ" + "¤ÃÑ´à¤Ãè§" + "¤Ãѹ" + "¤ÃѺ" + "¤ÃÑÇ" + "¤ÃÑè§" + "¤ÃÑè¹" + "¤ÃÑé§" + "¤ÃÑé¹" + "¤ÃÒ" + "¤ÃÒ¡" + "¤ÃÒ§" + "¤ÃÒ" + "¤ÃÒ´" + "¤ÃÒº" + "¤ÃÒÁ" + "¤ÃÒÇ" + "¤ÃÒÊ" + "¤ÃÓ" + "¤ÃÔʵ¡ÒÅ" + "¤ÃÔʵѧ" + "¤ÃÔʵì" + "¤ÃÔʵìÁÒÊ" + "¤ÃÔÊàµÕ¹" + "¤ÃÕº" + "¤ÃÕÁ" + "¤ÃÖ" + "¤ÃÖ¡¤Ã×é¹" + "¤ÃÖ¡â¤ÃÁ" + "¤ÃÖ¹" + "¤ÃÖÁ" + "¤ÃÖè§" + "¤ÃÖéÁ" + "¤Ã×´" + "¤Ã×¹" + "¤Ã×Í" + "¤Ã×é¹" + "¤Ã×鹤ÃÖ¡" + "¤ÃØ" + "¤Ãر" + "¤ÃØÁà¤Ã×Í" + "¤ÃØÂ" + "¤ÃØè¹" + "¤ÃÙ" + "¤ÃÙ´" + "¤ÃÙè" + "¤Ãè§" + "¤ÃèÍÁ" + "¤ÃèÒ" + "¤ÃèÒÇ" + "¤ÃèÓ" + "¤ÃéÒ¹" + "¤ÃéÒÁ" + "¤ÄË" + "¤ÄËÑʶì" + "¤ÄËÒʹì" + "¤ÅÍ" + "¤ÅÍ¡" + "¤Åͧ" + "¤ÅÍ´" + "¤Å͹" + "¤ÅÍÃÕ¹" + "¤ÅÍâÿÍÃìÁ" + "¤ÅÍâÿÕÅÅì" + "¤ÅÐ" + "¤ÅÑ¡" + "¤Åѧ" + "¤Åѵªì" + "¤ÅѺ" + "¤ÅÑè¡" + "¤ÅÑè§" + "¤ÅÒ" + "¤ÅÒ§á¤Å§" + "¤ÅÒ´" + "¤ÅÒ¹" + "¤ÅÒÂ" + "¤ÅÒÊ" + "¤ÅÒÊÊÔ¤" + "¤ÅÓ" + "¤ÅÔ¹Ô¡" + "¤ÅÔé¡" + "¤ÅÕ" + "¤ÅÕ¹Ô¤" + "¤ÅÕè" + "¤ÅÖ§" + "¤Å×è¹" + "¤Å×è¹àËÕ¹" + "¤Å×è¹äÊé" + "¤ÅØ¡" + "¤ÅØÁ" + "¤ÅØèÁ" + "¤ÅØé§" + "¤ÅØéÁ" + "¤Åèͧ" + "¤Åèͧá¤ÅèÇ" + "¤ÅèÓ" + "¤Åéͧ" + "¤ÅéÍÂ" + "¤ÅéÒÂ" + "¤ÅéÓ" + "¤Ç§" + "¤Çº" + "¤ÇÃ" + "¤ÇÑ¡" + "¤Çѹ" + "¤ÇÑè¹" + "¤ÇÒ¡" + "¤ÇÒ" + "¤ÇÒ¹" + "¤ÇÒÁ" + "¤ÇÒÂ" + "¤ÇÔ¹Ô¹" + "¤ÇÕ¹" + "¤ÇèÓ" + "¤ÇéÒ" + "¤ÇéÒ§" + "¤ÇéÒ¹" + "¤Ë¡ÃÃÁ" + "¤Ë¡ÃÃÁÈÒʵÃì" + "¤Ëº´Õ" + "¤Ë»µÒ¹Õ" + "¤Í" + "¤Í¡" + "¤Í´" + "¤Í¹" + "¤Í¹¡ÃÕµ" + "¤Í¹¿Ô¡" + "¤Í¹à´¹à«ÍÃì" + "¤Í¹àÊÔÃìµ" + "¤Í¹àÊÔÃì·" + "¤Í¹áǹµì" + "¤ÍÁ" + "¤ÍÁ¾ÔÇàµÍÃì" + "¤ÍÁÁÒ¹â´" + "¤ÍÁÁÔǹÔʵì" + "¤ÍÁᾤ" + "¤ÍÁâ¾à¹¹·ì" + "¤ÍÂ" + "¤ÍÂÅì" + "¤ÍÃÑ»ªÑè¹" + "¤ÍÃì«Ô¡Ò" + "¤ÍÃì´" + "¤ÍÃì»ÍàêÑè¹" + "¤ÍÅÑÁ¹ì" + "¤ÍʵÒÃÔ¡Ò" + "¤ÍफÍ´ì" + "¤ÍàÅÊàµÍÃÍÅ" + "¤Ð" + "¤Ð¹Í§" + "¤Ð¹Ö§" + "¤Ð¹éÒ" + "¤ÐÁÓ" + "¤ÐÂÑ鹤ÐÂÍ" + "¤Ðà¹" + "¤ÐàÂÍ" + "¤Ðá¹¹" + "¤Ñ¡" + "¤Ñ¤¹ÑÁ¾Ã" + "¤Ñ¤¹Ò§¤ì" + "¤Ñ¤¹Ò¹µì" + "¤Ñ³±ÊÙµÃ" + "¤Ñ´" + "¤Ñ·ÅÕÂÒ" + "¤Ñ¹" + "¤Ñ¹©ÒÂ" + "¤Ñ¹·Ã§" + "¤Ñº" + "¤ÑÁÀÕÃÀÒ¾" + "¤ÑÁÀÕÃì" + "¤Ñè¡" + "¤Ñè§" + "¤Ñè¹" + "¤ÑèÇ" + "¤Ñé¹" + "¤Ò" + "¤Ò§" + "¤Ò§¤¡" + "¤Ò´" + "¤Ò¶Ò" + "¤Ò·ÍÅÔ¡" + "¤Ò¹" + "¤Òº" + "¤ÒÁ" + "¤ÒÁÇÒÊÕ" + "¤ÒÂ" + "¤ÒÃÁ" + "¤ÒÃÇÐ" + "¤ÒÃÒÇÒ¹" + "¤ÒÃÒàµé" + "¤ÒÃÒâÍà¡Ð" + "¤ÒÃì" + "¤ÒÃìºÍ¹" + "¤ÒÃìºÍ¹Á͹͡䫴ì" + "¤ÒÃìºÍ¹ä´ÍÍ¡ä«´ì" + "¤ÒÃìºÍÅÔ¡" + "¤ÒÃìºÍ๵" + "¤ÒÃìºÙàÃàµÍÃì" + "¤ÒÃìÅ" + "¤ÒÃìâºäÎà´Ãµ" + "¤ÒÇ" + "¤ÒÇÕ" + "¤Òà¸Âì" + "¤Òà¿è" + "¤Ó" + "¤Ó¹Ç³" + "¤Ó¹Ñº" + "¤Ó¹Ö§" + "¤Óù" + "¤Óú" + "¤ÓÃÒÁ" + "¤Óá˧" + "¤Óãµé" + "¤Ô¡" + "¤Ô§" + "¤Ô´" + "¤ÔÁËѹµì" + "¤ÔÇ" + "¤ÔéÇ" + "¤Õµ" + "¤Õ¹ÂÒ" + "¤Õº" + "¤ÕÁ" + "¤ÕÂì" + "¤ÕÂìºÍÃì´" + "¤ÕÃÕ" + "¤Õè" + "¤Ö¡" + "¤Ö¡¤Ñ¡" + "¤Öè¡" + "¤×¹" + "¤×º" + "¤×Í" + "¤Ø" + "¤Ø¡" + "¤Ø¡¡Õé" + "¤Ø³" + "¤Ø³¸ÃÃÁ" + "¤Ø³ÀÒ¾" + "¤Ø³ÇزÔ" + "¤Ø³ÈѾ·ì" + "¤Ø³ÊÁºÑµÔ" + "¤Ø³Ò¡Ã" + "¤Ø³Ù»¡ÒÃ" + "¤Ø´" + "¤Ø´·ÐÃÒ´" + "¤ØÁ" + "¤ØÂ" + "¤ØÃØ" + "¤Øâ³»¡ÒÃ" + "¤ØèÁ" + "¤Øé§" + "¤Øé¹" + "¤ØéÁ" + "¤ØéÂ" + "¤Ù" + "¤Ù³" + "¤Ù¹" + "¤Ù»Í§" + "¤ÙËÒ" + "¤Ùè" + "¤Ùé" + "¤à¹¨Ã" + "¤çÍ¡à·Å" + "¤è͹" + "¤èÍÁ" + "¤èÍÂ" + "¤èÐ" + "¤èÒ" + "¤èÒ§" + "¤èÒÂ" + "¤èÓ" + "¤é¹" + "¤é͹" + "¤éÍÁ" + "¤éÒ" + "¤éÒ§" + "¤éÒ§¤ÒÇ" + "¤éÒ§àµÔè§" + "¤éÒ¹" + "¤éÓ" + "¦ÃÒÇÒÊ" + "¦Òµ" + "¦Òµ¡Ã" + "¦Òµ¡ÃÃÁ" + "¦èÒ" + "¦éͧ" + "§¡" + "§§" + "§§§ÇÂ" + "§´" + "§º" + "§Á" + "§Ç§" + "§Ç´" + "§Ç§§" + "§Í" + "§Í¡" + "§Í¡á§¡" + "§Í´" + "§Í´á§´" + "§Í¹" + "§Í¹Ë§èÍ" + "§Íº" + "§ÍÁ" + "§ÍÂ" + "§Íá§" + "§Ð" + "§Ñ¡" + "§Ñ´" + "§Ñ¹" + "§Ñº" + "§ÑÇ" + "§ÑÇà§ÕÂ" + "§Ñè¡" + "§Ñè§" + "§ÑèÇ" + "§Ò" + "§Ò¹" + "§Òº" + "§ÒÁ" + "§ÒÂ" + "§Ó" + "§ÔéÇ" + "§Õº" + "§Ö¡" + "§ÖÁ" + "§ÖÁ§Ó" + "§Ø´" + "§Ø¹§§" + "§Øº" + "§Øº§Ôº" + "§ØÂ" + "§Ø蹧èÒ¹" + "§ØèÁ§èÒÁ" + "§ØéÁ" + "§Ù" + "§ÙÊÇÑ´" + "§èǧ" + "§èǹ" + "§èͧ" + "§è͹" + "§èÍÂ" + "§èÒ" + "§èÒ¹" + "§èÒÁ" + "§èÒÂ" + "§èÓ" + "§éǹ" + "§éÍ" + "§éÍÁ" + "§éÒ§" + "§éÒÇ" + "§éÓ" + "¨¡" + "¨§" + "¨§¡Å¹Õ" + "¨§ÍÒ§" + "¨´" + "¨µØ" + "¨µØç¤ì" + "¨µØþԸ" + "¨µØÊ´ÁÀì" + "¨¹" + "¨º" + "¨Á" + "¨ÁÙ¡" + "¨Ã" + "¨Ã¨Ñ´" + "¨Ã´" + "¨ÃÃÂÒ" + "¨ÃÃâŧ" + "¨ÃÅÕ" + "¨ÃÇ´" + "¨ÃÐà¢é" + "¨ÃÑÅ" + "¨ÃÑÊ" + "¨ÃÒ¨Ã" + "¨ÃÔ§" + "¨ÃÔµ" + "¨ÃÔ¸ÃÃÁ" + "¨ÃÔÂÈÒʵÃì" + "¨ÃÔÂÈÖ¡ÉÒ" + "¨ÃÔÂÒ" + "¨Ãا" + "¨ÃÙ" + "¨Å" + "¨Å¹¾ÅÈÒʵÃì" + "¨Å¹ÈÒʵÃì" + "¨ÅÒ¨Å" + "¨Ç¡" + "¨Ç§" + "¨Ç¹" + "¨Çº" + "¨ÇÑ¡" + "¨Í" + "¨Í¡" + "¨Í§" + "¨Í§Ëͧ" + "¨Í´" + "¨Í¹" + "¨Íº" + "¨ÍÁ" + "¨ÍÃìá´¹" + "¨Íá¨" + "¨Ð" + "¨Ð¡ÅÐ" + "¨Ð¡ÅÒÁ" + "¨ÐÅÐËÇÑè¹" + "¨ÐÅÐàÁç´" + "¨Ðà¢é" + "¨Ñ¡" + "¨Ñ¡¢Ø" + "¨Ñ¡¨Ñè¹" + "¨Ñ¡Ã" + "¨Ñ¡Ã¾ÃôÔ" + "¨Ñ¡ÃÀ¾" + "¨Ñ¡ÃÂÒ¹" + "¨Ñ¡ÃÇÃôÔ" + "¨Ñ¡ÃÇÒÅ" + "¨Ñ¡ÃÕ" + "¨Ñ¡ÉØ" + "¨Ñ¡áËÅè¹" + "¨Ñ§" + "¨Ñ§¡Íº" + "¨Ñ§¡éÒ" + "¨Ñ§§Ñ§" + "¨Ñ§ËÇÐ" + "¨Ñ§ËÇÑ´" + "¨Ñ§Ëѹ" + "¨Ñ§äÃ" + "¨ÑäÃ" + "¨Ñ³±ÒÅ" + "¨Ñ³±ì" + "¨Ñ´" + "¨Ñ´¡ÒÃ" + "¨ÑµÇÒ" + "¨ÑµØÃÑÊ" + "¨Ñ¹" + "¨Ñ¹·¹ì" + "¨Ñ¹·ºØÃÕ" + "¨Ñ¹·Ã" + "¨Ñ¹·Ã¤µÔ" + "¨Ñ¹·Ã¤ÃÒÊ" + "¨Ñ¹·ÃØ»ÃÒ¤Ò" + "¨Ñ¹·Ãì" + "¨Ñº" + "¨Ñº¡Ñ§" + "¨Ñº©èÒÂ" + "¨Ñè¹" + "¨ÑèÇ" + "¨Ñé¡" + "¨ÑꡨÕé" + "¨Ñê¡à´ÕÂÁ" + "¨ÑêÇÐ" + "¨Ò¡" + "¨Ò§" + "¨Ò´" + "¨ÒµØç¤Êѹ¹ÔºÒµ" + "¨Ò¹" + "¨Òº" + "¨ÒºÑÅ" + "¨ÒºÑÅÂì" + "¨ÒÁ" + "¨ÒÁ¨ØÃÕ" + "¨ÒÁÃ" + "¨ÒÁÃÕ" + "¨ÒÃ" + "¨ÒÃкÕ" + "¨ÒÃÐä¹" + "¨ÒÃÔ¡" + "¨ÒÃÕ" + "¨ÒÃÕµ" + "¨ÒÃÖ¡" + "¨ÒÇ" + "¨ÒÇÒ" + "¨ÒàÁ¡Ò" + "¨Ó" + "¨Ó¡Ñ´" + "¨Ó¹§" + "¨Ó¹¹" + "¨Ó¹ÃèÒ" + "¨Ó¹Ãèì" + "¨Ó¹Ç¹" + "¨Ó¹Í§" + "¨Ó¹Ó" + "¨Ó»Ò" + "¨Ó»Õ" + "¨Ó¾Ç¡" + "¨ÓÃÑÊ" + "¨ÓÃÙ" + "¨ÓÅͧ" + "¨Ó˹èÒÂ" + "¨ÓÍÇ´" + "¨Óà¾ÒÐ" + "¨ÓàÃÔ" + "¨ÓàÃÕ§" + "¨ÓàÅÂ" + "¨Óṡ" + "¨Ô¡" + "¨Ô§â¨é" + "¨Ôµ" + "¨ÔµÃ" + "¨ÔµÃ¡Ã" + "¨ÔµÃ¡ÃÃÁ" + "¨ÔµÃÅ´Ò" + "¨ÔµÇÔ·ÂÒ" + "¨ÔµàǪ" + "¨Ôµá¾·Âì" + "¨Ô¹´Ò" + "¨Ô¹µ¡ÇÕ" + "¨Ô¹µ¹Ò" + "¨Ô¹µ¹Ò¡ÒÃ" + "¨Ô¹µÀÒ¾" + "¨Ôº" + "¨Ô»Ò¶Ð" + "¨ÔèÁ" + "¨Ô駨¡" + "¨Ô駨͡" + "¨Ôé§ËÃÕ´" + "¨Ôé§àËŹ" + "¨ÔéÁ" + "¨ÔëÇ" + "¨Õ¹" + "¨Õ¹áÊ" + "¨Õº" + "¨ÕÇÃ" + "¨Õè" + "¨Õé" + "¨Õê" + "¨Õê´" + "¨Õë" + "¨Ö§" + "¨Öè§" + "¨Öé§" + "¨×´" + "¨Ø" + "¨Ø¡" + "¨Ø´" + "¨ØµÔ" + "¨Ø¹" + "¨Øº" + "¨Øº¨Ôº" + "¨ØÁ¾¯" + "¨ØÁ¾Ôµ" + "¨ØŨÍÁ" + "¨ØŪվ" + "¨ØŪÕÇѹ" + "¨ØŪÕÇÔ¹" + "¨ØÅ·ÃÃȹì" + "¨ØÅÀÒ¤" + "¨ØÅÇÃä" + "¨ØÅÈÑ¡ÃÒª" + "¨ØÅÊÒÃ" + "¨ØÅÔ¹·ÃÕÂì" + "¨ØÌÒ" + "¨ØÌÒŧ¡Ã³ì" + "¨Øè§" + "¨Øè¹" + "¨ØèÁ" + "¨Øé¹" + "¨Ø鹨Ùê" + "¨ØéÁ" + "¨ØéÂ" + "¨Øê¡¡ÃÙê" + "¨Øêº" + "¨Øêºá¨§" + "¨Ø맨Ôë§" + "¨ØëÁ¨ÔëÁ" + "¨Ù" + "¨Ù§" + "¨Ùº" + "¨Ùè" + "¨Ùé" + "¨Ùê´" + "¨Ùë" + "¨àÃ" + "¨èÍ" + "¨èÍÁ" + "¨èÒ" + "¨èÒ§" + "¨èÒÂ" + "¨é¹" + "¨éǧ" + "¨éÍ" + "¨éÍ¡" + "¨éÍ¡á¨é¡" + "¨éͧ" + "¨é͹" + "¨éÍÂ" + "¨éÐ" + "¨éÒ" + "¨éÒ§" + "¨éÒ¹" + "¨éÒÅÐËÇÑè¹" + "¨éÒÇ" + "¨éÓ" + "¨éÓ¨Õé" + "¨éÓÁèÓ" + "¨êÍ¡" + "¨êÐ" + "¨ëÍ" + "¨ëͧ" + "¨ëÍÂ" + "¨ëÐ" + "¨ëÒ" + "©¡" + "©¡Ãèì" + "©¡ÉѵÃÔÂì" + "©¡Ò¨" + "©¡ÒÁÒ¾¨Ã" + "©§¹" + "©§ÒÂ" + "©¹Ç¹" + "©¹Ñ§" + "©¹Ò¡" + "©¹Ó" + "©ºÑ§" + "©ºÑº" + "©Á" + "©ÁÇ¡" + "©Áѧ" + "©ÁÒ" + "©ÁÓ" + "©Å" + "©ÅÇÂ" + "©Åͧ" + "©ÅÍÁ" + "©ÅÑ¡" + "©ÅÒ¡" + "©ÅÒ´" + "©ÅÒÁ" + "©ÅÒÂ" + "©ÅÔÇ" + "©ÅØ" + "©ÅØ¡©ÅÇÂ" + "©ÅÙ" + "©ÇÂ" + "©ÇÑ´à©ÇÕ¹" + "©ÇÒ§" + "©ÇÕ" + "©È¡" + "©Í¡" + "©Í´" + "©ÍàÅÒÐ" + "©Ð" + "©Ð©Ò¹" + "©Ð¹Ñé¹" + "©Ð¹Õé" + "©ÐÍé͹" + "©ÑµÃ" + "©Ñ¹" + "©Ñ¹·Åѡɳì" + "©Ñ¹·Ð" + "©Ñ¹·Ò" + "©Ñ¹·Ò¹ØÁѵÔ" + "©Ñ¹·ì" + "©Ñº" + "©Ò¡" + "©Ò§" + "©Ò´" + "©Ò¹" + "©Òº" + "©ÒÂ" + "©ÒÂÒ" + "©ÒÇ" + "©Ó©Ò" + "©Ô¹" + "©Ôº" + "©ÔÁ¾ÅÕ" + "©ÔÇ" + "©Ôè§" + "©Õ¡" + "©Õ´" + "©Õè" + "©Ø" + "©Ø¡" + "©Ø¡à©Ô¹" + "©Ø´" + "©Ø¹" + "©ØÂ" + "©Ù´" + "©Ùè" + "©èͧ" + "©èÍÂ" + "©èÒ" + "©èÒ§" + "©èÓ" + "©éÍ" + "ª¡" + "ª§" + "ª§â¤" + "ª®Ò" + "ª´" + "ª¹" + "ª¹¡" + "ª¹¹Õ" + "ª¹Á¾ÃÃÉÒ" + "ª¹Áì" + "ª¹Ç¹" + "ª¹Ð" + "ª¹Ñ¡" + "ª¹Ô´" + "ªºÒ" + "ªÁ" + "ªÁ´ªÁéÍÂ" + "ªÁ¾Ù" + "ªÁ¾Ù¹·" + "ªÁ¾Ù¹Ø·" + "ªÁ¾Ùè" + "ªÁÃÁ" + "ªÁÒ" + "ªÁéÍÂ" + "ªÁéÒÂ" + "ªÂ" + "ªÃ" + "ªÃÐ" + "ªÃÑÇ" + "ªÃÒ" + "ªÅ" + "ªÅ¸ÒÃ" + "ªÅ¸Õ" + "ªÅ¹Ò" + "ªÅ»Ãзҹ" + "ªÅÒÅÑÂ" + "ªÅÒÈÑÂ" + "ªÇ" + "ªÇ´" + "ªÇ¹" + "ªÇÃ" + "ªÇÅÔµ" + "ªÇÒ" + "ªÇÒÅ" + "ªÍ¡" + "ªÍ¡ªéÓ" + "ªÍ§" + "ªÍ¹" + "ªÍº" + "ªÍ»»Ôé§" + "ªÍÁ" + "ªÍÅì¡" + "ªÍ×éÍ" + "ªÍØèÁ" + "ªÍèÓ" + "ªÐ" + "ªÐ§Ñ¡" + "ªÐ§Ñ´" + "ªÐ§ØéÁ" + "ªÐ§è͹" + "ªÐ§éÓ" + "ªÐµÒ" + "ªÐ¹Õ" + "ªÐÁ´" + "ªÐÁÑ´" + "ªÐÃÍÂ" + "ªÐÅÍ" + "ªÐÅÍÁ" + "ªÐÅÙ´" + "ªÐÅèÒ" + "ªÐà§éÍ" + "ªÐà¹ÒÐ" + "ªÐá§é" + "ªÐáŧ" + "ªÐ⧡" + "ªÐâ´" + "ªÑ¡" + "ªÑ§" + "ªÑªÇÒÅ" + "ªÑ¯" + "ªÑ´" + "ªÑ¹" + "ªÑ¹¹ÐµØ" + "ªÑ¹ÉÒ" + "ªÑ¹ÊÙµÃ" + "ªÑÂ" + "ªÑ¾ġÉì" + "ªÑÂÀÙÁÔ" + "ªÑè§" + "ªÑèÇ" + "ªÑèÇâÁ§" + "ªÑé¹" + "ªÑéÇ" + "ªÒ" + "ªÒ" + "ªÒ´" + "ªÒ´¡" + "ªÒµÃÕ" + "ªÒµÐ" + "ªÒµÔ" + "ªÒ¹" + "ªÒ¹Ø" + "ªÒÁ" + "ªÒÂ" + "ªÒÂÒ" + "ªÒÅÒ" + "ªÒÇ" + "ªÒÇàÅ" + "ªÓ" + "ªÓ¹Ñ" + "ªÓ¹Ò" + "ªÓ¹Ô" + "ªÓÃÐ" + "ªÓÃØ´" + "ªÓÃèÇÂ" + "ªÓà¹Õ¹" + "ªÓà¹ÕÂÃ" + "ªÓàÃÒ" + "ªÓàÅ×ͧ" + "ªÓáËÅÐ" + "ªÔ" + "ªÔ¤Òâ¡" + "ªÔ§" + "ªÔ§ªéÒ" + "ªÔ´" + "ªÔ¹" + "ªÔ»" + "ªÔ¾" + "ªÔÁ" + "ªÔÁỹ«Õ" + "ªÔÇËÒ" + "ªÔè§" + "ªÔé¹" + "ªÕ" + "ªÕ»Ð¢ÒÇ" + "ªÕ¾" + "ªÕ¾ÔµÑ¡ÉÑÂ" + "ªÕÇ»ÃÐÇѵÔ" + "ªÕÇÇÔ·ÂÒ" + "ªÕÇÒµÁì" + "ªÕÇÒÅÑÂ" + "ªÕÇÔµ" + "ªÕÇԵѡÉÑÂ" + "ªÕÇÔ¹" + "ªÕÇÕ" + "ªÕÇà¤ÁÕ" + "ªÕé" + "ª×´" + "ª×è¹" + "ª×è¹Á×è¹" + "ª×èÍ" + "ª×é¹" + "ª×éÍ" + "ªØ¡" + "ªØ´" + "ªØ¹" + "ªØº" + "ªØÁ" + "ªØÁ¹ØÁ" + "ªØÁ¾Ã" + "ªØÅÁع" + "ªØÅÕ" + "ªØèÁ" + "ªØèÂ" + "ªØé§" + "ªÙ" + "ªÙé" + "ªâÂ" + "ªâÅ·Ã" + "ªâÅÁ" + "ªäÁ" + "ªçÍ¡â¡àŵ" + "ªçÍ¡â¡áŵ" + "ªèǧ" + "ªèÇÂ" + "ªèÍ" + "ªèͧ" + "ªè͹" + "ªèÒ§" + "ªèÓ" + "ªèӪͧ" + "ªéͧ" + "ªé͹" + "ªéÍÂ" + "ªéÒ" + "ªéÒ§" + "ªéÓ" + "«¡" + "«´" + "«¹" + "«º" + "«Á" + "«Ç´à«" + "«Ç¹" + "«ÇÂ" + "«Í" + "«Í¡" + "«Í§" + "«Í¹" + "«Í¿µìáÇÃì" + "«Í¿·ì" + "«Í¿·ìáÇÃì" + "«ÍÁ«èÍ" + "«ÍÂ" + "«ÍÊ" + "«Ñ¡" + "«Ñ§" + "«Ñ´" + "«Ñ¹" + "«Ñ¹µÒ¤ÅÍÊ" + "«Ñº" + "«Ñ¾¾ÍÃìµ" + "«ÑÅ¿Ò" + "«Ò" + "«Ò¡" + "«Ò¡ØÃÐ" + "«Ò§" + "«Ò¹" + "«Òº«Öé§" + "«Òº«èÒ¹" + "«ÒÁÙäÃ" + "«ÒÅÒà»Ò" + "«ÒÇ" + "«ÒÇ´ì" + "«Ô" + "«Ô¡" + "«Ô¡ÒÃì" + "«Ô¡á«ç¡" + "«Ô¹áÊ" + "«Ôº" + "«Ô»" + "«Ô¿ÔÅÔÊ" + "«ÔÅԤ͹" + "«ÔÇ" + "«Ôè¹" + "«Õ" + "«Õ¡" + "«Õ´" + "«Õ´Õ" + "«Õ¹Í¹" + "«ÕÃÍ¡«ì" + "«Õà¡ÁÊì" + "«ÕàÁ¹µì" + "«ÕàÃÕÂ" + "«Õè" + "«Õé" + "«Ö§" + "«ÖÁ" + "«Öè§" + "«Öé§" + "«×èÍ" + "«×éÍ" + "«Ø¡" + "«Ø§" + "«Ø¹" + "«Øº" + "«Ø»" + "«ØÂ" + "«ØèÁ" + "«ØèÁ«èÒÁ" + "«ØéÁ" + "«ÙªÔ" + "«Ù´«Ò´" + "«Ù´Ò¹" + "«Ùº" + "«Ùà»ÍÃìÁÒà¡çµ" + "«Ùâ¤ÃÊ" + "«Ùè" + "«è¡" + "«èͧ" + "«è͹" + "«èÍÁ" + "«èÒ" + "«èÒ¹" + "«èÒËÃÔèÁ" + "«é¹" + "«éͧ" + "«é͹" + "«éÍÁ" + "«éÒÂ" + "«éÓ" + "¬Ò¹" + "¬Ò»¹¡Ô¨" + "¬Ò»¹Ê¶Ò¹" + "ǹ" + "ѵµÔ" + "Ò³" + "ÒµÔ" + "Õè»Øè¹" + "°Ò¹" + "°Ò¹Ð" + "°Ò¹Ñ¹´Ã" + "°Ò»¹Ò" + "´¡" + "´§" + "´¹µÃÕ" + "´¹â´è" + "´Á" + "´Ãê¹Õ" + "´ÃÒ¿µì" + "´Ãس" + "´ÃسÕ" + "´Å" + "´Ç§" + "´Ç´" + "´ÇÅ" + "´Í¡" + "´Í¡àºÕéÂ" + "´Í¡äÁé" + "´Í§" + "´Í´" + "´Í¹" + "´ÍÁ" + "´ÍÂ" + "´ÍÅÅÒÃì" + "´ÍÊ" + "´Ð" + "´Ñ¡" + "´Ñ¡´Ò¹" + "´Ñ¡á´é" + "´Ñ§" + "´Ñª¹Õ" + "´Ñ´" + "´Ñµ«ì" + "´Ñ¹" + "´Ñº" + "´ÑºàºÔéÅ" + "´ÑÁ¾ì" + "´ÑÊ¡Ã" + "´Ñè§" + "´Ñé§" + "´Ñé¹" + "´Ò" + "´Ò¡" + "´Ò´" + "´ÒµéÒ" + "´Ò¹" + "´Òº" + "´ÒºÊ" + "´ÒÁ" + "´ÒÁ¾ì" + "´ÒÂ" + "´ÒóÕ" + "´ÒôÒÉ" + "´ÒÃÒ" + "´ÒÃì" + "´ÒÅ" + "´ÒÅÑ´" + "´ÒÇ" + "´ÒÇ´Ö§Êì" + "´ÒǹìâËÅ´" + "´ÒÇ⨹Êì" + "´ÒÉ" + "´ÒÉ´Ò" + "´Ó" + "´Óç" + "´ÓÃÑÊ" + "´ÓÃÔ" + "´ÓÄɳÒ" + "´Óà¡Ô§" + "´Óà¹Ô¹" + "´Óᤧ" + "´Ô" + "´Ô¡" + "´Ô¨ÔµÍÅ" + "´Ô©Ñ¹" + "´Ô¶Õ" + "´Ô¹" + "´Ôº" + "´ÔÃѨ©Ò¹" + "´ÔÅ¡" + "´ÔÇÔªÑè¹" + "´ÔʹÕÂì" + "´ÔÊࡵ" + "´Ôè§" + "´ÔèÇ" + "´Ôé¹" + "´ÔéÇ" + "´Õ" + "´Õ¡ÃÕ" + "´Õ´" + "´Õ´Õ·Õ" + "´ÕºØ¡" + "´ÕÇÕ´Õ" + "´Õà«Å" + "´Õà»ÃʪÑè¹" + "´Õ䫹ì" + "´Õä«à¹ÍÃì" + "´Ö¡" + "´Ö¡´ÓºÃþì" + "´Ö§" + "´Ö§ÊÐ" + "´Öè§" + "´ÖèÁ" + "´×Í" + "´×è¹" + "´×èÁ" + "´×éÍ" + "´Ø" + "´Ø¡" + "´Ø¨" + "´Ø´" + "´Ø¹" + "´Øº" + "´ØÁ" + "´Øç¤ì" + "´ØÃÔÂÒ§¤ÈÒʵÃì" + "´ØÃÔÂÒ§¤ÈÔÅ»ì" + "´ØÃÔÂÒ§¤ì" + "´ØÅ" + "´ØžԹԨ" + "´ØÅÀÒ¤" + "´ØžԹԨ" + "´ØÅÂÀÒ¾" + "´ØÉ®Õ" + "´ØɳÕ" + "´ØÉÔµ" + "´ØÊÔµ" + "´ØàËÇèÒ" + "´ØèÁ" + "´ØèÂ" + "´Øé§" + "´Ø駴Ôé§" + "´Øé¹" + "´Ù" + "´Ù¡Ã" + "´Ù´" + "´ÙÃÒ" + "´èǹ" + "´è͹" + "´èÍÁ" + "´èÒ" + "´èÒ§" + "´èÒ¹" + "´èÒÇ" + "´èÓ" + "´é§" + "´é¹" + "´éǧ" + "´éǹ" + "´éÇÂ" + "´éÍÁ" + "´éÍÂ" + "´éÒ¹" + "´éÒÁ" + "´éÒÂ" + "´éÒÇ" + "´éÓ" + "µ¡" + "µ¡Å§" + "µ§" + "µ§©Ô¹" + "µ§Ô´" + "µ´" + "µ¶Ò¤µ" + "µ¹" + "µº" + "µºÐ" + "µÁ" + "µÃ§" + "µÃÁ" + "µÃÁµÃÍÁ" + "µÃáÇÔ·ÂÒ" + "µÃáÈÒʵÃì" + "µÃáÐ" + "µÃǨ" + "µÃǹ" + "µÃÍ¡" + "µÃͧ" + "µÃÍÁµÃÁ" + "µÃÍÁã¨" + "µÃÐ" + "µÃСÙÅ" + "µÃÐ˧èÒ¹" + "µÃÐ˹¡" + "µÃÐ˹ѡ" + "µÃÐ˹Õè" + "µÃÐàǹ" + "µÃѧ" + "µÃѺ" + "µÃÑÂ" + "µÃÑÊ" + "µÃÒ" + "µÃÒ¡µÃÓ" + "µÃÒº" + "µÃÒÊѧ" + "µÃÓ" + "µÃÔ" + "µÃÕ" + "µÃÕÂÑÁ»ÇÒÂ" + "µÃÕ⡳" + "µÃÖ¡" + "µÃÖ§" + "µÃØ" + "µÃØÉ" + "µÃÙ" + "µÃÙè" + "µÄ³" + "µÅ¡" + "µÅº" + "µÅÍ´" + "µÅѺ" + "µÅÒ´" + "µÅÔè§" + "µÇ§" + "µÇÑ´" + "µÇÒ´" + "µÍ" + "µÍ¡" + "µÍ§" + "µÍ´" + "µÍ¹" + "µÍº" + "µÍÁ" + "µÍÃì" + "µÍÃì»Ôâ´" + "µÍáÂ" + "µÍáËÅ" + "µÐ" + "µÐ¡Ãѹ" + "µÐ¡ÃØ´" + "µÐ¡ÃØÁ" + "µÐ¡ÃéÍ" + "µÐ¡ÃéÒ" + "µÐ¡ÅÐ" + "µÐ¡ÅÒÁ" + "µÐ¡Í¹" + "µÐ¡Ñ§" + "µÐ¡ÑèÇ" + "µÐ¡Ø¡µÐ¡Ñ¡" + "µÐ¢Í" + "µÐ¢Òº" + "µÐ¢Ô´µÐ¢Ç§" + "µÐ¤ÃÔÇ" + "µÐ¤Ãغ" + "µÐ¤Í¡" + "µÐ¹ÍÂ" + "µÐºÍ§" + "µÐºÍÂ" + "µÐºÑ¹" + "µÐ»ØèÁµÐ»èÓ" + "µÐ¾Òº" + "µÐ¾Ö´" + "µÐ¾Ö´µÐ¾×Í" + "µÐ¾Øè¹" + "µÐÅÕµÐÅÒ¹" + "µÐÅÖ§" + "µÐÅا" + "µÐÅØÁºÍ¹" + "µÐÅØÁ¾Ø¡" + "µÐÅèÍÁ" + "µÐÇѹ" + "µÐËÅÔÇ" + "µÐà¡Õ¡µÐ¡ÒÂ" + "µÐà¡Õ§" + "µÐà¡Õº" + "µÐà¢çº" + "µÐà¤Õ¹" + "µÐà¦è" + "µÐàºç§" + "µÐà¾Ô´" + "µÐà¾Ôè¹" + "µÐà¾Õ¹" + "µÐàÀÒ" + "µÐàŧ" + "µÐá¡Ã§" + "µÐᤧ" + "µÐầ" + "µÐâ¡" + "µÐâ¡¡" + "µÐ⡹" + "µÐâ¡é" + "µÐ⢧" + "µÐâºÁ" + "µÐ⾡" + "µÐâ˧¡" + "µÐä¡Ã" + "µÐä¤Ãè" + "µÐä¤Ãé" + "µÐäº" + "µÐäÅ" + "µÑ¡" + "µÑ¡ÉÑÂ" + "µÑ§" + "µÑ§©èÒÂ" + "µÑ§à¡" + "µÑ§àÁ" + "µÑ§âÍë" + "µÑ³ËÒ" + "µÑ´" + "µÑ´ÊÔ¹" + "µÑ¹" + "µÑ¹Ë§" + "µÑº" + "µÑÇ" + "µÑè§" + "µÑé§" + "µÑé§áµè" + "µÑéÇâ¼" + "µÑê¡áµ¹" + "µÑëÇ" + "µÒ" + "µÒ¡" + "µÒ´" + "µÒ¹" + "µÒ¹Õ" + "µÒº" + "µÒÁ" + "µÒÂ" + "µÒÅ" + "µÒŻѵÃ" + "µÓ" + "µÓ¹Ò¹" + "µÓºÅ" + "µÓÃǨ" + "µÓÃѺ" + "µÓÃÒ" + "µÓÅÖ§" + "µÓ˹ѡ" + "µÓ˹Ô" + "µÓáÂ" + "µÓá˹è§" + "µÔ" + "µÔ¡ÒËÃѧ" + "µÔ§" + "µÔ³" + "µÔ´" + "µÔÃѨ©Ò¹" + "µÔÅ¡" + "µÔè§" + "µÔéÇ" + "µÔê¡" + "µÔë§" + "µÕ" + "µÕ¹" + "µÕº" + "µÕè" + "µÕë" + "µÖ" + "µÖ¡" + "µÖ§" + "µÖ´µ×ëÍ" + "µÖé¡" + "µÖ页Ñé¡" + "µÖê´µ×ëÍ" + "µ×´" + "µ×ÍÎǹ" + "µ×è¹" + "µ×é¹" + "µ×éÍ" + "µ×êÍ" + "µ×ëÍ" + "µØ" + "µØ¡µÔ¡" + "µØ§" + "µØ¹" + "µØ¹Ò˧ѹ" + "µØº" + "µØáÕ" + "µØÅÒ" + "µØÅÒ¡ÒÃ" + "µØÅÒ¤Á" + "µØËÃÑ´µØàËÃè" + "µØè¹" + "µØèÁ" + "µØèÂ" + "µØ駡èÒ" + "µØ駵Ôé§" + "µØéº" + "µØéÁ" + "µØéÂ" + "µØê" + "µØê¡" + "µØ꡵Ò" + "µØê¡á¡" + "µØê´" + "µØêµêÐ" + "µØ꺻èͧ" + "µØêÂ" + "µØë¹" + "µØëÁ" + "µØëµØèÂ" + "µÙ" + "µÙ¡" + "µÙ´" + "µÙº" + "µÙÁ" + "µÙè" + "µÙé" + "µèǹ" + "µèÍ" + "µèͧáµè§" + "µèÍÁ" + "µèÍÂ" + "µèÒ§" + "µèÓ" + "µé¹" + "µéÁ" + "µéÇÁàµÕéÂÁ" + "µéÍ" + "µéͧ" + "µéͧàµ" + "µé͹" + "µéÍÂ" + "µé͵Ôè§" + "µé͵ÕÇÔ´" + "µéÒ¹" + "µêÍ¡" + "µêÍ¡µëÍÂ" + "µë§" + "µëÍÁ" + "¶¡" + "¶´" + "¶¹¹" + "¶¹ÍÁ" + "¶¹Ñ´" + "¶¹Ñ´¶¹Õè" + "¶¹ÔÁ" + "¶Á" + "¶ÁÖ§·Ö§" + "¶Å¡" + "¶Å¹" + "¶ÅÍ¡" + "¶Åѹ" + "¶ÅÒ" + "¶ÅÒ¡" + "¶ÅÓ" + "¶ÅÕ¶ÅÓ" + "¶ÅÖ§µÒ" + "¶Åا" + "¶Åع" + "¶ÅèÁ" + "¶ÇÑÅÂì" + "¶ÇÒÂ" + "¶ÇÔÅ" + "¶Í¡" + "¶Í§" + "¶Í´" + "¶Í¹" + "¶ÍÂ" + "¶Ð" + "¶Ñ¡" + "¶Ñ§" + "¶Ñ´" + "¶Ñ¹" + "¶ÑÇ" + "¶ÑèÇ" + "¶Ò" + "¶Ò¡" + "¶Ò§" + "¶Ò´" + "¶Ò¹" + "¶ÒÁ" + "¶ÒÇÃ" + "¶Ôè¹" + "¶Õº" + "¶Õè" + "¶Ö¡" + "¶Ö§" + "¶×Í" + "¶Ø§" + "¶Ø¹" + "¶ØÂ" + "¶Ù" + "¶Ù¡" + "¶èÁ" + "¶èǧ" + "¶èÍ" + "¶èͧ" + "¶èÍÁ" + "¶èÍÂ" + "¶èÒ§" + "¶èÒ¹" + "¶èÒÂ" + "¶éǹ" + "¶éÇÂ" + "¶éÍÂ" + "¶éÒ" + "¶éÓ" + "·¡" + "·¡ÅéÒ" + "·´" + "·¹" + "·¹µì" + "·¹ÒÂ" + "·¹â·è" + "·º" + "·º·Ç¹" + "·ºÇ§" + "·ÁÔÌ" + "·ÂÍÂ" + "·Ã¡ÃÃÁ" + "·Ã§" + "·Ãª¹" + "·ÃªÒµÔ" + "·Ã¾ÔÉ" + "·Ã¾Õ" + "·ÃÁÒ¹" + "·ÃÂÈ" + "·ÃÂؤ" + "·Ãû" + "·ÃÃȹÐ" + "·ÃÃÒª" + "·ÃÅѡɳì" + "·Ãǧ" + "·ÃÇ´·Ã§" + "·ÃË´" + "·ÃѾÂÒ¡Ã" + "·ÃѾÂì" + "·ÃѾÂìÊÔ¹" + "·ÃÑÁà»çµ" + "·ÃÒ¹«ÔÊàµÍÃì" + "·ÃÒº" + "·ÃÒÁ" + "·ÃÒÂ" + "·ÃØ´" + "·ÄÉ®Õ" + "·ÅÒÂ" + "·Ç§" + "·Ç´" + "·Ç¹" + "·ÇÂ" + "·ÇÒ·È" + "·ÇÒÂ" + "·ÇÒÃ" + "·ÇÔ" + "·ÇÕ" + "·ÇÕ¸ÒÀÔàÉ¡" + "·ÇÕ»" + "·ÇèÒ" + "·È" + "·È¹ÔÂÁ" + "·ËÒÃ" + "·Í" + "·Í¡" + "·Í§" + "·Í§¡ÇÒÇ" + "·Í§ËÅÒ§" + "·Í´" + "·Í¹" + "·Í¹«ÔÅ" + "·Í¿¿Õè" + "·ÍÂ" + "·ÍÅì¤" + "·Ð¹§" + "·Ð¹Ò¹" + "·Ð¹Ø" + "·ÐÁÑ´·ÐáÁ§" + "·ÐÁÖ¹" + "·ÐÁ×è¹" + "·ÐÂÒ¹" + "·ÐÅǧ" + "·ÐÅÑ¡" + "·ÐÅÒÂ" + "·ÐÅÖè§" + "·ÐÅØ" + "·ÐÇÒÂ" + "·ÐàºÕ¹" + "·ÐàÂÍ·ÐÂÒ¹" + "·ÐàÅ" + "·ÐàÅÒÐ" + "·ÐàÅèÍ·ÐÅèÒ" + "·ÐàÅé¹" + "·ÐáÁè§" + "·Ñ¡" + "·Ñ¡¢Ô" + "·Ñ¡¢Ô³Ò" + "·Ñ¡¢Ô³ÒÇѯ" + "·Ñ¡¢ì" + "·Ñ¡ÉÐ" + "·Ñ¡ÉÔ³" + "·Ñ¡ÉÔ³Ò" + "·Ñ¡ÉÔ³ÒÇÃõ" + "·Ñ¡ÉÔâ³·¡" + "·Ñ§Ê൹" + "·Ñ³±¡ÃÃÁ" + "·Ñ³±¦Òµ" + "·Ñ³±Ê¶Ò¹" + "·Ñ³±ì" + "·Ñ´" + "·Ñ¹" + "·Ñ¹µá¾·Âì" + "·Ñ¹µì" + "·Ñ¹·Õ" + "·Ñº" + "·ÑºÊÁÔ§¤ÅÒ" + "·Ñ¾" + "·Ñ¾¾Õ" + "·Ñȹ¤µÔ" + "·ÑȹÇÔÊÑÂ" + "·ÑȹÈÖ¡ÉÒ" + "·ÑȹÐ" + "·ÑȹÒ" + "·ÑȹҨÃ" + "·ÑȹÕÂÀÒ¾" + "·ÑȹÕÂì" + "·Ñȹٻ¡Ã³ì" + "·Ñȹì" + "·ÑÈä¹Â" + "·Ñè§" + "·ÑèÇ" + "·Ñé§" + "·Ò" + "·Ò¡" + "·Ò§" + "·Ò¹" + "·Òº" + "·ÒÁ" + "·ÒÂ" + "·ÒÂÒ´" + "·ÒÂÒ·" + "·Òá" + "·ÒÃÔ¡Ò" + "·ÒÃس" + "·ÒÃì«Ò¹" + "·ÒÊ" + "·Ó" + "·Ó¹º" + "·Ó¹Í§" + "·Ó¹ÒÂ" + "·Ó¹Ø" + "·ÓÅÒÂ" + "·Óà¹Ò" + "·Óà¹Õº" + "·ÓàÅ" + "·ÓäÁ" + "·Ô¤ÑÁ¾Ã" + "·Ô¦ÑÁ¾Ã" + "·Ô§à¨ÍÃì" + "·Ô°Ô" + "·Ô´" + "·Ô¾Â¨Ñ¡ÉØ" + "·Ô¾ÂÒ³" + "·Ô¾ÂÃÊ" + "·Ô¾Â๵Ã" + "·Ô¾Âì" + "·Ô¾Ò¡Ã" + "·ÔÁ" + "·ÔÇ" + "·Ôǧ¤µ" + "·ÔÇ·Ñȹì" + "·ÔÇÒ" + "·ÔÈ" + "·ÔÈÒ" + "·ÔÈҹطÔÈ" + "·Ôີ" + "·ÔèÁ" + "·Ôé§" + "·Õ" + "·Õ¦ªÒµÔ" + "·ÕÁ" + "·Õà͹·Õ" + "·Õè" + "·Õè´Ô¹" + "·Ö¡" + "·Ö¹·Ö¡" + "·Öº" + "·ÖÁ" + "·Öè§" + "·ÖèÁ" + "·Öé§" + "·×èÍ" + "·Ø" + "·Ø¡" + "·Ø¡¢ÅÒÀ" + "·Ø¡¢ÒÃÁ³ì" + "·Ø¡¢àÇ·¹Ò" + "·Ø¡¢ì" + "·Ø¡Ã¡ÔÃÔÂÒ" + "·Ø¤µÔ" + "·Ø¨ÃÔµ" + "·Ø´" + "·Ø¹" + "·Øº" + "·Ø¾¾Å" + "·Ø¾ÀÔ¡¢ÀÑÂ" + "·ØÂ" + "·Øáѹ´ÒÃ" + "·Øê¹" + "·ØêҵÔ" + "·Øù·ØÃÒÂ" + "·ØþÅ" + "·ØÅÑ¡·ØàÅ" + "·ØÈÕÅ" + "·ØàÃÈ" + "·ØàÃÕ¹" + "·ØàÅÒ" + "·Øè§" + "·Øè¹" + "·ØèÁ" + "·Øé§" + "·ØéÁ" + "·ØéÂ" + "·Ù" + "·Ùµ" + "·ÙµÒ¹Ø·Ùµ" + "·Ù¹" + "·Ùº" + "·ÙÁ" + "·ÙÅ" + "·Ùè" + "·Ùé" + "·á¡ÅéÇ" + "·á§" + "·âÁ¹" + "·èǧ·Ó¹Í§" + "·èǧ·Õ" + "·èǧ·èÒ" + "·èÇÁ" + "·èÍ" + "·èͧ" + "·è͹" + "·èÍÁ" + "·èÒ" + "·èÒ¹" + "·èÒÁ¡ÅÒ§" + "·é¹" + "·éǧ" + "·éǹ" + "·éÇÁ" + "·éÍ" + "·éͧ" + "·éÒ" + "·éÒÂ" + "·éÒÇ" + "¸§" + "¸¹" + "¸¹ºÑµÃ" + "¸¹ºØÃÕ" + "¸¹ÊÁºÑµÔ" + "¸¹ÊÒÃ" + "¸¹Ò¤ÒÃ" + "¸¹Ò³ÑµÔ" + "¸¹ÒÃÑ¡Éì" + "¸¹Ù" + "¸Á" + "¸Ã" + "¸Ã³Õ" + "¸ÃÃÁ" + "¸ÃÃÁ¡ÒÂ" + "¸ÃÃÁªÒµÔ" + "¸ÃÃÁ´Ò" + "¸ÃÃÁÈÒʵÃì" + "¸ÃÃÁÐ" + "¸ÃÃÁиÑÁâÁ" + "¸ÃÃÁÒ·ÔµÂì" + "¸ÃÃÁÒ¸ÃÃÁ" + "¸ÃÃÁÒ¸Ô»äµÂ" + "¸ÃÃÁÒ¸ÔÉ°Ò¹" + "¸ÃÃÁÒ¹ØÊÒ¹" + "¸ÃÃÁÒÀÔÁØ¢" + "¸ÃÃÁÒÀÔÊÁÑÂ" + "¸ÃÃÁÒµ¹Ð" + "¸ÃÃÁÒÃÁ³ì" + "¸ÃÃÁÒʹì" + "¸ÃÃÁÔ¡" + "¸ÃÒ¸Ã" + "¸ÃÒ¸ÒÃ" + "¸ÃÒ¸Ôº´Õ" + "¸ÃÒ¸Ô»" + "¸Ñ" + "¸ÑÒËÒÃ" + "¸Ñ¾×ª" + "¸Ñ¹ÇÒ¤Á" + "¸ÑÁÁÐ" + "¸ÒµØ" + "¸Ò¹Õ" + "¸ÒÃ" + "¸ÒÃÒ" + "¸ÓÁç¤ì" + "¸Óç" + "¸Ô´Ò" + "¸Ôີ" + "¸Ø´§¤ì" + "¸ØáÃÃÁ" + "¸ØáÒÃ" + "¸ØáԨ" + "¸ØÃÐ" + "¸ØÅÕ" + "¸ØÇ´ÒÃÒ" + "¸ØÇÀÒ¤" + "¸ØÇÁ³±Å" + "¸Ù»" + "¹¡" + "¹¤Ã" + "¹¤ÃÃÒªÊÕÁÒ" + "¹¤ÃÔ¹·Ãì" + "¹¤àÃÈ" + "¹§¤ÃÒ" + "¹§¹Øª" + "¹§¾Ð§Ò" + "¹§¾ÒÅ" + "¹§ÃÒÁ" + "¹§Åѡɳì" + "¹§àÂÒÇì" + "¹·Õ" + "¹¹·ºØÃÕ" + "¹¹·ÃÕ" + "¹¹·ÅÕ" + "¹º" + "¹¾" + "¹¾»®Å" + "¹¾È¡" + "¹¾ÈÙÅ" + "¹ÀÒ" + "¹ÀÒÅÑÂ" + "¹Á" + "¹ÁÑÊ¡ÒÃ" + "¹Ã¡" + "¹ÃÊÔ§Ëì" + "¹ÃÕàǪ" + "¹ÃÕá¾·Âì" + "¹Ä¤ËÔµ" + "¹Ä¹Ò·" + "¹ÄÁÅ" + "¹ÄÁÔµ" + "¹ÅÒ¯" + "¹ÅÔ¹Õ" + "¹Ç´" + "¹Ç¹ÔÂÒÂ" + "¹ÇÁ" + "¹ÇÂ" + "¹ÇÅ" + "¹ÇÅÅÍÍ" + "¹ÇÅÅÐÍͧ" + "¹Í" + "¹Í¡" + "¹Í§" + "¹Íµ" + "¹Í¹" + "¹Íº" + "¹ÍÂ" + "¹ÍÃìàÇÂì" + "¹Ð" + "¹Ñ¡" + "¹Ñ¡¢Ñµ" + "¹Ñ¡ÈÖ¡ÉÒ" + "¹Ñ¡ÉѵÃ" + "¹Ñ¡àÃÕ¹" + "¹Ñ§¤ÑÅ" + "¹Ñ´" + "¹Ñ´´Ò" + "¹Ñµ¶Øì" + "¹Ñ¹·¹Ò¡ÒÃ" + "¹Ñº" + "¹ÑÂ" + "¹Ñ¹ì" + "¹ÑÇ" + "¹Ñè§" + "¹Ñè¹" + "¹Ñé¹" + "¹Ò" + "¹Ò¡" + "¹Ò¤" + "¹Ò¤Ã" + "¹Ò¤ÃÒª" + "¹Ò¤Õ" + "¹Ò§" + "¹Ò§ÊÒÇ" + "¹Ò§áÍè¹" + "¹Ò«Ò" + "¹Ò¯" + "¹Ò´" + "¹Ò¶" + "¹Ò·" + "¹Ò·Õ" + "¹Ò¹" + "¹Ò¹Ñ»¡ÒÃ" + "¹Ò¹Ò" + "¹Òº" + "¹ÒÀÕ" + "¹ÒÁ" + "¹ÒÁ¡Ã" + "¹ÒÁÊ¡ØÅ" + "¹ÒÁҹءÃÁ" + "¹ÒÁÒÀÔä¸Â" + "¹ÒÂ" + "¹Ò¡" + "¹ÒÃÒ³ì" + "¹ÒÃÕ" + "¹ÒÇÒ" + "¹ÒÇÔ¡" + "¹ÒÇÔ¹" + "¹ÒÇÕ" + "¹ÒÊÔ¡" + "¹ÒÌÔ¡Ò" + "¹ÒÌÔà¡" + "¹Òâ¹" + "¹Ó" + "¹Ô" + "¹Ô¡Ã" + "¹Ô¡ÃÍ´ì" + "¹Ô¡ÒÂ" + "¹Ô¡à¡ÔÅ" + "¹Ô¤Á" + "¹Ô¤Ã¹¶ì" + "¹Ô¤ËÔµ" + "¹Ô¨" + "¹Ô´" + "¹ÔµÂÊÒÃ" + "¹ÔµÂì" + "¹ÔµÔ" + "¹Ô·ÃÃÈ" + "¹Ô·ÃÒ" + "¹Ô·Ñȹì" + "¹Ô·Ò¹" + "¹Ô¹·Ò" + "¹ÔºÒµ" + "¹Ô¾¹¸ì" + "¹Ô¾¾Ò¹" + "¹ÔÁ¹µì" + "¹ÔÁÁÒ¹" + "¹ÔÁÁҹôÕ" + "¹ÔÁÔµ" + "¹ÔÂÁ" + "¹ÔÂÒÁ" + "¹ÔÂÒÂ" + "¹Ô÷ء¢ì" + "¹ÔùÒÁ" + "¹ÔÃÀÑÂ" + "¹ÔÃÁÅ" + "¹ÔÃÁÔµ" + "¹ÔÃѹ´Ã" + "¹ÔÃÒÈ" + "¹ÔÃâ·É" + "¹ÔÅ" + "¹ÔÅغÅ" + "¹ÔÇ¡Ô¹Õ" + "¹ÔǤÅÔÍÔ¡" + "¹ÔÇ«ÕᏴì" + "¹ÔǵÃ͹" + "¹ÔÇÂÍÃì¤" + "¹ÔÇóì" + "¹ÔÇѵ" + "¹ÔÇѵ¹ì" + "¹ÔÇÒµ" + "¹ÔÇÒÊ" + "¹ÔÇà¤ÅÕÂÃì" + "¹ÔÇà¤ÅÕÂÊ" + "¹ÔÊÑÂ" + "¹ÔÊÔµ" + "¹Ôà·È" + "¹ÔàÇÈ" + "¹ÔàÇȹì" + "¹Ô⤵Թ" + "¹Ôâø" + "¹ÔâźÅ" + "¹Ôè§" + "¹ÔèÁ" + "¹ÔèÇ" + "¹ÔéÇ" + "¹Õ" + "¹ÕÍ͹" + "¹ÕâÍ´ÔàÁÕÂÁ" + "¹Õè" + "¹Õé" + "¹Ö¡" + "¹Öè§" + "¹Ø§" + "¹Øª" + "¹Øè§" + "¹Øè¹" + "¹ØèÁ" + "¹ØéÂ" + "¹Ù¹" + "¹Ùè¹" + "¹Ùé¹" + "¹àÃÈÇÃ" + "¹âºÒÂ" + "¹âôÁ" + "¹èÇÁ" + "¹èͧ" + "¹èÒ" + "¹èÒ¹" + "¹éͧ" + "¹éÍÁ" + "¹éÍÂ" + "¹éÍÂ˹èÒ" + "¹éÍÂâ˹è§" + "¹éÒ" + "¹éÒÇ" + "¹éÓ" + "¹éÓÁѹ" + "¹éÓà§Ô¹" + "º¡" + "º¡¾Ãèͧ" + "º§" + "º§¡ª" + "º´" + "º´Ô¹·Ãà´ªÒ" + "º´Ô¹·Ãì" + "º´Õ" + "º·" + "º¹" + "º¾ÔµÃ" + "º¾Ô¸" + "ºÃÁ" + "ºÃÁѵ¶ì" + "ºÃÃ" + "ºÃè§" + "ºÃè¶Ã³ì" + "ºÃèº" + "ºÃèǺ" + "ºÃèØ" + "ºÃó" + "ºÃóҡÒÃ" + "ºÃóҤÁ" + "ºÃóҸԡÒÃ" + "ºÃóҹءÃÁ" + "ºÃóÒÃÑ¡ÉÈÒʵÃì" + "ºÃóÒÃÑ¡Éì" + "ºÃôÒ" + "ºÃ÷Á" + "ºÃ÷Ѵ" + "ºÃ÷ء" + "ºÃþ" + "ºÃþªÒ" + "ºÃþªÔµ" + "ºÃþµ" + "ºÃþºØÃØÉ" + "ºÃç" + "ºÃç¡ì" + "ºÃÃÂÒ¡ÒÈ" + "ºÃÃÂÒÂ" + "ºÃÃÅÑÂ" + "ºÃÃÅØ" + "ºÃÃÉÑ·" + "ºÃÃËÒÃ" + "ºÃÃà¨Ô´" + "ºÃÃà·Ò" + "ºÃÃàŧ" + "ºÃÃâÅÁ" + "ºÃÑè¹´Õ" + "ºÃÒÇà«ÍÃì" + "ºÃÔ" + "ºÃÔ¡ÃÃÁ" + "ºÃÔ¡ÒÃ" + "ºÃÔ¢ÒÃ" + "ºÃÔ¤³Ëì" + "ºÃÔ¨Ò¤" + "ºÃÔ¨Òá" + "ºÃÔ¨ÒÃÔ¡Ò" + "ºÃÔºÒÅ" + "ºÃÔºÙóì" + "ºÃԾѵÃ" + "ºÃÔ¾ÒÃ" + "ºÃÔÀѳ±ì" + "ºÃÔÀÒÉ" + "ºÃÔÃÑ¡Éì" + "ºÃÔÃÒª" + "ºÃÔÇÒÃ" + "ºÃÔÉÑ·" + "ºÃÔÊØ·¸Ôì" + "ºÃÔËÒÃ" + "ºÃÔà©·" + "ºÃÔ൹" + "ºÃÔàdz" + "ºÃÔâÀ¤" + "ºÅçÍ¡" + "ºÇ¡" + "ºÇ§" + "ºÇª" + "ºÇ¹" + "ºÇº" + "ºÇÁ" + "ºÇÃ" + "ºÍ" + "ºÍ¡" + "ºÍ´" + "ºÍ´Õé" + "ºÍ¹" + "ºÍº" + "ºÍÃì¡" + "ºÍÃì´" + "ºÍÃìà¹ÕÂÇ" + "ºÍÅ" + "ºÍÅÅÙ¹" + "ºÐËÁÕè" + "ºÑ¡" + "ºÑ¤àµÃÕ" + "ºÑ§" + "ºÑ§¡ÐâÅ" + "ºÑ§¤Á" + "ºÑ§¤Å" + "ºÑ§¤Ñº" + "ºÑ§ÊØ¡ØÅ" + "ºÑ§ÍÃ" + "ºÑ§ÍÒ¨" + "ºÑ§à¡Ô´" + "ºÑ§àËÕ¹" + "ºÑ§àÍÔ" + "ºÑªÃ" + "ºÑªÒ" + "ºÑªÕ" + "ºÑѵÔ" + "ºÑ³±Ôµ" + "ºÑ³±ÔµÂì" + "ºÑ³±Ø" + "ºÑ³±ÙÃ" + "ºÑ³³ÒÊ" + "ºÑ³ÃÊ" + "ºÑ³ÃÊÕ" + "ºÑ³à±ÒСì" + "ºÑ³à±ÒÐÇì" + "ºÑ´" + "ºÑ´¡ÃÕ" + "ºÑ´«º" + "ºÑ´ÊÕ" + "ºÑµÃ" + "ºÑ¹" + "ºÑ¹´ÒÅ" + "ºÑ¹·Ö¡" + "ºÑ¹ÂкѹÂѧ" + "ºÑ¹Å×Í" + "ºÑ¹à·Ô§" + "ºÑ¹ä´" + "ºÑ»¼ÒÊÐ" + "ºÑ¾" + "ºÑÅ¡ÒàÃÕÂ" + "ºÑÅÅѧ¡ì" + "ºÑÅÅÙ¹" + "ºÑÇ" + "ºÑÊ" + "ºÑè¹" + "ºÑé§" + "ºÑé¹" + "ºÑê¡" + "ºÒ" + "ºÒ¡" + "ºÒ§" + "ºÒ´" + "ºÒ´·ÐÂÑ¡" + "ºÒ´ÒÅ" + "ºÒµ" + "ºÒµÃ" + "ºÒ·" + "ºÒ·º§ÊØì" + "ºÒ·ËÅǧ" + "ºÒ·Ò¸Ö¡" + "ºÒ·Ø¡Ò" + "ºÒ¹" + "ºÒ¹ª×è¹" + "ºÒ¹ºØÃÕ" + "ºÒ¹ÕÂÐ" + "ºÒ¹àªéÒ" + "ºÒ¹àÂç¹" + "ºÒ»" + "ºÒÂ" + "ºÒÃÁÕ" + "ºÒÃÍÁÔàµÍÃì" + "ºÒÃì" + "ºÒÃìàÃÅ" + "ºÒÅ" + "ºÒÅÕ" + "ºÒÈ" + "ºÒÈ¡ì" + "ºÒÊࡵºÍÅ" + "ºÒËÅÕ" + "ºÓ¹Ò" + "ºÓºÑ´" + "ºÓÃÒº" + "ºÓÃÒÈ" + "ºÓÃا" + "ºÓÃÙ" + "ºÓà¾ç" + "ºÓàÃÍ" + "ºÓà˹ç¨" + "ºÔ" + "ºÔ°" + "ºÔ³±ºÒµ" + "ºÔ´" + "ºÔ´¾ÅÔéÇ" + "ºÔ´Ã" + "ºÔ´Ò" + "ºÔµ" + "ºÔ¹" + "ºÔÅ" + "ºÔÅàÅÕ´" + "ºÔè¹" + "ºÕ±Ò" + "ºÕ¹" + "ºÕº" + "ºÕé" + "ºÖ¡" + "ºÖ¡ºÖ¹" + "ºÖ§" + "ºÖè§" + "ºÖé§" + "ºØ" + "ºØ¡" + "ºØ¡ÃØ¡" + "ºØ¡É¡" + "ºØ¤¤Å" + "ºØ¤ÅÒ¡Ã" + "ºØ¤ÅÒ¸ÔÉ°Ò¹" + "ºØ¤ÅÔ¡" + "ºØ¤ÅÔ¡ÀÒ¾" + "ºØ" + "ºØÒ¹ØÀÒ¾" + "ºØÒÀÔ¹ÔËÒÃ" + "ºØ³±ÃÔ¡" + "ºØ³Âì" + "ºØµÃ" + "ºØµÃÒ" + "ºØµÃÕ" + "ºØº" + "ºØ»¼ªÒµÔ" + "ºØ¾¡ÃÃÁ" + "ºØ¾¡ÒÃÕ" + "ºØ¾¡Ô¨" + "ºØ¾ªÒµÔ" + "ºØ¾·Ñ¡ÉÔ³" + "ºØ¾¹ÔÁÔµ" + "ºØ¾º·" + "ºØ¾¾Ò¨ÒÃÂì" + "ºØ¾à¾Êѹ¹ÔÇÒÊ" + "ºØ¿à¿èµì" + "ºØþ·ÔÈ" + "ºØþº·" + "ºØþҨÒÃÂì" + "ºØÃÒ³" + "ºØÃÔÁ·ÔÈ" + "ºØÃÔÁ¾ÃÃÉÒ" + "ºØÃÔÁÊÔ·¸Ô" + "ºØÃÕ" + "ºØÃØÉ" + "ºØÉ¡Ã" + "ºØɺ§" + "ºØɺÒ" + "ºØÉÂÁÒÊ" + "ºØÉÃÒ¤ÑÁ" + "ºØ˧ѹ" + "ºØ˧Ò" + "ºØËç" + "ºØËÃÕè" + "ºØËÅѹ" + "ºØâ÷Ñè§" + "ºØèÁºèÒÁ" + "ºØé§" + "ºØéÂ" + "ºØëÁ" + "ºÙªÒ" + "ºÙªÒÂÑ" + "ºÙ´" + "ºÙµ" + "ºÙóÀÒ¾" + "ºÙóÐ" + "ºÙþÒ" + "ºÙþҨÒÃÂì" + "ºÙé" + "ºÙê" + "ºè" + "ºè§" + "ºè¹" + "ºèÁ" + "ºèǧ" + "ºèÍ" + "ºèͧ" + "ºè͹" + "ºèÍÂ" + "ºèÒ" + "ºèÒ§" + "ºèÒÂ" + "ºèÒÇ" + "ºéǹ" + "ºéͧ" + "ºéͧáºêÇ" + "ºéÍÁ" + "ºéÒ" + "ºéÒ§" + "ºéÒ¹" + "ºéÒÃÐËèÓ" + "ºê§àºê§" + "ºêÇÂ" + "ºêͧ" + "ºêÐ" + "ºëÍÁ" + "ºëÍÂ" + "ºëÓ" + "»¡" + "»¡¤Ãͧ" + "»¡µÔ" + "»¡Ã³ì" + "»¡ÒÃ" + "»¡Ô³¡Ð" + "»¯Ñ¡" + "»¯Ô¡Ã³ì" + "»¯Ô¡ÃÃÁ" + "»¯Ô¡ÔÃÔÂÒ" + "»¯Ô¡ÙÅ" + "»¯Ô¤Á" + "»¯ÔªÕǹÐ" + "»¯ÔÒ" + "»¯ÔÒ³" + "»¯Ô·Ô¹" + "»¯Ôº¶" + "»¯ÔºÑµÔ" + "»¯Ô»·Ò" + "»¯Ô»Ñ¡Éì" + "»¯Ô¾Ñ·¸ì" + "»¯Ô¾Ò¡Âì" + "»¯ÔÀÒ¤" + "»¯ÔÀÒ³" + "»¯ÔÁÒ" + "»¯ÔÁÒ¡Ã" + "»¯ÔÂØ·¸ì" + "»¯ÔÃÙ»" + "»¯ÔÇѵÔ" + "»¯ÔÇÒµ" + "»¯ÔÇÒ·" + "»¯Ôʹ¸Ô" + "»¯ÔÊѧ¢Ã³ì" + "»¯ÔÊѹ¶ÒÃ" + "»¯ÔÊÑÁ¾Ñ¹¸ì" + "»¯ÔàǸ" + "»¯Ôàʸ" + "»¯ÔâÅÁ" + "»°¾Õ" + "»°Á" + "»°Á·Ñȹì" + "»°Á¹Ôà·È" + "»°Á¾ÂÒºÒÅ" + "»°ÁÄ¡Éì" + "»°ÁÇÑÂ" + "»°Áà·È¹Ò" + "»³µ" + "»³Ô¸Ò¹" + "»´" + "»¶¾Õ" + "»·Ò¹Ø¡ÃÁ" + "»·ØÁ" + "»·ØÁ¸Ò¹Õ" + "»¹" + "»¹Ñ´´Ò" + "»¹à»" + "»º" + "»Á" + "»Ã¡" + "»Ã¡µÔ" + "»Ã§" + "»Ã¹" + "»Ã¹¹ÔºÑµÔ" + "»Ã¹ÑÂ" + "»Ãº" + "»Ã»Ñ¡Éì" + "»ÃÁѵ¶ì" + "»ÃÁÒ¨ÒÃÂì" + "»ÃÁÒ³Ù" + "»ÃÁÒÀÔàÉ¡" + "»ÃÁÒÀÔä¸Â" + "»ÃÇ´" + "»Ãǹá»Ã" + "»ÃÇÒ·Õ" + "»ÃÊÔµ" + "»Ãͧ´Í§" + "»ÃÍ´" + "»ÃÍ·" + "»ÃÍÂ" + "»ÃÐ" + "»ÃСº" + "»ÃСǴ" + "»ÃСͺ" + "»ÃСѹ" + "»ÃСѺ" + "»ÃСÒÂ" + "»ÃСÒÃ" + "»ÃСÒÈ" + "»ÃСÒȹÕºѵÃ" + "»ÃСÒÈÔµ" + "»ÃСԴ" + "»ÃФº" + "»ÃФº»ÃÐ˧Á" + "»ÃФͧ" + "»ÃФÓ" + "»ÃШº" + "»ÃШǺ" + "»ÃШѡÉì" + "»ÃШÑ" + "»ÃШѹ" + "»ÃШҤ" + "»ÃШҹ" + "»ÃШÓ" + "»ÃШÔÁ" + "»ÃШØ" + "»ÃШëÍ»ÃÐá¨ë" + "»ÃЪ´" + "»ÃЪÇÃ" + "»ÃЪѹ" + "»ÃЪÒ" + "»ÃЪҪ¹" + "»ÃЪҸԻѵÂì" + "»ÃЪҸԻäµÂ" + "»ÃЪÒÀÔºÒÅ" + "»ÃЪԴ" + "»ÃЪØÁ" + "»Ãгµ" + "»ÃгÁ" + "»ÃгÒÁ" + "»ÃгԸҹ" + "»ÃгԸÔ" + "»Ãгյ" + "»Ãд¹" + "»Ãдǹ" + "»Ãд͹" + "»Ãдѡ»ÃÐà´Ô´" + "»Ãдѧ" + "»ÃдѺ" + "»ÃдÒ" + "»Ãдһ" + "»ÃдÒÉ" + "»ÃдԴ»ÃдÍÂ" + "»ÃдԷԹ" + "»ÃдÔÉ°Ò¹" + "»ÃдÔÉ°ì" + "»Ãдا" + "»Ãдب" + "»ÃдÙè" + "»ÃеÙ" + "»ÃжÁ" + "»Ãзǹ" + "»ÃзѡÉì" + "»Ãзѧ" + "»ÃзѴ" + "»ÃзѺ" + "»Ãзҹ" + "»ÃзԹ" + "»ÃзÔè¹" + "»Ãзջ" + "»Ãзع" + "»ÃзØÉ" + "»ÃзØÉÃéÒÂ" + "»Ãзéǧ" + "»Ãиҹ" + "»ÃиҹҸԺ´Õ" + "»ÃйÁ" + "»ÃйÍÁ" + "»ÃйջÃйÍÁ" + "»ÃлÃÒÂ" + "»ÃлÒ" + "»ÃоĵÔ" + "»ÃоĸÔì" + "»Ãоѷ¸ì" + "»Ãоѹ¸ì" + "»Ãоҵ" + "»ÃоÒÊ" + "»ÃоÒÌ" + "»ÃоԳ" + "»Ãоط¸ì" + "»ÃÐÀÑÊÊÃ" + "»ÃÐÀÒ" + "»ÃÐÀÒ¤ÒÃ" + "»ÃÐÀÒ¾" + "»ÃÐÀÒÊ" + "»ÃÐÁ§" + "»ÃÐÁÇ" + "»ÃÐÁÇÅ" + "»ÃÐÁÒ³" + "»ÃÐÁÒ·" + "»ÃÐÁØ¢" + "»ÃÐÁØ·" + "»ÃÐÁÙÅ" + "»ÃÐÂØ¡µì" + "»ÃÐÂØ·¸ì" + "»ÃÐÂÙÃ" + "»ÃÐÅÁ¾ì" + "»ÃÐÅͧ" + "»ÃÐÅÑÂ" + "»ÃÐÅÒµ" + "»ÃÐÇÃõ" + "»ÃÐÇÃõ¹ì" + "»ÃÐÇѵÔ" + "»ÃÐÇѵԡÒóì" + "»ÃÐÇѵÔÈÒʵÃì" + "»ÃÐÇÒµ" + "»ÃÐÇÒÅ" + "»ÃÐÇÒÊ" + "»ÃÐÇÔ§" + "»ÃÐÇÔª" + "»ÃÐÇÔµÃ" + "»ÃÐÇÕ³" + "»ÃÐÈÁ" + "»ÃÐÈÒʹì" + "»ÃÐÊ¡" + "»ÃÐʧ¤ì" + "»ÃÐʺ" + "»ÃÐʺ¡Òóì" + "»ÃÐʾ" + "»ÃÐÊÒ" + "»ÃÐÊÒ·" + "»ÃÐÊÒ¹" + "»ÃÐÊÔ·¸Ô¼Å" + "»ÃÐÊÔ·¸ÔÀÒ¾" + "»ÃÐÊÔ·¸Ôì" + "»ÃÐÊÙµÔ" + "»ÃÐËÁèÒ" + "»ÃÐËÂÑ´" + "»ÃÐËÅÒ´" + "»ÃÐËÅèÓ" + "»ÃÐËÒÃ" + "»ÃÐÎÒÁ" + "»ÃÐह" + "»ÃÐਡ" + "»ÃÐà¨Ô´»ÃÐà¨éÍ" + "»ÃÐà¨Õ´" + "»ÃÐà´" + "»ÃÐà´ÔÁ" + "»ÃÐà´Õ§" + "»ÃÐà´ÕëÂÇ" + "»ÃÐà´ÕëÂÇ»ÃдëÒÇ" + "»ÃÐà´ç¹" + "»ÃÐà·È" + "»ÃÐà·ÈÃÒª" + "»ÃÐà·Èä·Â" + "»ÃÐà·×ͧ" + "»ÃÐླÕ" + "»ÃÐàÀ·" + "»ÃÐàÁÔ¹" + "»ÃÐàdzÕ" + "»ÃÐàÇÈ" + "»ÃÐàÇȹì" + "»ÃÐàÊÃÔ°" + "»ÃÐá¡¡" + "»ÃÐá¨" + "»ÃÐâ¤Á" + "»ÃÐâ¤" + "»ÃÐ⪹ì" + "»ÃÐâÅÁ" + "»ÃÑ¡" + "»Ãѧ" + "»ÃѪÒ" + "»ÃѵÂصºÑ¹" + "»ÃѵÂغѹ" + "»Ãѹ" + "»ÃѺ" + "»ÃÑÁ»ÃÒ" + "»ÃÑȹÕ" + "»ÃÑÈÇì" + "»ÃÒ¡¯" + "»ÃÒ¡ÃÁ" + "»ÃÒ¡ÒÃ" + "»ÃÒ¤ÀÒÃ" + "»ÃÒ§" + "»ÃÒ§¤ì" + "»ÃÒ¨Õ¹" + "»ÃÒªÒ" + "»ÃÒªì" + "»ÃÒªÑÂ" + "»ÃÒªÔµ" + "»ÃÒ³" + "»ÃÒ³Õ" + "»ÃÒ´" + "»ÃÒ¹Õ" + "»ÃÒº" + "»ÃÒº´ÒÀÔàÉ¡" + "»ÃÒ»µì" + "»ÃÒÀ¾" + "»ÃÒÁ" + "»ÃÒÁÒÊ" + "»ÃÒÂ" + "»ÃÒö¹Ò" + "»ÃÒÃÀ" + "»ÃÒÃÁÀì" + "»ÃÒÈ" + "»ÃÒÈÃÑÂ" + "»ÃÒÈÒÃ" + "»ÃÒɳÕ" + "»ÃÒÉÒ³" + "»ÃÒÊÒ·" + "»ÃÒâÁª" + "»ÃÒâÁ·Âì" + "»ÃÓ" + "»ÃÔ" + "»ÃÔ¡" + "»ÃÔ¤³Ëì" + "»ÃÔ¨Ò¤" + "»ÃÔ¨ÒÃÔ¡Ò" + "»ÃÔ«ÖÁ" + "»ÃÔÒ" + "»ÃÔ³ÒÁ" + "»ÃÔ³Ò¡" + "»ÃÔµ" + "»ÃÔµµÐ" + "»ÃÔµÃ" + "»ÃÔ·ÃÃȹì" + "»ÃÔ·Ñȹì" + "»ÃÔ¹" + "»ÃÔ¹Êì" + "»ÃÔ¹Ô¾¾Ò¹" + "»ÃÔº" + "»ÃÔÁ³±Å" + "»ÃÔÁÑ·" + "»ÃÔÁÒ³" + "»ÃÔÁÒµÃ" + "»ÃÔÂѵÔ" + "»ÃÔÂÒÂ" + "»ÃÔÇÃõ" + "»ÃÔÇÒÊ" + "»ÃÔȹÒ" + "»ÃÔà©·" + "»ÃÔèÁ" + "»ÃÕªÒ" + "»ÃÕ´Ò" + "»ÃÕ´Ôì" + "»ÃÕÂÒ" + "»ÃÕè" + "»ÃÕê´" + "»ÃÖ¡ÉÒ" + "»Ã×Í" + "»Ã×ëÍ" + "»ÃØ" + "»Ãا" + "»ÃÙ´" + "»ÃÙê´»ÃêÒ´" + "»ÃÙê¿" + "»ÃàÁ¹·Ãì" + "»ÃâÅ¡" + "»ÃèÒ" + "»ÃëÍ" + "»Ä¨©Ò" + "»Äɮҧ¤ì" + "»Å¡" + "»Å§" + "»Å´" + "»ÅÇ¡" + "»ÅÍ¡" + "»ÅÍ´" + "»ÅÍ´ÀÑÂ" + "»Åͺ" + "»ÅÍÁ" + "»ÅÐ" + "»ÅÑ¡" + "»ÅÑ´" + "»ÅÑè§" + "»ÅÑê¡" + "»ÅÑê¡ÍÔ¹" + "»ÅÒ" + "»ÅÒµ" + "»ÅÒº" + "»ÅÒÂ" + "»ÅÒÇÒÌ" + "»ÅÒʹҡÒÃ" + "»ÅÒÊàµÍÃì" + "»ÅÔ§" + "»ÅÔ´" + "»ÅÔÇ" + "»ÅÔ⾸" + "»ÅÔèÁ" + "»ÅÔé¹" + "»ÅÕ" + "»ÅÕ¡" + "»Å×éÁ" + "»ÅØ¡" + "»ÅÙ¡" + "»Åè§" + "»Åèͧ" + "»ÅèÍÂ" + "»Åé¹" + "»Åéͧ" + "»Åé͹" + "»ÅéÓ" + "»Ç¡à»Õ¡" + "»Ç§" + "»Ç´" + "»ÇÒóÒ" + "»ÈØ" + "»Í" + "»Í¡" + "»Í§" + "»Í´" + "»Í¹" + "»Í¹´ì" + "»Íº" + "»ÍÂ" + "»ÍÃì" + "»ÍÃìµØà¡Ê" + "»Ð" + "»Ð¡¹" + "»Ð¡ÒÃѧ" + "»Ð¢ÒÇ" + "»Ð·Ð" + "»Ð·Ø" + "»Ð˧Ѻ" + "»ÐàËÅÒÐ" + "»ÐáÅèÁ" + "»Ðâŧ" + "»Ñ¡" + "»Ñ¡¡Ôè§" + "»Ñ¡ÉÒ" + "»Ñ¡ÉÒÇÊÒ¹" + "»Ñ¡ÉÔ³" + "»Ñ¡ÉÔ¹" + "»Ñ¡ÉÕ" + "»Ñ¡Éì" + "»Ñ¡à»éÒ" + "»Ñ§" + "»Ñ§ÊØ¡ØÅ" + "»Ñ¨¨Ñ¹µ¤ÒÁ" + "»Ñ¨¨Ñ¹µª¹º·" + "»Ñ¨¨Ñ¹µ»ÃÐà·È" + "»Ñ¨¨Ñ¹µì" + "»Ñ¨¨ÑÂ" + "»Ñ¨¨ÒÁÔµÃ" + "»Ñ¨¨ØºÑ¹" + "»Ñ¨¨ØÊÁÑÂ" + "»Ñ¨©Ò" + "»Ñ¨©ÔÁ" + "»Ñ¨à¨¡" + "»Ñ¨ÇѤ¤ÕÂì" + "»ÑÒ" + "»ÑËÒ" + "»Ñ´" + "»ÑµµÒ¹Õ" + "»ÑµµÒàÇÕÂ" + "»Ñ·Áì" + "»Ñ¹" + "»Ñº" + "»Ñ»¼ÒÊÐ" + "»ÑÊÊÒÇÐ" + "»ÑÊÊÒÊÐ" + "»Ñè¹" + "»Ñé¹" + "»Ñêº" + "»ÑêÁ" + "»Ñë§" + "»Ò" + "»Ò¡" + "»Ò¡¡Ò" + "»Ò¡Õʶҹ" + "»Ò§" + "»Ò¯ÔËÒÃÔÂì" + "»Ò°¡" + "»Ò°¡¶Ò" + "»Ò³ÒµÔºÒµ" + "»Ò´" + "»ÒµÔâÁ¡¢ì" + "»Ò·Ñ§¡Ò" + "»Ò·èͧâ¡ë" + "»Ò¹" + "»Ò»ÑÇ" + "»ÒÁ" + "»ÒÂÒÊ" + "»ÒÃÒªÔ¡" + "»ÒÃԩѵÃ" + "»ÒÃÔªÒµ" + "»ÒÃÕÊ" + "»ÒÃìࡵì" + "»ÒÅÕ" + "»ÒÅìÁ" + "»ÒÇ" + "»Ò˹ѹ" + "»ÒËÕè" + "»ÒâÁ¡¢ì" + "»Ó" + "»Ô¡¹Ô¡" + "»Ô§»Í§" + "»Ô®¡" + "»Ô´" + "»ÔµÒ" + "»ÔµÔ" + "»ÔµØ" + "»ÔµØ¦Òµ" + "»ÔµØÀÙÁÔ" + "»ÔµØÅÒ" + "»ÔÂÁÔµÃ" + "»ÔÂÐ" + "»ÔÈÒ¨" + "»ÔâµÃàÅÕÂÁ" + "»ÔâÂÃÊ" + "»Ôè¹" + "»Ôè¹âµ" + "»ÔèÁ" + "»Ôé§" + "»ÔéÁ" + "»ÔëÇ" + "»Õ" + "»Õ¡" + "»Õ¹" + "»Õº" + "»ÕÁÐâÇé" + "»ÕÈÒ¨" + "»Õè" + "»Õé" + "»Õê´" + "»Õêº" + "»Õë" + "»Ö¡" + "»Ö§" + "»Öè§" + "»Öé´" + "»Öë§" + "»×¹" + "»×é¹" + "»×ëÍ" + "»Ø" + "»Ø¡" + "»Ø¨©Ò" + "»Ø´" + "»Ø¶Øª¹" + "»Øº" + "»ØÂ" + "»ØâÃËÔµ" + "»ØèÁ" + "»Ø駡Õë" + "»ØéÁ" + "»Øê" + "»Øêº" + "»ØëÁ" + "»ØëÂ" + "»Ù" + "»Ùª¹Õºؤ¤Å" + "»Ùª¹ÕÂÇѵ¶Ø" + "»Ù´" + "»Ù¹" + "»ÙÁ" + "»Ùè" + "»ÙéÂÕé»ÙéÂÓ" + "»àdzÕ" + "»è¹" + "»èǧ" + "»èǹ" + "»èÇÂ" + "»èͧ" + "»èÒ" + "»èÒ¹" + "»èÒÂ" + "»èÒÇ" + "»éǹ" + "»éǹà»Õé¹" + "»éÍ" + "»éͧ" + "»éͧ¡Ñ¹" + "»é͹" + "»éÍÁ" + "»éÍÂ" + "»éÍá»é" + "»éÒ" + "»éÒ§" + "»éÒ¹" + "»éÒº" + "»éÒÂ" + "»éÓ" + "»êÍ¡¡Õé" + "»êÒº" + "»ëÍ" + "»ëÍÁ" + "»ëÒ" + "¼¡" + "¼¡Ò" + "¼¡ÒÂ" + "¼§" + "¼§¡" + "¼§Ð" + "¼§Ò´" + "¼¨§" + "¼¨" + "¼´" + "¼´Ø§" + "¼¹Ç¡" + "¼¹Çª" + "¼¹Ñ§" + "¼¹Ö¡" + "¼Á" + "¼Áºêͺ" + "¼Âͧ" + "¼ÃØÊÇÒ·" + "¼Å" + "¼ÅÐ" + "¼ÅÑ¡" + "¼ÅÑ´" + "¼ÅÑÇÐ" + "¼ÅÒ" + "¼ÅÒ¹ÔʧÊì" + "¼ÅÒ¼Å" + "¼ÅÒËÒÃ" + "¼ÅÔ" + "¼ÅÔµ" + "¼ÅÔµÀѳ±ì" + "¼ÅÕ¼ÅÒÁ" + "¼ÅÖ¡" + "¼ÅÖè§" + "¼ÅØ" + "¼Åا" + "¼ÅØ´" + "¼Åع" + "¼Åغ" + "¼ÅØÂ" + "¼ÅÙ" + "¼ÅçÍÂ" + "¼Ç¹" + "¼ÇÂ" + "¼ÇÒ" + "¼ÊÁ" + "¼ÊÒ¹" + "¼ÊÒÂ" + "¼Í¡" + "¼Í§" + "¼Í´" + "¼Íº" + "¼ÍÁ" + "¼ÍÇ´" + "¼ÍÙ¹" + "¼Ð" + "¼Ñ¡" + "¼Ñ§" + "¼Ñ´" + "¼Ñ¹" + "¼Ñ¹¼Ç¹" + "¼Ñº" + "¼ÑÇ" + "¼ÑÇÐ" + "¼Ò" + "¼Ò¡" + "¼Ò§" + "¼Ò³Ôµ" + "¼Ò´" + "¼ÒÂ" + "¼Ô" + "¼Ô§" + "¼Ô´" + "¼Ô¹" + "¼ÔÇ" + "¼Õ" + "¼Ö§" + "¼Öè§" + "¼Öé§" + "¼×¹" + "¼×è¹" + "¼Ø" + "¼Ø´" + "¼Ø¼§" + "¼Ù¡" + "¼Ùé" + "¼çÍÂ" + "¼èͧ" + "¼è͹" + "¼èÍÂ" + "¼èÒ" + "¼èÒ¹" + "¼èÒ¼ÍÁ" + "¼èÒÇ" + "¼éÒ" + "½¹" + "½ÃÑè§" + "½ÃÑè§àÈÊ" + "½ÍÂ" + "½Ñ¡" + "½Ñ§" + "½Ñ´" + "½Ñ¹" + "½Ñè§" + "½Ò" + "½Ò¡" + "½Ò§" + "½Ò´" + "½Ò¹" + "½ÒÂ" + "½Ôè¹" + "½Õ" + "½Ö¡" + "½×´" + "½×¹" + "½Øè¹" + "½Ù§" + "½èÍ" + "½èÒ" + "½èÒÂ" + "½éÒ" + "½éÒÂ" + "¾¡" + "¾§" + "¾§ÈÒÇ´ÒÃ" + "¾§Èì" + "¾¨¹Ò" + "¾¨¹Ò¹Ø¡ÃÁ" + "¾¨¹Òö" + "¾¨¹ÕÂì" + "¾¨¹ì" + "¾¨ÁÒ¹" + "¾¨Õ" + "¾Ò" + "¾ÒÅÍ" + "¾³Ôª" + "¾³ÔªÂì" + "¾´" + "¾¸Ù" + "¾¹Á" + "¾¹Ñ¡" + "¾¹Ñ¡§Ò¹" + "¾¹Ñ§" + "¾¹Ñ¹" + "¾¹ÑÊ" + "¾¹Ò" + "¾¹Ò´Ã" + "¾¹ÒÃÒÁ" + "¾¹ÒÅÑÂ" + "¾¹Ô´Ò" + "¾º" + "¾ÁèÒ" + "¾Â¹µì" + "¾ÂÈ" + "¾ÂÑ¡" + "¾ÂÑ¡¾àÂÔ´" + "¾ÂѤ¦Ò" + "¾ÂѤ¦Ô¹" + "¾ÂѤ¦Õ" + "¾ÂѤ¦ì" + "¾ÂѪ¹Ð" + "¾Âѵ" + "¾ÂѺ" + "¾Âҡóì" + "¾ÂÒ§¤ì" + "¾ÂÒ¸Ô" + "¾ÂÒ¹" + "¾ÂÒºÒ·" + "¾ÂÒºÒÅ" + "¾ÂÒÂÒÁ" + "¾ÂØ" + "¾Âا" + "¾ÂØËÂÒµÃÒ" + "¾ÂØËÐ" + "¾ÂØËàʹÒ" + "¾Ã" + "¾Ãµ" + "¾ÃÁ" + "¾ÃÃ" + "¾Ãä" + "¾Ãäì" + "¾Ãó" + "¾Ãó¹Ò" + "¾ÃÃÉ" + "¾ÃÃÉÒ" + "¾ÃÇ´" + "¾Ãǹ" + "¾ÃËÁ" + "¾ÃËÁ¨ÃÃÂì" + "¾ÃËÁ¨ÒÃÔ³Õ" + "¾ÃËÁ¨ÒÃÕ" + "¾ÃÍ´" + "¾ÃÐ" + "¾ÃÐÃÒªÇѧ" + "¾ÃÐͧ¤ì" + "¾ÃÐà¨éÒÍÂÙèËÑÇ" + "¾ÃÑ¡¾ÃéÍÁ" + "¾ÃÑ´" + "¾ÃÑè§" + "¾ÃÑè¹" + "¾ÃÒ¡" + "¾ÃÒ§" + "¾ÃÒ´" + "¾ÃÒ¹" + "¾ÃÒÂ" + "¾ÃÒÇ" + "¾ÃÒËÁ³ì" + "¾ÃÓ" + "¾ÃÔ¡" + "¾ÃÔ¹àµÍÃì" + "¾ÃÔº" + "¾ÃÔé§" + "¾ÃÔéÁ" + "¾ÃÕàÁÕÂÁ" + "¾ÃÕàÁÕÂÃì" + "¾ÃÖ§" + "¾ÃÖ¹" + "¾ÃÖº" + "¾Ã×´" + "¾ÃØ" + "¾ÃØ¡" + "¾Ãع" + "¾ÃØè§" + "¾ÃÙ" + "¾ÃÙ´" + "¾Ãèͧ" + "¾ÃèÍÁ¾ÃéÍ" + "¾ÃèÍÂ" + "¾ÃèÒ" + "¾ÃèÒ§" + "¾ÃèÓ" + "¾Ãéͧ" + "¾ÃéÍÁ" + "¾ÃéÍÁ¾ÃÑ¡" + "¾ÃéÍÂ" + "¾ÃéÒ" + "¾ÃéÓ" + "¾Ä¡ÉªÒµÔ" + "¾Ä¡É·Å" + "¾Ä¡ÉÃÒª" + "¾Ä¡ÉÈÒʵÃì" + "¾Ä¡ÉÒ" + "¾Ä¡Éà·Ç´Ò" + "¾Ä¡Éì" + "¾Ä²" + "¾Ä²Ò" + "¾Ä²Ò¨ÒÃÂì" + "¾Ä²Ô" + "¾Äµ" + "¾ÄµÔ" + "¾ÄµÔ¡ÃÃÁ" + "¾ÄµÔ¡Òóì" + "¾ÄµÔ¹ÑÂ" + "¾Ä·¸Ôì" + "¾Ä·¸ì" + "¾Ä¹µì" + "¾Ä¹·ì" + "¾ÄȨÔ" + "¾ÄȨԡÒ¹" + "¾ÄÉÀ" + "¾ÄÉÀÒ¤Á" + "¾ÄËÑÊ" + "¾ÄËÑʺ´Õ" + "¾Å" + "¾Å¡ÒÃ" + "¾Å¤ÇÒÁ" + "¾Åº" + "¾Åǧ" + "¾ÅÇѵ" + "¾ÅÈÖ¡ÉÒ" + "¾Åͧ" + "¾ÅÍ´" + "¾ÅÍÁá¾ÅÁ" + "¾ÅÍÂ" + "¾ÅÐ" + "¾Åѧ" + "¾Åѧ§Ò¹" + "¾ÅÑ´" + "¾Åѹ" + "¾ÅѺ" + "¾ÅѺ¾ÅÒ" + "¾ÅѺ¾ÅÖ§" + "¾ÅÑè¡" + "¾ÅÑè§" + "¾ÅÑèÇ" + "¾ÅÑé§" + "¾ÅÒ¡Ã" + "¾ÅÒ§" + "¾ÅÒ´" + "¾ÅÒ¸Ô¡ÒÃ" + "¾ÅÒ¹ÒÁÑÂ" + "¾ÅÒÁ" + "¾ÅÒÂ" + "¾ÅÒʵԡ" + "¾ÅÒÊÁÒ" + "¾ÅÒË¡" + "¾ÅÔ¡" + "¾ÅÔéÇ" + "¾ÅÕ" + "¾ÅØ" + "¾ÅØ¡" + "¾ÅØè¡" + "¾ÅØè§" + "¾ÅØéÂ" + "¾ÅÙ" + "¾ÅàÁ×ͧ" + "¾ÅàÃ×͹" + "¾ÅâÅ¡" + "¾ÅèÍÂ" + "¾ÅèÒ" + "¾ÅèÒ¹" + "¾ÅèÒÁ" + "¾ÅéÓ" + "¾Ç¡" + "¾Ç§" + "¾Ç¹" + "¾ÇÂ" + "¾Ê¡" + "¾ÊظÒ" + "¾ËÅ" + "¾ËÅâ¸Թ" + "¾ËØ" + "¾ËÙ" + "¾ËÙ¾¨¹ì" + "¾ËÙÊÙµ" + "¾Í" + "¾Í¡" + "¾Í§" + "¾Í·ÑÅ" + "¾ÍÃìµ" + "¾Ð" + "¾Ð¾Ô§" + "¾ÐÂÙ¹" + "¾ÐÃا¾ÐÃѧ" + "¾Ðǧ" + "¾ÐÇÑ¡¾Ðǹ" + "¾ÐÇéÒ¾ÐÇѧ" + "¾Ðͧ" + "¾ÐÍ×´¾ÐÍÁ" + "¾Ðà¹Õ§" + "¾Ðà¹éҾйÍ" + "¾ÐàÂÔº" + "¾ÐàÂÔº¾ÐÂÒº" + "¾Ðṧ" + "¾ÐâÅé" + "¾Ñ¡" + "¾Ñ¡µÃì" + "¾Ñ§" + "¾Ñ§§Ò" + "¾Ñ§¼×´" + "¾Ñ§¾ÇÂ" + "¾Ñ§¾Í¹" + "¾Ñ§¾Òº" + "¾Ñ§à¾Â" + "¾ÑªÃ" + "¾Ñ²¹Ð" + "¾Ñ²¹Ò" + "¾Ñ´" + "¾ÑµÃ" + "¾Ñ·¸ÊÕÁÒ" + "¾Ñ·ÂÒ" + "¾Ñ·Åا" + "¾Ñ¹" + "¾Ñ¹·Ò§" + "¾Ñ¹¸¡Ã³Õ" + "¾Ñ¹¸·Ô¾Âì" + "¾Ñ¹¸¹Ò¡ÒÃ" + "¾Ñ¹¸ºÑµÃ" + "¾Ñ¹¸ÁÔµÃ" + "¾Ñ¹¸Ð" + "¾Ñ¹¸Ø" + "¾Ñ¹¸Øì" + "¾Ñ¹¸ì" + "¾Ñº" + "¾ÑÅÅÀ" + "¾ÑÅÇѹ" + "¾ÑÇ" + "¾ÑÇÐ" + "¾ÑÈ´Õ" + "¾ÑÊ´Ø" + "¾ÑʵÃì" + "¾Ñʶҹ" + "¾Ò" + "¾Ò¡" + "¾Ò¡Âì" + "¾Ò§" + "¾Ò³" + "¾Ò³Ôª" + "¾Ò³ÔªÂì" + "¾Ò³Õ" + "¾Ò³Õ¹Õ" + "¾Ò´" + "¾Òµ" + "¾Ò·" + "¾Ò·Âì" + "¾Ò¸" + "¾Ò¸Ò" + "¾Ò¹" + "¾Ò¹Ã" + "¾ÒÁ" + "¾ÒÂ" + "¾ÒÂѾ" + "¾ÒÂØ" + "¾Òó" + "¾ÒÃÒ" + "¾ÒÃÒ¿Ô¹" + "¾ÒÃì" + "¾ÒÅ" + "¾ÒÅÕ" + "¾ÒÊ" + "¾ÒʹÒ" + "¾Òʹì" + "¾ÒÊØ¡ÃÕ" + "¾ÒÊàÇÔÃì´" + "¾Ò˹Ð" + "¾ÒËÐ" + "¾ÒËÒ" + "¾ÒËØ" + "¾ÒËØÃÑ´" + "¾ÒÌËÐ" + "¾Òà¹Å" + "¾ÒàËô" + "¾ÒàËÕÂÃ" + "¾ÒâÅ" + "¾Ó" + "¾Ó¹Ñ¡" + "¾Ô¡Å" + "¾Ô¡Ñ´" + "¾Ô¡ÑµÔ" + "¾Ô¡ÒÃ" + "¾Ô¡ØÅ" + "¾Ô¦Òµ" + "¾Ô¦à¹È" + "¾Ô§" + "¾Ô¨ÒóÒ" + "¾Ô¨Òóì" + "¾Ô¨ÔµÃ" + "¾ÔªÑÂ" + "¾ÔªÒ¹" + "¾ÔªÔµ" + "¾Ô««èÒ" + "¾Ô³" + "¾Ô¶Õ¾Ô¶Ñ¹" + "¾Ô·ÂÒ" + "¾Ô·Ñ¡Éì" + "¾Ô¸Ò¹" + "¾Ô¸Õ" + "¾Ô¹·Ø" + "¾Ô¹Íº¾Ôà·Ò" + "¾Ô¹ÑÂ" + "¾Ô¹ÒÈ" + "¾Ô¹Ô¨" + "¾Ô¹Ôµ" + "¾Ô¹ÔÈ" + "¾ÔºÑµÔ" + "¾ÔºÙÅ" + "¾Ô¾Áì" + "¾Ô¾Ñ¡¾Ô¾èǹ" + "¾Ô¾Ñ²¹ì" + "¾Ô¾Ò¡ÉÒ" + "¾Ô¾Ò¡Éì" + "¾Ô¾Ò·" + "¾Ô¾Ô¸" + "¾Ô¾Ô¸Àѳ±Ê¶Ò¹" + "¾Ô¾Ô¸Àѳ±ì" + "¾ÔÀ¾" + "¾ÔÁ¾ì" + "¾ÔÁÅ" + "¾ÔÁÒ¹" + "¾ÔÁØ¢" + "¾ÔÁàʹ" + "¾ÔÃÍ´" + "¾ÔÃÒº" + "¾ÔÃÒÅÑÂ" + "¾ÔÃÕé¾ÔäÃ" + "¾ÔÃس" + "¾ÔÃظ" + "¾ÔÅÒ»" + "¾ÔÅÒÊ" + "¾ÔÅÖ¡" + "¾ÔÅÖ¡¡Ö¡¡×Í" + "¾ÔÅÖ¡¾ÔÅÑè¹" + "¾ÔÈ" + "¾ÔÈǧ" + "¾ÔÈÇÒÊ" + "¾ÔÈÒÅ" + "¾ÔÈØ·¸Ôì" + "¾ÔÈØ·¸ì" + "¾ÔÉ" + "¾ÔɳØâÅ¡" + "¾ÔÉʧ" + "¾ÔÊ´ÒÃ" + "¾ÔÊÁÑÂ" + "¾ÔÊÑÂ" + "¾ÔÊÔ°" + "¾ÔÊØ·¸Ôì" + "¾ÔÊÙ¨¹ì" + "¾ÔËÒÃ" + "¾ÔÌÒÃ" + "¾Ôà¤ÃÒÐËì" + "¾ÔàÈÉ" + "¾Ô⡾Ôࡹ" + "¾Ôâ¤" + "¾Ôâø" + "¾ÔäÃ" + "¾ÔäÅ" + "¾Õ" + "¾Õª¤³Ôµ" + "¾Õ«Õ" + "¾ÕÃÐÁÔ´" + "¾Õè" + "¾Õé" + "¾Ö§" + "¾ÖÁ" + "¾ÖÁ¾Ó" + "¾Öè§" + "¾Öèº" + "¾×ª" + "¾×´" + "¾×é¹" + "¾×é¹·Õè" + "¾Ø" + "¾Ø¡" + "¾Ø§" + "¾Ø²" + "¾Ø²Ô" + "¾Ø´" + "¾Ø·¸" + "¾Ø·¸Ð" + "¾Ø·¸ÒÇÒÊ" + "¾Ø·¸Ô" + "¾Ø·ÃÒ" + "¾Ø·â¸è" + "¾Ø¸" + "¾Øè§" + "¾ØèÁ" + "¾ØéÂ" + "¾Ù" + "¾Ù´" + "¾Ù¹" + "¾Ùè" + "¾Ùé¹" + "¾à¹¨Ã" + "¾è¹" + "¾èǧ" + "¾èÍ" + "¾èÒ§" + "¾èÒ¹" + "¾èÒÂ" + "¾èÒËì" + "¾é¹" + "¾éÍ" + "¾éͧ" + "¾éÍÁ" + "¿¡" + "¿ÃÍ´ì" + "¿ÃÕ" + "¿ÅÍàù«ì" + "¿ÅÙÍÍÃÕ¹" + "¿Í¡" + "¿Í§" + "¿Í´" + "¿Í¹" + "¿Í¹µì" + "¿ÍÃìÁ" + "¿ÍÃìÁÒÅ´Õäδì" + "¿ÍÃìÁÒÅÔ¹" + "¿ÍÃìáÁµ" + "¿ÍÊ«ÔÅ" + "¿ÍÊ¿ÍÃÑÊ" + "¿ÍÊ࿵" + "¿Ñ¡" + "¿Ñ§" + "¿Ñ§¡ìªÑ¹" + "¿Ñ§¡ìªÑè¹" + "¿Ñ´" + "¿Ñ¹" + "¿Ñè¹" + "¿Ñé¹" + "¿Ò¡" + "¿Ò§" + "¿Ò´" + "¿Ò·ÍÁ" + "¿Ò¹" + "¿ÒÂ" + "¿ÒÃìÁ" + "¿ÒÊ«Ôʵì" + "¿Ô¡" + "¿Ô´" + "¿Ô¹áŹ´ì" + "¿Ôº" + "¿ÔÅ´ì" + "¿ÔÅÔ»»Ô¹Êì" + "¿ÔÅìÁ" + "¿ÔÇÊì" + "¿ÔÊÔ¡Êì" + "¿Õ¿èÒ" + "¿Õè" + "¿Õé" + "¿×¹" + "¿×Á" + "¿×é¹" + "¿Ø" + "¿Øµ" + "¿ØµºÍÅ" + "¿Ø¹" + "¿Øº" + "¿Ø¿Ð" + "¿ØÅÊá¡ê»" + "¿Øèº" + "¿ØèÁà¿×ÍÂ" + "¿Øé§" + "¿Ù" + "¿Ù¡" + "¿Ù¨Ô" + "¿Ù´" + "¿ÙÁ" + "¿ÙÁ¿ÒÂ" + "¿Ùè" + "¿èÍ" + "¿èͧ" + "¿è͹" + "¿èÒ§" + "¿èÒÁ" + "¿éÍ" + "¿éͧ" + "¿é͹" + "¿éÒ" + "À¤¹Õ" + "À¾" + "ÀÁÃ" + "ÀÂѹµÃÒÂ" + "Àõ" + "ÀÃÃ" + "ÀÃÃÂÒ" + "ÀÃÒ´Ã" + "ÀÃÔÂÒ" + "ÀǵѳËÒ" + "ÀÇѧ¤ì" + "ÀÑ¡´Õ" + "ÀÑ¡ÉÒ" + "ÀÑ¡ÉÒËÒÃ" + "Àѳ±ì" + "ÀѵµÒ¤ÒÃ" + "ÀѵµÒËÒÃ" + "ÀÑ·Ã" + "ÀѾ" + "ÀÑÂ" + "ÀÑÊ´Ò" + "ÀÑʵÃÒ" + "ÀÒ¤" + "ÀÒ¤Õ" + "ÀÒª¹Ð" + "ÀÒ³Ø" + "ÀÒ¾" + "ÀҾ¹µÃì" + "ÀÒÂ" + "ÀÒÃ" + "ÀÒáԨ" + "ÀÒôÕ" + "ÀÒõ" + "ÀÒÃÐ" + "ÀÒÃÒ" + "ÀÒÃâç" + "ÀÒǹÒ" + "ÀÒÇÐ" + "ÀÒÉ" + "ÀÒÉ¡" + "ÀÒɳì" + "ÀÒÉÒ" + "ÀÒÉÔµ" + "ÀÒÉÕ" + "ÀÒÊ¡Ã" + "ÀÒʹì" + "ÀÒÊÇÃ" + "ÀÔ¡¢Ò" + "ÀÔ¡¢Ò¨ÒÃ" + "ÀÔ¡¢Ø" + "ÀÔ¡¢Ø¹Õ" + "ÀÔ¡ÉÒ" + "ÀÔ¡ÉØ" + "ÀÔ¡ÉسÕ" + "ÀÔ§¤ÒÃ" + "ÀÔâ" + "ÀÔ¹·¹Ò¡ÒÃ" + "ÀÔ¹·ì" + "ÀÔÃÁÂì" + "Àت" + "Àت§¤ì" + "ÀØÁÃÒ" + "ÀØÁÃÔ¹" + "ÀØÁÃÕ" + "ÀÙ" + "ÀÙµ" + "ÀÙµÔ" + "ÀÙÁÔ" + "ÀÙÁÔ»ÃÐà·È" + "ÀÙÁÔÀÒ¤" + "ÀÙÁÔÅÓà¹Ò" + "ÀÙÁÔÈÒʵÃì" + "ÀÙÁÕ" + "ÀÙÃÔ" + "ÀÙÃÕ" + "ÀÙÇ´Å" + "ÀÙǹҶ" + "ÀÙÇ๵Ã" + "ÀÙÇä¹Â" + "ÀÙÉÒ" + "ÀÙÉÔµ" + "ÀÙà¡çµ" + "ÀÙè" + "Á¡" + "Á¡Ã" + "Á¡ÃÒ¤Á" + "Á¡Ø®" + "Á¡ØÅ" + "Á§¡Ø®" + "Á§¤Å" + "Á³±¡" + "Á³±»" + "Á³±Å" + "Á³Õ" + "Á³à±ÕÂÃ" + "Á´" + "ÁµÔ" + "Á¸Ø" + "Á¹" + "Á¹µÃÕ" + "Á¹µÃì" + "Á¹µì" + "Á¹ÊÔ¡ÒÃ" + "Á¹ÑÊ" + "Á¹ÑÊÇÕ" + "Á¹ÔÅÒ" + "Á¹ØɪҵÔ" + "Á¹ØɸÃÃÁ" + "Á¹ØÉÂÈÒʵÃì" + "Á¹ØÉÂÊÑÁ¾Ñ¹¸ì" + "Á¹ØÉÂà·¾" + "Á¹ØÉÂâÅ¡" + "Á¹ØÉÂì" + "Á¹à·ÕÂÃ" + "ÁÂØÃÒ" + "ÁÂØÃÕ" + "ÁÂØàÃÈ" + "ÁÂÙÃ" + "ÁÃ" + "Ááµ" + "ÁóÐ" + "Áóì" + "Áô¡" + "ÁÃä" + "ÁÃä¹Ò¡" + "ÁÃäÒ" + "ÁÃÃÂÒ" + "ÁÃÃÂÒ·" + "ÁÃÊØÁ" + "ÁĤ" + "ÁĵÂÙ" + "ÁÅ" + "ÁÅ·Ô¹" + "ÁÅÒÂ" + "ÁÅÒÂÙ" + "ÁÅéÒ§" + "Áǹ" + "ÁÇÂ" + "ÁÇÅ" + "ÁË¡ÃÃÁ" + "ÁËó¾" + "ÁËÃó¾" + "ÁËÃʾ" + "ÁËѹµâ·É" + "ÁËѹµì" + "ÁËÑȨÃÃÂì" + "ÁËÒ" + "ÁËÒª¹" + "ÁËÒ´àÅç¡" + "ÁËÒ´ä·Â" + "ÁËÒµÁÐ" + "ÁËÒÂÒ¹" + "ÁËÒÃÒª" + "ÁËÒÇÔ·ÂÒÅÑÂ" + "ÁËÒÈÒÅ" + "ÁËÒÊÁØ·Ã" + "ÁËÒËÔ§¤Øì" + "ÁËÔ§Êì" + "ÁËÔ´Å" + "ÁËÔÁÒ" + "ÁËÖÁÒ" + "ÁÍ" + "Áͧ" + "Áͧâ¡ÅÍ´ì" + "ÁÍ" + "ÁÍ´" + "Á͹ÔàµÍÃì" + "Áͺ" + "ÁÍÁ" + "ÁÍÁáÁÁ" + "ÁÍÃͤâ¤" + "ÁÍÃì¿Õ¹" + "ÁÍÅâ·Ê" + "ÁÍÊâ¤Çì" + "ÁÍàµÍÃì" + "ÁÐ" + "ÁСÃÙ´" + "ÁС͡" + "ÁСÐâùÕ" + "ÁТÇÔ´" + "ÁТÒÁ" + "ÁТèǧ" + "ÁФèÒ" + "ÁЧÑèÇ" + "ÁЧØÁÁЧÒËÃÒ" + "ÁЫҧ" + "Áдѹ" + "ÁекÐ" + "ÁеÖè§" + "ÁеÙÁ" + "Áеéͧ" + "ÁйÒÇ" + "ÁлÃÒ§" + "ÁоÃéÒÇ" + "ÁоÅѺ" + "Áоٴ" + "ÁÐÁèǧ" + "ÁÐÂÁ" + "ÁÐÃÐ" + "ÁÐÃ×¹" + "ÁÐÅСÍ" + "ÁÐÅÔ" + "ÁÐËÐËÁÑ´" + "ÁÐÎÍ¡¡Ò¹Õ" + "ÁÐà¡Å×Í" + "ÁÐà¢×Í" + "ÁÐà´×èÍ" + "ÁÐà¿×ͧ" + "ÁÐàÃç§" + "ÁÐàÊç§" + "ÁÐáÁ" + "ÁÐâç" + "ÁÐä¿" + "ÁÑ¡" + "ÁÑ¡¡ÐÊѹ" + "ÁѤ¤Øà·È¡ì" + "ÁѤ¹Ò¡" + "ÁѦÇÒ¹" + "Áѧ¡Ã" + "Áѧ¤Ø´" + "Áѧ¤èÒ" + "ÁѨ¨Ø" + "ÁѨ©Ò" + "ÁѪ¬ÔÁÂÒÁ" + "ÁѪ¬ÔÁÇÑÂ" + "ÁѪ¬ÔÁÒ" + "Áѳ±¹ÈÔÅ»ì" + "Áѳ±¹Ò" + "ÁÑ´" + "ÁѵÊÂÒ" + "ÁÑ·¹Ð" + "ÁÑ·¹ÕÂÐ" + "ÁÑ·ÂÐ" + "ÁѸ°ҹ" + "ÁѸÂÁ" + "ÁѸÂÑʶì" + "Áѹ" + "ÁѺ" + "ÁÑÁÁÕè" + "ÁÑÂ" + "ÁÑŵÔ" + "ÁÑÅÅÔ¡Ò" + "ÁÑÇ" + "ÁÑÈÂÒ" + "ÁÑʵÒÃì´" + "ÁÑÊÁÑè¹" + "ÁÑÊÂÔ´" + "ÁÑÊÅÔ¹" + "ÁÑè§" + "ÁÑè¹" + "ÁÑèÇ" + "ÁÒ" + "ÁÒ¡" + "ÁÒ¡¡ÇèÒ" + "ÁÒ¦ºÙªÒ" + "ÁÒ¦Ð" + "ÁÒ³¾" + "ÁÒ³ÇÔ¡Ò" + "ÁÒ´" + "ÁÒµÃ" + "ÁҵáÒÃ" + "Áҵðҹ" + "ÁÒµÃÒ" + "ÁÒµØ" + "ÁÒµØÅÒ" + "ÁÒ¹" + "ÁÒ¹¾" + "ÁÒ¹Ð" + "ÁÒ¹Ôµ" + "ÁÒ¹Õ" + "ÁÒ¹ØÉ" + "ÁÒ¹ØÉÂÇÔ·ÂÒ" + "ÁÒºµÒ¾Ø´" + "ÁÒÂ" + "ÁÒÂÒ" + "ÁÒÂÒÇÕ" + "ÁÒÃ" + "ÁÒä" + "ÁÒôÃ" + "ÁÒôÒ" + "ÁÒÃÂÒ" + "ÁÒÃÂÒ·" + "ÁÒÃÈÃÕ" + "ÁÒÃص" + "ÁÒÅÑÂ" + "ÁÒÅÒàÃÕÂ" + "ÁÒÅÕ" + "ÁÒÈ" + "ÁÒÊ" + "ÁÒÊàµÍÃì" + "ÁÒàÅà«ÕÂ" + "ÁÒâ¤Ã" + "ÁÒ⹪ì" + "ÁÓàÅ×ͧ" + "ÁÔ" + "ÁÔ¤ÊÑÕ" + "ÁÔ¨©Ò" + "ÁÔ´" + "ÁÔµÃ" + "ÁÔµÔ" + "ÁԶعÒ¹" + "ÁÔÂѹÁèÒ" + "ÁÔÅÅÔ¡ÃÑÁ" + "ÁÔÅÅÔºÒÃì" + "ÁÔÅÅÔÅÔµÃ" + "ÁÔÅÅÔàÁµÃ" + "ÁÔÅÒµ" + "ÁÔÇÊÔ¤" + "ÁÔÊ" + "ÁÔÊ«Ò" + "ÁÔÊàµÍÃì" + "ÁÔàµÍÃì" + "ÁÔè§" + "ÁÔéÁ" + "ÁÕ" + "ÁÕ´" + "ÁÕ¹" + "ÁÕ¹Ò¤Á" + "ÁÕà·¹" + "ÁÕè" + "ÁÕèÊÑéÇ" + "ÁÖ§" + "ÁÖ¹" + "Á×´" + "Á×¹" + "Á×Í" + "Á×è¹" + "Á×éÍ" + "ÁØ" + "ÁØ¡" + "ÁØ¡´Ò" + "ÁØ¡´ÒËÒÃ" + "ÁØ¢" + "Áا" + "ÁبÅÔ¹·ì" + "ÁØ´" + "Áص¡Ô´" + "ÁØ·ÔµÒ" + "ÁØ·Ø" + "ÁعԹ·Ãì" + "ÁعÕ" + "Áغ" + "ÁغÁÔº" + "ÁØÁ" + "ÁØÊÅÔÁ" + "ÁØÊÒ" + "ÁØè§" + "ÁØè¹" + "ÁØèÂ" + "ÁØé§" + "ÁÙ¡" + "ÁÙµÃ" + "ÁÙ¹" + "ÁÙÁÁÒÁ" + "ÁÙÅ" + "ÁÙŤèÒ" + "ÁÙÅ°Ò¹" + "ÁÙŹԸÔ" + "ÁÙà«Í" + "ÁÙè·Ùè" + "ÁÙèÅÕè" + "ÁàËÈÇÃ" + "ÁàËÊÕ" + "ÁàËÒÌÒÃ" + "Áâ¹" + "Áâ¹ÃÒËì" + "Áâ¹ÊÒàÃè" + "ÁâËÃʾ" + "ÁâËÃз֡" + "ÁâËÃÕ" + "ÁâËÌÒÃ" + "Áèǧ" + "Áèǹ" + "Áè͵éÍ" + "ÁèÍÂ" + "ÁèÍÎèÍÁ" + "ÁèÒ¹" + "ÁèÒÂ" + "Áéǹ" + "ÁéÇÂ" + "ÁéÒ" + "ÁéÒ¹" + "ÁéÒÁ" + "¡" + "¡Âèͧ" + "§" + "§âÂè" + "µÔ" + "¶ҡÃÃÁ" + "¹µÃì" + "¹µì" + "ÂÁ" + "ÂÁ¡" + "ÂÃç" + "ÂÅ" + "Âǧ" + "ÂÇ´" + "Âǹ" + "ÂǺ" + "ÂÈ" + "ÂÍ" + "ÂÍ¡" + "Âͧ" + "ÂÍ´" + "Â͹" + "Âͺ" + "ÂÍÁ" + "ÂÐ" + "ÂÑ¡" + "ÂÑ¡¢Ô¹Õ" + "ÂÑ¡¢ì" + "ÂÑ¡ÂÍ¡" + "ÂÑ¡ÉÔ³Õ" + "ÂÑ¡ÉÕ" + "ÂÑ¡Éì" + "Âѧ" + "ÂÑ´" + "ÂÑ´àÂÕ´" + "Âѹ" + "ÂѹµÃ¡ÃÃÁ" + "ÂѹµÃì" + "Âѹµì" + "ÂѺ" + "ÂÑè§Â×¹" + "ÂÑè¹" + "ÂÑèÇ" + "ÂÑé§" + "ÂÑéÇ" + "ÂÑéÇàÂÕéÂ" + "ÂÒ" + "ÂÒ¡" + "ÂÒ§" + "ÂÒ¨¡" + "ÂÒ´" + "ÂÒ´Ò" + "ÂÒµÃ" + "ÂÒµÃÒ" + "ÂÒ¹" + "ÂÒ¹Õ" + "ÂÒº" + "ÂÒºéÒ" + "ÂÒÁ" + "ÂÒÂ" + "ÂÒÇ" + "ÂÓ" + "ÂÔ¡" + "ÂÔ§" + "ÂÔ¹" + "ÂÔº" + "ÂÔ»«ÑÁ" + "ÂÔ»«Õ" + "ÂÔÁ¹Òʵԡ" + "ÂÔÇ" + "ÂÔËÇÒ" + "ÂÔè§" + "ÂÔéÁ" + "ÂÕ" + "ÂÕ¹" + "ÂÕÃÒ¿" + "ÂÕè" + "ÂÕèÊ¡" + "ÂÕèʧ" + "ÂÕèÊØè¹" + "ÂÕèÊèÒ¹" + "ÂÕèËÃÐ" + "ÂÕèËÃèÒ" + "ÂÕèËéÍ" + "ÂÖ¡Â×Í" + "ÂÖ´" + "Â×´" + "Â×¹" + "Â×Á" + "Â×è¹" + "Â×éÍ" + "ÂØ" + "ÂØ¡µì" + "Âؤ" + "ÂؤÅ" + "Âا" + "ÂØ´" + "ÂصÔ" + "ÂصԸÃÃÁ" + "ÂØ·¸" + "ÂØ·¸¡ÒÃ" + "ÂØ·¸¹Ò" + "ÂØ·¸ì" + "Âط⸻¡Ã³ì" + "Âغ" + "Âؾ´Õ" + "Âؾ§" + "ÂؾÃÒª" + "ÂؾàÂÒÇì" + "ÂؾàÃÈ" + "ÂØÃÂÒµÃ" + "ÂØǪ¹" + "ÂØâû" + "ÂØè§" + "ÂØèÁÂèÒÁ" + "ÂØèÂ" + "ÂØé§" + "ÂØéÂ" + "ÂÙ§" + "ÂÙ¹Ô¡«ì" + "ÂÙÃÂÒµÃ" + "ÂÙÃÔ¡" + "ÂÙÊà«ÍÃì" + "ÂÙàùÑÊ" + "ÂÙàÃà¹ÕÂÁ" + "ÂÙâ¡ÊÅÒàÇÕÂ" + "ÂÙâ´" + "ÂÙâÃ" + "ÂÙè" + "ÂâÊ" + "Âè¹" + "ÂèÍ" + "Âèͧ" + "ÂèÍÁ" + "ÂèÍÂ" + "ÂèÐ" + "ÂèÒ" + "ÂèÒ§" + "ÂèÒ¹" + "ÂèÒÁ" + "ÂèÓ" + "ÂéÇÂ" + "Âé͹" + "ÂéÍÁ" + "ÂéÍÂ" + "ÂéÒÂ" + "ÂéÓ" + "á" + "ç" + "ç¤Çѵ¶Ø" + "ç¤ì" + "è¹Ò" + "èԵ" + "èàè" + "èàÅ¢" + "ó" + "óѰ" + "ô" + "ôÕ" + "õÐ" + "õÔ" + "ö" + "öàÁÅì" + "ù" + "ú" + "þ" + "þÕ" + "ÃÁ" + "ÃÁ³Õ" + "ÃÁ³ÕÂì" + "ÃÁÂì" + "ÃÂÒ§¤ì" + "ÃÇ¡" + "Ãǧ" + "ÃÇ´" + "Ãǹ" + "ÃǹàÃ" + "ÃǺ" + "ÃÇÁ" + "ÃÇÂ" + "ÃÇÔ" + "ÃÇÕ" + "ÃȹÒ" + "ÃÊ" + "ÃʹÒ" + "ÃÊÒ¹àÇ·" + "ÃÊÔ¡" + "ÃËÑÊ" + "ÃËÔµ" + "ÃÍ" + "ÃÍ¡" + "Ãͧ" + "Ãͧà§ç§" + "ÃÍ´" + "Ã͹" + "Ãͺ" + "Ãͺ¤Íº" + "ÃÍÁ" + "ÃÍÂ" + "ÃÐ" + "ÃСÓ" + "ÃФ¹" + "ÃФÒÂ" + "ÃЦѧ" + "ÃЧÁ" + "ÃЧѺ" + "ÃдÁ" + "ÃдѺ" + "ÃдÙ" + "Ãз´" + "ÃзÁ" + "ÃзÇÂ" + "Ãз֡" + "ÃйҴ" + "ÃйҺ" + "ÃйÒÇ" + "Ãкº" + "ÃкÁ" + "Ãкͺ" + "ÃкѺ" + "ÃкÒ" + "ÃкҴ" + "ÃкÒÂ" + "ÃкÓ" + "ÃкÔÅ" + "Ãк×Í" + "ÃкØ" + "ÃÐÂÐ" + "ÃÐÂѺ" + "ÃÐÂÓ" + "ÃÐÂÔº" + "ÃÐÂéÒ" + "ÃÐÃÔ¡" + "ÃÐÅÍ¡" + "ÃÐÅÖ¡" + "ÃÐÇѧ" + "ÃÐÇÒ§" + "ÃÐËÇèÒ§" + "ÃÐËØÂ" + "ÃÐÍÒ" + "ÃÐÍØ" + "ÃÐ๹" + "ÃÐà¹ÃйҴ" + "ÃÐà¹Õ´" + "ÃÐàºÔ´" + "ÃÐàºÕ§" + "ÃÐàºÕ¹" + "ÃÐàºÕº" + "ÃÐàºç§" + "ÃÐàÁÕÂÃ" + "ÃÐàËÂ" + "ÃÐàËÔ´" + "ÃÐàËç¨" + "ÃÐá¤Ð" + "ÃÐá§é" + "ÃÐṧ" + "ÃÐáǧ" + "ÃÑ¡" + "ÃÑ¡¢ì" + "ÃÑ¡ºÕé" + "ÃÑ¡ÉÒ" + "ÃÑ¡Éì" + "ÃÑ¡áÃé" + "Ãѧ" + "ÃѧÊÔµ" + "ÃѧÊÕ" + "Ãѧá¡" + "Ãѧá¤" + "ÃѨ©Ò" + "ÃѪ" + "ÃѪ®ÒÀÔàÉ¡" + "ÃѪ´ÒÀÔàÉ¡" + "ÃѪ¹Õ" + "ÃѨǹ" + "ÃÑ°" + "ÃÑ°ºÒÅ" + "ÃÑ°ºØÃØÉ" + "ÃÑ°»ÃÐÈÒʹÈÒʵÃì" + "ÃÑ°»ÃÐËÒÃ" + "ÃÑ°Á¹µÃÕ" + "ÃÑ°ÇÔÊÒË¡Ô¨" + "ÃÑ°ÈÒʵÃì" + "ÃÑ°ÊÀÒ" + "ÃÑ´" + "Ãѵ" + "ÃѵµÔ" + "Ãѵ¹" + "Ãѵ¹µÃÑÂ" + "Ãѵ¹ºÑÅÅѧ¡ì" + "Ãѵ¹Ð" + "Ãѵ¹Ò" + "Ãѵ¹â¡ÊÔ¹·Ãì" + "Ãѵ¹ì" + "ÃѶÂÒ" + "Ãѹ" + "Ãѹ·´" + "ÃѺ" + "ÃѺÃͧ" + "ÃÑÁÀÒ" + "ÃÑÁÁÕè" + "ÃÑÇ" + "ÃÑÈÁÔÁѵ" + "ÃÑÈÁÔÁÒ¹" + "ÃÑÈÁÕ" + "ÃÑɮҡÃ" + "ÃÑÊà«ÕÂ" + "ÃÑèÇ" + "ÃÑé§" + "ÃÑé¹" + "ÃÑéÇ" + "ÃÒ" + "ÃÒ¡" + "ÃÒ¡ÉÊ" + "ÃÒ¤Ð" + "ÃÒ¤Ò" + "ÃÒ¤Ô¹" + "ÃÒ¤Õ" + "ÃÒ§" + "ÃÒ§ªÒ§" + "ÃÒ§ÇÑÅ" + "ÃÒª" + "ÃÒª¡ÒÃ" + "ÃÒª¹Ô¡ØÅ" + "ÃÒªºÑ³±ÔµÂʶҹ" + "ÃÒªÂì" + "ÃҪǧÈì" + "ÃÒªÇâç¡ÒÃ" + "ÃÒªÊÕÁÒ" + "ÃÒªÊÕËì" + "ÃҪѹÂì" + "ÃÒªÒ" + "ÃÒªÒ¸ÔÃÒª" + "ÃÒªÒÀÔàÉ¡" + "ÃÒªÒÇ´Õ" + "ÃÒªÔ¹Ô¡ØÅ" + "ÃÒªÔ¹Õ" + "ÃÒªÔ¹Ù»¶ÑÁÀì" + "ÃÒªÙ»¶ÑÁÀì" + "ÃÒªÙ»âÀ¤" + "ÃÒ" + "ÃÒ´" + "ÃÒµ" + "ÃÒµÃ" + "ÃÒµÃÕ" + "ÃÒ¹" + "ÃÒº" + "ÃÒ¾³ÒÊÙÃ" + "ÃÒÁ" + "ÃÒÁ¤Óá˧" + "ÃÒÁÊÙÃ" + "ÃÒÁÑ" + "ÃÒÁÒ" + "ÃÒÁÒ¸Ôº´Õ" + "ÃÒÁà¡ÕÂõÔì" + "ÃÒÂ" + "ÃÒ¡ÒÃ" + "ÃÒ§ҹ" + "ÃÒÇ" + "ÃÒÇÕ" + "ÃÒÈÕ" + "ÃÒÉ®Ã" + "ÃÒÉ®Ãì" + "ÃÒËÙ" + "ÃÒહ·Ãì" + "ÃÒ⪺ÒÂ" + "ÃÒâªÇÒ·" + "ÃÓ" + "ÃÓ¤Ò" + "ÃӨǹ" + "ÃӾѹ" + "ÃÓ¾Ö§" + "ÃÓÁйÒ" + "ÃÓÅÖ¡" + "ÃÓà¾Â" + "ÃÔ" + "ÃÔ¡" + "ÃÔ´Êմǧ" + "ÃÔ¹" + "ÃÔº" + "ÃÔººÔé¹" + "ÃÔÁ" + "ÃÔÉÂÒ" + "ÃÔé¹" + "ÃÔéÇ" + "ÃÕ" + "ÃÕ¨ÔÊ·ÃÕ" + "ÃÕ´" + "ÃÕµ" + "ÃÕº" + "ÃÕÁ" + "ÃÕÇÔÇ" + "ÃÕàÊÔÃìª" + "ÃÕàÊÔÃì«" + "ÃÕâÁµ" + "ÃÕè" + "ÃÕé" + "ÃÖ§" + "ÃÖé§" + "Ã×è¹" + "Ã×éÍ" + "ÃØ" + "ÃØ¡" + "ÃØ¡¢¡Ð" + "ÃØ¡¢ªÒµÔ" + "ÃØ¡¢ÁÙÅ" + "ÃØ¡¢à·Ç´Ò" + "ÃØ¡¢ì" + "ÃاÃѧ" + "ÃبÔ" + "ÃبÕ" + "ÃØ´" + "Ãص" + "ÃØ·¸ì" + "ÃØ·Ã" + "Ãع" + "Ãعáç" + "ÃغÃÙè" + "ÃØÁ" + "ÃØɯì" + "ÃØÊâ«" + "ÃØè§" + "ÃØè¹" + "ÃØèÁ" + "ÃØèÁÃèÒÁ" + "ÃØèÂ" + "ÃØé§" + "ÃÙ" + "ÃÙ´" + "ÃÙ»" + "ÃÙÁÒà¹ÕÂ" + "ÃÙÊà«ÕÂ" + "ÃÙàÁà¹ÕÂ" + "ÃÙàÅçµµì" + "ÃÙè" + "ÃÙé" + "ÃÙé¨Ñ¡" + "ÃâË" + "Ãè¹" + "ÃèÁ" + "Ãèǧ" + "Ãèǹ" + "ÃèÇÁ" + "ÃèÍ" + "Ãèͧ" + "Ãè͹" + "ÃèÍÂ" + "ÃèÒ" + "ÃèÒ§" + "ÃèÒ¹" + "ÃèÒÂ" + "ÃèÓ" + "ÃèÓÃÇÂ" + "Ãé¹" + "Ãéͧ" + "Ãé͹" + "ÃéÍÂ" + "ÃéÒ" + "ÃéÒ§" + "ÃéÒ¹" + "ÃéÒÂ" + "ÃéÒÇ" + "Ä¡Éì" + "ĪÒ" + "ĪØ" + "ij" + "Ä´Õ" + "Ä´Ù" + "ĵ" + "Ä·¸Ò" + "Ä·¸Ôì" + "Ä·ÑÂ" + "ÄÉÀ" + "ÄÉÕ" + "Äå" + "ŧ" + "Å´" + "Å´Ò" + "Å´ÒÇÑÅÂì" + "Ź" + "ź" + "žºØÃÕ" + "ÅÁ" + "ÅŹÒ" + "ÅÅÒ¯" + "ÅÅÔµ" + "ÅÇ¡" + "Åǧ" + "ÅÇ´" + "ÅǹÅÒÁ" + "ÅǹÐ" + "ÅÇÐ" + "ÅËØ" + "ÅÍ¡" + "ÅÍ¡ÒÃÔ·ÖÁ" + "Åͧ" + "Åͧ¡Í§" + "Åͧ¨Ô¨Ù´" + "ÅÍ´" + "Å͵àµÍÃÕè" + "Å͹" + "Å͹´Í¹" + "Åͺ" + "ÅÍÁ" + "ÅÍÂ" + "ÅÍÍ" + "ÅÐ" + "ÅФÃ" + "ÅеԨٴ" + "ÅеԹ" + "ÅкѴ" + "ÅÐÁÑè§" + "ÅÐÁع" + "ÅÐÁèÍÁ" + "ÅÐÁéÒÂ" + "ÅÐÅÇÂ" + "ÅÐËÁÒ´" + "ÅÐËÒ¹" + "ÅÐËØè§" + "ÅÐÍͧ" + "ÅÐÍÒÂ" + "ÅÐàÁÍ" + "ÅÐàÁÒÐ" + "ÅÐàÁÔ´" + "ÅÐàÁÕ´" + "ÅÐàŧ" + "ÅÐàÅÔ§" + "ÅÐàÅÕ´" + "ÅÐàǧ" + "ÅÐàËÕèÂ" + "ÅÐàÍÕ´" + "ÅÐáÇ¡" + "ÅÐâÁº" + "ÅÐâÇé" + "ÅÐäÁ" + "ÅÑ¡" + "ÅÑ¡¢³Ð" + "ÅѡɳÐ" + "ÅÑ¡ÉÁÕ" + "ÅѤ¤Ð" + "ÅѤ¹Ò" + "ÅѤ¹ì" + "Åѧ" + "ÅѧàÅ" + "ÅѪªÒ" + "ÅѪªÕ" + "ÅѨ¡Ã" + "ÅѨ¹ì" + "ÅÑ©" + "ÅÑ©¡Ã" + "ÅÑ©¹ì" + "ÅÑ´" + "ÅÑ´Ò" + "ÅÑ·¸Ô" + "ÅÑ·¸ì" + "Åѹ" + "ÅѺ" + "ÅѾ¸ì" + "ÅÑÂ" + "ÅÑè¹" + "ÅÑè¹·Á" + "ÅÒ" + "ÅÒ¡" + "ÅÒ§" + "ÅÒ" + "ÅÒ´" + "ÅÒ¹" + "ÅÒº" + "ÅÒ»" + "ÅÒÀ" + "ÅÒÁ" + "ÅÒÁ¡" + "ÅÒÂ" + "ÅÒÂÊ×Í" + "ÅÒŹÐ" + "ÅÒÅÊ" + "ÅÒÇ" + "ÅÒÇ¡" + "ÅÒÇѳÂì" + "ÅÒÇÒ" + "ÅÒʹÐ" + "ÅÓ" + "ÅӴǹ" + "ÅӴѺ" + "ÅÓºÒ¡" + "ÅӾǹ" + "ÅӾͧ" + "ÅӾѧ" + "ÅÓÀآѹ" + "ÅÓÂͧ" + "ÅÓà¤ç" + "ÅÓà¨Õ¡" + "ÅÓà¹Ò" + "ÅÓà¾Ò" + "ÅÓàÅÔ¡" + "ÅÓàÅÕ§" + "ÅÓ⾧" + "ÅÓäÂ" + "ÅÔ" + "ÅÔ¡ä¹µì" + "ÅÔ¢ÊÔ·¸Ôì" + "ÅÔ¢Ôµ" + "ÅÔ§" + "ÅÔ§¡ì" + "ÅÔ§¤ì" + "ÅÔ´" + "ÅÔµ" + "ÅÔµÁÑÊ" + "ÅÔµÃ" + "ÅÔ¹Ô¹" + "ÅÔº" + "ÅÔ»´Ò" + "ÅÔ»µì" + "ÅԻʵԡ" + "ÅÔ»Ô" + "ÅÔ¿µì" + "ÅÔÅÔµ" + "ÅÔÇ" + "ÅÔʧ" + "ÅÔà¡" + "ÅÔàºÕÂ" + "ÅÔàÇÍÃì¾ÙÅ" + "ÅÔèÁ" + "ÅÔèÇ" + "ÅÔé¹" + "ÅÔ鹨Õè" + "ÅÔéÁ" + "ÅÕ" + "ÅÕ¡" + "Åչء«ì" + "ÅÕº" + "ÅÕÅÒ" + "ÅÕÅÒÈ" + "ÅÕè" + "ÅÕé" + "ÅÖ¡" + "ÅÖ§¤ì" + "Å×´" + "Å׺" + "Å×Á" + "Å×Í" + "Å×è¹" + "Å×èÍ" + "Å×é¹" + "Å×éÍ" + "ÅØ" + "ÅØ¡" + "Åا" + "ÅØÂ" + "ÅØè¹" + "ÅØèÁ" + "ÅØèÂ" + "ÅØé§" + "ÅØéÂ" + "ÅÙ¡" + "ÅÙ¡¤éÒ" + "ÅÙ¡ºÒÈ¡ì" + "ÅÙº" + "ÅÙè" + "Åç͡ࡵ" + "Åè¹" + "ÅèÁ" + "Åèǧ" + "ÅèÇÁ" + "ÅèÍ" + "Åèͧ" + "Åè͹" + "ÅèÍÂ" + "ÅèÍáÅè" + "ÅèÐ" + "ÅèÒ" + "ÅèÒ§" + "ÅèÒ¹" + "ÅèÒÁ" + "ÅèÓ" + "Åé§àÅé§" + "Åé¹" + "ÅéÁ" + "Åéǧ" + "Åéǹ" + "ÅéÍ" + "ÅéÍÁ" + "ÅéÒ" + "ÅéÒ§" + "ÅéÒµéÒ" + "ÅéÒ¹" + "ÅéÓ" + "Ç¡" + "Ç¡Ð" + "ǧ" + "ǧ¡µ" + "ǧ¡ì" + "ǧ¨Ã" + "ǧȡÃ" + "ǧÈÒ" + "ǧÈì" + "Ǩ¹Ð" + "ǨÐ" + "ǨÕ" + "ǪÐ" + "ǪÔÃÐ" + "ǪÔÃÒÇظ" + "dzºÑµÃ" + "dz¾Ñ¹¸¹ì" + "dzÐ" + "dzԪ" + "dzԪªÒ" + "dzԪÂÒ" + "dzԪÂì" + "dzԾ¡" + "Ç´Õ" + "ǵÐ" + "Ç·Ð" + "Ç·ÑصÒ" + "ǸءÒ" + "ǸÙ" + "ǹ" + "ǹÑÊ" + "ǹÒ" + "ǹҹµì" + "ǹԴÒ" + "ǹԾ¡" + "ÇÂÑÊÂì" + "Çç¤ì" + "ÇóÐ" + "ÇÃÁËÒÇÔËÒÃ" + "ÇÃä" + "ÇÃäÂì" + "ÇÃê" + "ÇÃêÂì" + "ÇÃó¡ÃÃÁ" + "ÇÃó¤´Õ" + "ÇÃó¹Ò" + "ÇÃó¾ÄµÔ" + "ÇÃóÂØ¡µì" + "ÇÃóÂص" + "ÇÃóÈÔÅ»ì" + "ÇÃóÐ" + "ÇÃó֡" + "ÇÃø¡" + "ÇÃø¹Ð" + "ÇÃÃÉ" + "ÇÃÃÉÒ" + "ÇÃÇÔËÒÃ" + "ÇÃÑÙ" + "ÇÃÒ§¤¹Ò" + "ÇÃÒËÐ" + "ÇÃÒËì" + "ÇÃس" + "ÇÅѪ¹ì" + "ÇÅÑÂ" + "ÇÅÒË¡" + "ÇÅÕ" + "ÇÈÐ" + "ÇÊÊÐ" + "ÇÊÊÕ" + "ÇÊÐ" + "ÇÊѹµ´ÔÅ¡" + "ÇÊѹµì" + "ÇÊÒ" + "ÇÊÕ" + "ÇÊØ" + "ÇÊظÒ" + "ÇÊع¸ÃÒ" + "ÇÊØÁ´Õ" + "ÇËÐ" + "ÇËÒ" + "ÇÍ" + "ÇÍ¡" + "ÇÍ¡áÇ¡" + "ÇÍ´" + "Ç͹" + "ÇÍÃìáù·ì" + "ÇÍÅÅìʵÃÕ·" + "ÇÍÅàÅÂì" + "ÇÍÅàÅÂìºÍÅ" + "ÇÍáÇ" + "ÇÐ" + "ÇÑ¡" + "ÇÑ¡¡Ð" + "ÇѤ" + "ÇѤ¤ÕÂì" + "ÇѤ¤Ø" + "ÇѤ«Õ¹" + "Çѧ" + "Çѧ¡ì" + "Çѧàǧ" + "ÇѨ¹Ð" + "ÇѪ" + "ÇѪ¬ì" + "ÇѪÃÐ" + "ÇѪÃÔ¹·Ãì" + "ÇѪÃÕ" + "Çѯ¨Ñ¡Ã" + "Çѯ¯Ô" + "ÇѯʧÊÒÃ" + "ÇѲ¡Ð" + "ÇѲ¡Õ" + "ÇѲ¹¸ÃÃÁ" + "ÇѲ¹Ð" + "ÇѲ¹Ò" + "Çѳ" + "Çѳ¯ì" + "Çѳ¹Ò" + "ÇÑ´" + "Çѵ" + "ÇѵµÒ" + "Çѵµì" + "Çѵ¶Ø" + "Çѵ¶ì" + "Çѵ¹Ð" + "ÇѵÃ" + "ÇѵÔ" + "Çѹ" + "Çѹ·¹Ò" + "Çѹ·¹ÕÂì" + "Çѹ·ÂËѵ¶ì" + "Çѹ·ÂÒÇظ" + "Çѹ·Ò" + "ÇѺ" + "ÇÑ»»Ð" + "ÇÑÁÁÔ¡" + "ÇÑÂ" + "ÇÑÅÂì" + "ÇÑÅÅÀ" + "ÇÑÅÅÕ" + "ÇÑÇ" + "ÇÑÊ´Ø" + "ÇÑÊÊÐ" + "ÇÑÊÊÒ¹Ð" + "ÇÑÊâÊ·¡" + "ÇÒ" + "ÇÒ¡" + "ÇÒ¡ÂÊÑÁ¾Ñ¹¸ì" + "ÇÒ¡ÂÐ" + "ÇÒ§" + "ÇÒ¨¡" + "ÇÒ¨Ò" + "ÇÒ³Ôª" + "ÇÒ³ÔªÂì" + "ÇÒ³Õ" + "ÇÒ´" + "ÇÒµÀÑÂ" + "ÇÒµÐ" + "ÇÒ·" + "ÇÒ·¡" + "Çҷ¡Ã" + "ÇÒ·Âì" + "ÇÒ·Ôµ" + "ÇÒ·Ô¹" + "ÇÒ·Õ" + "ÇÒ¹" + "ÇÒ¹Ã" + "ÇÒ¹ÃÔ¹·Ãì" + "ÇÒº" + "ÇÒ»Ð" + "ÇÒ»ÔµÐ" + "ÇÒ»Õ" + "ÇÒÁ" + "ÇÒÁÐ" + "ÇÒÂ" + "ÇÒ·Ùà¤" + "ÇÒÂÊÐ" + "ÇÒÃ" + "ÇÒÃÊÒÃ" + "ÇÒÃÔ" + "ÇÒÃÕ" + "ÇÒÃس" + "ÇÒÃسÕ" + "ÇÒÅ" + "ÇÒÅìÇ" + "ÇÒÇ" + "ÇÒʹÐ" + "ÇÒʹÒ" + "ÇÒʾ" + "ÇÒËÐ" + "ÇÒËÔ¹Õ" + "ÇÒÌ" + "ÇÔ¡ÃÁ" + "Çԡĵ" + "Çԡĵ¡Òóì" + "ÇԡĵÔ" + "ÇÔ¡Å" + "ÇÔ¡ÊÔµ" + "ÇÔ¡Ñ»" + "ÇÔ¡ÒÅ" + "ÇÔ¤ËÐ" + "ÇÔ§" + "ÇÔ§Ç͹" + "ÇÔ¨Âص" + "ÇԨóÐ" + "ÇÔ¨Å" + "ÇԨѡ¢³ì" + "ÇԨѡɳì" + "ÇÔ¨ÑÂ" + "ÇÔ¨ÒÃ" + "ÇÔ¨Òóҳ" + "ÇÔ¨Òóì" + "ÇÔ¨Ô" + "ÇÔ¨Ô¡Ô¨©Ò" + "ÇÔ¨Ôµ" + "ÇÔ¨ÔµÃ" + "ÇÔ¨Ô¹" + "ÇԨس" + "ÇÔ¨Øó" + "ÇÔªªÒ" + "ÇÔªªØ" + "ÇÔªªØÅ´Ò" + "ÇÔªÐ" + "ÇÔª¹Õ" + "ÇÔªÒ" + "ÇÔªÒ¹¹Ð" + "ÇÔªÔµ" + "ÇÔѵÔ" + "ÇÔÒ³" + "ÇÔÙ" + "ÇÔ±ÙÃÂì" + "ÇÔ´" + "ÇÔ´ÕâÍ" + "ÇÔµ¡" + "ÇÔµ¶ÒÃ" + "ÇÔµÒÁÔ¹" + "ÇÔ¶Õ" + "ÇԷ°ҹÐ" + "ÇÔ·ÂÒ" + "ÇÔ·ÂÒÅÑÂ" + "ÇÔ·ÂØ" + "ÇÔ·Âص" + "ÇÔ·ÇÑÊ" + "ÇÔ·Òóì" + "ÇÔ·ÒŹì" + "ÇÔ·Ôµ" + "ÇÔ·Ù" + "ÇÔ·ÙÃ" + "ÇÔ¸" + "ÇÔ¸ÇÒ" + "ÇÔ¸Ò" + "ÇÔ¸Ò¹" + "ÇÔ¸Õ" + "ÇÔ¸Ù»¹Ð" + "ÇԹѹµÙ" + "ÇÔ¹ÑÂ" + "ÇÔ¹Ò·Õ" + "ÇÔ¹ÒÈ" + "ÇÔ¹Ô¨" + "ÇÔ¹Ô¨©ÑÂ" + "ÇÔ¹Ôµ" + "ÇÔ¹ÔºÒµ" + "ÇÔ¹Ô»ÒµÔ¡" + "ÇÔ¹â´ÇÊì" + "ÇÔ¹â´Çì" + "ÇԺѵÔ" + "ÇÔºÒ¡" + "ÇÔºØÅ" + "ÇÔºØÅÂì" + "ÇÔºÙÅ" + "ÇÔºÙÅÂì" + "ÇÔ»¡ÒÃ" + "ÇÔ»¯ÔÊÒÃ" + "ÇÔ»ÃСÒÃ" + "ÇÔ»ÃеÔÊÒÃ" + "ÇÔ»ÃÐÅÒ»" + "ÇÔ»ÃÐÇÒÊ" + "ÇÔ»ÃÔµ" + "ÇÔ»ÅÒ»" + "ÇÔ»ÅÒÊ" + "ÇÔ»ÇÒÊ" + "ÇԻѡÉì" + "ÇÔ»ÑÊÊ¡" + "ÇÔ»ÑÊʹÒ" + "ÇÔ»â¤" + "ÇÔ¾Ò¡Éì" + "ÇÔ¾Ô¸·ÑȹÒ" + "ÇÔÀǵѳËÒ" + "ÇÔÀѧ¤ì" + "ÇÔÀѪ" + "ÇÔÀѵµÔ" + "ÇÔÀÒ" + "ÇÔÀÒÇ´Õ" + "ÇÔÁѵÔ" + "ÇÔÁص" + "ÇÔÁصµÔ" + "ÇÔõÐ" + "ÇÔÃÁ³Ð" + "ÇÔÃÃø¹ì" + "ÇÔÃÇÐ" + "ÇÔÃѪ" + "ÇÔÃѵ" + "ÇÔÃѵÔ" + "ÇÔÃÔÂÀÒ¾" + "ÇÔÃÔÂÐ" + "ÇÔÃظ" + "ÇÔÃØÌË¡" + "ÇÔÃØÌËì" + "ÇÔÅѹ´Ò" + "ÇÔÅÒ´" + "ÇÔÅÒ»" + "ÇÔÅÒÇѳÂì" + "ÇÔÅÒÈ" + "ÇÔÅÒÊ" + "ÇÔÅÒÊÔ¹Õ" + "ÇÔÇ" + "ÇÔÇóì" + "ÇÔÇÃÐ" + "ÇÔÇѯ" + "ÇÔÇѲ¹Ò¡ÒÃ" + "ÇÔÇѲ¹ì" + "ÇÔÇÒ·" + "ÇÔÇÒËÁ§¤Å" + "ÇÔÇÒËÐ" + "ÇÔÇÒËì" + "ÇÔÇÔ¨" + "ÇÔÇÔµ" + "ÇÔÇÔ¸" + "ÇÔÈÃص" + "ÇÔÈÇ¡Ã" + "ÇÔÈÇ¡ÃÃÁ" + "ÇÔÈÑÅÂì" + "ÇÔÈÒ¢Ð" + "ÇÔÈÒ¢Ò" + "ÇÔÈÒ§¤ì" + "ÇÔÈÒÅ" + "ÇÔÈÔÉ°ì" + "ÇÔÈØ·¸Ôì" + "ÇÔÈØ·¸ì" + "ÇÔɳØ" + "ÇÔɸÃ" + "ÇÔÉÑ¡µì" + "ÇÔÉÑÂ" + "ÇÔÉÒ³" + "ÇÔÉØÇѵ" + "ÇÔÊ¡Õé" + "ÇÔÊÃê¹ÕÂì" + "ÇÔÊĵ" + "ÇÔÊÊØ¡ÃÃÁ" + "ÇÔÊѪ¹Ò" + "ÇÔÊÑÕ" + "ÇÔÊÑÂ" + "ÇÔÊÒ¢ºÙªÒ" + "ÇÔÊÒ¢Ð" + "ÇÔÊÒÁÑ" + "ÇÔÊÒÊÐ" + "ÇÔÊÒË¡Ô¨" + "ÇÔÊÔ°" + "ÇÔÊا¤ÒÁÊÕÁÒ" + "ÇÔÊØ·¸Ôì" + "ÇÔÊØ·¸ì" + "ÇÔÊÙµÃ" + "ÇÔˤ" + "ÇÔ˧¤ì" + "ÇÔËÅÑè¹" + "ÇÔËÒÂÊÐ" + "ÇÔËÒÃ" + "ÇÔËÔ§ÊÐ" + "ÇÔËÔ§ÊÒ" + "ÇÔÌѧ¤ì" + "ÇÔÌÒÃ" + "ÇÔÌÒÃì" + "ÇÔà¤ÃÒÐËì" + "ÇÔàªÕÂÃ" + "ÇÔà·ÇÉ" + "ÇÔà·È" + "ÇÔà·âȺÒÂ" + "ÇÔ๵" + "ÇÔà¹" + "ÇÔàù·Ãì" + "ÇÔàÅ»" + "ÇÔàÇ¡" + "ÇÔàÈÉ" + "ÇÔàÈɳì" + "ÇÔàÊ·" + "ÇÔàËÊÒ" + "ÇÔâ¹·¡" + "ÇÔâÁ¡¢ì" + "ÇÔâ¤" + "ÇÔâè" + "ÇÔâè¹ì" + "ÇÔâò" + "ÇÔâø" + "ÇÔâø¹ì" + "ÇÔâŨ¹Ð" + "ÇÔäÅ" + "ÇÔè§" + "ÇÔè§à»ÕéÂÇ" + "ÇÔè¹" + "ÇÕ" + "ÇÕ¨Ô" + "ÇÕª¹Õ" + "ÇÕ«èÒ" + "ÇÕ³Ò" + "ÇÕáÃÃÁ" + "ÇÕê¹" + "ÇÕúØÃØÉ" + "ÇÕÃʵÃÕ" + "ÇÕèÇѹ" + "ÇÕèáÇÇ" + "ÇÕé´" + "ÇØ°Ô" + "Çز" + "ÇزÔ" + "ÇØ´" + "Çغ" + "ÇØè¹" + "ÇØé§" + "ÇØé¹" + "ÇØéÂ" + "ÇÙ´ÇÒ´" + "ÇÙ¸Ù" + "ÇÙº" + "ÇÙèÇÒÁ" + "ÇÙé" + "Ç๨Ã" + "Çâ¹·ÂÒ¹" + "ÇâÃ" + "ÇâáÒÊ" + "ÇâôÁ" + "Çèͧ" + "Çè͹" + "ÇèÒ" + "ÇèÒ§" + "ÇèÒ¹" + "ÇèÒÂ" + "ÇèÒÇ" + "ÇéÒ" + "ÇéÒ§" + "ÇéÒÂ" + "È¡" + "ȵ" + "ȵÇÃÃÉ" + "Ⱦ" + "ÈÃ" + "ÈÃÑ·¸Ò" + "ÈÃÑÂ" + "ÈÃÕ" + "ÈÃÕÇÔäÅÄ·¸Ôì" + "ÈÃÕÉÐà¡É" + "Èħ¤ÒÃ" + "ÈÈÔ" + "ÈÍ" + "ÈÍ¡" + "ÈÑ¡´Ò" + "ÈÑ¡´Ô¹Ò" + "ÈÑ¡´Ôì" + "ÈÑ¡ÂÀÒ¾" + "ÈÑ¡ÂÐ" + "ÈÑ¡Âì" + "ÈÑ¡ÃÒª" + "ÈѵÃÙ" + "ÈѾ·ì" + "ÈÑÅ¡ÃÃÁ" + "ÈÑÅÂÈÒʵÃì" + "ÈÑÅÂá¾·Âì" + "ÈÑÅÂì" + "Èҡ¾ط¸" + "ÈÒ¡ÂÁعÕ" + "ÈÒ¡ÂÐ" + "ÈÒµÃÒ¨ÒÃÂì" + "ÈÒ¹µÔ" + "ÈÒ¹µì" + "ÈÒ÷" + "ÈÒ÷ÙÅ" + "ÈÒÅ" + "ÈÒÅÒ" + "ÈÒÊ¡" + "ÈÒÊ´Ò" + "ÈÒʵÃÒ" + "ÈÒʵÃÒ¨ÒÃÂì" + "ÈÒʵÃì" + "ÈÒʹ¨Ñ¡Ã" + "ÈÒʹÒ" + "ÈÒʹٻ¶ÑÁÀ¡" + "ÈÒʹì" + "ÈÔ¢ÃÔ¹" + "ÈÔÃÔÃÒª" + "ÈÔÅ»¡Ã" + "ÈÔÅ»¡ÃÃÁ" + "ÈÔÅ»¡ÒÃ" + "ÈÔÅ»¡Ô¨" + "ÈÔÅ»ÇÔ·ÂÒ" + "ÈÔÅ»ÈÒʵÃì" + "ÈÔÅ»Ð" + "ÈÔŻҡÃ" + "ÈÔŻԹ" + "ÈÔÅ»Õ" + "ÈÔÅ»ì" + "ÈÔÅÒ" + "ÈÔÇÅÖ§¤ì" + "ÈÔÇÐ" + "ÈÔÇàÇ·" + "ÈÔÇâÁ¡¢ì" + "ÈÔÉÂì" + "ÈÔâÃÃÒº" + "ÈÕÃÉÐ" + "ÈÕÅ" + "ÈÖ¡" + "ÈÖ¡ÉÒ" + "ÈÖ¡ÉÒ¸Ô¡ÒÃ" + "ÈÖ¡ÉÒ¹Ôà·È¡ì" + "ÈØ¡Ãì" + "ÈØÀ¡Ã" + "ÈØÀ¹ÔÁÔµ" + "ÈØÀÁÑÊ´Ø" + "ÈØÀÁÒµÃÒ" + "ÈØÀÁÒÊ" + "ÈØÀÍÑ¡ÉÃ" + "ÈØÀÒ§¤ì" + "ÈØÀà¤ÃÒÐËì" + "ÈØÅ¡Ò¡Ã" + "ÈØÅ¡ÒÃÑ¡Éì" + "ÈØÅÕ" + "ÈÙ·Ã" + "ÈÙ¹Âì" + "Ê¡" + "Ê¡¹¸ì" + "Ê¡»Ã¡" + "Ê¡Å" + "Ê¡ÇÒ·Õ" + "ʡ͵Ᏼì" + "Ê¡Ñ´" + "Ê¡Ò" + "Ê¡ÒÇ" + "Ê¡Õ" + "ʡس" + "ʡسÒ" + "ʡسÕ" + "ʡعµì" + "Ê¡ØÅ" + "Ê¡ç͵Ᏼì" + "ʧ" + "ʧ¡ÃÒ¹µì" + "ʧ¡Ò" + "ʧ¢ÅÒ" + "ʧ¤ÃÒÁ" + "ʧ¦ì" + "ʧº" + "ʧǹ" + "ʧÊÑÂ" + "ʧÊÒÃ" + "ʧÊÒÃÇѯ" + "ʧѴ" + "ʧà¤ÃÒÐËì" + "ʧèÒ" + "ʳ±ì" + "Ê´" + "Ê´ÁÀì" + "ʴѺ" + "Ê´Ø´Õ" + "ʵÃÕ" + "ʵ͡" + "ʵѿ¿ì" + "ʵҧ¤ì" + "ʵÒÃì·" + "ʵÔ" + "ʵÔê¡à¡ÍÃì" + "ʵÙ" + "ʵêÍ¡" + "ʶÅ" + "ʶҹ" + "ʶҹ¡Òóì" + "ʶҹÐ" + "ʶҹÕ" + "ʶҺѹ" + "ʶһ¹Ò" + "ʶһ¹Ô¡" + "ʶһѵ¡ÃÃÁ" + "ʶҾÃ" + "ʶÒÇÃ" + "ʶԵ" + "ʶԵÂ" + "ʶԵÂÈÒʵÃì" + "ʶԵÂì" + "ʶԵÔ" + "ʶØÅ" + "ʶٻ" + "ʷ;" + "ʹ" + "ʹ·¹Ò" + "ʹ¸ÂÒ" + "ʹ¸Ô" + "ʹ¹ÃÒ¤Ò" + "ʹÁ" + "ʹͧ" + "ʹѺ" + "ʹѺʹع" + "ʹÑè¹" + "ʹҹ" + "ʹÒÁ" + "ʹԷ" + "ʹÔÁ" + "ʹء" + "ʹØè¹" + "ʹà·È" + "ʹà·èËì" + "ʹã¨" + "ʺ" + "ʺ§" + "ʺ¶" + "ʺÒÂ" + "ʺÙè" + "Ê»ÃÔ§" + "Ê»ÒÂ" + "Ê»ÒࡵµÕ" + "Ê»ÔÃÔµ" + "ÊÀÒ" + "ÊÀÒ¾" + "ÊÀҾѲ¹ì" + "ÊÀÒÇÐ" + "ÊÁ" + "ÊÁ¡ÒÃ" + "ÊÁ¤ÇÃ" + "ÊÁÒ" + "ÊÁ³ÈÑ¡´Ôì" + "ÊÁ³Ð" + "ÊÁ´ØÅ" + "ÊÁ¶Ð" + "ÊÁ¹Ò¤Ø³" + "ÊÁºÑµÔ" + "ÊÁºÙóÒÒÊÔ·¸ÔÃÒªÂì" + "ÊÁºÙóì" + "ÊÁ»ÃдÕ" + "ÊÁ»Ä´Õ" + "ÊÁÀ¾" + "ÊÁÀÒÃ" + "ÊÁÁµ" + "ÊÁÁµÔ" + "ÊÁÁÒµÃ" + "ÊÁÁصÔ" + "ÊÁÃ" + "ÊÁÃö" + "ÊÁÃö¹Ð" + "ÊÁÃÊ" + "ÊÁÍ" + "ÊÁͧ" + "ÊÁѤÃ" + "ÊÁѪªÒ" + "ÊÁѹ" + "ÊÁÑÂ" + "ÊÁÒ" + "ÊÁÒ¤Á" + "ÊÁÒ¨ÒÃ" + "ÊÁÒªÔ¡" + "ÊÁÒ¸Ô" + "ÊÁÒ¹" + "ÊÁҺѵÔ" + "ÊÁÒÊ" + "ÊÁÔ§" + "ÊÁÔµ" + "ÊÁÕ" + "ÊÁد°Ò¹" + "ÊÁØ´" + "ÊÁØ·Ã" + "ÊÁØ·ÑÂ" + "ÊÁع" + "ÊÁعä¾Ã" + "ÊÁØËì" + "ÊÁà´ç¨" + "ÊÁྪ" + "ÊÁàÊÃç¨" + "ÊÁ⾸Ô" + "ÊÁâÀ¤" + "ÊÁâÀª" + "ÊÁèÓàÊÁÍ" + "Ê´" + "ʺ" + "ÊÂÁÀÙ" + "ÊÂͧ" + "ÊÂÒÁ" + "ÊÂÒÂ" + "ÊÂÔÇ" + "ÊÂØÁ¾Ã" + "ÊÂØÁÀÙ" + "Êç" + "ÊóÐ" + "ÊóҤÁ¹ì" + "ÊõÐ" + "ÊÃÃ" + "ÊÃäì" + "ÊÃþ" + "ÊÃþҡÃ" + "ÊÃþҧ¤ì" + "ÊÃÃྪ" + "ÊÃÃàÊÃÔ" + "ÊÃǧ" + "ÊÃÇÁ" + "ÊÃÇÅ" + "ÊÃÐ" + "ÊÃÒ" + "ÊÃÕáԨ" + "ÊÃÕøҵØ" + "ÊÃÕÃÇÔ·ÂÒ" + "ÊÃÕÃÈÒʵÃì" + "ÊÃÕÃÐ" + "ÊÃØ»" + "ÊÃè§" + "ÊÃèÒ§" + "ÊÃéÍÂ" + "ÊÃéÒ§" + "ÊÃéÒÇàÊÕÂÇ" + "Êĵ" + "ÊÄɯì" + "ÊÅ" + "ÊÅ´" + "Êź" + "ÊÅǹ" + "ÊÅÇÂ" + "ÊÅÍ´" + "ÊÅ͹" + "ÊÅÍÂ" + "ÊÅÐ" + "ÊÅÑ¡" + "ÊÅÑ¡àµé" + "ÊÅÑ´" + "ÊÅÑ´ä´" + "ÊÅѺ" + "ÊÅÑÁ" + "ÊÅÑÇ" + "ÊÅÒ" + "ÊÅÒ¡" + "ÊÅÒ´" + "ÊÅҵѹ" + "ÊÅÒº" + "ÊÅÒÂ" + "ÊÅÔ´" + "ÊÅÔÅ" + "ÊÅÖ¡" + "ÊÅÖ§" + "ÊÅص" + "ÊÅغ" + "ÊÅØÁ¾Ã" + "ÊÅç͵" + "ÊÅéÒ§" + "ÊÇ¡" + "ÊÇ´" + "Êǹ" + "ÊǹÐ" + "ÊǹҡÒÃ" + "ÊǺ" + "ÊÇÁ" + "ÊÇÂ" + "ÊÇÃ" + "ÊÇÃäµ" + "ÊÇÃäÒÅÑÂ" + "ÊÇÃäì" + "ÊÇÃÃÂÒ" + "ÊÇÍ»" + "ÊÇÐ" + "ÊÇÑÊ´Ô¡ÒÃ" + "ÊÇÑÊ´ÔÀÒ¾" + "ÊÇÑÊ´Ôì" + "ÊÇÑÊ´Õ" + "ÊÇÑʵԡÐ" + "ÊÇÒ" + "ÊÇÒ§" + "ÊÇÒ´" + "ÊÇÒ·" + "ÊÇÒÁÔ" + "ÊÇÒÁÕ" + "ÊÇÒÂ" + "ÊÇÒÊ´Ôì" + "ÊÇÒËÐ" + "ÊÇÔ§" + "ÊÇÔµªì" + "ÊÇÔµ«ì" + "ÊÇÔÊà«ÍÃìᏴì" + "ÊÇÕà´¹" + "ÊÇèÒ§" + "ÊÇèÒ¹" + "ÊÇéÒ¹" + "ÊÊÒÃ" + "Êˡóì" + "ÊË¡ÒÃ" + "Ê˨Ã" + "Ê˪ҵÔ" + "ÊË»ÃЪҪҵÔ" + "Ê˾ѹ¸ÃÑ°" + "Ê˾ѹ¸ì" + "ÊËÀÒ¾" + "ÊËÃÑ°" + "ÊËÇÔÃÔÂÒ" + "ÊËÈÖ¡ÉÒ" + "ÊËѪ" + "ÊËÑÁº´Õ" + "ÊËÑʹѹì" + "ÊËÑÊÇÃÃÉ" + "ÊËÑÊÊÐ" + "ÊËÑÊÊÒ" + "ÊËÒÂ" + "ÊÍ" + "Êͧ" + "ÊÍ´" + "Ê͹" + "Êͺ" + "Ê;ÅÍ" + "ÊÍÂ" + "ÊÐ" + "ÊС´" + "ÊСԴ" + "ÊФÃÒ" + "ÊдÁ" + "Êдǡ" + "ÊдÔé§" + "Êд֧" + "Êд×Í" + "Êдش" + "ÊдØé§" + "ÊеÍ" + "ÊеÖ" + "Êе×Í" + "Êзé͹" + "ÊзéÒ¹" + "Êкѡ" + "ÊкѴ" + "ÊкѴÊкÔé§" + "ÊкÑé¹" + "ÊкéÒ" + "ÊоÃÑ¡" + "ÊоÃÑè§" + "ÊоѴ" + "ÊоÑé¹" + "Êоҹ" + "ÊоÒÂ" + "ÊÐÃеÐ" + "ÊÐÃÐá˹è" + "ÊÐÅÖÁÊÐÅ×Í" + "ÊÐÇÕé´ÊÐÇéÒ´" + "ÊÐÊÁ" + "ÊÐÊÒ§" + "ÊÐÍÒ§" + "ÊÐÍÒ´" + "ÊÐÍÔ´ÊÐàÍÕ¹" + "ÊÐÍÔé§" + "ÊÐÍÖ¡" + "ÊÐÍ×é¹" + "ÊÐÍéÒ¹" + "ÊÐà¡ç´" + "ÊÐà´ç´" + "ÊÐà·Ôé¹" + "ÊÐà·×͹" + "ÊÐà·×é͹" + "ÊÐà¾ÃèÒ" + "ÊÐàÍÍÐ" + "ÊÐ⾡" + "ÊÐâÍ´ÊÐͧ" + "ÊÐãÀé" + "ÊÑ¡" + "ÊÑ¡¢Õ" + "ÊÑ¡ÇÒ" + "ÊÑ¡ËÅÒ´" + "ÊÑ¢ÂÐ" + "Êѧ¡Á·ÃѾÂì" + "Êѧ¡Ã" + "Êѧ¡Ã³Õ" + "Êѧ¡ÐµÑ§" + "Êѧ¡ÐÊÕ" + "Êѧ¡Ñ´" + "Êѧ¡Ñ»»Ð" + "Êѧ¡Ò" + "Êѧ¡ÒÈ" + "Êѧ¢ÂÒ" + "Êѧ¢ÒÃ" + "Êѧ¢ì" + "Êѧ¤ÒµÔ" + "Êѧ¤Á" + "Êѧ¤Ñ§" + "Êѧ¤Ò¹Ò" + "Êѧ¤Ò¹ÒÂ" + "Êѧ¤Õµ" + "Êѧ¤ì" + "Êѧ¦¡ÃÃÁ" + "Êѧ¦¹Ò¡" + "Êѧ¦Á³±Å" + "Êѧ¦Á¹µÃÕ" + "Êѧ¦ÃÒª" + "Êѧ¦ÊÀÒ" + "Êѧ¦Ò¯Ô" + "Êѧ¦ÒÇÒÊ" + "ÊѧÇÃ" + "ÊѧÇѸÂÒÂ" + "ÊѧÇÒÅ" + "ÊѧÇÒÊ" + "ÊѧʴÁÀì" + "ÊѧÊÃäì" + "ÊѧÊÒÃÇѯ" + "ÊѧËÃ" + "ÊѧËóì" + "ÊѧËÒÃ" + "ÊѧËÒÃÔÁ·ÃѾÂì" + "ÊѧËÔµ" + "Êѧࡵ" + "Êѧࢻ" + "Êѧà¤ÃÒÐËì" + "ÊѧàǤÐ" + "ÊѧàǪ" + "ÊѧàÇÂ" + "ÊѧàÇÕ¹" + "Êѧâ¤" + "Êѧ⪹ì" + "ÊѨ" + "ÊѨ¡ÔÃÔÂÒ" + "ÊѨ¨Ð" + "ÊѨҳ" + "ÊѨ¹ÔÂÁ" + "ÊѨ¾¨¹ì" + "ÊѪ¬Ø" + "ÊѨÃ" + "ÊѨÒÃ" + "ÊѪҵҳ" + "ÊѪҵÔ" + "ÊѬÒ" + "ÊÑÒ" + "ÊÑÒ³" + "ÊÑÕ" + "ÊÑ»ÃСÒÈ" + "ÊÑÅѡɳì" + "ÊÑਵ¹Ò" + "Êѳ°Ò¹" + "Êѳ±ì" + "ÊѳËì" + "ÊÑ´" + "Êѵ" + "ÊѵµÐ" + "ÊѵºÃó" + "ÊѵÂҺѹ" + "ÊѵÂì" + "ÊѵǺÒÅ" + "ÊѵÇÇÔ·ÂÒ" + "ÊѵÇÒ" + "ÊѵÇÒÃ" + "ÊѵÇá¾·Âì" + "ÊѵÇâÅ¡" + "ÊѵÇì" + "ÊÑ·¸ÃÃÁ" + "ÊÑ·¸Ò" + "ÊÑ·ÈÒʵÃì" + "Êѹ" + "Êѹ´Ò¹" + "Êѹ´Ò»" + "ÊѹµÐ»Ò»Ò" + "ÊѹµÔ" + "Êѹµì" + "Êѹ¶ÇäÁµÃÕ" + "Êѹ¶Ñµ" + "Êѹ¶ÒÃ" + "Êѹ·¹Ð" + "Êѹ·¹Ò¡ÒÃ" + "Êѹ·Ð" + "Êѹ·Ñ´" + "Êѹ¸Ò¹" + "Êѹ¹ÔºÒµ" + "Êѹ¹ÔÇÒÊ" + "Êѹ¹ÔÉ°Ò¹" + "Êѹ¹ÔàÇÊ" + "Êѹʡĵ" + "Êѹâ´É" + "ÊѺ" + "ÊѺ»ÅѺ" + "ÊѺ»Ðô" + "ÊÑ»¤Ñº" + "ÊÑ»´¹" + "ÊÑ»´ÒËì" + "ÊÑ»·¹" + "ÊÑ»ÃÐÂØ·¸ì" + "Êѻ˧¡" + "ÊÑ»àËÃèÍ" + "ÊѾ" + "ÊѾ¾Ð" + "ÊѾ¾ÑÙ" + "ÊѾÂÍ¡" + "ÊѾà¾àËÃÐ" + "ÊÑÁºÙóì" + "ÊÑÁ»ªÑÐ" + "ÊÑÁ»·Ò" + "ÊÑÁ»·Ò¹" + "ÊÑÁ»Âص" + "ÊÑÁ»ÃÐÊÔ·¸Ôì" + "ÊÑÁ»ÃÐËÒÃ" + "ÊÑÁ»ÃÒÂÀ¾" + "ÊÑÁ»ÃÒÂÔ¡À¾" + "ÊÑÁ»â¤" + "ÊÑÁ¼ÑÊ" + "ÊÑÁ¾Ñ·¸ì" + "ÊÑÁ¾Ñ¹¸¹ì" + "ÊÑÁ¾Ñ¹¸ÀÒ¾" + "ÊÑÁ¾Ñ¹¸ÁÔµÃ" + "ÊÑÁ¾Ñ¹¸äÁµÃÕ" + "ÊÑÁ¾Ñ¹¸ì" + "ÊÑÁ¾Ò¸Ð" + "ÊÑÁ¾Ø·¸Ð" + "ÊÑÁÀÒÃÐ" + "ÊÑÁÀÒɳì" + "ÊÑÁÁ¹Ò" + "ÊÑÁÁÒ" + "ÊÑÁÁÒªÕ¾" + "ÊÑÁÄ·¸Ôì" + "ÊÑÁ⾸Ô" + "ÊÑÁâÁ·¹Õ¡¶Ò" + "ÊÑÊ´Õ" + "ÊÑÊÊÐ" + "ÊÑè§" + "ÊÑè¹" + "ÊÑé¹" + "ÊÒ" + "ÊÒ¡" + "ÊÒ¡Ãèì" + "ÊÒ¡Å" + "ÊÒ¢Ò" + "ÊÒ¤Ã" + "ÊÒ¤Ù" + "ÊÒ¤àÃÊ" + "ÊÒ§" + "ÊÒ´" + "ÊÒ·Ã" + "ÊÒ·ÔÊ" + "ÊÒ¸¡" + "ÊÒ¸ÂÒÂ" + "ÊÒ¸ÒóÀÑÂ" + "ÊÒ¸ÒóÃÑ°" + "ÊÒ¸ÒóÊØ¢" + "ÊÒ¸ÒóÐ" + "ÊÒ¸Òóٻ¡ÒÃ" + "ÊÒ¸ÒóٻâÀ¤" + "ÊÒ¸Ôµ" + "ÊÒ¸Ø" + "ÊÒ¹" + "ÊÒ¹ØÈÔÉÂì" + "ÊÒº" + "ÊÒºÊÙ" + "ÊÒºÒ¹" + "ÊÒ»" + "ÊÒÁ" + "ÊÒÁѤ¤Õ" + "ÊÒÁÑ" + "ÊÒÁÒ¹Âì" + "ÊÒÁÒö" + "ÊÒÁÔµ" + "ÊÒÁÔÀÑ¡´Ôì" + "ÊÒÁÕ" + "ÊÒÁà³Ã" + "ÊÒÂ" + "ÊÒªÙ" + "ÊÒÂÂÙ" + "ÊÒÂѳËì" + "ÊÒÃ" + "ÊÒä´Õ" + "ÊÒöÕ" + "ÊÒ÷" + "ÊÒùÔà·È" + "ÊÒúº" + "ÊÒúÃó" + "ÊÒúÑ" + "ÊÒúѺ" + "ÊÒúÒ" + "ÊÒþѴ" + "ÊÒþѹ" + "ÊÒþҧ¤ì" + "ÊÒÃÀÒ¾" + "ÊÒÃÀÕ" + "ÊÒÃÇѵÃ" + "ÊÒÃÐ" + "ÊÒÃÐá¹" + "ÊÒÃÑ·¸ì" + "ÊÒÃÑÁÀì" + "ÊÒÃÒ³Õ¡Ã" + "ÊÒÃҹءÃÁ" + "ÊÒÃÕÃÔ¡¸ÒµØ" + "ÊÒÅÐǹ" + "ÊÒÅÔ¡Ò" + "ÊÒÅÔ¹Õ" + "ÊÒÅÕ" + "ÊÒÅÕè" + "ÊÒÇ" + "ÊÒÇ¡" + "ÊÒÇÔ¡Ò" + "ÊÒÇÔµÃ" + "ÊÒÇÔµÃÕ" + "ÊÒʹì" + "ÊÒÊì¹" + "ÊÒËÃèÒÂ" + "ÊÒËÑÊ" + "ÊÒà¡" + "ÊÒà˵Ø" + "ÊÒáËá" + "ÊÒâ·" + "ÊÒâê" + "ÊÒä¶Â" + "ÊÓ" + "ÊÓ¤Ñ" + "ÊӷѺ" + "Êӹǹ" + "Êӹѡ" + "ÊÓ¹Ö¡" + "ÊӺѴÊӹǹ" + "ÊÓ»ÐËÅѧ" + "ÊÓ»Ñé¹" + "ÊÓÁÐËÒ" + "ÊÓÁÐàÅà·àÁÒ" + "ÊÓÁÐ⹤ÃÑÇ" + "ÊÓÃǨ" + "ÊÓÃÇÁ" + "ÊÓÃÇÂ" + "ÊÓÃÇÅ" + "ÊÓÃÍ¡" + "ÊÓÃͧ" + "ÊÓÃѺ" + "ÊÓÃÒ¡" + "ÊÓÃÒ" + "ÊÓÃÔ´" + "ÊÓÅÑ¡" + "ÊÓÅÒ¹" + "ÊÓÅÕ" + "ÊÓÊè͹" + "ÊÓËÃѺ" + "ÊÓËÒ" + "ÊÓÍÍÂ" + "ÊÓÍÒ§" + "ÊÓà¹Ò" + "ÊÓà¹Õ§" + "ÊÓàÀÒ" + "ÊÓàÃÔ§" + "ÊÓàÃç¨" + "ÊÓà˹Õ¡" + "ÊÓàËÃè" + "ÊÓá´§" + "ÊÓáŧ" + "ÊÓâç" + "ÊÔ" + "ÊÔ¡¢Ò" + "ÊÔ¢Ã" + "ÊÔ¤ÒÅ" + "ÊÔ§" + "ÊÔ§¢Ã" + "ÊÔ§¤ÒÃ" + "ÊÔ§¤ÒÅ" + "ÊÔ§¤â»Ãì" + "ÊÔ§¤ì" + "ÊÔ§ÊÒÃÒÊѵÇì" + "Êԧ˹ҷ" + "Êԧ˺ѪÃ" + "ÊÔ§ËÃÒª" + "ÊÔ§ËÅ" + "ÊÔ§ËÒ¤Á" + "ÊÔ§ËÒʹì" + "ÊÔ§Ëì" + "ÊÔ§âµ" + "ÊÔ¨¹ì" + "ÊÔµ" + "ÊÔ¶ÔÅ" + "ÊÔ·¸" + "ÊÔ·¸Ò" + "ÊÔ·¸Òö" + "ÊÔ·¸Ô" + "ÊÔ·¸Ôì" + "ÊÔ¹" + "ÊÔ¹¤éÒ" + "ÊÔ¹¸Ø" + "ÊÔ¹Õ" + "ÊÔ¹à¸ÒÇì" + "ÊÔº" + "ÊÔÁ¾ÅÕ" + "ÊÔÃÔ" + "ÊÔÃÔ¡ÔµÔì" + "ÊÔÅÒ" + "ÊÔÇ" + "ÊÔà¹Ë¡" + "ÊÔà¹ËÒ" + "ÊÔà¹èËÒ" + "ÊÔè§" + "ÊÔèÇ" + "ÊÔé¹" + "ÊÕ" + "ÊÕ¡Ò" + "ÊÕ´Í" + "ÊÕè" + "ÊÖ¡" + "Ê׺" + "Ê×èÍ" + "ÊØ" + "ÊØ¡" + "ÊØ¡¢ì" + "ÊØ¡Ã" + "ÊØ¡ÕéÂÒ¡Õé" + "ÊØ¢" + "ÊØ¢Ð" + "ÊØ¢Ò" + "ÊØ¢ÒÀÔºÒÅ" + "ÊØ¢ÒÃÁ³ì" + "ÊØ¢ÒÇ´Õ" + "ÊØ¢Õ" + "ÊØ¢ØÁ" + "ÊØ¢ØÁÒÅ" + "Êؤµ" + "ÊؤµÔ" + "Êؤ¹¸ÃÊ" + "Êؤ¹¸ì" + "Êؤѹ¸ì" + "Êا¡Ò¡Ã" + "ÊاÊÔ§" + "ÊبÃÔµ" + "Êب˹Õè" + "ÊبÔ" + "Êت¹" + "ÊتҴÒ" + "ÊØ" + "ÊØÒ¡ÒÈ" + "Êس" + "ÊسÔÊÒ" + "ÊØ´" + "ÊØ´Ò" + "Êص" + "ÊصµÐ" + "ÊصÔ" + "ÊØ·¸ÒÇÒÊ" + "ÊØ·¸Ô" + "ÊØ·¸ì" + "ÊØ·Ñȹì" + "ÊظÒ" + "ÊظÕ" + "Êع·Ã" + "Êع·ÃÕ" + "Êع·ÃÕÂÀÒ¾" + "Êع·ÃÕÂÈÒʵÃì" + "ÊعѢ" + "Êعѹ·ì" + "ÊغÃó" + "ÊغԹ" + "ÊؾÃó" + "ÊØÀѤ" + "ÊØÀÒ¾" + "ÊØÀÒÉÔµ" + "ÊØÁ" + "ÊØÁ·ØÁ" + "ÊØÁ¹" + "ÊØÁ¹Ò" + "ÊØÁÒÅÕ" + "ÊØÃÊÕ˹ҷ" + "ÊØÃѵÔ" + "ÊØÃÑÊÇ´Õ" + "ÊØÃÒ" + "ÊØÃÒ§¤¹Ò" + "ÊØÃÒ§¤¹Ò§¤ì" + "ÊØÃÒÃÑ¡Éì" + "ÊØÃÒÅÑÂ" + "ÊØÃÒÉ®Ãì" + "ÊØÃÔ¹·Ãì" + "ÊØÃÔ¡ÒÃ" + "ÊØÃÔ¡ÒÅ" + "ÊØÃÔ¤µÔ" + "ÊØÃÔ¤ÃÒÊ" + "ÊØÃÔ§" + "ÊØÃÔ¹" + "ÊØÃÔÂÁ³±Å" + "ÊØÃÔÂÐ" + "ÊØÃÔÂѹ" + "ÊØÃÔÂÒ" + "ÊØÃÔÂØ»ÃÒ¤Ò" + "ÊØÃÔÂà¤ÃÒÐËì" + "ÊØÃÔ๷Ãì" + "ÊØÃÔàÂÈ" + "ÊØÃÔâÂ" + "ÊØÃÕÂì" + "ÊØÃØèÂÊØÃèÒÂ" + "ÊØÃàÊÕ§" + "ÊØŵèÒ¹" + "ÊØÇÀÒ¾" + "ÊØÇÃó" + "ÊØÇÒ¹" + "ÊØÇÔ·Âì" + "ÊØÇÔ¹ÑÂ" + "ÊØÇÔÁÅ" + "ÊØÊÒ¹" + "ÊØ˹ѵ" + "ÊØËÃèÒÂ" + "ÊØàÁ¸" + "ÊØàÁÃØ" + "ÊØàËÃèÒ" + "ÊØàÍ«" + "ÊØèÁ" + "ÊØéÁ" + "ÊÙ" + "ÊÙ§" + "ÊÙ¨Ô" + "ÊÙ" + "ÊÙ´" + "ÊÙµ" + "ÊÙµÃ" + "ÊÙµÔ" + "ÊÙµÔ¡ÃÃÁ" + "ÊٵԺѵÃ" + "ÊÙµÔÈÒʵÃì" + "ÊÙµÔá¾·Âì" + "ÊÙ·" + "ÊÙº" + "ÊÙÊÕ" + "ÊÙè" + "ÊÙé" + "Êࡵ" + "ÊàµÍÃÔâÍ" + "Êàµç¡" + "Êà¹èËì" + "Ê໡" + "Ê໡µÃÑÁ" + "Ê໹" + "Êà»Ã´ªÕµ" + "Ê᡹" + "Êáŧ" + "ÊâÁÊÃ" + "Êâê" + "ÊäµÅì" + "Êäº" + "ÊäÅ´ì" + "Êè§" + "Êèǹ" + "ÊèÇÂ" + "ÊèÍ" + "Êèͧ" + "Êè͹" + "ÊèÒ" + "ÊèÒ¹" + "ÊèÒÂ" + "ÊèÒËÃÕè" + "ÊèÒàËÅéÒ" + "ÊèÓ" + "Êé¹" + "ÊéÁ" + "ÊéÁ»èÍÂ" + "Êéǧ" + "ÊéÇÁ" + "ÊéÇÂ" + "Êéͧ" + "ÊéÍÁ" + "Ë¡" + "˧" + "˧Êì" + "˧Í" + "˧͡" + "˧ʹ" + "˧͹" + "˧ÍÂ" + "˧ѡ" + "˧Ѻ" + "˧ÒÂ" + "˧Ó" + "˧ԡ" + "˧ԧ" + "˧ÔÁ" + "˧֡" + "˧ا˧ԧ" + "˧ش˧Դ" + "˧غ" + "˧ØèÂ" + "˧èÍÁ" + "˧èÒ§" + "˧èÒÇ" + "ËÔ§" + "ËÔº" + "ËéÒ" + "Ë´" + "Ë·ÑÂ" + "˹" + "˹ǡ" + "˹Ǵ" + "˹Í" + "˹͡" + "˹ͧ" + "˹͹" + "˹ѡ" + "˹ѧ" + "˹ѧÊ×Í" + "˹Ѻ" + "˹Ñè¹" + "˹Ò" + "˹Ҵ" + "˹ҹ" + "˹ÒÁ" + "˹ÒÇ" + "˹Ó" + "˹ÓàÅÕéº" + "˹Õ" + "˹պ" + "˹Õé" + "˹ֺ" + "˹Öè§" + "˹״" + "˹Ø" + "˹ع" + "˹غ" + "˹ØèÁ" + "˹ØèÂ" + "˹Ù" + "˹çÍÂá¹è" + "˹èǧ" + "˹èÇÂ" + "˹èÇ¡Ե" + "˹èÍ" + "˹èÍÂ" + "˹èÒ" + "˹èÒ§" + "˹èÒÂ" + "˹éÒ" + "˹éÒ·Õè" + "ËÁ¡" + "ËÁ´" + "ËÁÇ¡" + "ËÁÇ´" + "ËÁÍ" + "ËÁÍ¡" + "ËÁͧ" + "ËÁ͹" + "ËÁͺ" + "ËÁÍÂ" + "ËÁÑ¡" + "ËÁÑ´" + "ËÁѹ" + "ËÁѺ" + "ËÁÑè¹" + "ËÁÑé¹" + "ËÁÒ" + "ËÁÒ¡" + "ËÁÒ¡ÎÍÊ" + "ËÁÒ§" + "ËÁÒ´" + "ËÁÒÂ" + "ËÁÔè¹" + "ËÁÕ" + "ËÁÕè" + "ËÁÖ¡" + "ËÁ×è¹" + "ËÁØ´" + "ËÁع" + "ËÁغ" + "ËÁغËÁÔº" + "ËÁØèÂ" + "ËÁÙ" + "ËÁÙè" + "ËÁè¹" + "ËÁèͧ" + "ËÁè͹" + "ËÁèÍÁ" + "ËÁèÒ" + "ËÁèÓ" + "ËÁéÍ" + "ËÁéÒÂ" + "Ë¡" + "Ë´" + "ËÂÇ¡" + "ËÂǺ" + "ËÂÍ¡" + "ËÂÍ¡àÍÔ¹" + "ËÂͧ" + "ËÂÍ´" + "ËÂÍÁáËÂÁ" + "ËÂÍÂ" + "ËÂÑ¡" + "ËÂѧ" + "ËÂÑ´" + "ËÂѹ" + "ËÂѺ" + "ËÂÑè§" + "ËÂÒ¡äÂè" + "ËÂÒ´" + "ËÂÒº" + "ËÂÒÁ" + "ËÂÒÇ" + "ËÂÓà»" + "ËÂÔ¡" + "ËÂÔº" + "ËÂÔÁ" + "ËÂÔè§" + "ËÂÕ" + "ËÂØ¡ËÂÔ¡" + "ËÂØ´" + "ËÂغ" + "ËÂØÁËÂÔÁ" + "ËÂØè¹" + "ËÂÙ¡ÂÒ" + "ËÂçͧáËÂç§" + "ËÂè§" + "ËÂèͧ" + "ËÂè͹" + "ËÂèÍÁ" + "ËÂèÍÂ" + "ËÂèÒ" + "ËôÕ" + "ËÃÃÉÒ" + "ËÃÍ" + "ËÃÍ¡" + "ËÃÍÂ" + "ËÃÒ" + "ËÃÔ" + "ËÃÔè§" + "ËÃÕ´" + "ËÃÕè" + "ËÃ×Í" + "ËÃغ" + "ËÃغÃÙè" + "ËÃغËÃÙè" + "ËÃØèÁ" + "ËÃÙ" + "ËÃçÍÁáËÃçÁ" + "ËÄ·ÑÂ" + "ËÄËÃÃÉì" + "ËÄâË´" + "ËÅ" + "Ëŧ" + "ËÅ´" + "ËŹ" + "Ëź" + "ËÅǧ" + "ËÅÇÁ" + "ËÅÍ" + "ËÅÍ¡" + "ËÅÍ´" + "ËÅ͹" + "ËÅÍÁ" + "ËÅÐ" + "ËÅÑ¡" + "ËÅѧ" + "ËÅÑ´" + "ËÅѺ" + "ËÅÑÇ" + "ËÅÑè§" + "ËÅÑè¹" + "ËÅÒ" + "ËÅÒ¡" + "ËÅÒ¹" + "ËÅÒº" + "ËÅÒÁ" + "ËÅÒÂ" + "ËÅÒÇ" + "ËÅÔ¡" + "ËÅÔÁ" + "ËÅÔÇ" + "ËÅÔèÇ" + "ËÅÕ" + "ËÅÕ¡" + "ËÅÕÎ×éÍ" + "ËÅ׺" + "ËÅØ¡ËÅÔ¡" + "ËÅØ´" + "ËÅع" + "ËÅغ" + "ËÅØÁ" + "ËÅÙè" + "ËÅè¹" + "ËÅèÁ" + "ËÅèÍ" + "ËÅè͹" + "ËÅèÐ" + "ËÅéÒ" + "Ëǧ" + "ËÇ´" + "Ëǹ" + "ËÇÂ" + "ËÇÍ" + "ËÇÍ´" + "ËÇÐ" + "ËÇѧ" + "ËÇÑ´" + "ËÇÑÇ" + "ËÇÑÇÃèÍ" + "ËÇÑè¹" + "ËÇÒ" + "ËÇÒ´" + "ËÇÒ¹" + "ËÇÒÁ" + "ËÇÒÂ" + "ËÇÓ" + "ËÇÔ´" + "ËÇÔÇ" + "ËÇÕ" + "ËÇÕ´" + "ËÇÕè" + "ËÇ×Í" + "ËÇØ´ËÇÔ´" + "ËÇØÁ" + "ËÇÙ´" + "ËÇçÍÂ" + "ËÇèÒ" + "ËÇèÒ§" + "ËÇèÒ¹" + "ËÇéÒ" + "ËÍ" + "ËÍ¡" + "Ëͧ" + "Ë͹" + "Ëͺ" + "ËÍÁ" + "ËÍÂ" + "ËÐáá" + "ËÑ¡" + "ËÑ´" + "Ëѵ¶¡ÃÃÁ" + "Ëѵ¶¡ÒÃ" + "Ëѵ¶¡Ô¨" + "Ëѵ¶ºÒÊ" + "Ëѵ¶ÈÔÅ»ì" + "Ëѵ¶ÈÖ¡ÉÒ" + "Ëѵ¶Õ" + "Ëѵ¶ì" + "Ëѹ" + "ËѺ" + "ËÑÇ" + "ËÑǺء" + "ËÑÇ˹éÒ" + "ËÑÇàÃÒÐ" + "ËÑÊ" + "ËÑè¹" + "ËÑé¹" + "ËÒ" + "ËÒ¡" + "ËÒ§" + "ËÒ" + "ËÒ´" + "ËÒ¹" + "ËÒº" + "ËÒÁ" + "ËÒÂ" + "ËÒ¹Ð" + "ËÒÃ" + "ËÒÃ×Í" + "ËÒÇ" + "ËÓ" + "ËÔ§ÊÒ" + "ËÔ§ËéÍÂ" + "ËÔ´" + "ËÔ¹" + "ËÔÁÐ" + "ËÔÁÒÅÑÂ" + "ËÔÃÑ" + "ËÔÃÔ" + "ËÔÇ" + "ËÔè§ËéÍÂ" + "ËÔé§" + "ËÔéÇ" + "ËÕ¹ÂÒ¹" + "ËÕº" + "ËÖ" + "ËÖ§" + "ËÖè§" + "Ë×´" + "Ë×¹" + "Ë×Í" + "Ë×è¹" + "Ë×éÍ" + "Ëا" + "Ëع" + "Ëغ" + "ËØÂÎÒ" + "ËØè¹" + "ËØé¹" + "ËØéÁ" + "ËÙ" + "ËÙ¡" + "ËÙ´" + "ËÙè" + "Ëâ´Á" + "ËèÁ" + "Ëèǧ" + "ËèÇÂ" + "ËèÍ" + "Ëè͹" + "ËèÒ" + "ËèÒ§" + "ËèÒ¹" + "ËèÒÁ" + "Ëéǧ" + "Ëéǹ" + "ËéÇÂ" + "ËéÍ" + "Ëéͧ" + "ËéÍÁ" + "ËéÍÂ" + "ËéÒ" + "ËéÒ§" + "ËéÒÁ" + "ËéÒÇ" + "ËéÓ" + "Í¡" + "Í¡µÑصÒ" + "Í¡µÑÙ" + "Í¡¹ÔÉ°ì" + "͡óÕÂì" + "Í¡ÃÃÁ¡ÃÔÂÒ" + "Í¡ØÈÅ" + "ͤµÔ" + "ͤҸ" + "ͧ¡ì" + "ͧ¤ªÒµÔ" + "ͧ¤Á¹µÃÕ" + "ͧ¤ÁÃÃÉ" + "ͧ¤ÃÑ¡Éì" + "ͧ¤ÇÔ·ÂÒ" + "ͧ¤Ò¾Â¾" + "ͧ¤ØÅ" + "ͧ¤ØÅÕ" + "ͧ¤ì" + "ͧ¤ì¡Ã" + "ͧ¤ì¡ÒÃ" + "ͧÈÒ" + "ͧÍÒ¨" + "ͧØè¹" + "ͨÅÒ" + "ͨԵµÔ" + "ͨԹµÒ" + "ͨԹäµÂ" + "ͨÔÃÐ" + "ͪ" + "ͪÒ" + "ͪԹ" + "ͪԹÕ" + "ͪÔÃ" + "ͯÇÕ" + "ͳÔ" + "ͳØ" + "ͳÙ" + "Í´" + "Í´Ô¶Õ" + "Í´ÔÈÃ" + "Í´ÔÈÇÃ" + "Í´ÔÈÑÂ" + "Í´Ôà·¾" + "Í´Ôàá" + "Í´Õµ" + "Í´ØÅ" + "Í´ØÅÂ" + "Í´ØÅÂì" + "͵Ԫҵ" + "͵ÔÁÒ¹Ð" + "͵ÔÃÒª" + "͵ÔÊÒÃ" + "͵Ôàá" + "Í·Ô¹¹Ò·Ò¹" + "͸ÃÃÁ" + "͸ԡÁÒÊ" + "͸ԡóì" + "͸ԡÇÒÃ" + "͸ԡÊØ÷Թ" + "͸ԡÒÃ" + "͸ԤÁ" + "͸ԯ°Ò¹" + "͸Ժ´Õ" + "͸ԺÒÂ" + "͸Ի" + "͸ԻäµÂ" + "͸ÔÃÒª" + "͸ÔÉ°Ò¹" + "͸֡" + "͹§¤³Ð" + "͹§¤àÅ¢Ò" + "͹§¤ì" + "͹§àÅ¢" + "͹¸¡ÒÃ" + "͹ѵµÒ" + "͹ѹµì" + "͹Ҥµ" + "͹ҤÒÁÕ" + "͹ҨÒÃ" + "͹Ҷ" + "͹ҶÒ" + "͹ҷÃ" + "͹ҸԻäµÂ" + "͹ÒÁÑÂ" + "͹Òê¹" + "͹ÒøÃÃÁ" + "͹ÒÃÂÐ" + "͹ÒÅÑÂ" + "͹Ԩ" + "͹Ԩ¨Ñ§" + "͹Ԩ¨Ò" + "͹ԯ°ÒÃÁÂì" + "͹ÔÂÁ" + "͹Öè§" + "͹Ø" + "͹ءÃ" + "͹ءÃÁ" + "͹ءÃÃÁ¡ÒÃ" + "͹ءҪҴ" + "͹ءÒÃ" + "͹ءÙÅ" + "͹بÃ" + "͹ت¹" + "͹تÒ" + "͹تҵ" + "͹تԵ" + "͹ØÒµ" + "͹ØÒâµµØÅÒ¡ÒÃ" + "͹طԹ" + "͹غ·" + "͹غÒÅ" + "͹ػÃÔÒ" + "͹ؾ§Èì" + "͹ؾѹ¸ì" + "͹ØÀÃÃÂÒ" + "͹ØÀÃÔÂÒ" + "͹ØÀÒ¤" + "͹ØÁѵÔ" + "͹ØÁÒµÃÒ" + "͹ØÁÒ¹" + "͹ØÁÙÅ" + "͹ØÃѡɹÔÂÁ" + "͹ØÃÑ¡Éì" + "͹ØÃÒª" + "͹ØÃÙ»" + "͹ØǧÈì" + "͹ØÇѵ" + "͹ØÈÒÊ¡" + "͹ØÈÒʵÃÒ¨ÒÃÂì" + "͹ØÈÒʹì" + "͹ØÈÔɯì" + "͹ØʵÔ" + "͹Øʹ¸Ô" + "͹ØÊÃ" + "͹ØÊóì" + "͹ØÊÑÒ" + "͹ØÊÑÂ" + "͹ØÊÒÇÃÕÂì" + "͹ØÊÒʹÕ" + "͹Øà¤ÃÒÐËì" + "͹Øà¶ÃÐ" + "͹ØâÁ·¹Ò" + "͹Øâ¤" + "͹ØâÅÁ" + "ͺ" + "ͺÒÂ" + "ͺÒÂÀÙÁÔ" + "ͺÒÂÁØ¢" + "Í»Á§¤Å" + ";¾" + ";ÒÃìµàÁ¹µì" + "ÍÀÑÂ" + "ÍÀÔª¹" + "ÍÀÔªÒµ" + "ÍÀÔÒ" + "ÍÀÔ¸ÃÃÁ" + "ÍÀÔ¸Ò¹" + "ÍÀԹѹ·ì" + "ÍÀÔ¹ÑÂ" + "ÍÀÔ¹ÔËÒÃ" + "ÍÀÔºÒÅ" + "ÍÀÔ»ÃѪÒ" + "ÍÀÔ»ÃÒÂ" + "ÍÀÔÁËÒÍÓ¹Ò¨" + "ÍÀÔÁÒ¹Ð" + "ÍÀÔÁØ¢" + "ÍÀÔôÕ" + "ÍÀÔÃÁÂì" + "ÍÀÔÃÑ¡Éì" + "ÍÀÔÅÑ¡¢ÔµÊÁÑÂ" + "ÍÀÔÇѹ·ì" + "ÍÀÔÇÒ·¹ì" + "ÍÀÔÊÁÑÂ" + "ÍÀÔÊÁÒ¨ÒÃ" + "ÍÀÔÊÁ⾸Ô" + "ÍÀÔÊÑÁ⾸Ô" + "ÍÀÔÊÔ·¸Ôì" + "ÍÀÔàÅ»¹ì" + "ÍÀÔàÉ¡" + "ÍÀÔä¸Â" + "ÍÁ" + "ÍÁµÐ" + "ÍÁ¹ØÉÂì" + "ÍÁÃ" + "ÍÁÃÒ" + "ÍÁÃÒÇ´Õ" + "ÍÁÃÔ¹·Ãì" + "ÍÁĵ" + "ÍÁĵÂÙ" + "ÍÁÔµÃ" + "ÍÁàÃÈ" + "ÍÂÒ¡" + "ÍÂظÂÒ" + "ÍÂÙè" + "ÍÂèÒ" + "ÍÂèÒ§" + "ÍÃ" + "ÍêÃ" + "ÍÃó¾" + "ÍÃö" + "ÍÃöҸԺÒÂ" + "ÍÃËÐ" + "ÍÃËѧ" + "ÍÃËѹµì" + "ÍÃÑ" + "ÍÃÔ" + "ÍÃÔºؤ¤Å" + "ÍÃÔÂÐ" + "ÍÃÔÊâµàµÔÅ" + "ÍÃس" + "ÍÃØâ³·ÑÂ" + "ÍÃä·" + "ÍÃèÍÂ" + "ÍÃèÒÁ" + "Íŧ¡µ" + "Íŧ¡Ã³ì" + "Íŧ¡ÒÃ" + "ÍÅǹ" + "ÍÅËÁèÒ¹" + "ÍÅѧ¡ÒÃ" + "ÍÅѪªÕ" + "ÍÅÖ觩Öè§" + "ÍÅàǧ" + "ÍÅèͧ©èͧ" + "ÍÅèÒ§©èÒ§" + "ÍÇ¡ÒÈ" + "ÍÇ´" + "ÍǵÒÃ" + "Íǹ" + "ÍǺ" + "ÍÇÁ§¤Å" + "ÍÇÂ" + "ÍÇÅ" + "ÍÇÊÒ¹" + "ÍÇËÒÃ" + "ÍÇÑÂÇÐ" + "ÍÇÔªªÒ" + "Íʧä¢Â" + "Íʹպҵ" + "ÍÊÁ¡ÒÃ" + "ÍÊÁÁÒµÃ" + "ÍÊþÔÉ" + "ÍÊѧËÒÃÔÁ·ÃѾÂì" + "ÍÊÑÕ" + "ÍÊÑá´ËÇÒ" + "ÍÊѵÂì" + "ÍÊÕµÔ" + "ÍÊبÔ" + "ÍÊعպҵ" + "ÍÊØáÒÂ" + "ÍÊØÃÕ" + "ÍÊÙÃ" + "ÍËѧ¡ÒÃ" + "ÍËÔ§ÊÒ" + "ÍËÔÇÒµ¡âä" + "ÍÍ" + "ÍÍ¡" + "ÍÍ¡«Ôਹ" + "ÍÍ¡«Ôപѹ" + "ÍÍ¡Ò" + "ÍÍ¡ä«´ì" + "ÍÍ´" + "ÍÍ´ÔâÍ" + "Í͹ªÍÃì" + "Í͹«Í¹" + "Í͹«ì" + "Í͹äŹì" + "ÍÍ»ªÑ¹" + "ÍÍ»à¨ç¡µì" + "ÍÍ¿" + "ÍÍ¿ªÍÃì" + "ÍÍ¿¿ÔÈ" + "ÍÍÁ" + "ÍÍÃÒà¤ÔÅ" + "ÍÍÃì᡹" + "ÍÍÊ" + "ÍÍÊàµÃàÅÕÂ" + "ÍФÃéÒÇ" + "ÍдÃÕ¹ÒÅÔ¹" + "ÍеÍÁ" + "ÍÐÃéÒÍÃèÒÁ" + "ÍÐÅØèÁÍÅèÇÂ" + "ÍÐÅØéÁÍÅèÇÂ" + "ÍÐÅÙÁÔà¹ÕÂÁ" + "ÍÐà¤×éÍ" + "ÍÐà«·ÔÅÕ¹" + "ÍÐäÃ" + "ÍÐäËÅè" + "ÍÑ¡" + "ÍÑ¡¢" + "ÍÑ¡¢ÃÇÔ¸Õ" + "ÍÑ¡¢ÃÇԺѵÔ" + "ÍÑ¡¢ÃÊÁÑÂ" + "ÍÑ¡¢ÃÐ" + "ÍÑ¡ÉÃ" + "ÍÑ¡ÉÐ" + "ÍÑ¡àʺ" + "ÍÑ¡â¢" + "ÍѤ¤Ð" + "ÍѤ¤Õ" + "ÍѤ¹Õ" + "ÍѤêÒÂÒ" + "ÍѤÃÁàËÊÕ" + "ÍѤÃÃÒª·Ùµ" + "Íѧ" + "Íѧ¡ÄÉ" + "Íѧ¡ÐÅا" + "Íѧ¤³Ò" + "Íѧ¤ÒÃ" + "Íѧ¤ÒÊ" + "ÍѧʵÃÍÁ" + "ÍѧʹÒ" + "ÍѨ¡ÅѺ" + "ÍѨ¨Ñ¹µì" + "ÍѨ¨ÑÂ" + "ÍѨ¨Ô" + "ÍѨ©ÃÒ" + "ÍѨ©ÃÔºؤ¤Å" + "ÍѨ©ÃÔÂÐ" + "ÍѨ¹Ò" + "ÍѪ¬Ò" + "ÍѪ¬ÒÊÑÂ" + "ÍѪ¹Ð" + "ÍѪÅÕ" + "ÍѪѹ" + "ÍÑ»ÃСÒÈ" + "ÍÑÁ³Õ" + "ÍÑÁÑÐ" + "ÍÑÃÙ»" + "ÍÑàªÔ" + "Íѯ" + "Íѯ°Ð" + "ÍÑ°" + "ÍÑ°ÌÊ" + "ÍÑ°Ô" + "ÍѲ¨Ñ¹·Ãì" + "ÍѲÀÒ¤" + "ÍѲÁ³±Å" + "ÍѲÁÒÊ" + "ÍѲÃѵµÔ" + "Íѳ±ªÐ" + "Íѳ±Ð" + "Íѳ±Ò¡ÒÃ" + "ÍÑ´" + "Íѵ¤Ñ´" + "ÍѵªÕÇ»ÃÐÇѵÔ" + "ÍѵµÐ" + "ÍѵµÒ" + "ÍѵµÒ¸Ô»äµÂ" + "Íѵ¹ÑÂ" + "ÍѵÀÒ¾" + "ÍѵÃÒ" + "ÍѵÇÔ¹ÔºÒµ¡ÃÃÁ" + "Íѵâ¹ÁѵÔ" + "ÍѸÂÒÈÑÂ" + "Íѹ" + "Íѹ´Ñº" + "ÍѹµÃ¸Ò¹" + "ÍѹµÃÒÂ" + "Íѹ¸¡ÒÃ" + "Íѹ¸¾ÒÅ" + "Íѹà´ÍÃì" + "ÍѺ" + "ÍÑ»ÀÒ¤Âì" + "ÍÑ»Á§¤Å" + "ÍÑ»ÂÈ" + "ÍÑ»ÃÐÁÒ³" + "ÍÑ»ÃÒªÑÂ" + "ÍÑ»ÃÕÂì" + "ÍÑ»Åѡɳì" + "ÍÑ»ÊÃ" + "ÍÑ»à»ËÔ" + "ÍѾà¡Ã´" + "ÍѾവ" + "ÍѾഷ" + "ÍÑ¿" + "ÍÑÁ¾Ã" + "ÍÑÁ¾Ä¡Éì" + "ÍÑÁ¾Ò" + "ÍÑÁ¾Òµ" + "ÍÑÁ¾Øª" + "ÍÑÁÊàµÍÃì´ÑÁ" + "ÍÑ¡Ò" + "ÍÑ¡ÒÃ" + "ÍÑÂÂÔ¡Ò" + "ÍÑŨÕàÃÕÂ" + "ÍÑźÑéÁ" + "ÍÑźÒà¹ÕÂ" + "ÍÑÅàºà¹ÕÂ" + "ÍÑȨÃÃÂì" + "ÍÑÈÇÔ¹" + "ÍÑÈÇÔ¹Õ" + "ÍÑÈà¨ÃÕÂì" + "ÍÑÉ®ÒÂØ·" + "ÍÑÉ®ÒÇظ" + "ÍÑÊ´§" + "ÍÑÊ´§¤µ" + "ÍÑÊ´Ã" + "ÍÑʹÕ" + "ÍÑÊÊÐ" + "ÍÑÊÊÒÊÐ" + "ÍÑÊÊØ" + "ÍÑé¡" + "ÍÑé§ÂÕè" + "ÍÑé§âÅè" + "ÍÑé¹" + "ÍÑê¡" + "ÍÑë¹" + "ÍÒ" + "ÍÒ¡Ã" + "ÍÒ¡Ñ»¡ÔÃÔÂÒ" + "ÍÒ¡ÒÃ" + "ÍÒ¡ÒÈ" + "ÍÒ¡ÙÅ" + "ÍÒ¡éÒ" + "ÍÒ¢ÂÒ¹" + "ÍÒ¤Á" + "ÍҤѹµØ¡Ð" + "ÍÒ¤ÒÃ" + "ÍÒ¤à¹Âì" + "ÍÒ¦Òµ" + "ÍÒ§¢¹Ò§" + "ÍÒ¨" + "ÍÒ¨Á" + "ÍÒ¨ÃÔÂÇѵÃ" + "ÍÒ¨Ò´" + "ÍÒ¨ÒÃÂì" + "ÍÒ¨Ô³" + "ÍÒªÒ" + "ÍÒªÒ" + "ÍÒªÒä¹Â" + "ÍÒªÕ¾" + "ÍÒªÕÇÈÖ¡ÉÒ" + "ÍÒªÕÇÐ" + "ÍÒÒ" + "ÍҳѵÔ" + "ÍÒ³Ò" + "ÍÒ´" + "ÍÒ´ÙÃ" + "ÍÒµÁÀÒ¾" + "ÍÒµÁÒ" + "ÍÒ¶Ãþ³ì" + "ÍÒ¶Ãþì" + "ÍÒ·Ã" + "ÍÒ·Ô" + "ÍÒ·ÔµÂì" + "ÍÒ¹" + "ÍÒ¹ÔʧÊì" + "ÍÒ¹ØÀÒ¾" + "ÍÒº" + "ÍҺѵÔ" + "ÍÒ¾Ò¸" + "ÍÒ¿¡Ò¹Ôʶҹ" + "ÍÒ¿ÃÔ¡Ò" + "ÍÒÀóì" + "ÍÒÀѾ" + "ÍÒÀÒ" + "ÍÒÁÔÊ" + "ÍÒÂ" + "ÍÒµ¹Ð" + "ÍÒÂÑ´" + "ÍÒÂØ" + "ÍÒÂØÃÈÒʵÃì" + "ÍÒÂØÃàǪ" + "ÍÒÂØÃá¾·Âì" + "ÍÒúԤ" + "ÍÒÃÁ³ì" + "ÍÒê¹" + "ÍÒêҵÔ" + "ÍÒøÃÃÁ" + "ÍÒûÃÐà·È" + "ÍÒÃÂÐ" + "ÍÒÃÂѹ" + "ÍÒÃÑ¡¢Ò" + "ÍÒÃÑ¡Éì" + "ÍÒÃÑÁÀ¡¶Ò" + "ÍÒÃÑÁÀº·" + "ÍÒÃÒ¸¹Ò" + "ÍÒÃÒÁ" + "ÍÒÃÒÁÔ¡" + "ÍÒÃÒàºÕÂ" + "ÍÒÃÕ" + "ÍÒÃ줵ԡ" + "ÍÒÃìૹÍÅ" + "ÍÒÅ»¹Ð" + "ÍÒÅÐÇÒ´" + "ÍÒÅѡɳì" + "ÍÒÅÑÂ" + "ÍÒÅÑÇ" + "ÍÒÇ" + "ÍÒÇóì" + "ÍÒÇÒÊ" + "ÍÒÇÒËÐ" + "ÍÒÇظ" + "ÍÒÇØâÊ" + "ÍÒÇì" + "ÍÒÈÃÁ" + "ÍÒÈÑÂ" + "ÍÒÈÔÃÇÒ·" + "ÍÒʹÐ" + "ÍÒʹì" + "ÍÒÊÑ" + "ÍÒÊÒ" + "ÍÒÊÒÌ˺٪Ò" + "ÍÒÊÙÃ" + "ÍÒËÃѺ" + "ÍÒËÒÃ" + "ÍÒà¨Õ¹" + "ÍÒà«ÕÂ" + "ÍÒàÃàºÕÂ" + "ÍÒàǤ" + "ÍÒàÇÈ" + "ÍÒàÈÕÂÃÇÒ·" + "ÍÓ" + "ÍÓ¹ÇÂ" + "ÍÓ¹Ò¨" + "ÍӾйÓ" + "ÍӾѹ" + "ÍÓÁĵ" + "ÍÓÁËÔµ" + "ÍÓÁÒµÂì" + "ÍÓÅÒ" + "ÍÓàÀÍ" + "ÍÓä¾" + "ÍÔ§" + "ÍÔ§¤ì" + "ÍÔ§¤ìà¨çµ" + "ÍÔ¨©Ò" + "Íԩѹ" + "ÍÔ¯°ÒÃÁ³ì" + "ÍÔ°" + "ÍÔ´" + "ÍÔµ¶Õ" + "ÍÔµÒÅÕ" + "ÍÔµÒàÅÕ¹" + "ÍÔ·¸Ô" + "ÍÔ¹" + "ÍÔ¹«ÙÅÔ¹" + "ÍÔ¹·¹ÔÅ" + "ÍÔ¹·¼ÅÑÁ" + "ÍÔ¹·Ã¸¹Ù" + "ÍÔ¹·ÃǧÈì" + "ÍÔ¹·ÃÇÔàªÕÂÃ" + "ÍÔ¹·ÃÒ" + "ÍÔ¹·ÃÒà¹çµ" + "ÍÔ¹·ÃÕ" + "ÍÔ¹·ÃÕÂÊѧÇÃ" + "ÍÔ¹·ÃÕÂì" + "ÍÔ¹·Ãì" + "ÍÔ¹¾Øµ" + "ÍÔ¹¿ÃÒàô" + "ÍÔ¹¿ÍÃìÁÔ¡" + "ÍԹѧ" + "ÍÔ¹à´ÕÂ" + "ÍÔ¹à´Õ¹ᴧ" + "ÍÔ¹àµÍÃì" + "ÍÔ¹àµÍÃìà¹çµ" + "ÍÔ¹àµÍÃìà¿«" + "ÍÔ¹à·Å" + "ÍÔ¹à·ÍÃì๵" + "ÍÔ¹à·ÍÃìà¹çµ" + "ÍÔ¹à·ÍÃìà¿«" + "ÍԹⴹÔà«ÕÂ" + "ÍԹⴹÕà«ÕÂ" + "ÍÔ¹â´à«ÕÂ" + "ÍÔÁ¾ÍÃìµ" + "ÍÔÁàÁ¨" + "ÍÔÂÔ»µì" + "ÍÔÃÔÂÒº¶" + "ÍÔÈÇÃ" + "ÍÔɯÕ" + "ÍÔɯì" + "ÍÔÊ" + "ÍÔʵÃÕ" + "ÍÔÊÃÀÒ¾" + "ÍÔÊÃÐ" + "ÍÔÊÃÒàÍÅ" + "ÍÔÊÃÔÂÂÈ" + "ÍÔÊÃÔÂÐ" + "ÍÔÊÃÔÂÒÀóì" + "ÍÔÊÊÒ" + "ÍÔÊÔ" + "ÍÔÊÕ" + "ÍÔËÁèÒÁ" + "ÍÔËÃèÒ¹" + "ÍÔËÅÑ¡ÍÔàËÅ×èÍ" + "ÍÔàÅ硵Ã͹" + "ÍÔàÅç¡·Ã͹ԡÊì" + "ÍÔàÅç¡â·¹" + "ÍÔèÁ" + "ÍÕ" + "ÍÕ¡" + "ÍÕ¡Ò" + "ÍÕ¡éÍ" + "ÍÕ¤ÍÁàÁÔÃì«" + "ÍչاµØ§¹Ñ§" + "ÍÕÁÙ" + "ÍÕÂÔ»µì" + "ÍÕÅØè©ØÂá©¡" + "ÍÕÅØéÁ" + "ÍÕÊÒ¹" + "ÍÕÊØ¡ÍÕãÊ" + "ÍÕËÃͺ" + "ÍÕËÅÑ¡ÍÔàËÅ×èÍ" + "ÍÕËÅÕ" + "ÍÕàµéÍ" + "ÍÕà·ÍÃì" + "ÍÕàÁÅì" + "ÍÕàËÅÐà¢Ð¢Ð" + "ÍÕâËÅ¡â¢Å¡à¢Å¡" + "ÍÕê´" + "ÍÕë" + "ÍÖ" + "ÍÖ¡" + "ÍÖ¡·Ö¡" + "ÍÖ¡ÍÑ¡" + "ÍÖ§" + "ÍÖ§ÁÕè" + "ÍÖ§ÍÅ" + "ÍÖ´" + "ÍÖè§" + "ÍÖé§" + "ÍÖé´·Öè´" + "ÍÖê¡" + "Í×´" + "Í×Í" + "Í×è¹" + "Í×é¹" + "Í×éÍ" + "ÍØ" + "ÍØ¡" + "ÍØ¡¡ÒºÒµ" + "ÍØ¡Äɯì" + "Íب¨ÒÃÐ" + "ÍبҴ" + "ÍبÒÃÁÃä" + "Íب੷" + "ÍتØ" + "Íد°Ò¡ÒÃ" + "ÍسËÀÙÁÔ" + "ÍسËÐ" + "ÍسËÒ¡ÒÃ" + "ÍسËÔÊ" + "ÍسÒ" + "ÍØ´" + "ÍØ´Á" + "ÍØ´Ã" + "Íش˹ع" + "Íص¾Ô´" + "ÍصôԵ¶ì" + "ÍصÃÔ" + "ÍصÅØ´" + "ÍصÊÒË¡ÃÃÁ" + "ÍصÊÒËÐ" + "ÍصÊèÒËì" + "ÍصØ" + "ÍØ·¡" + "ÍØ·¸Ã³ì" + "ÍØ·¸Ñ¨" + "ÍØ·ÂÒ¹" + "ÍØ·Ã" + "ÍØ·ÅØÁ" + "ÍطѪ" + "ÍØ·ÑÂ" + "ÍØ·Ò¹" + "ÍØ·ÒÃ" + "ÍØ·ÒËóì" + "ÍØ·ÔÈ" + "ÍØ·ØÁ¾Ã" + "ÍظѨ" + "Íغ" + "ÍغÅ" + "ÍغÍÔº" + "ÍغÐ" + "ÍغѵÔ" + "Íغҷ" + "ÍغҷÇì" + "ÍغÒÂ" + "ÍغÒÊ¡" + "ÍغÒÊÔ¡Ò" + "ÍغêÐ" + "ÍØ»" + "ÍØ»¡Ã³ì" + "ÍØ»¡ÃÁ" + "ÍØ»¡ÒÃÐ" + "ÍØ»¡ÒÃÕ" + "ÍØ»¶ÑÁÀ¡" + "ÍØ»¶ÑÁÀì" + "ÍØ»·Ò¹" + "ÍØ»·Ùµ" + "ÍØ»¹ÑÂ" + "ÍØ»¹Ò¡" + "ÍØ»¹ÔÊÑÂ" + "ÍØ»ÁÒ" + "ÍØ»ÁÒ¹" + "ÍØ»ÃÒª" + "Íػʧ¤ì" + "ÍØ»ÊÁº·" + "ÍØ»ÊÃä" + "ÍØ»ÊÑÁ»·Ò" + "ÍػѪ¬ÒÂÐ" + "ÍػѪ¬ÒÂì" + "Íػѯ°Ò¡" + "Íػѯ°Ò¹Ð" + "ÍػѷÇѹµÃÒÂ" + "ÍػѷÇà˵Ø" + "Íػҷҹ" + "ÍØ»âÀ¤" + "ÍØ»â¤" + "ÍØ»âÅ¡¹ì" + "ÍØ»äÁÂ" + "ÍØÂ" + "ÍØÃÐ" + "ÍØÃѧÍصѧ" + "ÍØÃÒ" + "ÍØÃØ" + "ÍØÃاÍصѧ" + "ÍØɳÕÂì" + "ÍØÉÒ" + "ÍØÊÒ" + "ÍØÊØ" + "ÍØມ¢Ò" + "ÍØàËÁè" + "ÍØáÇé" + "ÍØâ¦É" + "ÍØâºÊ¶" + "ÍØâÁ§¤ì" + "ÍØäÃ" + "ÍØè¹" + "ÍØèÂ" + "ÍØé§" + "ÍØéÁ" + "ÍØéÂ" + "ÍØêÂ" + "ÍÙ" + "ÍÙ°" + "ÍÙ´" + "ÍÙÁ" + "ÍÙÃØ" + "ÍÙè" + "ÍÙé" + "ÍÙéÍÕé" + "ÍÙëÍÕë" + "Íà¨Å¡" + "Íà¨ÅÐ" + "Í๡" + "Í๡¤Ø³" + "Í๨͹Ҷ" + "Íà»ËÔ" + "ÍàÁ" + "ÍàÁÃԡѹ" + "ÍàÁÃÔ¡Ò" + "ÍàǨÕ" + "Íá´»àµÍÃì" + "Íâ¦ÉÐ" + "Íâ³·ÑÂ" + "Í⹪Ò" + "Íâ¹´Òµ" + "ÍâÅËÐ" + "ÍâÈ¡" + "ÍâËÊÔ" + "Íèͧ" + "Íè͹" + "ÍèÍÂ" + "ÍèÒ" + "ÍèÒ§" + "ÍèÒ¹" + "ÍèÒÇ" + "ÍèÓ" + "Íé¹" + "ÍéÇ¡" + "Íéǹ" + "ÍéÍ" + "Íé͹" + "Íé͹áÍé¹" + "ÍéÍÁ" + "ÍéÍÂ" + "ÍéÍÂÊéÍÂ" + "ÍéÍÂÍÔè§" + "ÍéÒ" + "ÍéÒ§" + "ÍéÒÂ" + "ÍéÒÇ" + "ÍéÓÍÖé§" + "ÍêÍ´" + "ÍêÐ" + "ÍëÍ" + "Íëͧ" + "ÍëÍÂ" + "Ρà¡Õé¹" + "Îǧ«ØéÂ" + "Îǹ" + "ÎǺ" + "ÎÍ¡¡Õé" + "ÎÍ´" + "Î͹â¹ÅÙÅÙ" + "ÎÍÃìâÁ¹" + "ÎÍÅѹ´Ò" + "ÎÍÅᏴì" + "ÎÐ" + "ÎÑ¡" + "Îѧ¡ÒÃÕ" + "ÎÑè¹" + "ÎÑéÇ" + "ÎÒ" + "ÎÒÁ" + "ÎÒÃì´´Ôʤì" + "ÎÒÃì´áÇÃì" + "ÎÒàÃçÁ" + "ÎÒâÅÇÕ¹" + "ÎÔµ" + "ÎÔ¹´Ù" + "ÎÔ»â»â»àµÁÑÊ" + "ÎÔÊ·ÕàÃÕÂ" + "ÎÕàÅÕÂÁ" + "ÎÕâÃè" + "ÎÖ" + "ÎÖ¡" + "ÎÖ´" + "ÎÖ´ÎÑ´" + "ÎÖÁ" + "ÎÖÂ" + "ÎÖèÁ" + "Î×´ÎÒ´" + "Î×Í" + "Î×èÍ" + "Î×éÍ" + "Îغ" + "ÎØÂàÅÎØÂ" + "ÎÙ¡" + "ÎÙÁ" + "ÎÙé" + "ÎèÍ" + "Îèͧ¡§" + "Îèͧàµé" + "ÎéÍ" + "ÎéÒ" + "à¡" + "à¡¡ÁÐàËá" + "ࡨÔÍÒ¨ÒÃÂì" + "ࡳ±ì" + "à¡´" + "ࡵØ" + "ࡹ" + "à¡Á" + "à¡ÁÊì" + "à¡Â" + "à¡Ã§" + "à¡Ã´" + "à¡ÃÍÐ" + "à¡ÃÒÐ" + "à¡ÃÔ¡" + "à¡ÃÔè¹" + "à¡ÃÕ¡" + "à¡ÃÕ§" + "à¡ÃÕ¹" + "à¡ÃÕº" + "à¡ÃÕÂÁ" + "à¡ÃÕÂÇ" + "à¡ÃÕéÂÇ" + "à¡Ãç§" + "à¡Ãç´" + "à¡ÃèÍ" + "à¡Å" + "à¡ÅÍ" + "à¡ÅÒ" + "à¡ÅÕ§" + "à¡ÅÕ´" + "à¡ÅÕÂÇ" + "à¡ÅÕèÂ" + "à¡ÅÕéÂ" + "à¡ÅÕé§" + "à¡Å×Í" + "à¡Å×Í¡" + "à¡Å×è͹" + "à¡Å×éÍ" + "à¡Å×é͹" + "à¡Åç´" + "à¡ÅéÒ" + "à¡ÇÕ¹" + "à¡È" + "à¡ÈÒ" + "à¡ÈÔ¹Õ" + "à¡ÉµÃ" + "à¡ÉµÃ¡Ã" + "à¡ÉµÃ¡ÃÃÁ" + "à¡ÉÁ" + "à¡ÉÕ³" + "à¡ÉÕ¹" + "à¡ÊÃ" + "à¡Í" + "à¡ÍÃì" + "à¡ÍÔªÒ" + "à¡Ð" + "à¡Ð¡Ð" + "à¡Ò" + "à¡Òµì" + "à¡Ò·Ñ³±ì" + "à¡ÒÅÑ´" + "à¡ÒËÅÕ" + "à¡ÒÐ" + "à¡ÒàËÅÒ" + "à¡Ô§" + "à¡Ô´" + "à¡Ô¹" + "à¡ÕÂ" + "à¡Õ§" + "à¡Õ¨" + "à¡Õ´" + "à¡Õ¹" + "à¡ÕÂõÔ" + "à¡ÕÂõԤس" + "à¡ÕÂõԹÔÂÁ" + "à¡ÕÂõԻÃÐÇѵÔ" + "à¡ÕÂõÔÀÙÁÔ" + "à¡ÕÂõÔÂÈ" + "à¡ÕÂõÔÈÑ¡´Ôì" + "à¡ÕÂõÔì" + "à¡ÕÂÃì" + "à¡ÕèÂ" + "à¡Õè§" + "à¡ÕèÂÇ" + "à¡ÕéÂÁÍÕë" + "à¡ÕéÂÁä©è" + "à¡ÕéÂÇ" + "à¡ÕêÂÇ" + "à¡ÕêÂÐ" + "à¡×Í¡" + "à¡×ͺ" + "à¡×éÍ" + "à¡àÃ" + "à¡ç§" + "à¡ç¨" + "à¡çº" + "à¡è§" + "à¡è§¡Ò¨" + "à¡è¹" + "à¡èÒ" + "à¡é" + "à¡é§" + "à¡é§¡éÒ§" + "à¡éÍ" + "à¡éÒ" + "à¡éÒÍÕé" + "à¡ê" + "à¡ê¡" + "à¡ê¡ÎÇÂ" + "à¡ë" + "à¡ë§" + "à¡ëÒ" + "à¢" + "ࢡ" + "ࢵ" + "ࢹ" + "ࢹ§" + "ࢹÂ" + "ࢹç´" + "ࢺ稢ºÇ¹" + "ࢺçµ" + "à¢ÁÃ" + "à¢ÁÒ" + "à¢Á×ͺ" + "à¢Áç§" + "à¢Áç´á¢Áè" + "à¢Áè¹" + "à¢ÁèÒ" + "à¢Áé¹" + "à¢Â" + "à¢Â¡" + "à¢ÂÔº" + "à¢Â×é͹" + "à¢Âè§" + "à¢ÂèÒ" + "à¢ÂéÍá¢Âè§" + "à¢ÃÍÐ" + "à¢Å§" + "à¢ÅÍÐ" + "à¢ÅÐ" + "à¢ÅÒ" + "à¢ÅÒÐ" + "à¢Ç" + "à¢ÉÁ" + "à¢ÌÐ" + "à¢Ð¢Ð" + "à¢Ò" + "à¢Ô¹" + "à¢Õ§" + "à¢Õ´" + "à¢Õ¹" + "à¢ÕÂÁ" + "à¢ÕÂÇ" + "à¢ÕèÂ" + "à¢ÕéÂÇ" + "à¢×Í" + "à¢×èͧ" + "à¢×è͹" + "à¢ç" + "à¢ç´" + "à¢ç¹" + "à¢çÁ" + "à¢è§" + "à¢è¹" + "à¢èÒ" + "à¢éÁ" + "à¢éÒ" + "हÂÒ" + "à¤ÁÕ" + "à¤Â" + "à¤Ã§" + "à¤Ã´Ôµ" + "à¤ÃÒ" + "à¤ÃÒÐËì" + "à¤ÃÕ´" + "à¤Ã×Í" + "à¤Ã×èͧ" + "à¤Ã×èͧ¾ÔÁ¾ì" + "à¤Ãè§" + "à¤Ã觤ÃÑ´" + "à¤ÅÔºà¤ÅÔéÁ" + "à¤ÅÔéÁ" + "à¤ÅÕÂ" + "à¤Å×ͺ" + "à¤Å×è͹" + "à¤Åç´" + "à¤Åé¹" + "à¤ÅéÒ" + "à¤Çé§" + "à¤Ë" + "à¤ËÐ" + "à¤ËÒ" + "à¤ÍÃìà¹Å" + "à¤ÍÐ" + "à¤Ò¹ìàµÍÃì" + "à¤Òþ" + "à¤ÒÐ" + "à¤Õ§" + "à¤Õ´" + "à¤Õ¹" + "à¤ÕÂÇ" + "à¤ÕèÂÁ" + "à¤ÕèÂÇ" + "à¤ÕéÂÇ" + "à¤×ͧ" + "à¤àºÔÅ" + "à¤çÁ" + "à¤é¡" + "à¤é¹" + "à¤éÒ" + "à¤éà¡é" + "à¦Õè¹" + "ৡ" + "à§Â" + "à§ÍÐ" + "à§ÍЧÐ" + "à§Ò" + "à§ÒÐ" + "à§Ô¹" + "à§Õº" + "à§Õè§" + "à§Õè¹" + "à§ÕèÂËÙ" + "à§ÕéÂÇ" + "à§×Í¡" + "à§×Í´" + "à§×ͺ" + "à§×èͧ" + "à§×è͹" + "à§×è͹ä¢" + "à§×éÍ" + "à§×éÍÁ" + "à§èÒ" + "à§éÒ" + "à¨" + "਴ÕÂʶҹ" + "਴ÕÂì" + "ਵ" + "ਵ¤µÔ" + "ਵ¨Ó¹§" + "ਵ¹Ò" + "ਵ¹ÒÃÁ³ì" + "ਵÀÙµ" + "ਵÊÔ¡" + "ਹ" + "à¨ÁÊì" + "à¨Ã¨Ò" + "à¨ÃÔ" + "à¨ÃÔ´" + "à¨Çç´" + "à¨É®Ò" + "à¨Í" + "à¨ÍÃì" + "à¨ÍÐ" + "à¨ÒÐ" + "à¨Ô´" + "à¨ÔÁ" + "à¨Ôè§" + "à¨Ôè¹" + "à¨Õ´" + "à¨Õ¹" + "à¨ÕÂÁ" + "à¨ÕÂÃÐä¹" + "à¨ÕÂÇ" + "à¨Õêº" + "à¨ÕêÂÇ" + "à¨ÕêÂǨêÒÇ" + "à¨Õë¹" + "à¨ÕëÂÁà¨ÕéÂÁ" + "à¨×Í" + "à¨×è͹" + "à¨×éÍÂ" + "à¨ç´" + "à¨çº" + "à¨èÍ" + "à¨èÒ" + "à¨éÒ" + "à¨éÒªÙé" + "à¨ê" + "à¨ê¡" + "à¨ê§" + "à¨êµ" + "à¨êÒ" + "à¨ëÍ" + "à©" + "à©¡" + "à©´" + "੾ÒÐ" + "à©Â" + "à©ÂàÁÂ" + "à©ÅÂ" + "à©ÅÒ" + "à©ÅÔÁ" + "à©ÅÕ§" + "à©ÅÕÂÇ" + "à©ÅÕèÂ" + "à©ÇÕ§" + "à©ÇÕ¹" + "à©ÍÐá©Ð" + "à©Ò" + "à©Ò¡êÇÂ" + "à©ÒÐ" + "à©Ô´" + "à©Ôº" + "à©Õ§" + "à©Õ´" + "à©Õº" + "à©ÕÂÇ" + "à©ÕèÂÇ" + "à©×͹" + "à©×èÍÂ" + "à©â¡" + "à©è§" + "હ" + "àªÂ" + "àªÅ" + "àªÅÂ" + "àªÉ°Ò" + "àªÍ" + "àªÍÃì" + "àªÒǹì" + "àªÒÇì" + "àªÔ§" + "àªÔ" + "àªÔ´" + "àªÔéµ" + "àªÕ§" + "àªÕ§ãËÁè" + "àªÕº" + "àªÕÂÃì" + "àªÕÂÇ" + "àªÕè¹" + "àªÕèÂÇ" + "àª×Í¡" + "àª×Í´" + "àª×͹" + "àª×èÍ" + "àª×èͧ" + "àª×èÍÁ" + "àª×éÍ" + "àªç¤" + "àªç´" + "àªè¹" + "àªèÒ" + "àªé§" + "àªéÒ" + "à«" + "૵" + "ૹ" + "ૹµÔ¡ÃÑÁ" + "ૹµÔÅÔµÃ" + "ૹµÔà¡Ã´" + "ૹµÔàÁµÃ" + "ૹµì" + "ૻѡµÃСÃéÍ" + "à«¿" + "à«ÃØèÁ" + "à«ÅÅÙÅÍ´ì" + "à«ÅÅÙâÅÊ" + "à«ÅÅì" + "à«ÅÊì" + "à«Åà«ÕÂÊ" + "à«Í" + "à«ÍÃì" + "à«ÍÃìÇÔÊ" + "à«ÍÐ" + "à«Ò" + "à«ÒÐ" + "à«Ô§" + "à«ÔÃì¿àÇÍÃì" + "à«Ôé§" + "à«Õ¹" + "à«ÕÂÁ«Õ" + "à«ÕÂÇ" + "à«Õè§äÎé" + "à«×èͧ" + "à«ç¡àÁ¹µì" + "à«ç§" + "à«ç¹" + "à«ç¹àµÍÃì" + "à«è§" + "à«è¹" + "à«èÍ" + "à«é§" + "à«éÒ«Õé" + "à¬Í" + "à¬ÍàÍÁ" + "à²èÒ" + "à³Ã" + "à´¡«ìâ·ÃÊ" + "à´¤Ò¡ÃÑÁ" + "à´¤ÒÅÔµÃ" + "à´¤ÒàÁµÃ" + "à´ª" + "à´ªÐ" + "à´«Ô¡ÃÑÁ" + "à´«ÔÅÔµÃ" + "à´«ÔàÁµÃ" + "à´¹" + "à´¹ÁÒÃì¡" + "à´¹ÁÒÃì¤" + "à´ºÔµ" + "à´ÃѨ©Ò¹" + "à´ÅÅì" + "à´ÇÔ´" + "à´Ê¡ì·Í»" + "à´ÍÐ" + "à´Ò" + "à´ÒÐ" + "à´Ô¹" + "à´ÔÁ" + "à´ÕÂ" + "à´Õ§" + "à´Õ´" + "à´ÕÂÃ" + "à´ÕÂôÒÉ" + "à´ÕÂöÕÂì" + "à´ÕÂÃѨ©Ò¹" + "à´ÕÂÇ" + "à´ÕÂÐ" + "à´ÕèÂÇ" + "à´ÕéÂ" + "à´ÕëÂÇ" + "à´×Í´" + "à´×͹" + "à´×ÍÂ" + "à´âª" + "à´ç¡" + "à´ç¨" + "à´ç´" + "à´è" + "à´è¹" + "à´èÒ" + "à´é§" + "à´éÒ" + "à´ëÍ" + "à´ëÍ´ëÒ" + "àµÂ" + "àµÃÕÂ" + "àµÃÕ´" + "àµÃÕÂÁ" + "àµÃç´" + "àµÃè" + "àµÅÔ´" + "àµÇç´" + "àµÍÃì" + "àµÍÃì¡Õ" + "àµÍÐ" + "àµÐ" + "àµÒ" + "àµÒÐáµÐ" + "àµÔº" + "àµÔÁ" + "àµÔè§" + "àµÕ§" + "àµÕ¹" + "àµÕº" + "àµÕèÂ" + "àµÕèÂÇ" + "àµÕéÂ" + "àµÕëÂÁ" + "àµ×͹" + "àµ×éÍ" + "àµç§" + "àµç¹·ì" + "àµçÁ" + "àµè§" + "àµèÍ" + "àµèÒ" + "àµé¹" + "àµéÒ" + "àµéÒ·Ö§" + "àµéÒÊèǹ" + "àµéÒËÙé" + "àµéÒÎÇÂ" + "àµéÒà¨ÕéÂÇ" + "àµéÒàÊÕº" + "àµê¡" + "àµêÐ" + "àµëÒ" + "ඡԧ" + "ඹ" + "à¶Ã" + "à¶ÃÐ" + "à¶ÃÒ¹Øà¶ÃÐ" + "à¶ÅÔ§" + "à¶Å×Í¡¶Å¹" + "à¶Åä¶Å" + "à¶ÍÐ" + "à¶Ò" + "à¶ÒÇÑÅÂì" + "à¶ÒÐ" + "à¶Ô¡" + "à¶Ô´" + "à¶Ô´à·Ô§" + "à¶Ô¹" + "à¶Õ§" + "à¶×Í" + "à¶×Í¡" + "à¶×è͹" + "à¶èÍ" + "à¶éÒ" + "à·" + "à·¤¹Ô¤" + "à·¤â¹âÅÂÕ" + "à·¹¹ÔÊ" + "à·»" + "à·¾" + "à·¾´Ò" + "à·¾¸Ô´Ò" + "à·¾¹Á" + "෾´Ò" + "à·¾Âà¨éÒ" + "à·¾ÒÃÑ¡Éì" + "à·¾Õ" + "à·¾à¨éÒ" + "à·Á»ØÃÐ" + "à·Ã´à´ÍÃì" + "à·Ã¹à¹ÍÃì" + "à·Ç´Ò" + "à·Ç·Ñ³±ì" + "à·Ç·Ùµ" + "à·Ç¸ÃÃÁ" + "à·Ç¸Ô´Ò" + "à·Ç¹ÔÂÁ" + "à·ÇÃÙ»" + "à·ÇÉ" + "à·Çʶҹ" + "à·ÇÑ" + "à·Çѹ" + "à·ÇÒÅÑÂ" + "à·ÇÕ" + "à·ÇâÅ¡" + "à·È" + "à·È¡ÒÅ" + "à·È¹Ò" + "à·È¹ì" + "à·ÈºÒÅ" + "à·ÈÁ¹µÃÕ" + "à·ÈÒÀÔºÒÅ" + "à·Êµì" + "à·ËÇѵ¶Ø" + "à·Ëì" + "à·Í" + "à·ÍÁ" + "à·ÍÃìâÁÁÔàµÍÃì" + "à·ÍзÐ" + "à·Ò" + "à·Ô´" + "à·Ô¹" + "à·Ôº" + "à·Ôè§" + "à·ÔéÁ" + "à·Õ¹" + "à·Õº" + "à·ÕÂÁ" + "à·ÕÂÇ" + "à·Õè§" + "à·ÕèÂÇ" + "à·×Í¡" + "à·àºÔÅ" + "à·àŤÍÁ" + "à·àÇÈÃì" + "à·àÇÈÇÃì" + "à·â¾" + "à·ç¨" + "à·è" + "à·èÍ" + "à·èÒ" + "à·é§àµé§" + "à·éÍ" + "à·éÒ" + "ู" + "ูÊì" + "à¸Í" + "๤ä·" + "๵" + "๵Ã" + "๵Êऻ" + "๵Ô" + "๺ÔÇÅÒ" + "๻¨Ù¹" + "๻ÒÅ" + "à¹Â" + "à¹Ã¤Ø³" + "à¹ÃÁÔµ" + "à¹Ãà·È" + "à¹Ò" + "à¹Ô¹" + "à¹Ôº" + "à¹Ôè¹" + "à¹ÕÂ" + "à¹Õ¹" + "à¹ÕÂÁ" + "à¹×ͧ" + "à¹×ÍÂ" + "à¹×èͧ" + "à¹×éÍ" + "à¹çµ" + "à¹çµàÇÔÃì¡" + "à¹çµàÇÔÃì¤" + "à¹èÒ" + "à¹é¹" + "à¹éÍ" + "àº" + "຤͹" + "ວ¡ÍÅ" + "ຨ" + "ຨ¡" + "ຨ¡ÑÅÂÒ³Õ" + "ຨ¡ÒÁ¤Ø³" + "ຨ¸ÃÃÁ" + "ຨºÃþµ" + "ຨÁÒÈ" + "ຨç¤ì" + "ຨÒ" + "ຨҧ¤»ÃдÔÉ°ì" + "ຨҧ¤ì" + "ຨà¾Ê" + "ີéÒ" + "ູ" + "ູ«Ô¹" + "ູ«ì" + "àºÃ¡" + "àºÃì¡" + "àºÅàÂÕèÂÁ" + "àºÈ" + "àºÊ" + "àºÊºÍÅ" + "àºÍÃì" + "àºÍÃìÅÔ¹" + "àºÍÐ" + "àºÍкÐ" + "àºÐ" + "àºÒ" + "àºÒÐ" + "àºÒÐáÊ" + "àºÔ¡" + "àºÔÃì¡" + "àºÔè§" + "àºÕ´" + "àºÕ¹" + "àºÕÂÃì" + "àºÕè§" + "àºÕéÂ" + "àºÕéÂÇ" + "àº×Í" + "àº×͹" + "àº×èÍ" + "àº×éÍ" + "àº×éͧ" + "àºç´" + "àºç´àµÅç´" + "àºç´àÊÃç¨" + "àºè§" + "àºé" + "àºéÍ" + "àºéÍàÃÔèÁ" + "àºéÍàÃèÍ" + "àºéÒ" + "໡" + "à»Ãµ" + "à»ÃÁ" + "à»ÃÂ" + "à»ÃÍ" + "à»ÃÍÐ" + "à»ÃÒÐ" + "à»ÃÕ§" + "à»ÃÕÂ" + "à»ÃÕº" + "à»ÃÕÂÇ" + "à»ÃÕÂÐ" + "à»ÃÕé§" + "à»ÃÕéÂÇ" + "à»ÃÕêÂÐ" + "à»Ã×èͧ" + "à»Ã×éÍÂ" + "à»Å" + "à»ÅÇ" + "à»ÅÒÐ" + "à»ÅÕè¹" + "à»ÅÕèÂÇ" + "à»ÅÕéÂ" + "à»Å×Í¡" + "à»Å×ͧ" + "à»Å×ÍÂ" + "à»Å×éͧ" + "à»Åè§" + "à»ÅèÒ" + "à»Í" + "à»ÍÃì" + "à»ÍÃìà«ç¹µì" + "à»Ð" + "à»Ò" + "à»ÒÐ" + "à»Òà»Ò" + "à»Ô¡" + "à»Ô§" + "à»Ô´" + "à»Ôº" + "à»Ôè¹" + "à»Ôêº" + "à»ÕÂ" + "à»Õ¡" + "à»ÕèÂÁ" + "à»ÕéÂÇ" + "à»Õê¡" + "à»ÕêÂÐ" + "à»×Í¡" + "à»×èÍÂ" + "à»×é͹" + "à»ç´" + "à»ç¹" + "à»ç¹µé¹" + "à»è§" + "à»èÒ" + "à»é" + "à»é§" + "à»éÒ" + "à»ê¡" + "à»ë" + "à»ë§" + "à»ëÍ" + "à»ëÍàËÅÍ" + "à»ëÒ" + "à»ëÒÎ×éÍ" + "à¼" + "༧" + "༪Ô" + "༴ÔÁ" + "༴Õ§" + "༴ç¨" + "à¼Â" + "à¼ÂÍ" + "à¼ÅÍ" + "à¼ÅÍä¼Å" + "à¼ÅÐ" + "à¼ÅÒÐ" + "à¼Åè" + "à¼ÍÔ" + "à¼ÍàÃÍ" + "à¼Ð" + "à¼Ò" + "à¼ÒÐ" + "à¼Ô¹" + "à¼×Í¡" + "à¼×Í´" + "à¼×èÍ" + "à¼ç´" + "à¼è¹" + "à¼èÒ" + "à¼éÒ" + "à½×Í" + "à½×Í¡" + "à½×è͹" + "à½éÒ" + "à¾" + "ྨ" + "ྪ¬¦Òµ" + "ྪÃ" + "ྪÃÒÂظ" + "ྴҹ" + "ྷ¹Ò" + "ྷÒÂ" + "ྷغÒÂ" + "ྐྵ¡ÇÔ¹" + "ྐྵÕ´" + "ྐྵà·ÕÂÁ" + "à¾Ã§" + "à¾ÃÒ" + "à¾ÃÒÐ" + "à¾ÃÔ´" + "à¾ÃÔÈ" + "à¾ÃÕ¡" + "à¾ÃÕ§" + "à¾ÃÕº" + "à¾ÃÕÂÇ" + "à¾Ã×èÍ" + "à¾Å" + "à¾Å§" + "à¾ÅÒ" + "à¾ÅÒÐ" + "à¾ÅÔ§" + "à¾ÅÔ´à¾ÅÔ¹" + "à¾ÅÔ¹" + "à¾ÅÕÂ" + "à¾ÅÕè§" + "à¾ÅÕéÂ" + "à¾È" + "à¾ÒÐ" + "à¾Ô¡" + "à¾Ô§" + "à¾Ôè§" + "à¾ÔèÁ" + "à¾Õ§" + "à¾Õº" + "à¾ÕÂÃ" + "à¾ÕéÂ" + "à¾Õé§" + "à¾Õé¹" + "à¾×èÍ" + "à¾×è͹" + "à¾ç§" + "à¾ç¨" + "à¾ç" + "à¾ç´·ÙÅ" + "à¾è§" + "à¾è¹¾èÒ¹" + "à¾èÍ" + "à¾éÍ" + "à¿´" + "à¿Í" + "à¿ÍÃì" + "à¿ÍÃì¹Ôà¨ÍÃì" + "à¿ÍÃìàÁÕÂÁ" + "à¿ÍÐ" + "à¿Ð" + "à¿Ô¹" + "à¿ÕéÂÁ" + "à¿ÕéÂÇ" + "à¿×Í" + "à¿×ͧ" + "à¿×͹" + "à¿×ÍÂ" + "à¿×èͧ" + "à¿×éÍ" + "à¿×éͧ" + "à¿×éÍÂ" + "à¿ç´" + "à¿é¹" + "à¿éÍ" + "àÀµÃÒ" + "àÀ·" + "àÀ·ØºÒÂ" + "àÀÃÕ" + "àÀÊѪ" + "àÁ" + "àÁ¡Ð" + "àÁ¡ÐàÎÔõ«ì" + "àÁ¢ÅÒ" + "àÁ¦" + "àÁ¦Ò" + "àÁ¦Ô¹·Ãì" + "àÁ¦Õ" + "àÁµµÒ" + "àÁµÃ" + "àÁµÃÔ¡" + "àÁ¶Ø¹" + "àÁ·¹Õ" + "àÁ·Ô¹Õ" + "àÁ¸Ò" + "àÁ¸Õ" + "àÁ¹·ÍÅ" + "àÁ¹ºÍÃì´" + "àÁ¹Ù" + "àÁÁâÁÃÕ" + "àÁÃÑÂ" + "àÁÃØ" + "àÁÅ×ͧ" + "àÁÅ×èÍÂ" + "àÁÅ×éÍÂ" + "àÁÅç´" + "àÁÅì" + "àÁÉ" + "àÁÉÒ¹" + "àÁÐ" + "àÁÒ" + "àÁÒÅÕ" + "àÁÒÊì" + "àÁÒÌÕ" + "àÁÒÐ" + "àÁÔ¹" + "àÁÕÂ" + "àÁÕ§" + "àÁÕè§" + "àÁÕé¹" + "àÁ×Í¡" + "àÁ×ͧ" + "àÁ×èÍ" + "àÁ×èÍÂ" + "àÁâÁÃÕ" + "àÁç¡«Ôâ¡" + "àÁç´" + "àÁè¹" + "àÁèÒ" + "àÁéÁ" + "àÁéÒÊì" + "àÂ" + "à§" + "à«Ù" + "à¹" + "àÂÍ" + "àÂÍÃÁѹ" + "àÂÍÃÁѹ¹Õ" + "àÂÍÃÁѹÕ" + "àÂÍÐ" + "àÂÒ" + "àÂÒǪ¹" + "àÂÒǾÒ" + "àÂÒǾҹ" + "àÂÒÇÁÒÅÂì" + "àÂÒÇÂÍ´" + "àÂÒÇÃÒª" + "àÂÒÇÅѡɳì" + "àÂÒÇàÃÈ" + "àÂÒÇì" + "àÂÒÐ" + "àÂÔ¹" + "àÂÔº" + "àÂÔè¹" + "àÂÔè¹àÂéÍ" + "àÂÔéÁ" + "àÂÕÂ" + "àÂÕ¹" + "àÂÕº" + "àÂÕÂÇ" + "àÂÕè§" + "àÂÕèÂÁ" + "àÂÕèÂÇ" + "àÂ×Í¡" + "àÂ×͹" + "àÂ×èÍ" + "àÂ×éÍ" + "àÂ×éͧ" + "àÂ×é͹" + "àÂç¹" + "àÂçº" + "àÂè¹" + "àÂèÍ" + "àÂé" + "àÂéÂ" + "àÂéÒ" + "àâ" + "àâÒ" + "àâҤ³Ôµ" + "àóÙ" + "àô͹" + "àôÒÃì" + "àÃÃǹ" + "àÃÇ´Õ" + "àÃÍ" + "àÃÒ" + "àÃÒÐ" + "àÃÔ§" + "àÃÔ´" + "àÃÔÁ" + "àÃÔèÁ" + "àÃÔéÁ" + "àÃÕ¡" + "àÃÕ§" + "àÃÕ´" + "àÃÕ¹" + "àÃÕº" + "àÃÕÂÁ" + "àÃÕÂÇ" + "àÃÕèÂ" + "àÃÕèÂÁ" + "àÃÕèÂÇ" + "àÃÕéÂÇá" + "àÃ×Í" + "àÃ×Í¡" + "àÃ×ͧ" + "àÃ×Í´" + "àÃ×͹" + "àÃ×èÍ" + "àÃ×èͧ" + "àÃ×èÍÂ" + "àÃ×éÍ" + "àÃ×é͹" + "àÃäÃ" + "àÃçÇ" + "àÃè" + "àÃè§" + "àÃèÍ" + "àÃèÒ" + "àÃé¹" + "àÃéÒ" + "àÅ¢" + "àÅ¢Ò" + "àÅ¢Ò¸Ô¡ÒÃ" + "àŢҹءÒÃ" + "àÅ´Õé" + "àŵ" + "àŹ" + "àŹÊì" + "àźҹ͹" + "àÅÂ" + "àÅÇ" + "àÅÈ" + "àÅËÅѧ" + "àÅÍ" + "àÅÍÐ" + "àÅÍÐà·ÍÐ" + "àÅÐ" + "àÅÐà·Ð" + "àÅÒ" + "àÅÒÐ" + "àÅÔ¡" + "àÅÔ¡ÅÑè¡" + "àÅÔ¹àÅèÍ" + "àÅÔÈ" + "àÅÔé§" + "àÅÕÂ" + "àÅÕ§" + "àÅÕ¹" + "àÅÕº" + "àÅÕÂÁ" + "àÅÕÂÇ" + "àÅÕè§" + "àÅÕè¹" + "àÅÕèÂÁ" + "àÅÕé§" + "àÅÕéÂÇ" + "àÅ×Í¡" + "àÅ×Í´" + "àÅ×͹" + "àÅ×èͧ" + "àÅ×è͹" + "àÅ×èÍÁ" + "àÅ×èÍÁãÊ" + "àÅ×èÍÂ" + "àÅ×éÍÂ" + "àÅà«ÍÃì" + "àÅà¾" + "àÅç¡" + "àÅç§" + "àÅç´" + "àÅç¹" + "àÅçº" + "àÅçÁ" + "àÅè¹" + "àÅèÁ" + "àÅèËì" + "àÅèÍ" + "àÅèÒ" + "àÅé§" + "àÅéÒ" + "àǤ" + "àǤԹ" + "àǤÕ" + "àǨ" + "àǪ" + "àǪ¡ÃÃÁ" + "àÇ°¹ì" + "àdzÐ" + "àdzÔ" + "àdzԡ" + "àdzØ" + "àǵ¹ì" + "àǵÃ" + "àǵÒÅ" + "àÇ·" + "àÇ·¹Ò" + "àÇ·Âì" + "àÇ·Ò§¤ÈÒʵÃì" + "àÇ·Ò§¤ì" + "àÇ·Ò¹µÐ" + "àÇ·Ò¹µì" + "àÇ·Ô" + "àÇ·Õ" + "àǸÐ" + "àǹ" + "àǹÔÊ" + "àǹäµÂ" + "àǺ䫵ì" + "àÇÁºÅÕÂì" + "àÇÁÐ" + "àÇÁѵ" + "àÇÁÒµÔ¡" + "àÇÃ" + "àÇÃÁ³Õ" + "àÇÃѳ" + "àÇÃѳ³ÔÂÐ" + "àÇÃÕ" + "àÇÅÊì" + "àÇÅÒ" + "àÇÈÁì" + "àÇÈÂÒ" + "àÇÈÂì" + "àÇʵì" + "àÇʹì" + "àÇÊÀÙ" + "àÇÊÁÐ" + "àÇÊÁì" + "àÇÊÇѳ" + "àÇÊÊÐ" + "àÇÊÊѹ´Ã" + "àÇÊÊØ¡ÃÃÁ" + "àÇÊÊØÇѳ" + "àÇÊÒÃѪ" + "àÇÊÔ" + "àÇÊÔÂÒ" + "àÇ˹" + "àÇËÐ" + "àÇËѧ¤ì" + "àÇËÑ»µÔ" + "àÇËÒ" + "àÇËÒÂÊ" + "àÇËÒÊ" + "àÇÌØ" + "àÇÍ" + "àÇÍÃì" + "àÇÍÃìªÑ¹" + "àÇÔ¡" + "àÇÔÃì¡Ê൪ѹ" + "àÇÔÃì´" + "àÇÔé§" + "àÇÕ§" + "àÇÕ´¹ÒÁ" + "àÇÕ¹" + "àÇâè¹ì" + "àÇä¹Â" + "àÇçº" + "àÇç»" + "àÇèÍ" + "àÇé" + "àÇé¹" + "àÇéÂ" + "àÇéÒ" + "àÈÃÉ°¡Ô¨" + "àÈÃÉ°ÈÒʵÃì" + "àÈÃÉ°Ò¹Ð" + "àÈÃÉ°Õ" + "àÈÃÉ°ì" + "àÈÃéÒ" + "àÈǵ" + "àÈÉ" + "àÈÕÂÃ" + "àÊ" + "àÊ¡" + "àʧÕèÂÁ" + "àʩǹ" + "àÊ´" + "àÊ´ç¨" + "àʶÕÂÃ" + "àʶÕÂÃÀÒ¾" + "àʹ" + "àʹ§" + "àʹËÒ" + "àʹÍ" + "àʹÐ" + "àʹÒ" + "àʹҸԡÒÃ" + "àʹҺ´Õ" + "àʹÒʹÐ" + "àʹÒÐ" + "àʹÕ´" + "àʹÕÂì" + "àʹè§" + "àʹèËÒ" + "àʹèËì" + "àʹèÒ" + "àʺÂ" + "àʺÕ§" + "àʾ" + "àʾÂì" + "àÊÀÒ" + "àÊÁËÐ" + "àÊÁÍ" + "àÊÁÒ" + "àÊÁÕ¹" + "àÊÁ×͹" + "àÊÁç´" + "àÊÂ" + "àÊÃÔ´" + "àÊÃÔ¿" + "àÊÃÔÁ" + "àÊÃÕ" + "àÊÃç¨" + "àÊÅ´" + "àÊÅÒ" + "àÊÅÕè§" + "àÊÅ×Í¡ÊŹ" + "àÊÇ¡" + "àÊÇ¡ÒÁÒµÂì" + "àÊǹÐ" + "àÊǹÒ" + "àÊÇÂ" + "àÊÇÕ¹" + "àÊÒ" + "àÊÒÃÀÂì" + "àÊÒÃì" + "àÊÒǤ¹¸ì" + "àÊÒdzԵ" + "àÊÒǹÒ" + "àÊÒǹÕÂì" + "àÊÒÇÀÒ" + "àÊÒÇÀÒ¤Âì" + "àÊÒÇÀÒ¾" + "àÊÒÇÃÊ" + "àÊÒÇÅѡɳì" + "àÊÒÐ" + "àÊÔÃì¿" + "àÊÕÂ" + "àÊÕ§" + "àÊÕ´" + "àÊÕº" + "àÊÕÂÁ" + "àÊÕÂÇ" + "àÊÕèÂ" + "àÊÕè§" + "àÊÕèÂÇ" + "àÊÕé¹" + "àÊÕéÂÁ" + "àÊÕéÂÇ" + "àÊ×Í" + "àÊ×Í¡" + "àÊ×èÍ" + "àÊ×èÍÁ" + "àÊ×éÍ" + "àÊà¾Å" + "àÊâ·" + "àÊâÅ" + "àÊç§à¤Ãç§" + "àÊé§" + "àÊé¹" + "àÊéÒ" + "àË" + "à˧" + "à˧Ò" + "à˧×Í¡" + "à˧×èÍ" + "à˧è§" + "à˵Ø" + "à˵ءÒóì" + "à˹ÍÐ" + "à˹ÍÐ˹Ð" + "à˹ÒÐ" + "à˹Õ§" + "à˹ÕÂÁ" + "à˹ÕÂÇ" + "à˹ÕèÂÇ" + "à˹×Í" + "à˹×èÍÂ" + "à˹ç´" + "à˹çº" + "à˹è§" + "à˹èÍ" + "à˹éÒ" + "àËÁ" + "àËÁÇ´Õ" + "àËÁѹµì" + "àËÁÒ" + "àËÁÒÐ" + "àËÁÕÂÇ" + "àËÁÕèÂÇ" + "àËÁ×ͧ" + "àËÁ×Í´" + "àËÁ×͹" + "àËÁç¹" + "àËÁè" + "àËÁè§" + "àËÁèÍ" + "àËÂ" + "à˧" + "àËÂÒÐ" + "àËÂÔ§" + "àËÂÕ´" + "àËÂÕº" + "àËÂÕèÂÇ" + "àËÂ×Í¡" + "àËÂ×èÍ" + "àËÂéÒ" + "àËÃÑÔ¡" + "àËÃÒ" + "àËÃÕÂ" + "àËŹ" + "àËÅÇ" + "àËÅÍ" + "àËÅÒ" + "àËÅÒÐáËÅÐ" + "àËÅÔ§" + "àËÅÕ¹" + "àËÅÕÂÇ" + "àËÅÕèÂÁ" + "àËÅ×Í" + "àËÅ×Í¡" + "àËÅ×ͧ" + "àËÅ×ͺ" + "àËÅ×èÍÁ" + "àËÅç¡" + "àËÅè" + "àËÅèÒ" + "àËÅéÒ" + "àËÇ" + "àËǧ" + "àËÇÂ" + "àËÇÍÐ" + "àËÇÍÐËÇÐ" + "àËÇÕè§" + "àËÇè" + "àËÍÐ" + "àËÒ" + "àËÒÐ" + "àËÔ¹" + "àËÔÁ" + "àËÕ¹" + "àËÕèÂÇ" + "àËÕéÂ" + "àËÕé¹" + "àËÕéÂÁ" + "àË×Í´" + "àË×èÍ" + "àËç¨" + "àËç´" + "àËç¹" + "àËçº" + "àËè" + "àËèÍ" + "àËèÒ" + "àÍ" + "àÍ¡" + "àÍ¡©Ñ¹·ì" + "àÍ¡ª¹" + "àÍ¡«àÃÂì" + "àÍ¡«â»" + "àÍ¡À¾" + "àÍ¡ÀÒ¾" + "àÍ¡ÁÑÂ" + "àÍ¡Ãö»ÃÐâ¤" + "àÍ¡ÃÒª" + "àÍ¡Åѡɳì" + "àÍ¡ÊÒÃ" + "à͡ѤµÒ" + "àÍ¡Ò¸Ô»äµÂ" + "à͡ࢹ¡" + "àÍ¡à·È" + "àͧ" + "àͪ¾Õ" + "àÍ´Êì" + "àÍ´ÔàµÍÃì" + "à͵·Ñ¤¤Ð" + "àÍ·ÕàÍçÁ" + "à͹" + "à͹·ÃÒ¹«ì" + "à͹ä«Áì" + "àÍ»Êѹ" + "àÍÁ" + "àÍÂ" + "àÍÃÒÇѳ" + "àÍÃç´ÍÃèÍÂ" + "àÍÇ" + "àÍÇѧ" + "àÍÊ" + "àÍÌ¡" + "àÍÌÒ" + "àÍÍ" + "àÍÐÍÐ" + "àÍÐã¨" + "àÍÒ" + "àÍÒ·ì¾Øµ" + "àÍÒÌÒÃ" + "àÍÔ¡" + "àÍÔº" + "àÍÔé¹" + "àÍÕ§" + "àÍÕ´" + "àÍÕ¹" + "àÍÕè¹" + "àÍÕèÂÁ" + "àÍÕèÂÇ" + "àÍÕé§" + "àÍÕéÂÁà¿ÕéÂÁ" + "àÍÕéÂÇ" + "àÍÕê´" + "àÍÕêÂÁ" + "àÍÕêÂÁ¨Øê¹" + "àÍ×͹" + "àÍ×ÍÁ" + "àÍ×èÍÂ" + "àÍ×éÍ" + "àÍ×éͧ" + "àÍ×é͹" + "àÍ×éÍÁ" + "àÍ×éÍÂ" + "àÍà¤ÍÃì" + "àÍàªÕÂ" + "àÍàªÕè¹à¡ÁÊì" + "àÍà«ÕÂ" + "àÍàÂè¹µì" + "àÍẤ" + "àÍç¡«ì" + "àÍç¡«ì¾ÅÍàÃÍÃì" + "àÍç¡«ìà¾ÃÊ" + "àÍç§" + "àÍç´" + "àÍç´µÐâÃ" + "àÍç´ÍÖ§" + "àÍç¹" + "àÍç¹´Ù" + "àÍç¹àµÍÃìà·¹" + "àÍèÂ" + "àÍèÍ" + "àÍé" + "àÍé¡Ò" + "àÍéÍÃÐàËÂ" + "àÍéÍàÎÍ" + "àÍê¡" + "àÍêÂ" + "àÍêÐ" + "àÍë" + "àÍë§" + "àÍëÂ" + "àÎ" + "àΧ" + "àÎÂ" + "àÎÅԤͻàµÍÃì" + "àÎÔõ«ì" + "àÎÕÂ" + "àÎÕé¹" + "àÎÕéº" + "àÎÕéÂÇ" + "àÎ×Í¡" + "àÎ×͹" + "àÎâÃÍÕ¹" + "àÎâÅ" + "àÎéÂ" + "àÎéÇ" + "àÎéÍ" + "á¡" + "ᡧ" + "᡹" + "á¡Á" + "á¡ÁÁÒ" + "á¡Ã¡" + "á¡Ã¹Ôµ" + "á¡ÃÐ" + "á¡Ã俵ì" + "á¡Ãç¹" + "á¡Ãè§" + "á¡ÃèÇ" + "á¡Å" + "á¡Åº" + "á¡ÅÅ͹" + "á¡ÅÐ" + "á¡ÅàÅÕÂÁ" + "á¡Åé§" + "á¡ÅéÁ" + "á¡ÅéÇ" + "á¡Ç" + "á¡Çè§" + "á¡Çè¹" + "á¡Ð" + "á¡â´ÅÔà¹ÕÂÁ" + "á¡è" + "á¡è§" + "á¡è§áÂè§" + "á¡è¹" + "á¡é" + "á¡é§" + "á¡éÁ" + "á¡éÇ" + "á¡ê§" + "á¡ê»" + "á¡êÊ" + "á¢" + "ᢡ" + "ᢹ" + "ᢹ§" + "á¢Á" + "á¢Áçº" + "á¢ÁèÇ" + "á¢Â§" + "á¢Âç¡" + "á¢Âè§" + "á¢Ç¡" + "á¢Ç§" + "á¢Ç¹" + "á¢ÇÐ" + "á¢ç§" + "á¢è§" + "á¢è§¢Ñ¹" + "á¢é§" + "á¢é¹" + "á¤" + "ᤪàªÕÂÃì" + "ᤪàÁÕÂÃì" + "ᤵµÒÅͤ" + "᤹" + "᤺" + "᤻«ÙÅ" + "á¤Á" + "á¤Ã§" + "á¤ÃÐ" + "á¤Ãè" + "á¤Ãì" + "á¤Å¤ÙÅÑÊ" + "á¤Å§" + "á¤Å¹" + "á¤ÅÍÃÕ" + "á¤ÅÔ¿ÍÃìà¹ÕÂ" + "á¤Åà«ÕÂÁ" + "á¤ÅèǤÅèͧ" + "á¤ÅéÇ" + "á¤Ç" + "á¤Ç¡" + "á¤Çé¹" + "á¤Ð" + "á¤è" + "á¤è¹" + "á¤é¹" + "á§" + "á§Ð" + "á§è" + "á§è§" + "á§è¹" + "á§éÁ" + "á¨" + "ᨡ" + "ᨧ" + "á¨Ç" + "á¨Ð" + "á¨èÁ" + "á¨èÇ" + "á¨é" + "á¨é§" + "á¨é¹" + "á¨éÇ" + "á¨ê´" + "á¨ë" + "á¨ëÇ" + "á¨ëÇáËÇÇ" + "á©" + "á©¡" + "ᩧ" + "á©Åº" + "á©ÅÐ" + "á©ÅéÁ" + "á©Ð" + "á©è" + "á©è§" + "áª" + "áªÁ»ì" + "áªÁà»" + "áªÃì" + "áªÅèÁ" + "áªè" + "áªè§" + "áªèÁ" + "᫧" + "á«´" + "᫹´ìÇÔª" + "᫺" + "á«Á" + "á«ÂÔ´" + "á«Ç" + "á«Ð" + "á«è" + "á«èÇ" + "á´" + "á´¡" + "á´§" + "á´´" + "á´¹" + "á´Ð" + "á´ç¡" + "á´è" + "á´è¹" + "á´èÇ" + "ᵡ" + "ᵧ" + "ᵧ¡ÇÒ" + "ᵧàÁ" + "ᵧâÁ" + "áµ´" + "áµ¹" + "áµÃ" + "áµÐ" + "áµè" + "áµè§" + "áµé" + "áµé¨ÔëÇ" + "áµéÁ" + "áµê´áµë" + "á¶" + "ᶡ" + "ᶺ" + "á¶Á" + "á¶Å§" + "á¶Ç" + "á·§" + "á·¹" + "á·¹·ÒÅÑÁ" + "á·º" + "á·Ã¡" + "á·Ã¡àµÍÃì" + "á·Ð" + "á·ç¡«Õè" + "á·ç§¡ì¹éÓ" + "á·è§" + "á·è¹" + "á·é" + "á·é§" + "Ṻ" + "á¹Á" + "á¹Ç" + "á¹Ð" + "á¹è" + "á¹è§" + "á¹è¹" + "á¹èÇ" + "á¹èÐ" + "áº" + "ạ" + "Ấ·ÕàÃÕÂ" + "ầ¡ì" + "ầ¤ì" + "ẴÁÔ¹µÑ¹" + "ẵàµÍÃÕè" + "ẹ" + "ẹâ¨" + "Ẻ" + "áºÐ" + "áºàÃÕÂÁ" + "áºçº" + "áºè§" + "á»" + "ừԿԤ" + "á»´" + "Ỻ" + "á»Ã" + "á»Ã¡" + "á»Ã§" + "á»Ã»Ãǹ" + "á»ÃÐ" + "á»Ãè§" + "á»Ãé¹" + "á»Ãê´" + "á»Ãë" + "á»Å" + "á»Å¡" + "á»Å§" + "á»Å¹" + "á»Åº" + "á»Åé" + "á»Ð" + "á»é§" + "á»é¹" + "á»éÇ" + "á»ê´" + "á»êº" + "á»êÐ" + "á»êЫÐ" + "á»ë§" + "á»ëÇ" + "ἡ" + "ἧ" + "á¼´" + "á¼¹" + "á¼¹¡" + "á¼Å" + "á¼Å§" + "á¼ÅÐ" + "á¼Åçº" + "á¼ÅçÇ" + "á¼è" + "á¼è¹" + "á¼èÇ" + "á¼éÇ" + "ὡ" + "ὧ" + "á½´" + "á¾" + "ᾧ" + "ᾧ¾ÇÂ" + "á¾·ÂÈÒʵÃì" + "á¾·ÂÊÀÒ" + "á¾·ÂÒ" + "á¾·Âì" + "á¾¹" + "á¾¹¡" + "á¾¹§àªÔ" + "á¾Ã" + "á¾Ã¡" + "á¾ÃÇ" + "á¾Ãè" + "á¾Ãè§" + "á¾ÃéÇ" + "á¾Å§" + "á¾Åµ¿ÍÃìÁ" + "á¾Å·Ô¹ÑÁ" + "á¾ÅÁ" + "á¾ÈÂÒ" + "á¾ÈÂì" + "á¾Ð" + "á¾ç¡" + "á¾ç¤à¡¨" + "á¾è§" + "á¾è¹" + "á¾é" + "á¾éÇ" + "á¿¡«ì" + "ῧ" + "ῪÑè¹" + "Ό" + "Ό«Õ" + "Ὼ" + "á¿Ãì" + "á¿Å¡«ì" + "á¿Åµ" + "á¿Ð" + "á¿éÁ" + "áÁ¡" + "áÁ¡¹Õà«ÕÂÁ" + "áÁ¤â¤Ã" + "áÁ§" + "áÁ§¡Ò¹ÕÊ" + "áÁ¹" + "áÁ¹¨ÙàÃÕÂ" + "áÁŧ" + "áÁÇ" + "áÁÐ" + "áÁè" + "áÁè¹" + "áÁèÎèͧÊ͹" + "áÁé" + "áÁé¹" + "áÁéÇ" + "á¡" + "á§" + "áº" + "áÂÁ" + "áÂÐ" + "áÂáÊ" + "áÂçº" + "áÂè" + "áÂè§" + "áÂé" + "áÂé§" + "áÂéÁ" + "áÃ" + "áá" + "áç" + "áô" + "áÃÁ" + "áÃÐ" + "áÃç¡à¡µ" + "áÃè" + "áÃè§" + "áÃé§" + "áÃé¹á¤é¹" + "áÃéÇ" + "áÅ" + "áÅ¡" + "áŧ" + "áŹ" + "Ᏼ" + "Ᏼì" + "áź" + "áÅÐ" + "áÅç¡â·Ê" + "áÅè" + "áÅè§" + "áÅè¹" + "áÅé" + "áÅé§" + "áÅéÇ" + "áǧ" + "áÇ´" + "áǺ" + "áÇÁ" + "áÇÇ" + "áÇÐ" + "áÇè¹" + "áÇèÇ" + "áÇé" + "áÇé§" + "áÊ" + "áÊ¡" + "áʧ" + "áÊ´" + "áÊ´§" + "áʵÁ»ì" + "áʹ" + "áʹÂÒ¡Ã" + "áʹÂÒ¹ØÀÒ¾" + "áʺ" + "áÊÁ" + "áÊ¡" + "áʧ" + "áÊÂÐ" + "áÊÃé§" + "áÊŧ" + "áÊǧ" + "áÊÐ" + "áÊè" + "áÊé" + "áÊéÁéÒ" + "áË" + "áË¡" + "á˧" + "á˧¹" + "á˧á¡ë" + "á˧è" + "á˧è§" + "á˹" + "á˹§" + "á˹º" + "á˹Á" + "á˺" + "áËÁ" + "áËÁÐ" + "áËÁè" + "áËÁèÁ" + "áËÂ" + "á˧" + "áËÂÁ" + "áËÂÐ" + "áËÂè" + "áËÂè§" + "áËÅ" + "áËÅ¡" + "áËŹ" + "áËÅÁ" + "áËÅÐ" + "áËÅè" + "áËÅè§" + "áËÇ" + "áËÇ¡" + "áËǹ" + "áËÇÐ" + "áËÇè§" + "áËÐ" + "áËè" + "áËè§" + "áËé" + "áËé§" + "áËéÇ" + "áÍ" + "áÍ¡" + "áÍ´" + "áÍ´ÇÒ¹«ì" + "áÍ´à´ÃÊ" + "á͹" + "á͹´ì" + "á͹µÒÃ졵ԡ" + "á͹µÔºÍ´Õ" + "á͹µÔਹ" + "á͹µÕé" + "áͺ" + "á;¾ÅÔपѹ" + "á;à¾Åçµ" + "áÍ¿ÃÔ¡Ò" + "áÍÁÁÔàµÍÃì" + "áÍÁá»Ãì" + "áÍÁâÁà¹ÕÂ" + "áÍÃèÁ" + "áÍÃì" + "áÍÅ" + "áÍÅ¡ÍÎÍÅì" + "áÍÅ¿Ò" + "áÍÊ¿Ñŵì" + "áÍÊä¾ÃÔ¹" + "áÍÍÑ´" + "áÍâ¹´" + "áÍè§" + "áÍè¹" + "áÍèÇ" + "áÍé" + "áÍé§áÁé§" + "áÍé´" + "áÍéÁ" + "áÍꤪÑè¹" + "áÍê´" + "áÍë" + "áÎ" + "áι´ìºÍÅ" + "áÎÁ" + "áÎÁàºÍÃìà¡ÍÃì" + "áÎÐ" + "áÎè" + "áÎè¡Öê¹" + "â¡" + "â¡¡" + "⡧" + "⡧¡Ò§" + "⡯Ô" + "⡴ѧ" + "⡹" + "â¡ÁÅ" + "â¡ÁØ·" + "â¡Â" + "â¡Ã¡" + "â¡Ã§" + "â¡Ã¸" + "â¡Ã¸Ò" + "â¡Ãè§" + "â¡Ãë¹" + "â¡Å´ì" + "â¡Å¹" + "â¡ÅÒËÅ" + "â¡ÈÅ" + "â¡Ê¹" + "â¡ÊÔ¹·Ãì" + "â¡ÊÕÂì" + "â¡ÊØÁ" + "â¡Ë¡" + "â¡àÁ¹" + "â¡â¡é" + "â¡âÃâ¡âÊ" + "â¡äÊÂ" + "â¡è§" + "â¡é" + "â¡é§â¤é§" + "â¡ë" + "â¡ë¹" + "â¢" + "⢡" + "⢧" + "⢴" + "⢹" + "⢹§" + "â¢Á" + "â¢Á§" + "â¢Á´" + "â¢Â¡" + "â¢Â§" + "â¢Âè§" + "â¢Å¡" + "â¢Å§" + "â¢è§" + "â¤" + "⤡" + "⤨Ã" + "⤵Ã" + "⤹" + "⤹Á" + "⤺Íŵì" + "â¤Á" + "â¤ÁèÒ" + "â¤Ã¡" + "â¤Ã§" + "â¤Ã§¡ÒÃ" + "â¤ÃÁ" + "â¤ÃÒª" + "â¤ÃàÁÕÂÁ" + "â¤ÃâÁâ«Á" + "â¤Ãè§" + "â¤Å" + "â¤Å§" + "â¤Å§à¤Å§" + "â¤Å¹" + "â¤Å¹¹Ôè§" + "â¤ÅÍÁàºÕÂ" + "â¤ÇµÒ" + "â¤à¤¹" + "â¤è§" + "â¤è¹" + "â¤é§" + "â¤éª" + "â¤é´" + "â¦É¡" + "â¦É³Ò" + "â¦ÉÐ" + "â¦ÉÔµ" + "â§" + "⧡" + "⧧" + "⧧১" + "⧹" + "â§à§" + "â§è" + "â§è§" + "â§è§à§è§" + "â§é§" + "â¨" + "⨡" + "⨧" + "⨧â¤Ãè§" + "⨷" + "⨷¡ì" + "⨷Âì" + "⨹" + "â¨Á" + "â¨Ã" + "â¨Ã¡ÃÃÁ" + "â¨É" + "â¨É¨Ñ¹" + "â¨è§¤ÃÖèÁ" + "â¨è§á¨é§" + "â¨ê¡" + "â¨ë§¤ÃÖèÁ" + "â©" + "⩧੧" + "â©´" + "⩹´" + "⩺" + "â©Á" + "â©Å¡" + "â©è" + "â©è§©èÒ§" + "⪡" + "⪡ع" + "⪤" + "⪴¡" + "⪴֡" + "⪵Ô" + "⪹" + "âªÂ" + "âªÇì" + "â«" + "â«¡" + "â«´Ò" + "â«Á" + "â«ÃÁ" + "â«ÅÒ" + "â«ÅÙªÑè¹" + "â«à´ÕÂÁ" + "â«àÇÕµ" + "â«è" + "â´" + "â´¡à´¡" + "â´´" + "â´¹" + "ⴹѷ" + "â´Á" + "â´ÁÔâ¹" + "â´Â" + "â´è" + "â´è§" + "â´ê»" + "âµ" + "ⵡ" + "ⵧ൧" + "âµ¹" + "âµ¹´" + "âµÁÃ" + "âµÃ¡" + "âµà¡ÕÂÇ" + "âµè§" + "âµé" + "âµé§" + "âµéâ¼" + "âµê´" + "âµêÐ" + "âµêÐÍÔËÁèÒÁ" + "â¶" + "⶧" + "ⶺ" + "â¶Á" + "â·" + "â·¡à·¡" + "â·§" + "ⷧ෧" + "â·¹" + "â·Á¹ÑÊ" + "â·Ã" + "â·Ã¤Á¹Ò¤Á" + "â·Ã·ÃÃȹì" + "â·Ã·Ñȹì" + "â·Ã¾ÔÁ¾ì" + "â·ÃÀÒ¾" + "â·ÃÁ" + "â·ÃÈѾ·ì" + "â·ÃàÅ¢" + "â·É" + "â·É·Ñ³±ì" + "â·ÉÒ¹Øâ·É" + "â·ÉÒÃÁ³ì" + "â·ÊÐ" + "â·ÊÒ¤µÔ" + "â·âÊ" + "â·è" + "â¸è" + "â¹" + "â¹¹" + "â¹ÃÒ" + "â¹ÃÕ" + "â¹è¹" + "â¹éµ" + "â¹éµºØê¡" + "â¹éµÊì" + "â¹é¹" + "â¹éÁ" + "âº" + "⺡" + "⺡¢Ã³Õ" + "⺡Õé" + "⺵" + "⺵Ñë¹" + "⺹ÑÊ" + "âºÂ" + "âºÃÁÕ¹" + "âºÃ͹" + "âºÃÒ³" + "âºÅÔàÇÕÂ" + "âºÇìÅÔè§" + "âºÊ¶ì" + "âºêàºê" + "âºë" + "â»" + "⻡" + "⻧" + "⻧ÅÒ§" + "⻹" + "â»Ã" + "â»Ã§" + "â»Ã´" + "â»ÃµÍ¹" + "â»ÃµÕ¹" + "â»ÃµØà¡Ê" + "â»ÃÂ" + "â»Ãà«Êà«ÍÃì" + "â»ÃàµÊáµ¹µì" + "â»Ãá¡ÃÁ" + "â»Ãá¡ÃÁàÁÍÃì" + "â»ÃâÁªÑ¹" + "â»ÃâÁµ" + "â»Ãè§" + "â»Ãì" + "â»ÅÔâÍ" + "â»Åè§" + "â»Ê¡ÒÃì´" + "â»ÊàµÍÃì" + "â»Ð" + "â»áŹ´ì" + "â»âÅ" + "â»è§" + "â»è§¢èÒÁ" + "â»é" + "â»é§" + "â»ê" + "â»ê¡" + "â»ê¡à¡ÍÃì" + "â»êÂà«Õ¹" + "â»êÐ" + "â¼" + "⼧" + "â¼¹" + "â¼Â" + "â¼Å¡à¼Å¡" + "â¼Å¹" + "â¼ÅÐ" + "â¼Åè" + "â¼Ð" + "â¾" + "⾡" + "⾧" + "⾧¾Ò§" + "⾫ԵÃ͹" + "⾸ÔÒ³" + "⾸ԺÑÅÅѧ¡ì" + "⾸ÔÊÁÀÒÃ" + "⾸ÔÊѵÇì" + "⾸Ôì" + "â¾¹" + "â¾¹·Ð¹Ò" + "â¾Â" + "â¾Â¡êǹ" + "â¾ÂÁ" + "â¾Ã¡" + "â¾Ã§" + "â¾Ãд¡" + "â¾ÃⵤÍÅ" + "â¾Å§" + "â¾Å¹" + "â¾ÅÐ" + "â¾Åè§" + "â¾Åé§" + "â¾Åéà¾Åé" + "â¾Ê¾" + "â¾á·Êà«ÕÂÁ" + "â¾é¹" + "â¿¡ÑÊ" + "⿹" + "â¿Åìà´ÍÃì" + "âÀ¤" + "âÀ¤Ô¹" + "âÀ¤Õ" + "âÀª¹Ð" + "âÀª¹Ò" + "âÀª¹Ò¡Ã" + "âÀª¹Ò¡ÒÃ" + "âÀª¹ÒËÒÃ" + "âÀª¹ì" + "âÁ" + "âÁ¡" + "âÁ¡¢ì" + "âÁ¦¡ÃÃÁ" + "âÁ¦ÊÑÒ" + "âÁ¦Ð" + "âÁ¦Õ¡ÃÃÁ" + "âÁ¦ÕÂÐ" + "âÁ§" + "âÁ§¤ÃØèÁ" + "âÁ´ÙÅ" + "âÁ·¹Ò" + "âÁÅÔº´Õ¹ÑÁ" + "âÁÅÕ" + "âÁËÐ" + "âÁËѹ¸ì" + "âÁËÒ¤µÔ" + "âÁà´Å" + "âÁà´çÁ" + "âÁàÁ" + "âÁàÁ¹µì" + "âÁàÅ¡ØÅ" + "âÁàÊ¡" + "âÁàÊÊ" + "âÁâ¹" + "âÁâË" + "âÁä¹Â" + "âÁè" + "âÁè§" + "âÁé" + "âÂ" + "â¡" + "⡵Ãì" + "â¤Ð" + "â¤Õ" + "â§" + "⪹ì" + "â¸Ò" + "â¸Թ" + "â¹" + "â¹Õ" + "âÂÁ" + "âÂàÂ" + "âÂâÊ" + "âÂè§" + "âÂè§âÂè" + "âÂé" + "âÃ" + "âä" + "âä¨ÔµàÀ·" + "âäÒ" + "âäҾҸ" + "âç" + "âç¤ÑÅ" + "âçàÃÕ¹" + "âçáÃÁ" + "âè" + "âè¹ì" + "âõÕ" + "âø" + "âøÃ" + "âÃÁ" + "âÃÁѹ" + "âÃÁÒà¹ÕÂ" + "âÃÂ" + "âÃÉ" + "âÃËÔµ" + "âÃà¹ÕÂÇ" + "âÃè" + "âÅ¡" + "âÅ¡ÇÔ·Ù" + "âšѹµÃì" + "âÅ¡Ò" + "âÅ¡Ò¸Ôº´Õ" + "âÅ¡Ò¸ÔäµÂ" + "âÅ¡ÒÁÔÊ" + "âÅ¡ÒÇÔ¹ÒÈ" + "âÅ¡ÔÂÐ" + "âÅ¡ÕÂÇѵÃ" + "âÅ¡ÕÂì" + "âšصøÃÃÁ" + "âšصÃÐ" + "âŧ" + "âŨ¹Ð" + "âųÐ" + "âÅ´" + "âŵÑÊ" + "âŹ" + "âÅÀ" + "âÅÁ" + "âÅÁÒ" + "âÅËÐ" + "âÅËѪ" + "âÅËÔµ" + "âÅÐ" + "âÅàÅ" + "âÅè" + "âÅè§" + "âÅé" + "âÅé¹" + "âÇ" + "âÇÂ" + "âÇÂÇÒÂ" + "âÇËÒÃ" + "âÇè" + "âÇè§" + "âÇéÂ" + "âÇéàÇé" + "âÈ¡" + "âÈ¡Ò" + "âÈ¡Ò´ÙÃ" + "âÈ¡ÒÅÑÂ" + "âÈ¡Õ" + "âÊ" + "âʡѹµì" + "âʳ" + "âʳ±ì" + "âÊ´" + "âÊ´Ò" + "âʴҺѹ" + "âʵ" + "âÊ·¡" + "âÊ·Ã" + "âʸ¡" + "âʸ¹Ð" + "âʹ" + "âÊÀ³" + "âÊÀÒ" + "âÊÀÔ³Õ" + "âÊÀÕ" + "âÊÁ" + "âÊÁ¹ÑÊ" + "âÊÁÁ" + "âÊÁÂì" + "âÊè" + "âÊÃè§" + "âÊÇÃó" + "âÊËØéÂ" + "âÊÌÊ" + "âÊàÀ³Õ" + "âÊâ¤Ã¡" + "â˧" + "âË´" + "â˹" + "â˹¡" + "â˹è§" + "âËÁ" + "âËÁ´" + "âËÁè§" + "âËÂ" + "âË¡àË¡" + "â˧" + "âËÂè§" + "âËÃ" + "âËçàËç" + "âËÃоÒ" + "âËÃÒ" + "âËÃÒ¨ÒÃÂì" + "âËÃÒÈÒʵÃì" + "âËÅ" + "âËŧâ¨é§" + "âËŹ" + "âËÅè" + "âËÇ" + "âËÇ¡àËÇ¡" + "âËǧ" + "âËÇ´" + "âËǵ" + "âËÇè" + "âËè" + "âÍ" + "âÍ¡" + "âÍ¡ÒÊ" + "âÍ¡Ô¹ÒÇÒ" + "âͧ¡ÒÃ" + "âͧ⢴§" + "âͪÐ" + "âͪÒ" + "âÍ´" + "â͵µÑ»»Ð" + "â͹" + "âͺ" + "âÍÀÒ" + "âÍÀÒÊ" + "âÍÁ" + "âÍÂ" + "âÍÃÊ" + "âÍÅоèÍ" + "âÍÅÔÁ»Ô¡" + "âÍÇÒ·" + "âÍÉ°ÀÑÂ" + "âÍÉ°ì" + "âÍʶ" + "âÍËѧ" + "âÍËìÁ" + "âÍÌÒÃ" + "âÍÌÒÃÔ¡" + "âÍÌÒÃÖ¡" + "âÍ໡" + "âÍàÅÕé§" + "âÍàÇÍÃì" + "âÍàÍ«ÔÊ" + "âÍàÍÊ" + "âÍ⫹" + "âÍè" + "âÍè§" + "âÍèÍèÒ" + "âÍé" + "âÍé¡" + "âÍéàÍé" + "âÍéâÅÁ" + "âÍéâÎ" + "âÍê¡" + "âÍêÂ" + "âÍë" + "âÎ" + "âΡ" + "âÎÁ" + "âÎÅìÁ" + "âÎʵì" + "âÎÊàµÊ" + "âÎàµçÅ" + "ã¡Åé" + "ã¤Ã" + "ã¤Ãè" + "ã¨" + "ãªè" + "ãªé" + "ã´" + "ãµé" + "ã¹" + "ã¹ËÅǧ" + "ãº" + "ãºé" + "ã½è" + "ãÂ" + "ãÊ" + "ãÊè" + "ãËè" + "ãËÁè" + "ãËé" + "ä¡" + "ä¡Ã" + "ä¡ÃÅÒÊ" + "ä¡ÃÈÃ" + "ä¡ÃÊÃ" + "ä¡Å" + "ä¡Åè" + "ä¡Ç" + "ä¡è" + "ä¡ê´ì" + "ä¡ë" + "ä¢" + "ä¢Çè" + "ä¢Çé" + "ä¢Ê×Í" + "ä¢è" + "ä¢è´Ñ¹" + "ä¢èÁØ¡" + "ä¢é" + "ä¤" + "ä¤Ãé" + "ä¤Å" + "ä¤ÅàÍç¹µì" + "ä¤Åá͹µì" + "ä¤Åé" + "ä¤é" + "ä§" + "ä¨" + "䩹" + "ä©äÅ" + "äª" + "äªÂ" + "äªâÂ" + "ä«" + "䫵ì" + "䫹ì" + "䫺ÕàÃÕÂ" + "ä«»ÃÑÊ" + "ä«ÂÒä¹´ì" + "ä«Ãé" + "ä«à¡ÔÅ" + "ä«àºÍÃì" + "ä«àù" + "ä«â¤Å¹" + "ä«âÅ" + "ä«é" + "ä´" + "ä´¹ÒâÁ" + "ä´¹ÒäÁµì" + "ä´ÃàÇÍÃì" + "ä´Ãì¿" + "ä´ÍÐÅçÍ¡" + "ä´ÍÐÅçÍ¡ºçÍ¡«ì" + "ä´ÍÒÃÕè" + "ä´àá·ÍÃÕ" + "ä´â¹àÊÒÃì" + "ä´é" + "äµ" + "äµÃ" + "äµÃÁÒÊ" + "äµÃèµÃͧ" + "äµè" + "äµé" + "äµé¡ë§" + "äµé½Øè¹" + "äµéËÇѹ" + "äµë" + "ä¶" + "ä¶Å" + "ä¶è" + "ä¶é" + "ä·" + "ä·¡Í" + "ä·¿Í´ì" + "ä·Â" + "ä·ÂÃÑ°" + "ä·Ã" + "ä·ÃÍ´ì" + "ä·à·à¹ÕÂÁ" + "ä·é" + "ä¹" + "ä¹µì¤ÅѺ" + "ä¹Å͹" + "ä¹Åì" + "ä¹âµÃਹ" + "亵ì" + "äºÍÍÊ" + "äºàºÔÅ" + "ä»" + "ä»ÂÒÅ" + "ä»ÃɳÕºÃó" + "ä»ÃɳÕºѵÃ" + "ä»ÃɳÕÂÀѳ±ì" + "ä»ÃɳÕÂÇѵ¶Ø" + "ä»ÃɳÕÂÒ¡Ã" + "ä»ÃɳÕÂì" + "ä»Åè" + "ä»è" + "ä»ë" + "ä¼" + "ä¼·" + "ä¼è" + "ä½" + "ä¾" + "侨ԵÃ" + "ä¾±ÙÃÂì" + "侺ÙÅÂì" + "ä¾Ã" + "ä¾Ã¨ÔµÃ" + "ä¾Ã±ÙÃÂì" + "ä¾ÃѪ" + "ä¾ÃÔ¹" + "ä¾ÃÕ" + "ä¾Ãè" + "ä¾ÅÔ¹" + "ä¾Åè" + "ä¾ÈÒÅ" + "ä¾àÃÒÐ" + "ä¾âè¹ì" + "ä¾è" + "ä¾è»êÍ¡" + "ä¿" + "ä¿Åì" + "ä¿á¹¹«ì" + "äÁ¤Ã͹" + "äÁµÃÕ" + "äÁÂÃÒº" + "äÁÅì" + "äÁâ¤Ã" + "äÁâ¤Ã«Í¿·ì" + "äÁâ¤ÃàÇ¿" + "äÁâ¤Ã⿹" + "äÁè" + "äÁé" + "äÂ" + "äÂè" + "äÃ" + "äÃè" + "äÃé" + "äÅÂ" + "äÅૹÊì" + "äÅè" + "äÅèàÅÕèÂ" + "äÅé" + "äÇ" + "äÇ¡Ù³°ì" + "äDZÙÃÂì" + "äÇ·Âì" + "äǹì" + "äǾ¨¹ì" + "äÇÂҡóì" + "äÇÂÒÇѨ¡Ã" + "äÇÂÒÇѨÁÑÂ" + "äÇÃÑÊ" + "äÇâÍÅÔ¹" + "äÇé" + "äÈÅ" + "äÊ" + "äÊÂ" + "äÊÂÒ" + "äÊÃé" + "äÊÇ" + "äÊé" + "äË" + "ä˹" + "äËÁ" + "äËÁé" + "äËÃè" + "äËÅ" + "äËÅè" + "äËÇ" + "äËÇé" + "äËËÅÓ" + "äËè" + "äËé" + "äÍ" + "äͤ͹" + "äÍ·Õ" + "äͺÕàÍçÁ" + "äÍÂÃÒ" + "äÍÂàÃÈ" + "äÍÃÒÇѳ" + "äÍÃìᏴì" + "äÍÈ¡ÃÕÁ" + "äÍÈÇÃÃÂì" + "äÍÈÙÃÂì" + "äÍÍ͹" + "äÍâ«â·»" + "äÍâÍ´Õ¹" + "äÍé" + "äδÃÒ" + "äÎâ¡ÃÁÔàµÍÃì" + "äÎâ´Ã¤ÒÃìºÍ¹" + "äÎâÅ" + ))) + (setq thai-word-table (list 'thai-words)) + (while l + (set-nested-alist (car l) 1 thai-word-table) + (setq l (cdr l)))) + + +(defun thai-update-word-table (file &optional append) + "Update Thai word table by replacing the current word list with +FILE. If called with a prefix argument, FILE is appended instead to +the current word list." + (interactive "FThai word table file: \nP") + (let ((buf (generate-new-buffer "*thai-work*")) + (coding-system-for-read 'thai-tis620) + (table (if append thai-word-table (list 'thai-words)))) + (unwind-protect + (save-excursion + (set-buffer buf) + (insert-file-contents file) + (goto-char (point-min)) + (while (re-search-forward "\\ct+" nil t) + (set-nested-alist (match-string 0) 1 table))) + (kill-buffer buf)) + (setq thai-word-table table))) + + +;; Two special Thai characters regarded as suffix of words. + +(defconst thai-MaiYaMok (make-char 'thai-tis620 ?\xE6)) +(defconst thai-PaiYanNoi (make-char 'thai-tis620 ?\xCF)) + + +;; Find Thai words starting at POS and return a list of positions of +;; the Thai word ends. It doesn't move point. LIMIT limits the +;; maximum position. IGNORE is a list of positions to ignore. It is +;; assumed that all following characters to LIMIT are Thai. If the +;; following char is not Thai (i.e., POS is equal to LIMIT), return t. +;; +;; Note that the longest word position comes first. + +(defun thai-find-word-ends (pos limit &optional ignore) + (if (>= pos limit) + t + (let* ((char (char-after pos)) + (this (cdr (assq char (cdr thai-word-table)))) + category-set + positions) + ;; Look up the following character sequence in `thai-word-table' + ;; character by character. + (while this + (setq pos (1+ pos) + char (char-after pos) + category-set (char-category-set char)) + ;; If the current sequence is recorded in `thai-word-table' + ;; (i.e. (car THIS) is 1) and the following Thai character is + ;; not an upper-vowel, lower-vowel, or tone-mark, we have + ;; found a possible word ending position. + (if (and (eq (car this) 1) + (not (or (aref category-set ?2) + (aref category-set ?3) + (aref category-set ?4)))) + (progn + ;; Skip possible Thai suffices. + (while (or (eq char thai-MaiYaMok) (eq char thai-PaiYanNoi)) + (setq pos (1+ pos) + char (char-after pos))) + ;; Skip character positions in IGNORE list. + (or (memq pos ignore) + (setq positions (cons pos positions))))) + ;; Set up next loop. + (setq this (and (< pos limit) (cdr (assq char this))))) + positions))) + + +;; Move point forward to the end of Thai word which follows point and +;; update VEC. VEC is a vector of three elements used to cache word +;; end positions. The Nth element, if non-nil, is a list of end +;; points of the Nth word, or t indicating that there is no Thai +;; character. LIMIT limits the point movement. + +(defun thai-forward-word-update-info (vec limit) + (let ((pos (point)) + v0 v1 v2 v3 + second-best + tried + positions) + (if + ;; If four succeeding Thai words are found, throw t, otherwise + ;; throw nil. + (catch 'tag + ;; Start with first vector element. + (setq v0 (aref vec 0)) + (unless v0 + ;; Update VEC if V0 is empty. + (setq v0 (thai-find-word-ends pos limit)) + (aset vec 0 v0) + (aset vec 1 nil)) + ;; In case we haven't found any wordbreaks resp. point has + ;; reached LIMIT, exit the catch body. + (if (symbolp v0) ; i.e. nil or t? + (throw 'tag nil)) + ;; OK, V0 holds possible word ends for the current position. + ;; We save V0 for later reference. + (setq tried v0) + (setq v1 (aref vec 1)) + ;; Now we try all end word positions to find the next word. + (while v0 + (setq pos (car v0)) + (unless v1 + ;; Update VEC if V1 is empty, ignoring positions already + ;; found -- for Thai, we need the longest match, so if + ;; we have + ;; + ;; start(long-word) = start(short-word1) + ;; end(short-word1) = start(short-word2) + ;; end(short-word2) = end(long-word) + ;; + ;; only long-word is used. + (setq v1 (thai-find-word-ends pos limit tried)) + (aset vec 1 v1) + (aset vec 2 nil)) + ;; If point has reached LIMIT, exit the catch body. + (if (eq v1 t) + (throw 'tag t)) + ;; Save SECOND-BEST, if this hasn't been done already. + ;; The `second best' solution is the end position of the + ;; longest first word followed by the longest second word. + (or second-best + (not v1) + (setq second-best (cons v0 v1))) + ;; Update the already tried end word positions. + (setq tried (append tried v1)) + ;; Now repeat the whole process to find a third word. + (when v1 + (setq v2 (aref vec 2)) + (while v1 + (setq pos (car v1)) + (unless v2 + (setq v2 (thai-find-word-ends pos limit tried)) + (aset vec 2 v2)) + (if (eq v2 t) + (throw 'tag t)) + (setq tried (append tried v2)) + ;; And the same for a fourth word. + (while v2 + (setq pos (car v2)) + (setq v3 (thai-find-word-ends pos limit tried)) + (if v3 + (throw 'tag t)) + (setq v2 (cdr v2))) + (setq v1 (cdr v1)))) + (setq v0 (cdr v0))) + ;; No success. + nil) + (progn + ;; We found four succeeding Thai words (or LIMIT has been + ;; reached). Move to the end of the first word. + (goto-char (car v0)) + ;; Update VEC for the next function call. If no larger word + ;; positions have been found, set the corresponding vector + ;; element to nil. + (if (and (consp v1) (< (car v1) (car (aref vec 1)))) + (aset vec 0 nil) + (aset vec 0 v1) + (if (and (consp v2) (< (car v2) (car (aref vec 2)))) + (aset vec 1 nil) + (aset vec 1 v2) + (aset vec 2 v3)))) ; exit function successfully + + ;; We didn't find four consecutive words. If we have found a + ;; `second best' solution and the length of those two words is + ;; longer than the longest word we can see at the current point, + ;; adopt the second best solution. This decision is based on + ;; heuristic tests. + (if (and second-best + (< (car (aref vec 0)) (car (cdr second-best)))) + (progn + (goto-char (car (car second-best))) + (aset vec 0 (cdr second-best))) + ;; We finally failed to find a word break. For Thai, the best + ;; solution is to extend the first longest word so that the + ;; end point starts a second word. + (setq pos (or (car (aref vec 0)) pos)) + (while (and (< pos limit) + (not (setq positions (thai-find-word-ends pos limit)))) + (setq pos (1+ pos))) + (goto-char pos) + (aset vec 0 positions)) + (aset vec 1 nil) + nil))) + + +;; Return a list of Thai word boundary positions after the current +;; point. LIMIT, if non-nil, limits the region to check. + +(defun thai-find-word-boundaries (&optional limit) + (or limit + (setq limit (point-max))) + (save-excursion + (let ((vec (make-vector 3 nil)) + (boundaries nil) + this-limit) + ;; Loop over all (consecutive) Thai regions by using the + ;; character property `t' until LIMIT is reached. + (while (and (< (point) limit) + (re-search-forward "\\ct+" nil t)) + (setq this-limit (point)) + (goto-char (match-beginning 0)) + (fillarray vec nil) + ;; Check the first word, initializing VEC. + (thai-forward-word-update-info vec this-limit) + ;; Then loop over the remaining words in the current Thai + ;; region, collecting the boundaries. + (while (< (point) this-limit) + (setq boundaries (cons (point) boundaries)) + (thai-forward-word-update-info vec this-limit))) + boundaries))) + + +(defun thai-break-words (separator &optional limit) + "Break Thai words by inserting a separator string at word boundaries." + (interactive "sSeparator: ") + (save-excursion + (let ((boundaries (thai-find-word-boundaries limit))) + (while boundaries + (goto-char (car boundaries)) + (insert separator) + (setq boundaries (cdr boundaries)))))) + + +(defun thai-forward-word (count) + "Move point forward COUNT words considering Thai word boundaries. +If COUNT is negative, move point backward (- COUNT) words." + (interactive "p") + (if (> count 0) + (while (> count 0) + (skip-syntax-forward "^w") + (if (looking-at "\\ct+") + ;; We have reached a Thai region, so we must do something + ;; special instead of using forward-word. + (let ((start (point)) + (limit (match-end 0)) + boundaries + tail) + ;; If thai-forward-word has been called within a Thai + ;; region, we must go back until the Thai region starts + ;; to do the contextual analysis for finding word + ;; breaks. + (while (aref (char-category-set (preceding-char)) ?t) + (forward-char -1)) + ;; OK, we ask for the list of word boundaries in + ;; reversed order. + (setq boundaries (nreverse (thai-find-word-boundaries limit))) + ;; Now we search for the next boundary after START. + (while (and boundaries (<= (car boundaries) start)) + (setq boundaries (cdr boundaries))) + ;; Adjust loop for next while loop. + (setq count (1- count)) + ;; Now we skip Thai words until the BOUNDARIES list is + ;; empty or count-1 words have been passed. + (if (not boundaries) + (goto-char limit) + (while (and (> count 0) + boundaries) + (setq boundaries (cdr boundaries) + count (1- count))) + ;; If BOUNDARIES is empty, the word counter is not + ;; zero yet (remember that we have decreased COUNT by + ;; one), so we go to LIMIT. Otherwise go to next + ;; boundary. + (if boundaries + (goto-char (car boundaries)) + (goto-char limit)))) + ;; No Thai region. + (forward-word 1) + (setq count (1- count)))) + ;; The symmetrical action for negative values. + (if (< count 0) + (while (< count 0) + (skip-syntax-backward "^w") + (if (aref (char-category-set (preceding-char)) ?t) + (let ((start (point)) + (limit (if (looking-at "\\ct+") (match-end 0) + (point))) + boundaries) + (forward-char -1) + (while (aref (char-category-set (preceding-char)) ?t) + (forward-char -1)) + (setq boundaries (thai-find-word-boundaries limit)) + (while (and boundaries (>= (car boundaries) start)) + (setq boundaries (cdr boundaries))) + (setq count (1+ count)) + (if boundaries + (progn + (while (and (< count 0) boundaries) + (setq boundaries (cdr boundaries) + count (1+ count))) + (if boundaries + (goto-char (car boundaries)))))) + (forward-word -1) + (setq count (1+ count))))))) + + +(defun thai-backward-word (count) + "Move point backward COUNT words considering Thai word boundaries. +If COUNT is negative, move point forward (- COUNT) words." + (interactive "p") + (thai-forward-word (- count))) + + +(provide 'thai-word) + + +;; Local Variables: +;; coding: tis-620 +;; End: + +;; end of thai-word.el diff --git a/language/chinese/CJK/cjk-4.8.5/utils/lisp/mule-2.3/cjk-enc.el b/language/chinese/CJK/cjk-4.8.5/utils/lisp/mule-2.3/cjk-enc.el new file mode 100644 index 0000000000..9f2371bba5 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/lisp/mule-2.3/cjk-enc.el @@ -0,0 +1,625 @@ +;;; cjk-enc.el --- provide a coding system for LaTeX2e CJK package + +;; Copyright (C) 1996, 1998 Electrotechnical Laboratory, JAPAN. + +;; Author: Kenichi HANDA <handa@etl.go.jp> +;; Werner LEMBERG <wl@gnu.org> + +;; Keywords: CJK package, LaTeX2e, mule + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to +;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + +;; +;; CJK Version 4.8.5 (16-Oct-2021) +;; + +;;; Code + +;; The following tables map from Mule's internal encoding to LaTeX2e +;; macros. Note that not all macros defined here really do exist. See +;; MULEenc.sty and cjk-enc.txt for further details. +;; +;; The active TeX character 0x80 is defined as a multiplex command which +;; executes its first argument. To make the macro expansion robust +;; against \uppercase and \lowercase, numbers are used as parameters which +;; index the various commands. +;; +;; 0xFF will be used as a parameter delimiting character. + +(defconst cjk-latin-1 + [;0xa0 + "99\177" "1\177" "2\177" "3\177" + "4\177" "5\177" "6\177" "7\177" + "8\177\\ " "9\177" "10\177" "11\177" + "12\177" "0\177-{}" "14\177" "15\177\\ " + + ; 0xb0 + "16\177" "17\177" "18\177" "19\177" + "20\177\\ " "21\177" "22\177" "23\177" + "24\177\\ " "25\177" "26\177" "27\177" + "28\177" "29\177" "30\177" "31\177" + + ; 0xc0 + "32\177A" "20\177A" "33\177A" "34\177A" + "8\177A" "0\177\\AA" "0\177\\AE" "24\177C" + "32\177E" "20\177E" "33\177E" "8\177E" + "32\177I" "20\177I" "33\177I" "8\177I" + + ; 0xd0 + "0\177\\DJ" "34\177N" "32\177O" "20\177O" + "33\177O" "34\177O" "8\177O" "38\177" + "0\177\\O" "32\177U" "20\177U" "33\177U" + "8\177U" "20\177Y" "0\177\\TH" "0\177\\ss" + + ; 0xe0 + "32\177a" "20\177a" "33\177a" "34\177a" + "8\177a" "0\177\\aa" "0\177\\ae" "24\177c" + "32\177e" "20\177e" "33\177e" "8\177e" + "32\177\\i" "20\177\\i" "33\177\\i" "8\177\\i" + + ; 0xf0 + "0\177\\dj" "34\177n" "32\177o" "20\177o" + "33\177o" "34\177o" "8\177o" "45\177" + "0\177\\o" "32\177u" "20\177u" "33\177u" + "8\177u" "20\177y" "0\177\\th" "8\177y" + ]) + +(defconst cjk-latin-2 + [; 0xa0 + "99\177" "48\177A" "49\177\\ " "0\177\\L" + "4\177" "51\177L" "20\177S" "7\177" + "8\177\\ " "51\177S" "24\177S" "51\177T" + "20\177Z" "0\177-{}" "51\177Z" "52\177Z" + + ; 0xb0 + "16\177" "48\177a" "48\177\\ " "0\177\\l" + "20\177\\ " "51\177l" "20\177s" "51\177\\ " + "24\177\\ " "51\177s" "24\177s" "51\177t" + "20\177z" "55\177\\ " "51\177z" "52\177z" + + ; 0xc0 + "20\177R" "20\177A" "33\177A" "49\177A" + "8\177A" "20\177L" "20\177C" "24\177C" + "51\177C" "20\177E" "48\177E" "8\177E" + "51\177E" "20\177I" "33\177I" "51\177D" + + ; 0xd0 + "0\177\\DJ" "20\177N" "51\177N" "20\177O" + "33\177O" "55\177O" "8\177O" "38\177" + "51\177R" "53\177U" "20\177U" "55\177U" + "8\177U" "20\177Y" "24\177T" "0\177\\ss" + + ; 0xe0 + "20\177r" "20\177a" "33\177a" "49\177a" + "8\177a" "20\177l" "20\177c" "24\177c" + "51\177c" "20\177e" "48\177e" "8\177e" + "51\177e" "20\177\\i" "33\177\\i" "51\177d" + + ; 0xf0 + "0\177\\dj" "20\177n" "51\177n" "20\177o" + "33\177o" "55\177o" "8\177o" "45\177" + "51\177r" "53\177u" "20\177u" "55\177u" + "8\177u" "20\177y" "24\177t" "52\177\\ " + ]) + +(defconst cjk-latin-3 + [; 0xa0 + "99\177" "0\177\\TEXTMALTESEH" "49\177\\ " "3\177" + "4\177" "" "33\177H" "7\177" + "8\177\\ " "52\177I" "24\177S" "49\177G" + "33\177J" "0\177-{}" "" "52\177Z" + + ; 0xb0 + "16\177" "0\177\\textmalteseh" "18\177" "19\177" + "20\177\\ " "21\177" "33\177h" "23\177" + "24\177\\ " "0\177\\i" "24\177s" "49\177g" + "33\177\\j" "29\177" "" "52\177z" + + ; 0xc0 + "32\177A" "20\177A" "33\177A" "" + "8\177A" "52\177C" "33\177C" "24\177C" + "32\177E" "20\177E" "33\177E" "8\177E" + "32\177I" "20\177I" "33\177I" "8\177I" + + ; 0xd0 + "" "34\177N" "32\177O" "20\177O" + "33\177O" "52\177G" "8\177O" "38\177" + "33\177G" "32\177U" "20\177U" "33\177U" + "8\177U" "49\177U" "33\177S" "0\177\\ss" + + ; 0xe0 + "32\177a" "20\177a" "33\177a" "" + "8\177a" "52\177c" "33\177c" "24\177c" + "32\177e" "20\177e" "33\177e" "8\177e" + "32\177\\i" "20\177\\i" "33\177\\i" "8\177\\i" + + ; 0xf0 + "" "34\177n" "32\177o" "20\177o" + "33\177o" "52\177g" "8\177o" "45\177" + "33\177g" "32\177u" "20\177u" "33\177u" + "8\177u" "49\177u" "33\177s" "52\177\\ " + ]) + +(defconst cjk-latin-4 + [; 0xa0 + "99\177" "48\177A" "59\177" "24\177R" + "4\177" "34\177I" "24\177L" "7\177" + "8\177\\ " "51\177S" "15\177E" "24\177G" + "0\177\\TEXTTSTROKE" "0\177-{}" "51\177Z" "15\177\\ " + + ; 0xb0 + "16\177" "48\177a" "48\177\\ " "24\177r" + "20\177\\ " "34\177\\i" "24\177l" "51\177\\ " + "24\177\\ " "51\177s" "15\177e" "24\177g" + "0\177\\texttstroke" "0\177\\NG" "51\177z" "0\177\\ng" + + ; 0xc0 + "15\177A" "20\177A" "33\177A" "34\177A" + "8\177A" "0\177\\AA" "0\177\\AE" "48\177I" + "51\177C" "20\177E" "48\177E" "8\177E" + "52\177E" "20\177I" "33\177I" "15\177I" + + ; 0xd0 + "0\177\\DJ" "24\177N" "15\177O" "24\177K" + "33\177O" "34\177O" "8\177O" "38\177" + "0\177\\O" "48\177U" "20\177U" "33\177U" + "8\177U" "34\177U" "15\177U" "0\177\\ss" + + ; 0xe0 + "15\177a" "20\177a" "33\177a" "34\177a" + "8\177a" "0\177\\aa" "0\177\\ae" "48\177i" + "51\177c" "20\177e" "48\177e" "8\177e" + "52\177e" "20\177\\i" "33\177\\i" "15\177\\i" + + ; 0xf0 + "0\177\\dj" "24\177n" "15\177o" "24\177k" + "33\177o" "34\177o" "8\177o" "45\177" + "0\177\\o" "48\177u" "20\177u" "33\177u" + "8\177u" "34\177u" "15\177u" "52\177\\ " + ]) + +(defconst cjk-latin-5 ; ISO 8859-9 + [; 0xa0 + "99\177" "1\177" "2\177" "3\177" + "4\177" "5\177" "6\177" "7\177" + "8\177\\ " "9\177" "10\177" "11\177" + "12\177" "0\177-{}" "14\177" "15\177\\ " + + ; 0xb0 + "16\177" "17\177" "18\177" "19\177" + "20\177\\ " "21\177" "22\177" "23\177" + "24\177\\ " "25\177" "26\177" "27\177" + "28\177" "29\177" "30\177" "31\177" + + ; 0xc0 + "32\177A" "20\177A" "33\177A" "34\177A" + "8\177A" "0\177\\AA" "0\177\\AE" "24\177C" + "32\177E" "20\177E" "33\177E" "8\177E" + "32\177I" "20\177I" "33\177I" "8\177I" + + ; 0xd0 + "49\177G" "34\177N" "32\177O" "20\177O" + "33\177O" "34\177O" "8\177O" "38\177" + "0\177\\O" "32\177U" "20\177U" "33\177U" + "8\177U" "52\177I" "24\177S" "0\177\\ss" + + ; 0xe0 + "32\177a" "20\177a" "33\177a" "34\177a" + "8\177a" "0\177\\aa" "0\177\\ae" "24\177c" + "32\177e" "20\177e" "33\177e" "8\177e" + "32\177\\i" "20\177\\i" "33\177\\i" "8\177\\i" + + ; 0xf0 + "49\177g" "34\177n" "32\177o" "20\177o" + "33\177o" "34\177o" "8\177o" "45\177" + "0\177\\o" "32\177u" "20\177u" "33\177u" + "8\177u" "0\177\\i" "24\177s" "8\177y" + ]) + +(defconst cjk-latin-jisx ; JIS X 0201 lower half + [; 0xa0 + "" "0\177!" "37\177" "0\177\\#" + "39\177" "0\177\\%" "0\177\\&" "40\177" + "0\177(" "0\177)" "0\177*" "0\177+" + "0\177," "0\177-" "0\177." "0\177/" + + ; 0xb0 + "0\1770" "0\1771" "0\1772" "0\1773" + "0\1774" "0\1775" "0\1776" "0\1777" + "0\1778" "0\1779" "0\177:" "0\177;" + "41\177" "0\177=" "42\177" "0\177?" + + ; 0xc0 + "36\177" "0\177A" "0\177B" "0\177C" + "0\177D" "0\177E" "0\177F" "0\177G" + "0\177H" "0\177I" "0\177J" "0\177K" + "0\177L" "0\177M" "0\177N" "0\177O" + + ; 0xd0 + "0\177P" "0\177Q" "0\177R" "0\177S" + "0\177T" "0\177U" "0\177V" "0\177W" + "0\177X" "0\177Y" "0\177Z" "0\177[" + "5\177" "0\177]" "43\177" "44\177" + + ; 0xe0 + "46\177" "0\177a" "0\177b" "0\177c" + "0\177d" "0\177e" "0\177f" "0\177g" + "0\177h" "0\177i" "0\177j" "0\177k" + "0\177l" "0\177m" "0\177n" "0\177o" + + ; 0xf0 + "0\177p" "0\177q" "0\177r" "0\177s" + "0\177t" "0\177u" "0\177v" "0\177w" + "0\177x" "0\177y" "0\177z" "47\177" + "50\177" "54\177" "56\177" "" + ]) + +(defconst cjk-cyrillic ; ISO 8859-5 + [; 0xa0 + "99\177" "0\177\\CYRYO" "0\177\\CYRDJE" "20\177\\CYRG" + "0\177\\CYRIE" "0\177\\CYRDZE" "0\177\\CYRII" "0\177\\CYRYI" + "0\177\\CYRJE" "0\177\\CYRLJE" "0\177\\CYRNJE" "0\177\\CYRTSHE" + "20\177\\CYRK" "0\177-{}" "0\177\\CYRUSHRT" "0\177\\CYRDZHE" + + ; 0xb0 + "0\177\\CYRA" "0\177\\CYRB" "0\177\\CYRV" "0\177\\CYRG" + "0\177\\CYRD" "0\177\\CYRE" "0\177\\CYRZH" "0\177\\CYRZ" + "0\177\\CYRI" "0\177\\CYRISHRT" "0\177\\CYRK" "0\177\\CYRL" + "0\177\\CYRM" "0\177\\CYRN" "0\177\\CYRO" "0\177\\CYRP" + + ; 0xc0 + "0\177\\CYRR" "0\177\\CYRS" "0\177\\CYRT" "0\177\\CYRU" + "0\177\\CYRF" "0\177\\CYRH" "0\177\\CYRC" "0\177\\CYRCH" + "0\177\\CYRSH" "0\177\\CYRSHCH" "0\177\\CYRHRDSN" "0\177\\CYRERY" + "0\177\\CYRSFTSN" "0\177\\CYREREV" "0\177\\CYRYU" "0\177\\CYRYA" + + ; 0xd0 + "0\177\\cyra" "0\177\\cyrb" "0\177\\cyrv" "0\177\\cyrg" + "0\177\\cyrd" "0\177\\cyre" "0\177\\cyrzh" "0\177\\cyrz" + "0\177\\cyri" "0\177\\cyrishrt" "0\177\\cyrk" "0\177\\cyrl" + "0\177\\cyrm" "0\177\\cyrn" "0\177\\cyro" "0\177\\cyrp" + + ; 0xe0 + "0\177\\cyrr" "0\177\\cyrs" "0\177\\cyrt" "0\177\\cyru" + "0\177\\cyrf" "0\177\\cyrh" "0\177\\cyrc" "0\177\\cyrch" + "0\177\\cyrsh" "0\177\\cyrshch" "0\177\\cyrhrdsn" "0\177\\cyrery" + "0\177\\cyrsftsn" "0\177\\cyrerev" "0\177\\cyryu" "0\177\\cyrya" + + ; 0xf0 + "35\177" "0\177\\cyryo" "0\177\\cyrdje" "20\177\\cyrg" + "0\177\\cyrie" "0\177\\cyrdze" "0\177\\cyrii" "0\177\\cyryi" + "0\177\\cyrje" "0\177\\cyrlje" "0\177\\cyrnje" "0\177\\cyrtshe" + "20\177\\cyrk" "7\177" "0\177\\cyrushrt" "0\177\\cyrdzhe" + ]) + +(defconst cjk-greek ; ISO 8859-7 + [;0xa0 + "99\177" "0\177<{}" "0\177>{}" "3\177" + "" "" "6\177" "7\177" + "8\177\\ " "9\177" "" "0\177((" + "12\177" "0\177-{}" "" "0\177---" + + ; 0xb0 + "16\177" "17\177" "18\177" "19\177" + "0\177'{}" "0\177\"'{}" "0\177'A" "0\177;" + "0\177'E" "0\177'H" "0\177'I" "0\177))" + "0\177'O" "29\177" "0\177'U" "0\177'W" + + ; 0xc0 + "0\177\"'i" "0\177A" "0\177B" "0\177G" + "0\177D" "0\177E" "0\177Z" "0\177H" + "0\177J" "0\177I" "0\177K" "0\177L" + "0\177M" "0\177N" "0\177X" "0\177O" + + ; 0xd0 + "0\177P" "0\177R" "" "0\177S" + "0\177T" "0\177U" "0\177F" "0\177Q" + "0\177Y" "0\177W" "0\177\"I" "0\177\"U" + "0\177'a" "0\177'e" "0\177'h" "0\177'i" + + ; 0xe0 + "0\177\"'u" "0\177a" "0\177b" "0\177g" + "0\177d" "0\177e" "0\177z" "0\177h" + "0\177j" "0\177i" "0\177k" "0\177l" + "0\177m" "0\177n" "0\177x" "0\177o" + + ; 0xf0 + "0\177p" "0\177r" "0\177c" "0\177s" + "0\177t" "0\177u" "0\177f" "0\177q" + "0\177y" "0\177w" "0\177\"i" "0\177\"u" + "0\177'o" "0\177'u" "0\177'w" "" + ]) + +(defconst cjk-viscii-lower + [; 0xA0 + "" "20\177\\abreve" "32\177\\abreve" "71\177\\abreve" + "20\177\\acircumflex" "32\177\\acircumflex" "73\177\\acircumflex" "71\177\\acircumflex" + "34\177e" "71\177e" "20\177\\ecircumflex" "32\177\\ecircumflex" + "73\177\\ecircumflex" "34\177\\ecircumflex" "71\177\\ecircumflex" "20\177\\ocircumflex" + + ; 0xB0 + "32\177\\ocircumflex" "73\177\\ocircumflex" "34\177\\ocircumflex" "" + "" "71\177\\ocircumflex" "32\177\\ohorn" "73\177\\ohorn" + "71\177i" "" "" "" + "" "0\177\\ohorn" "20\177\\ohorn" "" + + ; 0xC0 + "" "" "" "" + "" "" "73\177\\abreve" "34\177\\abreve" + "" "" "" "" + "" "" "" "32\177y" + + ; 0xD0 + "" "20\177\\uhorn" "" "" + "" "71\177a" "73\177y" "32\177\\uhorn" + "73\177\\uhorn" "" "" "34\177y" + "71\177y" "" "34\177\\ohorn" "0\177\\uhorn" + + ; 0xE0 + "32\177a" "20\177a" "0\177\\acircumflex" "34\177a" + "73\177a" "0\177\\abreve" "34\177\\uhorn" "34\177\\acircumflex" + "32\177e" "20\177e" "0\177\\ecircumflex" "73\177e" + "32\177i" "20\177i" "34\177i" "73\177i" + + ; 0xF0 + "0\177\\dj" "71\177\\uhorn" "32\177o" "20\177o" + "0\177\\ocircumflex" "34\177o" "73\177o" "71\177o" + "71\177u" "32\177u" "20\177u" "34\177u" + "73\177u" "20\177y" "71\177\\ohorn" "" + ]) + +(defconst cjk-viscii-upper + [; 0xA0 + "" "20\177\\ABREVE" "32\177\\ABREVE" "71\177\\ABREVE" + "20\177\\ACIRCUMFLEX" "32\177\\ACIRCUMFLEX" "73\177\\ACIRCUMFLEX" "71\177\\ACIRCUMFLEX" + "34\177E" "71\177E" "20\177\\ECIRCUMFLEX" "32\177\\ECIRCUMFLEX" + "73\177\\ECIRCUMFLEX" "34\177\\ECIRCUMFLEX" "71\177\\ECIRCUMFLEX" "20\177\\OCIRCUMFLEX" + + ; 0xB0 + "32\177\\OCIRCUMFLEX" "73\177\\OCIRCUMFLEX" "34\177\\OCIRCUMFLEX" "" + "" "71\177\\OCIRCUMFLEX" "32\177\\OHORN" "73\177\\OHORN" + "71\177I" "" "" "" + "" "0\177\\OHORN" "20\177\\OHORN" "" + + ; 0xC0 + "" "" "" "" + "" "" "73\177\\ABREVE" "34\177\\ABREVE" + "" "" "" "" + "" "" "" "32\177Y" + + ; 0xD0 + "" "20\177\\UHORN" "" "" + "" "71\177A" "73\177Y" "32\177\\UHORN" + "73\177\\UHORN" "" "" "34\177Y" + "71\177Y" "" "34\177\\OHORN" "0\177\\UHORN" + + ; 0xE0 + "32\177A" "20\177A" "0\177\\ACIRCUMFLEX" "34\177A" + "73\177A" "0\177\\ABREVE" "34\177\\UHORN" "34\177\\ACIRCUMFLEX" + "32\177E" "20\177E" "0\177\\ECIRCUMFLEX" "73\177E" + "32\177I" "20\177I" "34\177I" "73\177I" + + ; 0xF0 + "0\177\\DJ" "71\177\\UHORN" "32\177O" "20\177O" + "0\177\\OCIRCUMFLEX" "34\177O" "73\177O" "71\177O" + "71\177U" "32\177U" "20\177U" "34\177U" + "73\177U" "20\177Y" "71\177\\OHORN" "" + ]) + + +;; The following encodings will be selected (if they occur in the input +;; buffer) at the very beginning of the output buffer to load the +;; corresponding CJK macros. +(defconst cjk-enc-table + (let ((vec (make-vector 256 nil))) + (aset vec lc-cn "GB") + (aset vec lc-kana "SJIS") + (aset vec lc-jp "JIS") + (aset vec lc-jp2 "JIS2") + (aset vec lc-kr "KS") + (aset vec lc-big5-1 "Bg5") + (aset vec lc-big5-2 "Bg5") + (aset vec lc-cns1 "CNS1") + (aset vec lc-cns2 "CNS2") + (aset vec lc-cns3 "CNS3") + (aset vec lc-cns4 "CNS4") + (aset vec lc-cns5 "CNS5") + (aset vec lc-cns6 "CNS6") + (aset vec lc-cns7 "CNS7") + vec)) + +(defconst cjk-space "\17764\177\177") +(defconst cjk-nospace "\17765\177\177") + +;; here we have the format specification table which defines what to do +;; for each encoding. +(defconst cjk-format-spec-table + (let ((vec (make-vector 256 nil))) + ;; Element is a vector VEC. Each character is formatted as: + ;; (format "\177%s\177" (aref VEC (- char-code 160))) + (aset vec lc-ltn1 cjk-latin-1) + (aset vec lc-ltn2 cjk-latin-2) + (aset vec lc-ltn3 cjk-latin-3) + (aset vec lc-ltn4 cjk-latin-4) + (aset vec lc-ltn5 cjk-latin-5) + (aset vec lc-roman cjk-latin-jisx) + ;; T2A encoding is used for Cyrillic letters. You must explicitly + ;; switch between T2 and T1/OT1 encoding. + (aset vec lc-crl cjk-cyrillic) + ;; LGR encoding (resp. its ligatures) is used for Greek letters. You + ;; must explicitly switch between LGR and T1/OT1 encoding (using + ;; e.g. Babel's `greek' option). + (aset vec lc-grk cjk-greek) + ;; for Vietnamese a Vietnamese TeX-font has to be used which contains + ;; ASCII characters too! You must explicitly switch between Vietnamese + ;; T5 and T1/OT1 encoding. + (aset vec lc-vn-1 cjk-viscii-lower) + (aset vec lc-vn-2 cjk-viscii-upper) + + ;; Element is a cons of header HEAD and formatter FORMAT. HEAD is + ;; printed first, then each character is formatted as: + ;; (format FORMAT char-code-1 char-code-2) + (aset vec lc-kana '("\17770\177\177" . "\177%c\177\177")) + (aset vec lc-jp '("\17766\177\177" . "\177%c\177%d\177")) + (aset vec lc-cn '("\17767\177\177" . "\177%c\177%d\177")) + (aset vec lc-big5-1 '("\17768\177\177" . "\177%c\177%d\177")) + (aset vec lc-big5-2 '("\17768\177\177" . "\177%c\177%d\177")) + (aset vec lc-kr '("\17769\177\177" . "\177%c\177%d\177")) + + ;; Element is a formatter string FORMAT. Each character is + ;; formatted as: + ;; (format FORMAT char-code-1 char-code-2) + (aset vec lc-jp2 "\17772\177JIS2\177\177%d\177%d\177") + (aset vec lc-cns1 "\17772\177CNS1\177\177%d\177%d\177") + (aset vec lc-cns2 "\17772\177CNS2\177\177%d\177%d\177") + (aset vec lc-cns3 "\17772\177CNS3\177\177%d\177%d\177") + (aset vec lc-cns4 "\17772\177CNS4\177\177%d\177%d\177") + (aset vec lc-cns5 "\17772\177CNS5\177\177%d\177%d\177") + (aset vec lc-cns6 "\17772\177CNS6\177\177%d\177%d\177") + (aset vec lc-cns7 "\17772\177CNS7\177\177%d\177%d\177") + vec)) + + +(make-coding-system + '*cjk-coding* 0 ?c + "Coding-system for LaTeX2e CJK Package" 1) + + +(put '*cjk-coding* 'pre-write-conversion 'cjk-encode) + + +(defun cjk-encode (from to) + (save-excursion + (save-restriction + (narrow-to-region from to) + (let ((mc-flag t) + (re-multibyte-char "[\177-\237][\240-\177]+") + (enc (make-vector 256 nil)) + (space-state nil) + (require-cjk-execute nil) + prev-lc lc ch ch1 ch2 format-spec) + (goto-char (point-min)) + (if (null (let (mc-flag) (re-search-forward re-multibyte-char nil t))) + ;; No multilingual text. Nothing to do. + nil + (goto-char (match-beginning 0)) + (setq prev-lc lc-ascii) + (while (not (eobp)) + ;; Now we are at a multibyte character. + ;; Set the following variables: + ;; LC -- leading char + ;; CH1 -- first char code + ;; CH2 -- second char code (of two byte chars) + (setq ch (following-char)) + (delete-char 1) + (setq lc (char-component ch 0)) + (if (or (= lc lc-big5-1) (= lc lc-big5-2)) + ;; Mule has special encoding for Big5 characters. We + ;; must decode them to the normal Big5 codes. + (let ((vec (g2b ch))) + (setq ch1 (aref vec 0) ch2 (aref vec 1))) + (setq ch1 (char-component ch 1) + ch2 (char-component ch 2))) + + ;; FORMAT-SPEC tells how to encode this character. + (setq format-spec (aref cjk-format-spec-table lc)) + (if (null format-spec) + ;; Unsupported character set. + nil + ;; Ok, it is supported. If this character set is one of + ;; CJK, we need a special header at the beginning of the + ;; file. + (if (aset enc lc (aref cjk-enc-table lc)) + (setq require-cjk-execute t)) + + (cond ((consp format-spec) + ;; We may have to insert the car part of the cons + ;; and/or space controlling commands + ;; (cjk-space/cjk-nospace) depending on the current + ;; context. + (if (= lc lc-kr) + (or (eq space-state cjk-space) + (insert (setq space-state cjk-space))) + (or (eq space-state cjk-nospace) + (insert (setq space-state cjk-nospace)))) + (if (/= prev-lc lc) + (insert (car format-spec))) + (insert (format (cdr format-spec) ch1 ch2))) + + ((vectorp format-spec) + (insert (format "\177%s\177" + (aref format-spec (- ch1 160))))) + (t ; FORMAT-SPEC is just a formatting string. + (insert (format format-spec ch1 ch2))))) + + ;; Prepare the next loop. + (setq prev-lc lc) + ;; Skip spaces, etc. + (skip-chars-forward " \t\n") + ;; If there are any ASCII chars, skip them also, but set + ;; PREV-LC to LC-ASCII. + (if (and (< (following-char) 128) + (let (mc-flag) + (re-search-forward re-multibyte-char nil 'move))) + (progn + (goto-char (match-beginning 0)) + (setq prev-lc lc-ascii)))) + + ;; Now, insert an appropriate header at the head of the file. + (goto-char (point-min)) + (if require-cjk-execute + (let ((i 128)) + (insert "\\def\\CJKhook{") + (while (< i 256) + (if (aref enc i) + (insert (format "\\CJKenc{%s}" (aref enc i)))) + (setq i (1+ i))) + (insert "}") + (insert "\\ifx\\CJKpreproc\\undefined") + (insert "\\def\\CJKpreproc{cjk-enc}") + (insert "\\RequirePackage[global]{CJK}") + (insert "\\AtBeginDocument{\\begin{CJK}{}{}\\CJKspace}") + (insert "\\AtEndDocument{\\end{CJK}}") + (insert "\\else\\CJKhook\\fi ")) + (insert "\\ifx\\CJKpreproc\\undefined") + (insert "\\def\\CJKpreproc{cjk-enc}") + (insert "\\RequirePackage{MULEenc}") + (insert "\\fi "))))))) + + +(defun cjk-write-file () + "Save current buffer and <buffername>.cjk in *cjk-coding*. +Files of the form <buffername>.bib are saved as <buffername>-cjk.bib" + + (interactive) + (let ((bufname (buffer-file-name)) + body + extension + newbufname) + (save-buffer) + (string-match "\\(.*\\)\\(\\.[^/]*$\\)" bufname) + (setq body (match-string 1 bufname) + extension (match-string 2 bufname)) + (setq newbufname + (concat body + (if (string-equal extension ".bib") + "-cjk.bib" + ".cjk"))) + (message "Saving %s and %s" bufname newbufname) + (let ((set-file-coding-system *cjk-coding*)) + (write-region (point-min) (point-max) newbufname)))) + + +;;; EOF diff --git a/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/GNUmakefile b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/GNUmakefile new file mode 100644 index 0000000000..de8c7c41de --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/GNUmakefile @@ -0,0 +1,75 @@ +# Makefile to create hyphenation patterns for pinyin with tone marks and +# pinyin without tone marks. + +BASH = bash +CC = cc +DATE = date +GIT = git +ICONV = iconv -f latin1 -t utf8 +RM = rm -f +SED = sed # should be GNU sed + +GIT_VERSION = $(shell $(GIT) log --format=%H -1 HEAD --) +LEFTHYPHENMIN = $(strip $(shell $(SED) 's/^\(..\).*/\1/;q' < pinyin.tr)) +RIGHTHYPHENMIN = $(strip $(shell $(SED) 's/^..\(..\).*/\1/;q' < pinyin.tr)) +TODAY = $(shell $(DATE) '+%Y-%m-%d') + + +all: hyph-zh-latn-pinyin.tex \ + hyph-zh-latn-tonepinyin.tex + +pinyin: pinyin.c + $(CC) -o $@ $< + +pinyin.dic: pinyin + ./$< > $@ + +pattern.rules pinyin.pat: make-patterns.sh \ + pinyin.dic \ + pinyin.tr + $(BASH) make-patterns.sh pinyin.dic pinyin.tr \ + && $(ICONV) < pattern.2 > pinyin.pat + +tonepinyin.pat: pinyin.pat + LANG=en_US.UTF-8 \ + $(SED) -e 's/\(.*\)a\(.*\)/\1a\2 \1Ä\2 \1á\2 \1ÇŽ\2 \1à \2/' \ + -e 's/\(.*\)e\(.*\)/\1e\2 \1Ä“\2 \1é\2 \1Ä›\2 \1è\2/' \ + -e 's/\(.*\)i\(.*\)/\1i\2 \1Ä«\2 \1Ã\2 \1Ç\2 \1ì\2/' \ + -e 's/\(.*\)o\(.*\)/\1o\2 \1Å\2 \1ó\2 \1Ç’\2 \1ò\2/' \ + -e 's/\(.*\)u\(.*\)/\1u\2 \1Å«\2 \1ú\2 \1Ç”\2 \1ù\2/' \ + -e 's/\(.*\)ü\(.*\)/\1ü\2 \1Ç–\2 \1ǘ\2 \1Çš\2 \1Çœ\2/' \ + < $< > $@ + +hyph-zh-latn-pinyin.tex: hyph-zh-latn-pinyin.in \ + pattern.rules \ + pinyin.pat + $(SED) -e 's/@WITH@/without/' \ + -e 's/@DATE@/$(TODAY)/' \ + -e 's/@GIT_VERSION@/$(GIT_VERSION)/' \ + -e 's/@LEFTHYPHENMIN@/$(LEFTHYPHENMIN)/' \ + -e 's/@RIGHTHYPHENMIN@/$(RIGHTHYPHENMIN)/' \ + -e '/used patgen parameters/ r pattern.rules' \ + -e '/\\patterns/ r pinyin.pat' \ + < $< > $@ + +hyph-zh-latn-tonepinyin.tex: hyph-zh-latn-pinyin.in \ + pattern.rules \ + tonepinyin.pat + $(SED) -e 's/@WITH@/with/' \ + -e 's/@DATE@/$(TODAY)/' \ + -e 's/@GIT_VERSION@/$(GIT_VERSION)/' \ + -e 's/@LEFTHYPHENMIN@/$(LEFTHYPHENMIN)/' \ + -e 's/@RIGHTHYPHENMIN@/$(RIGHTHYPHENMIN)/' \ + -e '/used patgen parameters/ r pattern.rules' \ + -e '/\\patterns/ r tonepinyin.pat' \ + < $< > $@ + +clean: + $(RM) pinyin pinyin.dic pinyin.pat tonepinyin.pat + $(RM) pattern.* + $(RM) pattmp.* + +# Local Variables: +# mode: makefile +# coding: utf-8 +# End: diff --git a/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/hyph-zh-latn-pinyin.in b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/hyph-zh-latn-pinyin.in new file mode 100644 index 0000000000..f905d3000c --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/hyph-zh-latn-pinyin.in @@ -0,0 +1,66 @@ +% title: Hyphenation patterns for Chinese pinyin (Mandarin), @WITH@ tone +% markers +% +% version: @DATE@ +% +% authors: +% - +% name: Werner Lemberg +% contact: wl (at) gnu.org +% +% copyright: Copyright (C) 1994-2018 Werner Lemberg +% +% licence: +% name: MIT +% url: http://opensource.org/licenses/mit-license.php +% text: > +% Permission is hereby granted, free of charge, to any person +% obtaining a copy of this software and associated documentation +% files (the “Softwareâ€), to deal in the Software without +% restriction, including without limitation the rights to use, +% copy, modify, merge, publish, distribute, sublicense, and/or +% sell copies of the Software, and to permit persons to whom the +% Software is furnished to do so, subject to the following +% conditions: +% +% The above copyright notice and this permission notice shall be +% included in all copies or substantial portions of the Software. +% +% THE SOFTWARE IS PROVIDED “AS ISâ€, WITHOUT WARRANTY OF ANY KIND, +% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +% OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +% NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +% HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +% WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +% OTHER DEALINGS IN THE SOFTWARE. +% +% source: http://git.savannah.gnu.org/gitweb/?p=cjk.git;a=commit;h=@GIT_VERSION@ +% +% language: +% name: Mandarin Chinese, pinyin transliteration (@WITH@ tone markers) +% tag: zh-latn-pinyin +% +% hyphenmins: +% generation: +% left: @LEFTHYPHENMIN@ +% right: @RIGHTHYPHENMIN@ +% typesetting: +% left: @LEFTHYPHENMIN@ +% right: @RIGHTHYPHENMIN@ + +\message{Pinyin Hyphenation Patterns (@WITH@ tone markers) @DATE@ (WL)} + +% +% The used patgen parameters are +% + +\patterns{ +} + +\endinput + +%%% Local Variables: +%%% mode: tex +%%% coding: utf-8 +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/hyph-zh-latn-pinyin.tex b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/hyph-zh-latn-pinyin.tex new file mode 100644 index 0000000000..7180859886 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/hyph-zh-latn-pinyin.tex @@ -0,0 +1,253 @@ +% title: Hyphenation patterns for Chinese pinyin (Mandarin), without tone +% markers +% +% version: 2018-11-25 +% +% authors: +% - +% name: Werner Lemberg +% contact: wl (at) gnu.org +% +% copyright: Copyright (C) 1994-2018 Werner Lemberg +% +% licence: +% name: MIT +% url: http://opensource.org/licenses/mit-license.php +% text: > +% Permission is hereby granted, free of charge, to any person +% obtaining a copy of this software and associated documentation +% files (the “Softwareâ€), to deal in the Software without +% restriction, including without limitation the rights to use, +% copy, modify, merge, publish, distribute, sublicense, and/or +% sell copies of the Software, and to permit persons to whom the +% Software is furnished to do so, subject to the following +% conditions: +% +% The above copyright notice and this permission notice shall be +% included in all copies or substantial portions of the Software. +% +% THE SOFTWARE IS PROVIDED “AS ISâ€, WITHOUT WARRANTY OF ANY KIND, +% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +% OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +% NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +% HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +% WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +% OTHER DEALINGS IN THE SOFTWARE. +% +% source: http://git.savannah.gnu.org/gitweb/?p=cjk.git;a=commit;h=e058ceae5561a89e33828f593b094c8b57f6a72e +% +% language: +% name: Mandarin Chinese, pinyin transliteration (without tone markers) +% tag: zh-latn-pinyin +% +% hyphenmins: +% generation: +% left: 1 +% right: 2 +% typesetting: +% left: 1 +% right: 2 + +\message{Pinyin Hyphenation Patterns (without tone markers) 2018-11-25 (WL)} + +% +% The used patgen parameters are +% +% 1 1 | 2 5 | 1 1 1 +% 2 2 | 2 5 | 1 2 1 +% + +\patterns{ +a1b +a1c +a1d +a1f +a1g +a1h +a1j +a1k +a1l +a1m +a1p +a1q +a1r +a1s +a1t +a1w +a1x +a1y +a1z +e1b +e1c +e1d +e1f +e1g +e1h +e1j +e1k +e1l +e1m +e1p +e1q +e1r +e1s +e1t +e1w +e1x +e1y +e1z +1ga +g1b +g1c +g1d +1ge +g1f +g1g +g1h +g1j +g1k +g1l +g1m +g1n +1go +g1p +g1q +g1r +g1s +g1t +1gu +g1w +g1x +g1y +g1z +i1b +i1c +i1d +i1f +i1g +i1h +i1j +i1k +i1l +i1m +i1p +i1q +i1r +i1s +i1t +i1w +i1x +i1y +i1z +1na +n1b +n1c +n1d +1ne +n1f +n1h +1ni +n1j +n1k +n1l +n1m +n1n +1no +n1p +n1q +n1r +n1s +n1t +1nu +1nü +n1w +n1x +n1y +n1z +o1b +o1c +o1d +o1f +o1g +o1h +o1j +o1k +o1l +o1m +o1p +o1q +o1r +o1s +o1t +o1w +o1x +o1y +o1z +2r1b +2r1c +2r1d +2r1f +2r1g +2r1h +2r1j +2r1k +2r1l +2r1m +2r1n +2r1p +2r1q +2r1r +2r1s +2r1t +2r1w +2r1x +2r1y +2r1z +u1b +u1c +u1d +u1f +u1g +u1h +u1j +u1k +u1l +u1m +u1p +u1q +u1r +u1s +u1t +u1w +u1x +u1y +u1z +ü1b +ü1c +ü1d +ü1f +ü1g +ü1h +ü1j +ü1k +ü1l +ü1m +ü1n +ü1p +ü1q +ü1r +ü1s +ü1t +ü1w +ü1x +ü1y +ü1z +} + +\endinput + +%%% Local Variables: +%%% mode: tex +%%% coding: utf-8 +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/hyph-zh-latn-tonepinyin.tex b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/hyph-zh-latn-tonepinyin.tex new file mode 100644 index 0000000000..2e927ca70f --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/hyph-zh-latn-tonepinyin.tex @@ -0,0 +1,253 @@ +% title: Hyphenation patterns for Chinese pinyin (Mandarin), with tone +% markers +% +% version: 2018-11-25 +% +% authors: +% - +% name: Werner Lemberg +% contact: wl (at) gnu.org +% +% copyright: Copyright (C) 1994-2018 Werner Lemberg +% +% licence: +% name: MIT +% url: http://opensource.org/licenses/mit-license.php +% text: > +% Permission is hereby granted, free of charge, to any person +% obtaining a copy of this software and associated documentation +% files (the “Softwareâ€), to deal in the Software without +% restriction, including without limitation the rights to use, +% copy, modify, merge, publish, distribute, sublicense, and/or +% sell copies of the Software, and to permit persons to whom the +% Software is furnished to do so, subject to the following +% conditions: +% +% The above copyright notice and this permission notice shall be +% included in all copies or substantial portions of the Software. +% +% THE SOFTWARE IS PROVIDED “AS ISâ€, WITHOUT WARRANTY OF ANY KIND, +% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +% OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +% NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +% HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +% WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +% OTHER DEALINGS IN THE SOFTWARE. +% +% source: http://git.savannah.gnu.org/gitweb/?p=cjk.git;a=commit;h=e058ceae5561a89e33828f593b094c8b57f6a72e +% +% language: +% name: Mandarin Chinese, pinyin transliteration (with tone markers) +% tag: zh-latn-pinyin +% +% hyphenmins: +% generation: +% left: 1 +% right: 2 +% typesetting: +% left: 1 +% right: 2 + +\message{Pinyin Hyphenation Patterns (with tone markers) 2018-11-25 (WL)} + +% +% The used patgen parameters are +% +% 1 1 | 2 5 | 1 1 1 +% 2 2 | 2 5 | 1 2 1 +% + +\patterns{ +a1b Ä1b á1b ÇŽ1b à 1b +a1c Ä1c á1c ÇŽ1c à 1c +a1d Ä1d á1d ÇŽ1d à 1d +a1f Ä1f á1f ÇŽ1f à 1f +a1g Ä1g á1g ÇŽ1g à 1g +a1h Ä1h á1h ÇŽ1h à 1h +a1j Ä1j á1j ÇŽ1j à 1j +a1k Ä1k á1k ÇŽ1k à 1k +a1l Ä1l á1l ÇŽ1l à 1l +a1m Ä1m á1m ÇŽ1m à 1m +a1p Ä1p á1p ÇŽ1p à 1p +a1q Ä1q á1q ÇŽ1q à 1q +a1r Ä1r á1r ÇŽ1r à 1r +a1s Ä1s á1s ÇŽ1s à 1s +a1t Ä1t á1t ÇŽ1t à 1t +a1w Ä1w á1w ÇŽ1w à 1w +a1x Ä1x á1x ÇŽ1x à 1x +a1y Ä1y á1y ÇŽ1y à 1y +a1z Ä1z á1z ÇŽ1z à 1z +e1b Ä“1b é1b Ä›1b è1b +e1c Ä“1c é1c Ä›1c è1c +e1d Ä“1d é1d Ä›1d è1d +e1f Ä“1f é1f Ä›1f è1f +e1g Ä“1g é1g Ä›1g è1g +e1h Ä“1h é1h Ä›1h è1h +e1j Ä“1j é1j Ä›1j è1j +e1k Ä“1k é1k Ä›1k è1k +e1l Ä“1l é1l Ä›1l è1l +e1m Ä“1m é1m Ä›1m è1m +e1p Ä“1p é1p Ä›1p è1p +e1q Ä“1q é1q Ä›1q è1q +e1r Ä“1r é1r Ä›1r è1r +e1s Ä“1s é1s Ä›1s è1s +e1t Ä“1t é1t Ä›1t è1t +e1w Ä“1w é1w Ä›1w è1w +e1x Ä“1x é1x Ä›1x è1x +e1y Ä“1y é1y Ä›1y è1y +e1z Ä“1z é1z Ä›1z è1z +1ga 1gÄ 1gá 1gÇŽ 1gà +g1b +g1c +g1d +1ge 1gÄ“ 1gé 1gÄ› 1gè +g1f +g1g +g1h +g1j +g1k +g1l +g1m +g1n +1go 1gÅ 1gó 1gÇ’ 1gò +g1p +g1q +g1r +g1s +g1t +1gu 1gÅ« 1gú 1gÇ” 1gù +g1w +g1x +g1y +g1z +i1b Ä«1b Ã1b Ç1b ì1b +i1c Ä«1c Ã1c Ç1c ì1c +i1d Ä«1d Ã1d Ç1d ì1d +i1f Ä«1f Ã1f Ç1f ì1f +i1g Ä«1g Ã1g Ç1g ì1g +i1h Ä«1h Ã1h Ç1h ì1h +i1j Ä«1j Ã1j Ç1j ì1j +i1k Ä«1k Ã1k Ç1k ì1k +i1l Ä«1l Ã1l Ç1l ì1l +i1m Ä«1m Ã1m Ç1m ì1m +i1p Ä«1p Ã1p Ç1p ì1p +i1q Ä«1q Ã1q Ç1q ì1q +i1r Ä«1r Ã1r Ç1r ì1r +i1s Ä«1s Ã1s Ç1s ì1s +i1t Ä«1t Ã1t Ç1t ì1t +i1w Ä«1w Ã1w Ç1w ì1w +i1x Ä«1x Ã1x Ç1x ì1x +i1y Ä«1y Ã1y Ç1y ì1y +i1z Ä«1z Ã1z Ç1z ì1z +1na 1nÄ 1ná 1nÇŽ 1nà +n1b +n1c +n1d +1ne 1nÄ“ 1né 1nÄ› 1nè +n1f +n1h +1ni 1nÄ« 1nà 1nÇ 1nì +n1j +n1k +n1l +n1m +n1n +1no 1nÅ 1nó 1nÇ’ 1nò +n1p +n1q +n1r +n1s +n1t +1nu 1nÅ« 1nú 1nÇ” 1nù +1nü 1nÇ– 1nǘ 1nÇš 1nÇœ +n1w +n1x +n1y +n1z +o1b Å1b ó1b Ç’1b ò1b +o1c Å1c ó1c Ç’1c ò1c +o1d Å1d ó1d Ç’1d ò1d +o1f Å1f ó1f Ç’1f ò1f +o1g Å1g ó1g Ç’1g ò1g +o1h Å1h ó1h Ç’1h ò1h +o1j Å1j ó1j Ç’1j ò1j +o1k Å1k ó1k Ç’1k ò1k +o1l Å1l ó1l Ç’1l ò1l +o1m Å1m ó1m Ç’1m ò1m +o1p Å1p ó1p Ç’1p ò1p +o1q Å1q ó1q Ç’1q ò1q +o1r Å1r ó1r Ç’1r ò1r +o1s Å1s ó1s Ç’1s ò1s +o1t Å1t ó1t Ç’1t ò1t +o1w Å1w ó1w Ç’1w ò1w +o1x Å1x ó1x Ç’1x ò1x +o1y Å1y ó1y Ç’1y ò1y +o1z Å1z ó1z Ç’1z ò1z +2r1b +2r1c +2r1d +2r1f +2r1g +2r1h +2r1j +2r1k +2r1l +2r1m +2r1n +2r1p +2r1q +2r1r +2r1s +2r1t +2r1w +2r1x +2r1y +2r1z +u1b Å«1b ú1b Ç”1b ù1b +u1c Å«1c ú1c Ç”1c ù1c +u1d Å«1d ú1d Ç”1d ù1d +u1f Å«1f ú1f Ç”1f ù1f +u1g Å«1g ú1g Ç”1g ù1g +u1h Å«1h ú1h Ç”1h ù1h +u1j Å«1j ú1j Ç”1j ù1j +u1k Å«1k ú1k Ç”1k ù1k +u1l Å«1l ú1l Ç”1l ù1l +u1m Å«1m ú1m Ç”1m ù1m +u1p Å«1p ú1p Ç”1p ù1p +u1q Å«1q ú1q Ç”1q ù1q +u1r Å«1r ú1r Ç”1r ù1r +u1s Å«1s ú1s Ç”1s ù1s +u1t Å«1t ú1t Ç”1t ù1t +u1w Å«1w ú1w Ç”1w ù1w +u1x Å«1x ú1x Ç”1x ù1x +u1y Å«1y ú1y Ç”1y ù1y +u1z Å«1z ú1z Ç”1z ù1z +ü1b Ç–1b ǘ1b Çš1b Çœ1b +ü1c Ç–1c ǘ1c Çš1c Çœ1c +ü1d Ç–1d ǘ1d Çš1d Çœ1d +ü1f Ç–1f ǘ1f Çš1f Çœ1f +ü1g Ç–1g ǘ1g Çš1g Çœ1g +ü1h Ç–1h ǘ1h Çš1h Çœ1h +ü1j Ç–1j ǘ1j Çš1j Çœ1j +ü1k Ç–1k ǘ1k Çš1k Çœ1k +ü1l Ç–1l ǘ1l Çš1l Çœ1l +ü1m Ç–1m ǘ1m Çš1m Çœ1m +ü1n Ç–1n ǘ1n Çš1n Çœ1n +ü1p Ç–1p ǘ1p Çš1p Çœ1p +ü1q Ç–1q ǘ1q Çš1q Çœ1q +ü1r Ç–1r ǘ1r Çš1r Çœ1r +ü1s Ç–1s ǘ1s Çš1s Çœ1s +ü1t Ç–1t ǘ1t Çš1t Çœ1t +ü1w Ç–1w ǘ1w Çš1w Çœ1w +ü1x Ç–1x ǘ1x Çš1x Çœ1x +ü1y Ç–1y ǘ1y Çš1y Çœ1y +ü1z Ç–1z ǘ1z Çš1z Çœ1z +} + +\endinput + +%%% Local Variables: +%%% mode: tex +%%% coding: utf-8 +%%% End: diff --git a/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/make-patterns.sh b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/make-patterns.sh new file mode 100644 index 0000000000..d4b6591732 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/make-patterns.sh @@ -0,0 +1,62 @@ +#!/bin/bash +# -*- coding: utf-8 -*- + +# +# This script generates patterns for pinyin. +# +# Usage: +# +# sh make-patterns.sh pinyin.dic pinyin.tr +# +# +# Input: pinyin.dic List of all two-syllable combinations of pinyin +# syllables (which don't need an apostrophe), with +# hyphens inbetween. +# pinyin.tr Translation file for patgen. +# +# Output: pattmp.[1-2] patgen results. +# pattern.[0-2] patterns -- pattern.2 is the final pattern file. +# pattern.[0-2].log Log files. +# pattern.rules A compact description of the used patgen +# parameters. +# + + +# patgen parameters for levels one and two. + +hyph_start_finish[1]='1 1' +hyph_start_finish[2]='2 2' + +pat_start_finish[1]='2 5' +pat_start_finish[2]='2 5' + +good_bad_thres[1]='1 1 1' +good_bad_thres[2]='1 2 1' + + +# Create empty start patterns. +rm -f pattern.0 +touch pattern.0 + +printf "%%\n" > pattern.rules + +for i in 1 2; do + + # Create patterns for current level. Control instructions for patgen are + # sent using a pipe. + printf "%s\n%s\n%s\n%s" "${hyph_start_finish[$i]}" \ + "${pat_start_finish[$i]}" \ + "${good_bad_thres[$i]}" \ + "y" \ + | patgen $1 pattern.$(($i-1)) pattern.$i $2 \ + | tee pattern.$i.log + + # Collect the used patgen parameters. + printf "%% %s | %s | %s\n" "${hyph_start_finish[$i]}" \ + "${pat_start_finish[$i]}" \ + "${good_bad_thres[$i]}" \ + >> pattern.rules + +done + +# eof diff --git a/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/pinyin.c b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/pinyin.c new file mode 100644 index 0000000000..f7648db699 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/pinyin.c @@ -0,0 +1,494 @@ +/* + + This is the file pinyin.c of the CJK macro package ver. 4.8.5 + (16-Oct-2021). + + Use this file to generate a hyphenation input file for patgen. + + Usage: + + pinyin > pinyin.dic + + */ + +/* + Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program in doc/COPYING; if not, write to the Free + Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301 USA + */ + +#include <stdio.h> + + +/* A list of all Chinese syllables. We use latin-1 encoding for the + `umlaut u' character. + + In the array below, syllables starting with `a', `e', or `u' are marked + with a leading exclamation mark, which we filter out later on to ensure + that those syllables are omitted on the right side. If written without a + line break, an apostrophe must be inserted before such syllables, e.g., + + Tien'anmen + + However, if there is a line break, the apostrophe disappears: + + Tien- + anmen + + This situation can't be handled by patgen; instead, a solution to this + problem can be provided by TeX with + + \discretionary{-}{}{'} + + The babel support file (`pinyin.ldf') provides "' as a shorthand for this + situation. + */ + +char *py[] = +{ + "!a", + "!ai", + "!an", + "!ang", + "!ao", + "ba", + "bai", + "ban", + "bang", + "bao", + "bei", + "ben", + "beng", + "bi", + "bian", + "biao", + "bie", + "bin", + "bing", + "bo", + "bu", + "ca", + "cai", + "can", + "cang", + "cao", + "ce", + "cen", + "ceng", + "cha", + "chai", + "chan", + "chang", + "chao", + "che", + "chen", + "cheng", + "chi", + "chong", + "chou", + "chu", + "chuai", + "chuan", + "chuang", + "chui", + "chun", + "chuo", + "ci", + "cong", + "cou", + "cu", + "cuan", + "cui", + "cun", + "cuo", + "da", + "dai", + "dan", + "dang", + "dao", + "de", + "dei", + "deng", + "di", + "dian", + "diao", + "die", + "ding", + "diu", + "dong", + "dou", + "du", + "duan", + "dui", + "dun", + "duo", + "!e", + "!ei", + "!en", + "!eng", + "!er", + "fa", + "fan", + "fang", + "fei", + "fen", + "feng", + "fiao", + "fo", + "fou", + "fu", + "ga", + "gai", + "gan", + "gang", + "gao", + "ge", + "gei", + "gen", + "geng", + "gong", + "gou", + "gu", + "gua", + "guai", + "guan", + "guang", + "gui", + "gun", + "guo", + "ha", + "hai", + "han", + "hang", + "hao", + "he", + "hei", + "hen", + "heng", + "hong", + "hou", + "hu", + "hua", + "huai", + "huan", + "huang", + "hui", + "hun", + "huo", + "ji", + "jia", + "jian", + "jiang", + "jiao", + "jie", + "jin", + "jing", + "jiong", + "jiu", + "ju", + "juan", + "jue", + "jun", + "ka", + "kai", + "kan", + "kang", + "kao", + "ke", + "kei", + "ken", + "keng", + "kong", + "kou", + "ku", + "kua", + "kuai", + "kuan", + "kuang", + "kui", + "kun", + "kuo", + "la", + "lai", + "lan", + "lang", + "lao", + "le", + "lei", + "leng", + "li", + "lia", + "lian", + "liang", + "liao", + "lie", + "lin", + "ling", + "liu", + "long", + "lou", + "lu", + "luan", + "lun", + "luo", + "lü", + "lüe", + "ma", + "mai", + "man", + "mang", + "mao", + "me", + "mei", + "men", + "meng", + "mi", + "mian", + "miao", + "mie", + "min", + "ming", + "miu", + "mo", + "mou", + "mu", + "na", + "nai", + "nan", + "nang", + "nao", + "ne", + "nei", + "nen", + "neng", + "ni", + "nian", + "niang", + "niao", + "nie", + "nin", + "ning", + "niu", + "nong", + "nou", + "nu", + "nuan", + "nuo", + "nü", + "nüe", + "!o", + "!ou", + "pa", + "pai", + "pan", + "pang", + "pao", + "pei", + "pen", + "peng", + "pi", + "pian", + "piao", + "pie", + "pin", + "ping", + "po", + "pou", + "pu", + "qi", + "qia", + "qian", + "qiang", + "qiao", + "qie", + "qin", + "qing", + "qiong", + "qiu", + "qu", + "quan", + "que", + "qun", + "ran", + "rang", + "rao", + "re", + "ren", + "reng", + "ri", + "rong", + "rou", + "ru", + "ruan", + "rui", + "run", + "ruo", + "sa", + "sai", + "san", + "sang", + "sao", + "se", + "sen", + "seng", + "sha", + "shai", + "shan", + "shang", + "shao", + "she", + "shei", + "shen", + "sheng", + "shi", + "shou", + "shu", + "shua", + "shuai", + "shuan", + "shuang", + "shui", + "shun", + "shuo", + "si", + "song", + "sou", + "su", + "suan", + "sui", + "sun", + "suo", + "ta", + "tai", + "tan", + "tang", + "tao", + "te", + "tei", + "teng", + "ti", + "tian", + "tiao", + "tie", + "ting", + "tong", + "tou", + "tu", + "tuan", + "tui", + "tun", + "tuo", + "wa", + "wai", + "wan", + "wang", + "wei", + "wen", + "weng", + "wo", + "wu", + "xi", + "xia", + "xian", + "xiang", + "xiao", + "xie", + "xin", + "xing", + "xiong", + "xiu", + "xu", + "xuan", + "xue", + "xun", + "ya", + "yan", + "yang", + "yao", + "ye", + "yi", + "yin", + "ying", + "yo", + "yong", + "you", + "yu", + "yuan", + "yue", + "yun", + "za", + "zai", + "zan", + "zang", + "zao", + "ze", + "zei", + "zen", + "zeng", + "zha", + "zhai", + "zhan", + "zhang", + "zhao", + "zhe", + "zhei", + "zhen", + "zheng", + "zhi", + "zhong", + "zhou", + "zhu", + "zhua", + "zhuai", + "zhuan", + "zhuang", + "zhui", + "zhun", + "zhuo", + "zi", + "zong", + "zou", + "zu", + "zuan", + "zui", + "zun", + "zuo" +}; + + +int main(void) +{ + size_t i, j; + size_t size = sizeof (py) / sizeof (char*); + + /* Now we loop through all possible syllable combinations. */ + + for (i = 0; i < size; i++) + { + for (j = 0; j < size; j++) + { + if (py[j][0] == '!') + continue; + + if (py[i][0] == '!') + printf("%s-%s\n", py[i] + 1, py[j]); + else + printf("%s-%s\n", py[i], py[j]); + } + } + + return 0; +} diff --git a/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/pinyin.ldf b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/pinyin.ldf new file mode 100644 index 0000000000..a92b42253f --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/pinyin.ldf @@ -0,0 +1,75 @@ +% This is the file pinyin.ldf of the CJK package +% for hyphenating Chinese pinyin syllables. +% +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + + +% Two shorthands are defined for pinyin. +% +% "u This represents `u umlaut'. +% +% "' This represents the apostrophe used to resolve syllabic +% ambiguities as in +% +% Tien'anmen , +% +% which should be thus typed in as +% +% Tien"'anmen . +% +% Internally, this converts to a discretionary hyphen, since the +% apostrophe should vanish after a line break. + + +\ProvidesLanguage{pinyin} + [CJK 4.8.5 pinyin support for the babel system] + +\LdfInit{pinyin}{captionspinyin} + +\ifx\l@pinyin\@undefined + \@nopatterns{pinyin} + \adddialect\l@pinyin0 +\fi + +\providehyphenmins{pinyin}{\@ne\tw@} +\def\captionspinyin{} +\def\datepinyin{} + +\initiate@active@char{"} + +\addto\extraspinyin{\languageshorthands{pinyin}} +\addto\extraspinyin{\bbl@activate{"}} +\addto\extraspinyin{\babel@save\"\umlautlow} + +\addto\noextraspinyin{\umlauthigh} + +\declare@shorthand{pinyin}{"u}{\textormath{\"{u}\allowhyphens}{\ddot u}} +\declare@shorthand{pinyin}{"U}{\textormath{\"{U}\allowhyphens}{\ddot U}} +\declare@shorthand{pinyin}{"'}{\textormath{\discretionary{-}{}{'}}{'}} + +\def\mdqon{\shorthandon{"}} +\def\mdqoff{\shorthandoff{"}} + +\ldf@finish{pinyin} + +\endinput diff --git a/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/pinyin.tr b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/pinyin.tr new file mode 100644 index 0000000000..b6007eb3f2 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/pinyin.tr @@ -0,0 +1,51 @@ + 1 2 +%% This is the file pinyin.tr of the CJK package +%% defining the letters used for generating pinyin hyphenation patterns +%% with patgen. +%% +%% created by Werner Lemberg <wl@gnu.org> +%% +%% Version 4.8.5 (16-Oct-2021) +%% +%% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +%% +%% This program is free software; you can redistribute it and/or modify +%% it under the terms of the GNU General Public License as published by +%% the Free Software Foundation; either version 2 of the License, or +%% (at your option) any later version. +%% +%% This program is distributed in the hope that it will be useful, +%% but WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +%% GNU General Public License for more details. +%% +%% You should have received a copy of the GNU General Public License +%% along with this program in doc/COPYING; if not, write to the Free +%% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +%% MA 02110-1301 USA + a A + b B + c C + d D + e E + f F + g G + h H + i I + j J + k K + l L + m M + n N + o O + p P + q Q + r R + s S + t T + u U + ü Ü + w W + x X + y Y + z Z diff --git a/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/pytest.tex b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/pytest.tex new file mode 100644 index 0000000000..bbef6d4162 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/pytest.tex @@ -0,0 +1,51 @@ +% This is the file pytest.tex of the CJK package +% for testing Chinese pinyin hyphenation. +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) +% +%% +%% Attention! This will work only if you have created a new format file +%% with `hyph-zh-latn-pinyin.tex' as additional hyphenation patterns for the +%% language `pinyin'. Otherwise no hyphenation will be used. +%% +% Note that the Babel package searches for `pinyin.ldf', not `pinyin.sty' +% -- the latter is for typesetting accented pinyin syllables. + +\documentclass[12pt,b5paper]{article} + +\usepackage[10pt]{type1ec} % use only 10pt fonts +\usepackage[T1]{fontenc} +\usepackage[pinyin]{babel} + + +\begin{document} + +% Taken from the TeXbook (p. 451) to force frequent insertion of hyphens. +\hyphenpenalty -1000 +\pretolerance -1 +\tolerance 1000 +\doublehyphendemerits -100000 +\finalhyphendemerits -100000 + +\selectlanguage{pinyin} + +Women hen xihuan l"uxing. Zai Beijing women hen xiang kan Tian"'anmen. +Mingtian women xiang yao dao Xi"'an qu. Xiage libai zai hui jia. +Women hen xihuan l"uxing. Zai Beijing women hen xiang kan Tian"'anmen. +Mingtian women xiang yao dao Xi"'an qu. Xiage libai zai hui jia. +Women hen xihuan l"uxing. Zai Beijing women hen xiang kan Tian"'anmen. +Mingtian women xiang yao dao Xi"'an qu. Xiage libai zai hui jia. +Women hen xihuan l"uxing. Zai Beijing women hen xiang kan Tian"'anmen. +Mingtian women xiang yao dao Xi"'an qu. Xiage libai zai hui jia. +Women hen xihuan l"uxing. Zai Beijing women hen xiang kan Tian"'anmen. +Mingtian women xiang yao dao Xi"'an qu. Xiage libai zai hui jia. +Women hen xihuan l"uxing. Zai Beijing women hen xiang kan Tian"'anmen. +Mingtian women xiang yao dao Xi"'an qu. Xiage libai zai hui jia. +Women hen xihuan l"uxing. Zai Beijing women hen xiang kan Tian"'anmen. +Mingtian women xiang yao dao Xi"'an qu. Xiage libai zai hui jia. +Women hen xihuan l"uxing. Zai Beijing women hen xiang kan Tian"'anmen. +Mingtian women xiang yao dao Xi"'an qu. Xiage libai zai hui jia. + +\end{document} diff --git a/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/pytestutf8.tex b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/pytestutf8.tex new file mode 100644 index 0000000000..725a6a9c0f --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/pyhyphen/pytestutf8.tex @@ -0,0 +1,68 @@ +% This is the file pytestutf8.tex of the CJK package +% for testing Chinese pinyin hyphenation. +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.8.5 (16-Oct-2021) +% +%% +%% Attention! This will work only if you have created a new format file +%% with `hyph-zh-latn-tonepinyin.tex' as additional hyphenation patterns for +%% the language `pinyin'. Otherwise no hyphenation will be used. +%% +% Note that the Babel package searches for `pinyin.ldf', not `pinyin.sty' +% -- the latter is for typesetting accented pinyin syllables. + +\documentclass[12pt,a5paper]{article} + +\usepackage{ifxetex} +\usepackage{ifluatex} +\usepackage{ifuptex} + +\ifxetex + \relax +\else + \ifluatex + \relax + \else + \ifuptex + \relax + \else + \errmessage{You need a UTF-8 engine to process this file.} + \fi + \fi +\fi + +\usepackage{libertine} +\usepackage[pinyin]{babel} + + +\begin{document} + +% Taken from the TeXbook (p. 451) to force frequent insertion of hyphens. +\hyphenpenalty -1000 +\pretolerance -1 +\tolerance 1000 +\doublehyphendemerits -100000 +\finalhyphendemerits -100000 + +\selectlanguage{pinyin} + +WÇ’men hÄ›n xÇhuÄn lÇšxÃng. Zà i BÄ›ijÄ«ng wÇ’men hÄ›n xiÇŽng kà n TiÄn"'Änmén. +MÃngtiÄn wÇ’men xiÇŽng yà o dà o XÄ«"'Än qù. Xià ge lÇbà i zà i huà jiÄ. +WÇ’men hÄ›n xÇhuÄn lÇšxÃng. Zà i BÄ›ijÄ«ng wÇ’men hÄ›n xiÇŽng kà n TiÄn"'Änmén. +MÃngtiÄn wÇ’men xiÇŽng yà o dà o XÄ«"'Än qù. Xià ge lÇbà i zà i huà jiÄ. +WÇ’men hÄ›n xÇhuÄn lÇšxÃng. Zà i BÄ›ijÄ«ng wÇ’men hÄ›n xiÇŽng kà n TiÄn"'Änmén. +MÃngtiÄn wÇ’men xiÇŽng yà o dà o XÄ«"'Än qù. Xià ge lÇbà i zà i huà jiÄ. +WÇ’men hÄ›n xÇhuÄn lÇšxÃng. Zà i BÄ›ijÄ«ng wÇ’men hÄ›n xiÇŽng kà n TiÄn"'Änmén. +MÃngtiÄn wÇ’men xiÇŽng yà o dà o XÄ«"'Än qù. Xià ge lÇbà i zà i huà jiÄ. +WÇ’men hÄ›n xÇhuÄn lÇšxÃng. Zà i BÄ›ijÄ«ng wÇ’men hÄ›n xiÇŽng kà n TiÄn"'Änmén. +MÃngtiÄn wÇ’men xiÇŽng yà o dà o XÄ«"'Än qù. Xià ge lÇbà i zà i huà jiÄ. +WÇ’men hÄ›n xÇhuÄn lÇšxÃng. Zà i BÄ›ijÄ«ng wÇ’men hÄ›n xiÇŽng kà n TiÄn"'Änmén. +MÃngtiÄn wÇ’men xiÇŽng yà o dà o XÄ«"'Än qù. Xià ge lÇbà i zà i huà jiÄ. +WÇ’men hÄ›n xÇhuÄn lÇšxÃng. Zà i BÄ›ijÄ«ng wÇ’men hÄ›n xiÇŽng kà n TiÄn"'Änmén. +MÃngtiÄn wÇ’men xiÇŽng yà o dà o XÄ«"'Än qù. Xià ge lÇbà i zà i huà jiÄ. +WÇ’men hÄ›n xÇhuÄn lÇšxÃng. Zà i BÄ›ijÄ«ng wÇ’men hÄ›n xiÇŽng kà n TiÄn"'Änmén. +MÃngtiÄn wÇ’men xiÇŽng yà o dà o XÄ«"'Än qù. Xià ge lÇbà i zà i huà jiÄ. + +\end{document} diff --git a/language/chinese/CJK/cjk-4.8.5/utils/subfonts/clonevf.pl b/language/chinese/CJK/cjk-4.8.5/utils/subfonts/clonevf.pl new file mode 100644 index 0000000000..74a7964a42 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/subfonts/clonevf.pl @@ -0,0 +1,122 @@ +#! /usr/bin/perl -w +# +# This script clones a virtual font from a TFM file. +# +# As prerequisites, it needs the programs `tftopl' and `vptovf', which must +# be in the path. +# +# Call the script as +# +# perl clonevf.pl tfm-name vf-name +# +# Example: +# +# perl clonevf.pl bsmiuv bsmilpv + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +use strict; + +my $prog = $0; +$prog =~ s@.*/@@; + +if ($#ARGV != 1) { + die("usage: $prog tfm-name vf-name\n"); +} + +my $tfmname = $ARGV[0]; +my $vfname = $ARGV[1]; + + +# Create PL file. + +print("Processing metrics file \`$tfmname.tfm'...\n"); + +my $arg = "tftopl $tfmname.tfm > $tfmname.pl"; +system($arg) == 0 +|| die("$prog: calling \`$arg' failed: $?\n"); + + +# Create VPL file. + +print("Writing virtual property list file \`$vfname.vpl'...\n"); + +open(PL, "$tfmname.pl") +|| die("$prog: can't open \`$tfmname.pl': $!\n"); + +open(VPL, ">", "$vfname.vpl") +|| die("$prog: can't open \`$vfname.vpl': $!\n"); + +print(VPL "(VTITLE Created by \`$prog " . join(" ", @ARGV) . "')\n"); +print(VPL "(FAMILY TEX-\U$vfname\E)\n"); + +my $have_mapfont = 0; +while (<PL>) { + next if /^\(FAMILY/; + next if /^\(CHECKSUM/; + + if (/^\(CHARACTER (.*)/) { + if (!$have_mapfont) { + print(VPL "(MAPFONT D 0\n"); + print(VPL " (FONTNAME $tfmname)\n"); + print(VPL " )\n"); + $have_mapfont = 1; + } + + my $char = $1; + + print(VPL $_); + + $_ = <PL>; + if (/CHARWD/) { + print(VPL $_); + $_ = <PL>; + } + if (/CHARHT/) { + print(VPL $_); + $_ = <PL>; + } + if (/CHARDP/) { + print(VPL $_); + $_ = <PL>; + } + + print(VPL " (MAP\n"); + print(VPL " (SELECTFONT D 0)\n"); + print(VPL " (SETCHAR $char)\n"); + print(VPL " )\n"); + } + + print(VPL $_); +} + +close(PL); +close(VPL); + +print("Processing \`$vfname.vpl'\n"); +$arg = "vptovf $vfname.vpl"; +system($arg) == 0 +|| die("$prog: calling \`$arg' failed: $?\n"); + +print("Removing \`$tfmname.pl'...\n"); +unlink("$tfmname.pl"); +print("Removing \`$vfname.vpl'...\n"); +unlink("$vfname.vpl"); + + +# eof diff --git a/language/chinese/CJK/cjk-4.8.5/utils/subfonts/hlatex2agl.pl b/language/chinese/CJK/cjk-4.8.5/utils/subfonts/hlatex2agl.pl new file mode 100644 index 0000000000..d0b0ffea02 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/subfonts/hlatex2agl.pl @@ -0,0 +1,477 @@ +#! /usr/bin/perl -w +# +# This script adds AGL compliant glyph names to fonts from the HLaTeX +# package version 0.97 or newer. Note that only glyphs actually used in the +# (virtual) HLaTeX subfonts get new names; additionally, the used glyph +# shapes in the HLaTeX fonts aren't always correct -- consider this script +# as an auxiliary means, not a definitive solution. At least the Hangul and +# Hanja shapes are correct. +# +# As prerequisites, it needs the programs `t1asm' and `t1disasm' (from the +# t1utils package) and `vftovp' which must be in the path. The subfont +# definition file `UKS-HLaTeX.sfd' (from the ttf2pk package) and the file +# +# http://partners.adobe.com/public/developer/en/opentype/aglfn13.txt +# +# are necessary also. +# +# Call the script as +# +# perl hlatex2agl.pl virtual-namestem real-namestem sfd-file +# +# `virtual-namestem' specifies the name stem of the virtual subfonts +# directly used by LaTeX; both the VF and TFM files are needed. +# `real-namestem' gives the name stem of the real subfonts used by the +# virtual fonts; TFM, AFM, and PFB files are needed. +# +# Example: +# +# perl hlatex2agl.pl wmj umj UKS-HLaTeX.sfd + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +use strict; + +my $prog = $0; +$prog =~ s@.*/@@; + +if ($#ARGV != 2) { + die("usage: $prog virtual-namestem real-namestem sfd-file\n"); +} + +my $virtnamestem = $ARGV[0]; +my $realnamestem = $ARGV[1]; +my $sfdfile = $ARGV[2]; + + +# Read UKS-HLaTeX.sfd. + +my @sfd; +my @virtsubfonts; + +read_sfdfile($sfdfile, \@sfd, \@virtsubfonts); + + +# Read AGL file. + +my %agl; + +read_aglfile("aglfn13.txt", \%agl); + + +# Read VF files. + +my %vpl; +my %subfonts; + +for my $suffix (@virtsubfonts) { + read_vffile("$virtnamestem$suffix.vf", $suffix, \%vpl, \%subfonts); +} + + +# Decompose all Hangul syllables. + +my @hangul; + +decompose_hangul(\@hangul); + + +# Build glyph names. + +my %names; + +build_glyphnames(\%names); + + +# Process AFM files. + +foreach my $suffix (sort (keys %subfonts)) { + process_afmfile("$realnamestem$suffix.afm", $suffix); +} + + +# Process PFB files. + +foreach my $suffix (sort (keys %subfonts)) { + process_pfbfile("$realnamestem$suffix.pfb", $suffix); +} + + +# Read an SFD file. +# +# $1: Name of the SFD file. +# $2: Reference to the target array, mapping from Unicode to the subfont. +# The format of the array values is the concatenation of the subfont +# suffix, a space, and the index. +# $3: Reference to a target array which holds the subfont suffixes. + +sub read_sfdfile { + my ($sfdfile, $sfdarray, $subarray) = @_; + + print("Reading subfont definition file \`$sfdfile'...\n"); + + open(SFD, $sfdfile) + || die("$prog: can't open \`$sfdfile': $!\n"); + + my $line; + my $continuation = 0; + while (<SFD>) { + chop; + + next if /^\s*$/; + next if /^#/; + + if ($continuation) { + $line .= $_; + } + else { + $line = $_; + } + $continuation = 0; + + if ($line =~ s/\\$//) { + $continuation = 1; + next; + } + + $_ = $line; + my @field = split(" "); + + my $suffix = $field[0]; + push(@{$subarray}, $suffix); + + shift(@field); + my $index = 0; + + while (@field) { + if ($field[0] =~ /(.*):$/) { + $index = $1; + } + elsif ($field[0] =~ /(.*)_(.*)/) { + my $start = $1; + my $end = $2; + $start = oct($start) if ($start =~ /^0/); + $end = oct($end) if ($end =~ /^0/); + foreach my $i ($start .. $end) { + $sfdarray->[$i] = "$suffix $index"; + $index++; + } + } + else { + my $value = $field[0]; + $value = oct($value) if ($value =~ /^0/); + $sfdarray->[$value] = "$suffix $index"; + $index++; + } + shift(@field); + } + } + close(SFD); +} + + +# Read an AGL file. +# +# $1: Name of the AGL file. +# $2: Reference to the target hash file, mapping from the Unicode value +# to the glyph name. + +sub read_aglfile { + my ($aglfile, $aglhash) = @_; + + print("Reading Adobe Glyph List file \`$aglfile'...\n"); + + open(AGL, $aglfile) + || die("$prog: can't open \`$aglfile': $!\n"); + + while (<AGL>) { + chop; + + next if /^\s*$/; + next if /^#/; + + my @field = split(";"); + $aglhash->{hex($field[0])} = $field[1]; + } + close(AGL); +} + + +# Read a VF file. +# +# $1: Name of the VF file. +# $2: Subfont suffix. +# $3: Reference to a target hash, mapping from the virtual subfont to the +# real subfonts. The format of the key is the concatenation of the +# subfont suffix, a space, and the index. The format of the hash value +# is `<suffix1> <idx1>[,<suffix2> <idx2>[,...]]'. +# $4: Reference to a target hash, collecting the suffixes of the real +# subfonts. + +sub read_vffile { + my ($vffile, $vfsuffix, $vplhash, $subfonthash) = @_; + my $vplfile = "$vffile.vpl"; + + print("Creating virtual property list file \`$vplfile'...\n"); + my $arg = "vftovp -charcode-format=octal $vffile > $vplfile"; + system("$arg") == 0 + || die("$prog: calling \`$arg' failed: $?"); + + print("Reading \`$vplfile'...\n"); + open(VPL, $vplfile) + || die("$prog: can't open \`$vplfile': $!\n"); + + my @subfonts; + my $subindex; + my $index; + my $currfont; + my $map = ""; + + while (<VPL>) { + if (/\(MAPFONT D ([0-9]+)/) { + $subindex = $1; + } + elsif (/\(FONTNAME $realnamestem(.*?)\)/) { + $subfonts[$subindex] = $1; + if (!defined ($subfonthash->{$1})) { + $subfonthash->{$1} = 1; + } + } + elsif (/\(CHARACTER O ([0-7]+)/) { + # Save data from previous CHARACTER block. + $vplhash->{"$vfsuffix $index"} = $map if ($map); + + # Reset variables. + $index = oct($1); + $currfont = 0; + $map = ""; + } + elsif (/\(SELECTFONT D ([0-9]+)\)/) { + $currfont = $1; + } + elsif (/\(SETCHAR O ([0-7]+)\)/) { + $map .= "," if ($map); + $map .= "$subfonts[$currfont] " . oct($1); + } + } + + # Save data from last CHARACTER block. + $vplhash->{"$vfsuffix $index"} = $map if ($map); + + close(VPL); + unlink($vplfile); +} + + +# Decompose all Unicode Hangul syllables into Jamo elements. +# +# $1: The target array, mapping from Unicode value to a list of Jamos (in +# Unicode), separated by commata. +# +# This follows the algorithm given in the Unicode standard. + +sub decompose_hangul { + my ($hangularray) = @_; + + my $s_base = 0xAC00; + my $l_base = 0x1100; + my $v_base = 0x1161; + my $t_base = 0x11A7; + + my $s_count = 11172; + my $l_count = 19; + my $v_count = 21; + my $t_count = 28; + + my $n_count = $v_count * $t_count; + + for my $s ($s_base .. ($s_base + $s_count - 1)) { + my $s_index = $s - $s_base; + + my $l = $l_base + int($s_index / $n_count); + my $v = $v_base + int(($s_index % $n_count) / $t_count); + my $t = $t_base + $s_index % $t_count; + + my $jamos = "$l,$v"; + $jamos .= ",$t" if ($t != $t_base); + $hangularray->[$s] = $jamos; + } +} + + +# Build glyph names. +# +# $1: The target hash which maps from real subfonts to glyph names. Keys +# are of the form `<suffix> <index>', hash values are AGL compliant +# glyph names. Glyph variants get a trailing suffix of the form `.N', +# where is is a running number starting with 1. Example: `uni1100.24'. + +sub build_glyphnames { + my ($nameshash) = @_; + + my @entries; + + foreach my $unicode (0 .. 0xFFFF) { + next if !defined ($sfd[$unicode]); + + my $virtdata = $sfd[$unicode]; + + # We assume that only Hangul syllables are composed of more than + # a single element. + if (defined ($hangul[$unicode])) { + my @unijamos = split(",", $hangul[$unicode]); + my @jamos = split(",", $vpl{$virtdata}); + + foreach my $i (0 .. $#jamos) { + if (!defined ($nameshash->{$jamos[$i]})) { + if (defined ($entries[$unijamos[$i]])) { + $nameshash->{$jamos[$i]} = sprintf("uni%04X.%d", + $unijamos[$i], + $entries[$unijamos[$i]]); + $entries[$unijamos[$i]] += 1; + } + else { + $nameshash->{$jamos[$i]} = sprintf("uni%04X", $unijamos[$i]); + $entries[$unijamos[$i]] = 1; + } + } + } + } + else { + if (defined ($agl{$unicode})) { + $nameshash->{$vpl{$virtdata}} = $agl{$unicode}; + } + else { + $nameshash->{$vpl{$virtdata}} = sprintf("uni%04X", $unicode); + } + } + } +} + + +# Process AFM file. +# +# $1: Name of the AFM file to process. The file is first saved, then all +# glyph names are replaced for which an AGL compliant glyph name is +# known. +# $2: The suffix. + +sub process_afmfile { + my ($afmfile, $sub) = @_; + + print("Processing \`$afmfile'...\n"); + + if (!-f $afmfile) { + die("$prog: \`$afmfile' doesn't exist\n"); + } + + rename($afmfile, "$afmfile.old"); + + open(INFILE, "$afmfile.old") + || die("$prog: can't open \`$afmfile.old': $!\n"); + open(OUTFILE, ">", "$afmfile") + || die("$prog: can't open \`$afmfile': $!\n"); + + while (<INFILE>) { + # Replace the `kxx' entries. + if (/ N k(.*?) ;/) { + my $index = hex($1); + if (defined ($names{"$sub $index"})) { + s/ N .*? ;/ N $names{"$sub $index"} ;/; + } + } + + # Update version number. + s/001\.000/001.001/; + s/Altsys\ Fontographer\ 4\.1\ 1\/10\/95$/001.001/; + + print(OUTFILE $_); + + # Add comment. + if (/^Comment\ UniqueID/ || /^Comment\ Generated/) { + print(OUTFILE "Comment AGL compliant glyph names added " + . "by script $prog 2005-Jul-27.\n"); + } + } + + close(INFILE); + close(OUTFILE); +} + + +# Process PFB file. +# +# $1: Name of the PFB file to process. The file is first saved, then all +# glyph names are replaced for which an AGL compliant glyph name is +# known. +# $2: The suffix. + +sub process_pfbfile { + my ($pfbfile, $sub) = @_; + my $arg; + + print("Processing \`$pfbfile'...\n"); + + if (!-f $pfbfile) { + die("$prog: \`$pfbfile' doesn't exist\n"); + } + + rename($pfbfile, "$pfbfile.old"); + + $arg = "t1disasm < $pfbfile.old > $pfbfile.disasm.old"; + system("$arg") == 0 + || die("$prog: calling \`$arg' failed: $?"); + + open(INFILE, "$pfbfile.disasm.old") + || die("$prog: can't open \`$pfbfile.disasm.old': $!\n"); + open(OUTFILE, ">", "$pfbfile.disasm") + || die("$prog: can't open \`$pfbfile.disasm': $!\n"); + + while (<INFILE>) { + # Replace the `kxx' entries. + if (m@/k(.*?) @) { + my $index = hex($1); + if (defined ($names{"$sub $index"})) { + s@/k.*? @/$names{"$sub $index"} @; + } + } + + # Update version number. + s/001\.000/001.001/; + + print(OUTFILE $_); + + # Add comment. + if (/^%%CreationDate/) { + print(OUTFILE "% AGL compliant glyph names added " + . "by script $prog 2005-Jul-27.\n"); + } + } + + close(INFILE); + close(OUTFILE); + + $arg = "t1asm < $pfbfile.disasm > $pfbfile"; + system("$arg") == 0 + || die("$prog: calling \`$arg' failed: $?"); + + unlink("$pfbfile.disasm.old", "$pfbfile.disasm"); +} + + +# eof diff --git a/language/chinese/CJK/cjk-4.8.5/utils/subfonts/makefdx.pl b/language/chinese/CJK/cjk-4.8.5/utils/subfonts/makefdx.pl new file mode 100644 index 0000000000..5363e5b63d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/subfonts/makefdx.pl @@ -0,0 +1,340 @@ +#! /usr/bin/perl -w +# +# This script creates proper entries for an FDX file as used by the CJK +# package for LaTeX. +# +# As a prerequisite, it needs the file +# +# http://partners.adobe.com/public/developer/en/opentype/aglfn13.txt +# +# which must be located in the current directory. +# +# Call the script as +# +# perl [-u] makefdx.pl vertref-afm-file sfd-file encoding font-name +# +# `vertref-afm-file' is an AFM file as produced by the script `vertref.pe'. +# The subfont definition file `sfd-file' gives the subfont scheme to get the +# proper entries in the FDX file. `encoding' and `font-name' are TeX font +# parameters as used by the CJK package; the scripts uses the concatenation +# of those two values as the name of the FDX file (with suffix `.fdx'). +# +# The switch `-u' makes the script add a macro to the FDX file (which is +# used by the CJKutf8.sty) to provide a proper /ToUnicode cmap to pdftex. +# +# Note that the created FDX file has to be completed manually. +# +# Examples: +# +# perl makefdx.pl bsmiuvr.afm UBig5.sfd c00 bsmi +# +# The result of this call is the file `c00bsmi.fdx' (you get some warnings +# because not all glyphs contained in bsmiuvr.afm can be accessed with Big5 +# encoding). +# +# perl makefdx.pl -u bsmiuvr.afm Unicode.sfd c70 bsmi +# +# The result of this call is the file `c70bsmi.fdx'. +# +# A collection of useful subfont definition files for CJK fonts can be found +# in the ttf2pk package. + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +use strict; + +my $prog = $0; +$prog =~ s@.*/@@; + +my $is_unicode = 0; +if ($ARGV[0] eq "-u") { + $is_unicode = 1; + shift @ARGV; +} + +if ($#ARGV != 3) { + die("usage: $prog [-u] vertref-afm-file sfd-file encoding font-name\n"); +} + +my $vertrefafmfile = $ARGV[0]; +my $sfdfile = $ARGV[1]; +my $encoding = $ARGV[2]; +my $fontname = $ARGV[3]; + +my $fdxfile = $encoding . $fontname . ".fdx"; + +# Read AGL file. + +my %agl; + +read_aglfile("aglfn13.txt", \%agl); + + +# Read AFM file. + +my @vertref; + +read_afmfile($vertrefafmfile, \@vertref); + + +# Read subfont definition file. + +my @sfd; + +read_sfdfile($sfdfile, \@sfd); + + +# Write FDX file. + +print("Writing extended font definition file \`$fdxfile'...\n"); + +open(FDX, ">", $fdxfile) +|| die("$prog: can't open \`$fdxfile': $!\n"); +my $oldfh = select(FDX); + +print("% This is the file $fdxfile of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by the script makefdx.pl for CJK Version 4.8.5 (16-Oct-2021). + +\\def\\fileversion{4.8.5} +\\def\\filedate{2021/10/16} +\\ProvidesFile{$fdxfile}[\\filedate\\space\\fileversion] + +\\CJKvdef{fullheight}{1em} +\\CJKvdef{height}{.88em} +\\CJKvdef{offset}{.6em} + +% Uncomment if necessary. +%\\CJKvdef{norotate}{} +"); + +my @unicodes; +my $mapping_count = 0; + +foreach my $index (0 .. $#vertref) { + my $glyphnameref = $vertref[$index]; + my $unicode; + + if (defined ($agl{$glyphnameref})) { + $unicode = $agl{$glyphnameref}; + } + elsif ($glyphnameref =~ /^uni([0-9A-F]{4})$/) { + $unicode = hex($1); + } + elsif ($glyphnameref =~ /^u([0-9A-F]{4,6})$/) { + $unicode = hex($1); + } + else { + $unicode = -1; + } + if ($unicode == -1 + || ($unicode >= 0xD800 && $unicode <= 0xDFFF) + || $unicode > 0x10FFFF) { + print(STDERR "Can't map glyph name \`$glyphnameref' to Unicode.\n"); + $unicodes[$index] = -1; + next; + } + $unicodes[$index] = $unicode; + + my $sfdentry; + + if (defined ($sfd[$unicode])) { + $sfdentry = $sfd[$unicode]; + } + else { + $unicodes[$index] = -1; + printf(STDERR "\`%s' (U+%04X) not in subfont encoding\n", + $glyphnameref, $unicode); + next; + } + + $mapping_count++; + + print("\\CJKvdef{m/n/$sfdentry}"); + print("{\\def\\CJK\@plane{v}\\selectfont\\CJKsymbol{$index}}\n"); + print("\\CJKvlet{bx/n/$sfdentry}"); + print("{m/n/$sfdentry}\n"); +} + +if ($is_unicode) { + print(" +\\gdef\\CJK\@cmap\@${fontname}v{ + \\expandafter\\ifx\\csname CJK\@CMap\@${fontname}v\\endcsname \\relax + \\immediate\\pdfobj stream { + /CIDInit\\space/ProcSet\\space findresource\\space begin\\space + 12\\space dict\\space begin\\space + begincmap\\space + /CIDSystemInfo\\space <<\\space + /Registry\\space (TeX)\\space + /Ordering\\space (${fontname}v)\\space + /Supplement\\space 0\\space >>\\space def\\space + /CMapName\\space /TeX-${fontname}v-0\\space def\\space + 1\\space begincodespacerange\\space + <00>\\space <FF>\\space + endcodespacerange\\space + $mapping_count\\space beginbfchar\\space +"); + + foreach my $index (0 .. $#vertref) { + if ($unicodes[$index] != -1) { + printf(" <%02X>\\space <%04X>\\space\n", + $index, $unicodes[$index]); + } + } + + print(" endbfchar\\space + endcmap\\space + CMapName\\space currentdict\\space /CMap\\space defineresource\\space + pop\\space + end\\space + end\\space} + \\expandafter\\xdef\\csname CJK\@CMap\@${fontname}v\\endcsname{ + \\the\\pdflastobj} + \\fi + \\pdffontattr\\font\@name{ + /ToUnicode\\space\\csname CJK\@CMap\@${fontname}v\\endcsname\\space 0\\space R} +} + +\\endinput +"); +} + + +# Read an AGL file. +# +# $1: Name of the AGL file. +# $2: Reference to the target hash file, mapping from the glyph name +# to the Unicode value. + +sub read_aglfile { + my ($aglfile, $aglhash) = @_; + + print("Reading Adobe Glyph List file \`$aglfile'...\n"); + + open(AGL, $aglfile) + || die("$prog: can't open \`$aglfile': $!\n"); + + while (<AGL>) { + chop; + + next if /^\s*$/; + next if /^#/; + + my @field = split(";"); + $aglhash->{$field[1]} = hex($field[0]); + } + close(AGL); +} + + +# Read an SFD file. +# +# $1: Name of the SFD file. +# $2: Reference to the target array file, mapping from the character code +# to the subfont index. The format of an array value is the +# concatenation of the subfont suffix, a slash, and the index. + +sub read_sfdfile { + my ($sfdfile, $sfdarray) = @_; + + print("Reading subfont definition file \`$sfdfile'...\n"); + + open(SFD, $sfdfile) + || die("$prog: can't open \`$sfdfile': $!\n"); + + my $line; + my $continuation = 0; + while (<SFD>) { + chop; + + next if /^\s*$/; + next if /^#/; + + if ($continuation) { + $line .= $_; + } + else { + $line = $_; + } + $continuation = 0; + + if ($line =~ s/\\$//) { + $continuation = 1; + next; + } + + $_ = $line; + my @field = split(" "); + + my $suffix = $field[0]; + + shift(@field); + my $index = 0; + + while (@field) { + if ($field[0] =~ /(.*):$/) { + $index = $1; + } + elsif ($field[0] =~ /(.*)_(.*)/) { + my $start = $1; + my $end = $2; + $start = oct($start) if ($start =~ /^0/); + $end = oct($end) if ($end =~ /^0/); + foreach my $i ($start .. $end) { + $sfdarray->[$i] = "$suffix/$index"; + $index++; + } + } + else { + my $value = $field[0]; + $value = oct($value) if ($value =~ /^0/); + $sfdarray->[$value] = "$suffix/$index"; + $index++; + } + shift(@field); + } + } + close(SFD); +} + + +# Read an AFM file. +# +# $1: Name of the AFM file. +# $2: Reference to array which maps glyph indices to glyph names. + +sub read_afmfile { + my ($afmfile, $maparray) = @_; + + print("Reading metrics file \`$afmfile'\n"); + + open(AFM, $afmfile) + || die("$prog: can't open \`$afmfile': $!\n"); + + while (<AFM>) { + if (/^C \d+ ;/) { + / N (.*?) ;/; + push (@$maparray, $1); + } + } + close(AFM); +} + + +# eof diff --git a/language/chinese/CJK/cjk-4.8.5/utils/subfonts/sfd2uni.pl b/language/chinese/CJK/cjk-4.8.5/utils/subfonts/sfd2uni.pl new file mode 100644 index 0000000000..5aa1946d32 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/subfonts/sfd2uni.pl @@ -0,0 +1,348 @@ +#! /usr/bin/perl -w +# +# This script creates virtual subfonts in Unicode encoding for a font +# encoding given by a subfont definition file (which must use Unicode +# code points). +# +# As prerequisites it needs the programs `tftopl' and `vptovf' which must be +# in the path. +# +# Call the script as +# +# perl sfd2uni.pl sfd-file namestem uni-namestem codingscheme +# +# `sfd-file' is the subfont definition file, `namestem' is the name stem +# of the subfonts defined in `sfd-file', and `uni-namestem' holds the prefix +# for the Unicode subfonts. `codingscheme' (converted to uppercase) is used +# for the CODINGSCHEME parameter in the resulting TFM files. +# +# `sfd2uni.pl' reads all TFM files from the font family with name stem +# `namestem'. +# +# Example: +# +# perl sfd2uni.pl UKS-HLaTeX.sfd wmj uwmj HLATEX +# +# A collection of useful subfont definition files for CJK fonts can be found +# in the ttf2pk package. + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +use strict; + +my $prog = $0; +$prog =~ s@.*/@@; + +if ($#ARGV != 3) { + die("usage: $prog sfd-file namestem uni-namestem codingscheme\n"); +} + +my $sfdfile = $ARGV[0]; +my $namestem = $ARGV[1]; +my $uninamestem = $ARGV[2]; +my $codingscheme = $ARGV[3]; + + +# Read subfont definition file. + +my %sfd; +my @subfonts; + +read_sfdfile($sfdfile, \%sfd, \@subfonts); + + +# Read TFM files. + +my @unicmetrics; + +foreach my $sub (@subfonts) { + my $tfmname = "$namestem$sub.tfm"; + + read_tfmfile($tfmname, \@unicmetrics, \%sfd, $sub); +} + + +# Read FONTDIMEN block. + +my $fontdimen = read_fontdimen("$namestem$subfonts[0].tfm"); + + +# Write VPL files. + +my $index = 0; +foreach my $i (0 .. 255) { + my @entries; + + foreach my $j (0 .. 255) { + if (defined ($unicmetrics[$index])) { + push(@entries, "$j $unicmetrics[$index]"); + } + $index++; + } + + if ($#entries >= 0) { + write_vplfile($uninamestem . sprintf("%02x.vpl", $i), \@entries); + } +} + + +# Generate VF and TFM files, then remove the VPL files. + +my @vplfiles = glob("$uninamestem*.vpl"); +foreach my $vplfile (@vplfiles) { + print("Processing \`$vplfile'...\n"); + my $arg = "vptovf $vplfile"; + system($arg) == 0 + || die("$prog: calling \`$arg' failed: $?");; + print("Removing \`$vplfile'...\n"); + unlink($vplfile); +} + + +# Read an SFD file. +# +# $1: Name of the SFD file. +# $2: Reference to the target hash file, mapping from the subfont index to +# the character code. The format of the key value is the concatenation +# of the subfont suffix, a space, and the index. +# $3: Reference to a target array which holds the subfont suffixes. + +sub read_sfdfile { + my ($sfdfile, $sfdhash, $sfdarray) = @_; + + print("Reading subfont definition file \`$sfdfile'...\n"); + + open(SFD, $sfdfile) + || die("$prog: can't open \`$sfdfile': $!\n"); + + my $line; + my $continuation = 0; + while (<SFD>) { + chop; + + next if /^\s*$/; + next if /^#/; + + if ($continuation) { + $line .= $_; + } + else { + $line = $_; + } + $continuation = 0; + + if ($line =~ s/\\$//) { + $continuation = 1; + next; + } + + $_ = $line; + my @field = split(" "); + + my $suffix = $field[0]; + push(@{$sfdarray}, $suffix); + + shift(@field); + my $index = 0; + + while (@field) { + if ($field[0] =~ /(.*):$/) { + $index = $1; + } + elsif ($field[0] =~ /(.*)_(.*)/) { + my $start = $1; + my $end = $2; + $start = oct($start) if ($start =~ /^0/); + $end = oct($end) if ($end =~ /^0/); + foreach my $i ($start .. $end) { + $sfdhash->{"$suffix $index"} = $i; + $index++; + } + } + else { + my $value = $field[0]; + $value = oct($value) if ($value =~ /^0/); + $sfdhash->{"$suffix $index"} = $value; + $index++; + } + shift(@field); + } + } + close(SFD); +} + + +# Read TFM file. +# +# $1: Name of the TFM file. +# $2: Reference to the target array holding metric information in the form +# `<subfont> <subfont_index> <width> <heigth> <depth>'. +# $3: Reference to a hash created by `read_sfdfile'. +# $4: Subfont suffix. + +sub read_tfmfile { + my ($tfmfile, $unicarray, $sfdhash, $sub) = @_; + + print("Processing metrics file \`$tfmfile'...\n"); + my $arg = "tftopl $tfmfile > $tfmfile.pl"; + system($arg) == 0 + || die("$prog: calling \`$arg' failed: $?\n"); + + print("Reading property list file \`$tfmfile.pl'...\n"); + open(PL, "$tfmfile.pl") + || die("$prog: can't open \`$tfmfile.pl': $!\n"); + + while (<PL>) { + my $index; + if (/^\(CHARACTER O (\d+)/) { + $index = oct($1); + } + elsif (/^\(CHARACTER C (.)/) { + $index = ord($1); + } + else { + next; + } + + my $wd = "0"; + my $ht = "0"; + my $dp = "0"; + + $_ = <PL>; + if (/\(CHARWD R (.*)\)/) { + $wd = "$1"; + $_ = <PL>; + } + if (/\(CHARHT R (.*)\)/) { + $ht = "$1"; + $_ = <PL>; + } + if (/\(CHARDP R (.*)\)/) { + $dp = "$1"; + } + + if (defined ($sfdhash->{"$sub $index"})) { + $unicarray->[$sfdhash->{"$sub $index"}] = "$sub $index $wd $ht $dp"; + } + } + close(PL); + print("Removing \`$tfmfile.pl'...\n"); + unlink("$tfmfile.pl"); +} + + +# Read FONTDIMEN block of a TFM file. +# +# $1: Name of the TFM file. +# +# Return the block as a string. + +sub read_fontdimen { + my ($tfmfile) = @_; + + print("Processing metrics file \`$tfmfile'...\n"); + my $arg = "tftopl $tfmfile > $tfmfile.pl"; + system($arg) == 0 + || die("$prog: calling \`$arg' failed: $?\n"); + + print("Reading property list file \`$tfmfile.pl'...\n"); + open(PL, "$tfmfile.pl") + || die("$prog: can't open \`$tfmfile.pl': $!\n"); + + my $s = ""; + my $have_fontdimen = 0; + + while (<PL>) { + if (/^\(FONTDIMEN/) { + $have_fontdimen = 1; + } + + if ($have_fontdimen) { + $s .= $_; + + last if (/^ \)/); + } + } + + close(PL); + print("Removing \`$tfmfile.pl'...\n"); + unlink("$tfmfile.pl"); + + return $s; +} + + +# Write VPL file. +# +# $1: Name of the VPL file. +# $2: Reference to list which holds the font entries. An entry has the +# form `<idx> <subfont> <subfont_idx> <width> <height> <depth>'. + +sub write_vplfile { + my ($vplfile, $metricsarray) = @_; + + my %subfonts; + my $subcount = 0; + + foreach my $entry (@{$metricsarray}) { + my @field = split(" ", $entry); + my $subfont = $field[1]; + if (!defined ($subfonts{$subfont})) { + $subfonts{$subfont} = $subcount; + $subcount++; + } + } + + print("Writing virtual property list file \`$vplfile'...\n"); + + open(VPL, ">", $vplfile) + || die("$prog: can't open \`$vplfile': $!\n"); + my $oldfh = select(VPL); + + print("(VTITLE Created by \`$prog " . join(" ", @ARGV) . "')\n"); + print("(FAMILY TEX-\U$uninamestem\E)\n"); + print("(CODINGSCHEME \U$codingscheme\E)\n"); + print $fontdimen; + + foreach my $subfont + (sort { $subfonts{$a} <=> $subfonts{$b} } keys %subfonts) { + print("(MAPFONT D $subfonts{$subfont}\n"); + print(" (FONTNAME $namestem$subfont)\n"); + print(" )\n"); + } + + foreach my $entry (@{$metricsarray}) { + my ($index, $subnumber, $subindex, $wd, $ht, $dp) = split(" ", $entry); + + print("(CHARACTER D $index\n"); + print(" (CHARWD R $wd)\n"); + print(" (CHARHT R $ht)\n"); + print(" (CHARDP R $dp)\n"); + print(" (MAP\n"); + print(" (SELECTFONT D $subfonts{$subnumber})\n"); + print(" (SETCHAR D $subindex)\n"); + print(" )\n"); + print(" )\n"); + } + + close(VPL); + select($oldfh); +} + + +# eof diff --git a/language/chinese/CJK/cjk-4.8.5/utils/subfonts/subfonts.pe b/language/chinese/CJK/cjk-4.8.5/utils/subfonts/subfonts.pe new file mode 100644 index 0000000000..347e53b6df --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/subfonts/subfonts.pe @@ -0,0 +1,95 @@ +# Generate CJK subfonts from master font. +# The fonts are created in the current directory. +# +# $1: The master font (e.g., `bsmi00lp.ttf'). +# $2: The name stem for the subfonts (e.g., `bsmilp'). +# $3: The subfont definition file, mapping from Unicode to whatever +# (e.g., `UBig5.sfd', which maps to Big 5). +# +# A collection of useful subfont definition files for CJK fonts can be found +# in the ttf2pk package. + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +if (Strtol($version) < 20071105) + Print("Can't use FontForge version before 2007-11-05. Aborting."); + Quit(1); +endif; + +if ($argc != 4) + Print("usage: [fontforge -script] ", $0, " master-font name-stem SFD-file"); + Quit(1); +endif; + +Print("Loading ", $1, "..."); +Open($1); + +if ($cidfontname != "") + CIDFlatten(); +endif; + +Reencode("ucs4"); + +copyright = $copyright \ + + Chr(10) + Chr(10) \ + + "Subfont version " \ + + Strftime("%F", 1, "C") \ + + "."; +SetFontNames("", "", "", "", copyright, ""); + +Print("Ensure third order curves..."); +SetFontOrder(3); + +Print("Scaling to PostScript units..."); +ScaleToEm(900, 100); + +num_chars = CharCnt(); +count = 0; +delta = 100; + +while (count + delta < num_chars) + Print(count, "/", num_chars - 1, ":"); + Select(count, count + delta); + + Print(" Add extrema..."); + AddExtrema(); + + Print(" Simplifying outlines..."); + Simplify(0, 2); + + count += delta; +endloop; + +Print(count, "/", num_chars - 1, ":"); +Select(count, num_chars - 1); + +Print(" Add extrema..."); +AddExtrema(); + +Print(" Simplifying outlines..."); +Simplify(0, 2); + +SelectAll(); + +# generate AFM and TFM files, no PS hints, and rounded PS coordinates +Print("Generating subfonts..."); +Generate($2 + "%s.pfb", "", \ + 0x1 | 0x100 | 0x10000 | 0x80000 | 0x200000, \ + -1, $3); + +Quit(0); diff --git a/language/chinese/CJK/cjk-4.8.5/utils/subfonts/uni2sfd.pl b/language/chinese/CJK/cjk-4.8.5/utils/subfonts/uni2sfd.pl new file mode 100644 index 0000000000..fc89bf7017 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/subfonts/uni2sfd.pl @@ -0,0 +1,312 @@ +#! /usr/bin/perl -w +# +# This script creates virtual subfonts in a font encoding given by a subfont +# definition file, based on Unicode subfonts. +# +# As prerequisites, it needs the programs `tftopl' and `vptovf' which must +# be in the path. +# +# Call the script as +# +# perl uni2sfd.pl uni-namestem sfd-file namestem codingscheme +# +# `uni-namestem' is the namestem of the Unicode subfonts; `uni2sfd.pl' +# appends the Unicode suffixes and reads the corresponding TFM files. +# `sfd-file' is the subfont definition file which maps Unicode input +# characters to the target subfont scheme using `namestem' as the namestem. +# `codingscheme' gives the value for the CODINGSCHEME parameter in the +# VF files (always converted to uppercase). +# +# Example: +# +# perl uni2sfd.pl bsmiu UBig5.sfd bsmilp cjkbig5 +# +# A collection of useful subfont definition files for CJK fonts can be found +# in the ttf2pk package. + +# Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +use strict; + +my $prog = $0; +$prog =~ s@.*/@@; + +if ($#ARGV != 3) { + die("usage: $prog uni-namestem sfd-file namestem codingscheme\n"); +} + +my $uninamestem = $ARGV[0]; +my $sfdfile = $ARGV[1]; +my $namestem = $ARGV[2]; +my $codingscheme = $ARGV[3]; + + +# Read subfont definition file. + +my %sfd; +my @subfonts; + +read_sfdfile($sfdfile, \%sfd, \@subfonts); + + +# Read TFM files. + +my @unimetrics; + +foreach my $sub (0 .. 0xFF) { + my $suffix = sprintf("%02x", $sub); + my $tfmname = "$uninamestem$suffix.tfm"; + + if (-f $tfmname) { + read_tfmfile($tfmname, \@unimetrics, $suffix); + } +} + + +# Write VPL files. + +foreach my $sub (@subfonts) { + my @entries; + + foreach my $i (0 .. 255) { + if (defined ($sfd{"$sub $i"})) { + my $index = $sfd{"$sub $i"}; + if (defined ($unimetrics[$index])) { + push(@entries, "$i $index $unimetrics[$index]"); + } + } + } + + if ($#entries >= 0) { + write_vplfile("$namestem$sub.vpl", \@entries); + } +} + + +# Generate VF and TFM files, then remove the VPL files. + +my @vplfiles = glob("$namestem*.vpl"); +foreach my $vplfile (@vplfiles) { + print("Processing \`$vplfile'...\n"); + my $arg = "vptovf $vplfile"; + system($arg) == 0 + || die("$prog: calling \`$arg' failed: $?\n"); + print("Removing \`$vplfile'...\n"); + unlink($vplfile); +} + + +# Read an SFD file. +# +# $1: Name of the SFD file. +# $2: Reference to the target hash file, mapping from the character code +# to the subfont index. The format of the key value is the +# concatenation of the subfont suffix, a space, and the index. +# $3: Reference to a target array which holds the subfont suffixes. + +sub read_sfdfile { + my ($sfdfile, $sfdhash, $sfdarray) = @_; + + print("Reading subfont definition file \`$sfdfile'...\n"); + + open(SFD, $sfdfile) + || die("$prog: can't open \`$sfdfile': $!\n"); + + my $line; + my $continuation = 0; + while (<SFD>) { + chop; + + next if /^\s*$/; + next if /^#/; + + if ($continuation) { + $line .= $_; + } + else { + $line = $_; + } + $continuation = 0; + + if ($line =~ s/\\$//) { + $continuation = 1; + next; + } + + $_ = $line; + my @field = split(" "); + + my $suffix = $field[0]; + push(@{$sfdarray}, $suffix); + + shift(@field); + my $index = 0; + + while (@field) { + if ($field[0] =~ /(.*):$/) { + $index = $1; + } + elsif ($field[0] =~ /(.*)_(.*)/) { + my $start = $1; + my $end = $2; + $start = oct($start) if ($start =~ /^0/); + $end = oct($end) if ($end =~ /^0/); + foreach my $i ($start .. $end) { + $sfdhash->{"$suffix $index"} = $i; + $index++; + } + } + else { + my $value = $field[0]; + $value = oct($value) if ($value =~ /^0/); + $sfdhash->{"$suffix $index"} = $value; + $index++; + } + shift(@field); + } + } + close(SFD); +} + + +# Read TFM file. +# +# $1: Name of the TFM file. +# $2: Reference to the target array holding metric information in the form +# `<width> <heigth> <depth>'. +# $3: Subfont suffix. + +sub read_tfmfile { + my ($tfmfile, $unicarray, $suffix) = @_; + + print("Processing metrics file \`$tfmfile'...\n"); + my $arg = "tftopl $tfmfile > $tfmfile.pl"; + system($arg) == 0 + || die("$prog: calling \`$arg' failed: $?\n"); + + print("Reading property list file \`$tfmfile.pl'...\n"); + open(PL, "$tfmfile.pl") + || die("$prog: can't open \`$tfmfile.pl': $!\n"); + + while (<PL>) { + my $idx; + if (/^\(CHARACTER O (\d+)/) { + $idx = oct($1); + } + elsif (/^\(CHARACTER C (.)/) { + $idx = ord($1); + } + else { + next; + } + $idx += hex($suffix) * 256; + + my $wd = "0"; + my $ht = "0"; + my $dp = "0"; + + $_ = <PL>; + if (/\(CHARWD R (.*)\)/) { + $wd = "$1"; + $_ = <PL>; + } + if (/\(CHARHT R (.*)\)/) { + $ht = "$1"; + $_ = <PL>; + } + if (/\(CHARDP R (.*)\)/) { + $dp = "$1"; + } + + $unicarray->[$idx] = "$wd $ht $dp"; + } + close(PL); + print("Removing \`$tfmfile.pl'...\n"); + unlink("$tfmfile.pl"); +} + + +# Write VPL file. +# +# $1: Name of the VPL file. +# $2: Reference to list which holds the font entries. An entry has the +# form `<index> <Unicode> <width> <height> <depth>'. + +sub write_vplfile { + my ($vplfile, $glypharray) = @_; + + my %subfonts; + my $subcount = 0; + + foreach my $entry (@{$glypharray}) { + my @field = split(" ", $entry); + my $subfont = int($field[1] / 256); + if (!defined ($subfonts{$subfont})) { + $subfonts{$subfont} = $subcount; + $subcount++; + } + } + + print("Writing virtual property list file \`$vplfile'...\n"); + + open(VPL, ">", $vplfile) + || die("$prog: can't open \`$vplfile': $!\n"); + my $oldfh = select(VPL); + + print("(VTITLE Created by \`$prog " . join(" ", @ARGV) . "')\n"); + print("(FAMILY TEX-\U$namestem\E)\n"); + print("(CODINGSCHEME \U$codingscheme\E)\n"); + print("(FONTDIMEN\n"); + print(" (SPACE R 0.5)\n"); + print(" (XHEIGHT R 0.4)\n"); + print(" (QUAD R 1)\n"); + print(" )\n"); + + foreach my $subfont + (sort { $subfonts{$a} <=> $subfonts{$b} } keys %subfonts) { + print("(MAPFONT D $subfonts{$subfont}\n"); + print(" (FONTNAME $uninamestem" . sprintf("%02x", $subfont) . ")\n"); + print(" )\n"); + } + + foreach my $entry (@{$glypharray}) { + my @field = split(" ", $entry); + my $index = $field[0]; + my $subnumber = $subfonts{int($field[1] / 256)}; + my $subindex = $field[1] % 256; + my $width = $field[2]; + my $height = $field[3]; + my $depth = $field[4]; + + print("(CHARACTER D $index\n"); + print(" (CHARWD R $width)\n"); + print(" (CHARHT R $height)\n"); + print(" (CHARDP R $depth)\n"); + print(" (MAP\n"); + print(" (SELECTFONT D $subnumber)\n"); + print(" (SETCHAR D $subindex)\n"); + print(" )\n"); + print(" )\n"); + } + + close(VPL); + select($oldfh); +} + + +# eof diff --git a/language/chinese/CJK/cjk-4.8.5/utils/subfonts/vertical.pe b/language/chinese/CJK/cjk-4.8.5/utils/subfonts/vertical.pe new file mode 100644 index 0000000000..a10faef088 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/subfonts/vertical.pe @@ -0,0 +1,108 @@ +# Generate a font which contains vertical glyph representations. +# The font is created in the current directory. +# +# $1: The master font (e.g., `bsmi00lp.ttf'). +# $2: The name of the vertical font (e.g., `bsmilpv'). + +# Copyright (C) 1994-2007 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +if (Strtol($version) < 20071105) + Print("Can't use FontForge version before 2007-11-05. Aborting."; + Quit(1); +endif; + +if ($argc != 3) + Print("usage: [fontforge -script] ", $0, " master-font vertical-fontname"); + Quit(1); +endif; + +Print("Loading ", $1, "..."); +Open($1); + +fontname = $2; +fullname = $fullname + " vertical"; +copyright = $copyright \ + + Chr(10) + Chr(10) \ + + "Vertical glyph representations version " \ + + Strftime("%F", 1, "C") \ + + "."; +SetFontNames(fontname, "", fullname, "", copyright, ""); + +SelectAll(); +ApplySubstitution("*", "*", "vert"); + +if (!$fontchanged) + Print("No vertical glyph representation forms found."); + Quit(1); +endif; + +SelectChanged(); + +SelectInvert(); +DetachAndRemoveGlyphs(); + +Print("Ensure third order curves..."); +SetFontOrder(3); + +Print("Scaling to PostScript units..."); +ScaleToEm(900, 100); + +num_chars = CharCnt(); +count = 0; +delta = 100; + +while (count + delta < num_chars) + Print(count, "/", num_chars - 1, ":"); + Select(count, count + delta); + + Print(" Add extrema..."); + AddExtrema(); + + Print(" Simplifying outlines..."); + Simplify(0, 2); + + count += delta; +endloop; + +Print(count, "/", num_chars - 1, ":"); +Select(count, num_chars - 1); + +Print(" Add extrema..."); +AddExtrema(); + +Print(" Simplifying outlines..."); +Simplify(0, 2); + +SelectAll(); +foreach + unicode = GlyphInfo("Unicode"); + if (unicode > 0) + SetUnicodeValue(unicode); + name = GlyphInfo("Name"); + SetGlyphName(name + ".vert", 0); + endif +endloop; + +Reencode("original"); + +# generate AFM and TFM files, no PS hints, and rounded PS coordinates +Print("Generating font..."); +Generate($2 + ".pfb", "", \ + 0x1 | 0x100 | 0x10000 | 0x80000 | 0x200000); + +Quit(0); diff --git a/language/chinese/CJK/cjk-4.8.5/utils/subfonts/vertref.pe b/language/chinese/CJK/cjk-4.8.5/utils/subfonts/vertref.pe new file mode 100644 index 0000000000..63533f9473 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/subfonts/vertref.pe @@ -0,0 +1,121 @@ +# Generate a font with glyphs which have vertical glyph representations (but +# don't include the vertical glyph representations itself). This is used by +# the perl script `makefdx.pl' to create an FDX file as used by the CJK +# package for LaTeX. +# +# The font is created in the current directory. +# +# $1: The master font (e.g., `bsmi00lp.ttf'). +# $2: The name of the target font (e.g., `bsmilpvr'). + +# Copyright (C) 1994-2007 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +if (Strtol($version) < 20071105) + Print("Can't use FontForge version before 2007-11-05. Aborting."; + Quit(1); +endif; + +if ($argc != 3) + Print("usage: [fontforge -script] ", $0, " master-font fontname"); + Quit(1); +endif; + +Print("Loading ", $1, "..."); +Open($1); + +fontname = $2; +fullname = $fullname + " vertical reference"; +copyright = $copyright \ + + Chr(10) + Chr(10) \ + + "Vertical glyph reference font version " \ + + Strftime("%F", 1, "C") \ + + "."; +SetFontNames(fontname, "", fullname, "", copyright, ""); + +lookups = GetLookups("GSUB"); + +i = 0; +result = -1; +while (i < SizeOf(lookups)) + if (Strstr(lookups[i], "'vert'") >= 0) + result = i; + endif; + i++; +endloop; + +if (result == -1) + Print("This font doesn't contain a GSUB table with a `vert' feature."); + Quit(1); +endif; + +subtables = GetLookupSubtables(lookups[result]); + +i = 0; +result = -1; +while (i < SizeOf(subtables)) + if (Strstr(subtables[i], "'vert'") >= 0) + result = i; + endif; + i++; +endloop; + +SelectByPosSub(subtables[result], 1); + +SelectInvert(); +DetachAndRemoveGlyphs(); + +Print("Ensure third order curves..."); +SetFontOrder(3); + +Print("Scaling to PostScript units..."); +ScaleToEm(900, 100); + +num_chars = CharCnt(); +count = 0; +delta = 100; + +while (count + delta < num_chars) + Print(count, "/", num_chars - 1, ":"); + Select(count, count + delta); + + Print(" Add extrema..."); + AddExtrema(); + + Print(" Simplifying outlines..."); + Simplify(0, 2); + + count += delta; +endloop; + +Print(count, "/", num_chars - 1, ":"); +Select(count, num_chars - 1); + +Print(" Add extrema..."); +AddExtrema(); + +Print(" Simplifying outlines..."); +Simplify(0, 2); + +Reencode("original"); + +# generate AFM and TFM files, no PS hints, and rounded PS coordinates +Print("Generating font..."); +Generate($2 + ".pfb", "", \ + 0x1 | 0x100 | 0x10000 | 0x80000 | 0x200000); + +Quit(0); diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/dvips/garuda-c90/config.garuda-c90 b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/dvips/garuda-c90/config.garuda-c90 new file mode 100644 index 0000000000..69e0d59326 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/dvips/garuda-c90/config.garuda-c90 @@ -0,0 +1 @@ +p +garuda-c90.map diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/dvips/norasi-c90/config.norasi-c90 b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/dvips/norasi-c90/config.norasi-c90 new file mode 100644 index 0000000000..655dace2ba --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/dvips/norasi-c90/config.norasi-c90 @@ -0,0 +1 @@ +p +norasi-c90.map diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/enc/dvips/thai/c90.enc b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/enc/dvips/thai/c90.enc new file mode 100644 index 0000000000..a929987831 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/enc/dvips/thai/c90.enc @@ -0,0 +1,334 @@ +%!PS-Adobe-3.0 Resource-Encoding +% @psencodingfile{ +% author = "See file c90.etx", +% version = "See file c90.etx", +% date = "generated 2005/07/04", +% filename = "c90.enc", +% email = "See file c90.etx", +% codetable = "ISO/ASCII", +% checksum = "", +% abstract = "This is a postscript encoding file, automatically generated by fontinst from c90.etx." +% } + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +% Created by: tex garuda +% Created using: \etxtoenc{c90}{c90} + +% This file should be installed somewhere that your DVI +% to postscript driver looks for files. It is needed for +% reencoding some font you have transformed. + +% After installing this file, you should add the following +% line (minus %) to your finstmsc.rc file: +% \declarepsencoding{c90}{C90Encoding}{\download{c90.enc}} + +%%BeginResource: encoding C90Encoding +/C90Encoding [ +% 0 +/Gamma +/Delta +/Theta +/Lambda +/Xi +/Pi +/Sigma +/Upsilon +% 8 +/Phi +/Psi +/Omega +/endash +/emdash +/quotesingle +/exclamdown +/questiondown +% 16 +/dotlessi +/quotedblleft +/grave +/acute +/caron +/breve +/macron +/ring +% 24 +/cedilla +/germandbls +/ae +/oe +/oslash +/AE +/OE +/Oslash +% 32 +/.notdef +/exclam +/quotedblright +/numbersign +/dollar +/percent +/ampersand +/quoteright +% 40 +/parenleft +/parenright +/asterisk +/plus +/comma +/hyphen +/period +/slash +% 48 +/zero +/one +/two +/three +/four +/five +/six +/seven +% 56 +/eight +/nine +/colon +/semicolon +/less +/equal +/greater +/question +% 64 +/at +/A +/B +/C +/D +/E +/F +/G +% 72 +/H +/I +/J +/K +/L +/M +/N +/O +% 80 +/P +/Q +/R +/S +/T +/U +/V +/W +% 88 +/X +/Y +/Z +/bracketleft +/backslash +/bracketright +/circumflex +/underscore +% 96 +/quoteleft +/a +/b +/c +/d +/e +/f +/g +% 104 +/h +/i +/j +/k +/l +/m +/n +/o +% 112 +/p +/q +/r +/s +/t +/u +/v +/w +% 120 +/x +/y +/z +/braceleft +/bar +/braceright +/tilde +/dieresis +% 128 +/uni0E38 +/uni0E39 +/uni0E3A +/uni0E48.low_left +/uni0E49.low_left +/uni0E4A.low_left +/uni0E4B.low_left +/uni0E4C.low_left +% 136 +/uni0E48.low +/uni0E49.low +/uni0E4A.low +/uni0E4B.low +/uni0E4C.low +/.notdef +/.notdef +/uni0E4D.left +% 144 +/uni0E0D.descless +/.notdef +/uni0E31.left +/uni0E47.left +/uni0E34.left +/uni0E35.left +/uni0E36.left +/uni0E37.left +% 152 +/uni0E48.left +/uni0E49.left +/uni0E4A.left +/uni0E4B.left +/uni0E4C.left +/.notdef +/.notdef +/uni0E10.descless +% 160 +/.notdef +/uni0E01 +/uni0E02 +/uni0E03 +/uni0E04 +/uni0E05 +/uni0E06 +/uni0E07 +% 168 +/uni0E08 +/uni0E09 +/uni0E0A +/uni0E0B +/uni0E0C +/uni0E0D +/uni0E0E +/uni0E0F +% 176 +/uni0E10 +/uni0E11 +/uni0E12 +/uni0E13 +/uni0E14 +/uni0E15 +/uni0E16 +/uni0E17 +% 184 +/uni0E18 +/uni0E19 +/uni0E1A +/uni0E1B +/uni0E1C +/uni0E1D +/uni0E1E +/uni0E1F +% 192 +/uni0E20 +/uni0E21 +/uni0E22 +/uni0E23 +/uni0E24 +/uni0E25 +/uni0E26 +/uni0E27 +% 200 +/uni0E28 +/uni0E29 +/uni0E2A +/uni0E2B +/uni0E2C +/uni0E2D +/uni0E2E +/uni0E2F +% 208 +/uni0E30 +/uni0E31 +/uni0E32 +/uni0E33 +/uni0E34 +/uni0E35 +/uni0E36 +/uni0E37 +% 216 +/uni0E38 +/uni0E39 +/uni0E3A +/.notdef +/.notdef +/.notdef +/.notdef +/uni0E3F +% 224 +/uni0E40 +/uni0E41 +/uni0E42 +/uni0E43 +/uni0E44 +/uni0E45 +/uni0E46 +/uni0E47 +% 232 +/uni0E48 +/uni0E49 +/uni0E4A +/uni0E4B +/uni0E4C +/uni0E4D +/uni0E4E +/uni0E4F +% 240 +/uni0E50 +/uni0E51 +/uni0E52 +/uni0E53 +/uni0E54 +/uni0E55 +/uni0E56 +/uni0E57 +% 248 +/uni0E58 +/uni0E59 +/uni0E5A +/uni0E5B +/uni0E38.low +/uni0E39.low +/uni0E3A.low +/.notdef +] def +%%EndResource + +% End of file c90.enc. diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/map/dvips/garuda-c90/garuda-c90.map b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/map/dvips/garuda-c90/garuda-c90.map new file mode 100644 index 0000000000..0c1af91bfe --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/map/dvips/garuda-c90/garuda-c90.map @@ -0,0 +1,4 @@ +fgdr8z Garuda " C90Encoding ReEncodeFont " <c90.enc <garuda.pfb +fgdb8z Garuda-Bold " C90Encoding ReEncodeFont " <c90.enc <garuda_b.pfb +fgdo8z Garuda-Oblique " C90Encoding ReEncodeFont " <c90.enc <garuda_o.pfb +fgdbo8z Garuda-BoldOblique " C90Encoding ReEncodeFont " <c90.enc <garuda_bo.pfb diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/map/dvips/norasi-c90/norasi-c90.map b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/map/dvips/norasi-c90/norasi-c90.map new file mode 100644 index 0000000000..6d6a7790fd --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/map/dvips/norasi-c90/norasi-c90.map @@ -0,0 +1,4 @@ +ftnr8z Norasi " C90Encoding ReEncodeFont " <c90.enc <norasi.pfb +ftnb8z Norasi-Bold " C90Encoding ReEncodeFont " <c90.enc <norasi_b.pfb +ftni8z Norasi-Italic " C90Encoding ReEncodeFont " <c90.enc <norasi_i.pfb +ftnbi8z Norasi-BoldItalic " C90Encoding ReEncodeFont " <c90.enc <norasi_bi.pfb diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdb8z.tfm b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdb8z.tfm Binary files differnew file mode 100644 index 0000000000..65f79a03d9 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdb8z.tfm diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdbo8z.tfm b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdbo8z.tfm Binary files differnew file mode 100644 index 0000000000..10f04c2013 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdbo8z.tfm diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdo8z.tfm b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdo8z.tfm Binary files differnew file mode 100644 index 0000000000..729bb4f89e --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdo8z.tfm diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdr8z.tfm b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdr8z.tfm Binary files differnew file mode 100644 index 0000000000..7e7ab8eb41 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdr8z.tfm diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnb8z.tfm b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnb8z.tfm Binary files differnew file mode 100644 index 0000000000..29f8047108 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnb8z.tfm diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnbi8z.tfm b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnbi8z.tfm Binary files differnew file mode 100644 index 0000000000..be784971fc --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnbi8z.tfm diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftni8z.tfm b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftni8z.tfm Binary files differnew file mode 100644 index 0000000000..202a7c5bbe --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftni8z.tfm diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnr8z.tfm b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnr8z.tfm Binary files differnew file mode 100644 index 0000000000..866eac16ba --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnr8z.tfm diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/INSTALL b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/INSTALL new file mode 100644 index 0000000000..21e0236826 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/INSTALL @@ -0,0 +1,333 @@ +Installation of Thai fonts for TeX with fontinst +------------------------------------------------ + +0. The files `c90.etx' and `c90.mtx' must be in the TEXINPUTS path. + Normally, the current directory also works. Note that you need + fontinst version 1.918 or higher. + +1. In case your Thai font doesn't come with an AFM metrics file you + must extract it from the font using tools like `type1afm' (from the + t1lib package) or ghostscript's `ps2afm' program. + +2. Create a control file for fontinst. + + Example: + + Let us assume that we have the following AFM files for the Garuda + family, using version 0.5 of the `fonts-tlwg' project: + + garuda.afm + garuda_b.afm + garuda_o.afm + garuda_bo.afm + + You should use glyph names compliant to Karl Berry's `fontname' + scheme. For `garuda', this could be `fgdr8z': `f' is the foundry + (`small foundry'), `gd' is the typeface name, `r' means the + weight (`regular'), and `8z' the encoding (`8bit user'). + Similarly, suitable names for the other fonts are `fgdb8z', + `fgdo8z', and `fgdbo8z', respectively. + + Fonts with `f' as the supplier should go into a `public' font + directory. The typeface `Garuda' already exists in the latest + fontname version (typeface.map version 4-Jul-2005 at the time of + writing), the associated directory is `garuda'. Please consult + the `fontname' standard for more information. + + A template for the fontinst control file can be found as + `garuda-c90.fontinst' which looks like the following. + + ==== garuda-c90.fontinst ==== + + \input fontinst.sty + + \needsfontinstversion{1.918} + + + % we explicitly set all slots in the encoding, so provide all + % glyph names in AFM files equally (this is, don't create + % `<glyph>-not' names) + \let\setnotglyph \setrawglyph + + % we want warnings for missing glyphs + \fontinstcc + \add_to\pre_fourth_etx_pass_hook{ + \def\do_slot{ + \if_undefined{g-\slot_name}\then + \fontinstwarningnoline{fontinst} + {missing~glyph~`\slot_name'\space + for~slot~\the\slot_number\space + in~font~`\out_filename'} + \fi + \do_character + } + } + \normalcc + + + % create PL files and an FD file + \installfonts + \setint{fontdimen(2)}{500} % SPACE + \setint{fontdimen(3)}{300} % STRETCH + \setint{fontdimen(4)}{100} % SHRINK + \setint{fontdimen(6)}{1000} % QUAD + \setint{fontdimen(7)}{0} % EXTRASPACE + + \installrawfont{fdbr8z}{garuda,c90}{c90} + {C90}{garuda}{m}{n}{} + \installrawfont{fdbb8z}{garuda_b,c90}{c90} + {C90}{garuda}{bx}{n}{} + \installrawfont{fdbbo8z}{garuda_bo,c90}{c90} + {C90}{garuda}{bx}{sl}{} + \installrawfont{fdbo8z}{garuda_o,c90}{c90} + {C90}{garuda}{m}{sl}{} + \endinstallfonts + + + \input finstmsc.sty + + + % create the c90.enc file + \installfonts + % the `makeenc' flag is used in c90.etx + \setint{makeenc}{1} + \setstr{encodingname}{C90Encoding} + \etxtoenc{c90}{c90} + \endinstallfonts + + \end + + ==== garuda-c90.fontinst ==== + + Some explanations. + + - The control files also create MTX and PL files for the AFM + files (e.g., garuda.mtx and garuda.pl) which aren't needed and + can be deleted. + + - AFM files don't provide all necessary font dimensions for TeX. + Consequently, you have to set some dimensions manually. The + `SPACE' value must be larger than for a Latin font; a + reasonable value is 500. You should increase the `STRETCH' + value also -- some tests have shown that 300 yields good + results, but this depends on the font. `EXTRASPACE' can be set + to zero since you must always use TeX's \frenchspacing command + for Thai. All other font dimension values given above are + default values and can stay unmodified. + + There is nothing for free: The changed font dimensions improve + spacing between Thai words, but Latin words are far too widely + spaced. + + - The arguments to \installrawfont are as follows. + + #1 The target font name. + #2 A comma separated list (without spaces) of metric + files. Above, the first one is the AFM file, the + second one is c90.mtx which sets up the three mandatory + alias glyph slots. + #3 The name of the encoding file (c90.etx). + #4-#7 The NFSS attributes for the font. + #8 The size command. If it is empty, `<->' is used. + + - The second \installfonts...\endinstallfonts block creates an + encoding file. + +3. Run fontinst: + + tex garuda-c90.fontinst + + If you get warnings about missing glyphs which are critical (this + is, if they affect Thai characters), you have to configure fontinst + to use an alias file for glyph names. This is described below. + +4. Say + + pltotf <PL-file> + + for all target PL files to create TFM files. + + Example: + + pltotf fgdr8z + pltotf fgdb8z + pltotf fgdo8z + pltotf fgdbo8z + + After the conversion, the PL files are no longer needed and can be + deleted. As mentioned above, the PL files created directly from the + AFM files need not be converted. + +5. Create a mapping file <font>.map for the PS fonts (which can be + used by both dvips and pdftex). + + Example `garuda-c90.map' (the lines are split for readability only): + + fgdr8z Garuda \ + " C90Encoding ReEncodeFont " <c90.enc <garuda.pfb + fgdb8z Garuda-Bold \ + " C90Encoding ReEncodeFont " <c90.enc <garuda_b.pfb + fgdo8z Garuda-Oblique \ + " C90Encoding ReEncodeFont " <c90.enc <garuda_o.pfb + fgdbo8z Garuda-BoldOblique \ + " C90Encoding ReEncodeFont " <c90.enc <garuda_bo.pfb + + A proper entry for the mapping file (dvipdfm.map) of dvipdfm (and + dvipdfmx) looks like this: + + fgdr8z c90 garuda + fgdb8z c90 garuda_b + fgdo8z c90 garuda_o + fgdbo8z c90 garuda_bo + + Note that teTeX's (and TeXLive's) `updmap' script can automatically + convert a map line for dvips to a proper entry for dvipdfm and + dvipdfmx. + +6. There are two possibilities how to make the Thai fonts known to + dvips. + + - Append the contents of the map file to `psfonts.map' (or the map + file specified in the configuration file of dvips, `config.ps', + with the `p' option). How to do this may vary depending on the + used TeX system; for example, teTeX and TeXLive both use a script + called `updmap' to maintain `psfonts.map'. + + - Write a small file called config.<font> (e.g. `config.garuda-c90') + with the following line in it: + + p +<map_file> + + Example: + + p +garuda-c90.map + + Then you can use the `-P' command line option of dvips to include + the reencoded font. Example: + + dvips -P garuda-c90 test.dvi + +7. After testing, install the font and its support files in your TeX + tree. In the following example, `TEXMF' denotes the location of + your (local) `texmf' directory (we assume a TeX installation + compliant to TDS 1.1 as provided recent versions of TeXLive and + teTeX). + + garuda.pfb -> TEXMF/fonts/type1/public/garuda/ + garuda.afm -> TEXMF/fonts/afm/public/garuda/ + ... + + c90.enc -> TEXMF/fonts/enc/dvips/thai/ + + garuda.map -> TEXMF/fonts/map/dvips/garuda-c90/ + config.garuda -> TEXMF/dvips/garuda-c90/ + + fgdr8z.tfm -> TEXMF/fonts/tfm/public/garuda-c90/ + ... + + c90gar.fd -> TEXMF/tex/latex/CJK/thai/ + +8. Run texhash or a similar program to update the TDS database if + necessary. + + +You are done! With plain TeX, say e.g. + + \font\thai = fgdr9z at 16pt + +to use the font \thai. This will typeset TIS-620 encoded Thai. Note, +however, that you need CJK's cjk-enc.el for Emacs to insert proper +inter-character glue and word breakpoints in case you want to typeset +longer Thai phrases. + + +Reencoding Thai fonts +--------------------- + +Older Thai fonts don't use proper glyph names, and recent ones +probably use different suffixes; it is thus necessary to make fontinst +aware of those names. + +A complete example can be found in the `dbtt-old' subdirectory (which +can be used for the dbtt fonts from TeXLive 8 or earlier). + +a. Set up a file which contains all the aliases, using the \galias + macro. This file should have the extension `.tex'. + + Example: + + If glyph `endash' is represented with glyph name `ucircumflex' in + the font, use the following: + + \galias{ucircumflex}{endash} + +b. Set up both ETX and MTX files which load the just created glyph + alias file. To do that, use the files `dbtt-old-alias.etx' and + `dbtt-old-alias.mtx' as templates. Leave everything unchanged + except the line with \input which should load your glyph alias + file. + +c. Set up a proper fontinst control file. Use `dbtt-old.fontinst' as + a template, replacing the `dbtt-old-alias' items in the + \installrawfont lines with the name of your MTX file. Similarly, + the three last lines in the second \installfonts...\endinstallfonts + block should be adjusted accordingly. + +d. Continue with item 3 above. Note that in item 5, you have to use + not `C90Encoding' but the encoding name defined with the \setstr + line in your fontinst control file. + + +Using different LaTeX encodings for Thai +---------------------------------------- + +The used encoding scheme within the CJK package for Thai is `C90', but +it is straightforward to adapt it to other Thai encodings like `LTH' +by reordering the `\setslot ... \endsetslot' blocks in the file +`c90.etx'. + +Currently, only CJK's cjk-enc.el output filter for Emacs needs the +Thai ligatures -- other Thai word segmentation programs like `swath' +or `cttex' already replace the input characters with proper glyph +variants. Anyway, they don't harm, and it is on the TODO list of the +thailatex maintainers to finally use those ligatures also. + + +Printing c90.etx +---------------- + +It is possible to convert the main fontinst encoding file for Thai, +c90.etx, into a printable document. To do so, you have to apply the +patch below to the file `fontdoc.sty' (which is part of the fontinst +package -- tested with fontinst version 1.926; newer versions have +already been corrected and don't need this patch), then simply say + + latex c90.etx + + +==================================================================== + + +--- fontdoc.sty.old Mon Feb 9 21:28:59 2004 ++++ fontdoc.sty Wed Jun 23 12:13:04 2004 +@@ -1052,7 +1052,7 @@ + \x@cs\def{FD@lig-/LIG}#1#2{% + \FD@typeset@string{\slot@name}${}*{}$\typeset@glyph{#1}% + ${}\rightarrow{}$% +- \FD@typeset@string{\slot@name}${}*{}$\typeset@glyph{#2}$% ++ \FD@typeset@string{\slot@name}${}*{}$\typeset@glyph{#2}% + } + \x@cs\def{FD@lig-LIG/}#1#2{% + \FD@typeset@string{\slot@name}${}*{}$\typeset@glyph{#1}% +@@ -1085,7 +1085,7 @@ + \FD@typeset@string{\slot@name}${}*{}$\typeset@glyph{#1}% + ${}\rightarrow{}$% + \FD@typeset@string{\slot@name}${}*{}$% +- \typeset@glyph{#2}${}*\lfloor$\typeset@glyph{#1}$} ++ \typeset@glyph{#2}${}*\lfloor$\typeset@glyph{#1}} + \def\nextlarger#1{\Bheading{Next larger} \typeset@glyph{#1}} + \def\makerightboundary#1{% + \Bheading{Right boundary marker slot} designation \typeset@glyph{#1}% + + +---End of INSTALL--- diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/c90.etx b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/c90.etx new file mode 100644 index 0000000000..db68bd43d7 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/c90.etx @@ -0,0 +1,2346 @@ +% c90.etx + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\relax +\documentclass{article} + +\usepackage[specification]{fontdoc}[2001/06/01] +\usepackage{textcomp} +\usepackage{shortvrb} +\usepackage{mflogo} +\usepackage{multicol} +\usepackage{url} + +\MakeShortVerb{\|} + +\newlength{\Stackwidth} + +\newcommand\StackAbove[2]{% + \settowidth{\Stackwidth}{$#1$}% + \vbox{\hbox{$#1$}% + \hbox to \Stackwidth{\hss $#2$\hss}}% +} +\newcommand\StackBelow[2]{% + \settowidth{\Stackwidth}{$#1$}% + \vtop{\hbox{$#1$}% + \hbox to \Stackwidth{\hss $#2$\hss}}% +} + +\newcommand{\thaiclass}[1]{% + {\textit{#1}}% +} +\newcommand{\thaiclassx}[2]{% + \thaiclass{#1}% + \raisebox{-0.4ex}{{\footnotesize\textit{#2}}}% +} +\newcommand{\thaiclassxx}[3]{% + \thaiclassx{#1}{#2}% + \raisebox{-0.8ex}{{\tiny\textit{#3}}}% +} + + +\begin{document} + +\title{The \texttt{C90} encoding for Thai} +\author{Werner Lemberg} +\date{2005/07/04} +\maketitle + + +\section{Introduction} + +This file describes a font encoding for Thai, as presented in a +TUGboat article~\cite{TUG-Thai}. The glyph names follow the Adobe +Glyph List (AGL)~\cite{AGL} recommendations. Since most available +Thai fonts neither use AGL glyph names nor follow the font encoding +used here, you have to be careful in setting up a proper encoding +vector. A specialty (for reasons explained below) is that three +glyphs, namely |/uni0E38| (Thai character `sara u'), |/uni0E39| (Thai +character `sara uu'), and |/uni0E3A| (Thai character `phinthu') must +appear twice in the encoding; the additional glyph indices are |0x80|, +|0x81|, and |0x82|, respectively. + + +\section{Ligatures} +The tricky part is implementing the ligatures. TeX's ligature +mechanism only provides contextual patterns of length~2. Due to the +very nature of the ETX format, ligatures aren't grouped into classes +which makes this file rather long. + +Thai glyphs can be grouped functionally into base glyphs (which are +spacing glyphs) and diacritics (which have zero advance width). +Usually, diacritical glyphs represent either vowels or tone +indicators, whereas base glyphs represent consonants -- I won't go +into detail here; please read the Unicode standard~\cite{Unicode} or +any introduction into the Thai script for more information. + +The general composing rules are as follows: + +\[ + CV \longrightarrow \StackAbove{V}{C}\,,\quad + CT \longrightarrow \StackAbove{T}{C}\,,\quad + CVT \longrightarrow \StackAbove{\StackAbove{T}{V}}{C}\,,\quad + Cv \longrightarrow \StackBelow{C}{v}\,,\quad + CvT \longrightarrow \StackBelow{\StackAbove{T}{C}}{v} +\] + +\noindent +where $C$ represents a base consonant, $V$ an upper vowel, $v$ a lower +vowel, and $T$ a tone mark. The tone mark always comes last. + +Sometimes you will find documents which have first the tone mark and +then the vowel. In real Thai input systems, this error will be +catched and fixed by reordering the characters according to the +TIS-620 Thai encoding standard before any output is created. The +ligatures given below are not able to handle such incorrect data, and +you have to normalize it before using them. + +It depends on context where the diacritics are exactly positioned; +some base glyphs have overlong ascenders or descenders, making it +necessary to shift the diacritics vertically and horizontally. + +To complicate things, the Thai vowel `sara am' (TIS-620 code point +|0xD3|, Unicode value |U+0E33|), which looks like the final nasal sign +`nikhahit' (|0xED|, |U+0E4D|) followed by the vowel `sara aa' (|0xD2|, +|U+0E32|), will be decomposed into these two glyphs for rendering. +The difficulty is that we must position the tone mark of the +\emph{previous} character properly! Thus we have + +\[ + C + SM \longrightarrow \StackAbove{N}{C} + SA\,,\quad + C + T + SM \longrightarrow \StackAbove{\StackAbove{T}{N}}{C} + SA +\] + +A last specialty (used for Sanskrit written in Thai) is that `sara aa' +if it follows the independent vowel letter `ru' (|0xC4|, |U+0E24|) or +`lu' (|0xC6|, |U+0E26|) is replaced with the `lakkhangyao' sign +(|0xE5|, |U+0E45|). + + +\section{Glyph Classes} + +To describe the patterns and rules we start with defining glyph +classes. + +\begin{quote} + \begin{description} + \item[\thaiclassx{base}{normal}] Normal base glyphs without special + features. + \item[\thaiclassx{base}{desc}] Base glyphs with descender. + \item[\thaiclassx{base}{desclike}] These base glyphs consist of two + elements which look like a normal base glyph combined with a lower + vowel diacritic; the diacritic-like element will be omitted if + combined with a lower vowel. + \item[\thaiclassx{base}{asc}] Base glyphs with an ascender on the + right side. + \item[\thaiclassx{base}{indic}] The two independent vowels \emph{ru} + and \emph{lu}. + \item[\thaiclassx{base}{sign}] The sign \emph{lakkhangyao}. + \item[\thaiclassx{base}{sara am}] The vowel \emph{sara am}. + \item[\thaiclassx{base}{sara aa}] The vowel \emph{sara aa}. + \item[\thaiclass{lower}] Lower vowel diacritics. + \item[\thaiclassx{upper}{vowel}] Upper vowel diacritics. + \item[\thaiclassx{upper}{sign}] The \emph{nikhahit} final nasal + sign. + \item[\thaiclass{top}] Tone marks. + \end{description} +\end{quote} + +Here the glyph variant classes: + +\begin{quote} + \begin{description} + \item[\thaiclassx{base}{descless}] The glyphs of class + \thaiclassx{base}{desclike} without the lower part. + \item[\thaiclassx{lower}{low}] The glyphs of class + \thaiclass{lower} shifted downwards. + \item[\thaiclassxx{upper}{vowel}{left}] The glyphs of class + \thaiclassx{upper}{vowel} shifted to the left. + \item[\thaiclassxx{upper}{sign}{left}] The glyphs of class + \thaiclassx{upper}{sign} shifted to the left. + \item[\thaiclassx{top}{left}] The glyphs of class + \thaiclass{top} shifted to the left. + \item[\thaiclassx{top}{low}] The glyphs of class + \thaiclass{top} shifted downwards. + \item[\thaiclassx{top}{low-left}] The glyphs of class + \thaiclass{top} shifted to the left and downwards. + \end{description} +\end{quote} + + +\section{Context Patterns} + +Using the glyph classes defined in the last section it is easy to +describe the context patterns for base glyphs with diacritical signs. +Surprisingly, these patterns are quite systematic. Patterns in +table~\ref{table:context-dia} which are marked with an asterisk do +nothing and are listed for completeness only. Note that these +patterns cover combinations which don't happen in the Thai script +(which doesn't harm). + +\begin{table*} + \centering + \def\arraystretch{1.3} + \begin{tabular} + {l@{~}l@{~}l@{~}l@{\hbox{~\textrightarrow~}}l@{~}l@{~}l@{~}l@{~}l} + \thaiclass{base} &\thaiclass{lower} + & & + &\thaiclass{base} &\thaiclass{lower} + & & &* \\ + \thaiclass{base} & + &\thaiclass{upper} & + &\thaiclass{base} & + &\thaiclass{upper} & &* \\ + \thaiclass{base} & + & &\thaiclass{top} + &\thaiclass{base} & + & &\thaiclassx{top}{low} & \\ + \thaiclass{base} &\thaiclass{lower} + & &\thaiclass{top} + &\thaiclass{base} &\thaiclass{lower} + & &\thaiclassx{top}{low} & \\ + \thaiclass{base} & + &\thaiclass{upper} &\thaiclass{top} + &\thaiclass{base} & + &\thaiclass{upper} &\thaiclass{top} &* \\[2ex] + + \thaiclassx{base}{desc} &\thaiclass{lower} + & & + &\thaiclassx{base}{desc} &\thaiclassx{lower}{low} + & & & \\ + \thaiclassx{base}{desc} & + &\thaiclass{upper} & + &\thaiclassx{base}{desc} & + &\thaiclass{upper} & &* \\ + \thaiclassx{base}{desc} & + & &\thaiclass{top} + &\thaiclassx{base}{desc} & + & &\thaiclassx{top}{low} & \\ + \thaiclassx{base}{desc} &\thaiclass{lower} + & &\thaiclass{top} + &\thaiclassx{base}{desc} &\thaiclassx{lower}{low} + & &\thaiclassx{top}{low} & \\ + \thaiclassx{base}{desc} & + &\thaiclass{upper} &\thaiclass{top} + &\thaiclassx{base}{desc} & + &\thaiclass{upper} &\thaiclass{top} &* \\[2ex] + + \thaiclassx{base}{desclike} &\thaiclass{lower} + & & + &\thaiclassx{base}{descless} & + & & & \\ + \thaiclassx{base}{desclike} & + &\thaiclass{upper} & + &\thaiclassx{base}{desclike} & + &\thaiclass{upper} & &* \\ + \thaiclassx{base}{desclike} & + & &\thaiclass{top} + &\thaiclassx{base}{desclike} & + & &\thaiclassx{top}{low} & \\ + \thaiclassx{base}{desclike} &\thaiclass{lower} + & &\thaiclass{top} + &\thaiclassx{base}{descless} &\thaiclass{lower} + & &\thaiclassx{top}{low} & \\ + \thaiclassx{base}{desclike} & + &\thaiclass{upper} &\thaiclass{top} + &\thaiclassx{base}{desclike} & + &\thaiclass{upper} &\thaiclass{top} &* \\[2ex] + + \thaiclassx{base}{asc} &\thaiclass{lower} + & & + &\thaiclassx{base}{asc} &\thaiclass{lower} + & & &* \\ + \thaiclassx{base}{asc} & + &\thaiclass{upper} & + &\thaiclassx{base}{asc} & + &\thaiclassx{upper}{left} & & \\ + \thaiclassx{base}{asc} & + & &\thaiclass{top} + &\thaiclassx{base}{asc} & + & &\thaiclassx{top}{low-left} & \\ + \thaiclassx{base}{asc} &\thaiclass{lower} + & &\thaiclass{top} + &\thaiclassx{base}{asc} &\thaiclass{lower} + & &\thaiclassx{top}{low-left} & \\ + \thaiclassx{base}{asc} & + &\thaiclass{upper} &\thaiclass{top} + &\thaiclassx{base}{asc} & + &\thaiclassx{upper}{left} &\thaiclassx{top}{left} & \\ + \end{tabular} + + \caption{Context patterns for diacritical signs. Here, + \thaiclass{base} refers to the union of the subclasses + \thaiclass{normal}, \thaiclass{indic}, \thaiclass{sign}, + \thaiclass{sara am}, and \thaiclass{sara aa} of \thaiclass{base}; + \thaiclass{upper} is the union of the subclasses \thaiclass{vowel} + and \thaiclass{sign} of \thaiclass{upper}.} + \label{table:context-dia} +\end{table*} + +Table~\ref{table:context-sara} covers the ligatures of the character +\emph{sara am}. Finally, table~\ref{table:context-indic} describes +the letters specific to Sanskrit. + +\begin{table*} + \centering + \def\arraystretch{1.3} + \begin{tabular}{l@{~}l@{~}l@{\hbox{~\textrightarrow~}}l@{~}l@{~}l@{~}l} + \thaiclass{base} &\thaiclassx{base}{sara am} & + &\thaiclass{base} &\thaiclassx{upper}{sign} + & &\thaiclassx{base}{sara aa} \\ + \thaiclassx{base}{asc} &\thaiclassx{base}{sara am} & + &\thaiclassx{base}{asc} &\thaiclassxx{upper}{sign}{left} + & &\thaiclassx{base}{sara aa} \\[2ex] + + \thaiclass{base} &\thaiclass{top} &\thaiclassx{base}{sara am} + &\thaiclass{base} &\thaiclassx{upper}{sign} + &\thaiclass{top} &\thaiclassx{base}{sara aa} \\ + \thaiclassx{base}{asc} &\thaiclass{top} &\thaiclassx{base}{sara + am} + &\thaiclassx{base}{asc} &\thaiclassxx{upper}{sign}{left} + &\thaiclassx{top}{left} &\thaiclassx{base}{sara aa} + \end{tabular} + \caption{Context patterns for \emph{sara am}. Here, + \thaiclass{base} denotes the union of subclasses + \thaiclass{normal}, \thaiclass{desc}, and \thaiclass{desclike} of + \thaiclass{base}.} + \label{table:context-sara} +\end{table*} + +\begin{table*} + \centering + \def\arraystretch{1.3} + \begin{tabular}{l@{~}l@{\hbox{~\textrightarrow~}}l@{~}l} + \thaiclassx{base}{indic} &\thaiclassx{base}{sara aa} + &\thaiclassx{base}{indic} &\thaiclassx{base}{sign} + \end{tabular} + \caption{Context patterns for \emph{ru} and \emph{lu}.} + \label{table:context-indic} +\end{table*} + +\section{\TeX's Ligature Mechanism} + +\DeleteShortVerb{\|} + +A small introduction into the exotic variants of \TeX's ligature +mechanism which probably many users haven't seen before. +Additionally, the documentation in the \emph{\MF book}~\cite{MFbook} +is very sparse. In the following examples \MF's notation is used. + +The usual ligature action of two glyphs $a$ and~$b$ is the replacement +of both glyphs with another glyph~$c$. + +\begin{center} + \texttt{a b =:\ c} +\end{center} + +Another possibility is to retain the left or the right original glyph +(before and after the ligature, respectively) or both. + +\begin{center} + \texttt{a b |=:\ c} \quad + \texttt{a b =:| c} \quad + \texttt{a b |=:| c} +\end{center} + +\noindent +The first rule creates $ac$, the second $cb$, and the last $acb$. In +all three cases, the current point after appying the ligature rule is +still at the first glyph of the replaced glyphs, and \TeX\ simply +restarts there to check ligatures (and kernings). A classical example +is + +\begin{center} + f f i \textrightarrow\ ff i \textrightarrow\ ffi +\end{center} + +To advance the current point to the right, append either \texttt{>} or +\texttt{>{}>} (the latter is only possible if you retain both input +glyphs). Here are the remaining four ligature rules. + +\begin{center} + \texttt{a b |=:> c} \quad + \texttt{a b =:|> c} \\ + \texttt{a b |=:|> c} \quad + \texttt{a b |=:|>{}> c} +\end{center} + +For Thai ligatures, the most often needed rule is \texttt{|=:}\ (i.e., +retain the left glyph and stay at the same position before applying +the next ligature rule). Note that using \texttt{|=:>} instead is not +a good idea since this would prohibit kerning between the left glyph +and the ligature. + +\section{Ligature Rules} + +\MakeShortVerb{\|} + +As just explained, \TeX\ can only handle context patterns of length~2, +whereas Thai needs patterns of length~3. It was an interesting +challenge to find out whether the problem can be solved with \TeX's +somewhat restricted ligature rules -- the gentle reader is invited to +find a solution by herself! There won't be any difficulties in +understanding ligatures afterwards. + +The tables~\ref{table:liga-dia}, \ref{table:liga-sara}, +and~\ref{table:liga-indic} use the same conventions as +tables~\ref{table:context-dia}, \ref{table:context-sara}, +and~\ref{table:context-indic}, respectively. The current point isn't +increased in any of the rules. + +\begin{table*} + \centering + \def\arraystretch{1.3} + \begin{tabular}{l@{~}l@{\hbox{~\textrightarrow~}}l@{~}l} + \thaiclass{base} &\thaiclass{top} + &\thaiclass{base} &\thaiclassx{top}{low} \\ + \thaiclassx{base}{desc} &\thaiclass{lower} + &\thaiclassx{base}{desc} &\thaiclassx{lower}{low} \\ + \thaiclassx{base}{desc} &\thaiclass{top} + &\thaiclassx{base}{desc} &\thaiclassx{top}{low} \\ + \thaiclassx{base}{desclike} &\thaiclass{lower} + &\thaiclassx{base}{descless} &\thaiclass{lower} \\ + \thaiclassx{base}{desclike} &\thaiclass{top} + &\thaiclassx{base}{desclike} &\thaiclassx{top}{low} \\ + \thaiclassx{base}{asc} &\thaiclass{lower} + &\thaiclassx{base}{asc} &\thaiclassx{lower}{left} \\ + \thaiclassx{base}{asc} &\thaiclass{upper} + &\thaiclassx{base}{asc} &\thaiclassx{upper}{left} \\ + \thaiclassx{base}{asc} &\thaiclass{top} + &\thaiclassx{base}{asc} &\thaiclassx{top}{low-left} \\[2ex] + + \thaiclass{lower} &\thaiclass{top} + &\thaiclass{lower} &\thaiclassx{top}{low} \\ + \thaiclassx{lower}{low} &\thaiclass{top} + &\thaiclassx{lower}{low} &\thaiclassx{top}{low} \\[2ex] + + \thaiclassx{upper}{left} &\thaiclass{top} + &\thaiclassx{upper}{left} &\thaiclassx{top}{left} \\[2ex] + + \thaiclassx{lower}{left} &\thaiclass{top} + &\thaiclassx{lower}{left} &\thaiclassx{top}{low-left} \\ + \end{tabular} + + \caption{Ligature rules for diacritical marks.} + \label{table:liga-dia} +\end{table*} + +\begin{table*} + \centering + \def\arraystretch{1.3} + \begin{tabular}{l@{~}l@{\hbox{~\textrightarrow~}}l@{~}l@{~}l} + \thaiclass{base} &\thaiclassx{base}{sara am} + &\thaiclass{base} &\thaiclassx{upper}{sign} + &\thaiclassx{base}{sara am} \\ + \thaiclassx{base}{asc} &\thaiclassx{base}{sara am} + &\thaiclassx{base}{asc} &\thaiclassxx{upper}{sign}{left} + &\thaiclassx{base}{sara am} \\[2ex] + + \thaiclassx{upper}{sign} &\thaiclassx{base}{sara am} + &\thaiclassx{upper}{sign} &\thaiclassx{base}{sara aa} + & \\ + \thaiclassxx{upper}{sign}{left} &\thaiclassx{base}{sara am} + &\thaiclassxx{upper}{sign}{left} &\thaiclassx{base}{sara aa} + & \\[2ex] + + \thaiclassx{top}{low} &\thaiclassx{base}{sara am} + &\thaiclassx{top}{low} &\thaiclass{top} + &\thaiclassx{base}{sara am} \\ + \thaiclassx{top}{low} &\thaiclass{top} + &\thaiclassx{upper}{sign} &\thaiclass{top} + & \\ + \thaiclass{top} &\thaiclassx{base}{sara am} + &\thaiclass{top} &\thaiclassx{base}{sara aa} + & \\[2ex] + + \thaiclassx{top}{low-left} &\thaiclassx{base}{sara am} + &\thaiclassx{top}{low-left} &\thaiclassx{top}{left} + &\thaiclassx{base}{sara am} \\ + \thaiclassx{top}{low-left} &\thaiclassx{top}{left} + &\thaiclassxx{upper}{sign}{left} &\thaiclassx{top}{left} + & \\ + \thaiclassx{top}{left} &\thaiclassx{base}{sara am} + &\thaiclassx{top}{left} &\thaiclassx{base}{sara aa} \\ + \end{tabular} + + \caption{Ligature rules for \emph{sara am}.} + \label{table:liga-sara} +\end{table*} + +\begin{table*} + \centering + \def\arraystretch{1.3} + \begin{tabular}{l@{~}l@{\hbox{~\textrightarrow~}}l@{~}l} + \thaiclassx{base}{indic} &\thaiclassx{base}{sara aa} + &\thaiclassx{base}{indic} &\thaiclassx{base}{sign} + \end{tabular} + \caption{Ligature rule for \emph{ru} and \emph{lu}.} + \label{table:liga-indic} +\end{table*} + +Most of the ligature rules can be derived easily by handling the +patterns sequentially (quite similar to logic puzzles found in various +magazines), but at the end there remain two patterns which apparently +contradict. + +\setlength{\tabcolsep}{3pt} + +\begin{center} + \begin{tabular}{l@{~}l@{~}l@{\hbox{~\textrightarrow~}}l@{~}l@{~}l} + \thaiclass{base} &\thaiclass{lower} &\thaiclass{top} + &\thaiclass{base} &\thaiclass{lower} + &\thaiclassx{top}{low} \\ + \thaiclassx{base}{asc} &\thaiclass{lower} &\thaiclass{top} + &\thaiclassx{base}{asc} &\thaiclass{lower} + &\thaiclassx{top}{low-left} \\ + \end{tabular} +\end{center} + +After applying ligature rules for the first two glyph classes it is +necessary to handle the context `\thaiclass{lower} \thaiclass{top}', +but depending on the previous glyph class \thaiclass{top} must be +replaced with \thaiclassx{top}{left} and \thaiclassx{top}{low-left}, +respectively. With a context pattern length of~3 this would be easy +to solve, but \TeX\ doesn't have this feature. What to do? + +The context `\thaiclass{base} \thaiclass{lower} \thaiclass{top}' must +be distinguished from `\thaiclassx{base}{asc} \thaiclass{lower} +\thaiclass{top}', i.e., two different \thaiclass{lower} classes are +needed depending on the previous character since \TeX\ is not able to +forward information from one ligature cycle to the next. The idea is +now to create an `alias class', a class which behaves identically to +the original one. The glyphs in this alias class are the same, but +different glyph indices and glyph names are assigned to it. A +closer look to table~\ref{table:liga-dia} shows that +\thaiclassx{lower}{left} isn't a typo but the alias class of +\thaiclass{lower}. + + +\section{The Implementation} + +After solving the problem theoretically now the practical +implementation. All glyph names follow the \emph{Adobe Glyph List + (AGL)}~\cite{AGL}. There are no predefined Adobe glyph names for +Thai, so the prefix `uni' with attached Unicode value will be used for +all glyphs which are encoded in Unicode. Glyph variants are +identified by an arbitrarily chosen postfix. + +Here the real glyph names for the various classes. Hexadecimal values +in parentheses after the glyph name give the glyph indices in the +encoding vector. + +\vspace{1ex} +\multicolsep 1ex + +\begin{multicols}{2}[\thaiclassx{base}{normal}:] + \begin{quote} + |uni0E01| (|0xA1|)\\ + |uni0E02| (|0xA2|)\\ + |uni0E03| (|0xA3|)\\ + |uni0E04| (|0xA4|)\\ + |uni0E05| (|0xA5|)\\ + |uni0E06| (|0xA6|)\\ + |uni0E07| (|0xA7|)\\ + |uni0E08| (|0xA8|)\\ + |uni0E09| (|0xA9|)\\ + |uni0E0A| (|0xAA|)\\ + |uni0E0B| (|0xAB|)\\ + |uni0E0C| (|0xAC|)\\ + |uni0E11| (|0xB1|)\\ + |uni0E12| (|0xB2|)\\ + |uni0E13| (|0xB3|)\\ + |uni0E14| (|0xB4|)\\ + |uni0E15| (|0xB5|)\\ + |uni0E16| (|0xB6|)\\ + |uni0E17| (|0xB7|)\\ + |uni0E18| (|0xB8|)\\ + |uni0E19| (|0xB9|)\\ + |uni0E1A| (|0xBA|)\\ + |uni0E1C| (|0xBC|)\\ + |uni0E1E| (|0xBE|)\\ + |uni0E20| (|0xC0|)\\ + |uni0E21| (|0xC1|)\\ + |uni0E22| (|0xC2|)\\ + |uni0E23| (|0xC3|)\\ + |uni0E25| (|0xC5|)\\ + |uni0E27| (|0xC7|)\\ + |uni0E28| (|0xC8|)\\ + |uni0E29| (|0xC9|)\\ + |uni0E2A| (|0xCA|)\\ + |uni0E2B| (|0xCB|)\\ + |uni0E2D| (|0xCD|)\\ + |uni0E2E| (|0xCE|)\\ + |uni0E2F| (|0xCF|)\\ + |uni0E30| (|0xD0|)\\ + |uni0E40| (|0xE0|)\\ + |uni0E41| (|0xE1|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclassx{base}{desc}:] + \begin{quote} + |uni0E0E| (|0xAE|)\\ + |uni0E0F| (|0xAF|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclassx{base}{desclike}:] + \begin{quote} + |uni0E0D| (|0xAD|)\\ + |uni0E10| (|0xB0|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclassx{base}{indic}:] + \begin{quote} + |uni0E24| (|0xC4|)\\ + |uni0E26| (|0xC6|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclassx{base}{sign}:] + \begin{quote} + |uni0E45| (|0xE5|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclassx{base}{asc}:] + \begin{quote} + |uni0E1B| (|0xBB|)\\ + |uni0E1D| (|0xBD|)\\ + |uni0E1F| (|0xBF|)\\ + |uni0E2C| (|0xCC|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclassx{base}{sara am}:] + \begin{quote} + |uni0E33| (|0xD3|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclassx{base}{sara aa}:] + \begin{quote} + |uni0E32| (|0xD2|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclassx{base}{descless}:] + \begin{quote} + |uni0E0D.descless| (|0x90|)\\ + |uni0E10.descless| (|0x9F|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclass{lower}:] + \begin{quote} + |uni0E38| (|0xD8|)\\ + |uni0E39| (|0xD9|)\\ + |uni0E3A| (|0xDA|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclassx{lower}{left}:] + \begin{quote} + |uni0E38.left| (|0x80|)\\ + |uni0E39.left| (|0x81|)\\ + |uni0E3A.left| (|0x82|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclassx{lower}{low}:] + \begin{quote} + |uni0E38.low| (|0xFC|)\\ + |uni0E39.low| (|0xFD|)\\ + |uni0E3A.low| (|0xFE|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclassx{upper}{vowel}:] + \begin{quote} + |uni0E31| (|0xD1|)\\ + |uni0E34| (|0xD4|)\\ + |uni0E35| (|0xD5|)\\ + |uni0E36| (|0xD6|)\\ + |uni0E37| (|0xD7|)\\ + |uni0E47| (|0xE7|)\\ + |uni0E4D| (|0xED|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclassx{upper}{sign}:] + \begin{quote} + |uni0E4D| (|0xED|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclassxx{upper}{vowel}{left}:] + \begin{quote} + |uni0E31.left| (|0x92|)\\ + |uni0E34.left| (|0x94|)\\ + |uni0E35.left| (|0x95|)\\ + |uni0E36.left| (|0x96|)\\ + |uni0E37.left| (|0x97|)\\ + |uni0E47.left| (|0x93|)\\ + |uni0E4D.left| (|0x8F|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclassxx{upper}{sign}{left}:] + \begin{quote} + |uni0E4D.left| (|0x8F|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclass{top}:] + \begin{quote} + |uni0E48| (|0xE8|)\\ + |uni0E49| (|0xE9|)\\ + |uni0E4A| (|0xEA|)\\ + |uni0E4B| (|0xEB|)\\ + |uni0E4C| (|0xEC|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclassx{top}{left}:] + \begin{quote} + |uni0E48.left| (|0x98|)\\ + |uni0E49.left| (|0x99|)\\ + |uni0E4A.left| (|0x9A|)\\ + |uni0E4B.left| (|0x9B|)\\ + |uni0E4C.left| (|0x9C|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclassx{top}{low}:] + \begin{quote} + |uni0E48.low| (|0x88|)\\ + |uni0E49.low| (|0x89|)\\ + |uni0E4A.low| (|0x8A|)\\ + |uni0E4B.low| (|0x8B|)\\ + |uni0E4C.low| (|0x8C|) + \end{quote} +\end{multicols} + +\begin{multicols}{2}[\thaiclassx{top}{low-left}:] + \begin{quote} + |uni0E48.low_left| (|0x83|)\\ + |uni0E49.low_left| (|0x84|)\\ + |uni0E4A.low_left| (|0x85|)\\ + |uni0E4B.low_left| (|0x86|)\\ + |uni0E4C.low_left| (|0x87|) + \end{quote} +\end{multicols} + +\vspace{1ex} + + +\encoding +\needsfontinstversion{1.918} + + +\begincomment +\section{Coding Scheme} +\endcomment + +\setstr{codingscheme}{C90 THAI ENCODING} + + +\begincomment +\section{Non-Thai Characters} + +Of the many different \LaTeX{} encodings, |OT1| supports {\small + ASCII} best (and this is what most Type~1 Thai fonts have). This +has two advantages: We can use the raw Thai font without specifying a +new encoding (switching to |OT1| will be sufficient), and it will work +with plain \TeX{} also. + +We use the |OT1| layout for typewriter fonts (i.e., for |cmtt|) with +the exception that `arrowup' and `arrowdown' are replaced with +`endash' and `emdash', and the seldom used `dotlessj' with +`quotedblleft'. +\endcomment + + +% 0x00 | 0 +\setslot{Gamma} + \Unicode{0393}{GREEK CAPITAL LETTER GAMMA} +\endsetslot + +\setslot{Delta} + \Unicode{0394}{GREEK CAPITAL LETTER DELTA} +\endsetslot + +\setslot{Theta} + \Unicode{0398}{GREEK CAPITAL LETTER THETA} +\endsetslot + +\setslot{Lambda} + \Unicode{039B}{GREEK CAPITAL LETTER LAMDA} +\endsetslot + +\setslot{Xi} + \Unicode{039E}{GREEK CAPITAL LETTER XI} +\endsetslot + +\setslot{Pi} + \Unicode{03A0}{GREEK CAPITAL LETTER PI} +\endsetslot + +\setslot{Sigma} + \Unicode{03A3}{GREEK CAPITAL LETTER SIGMA} +\endsetslot + +\setslot{Upsilon} + \Unicode{03D2}{GREEK UPSILON WITH HOOK SYMBOL} +\endsetslot + +\setslot{Phi} + \Unicode{03A6}{GREEK CAPITAL LETTER PHI} +\endsetslot + +\setslot{Psi} + \Unicode{03A8}{GREEK CAPITAL LETTER PSI} +\endsetslot + +\setslot{Omega} + \Unicode{03A9}{GREEK CAPITAL LETTER OMEGA} +\endsetslot + +\setslot{endash} + \Unicode{2013}{EN DASH} + \Ligature{LIG}{hyphen}{emdash} + \comment{This is `arrowup' in |OT1| encoding.} +\endsetslot + +\setslot{emdash} + \Unicode{2014}{EM DASH} + \comment{This is `arrowdown' in |OT1| encoding.} +\endsetslot + +\setslot{quotesingle} + \Unicode{0027}{APOSTROPHE} +\endsetslot + +\setslot{exclamdown} + \Unicode{00A1}{INVERTED EXCLAMATION MARK} +\endsetslot + +\setslot{questiondown} + \Unicode{00BF}{INVERTED QUESTION MARK} +\endsetslot + +% 0x10 | 16 +\setslot{dotlessi} + \Unicode{0131}{LATIN SMALL LETTER DOTLESS I} +\endsetslot + +\setslot{quotedblleft} + \Unicode{201C}{LEFT DOUBLE QUOTATION MARK} + \comment{This is `dotlessj' in |OT1| encoding.} +\endsetslot + +\setslot{grave} + \Unicode{0300}{COMBINING GRAVE ACCENT} +\endsetslot + +\setslot{acute} + \Unicode{0301}{COMBINING ACUTE ACCENT} +\endsetslot + +\setslot{caron} + \Unicode{030C}{COMBINING CARON} +\endsetslot + +\setslot{breve} + \Unicode{0306}{COMBINING BREVE} +\endsetslot + +\setslot{macron} + \Unicode{0304}{COMBINING MACRON} +\endsetslot + +\setslot{ring} + \Unicode{030A}{COMBINING RING ABOVE} +\endsetslot + +\setslot{cedilla} + \Unicode{0327}{COMBINING CEDILLA} +\endsetslot + +\setslot{germandbls} + \Unicode{00DF}{LATIN SMALL LETTER SHARP S} +\endsetslot + +\setslot{ae} + \Unicode{00E6}{LATIN SMALL LETTER AE} +\endsetslot + +\setslot{oe} + \Unicode{0153}{LATIN SMALL LIGATURE OE} +\endsetslot + +\setslot{oslash} + \Unicode{00F8}{LATIN SMALL LETTER O WITH STROKE} +\endsetslot + +\setslot{AE} + \Unicode{00C6}{LATIN CAPITAL LETTER AE} +\endsetslot + +\setslot{OE} + \Unicode{0152}{LATIN CAPITAL LIGATURE OE} +\endsetslot + +\setslot{Oslash} + \Unicode{00D8}{LATIN CAPITAL LETTER O WITH STROKE} +\endsetslot + +% 0x20 | 32 +\skipslots{1} + +\setslot{exclam} + \Unicode{0021}{EXCLAMATION MARK} + \Ligature{LIG}{quoteleft}{exclamdown} +\endsetslot + +\setslot{quotedblright} + \Unicode{201D}{RIGHT DOUBLE QUOTATION MARK} +\endsetslot + +\setslot{numbersign} + \Unicode{0023}{NUMBER SIGN} +\endsetslot + +\setslot{dollar} + \Unicode{0024}{DOLLAR SIGN} +\endsetslot + +\setslot{percent} + \Unicode{0025}{PERCENT SIGN} +\endsetslot + +\setslot{ampersand} + \Unicode{0026}{AMPERSAND} +\endsetslot + +\setslot{quoteright} + \Unicode{2019}{RIGHT SINGLE QUOTATION MARK} + \Ligature{LIG}{quoteright}{quotedblright} +\endsetslot + +\setslot{parenleft} + \Unicode{0028}{LEFT PARENTHESIS} +\endsetslot + +\setslot{parenright} + \Unicode{0029}{RIGHT PARENTHESIS} +\endsetslot + +\setslot{asterisk} + \Unicode{002A}{ASTERISK} +\endsetslot + +\setslot{plus} + \Unicode{002B}{PLUS SIGN} +\endsetslot + +\setslot{comma} + \Unicode{002C}{COMMA} +\endsetslot + +\setslot{hyphen} + \Unicode{002D}{HYPHEN-MINUS} + \Ligature{LIG}{hyphen}{endash} +\endsetslot + +\setslot{period} + \Unicode{002E}{FULL STOP} +\endsetslot + +\setslot{slash} + \Unicode{002F}{SOLIDUS} +\endsetslot + +% 0x30 | 48 +\setslot{zero} + \Unicode{0030}{DIGIT ZERO} +\endsetslot + +\setslot{one} + \Unicode{0031}{DIGIT ONE} +\endsetslot + +\setslot{two} + \Unicode{0032}{DIGIT TWO} +\endsetslot + +\setslot{three} + \Unicode{0033}{DIGIT THREE} +\endsetslot + +\setslot{four} + \Unicode{0034}{DIGIT FOUR} +\endsetslot + +\setslot{five} + \Unicode{0035}{DIGIT FIVE} +\endsetslot + +\setslot{six} + \Unicode{0036}{DIGIT SIX} +\endsetslot + +\setslot{seven} + \Unicode{0037}{DIGIT SEVEN} +\endsetslot + +\setslot{eight} + \Unicode{0038}{DIGIT EIGHT} +\endsetslot + +\setslot{nine} + \Unicode{0039}{DIGIT NINE} +\endsetslot + +\setslot{colon} + \Unicode{003A}{COLON} +\endsetslot + +\setslot{semicolon} + \Unicode{003B}{SEMICOLON} +\endsetslot + +\setslot{less} + \Unicode{003C}{LESS-THAN SIGN} +\endsetslot + +\setslot{equal} + \Unicode{003D}{EQUALS SIGN} +\endsetslot + +\setslot{greater} + \Unicode{003E}{GREATER-THAN SIGN} +\endsetslot + +\setslot{question} + \Unicode{003F}{QUESTION MARK} + \Ligature{LIG}{quoteleft}{questiondown} +\endsetslot + +% 0x40 | 64 +\setslot{at} + \Unicode{0040}{COMMERCIAL AT} +\endsetslot + +\setslot{A} + \Unicode{0041}{LATIN CAPITAL LETTER A} +\endsetslot + +\setslot{B} + \Unicode{0042}{LATIN CAPITAL LETTER B} +\endsetslot + +\setslot{C} + \Unicode{0043}{LATIN CAPITAL LETTER C} +\endsetslot + +\setslot{D} + \Unicode{0044}{LATIN CAPITAL LETTER D} +\endsetslot + +\setslot{E} + \Unicode{0045}{LATIN CAPITAL LETTER E} +\endsetslot + +\setslot{F} + \Unicode{0046}{LATIN CAPITAL LETTER F} +\endsetslot + +\setslot{G} + \Unicode{0047}{LATIN CAPITAL LETTER G} +\endsetslot + +\setslot{H} + \Unicode{0048}{LATIN CAPITAL LETTER H} +\endsetslot + +\setslot{I} + \Unicode{0049}{LATIN CAPITAL LETTER I} +\endsetslot + +\setslot{J} + \Unicode{004A}{LATIN CAPITAL LETTER J} +\endsetslot + +\setslot{K} + \Unicode{004B}{LATIN CAPITAL LETTER K} +\endsetslot + +\setslot{L} + \Unicode{004C}{LATIN CAPITAL LETTER L} +\endsetslot + +\setslot{M} + \Unicode{004D}{LATIN CAPITAL LETTER M} +\endsetslot + +\setslot{N} + \Unicode{004E}{LATIN CAPITAL LETTER N} +\endsetslot + +\setslot{O} + \Unicode{004F}{LATIN CAPITAL LETTER O} +\endsetslot + +% 0x50 | 80 +\setslot{P} + \Unicode{0050}{LATIN CAPITAL LETTER P} +\endsetslot + +\setslot{Q} + \Unicode{0051}{LATIN CAPITAL LETTER Q} +\endsetslot + +\setslot{R} + \Unicode{0052}{LATIN CAPITAL LETTER R} +\endsetslot + +\setslot{S} + \Unicode{0053}{LATIN CAPITAL LETTER S} +\endsetslot + +\setslot{T} + \Unicode{0054}{LATIN CAPITAL LETTER T} +\endsetslot + +\setslot{U} + \Unicode{0055}{LATIN CAPITAL LETTER U} +\endsetslot + +\setslot{V} + \Unicode{0056}{LATIN CAPITAL LETTER V} +\endsetslot + +\setslot{W} + \Unicode{0057}{LATIN CAPITAL LETTER W} +\endsetslot + +\setslot{X} + \Unicode{0058}{LATIN CAPITAL LETTER X} +\endsetslot + +\setslot{Y} + \Unicode{0059}{LATIN CAPITAL LETTER Y} +\endsetslot + +\setslot{Z} + \Unicode{005A}{LATIN CAPITAL LETTER Z} +\endsetslot + +\setslot{bracketleft} + \Unicode{005B}{LEFT SQUARE BRACKET} +\endsetslot + +\setslot{backslash} + \Unicode{005C}{REVERSE SOLIDUS} +\endsetslot + +\setslot{bracketright} + \Unicode{005D}{RIGHT SQUARE BRACKET} +\endsetslot + +\setslot{circumflex} + \Unicode{0302}{COMBINING CIRCUMFLEX ACCENT} +\endsetslot + +\setslot{underscore} + \Unicode{005F}{LOW LINE} +\endsetslot + +% 0x60 | 96 +\setslot{quoteleft} + \Unicode{2018}{LEFT SINGLE QUOTATION MARK} + \Ligature{LIG}{quoteleft}{quotedblleft} +\endsetslot + +\setslot{a} + \Unicode{0061}{LATIN SMALL LETTER A} +\endsetslot + +\setslot{b} + \Unicode{0062}{LATIN SMALL LETTER B} +\endsetslot + +\setslot{c} + \Unicode{0063}{LATIN SMALL LETTER C} +\endsetslot + +\setslot{d} + \Unicode{0064}{LATIN SMALL LETTER D} +\endsetslot + +\setslot{e} + \Unicode{0065}{LATIN SMALL LETTER E} +\endsetslot + +\setslot{f} + \Unicode{0066}{LATIN SMALL LETTER F} +\endsetslot + +\setslot{g} + \Unicode{0067}{LATIN SMALL LETTER G} +\endsetslot + +\setslot{h} + \Unicode{0068}{LATIN SMALL LETTER H} +\endsetslot + +\setslot{i} + \Unicode{0069}{LATIN SMALL LETTER I} +\endsetslot + +\setslot{j} + \Unicode{006A}{LATIN SMALL LETTER J} +\endsetslot + +\setslot{k} + \Unicode{006B}{LATIN SMALL LETTER K} +\endsetslot + +\setslot{l} + \Unicode{006C}{LATIN SMALL LETTER L} +\endsetslot + +\setslot{m} + \Unicode{006D}{LATIN SMALL LETTER M} +\endsetslot + +\setslot{n} + \Unicode{006E}{LATIN SMALL LETTER N} +\endsetslot + +\setslot{o} + \Unicode{006F}{LATIN SMALL LETTER O} +\endsetslot + +% 0x70 | 112 +\setslot{p} + \Unicode{0070}{LATIN SMALL LETTER P} +\endsetslot + +\setslot{q} + \Unicode{0071}{LATIN SMALL LETTER Q} +\endsetslot + +\setslot{r} + \Unicode{0072}{LATIN SMALL LETTER R} +\endsetslot + +\setslot{s} + \Unicode{0073}{LATIN SMALL LETTER S} +\endsetslot + +\setslot{t} + \Unicode{0074}{LATIN SMALL LETTER T} +\endsetslot + +\setslot{u} + \Unicode{0075}{LATIN SMALL LETTER U} +\endsetslot + +\setslot{v} + \Unicode{0076}{LATIN SMALL LETTER V} +\endsetslot + +\setslot{w} + \Unicode{0077}{LATIN SMALL LETTER W} +\endsetslot + +\setslot{x} + \Unicode{0078}{LATIN SMALL LETTER X} +\endsetslot + +\setslot{y} + \Unicode{0079}{LATIN SMALL LETTER Y} +\endsetslot + +\setslot{z} + \Unicode{007A}{LATIN SMALL LETTER Z} +\endsetslot + +\setslot{braceleft} + \Unicode{007B}{LEFT CURLY BRACKET} +\endsetslot + +\setslot{bar} + \Unicode{007C}{VERTICAL LINE} +\endsetslot + +\setslot{braceright} + \Unicode{007D}{RIGHT CURLY BRACKET} +\endsetslot + +\setslot{tilde} + \Unicode{0303}{COMBINING TILDE} +\endsetslot + +\setslot{dieresis} + \Unicode{0308}{COMBINING DIAERESIS} +\endsetslot + + +\begincomment +\section{Thai Characters} + +This is |TIS-620| encoding with glyph variants. The encoding presented +in~\cite{TUG-Thai} contained two alternate glyph forms at positions 157 +and 158 which have been removed meanwhile. + +The number of all Thai ligature rules is quite big (464~in total). +Note that |vptovf| will make the ligature table much more compact as +it may appear here. +\endcomment + +% 0x80 | 128 +\ifisint{makeenc}\then + \setslot{uni0E38} + \endsetslot +\Else + \setslot{uni0E38.left} + \comment{An alias for + \textunicode{0E38}{THAI CHARACTER SARA U}.} + \Ligature{/LIG}{uni0E48}{uni0E48.low_left} + \Ligature{/LIG}{uni0E49}{uni0E49.low_left} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low_left} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low_left} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low_left} + \endsetslot +\Fi + +\ifisint{makeenc}\then + \setslot{uni0E39} + \endsetslot +\Else + \setslot{uni0E39.left} + \comment{An alias for + \textunicode{0E39}{THAI CHARACTER SARA UU}.} + \Ligature{/LIG}{uni0E48}{uni0E48.low_left} + \Ligature{/LIG}{uni0E49}{uni0E49.low_left} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low_left} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low_left} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low_left} + \endsetslot +\Fi + +\ifisint{makeenc}\then + \setslot{uni0E3A} + \endsetslot +\Else + \setslot{uni0E3A.left} + \comment{An alias for + \textunicode{0E3A}{THAI CHARACTER PHINTHU}.} + \Ligature{/LIG}{uni0E48}{uni0E48.low_left} + \Ligature{/LIG}{uni0E49}{uni0E49.low_left} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low_left} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low_left} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low_left} + \endsetslot +\Fi + +\setslot{uni0E48.low_left} + \comment{A glyph variant of + \textunicode{0E48}{THAI CHARACTER MAI EK}.} + \Ligature{/LIG/}{uni0E33}{uni0E48.left} + \Ligature{LIG/}{uni0E48.left}{uni0E4D.left} +\endsetslot + +\setslot{uni0E49.low_left} + \comment{A glyph variant of + \textunicode{0E49}{THAI CHARACTER MAI THO}.} + \Ligature{/LIG/}{uni0E33}{uni0E49.left} + \Ligature{LIG/}{uni0E49.left}{uni0E4D.left} +\endsetslot + +\setslot{uni0E4A.low_left} + \comment{A glyph variant of + \textunicode{0E4A}{THAI CHARACTER MAI TRI}.} + \Ligature{/LIG/}{uni0E33}{uni0E4A.left} + \Ligature{LIG/}{uni0E4A.left}{uni0E4D.left} +\endsetslot + +\setslot{uni0E4B.low_left} + \comment{A glyph variant of + \textunicode{0E4B}{THAI CHARACTER MAI CHATTAWA}.} + \Ligature{/LIG/}{uni0E33}{uni0E4B.left} + \Ligature{LIG/}{uni0E4B.left}{uni0E4D.left} +\endsetslot + +\setslot{uni0E4C.low_left} + \comment{A glyph variant of + \textunicode{0E4C}{THAI CHARACTER THANTHAKHAT}.} + \Ligature{/LIG/}{uni0E33}{uni0E4C.left} + \Ligature{LIG/}{uni0E4C.left}{uni0E4D.left} +\endsetslot + +\setslot{uni0E48.low} + \comment{A glyph variant of + \textunicode{0E48}{THAI CHARACTER MAI EK}.} + \Ligature{/LIG/}{uni0E33}{uni0E48} + \Ligature{LIG/}{uni0E48}{uni0E4D} +\endsetslot + +\setslot{uni0E49.low} + \comment{A glyph variant of + \textunicode{0E49}{THAI CHARACTER MAI THO}.} + \Ligature{/LIG/}{uni0E33}{uni0E49} + \Ligature{LIG/}{uni0E49}{uni0E4D} +\endsetslot + +\setslot{uni0E4A.low} + \comment{A glyph variant of + \textunicode{0E4A}{THAI CHARACTER MAI TRI}.} + \Ligature{/LIG/}{uni0E33}{uni0E4A} + \Ligature{LIG/}{uni0E4A}{uni0E4D} +\endsetslot + +\setslot{uni0E4B.low} + \comment{A glyph variant of + \textunicode{04EB}{THAI CHARACTER MAI CHATTAWA}.} + \Ligature{/LIG/}{uni0E33}{uni0E4B} + \Ligature{LIG/}{uni0E4B}{uni0E4D} +\endsetslot + +\setslot{uni0E4C.low} + \comment{A glyph variant of + \textunicode{0E4C}{THAI CHARACTER THANTHAKHAT}.} + \Ligature{/LIG/}{uni0E33}{uni0E4C} + \Ligature{LIG/}{uni0E4C}{uni0E4D} +\endsetslot + +\skipslots{2} + +\setslot{uni0E4D.left} + \comment{A glyph variant of + \textunicode{0E4D}{THAI CHARACTER NIKHAHIT}.} + \Ligature{/LIG}{uni0E33}{uni0E32} + \Ligature{/LIG}{uni0E48}{uni0E48.left} + \Ligature{/LIG}{uni0E49}{uni0E49.left} + \Ligature{/LIG}{uni0E4A}{uni0E4A.left} + \Ligature{/LIG}{uni0E4B}{uni0E4B.left} + \Ligature{/LIG}{uni0E4C}{uni0E4C.left} +\endsetslot + +% 0x90 | 144 +\setslot{uni0E0D.descless} + \comment{A glyph variant of + \textunicode{0E0D}{THAI CHARACTER YO YING}.} +\endsetslot + +\skipslots{1} + +\setslot{uni0E31.left} + \comment{A glyph variant of + \textunicode{0E31}{THAI CHARACTER MAI HAN-AKAT}.} + \Ligature{/LIG}{uni0E48}{uni0E48.left} + \Ligature{/LIG}{uni0E49}{uni0E49.left} + \Ligature{/LIG}{uni0E4A}{uni0E4A.left} + \Ligature{/LIG}{uni0E4B}{uni0E4B.left} + \Ligature{/LIG}{uni0E4C}{uni0E4C.left} +\endsetslot + +\setslot{uni0E47.left} + \comment{A glyph variant of + \textunicode{0E47}{THAI CHARACTER MAITAIKHU}.} + \Ligature{/LIG}{uni0E48}{uni0E48.left} + \Ligature{/LIG}{uni0E49}{uni0E49.left} + \Ligature{/LIG}{uni0E4A}{uni0E4A.left} + \Ligature{/LIG}{uni0E4B}{uni0E4B.left} + \Ligature{/LIG}{uni0E4C}{uni0E4C.left} +\endsetslot + +\setslot{uni0E34.left} + \comment{A glyph variant of + \textunicode{0E34}{THAI CHARACTER SARA I}.} + \Ligature{/LIG}{uni0E48}{uni0E48.left} + \Ligature{/LIG}{uni0E49}{uni0E49.left} + \Ligature{/LIG}{uni0E4A}{uni0E4A.left} + \Ligature{/LIG}{uni0E4B}{uni0E4B.left} + \Ligature{/LIG}{uni0E4C}{uni0E4C.left} +\endsetslot + +\setslot{uni0E35.left} + \comment{A glyph variant of + \textunicode{0E35}{THAI CHARACTER SARA II}.} + \Ligature{/LIG}{uni0E48}{uni0E48.left} + \Ligature{/LIG}{uni0E49}{uni0E49.left} + \Ligature{/LIG}{uni0E4A}{uni0E4A.left} + \Ligature{/LIG}{uni0E4B}{uni0E4B.left} + \Ligature{/LIG}{uni0E4C}{uni0E4C.left} +\endsetslot + +\setslot{uni0E36.left} + \comment{A glyph variant of + \textunicode{0E36}{THAI CHARACTER SARA UE}.} + \Ligature{/LIG}{uni0E48}{uni0E48.left} + \Ligature{/LIG}{uni0E49}{uni0E49.left} + \Ligature{/LIG}{uni0E4A}{uni0E4A.left} + \Ligature{/LIG}{uni0E4B}{uni0E4B.left} + \Ligature{/LIG}{uni0E4C}{uni0E4C.left} +\endsetslot + +\setslot{uni0E37.left} + \comment{A glyph variant of + \textunicode{0E37}{THAI CHARACTER SARA UEE}.} + \Ligature{/LIG}{uni0E48}{uni0E48.left} + \Ligature{/LIG}{uni0E49}{uni0E49.left} + \Ligature{/LIG}{uni0E4A}{uni0E4A.left} + \Ligature{/LIG}{uni0E4B}{uni0E4B.left} + \Ligature{/LIG}{uni0E4C}{uni0E4C.left} +\endsetslot + +\setslot{uni0E48.left} + \comment{A glyph variant of + \textunicode{0E48}{THAI CHARACTER MAI EK}.} + \Ligature{/LIG}{uni0E33}{uni0E32} +\endsetslot + +\setslot{uni0E49.left} + \comment{A glyph variant of + \textunicode{0E49}{THAI CHARACTER MAI THO}.} + \Ligature{/LIG}{uni0E33}{uni0E32} +\endsetslot + +\setslot{uni0E4A.left} + \comment{A glyph variant of + \textunicode{0E4A}{THAI CHARACTER MAI TRI}.} + \Ligature{/LIG}{uni0E33}{uni0E32} +\endsetslot + +\setslot{uni0E4B.left} + \comment{A glyph variant of + \textunicode{0E4B}{THAI CHARACTER MAI CHATTAWA}.} + \Ligature{/LIG}{uni0E33}{uni0E32} +\endsetslot + +\setslot{uni0E4C.left} + \comment{A glyph variant of + \textunicode{0E4C}{THAI CHARACTER THANTHAKHAT}.} + \Ligature{/LIG}{uni0E33}{uni0E32} +\endsetslot + +\skipslots{2} + +\setslot{uni0E10.descless} + \comment{A glyph variant of + \textunicode{0E10}{THAI CHARACTER THO THAN}.} +\endsetslot + +% 0xA0 | 160 +\skipslots{1} + +\setslot{uni0E01} + \Unicode{0E01}{THAI CHARACTER KO KAI} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E02} + \Unicode{0E02}{THAI CHARACTER KHO KHAI} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E03} + \Unicode{0E03}{THAI CHARACTER KHO KHUAT} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E04} + \Unicode{0E04}{THAI CHARACTER KHO KHWAI} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E05} + \Unicode{0E05}{THAI CHARACTER KHO KHON} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E06} + \Unicode{0E06}{THAI CHARACTER KHO RAKHANG} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E07} + \Unicode{0E07}{THAI CHARACTER NGO NGU} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E08} + \Unicode{0E08}{THAI CHARACTER CHO CHAN} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E09} + \Unicode{0E09}{THAI CHARACTER CHO CHING} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E0A} + \Unicode{0E0A}{THAI CHARACTER CHO CHANG} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E0B} + \Unicode{0E0B}{THAI CHARACTER SO SO} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E0C} + \Unicode{0E0C}{THAI CHARACTER CHO CHOE} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E0D} + \Unicode{0E0D}{THAI CHARACTER YO YING} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{LIG/}{uni0E38}{uni0E0D.descless} + \Ligature{LIG/}{uni0E39}{uni0E0D.descless} + \Ligature{LIG/}{uni0E3A}{uni0E0D.descless} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E0E} + \Unicode{0E0E}{THAI CHARACTER DO CHADA} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E38}{uni0E38.low} + \Ligature{/LIG}{uni0E39}{uni0E39.low} + \Ligature{/LIG}{uni0E3A}{uni0E3A.low} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E0F} + \Unicode{0E0F}{THAI CHARACTER TO PATAK} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E38}{uni0E38.low} + \Ligature{/LIG}{uni0E39}{uni0E39.low} + \Ligature{/LIG}{uni0E3A}{uni0E3A.low} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +% 0xB0 | 176 +\setslot{uni0E10} + \Unicode{0E10}{THAI CHARACTER THO THAN} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{LIG/}{uni0E38}{uni0E10.descless} + \Ligature{LIG/}{uni0E39}{uni0E10.descless} + \Ligature{LIG/}{uni0E3A}{uni0E10.descless} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E11} + \Unicode{0E11}{THAI CHARACTER THO NANGMONTHO} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E12} + \Unicode{0E12}{THAI CHARACTER THO PHUTHAO} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E13} + \Unicode{0E13}{THAI CHARACTER NO NEN} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E14} + \Unicode{0E14}{THAI CHARACTER DO DEK} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E15} + \Unicode{0E15}{THAI CHARACTER TO TAO} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E16} + \Unicode{0E16}{THAI CHARACTER THO THUNG} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E17} + \Unicode{0E17}{THAI CHARACTER THO THAHAN} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E18} + \Unicode{0E18}{THAI CHARACTER THO THONG} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E19} + \Unicode{0E19}{THAI CHARACTER NO NU} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E1A} + \Unicode{0E1A}{THAI CHARACTER BO BAIMAI} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E1B} + \Unicode{0E1B}{THAI CHARACTER PO PLA} + \Ligature{/LIG}{uni0E31}{uni0E31.left} + \Ligature{/LIG/}{uni0E33}{uni0E4D.left} + \Ligature{/LIG}{uni0E34}{uni0E34.left} + \Ligature{/LIG}{uni0E35}{uni0E35.left} + \Ligature{/LIG}{uni0E36}{uni0E36.left} + \Ligature{/LIG}{uni0E37}{uni0E37.left} + \Ligature{/LIG}{uni0E38}{uni0E38.left} + \Ligature{/LIG}{uni0E39}{uni0E39.left} + \Ligature{/LIG}{uni0E3A}{uni0E3A.left} + \Ligature{/LIG}{uni0E47}{uni0E47.left} + \Ligature{/LIG}{uni0E48}{uni0E48.low_left} + \Ligature{/LIG}{uni0E49}{uni0E49.low_left} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low_left} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low_left} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} + \Ligature{/LIG}{uni0E4D}{uni0E4D.left} +\endsetslot + +\setslot{uni0E1C} + \Unicode{0E1C}{THAI CHARACTER PHO PHUNG} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E1D} + \Unicode{0E1D}{THAI CHARACTER FO FA} + \Ligature{/LIG}{uni0E31}{uni0E31.left} + \Ligature{/LIG/}{uni0E33}{uni0E4D.left} + \Ligature{/LIG}{uni0E34}{uni0E34.left} + \Ligature{/LIG}{uni0E35}{uni0E35.left} + \Ligature{/LIG}{uni0E36}{uni0E36.left} + \Ligature{/LIG}{uni0E37}{uni0E37.left} + \Ligature{/LIG}{uni0E38}{uni0E38.left} + \Ligature{/LIG}{uni0E39}{uni0E39.left} + \Ligature{/LIG}{uni0E3A}{uni0E3A.left} + \Ligature{/LIG}{uni0E47}{uni0E47.left} + \Ligature{/LIG}{uni0E48}{uni0E48.low_left} + \Ligature{/LIG}{uni0E49}{uni0E49.low_left} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low_left} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low_left} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} + \Ligature{/LIG}{uni0E4D}{uni0E4D.left} +\endsetslot + +\setslot{uni0E1E} + \Unicode{0E1E}{THAI CHARACTER PHO PHAN} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E1F} + \Unicode{0E1F}{THAI CHARACTER FO FAN} + \Ligature{/LIG}{uni0E31}{uni0E31.left} + \Ligature{/LIG/}{uni0E33}{uni0E4D.left} + \Ligature{/LIG}{uni0E34}{uni0E34.left} + \Ligature{/LIG}{uni0E35}{uni0E35.left} + \Ligature{/LIG}{uni0E36}{uni0E36.left} + \Ligature{/LIG}{uni0E37}{uni0E37.left} + \Ligature{/LIG}{uni0E38}{uni0E38.left} + \Ligature{/LIG}{uni0E39}{uni0E39.left} + \Ligature{/LIG}{uni0E3A}{uni0E3A.left} + \Ligature{/LIG}{uni0E47}{uni0E47.left} + \Ligature{/LIG}{uni0E48}{uni0E48.low_left} + \Ligature{/LIG}{uni0E49}{uni0E49.low_left} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low_left} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low_left} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} + \Ligature{/LIG}{uni0E4D}{uni0E4D.left} +\endsetslot + +% 0xC0 | 192 +\setslot{uni0E20} + \Unicode{0E20}{THAI CHARACTER PHO SAMPHAO} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E21} + \Unicode{0E21}{THAI CHARACTER MO MA} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E22} + \Unicode{0E22}{THAI CHARACTER YO YAK} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E23} + \Unicode{0E23}{THAI CHARACTER RO RUA} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E24} + \Unicode{0E24}{THAI CHARACTER RU} + \Ligature{/LIG}{uni0E32}{uni0E45} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E25} + \Unicode{0E25}{THAI CHARACTER LO LING} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E26} + \Unicode{0E26}{THAI CHARACTER LU} + \Ligature{/LIG}{uni0E32}{uni0E45} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E27} + \Unicode{0E27}{THAI CHARACTER WO WAEN} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E28} + \Unicode{0E28}{THAI CHARACTER SO SALA} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E29} + \Unicode{0E29}{THAI CHARACTER SO RUSI} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E2A} + \Unicode{0E2A}{THAI CHARACTER SO SUA} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E2B} + \Unicode{0E2B}{THAI CHARACTER HO HIP} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E2C} + \Unicode{0E2C}{THAI CHARACTER LO CHULA} + \Ligature{/LIG/}{uni0E33}{uni0E4D.left} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} +\endsetslot + +\setslot{uni0E2D} + \Unicode{0E2D}{THAI CHARACTER O ANG} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E2E} + \Unicode{0E2E}{THAI CHARACTER HO NOKHUK} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E2F} + \Unicode{0E2F}{THAI CHARACTER PAIYANNOI} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +% 0xD0 | 208 +\setslot{uni0E30} + \Unicode{0E30}{THAI CHARACTER SARA A} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E31} + \Unicode{0E31}{THAI CHARACTER MAI HAN-AKAT} +\endsetslot + +\setslot{uni0E32} + \Unicode{0E32}{THAI CHARACTER SARA AA} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E33} + \Unicode{0E33}{THAI CHARACTER SARA AM} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E34} + \Unicode{0E34}{THAI CHARACTER SARA I} +\endsetslot + +\setslot{uni0E35} + \Unicode{0E35}{THAI CHARACTER SARA II} +\endsetslot + +\setslot{uni0E36} + \Unicode{0E36}{THAI CHARACTER SARA UE} +\endsetslot + +\setslot{uni0E37} + \Unicode{0E37}{THAI CHARACTER SARA UEE} +\endsetslot + +\setslot{uni0E38} + \Unicode{0E38}{THAI CHARACTER SARA U} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E39} + \Unicode{0E39}{THAI CHARACTER SARA UU} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E3A} + \Unicode{0E3A}{THAI CHARACTER PHINTHU} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\skipslots{4} + +\setslot{uni0E3F} + \Unicode{0E3F}{THAI CURRENCY SYMBOL BAHT} +\endsetslot + +% 0xE0 | 224 +\setslot{uni0E40} + \Unicode{0E40}{THAI CHARACTER SARA E} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E41} + \Unicode{0E41}{THAI CHARACTER SARA AE} + \Ligature{/LIG/}{uni0E33}{uni0E4D} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E42} + \Unicode{0E42}{THAI CHARACTER SARA O} +\endsetslot + +\setslot{uni0E43} + \Unicode{0E43}{THAI CHARACTER SARA AI MAIMUAN} +\endsetslot + +\setslot{uni0E44} + \Unicode{0E44}{THAI CHARACTER SARA AI MAIMALAI} +\endsetslot + +\setslot{uni0E45} + \Unicode{0E45}{THAI CHARACTER LAKKHANGYAO} +\endsetslot + +\setslot{uni0E46} + \Unicode{0E46}{THAI CHARACTER MAIYAMOK} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E47} + \Unicode{0E47}{THAI CHARACTER MAITAIKHU} +\endsetslot + +\setslot{uni0E48} + \Unicode{0E48}{THAI CHARACTER MAI EK} + \Ligature{/LIG}{uni0E33}{uni0E32} +\endsetslot + +\setslot{uni0E49} + \Unicode{0E49}{THAI CHARACTER MAI THO} + \Ligature{/LIG}{uni0E33}{uni0E32} +\endsetslot + +\setslot{uni0E4A} + \Unicode{0E4A}{THAI CHARACTER MAI TRI} + \Ligature{/LIG}{uni0E33}{uni0E32} +\endsetslot + +\setslot{uni0E4B} + \Unicode{0E4B}{THAI CHARACTER MAI CHATTAWA} + \Ligature{/LIG}{uni0E33}{uni0E32} +\endsetslot + +\setslot{uni0E4C} + \Unicode{0E4C}{THAI CHARACTER THANTHAKHAT} + \Ligature{/LIG}{uni0E33}{uni0E32} +\endsetslot + +\setslot{uni0E4D} + \Unicode{0E4D}{THAI CHARACTER NIKHAHIT} + \Ligature{/LIG}{uni0E33}{uni0E32} +\endsetslot + +\setslot{uni0E4E} + \Unicode{0E4E}{THAI CHARACTER YAMAKKAN} +\endsetslot + +\setslot{uni0E4F} + \Unicode{0E4F}{THAI CHARACTER FONGMAN} +\endsetslot + +% 0xF0 | 240 +\setslot{uni0E50} + \Unicode{0E50}{THAI DIGIT ZERO} +\endsetslot + +\setslot{uni0E51} + \Unicode{0E51}{THAI DIGIT ONE} +\endsetslot + +\setslot{uni0E52} + \Unicode{0E52}{THAI DIGIT TWO} +\endsetslot + +\setslot{uni0E53} + \Unicode{0E53}{THAI DIGIT THREE} +\endsetslot + +\setslot{uni0E54} + \Unicode{0E54}{THAI DIGIT FOUR} +\endsetslot + +\setslot{uni0E55} + \Unicode{0E55}{THAI DIGIT FIVE} +\endsetslot + +\setslot{uni0E56} + \Unicode{0E56}{THAI DIGIT SIX} +\endsetslot + +\setslot{uni0E57} + \Unicode{0E57}{THAI DIGIT SEVEN} +\endsetslot + +\setslot{uni0E58} + \Unicode{0E58}{THAI DIGIT EIGHT} +\endsetslot + +\setslot{uni0E59} + \Unicode{0E59}{THAI DIGIT NINE} +\endsetslot + +\setslot{uni0E5A} + \Unicode{0E5A}{THAI CHARACTER ANGKHANKHU} +\endsetslot + +\setslot{uni0E5B} + \Unicode{0E5B}{THAI CHARACTER KHOMUT} +\endsetslot + +\setslot{uni0E38.low} + \comment{A glyph variant of \textunicode{0E38}{THAI CHARACTER SARA U}.} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E39.low} + \comment{A glyph variant of \textunicode{0E39}{THAI CHARACTER SARA UU}.} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\setslot{uni0E3A.low} + \comment{A glyph variant of \textunicode{0E3A}{THAI CHARACTER PHINTHU}.} + \Ligature{/LIG}{uni0E48}{uni0E48.low} + \Ligature{/LIG}{uni0E49}{uni0E49.low} + \Ligature{/LIG}{uni0E4A}{uni0E4A.low} + \Ligature{/LIG}{uni0E4B}{uni0E4B.low} + \Ligature{/LIG}{uni0E4C}{uni0E4C.low} +\endsetslot + +\skipslots{1} + + +\begincomment +\section{Font Dimensions} +\endcomment + +\setfontdimen{1}{italicslant} +\setfontdimen{2}{interword} +\setfontdimen{3}{stretchword} +\setfontdimen{4}{shrinkword} +\setfontdimen{5}{xheight} +\setfontdimen{6}{quad} +\setfontdimen{7}{extraspace} + +\endencoding + + +\begin{thebibliography}{9} +\bibitem{TUG-Thai} + Werner Lemberg: \textit{Thai Fonts}, in \textit{TUGboat}, + 21(2):113--120, June 2000. Available online in PDF format as + \url{http://tug.org/TUGboat/Articles/tb21-2/tb67lemb.pdf}. +\bibitem{AGL} + Adobe Systems Incorporated: \textit{Adobe Glyph List}, 2003; + \url{http://partners.adobe.com/asn/developer/type/unicodegn.html}. +\bibitem{MFbook} + Donald E.\ Knuth, Duane Bibby (illustrations): \textit{The \MF + book}, Ad\-di\-son--Wes\-ley, 1986; ISBN~0-201-13445-4. +\bibitem{Unicode} + The Unicode Consortium (editor), \emph{et al.}: \textit{The Unicode + Standard, Version 4.0}, Addison Wesley Longman Publisher, 2003; + ISBN~0-321-18578-1. Most of the information in this book is also + available online at the Unicode consortium website, at + \url{http://www.unicode.org/versions/Unicode4.0.1}. +\end{thebibliography} + +\end{document} + +% end of c90.etx diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/c90.mtx b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/c90.mtx new file mode 100644 index 0000000000..b14d502a2d --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/c90.mtx @@ -0,0 +1,42 @@ +% c90.mtx + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\relax + +\metrics + +\needsfontinstversion{1.918} + +% provide glyph aliases needed for the ligature mechanism + +\setglyph{uni0E38.left} + \glyph{uni0E38}{1000} +\endsetglyph + +\setglyph{uni0E39.left} + \glyph{uni0E39}{1000} +\endsetglyph + +\setglyph{uni0E3A.left} + \glyph{uni0E3A}{1000} +\endsetglyph + +\endmetrics + +% end of c90.mtx diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/config.dbtt-old b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/config.dbtt-old new file mode 100644 index 0000000000..5ce1be96b2 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/config.dbtt-old @@ -0,0 +1 @@ +p +dbtt-old.map diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old-alias.etx b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old-alias.etx new file mode 100644 index 0000000000..fceec94a97 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old-alias.etx @@ -0,0 +1,46 @@ +% dbtt-old-alias.etx + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\relax + +\encoding + +\needsfontinstversion{1.918} + +\fontinstcc +\def\galias#1#2{ + \expandafter\def\csname slot-#2\endcsname{#1} +} +\def\setslot#1{ + \edef\slot_name{ + \if_defined{slot-#1}\then + \csname slot-#1\endcsname + \else + #1 + \fi + } + \do_slot +} +\normalcc + +\input dbtt-old-alias + +\endencoding + +% end of dbtt-old-alias.etx diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old-alias.mtx b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old-alias.mtx new file mode 100644 index 0000000000..3ee09b8cf2 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old-alias.mtx @@ -0,0 +1,36 @@ +% dbtt-old-alias.mtx + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\relax + +\metrics + +\needsfontinstversion{1.918} + +\def\galias#1#2{ + \setglyph{#2} + \glyph{#1}{1000} + \endsetglyph +} + +\input dbtt-old-alias + +\endmetrics + +% end of dbtt-old-alias.mtx diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old-alias.tex b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old-alias.tex new file mode 100644 index 0000000000..0d6c25b1e3 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old-alias.tex @@ -0,0 +1,139 @@ +% dbtt-old-alias.tex + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\galias{ucircumflex}{endash} +\galias{uacute}{emdash} +\galias{quotedbl}{quotedblleft} +\galias{quotedbl}{quotedblright} +\galias{quotesingle}{quoteright} +\galias{grave}{quoteleft} +\galias{florin}{uni0E48.low_left} +\galias{quotedblbase}{uni0E49.low_left} +\galias{ellipsis}{uni0E4A.low_left} +\galias{dagger}{uni0E4B.low_left} +\galias{daggerdbl}{uni0E4C.low_left} +\galias{circumflex}{uni0E48.low} +\galias{perthousand}{uni0E49.low} +\galias{Scaron}{uni0E4A.low} +\galias{guilsinglleft}{uni0E4B.low} +\galias{OE}{uni0E4C.low} +\galias{u008F}{uni0E4D.left} +\galias{u0090}{uni0E0D.descless} +\galias{quoteright}{uni0E31.left} +\galias{quotedblleft}{uni0E47.left} +\galias{quotedblright}{uni0E34.left} +\galias{bullet}{uni0E35.left} +\galias{emdash}{uni0E36.left} +\galias{endash}{uni0E37.left} +\galias{tilde}{uni0E48.left} +\galias{trademark}{uni0E49.left} +\galias{scaron}{uni0E4A.left} +\galias{guilsinglright}{uni0E4B.left} +\galias{oe}{uni0E4C.left} +\galias{Ydieresis}{uni0E10.descless} +\galias{exclamdown}{uni0E01} +\galias{cent}{uni0E02} +\galias{sterling}{uni0E03} +\galias{currency}{uni0E04} +\galias{yen}{uni0E05} +\galias{brokenbar}{uni0E06} +\galias{section}{uni0E07} +\galias{dieresis}{uni0E08} +\galias{copyright}{uni0E09} +\galias{ordfeminine}{uni0E0A} +\galias{guillemotleft}{uni0E0B} +\galias{logicalnot}{uni0E0C} +\galias{hyphen}{uni0E0D} +\galias{registered}{uni0E0E} +\galias{macron}{uni0E0F} +\galias{degree}{uni0E10} +\galias{plusminus}{uni0E11} +\galias{twosuperior}{uni0E12} +\galias{threesuperior}{uni0E13} +\galias{acute}{uni0E14} +\galias{mu}{uni0E15} +\galias{paragraph}{uni0E16} +\galias{periodcentered}{uni0E17} +\galias{cedilla}{uni0E18} +\galias{onesuperior}{uni0E19} +\galias{ordmasculine}{uni0E1A} +\galias{guillemotright}{uni0E1B} +\galias{onequarter}{uni0E1C} +\galias{onehalf}{uni0E1D} +\galias{threequarters}{uni0E1E} +\galias{questiondown}{uni0E1F} +\galias{Agrave}{uni0E20} +\galias{Aacute}{uni0E21} +\galias{Acircumflex}{uni0E22} +\galias{Atilde}{uni0E23} +\galias{Adieresis}{uni0E24} +\galias{Aring}{uni0E25} +\galias{AE}{uni0E26} +\galias{Ccedilla}{uni0E27} +\galias{Egrave}{uni0E28} +\galias{Eacute}{uni0E29} +\galias{Ecircumflex}{uni0E2A} +\galias{Edieresis}{uni0E2B} +\galias{Igrave}{uni0E2C} +\galias{Iacute}{uni0E2D} +\galias{Icircumflex}{uni0E2E} +\galias{Idieresis}{uni0E2F} +\galias{Eth}{uni0E30} +\galias{Ntilde}{uni0E31} +\galias{Ograve}{uni0E32} +\galias{Oacute}{uni0E33} +\galias{Ocircumflex}{uni0E34} +\galias{Otilde}{uni0E35} +\galias{Odieresis}{uni0E36} +\galias{multiply}{uni0E37} +\galias{Oslash}{uni0E38} +\galias{Ugrave}{uni0E39} +\galias{Uacute}{uni0E3A} +\galias{germandbls}{uni0E3F} +\galias{agrave}{uni0E40} +\galias{aacute}{uni0E41} +\galias{acircumflex}{uni0E42} +\galias{atilde}{uni0E43} +\galias{adieresis}{uni0E44} +\galias{aring}{uni0E45} +\galias{ae}{uni0E46} +\galias{ccedilla}{uni0E47} +\galias{egrave}{uni0E48} +\galias{eacute}{uni0E49} +\galias{ecircumflex}{uni0E4A} +\galias{edieresis}{uni0E4B} +\galias{igrave}{uni0E4C} +\galias{iacute}{uni0E4D} +\galias{icircumflex}{uni0E4E} +\galias{idieresis}{uni0E4F} +\galias{eth}{uni0E50} +\galias{ntilde}{uni0E51} +\galias{ograve}{uni0E52} +\galias{oacute}{uni0E53} +\galias{ocircumflex}{uni0E54} +\galias{otilde}{uni0E55} +\galias{odieresis}{uni0E56} +\galias{divide}{uni0E57} +\galias{oslash}{uni0E58} +\galias{ugrave}{uni0E59} +\galias{udieresis}{uni0E38.low} +\galias{yacute}{uni0E39.low} +\galias{Ucircumflex}{uni0E3A.low} + +% end of dbtt-old-alias.tex diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old.fontinst b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old.fontinst new file mode 100644 index 0000000000..4e50a8ac0a --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old.fontinst @@ -0,0 +1,78 @@ +% dbtt-old.fontinst + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\input fontinst.sty + +\needsfontinstversion{1.918} + + +% we explicitly set all slots in the encoding, so provide all glyph names +% in AFM files equally (this is, don't create `<glyph>-not' names) +\let\setnotglyph \setrawglyph + +% we want warnings for missing glyphs +\fontinstcc +\add_to\pre_fourth_etx_pass_hook{ + \def\do_slot{ + \if_undefined{g-\slot_name}\then + \fontinstwarningnoline{fontinst} + {missing~glyph~`\slot_name'\space + for~slot~\the\slot_number\space + in~font~`\out_filename'} + \fi + \do_character + } +} +\normalcc + + +% create PL files and an FD file +\installfonts + \setint{fontdimen(2)}{500} % SPACE + \setint{fontdimen(3)}{300} % STRETCH + \setint{fontdimen(4)}{100} % SHRINK + \setint{fontdimen(6)}{1000} % QUAD + \setint{fontdimen(7)}{0} % EXTRASPACE + + \installrawfont{fdbr8z}{dbtt,dbtt-old-alias,c90}{c90} + {C90}{dbss}{m}{n}{<-> s *[1.3]} + \installrawfont{fdbb8z}{dbttb,dbtt-old-alias,c90}{c90} + {C90}{dbss}{bx}{n}{<-> s *[1.3]} + \installrawfont{fdbbo8z}{dbttbi,dbtt-old-alias,c90}{c90} + {C90}{dbss}{bx}{sl}{<-> s *[1.3]} + \installrawfont{fdbo8z}{dbtti,dbtt-old-alias,c90}{c90} + {C90}{dbss}{m}{sl}{<-> s *[1.3]} +\endinstallfonts + + +\input finstmsc.sty + + +% create the dbtt-old.enc file +\installfonts + % the `makeenc' flag is used in c90.etx + \setint{makeenc}{1} + \setstr{encodingname}{dbtt-oldEncoding} + \inputetx{dbtt-old-alias} + \etxtoenc{c90}{dbtt-old} +\endinstallfonts + +\end + +% end of dbtt-old.fontinst diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old.map b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old.map new file mode 100644 index 0000000000..c48f73fe71 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old.map @@ -0,0 +1,4 @@ +fdbr8z DBThaiText " dbtt-oldEncoding ReEncodeFont " <dbtt-old.enc <dbtt.pfb +fdbb8z DBThaiTextBold " dbtt-oldEncoding ReEncodeFont " <dbtt-old.enc <dbttb.pfb +fdbo8z DBThaiTextItalic " dbtt-oldEncoding ReEncodeFont " <dbtt-old.enc <dbtti.pfb +fdbbo8z DBThaiTextBoldItalic " dbtt-oldEncoding ReEncodeFont " <dbtt-old.enc <dbttbi.pfb diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/garuda-c90.fontinst b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/garuda-c90.fontinst new file mode 100644 index 0000000000..81a1584d37 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/garuda-c90.fontinst @@ -0,0 +1,77 @@ +% garuda-c90.fontinst + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\input fontinst.sty + +\needsfontinstversion{1.918} + + +% we explicitly set all slots in the encoding, so provide all glyph names +% in AFM files equally (this is, don't create `<glyph>-not' names) +\let\setnotglyph \setrawglyph + +% we want warnings for missing glyphs +\fontinstcc +\add_to\pre_fourth_etx_pass_hook{ + \def\do_slot{ + \if_undefined{g-\slot_name}\then + \fontinstwarningnoline{fontinst} + {missing~glyph~`\slot_name'\space + for~slot~\the\slot_number\space + in~font~`\out_filename'} + \fi + \do_character + } +} +\normalcc + + +% create PL files and an FD file +\installfonts + \setint{fontdimen(2)}{500} % SPACE + \setint{fontdimen(3)}{300} % STRETCH + \setint{fontdimen(4)}{100} % SHRINK + \setint{fontdimen(6)}{1000} % QUAD + \setint{fontdimen(7)}{0} % EXTRASPACE + + \installrawfont{fgdr8z}{garuda,c90}{c90} + {C90}{garuda}{m}{n}{} + \installrawfont{fgdb8z}{garuda_b,c90}{c90} + {C90}{garuda}{bx}{n}{} + \installrawfont{fgdbo8z}{garuda_bo,c90}{c90} + {C90}{garuda}{bx}{sl}{} + \installrawfont{fgdo8z}{garuda_o,c90}{c90} + {C90}{garuda}{m}{sl}{} +\endinstallfonts + + +\input finstmsc.sty + + +% create the c90.enc file +\installfonts + % the `makeenc' flag is used in c90.etx + \setint{makeenc}{1} + \setstr{encodingname}{C90Encoding} + \etxtoenc{c90}{c90} +\endinstallfonts + +\end + +% end of garuda-c90.fontinst diff --git a/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/norasi-c90.fontinst b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/norasi-c90.fontinst new file mode 100644 index 0000000000..417f697194 --- /dev/null +++ b/language/chinese/CJK/cjk-4.8.5/utils/thaifont/tools/norasi-c90.fontinst @@ -0,0 +1,85 @@ +% norasi-c90.fontinst + +% Copyright (C) 1994-2021 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\input fontinst.sty + +\needsfontinstversion{1.918} + + +% we explicitly set all slots in the encoding, so provide all glyph names +% in AFM files equally (this is, don't create `<glyph>-not' names) +\let\setnotglyph \setrawglyph + +% we want warnings for missing glyphs +\fontinstcc +\add_to\pre_fourth_etx_pass_hook{ + \def\do_slot{ + \if_undefined{g-\slot_name}\then + \fontinstwarningnoline{fontinst} + {missing~glyph~`\slot_name'\space + for~slot~\the\slot_number\space + in~font~`\out_filename'} + \fi + \do_character + } +} +\normalcc + + +% create PL files and an FD file +\installfonts + \setint{fontdimen(2)}{500} % SPACE + \setint{fontdimen(3)}{300} % STRETCH + \setint{fontdimen(4)}{100} % SHRINK + \setint{fontdimen(6)}{1000} % QUAD + \setint{fontdimen(7)}{0} % EXTRASPACE + + \installrawfont{ftnr8z}{norasi,c90}{c90} + {C90}{nrsr}{m}{n}{} + \installrawfont{ftnb8z}{norasi_b,c90}{c90} + {C90}{nrsr}{bx}{n}{} + \installrawfont{ftnbi8z}{norasi_bi,c90}{c90} + {C90}{nrsr}{bx}{it}{} + \installrawfont{ftni8z}{norasi_i,c90}{c90} + {C90}{nrsr}{m}{it}{} + +% Thai glyphs in norasi_o and norasi_bo are identical to the shapes +% in norasi_i and norasi_bi, respectively. +% +% \installrawfont{ftno8z}{norasi_o,c90}{c90} +% {C90}{nrsr}{m}{sl}{} +% \installrawfont{ftnbo8z}{norasi_bo,c90}{c90} +% {C90}{nrsr}{bx}{sl}{} +\endinstallfonts + + +\input finstmsc.sty + + +% create the c90.enc file +\installfonts + % the `makeenc' flag is used in c90.etx + \setint{makeenc}{1} + \setstr{encodingname}{C90Encoding} + \etxtoenc{c90}{c90} +\endinstallfonts + +\end + +% end of norasi-c90.fontinst |