cjk-4.8.5/0000755000175000001440000000000014132605447012146 5ustar00wlusers00000000000000cjk-4.8.5/ChangeLog0000644000175000001440000024170514132605356013730 0ustar00wlusers000000000000002021-10-16 Werner LEMBERG 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 [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 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 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 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 * utils/lisp/emacs/cjk-enc.el (cjk-coding): Remove `chinese-big5'. Hin-Tak reports this doesn't work... 2016-12-26 Hin-Tak Leung [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 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 [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 [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, ): Ditto. 2014-08-31 Peter Breitenlohner * utils/hbf2gf/hbf2hf.w (path_open): Drop unused variable. 2014-06-28 Leo Liu [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 * 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 * texinput/CJK.sty (\Unicode): Fix conditional to allow line breaks. Problem reported by Jinsong Zhao ; it seems that this bug has been there since from the beginning. 2012-06-21 Werner LEMBERG Make some commands robust. * texinput/CJK.sty (\CJKtilde, \standardtilde, \CJKspace, \CJKnospace): Use \DeclareRobustCommand. 2012-05-20 Peter Breitenlohner [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 * texlive/cjk.pl: Add missing file. 2012-05-07 Werner LEMBERG 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 * 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 [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 [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 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 [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 * texinput/Bg5/Bg5.cpx, texinput/JIS/JIS.cpx: Fix typos. 2012-04-20 Werner LEMBERG * texinput/UTF8/zh-Hans.cpx: Synchronize. 2012-04-20 Jiangsheng Yu * texinput/GB/GB.cap, texinput/GB/GB.cpx: Improve. 2011-12-16 Hin-Tak Leung [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 * examples/thai.tex: Improve prologue comments. 2011-10-04 Werner LEMBERG [CEFconv, SJISconv] Document missing range 0xF0-0xFC. * utils/CEFconv/cefsconv.w, utils/SJISconv/sjisconv.w: Do it. 2011-10-04 Peter Breitenlohner [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 [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 [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 [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 [hbf2gf] Update manpage. * utils/hbf2gf/hbf2gf.1, doc/hbf2gf.txt: Remove information on ancient kpathsea versions. 2011-09-03 Peter Breitenlohner [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 [hbf2gf] Decorate with `const'. * utils/hbf2gf/hbf2gf.w, utils/hbf2gf/hbf.c: Do it. 2011-09-03 Peter Breitenlohner 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 * doc/CJK.txt: Document possible problems in `tabular' environment. Problem reported by LI Ruo-Meng <15003990378@163.com>. 2010-01-04 Werner LEMBERG * doc/CJK.txt: Document Babel bug related to ^^xx notation. Problem reported by Peter Grzybek . 2009-11-07 Werner LEMBERG 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 * examples/CJKfntef.tex: Updated. 2009-08-25 Wenchang Sun 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 * texinput/CJKfntef.sty: Replace \global with \CJKf@global. 2009-01-19 Werner LEMBERG * texlive/cjk-build.pl: Remove unused stuff. From Karl Berry. 2009-01-05 Werner LEMBERG * doc/CJK.txt: Document usage of CJKutf8.sty with beamer class. 2008-12-29 Werner LEMBERG 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 * 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 * 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 * doc/history.txt: Updated. * doc/CJKnumb.txt: New file. * MANIFEST: Updated. 2008-12-28 Werner LEMBERG 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 * contrib/wadalab/DNP.txt: Renamed to... * contrib/wadalab/wadalab.txt: This. * MANIFEST: Updated. 2008-12-28 Werner LEMBERG 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 * 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 * texinput/CJK.sty (\Unicode): Use vertical glyph representation forms. 2008-11-25 Werner LEMBERG * texinput/CJKnumb.sty (\CJKdigits*): New command to use traditional form of glyph zero. * doc/history.txt: Updated. 2008-10-01 Werner LEMBERG * *.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 * utils/subfonts/subfonts.pe: Fix error message for too-old FontForge versions. 2008-08-21 Werner LEMBERG * utils/subfonts/subfonts.pe: Handle CID-keyed fonts. 2008-08-10 Werner LEMBERG 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 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 Make macros in pinyin.sty robust. Problem reported by Denis Roegel . * 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 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 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 * Makefile (DISTDIRS): We are now using git, not CVS. 2008-05-18 Werner LEMBERG * doc/history.txt: Mention xCJK.sty. 2008-05-17 Werner LEMBERG * 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 * utils/hbf2gf/hbf2gf.1: Replace some `-' with `\-'. 2008-03-10 Werner LEMBERG * utils/hbf2gf/hbf2gf.1: s|-|\-| where appropriate. 2008-03-09 Werner LEMBERG * Makefile (XELATEX): Call xelatex twice. (manpages): Increase font size to 11pt for DVI and PDF output. 2008-03-09 Werner LEMBERG 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 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 * texinput/CJKutf8.sty, texinput/xCJK.sty, texinput/mule/MULEenc.sty: Use \ProvidesPackage, not \ProvidesFile. 2008-03-03 Werner LEMBERG 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 * doc/xCJK.txt: New file. * MANIFEST: Updated. 2008-02-11 Werner LEMBERG * doc/fonts.txt: Document installation of cyberbit.ttf. 2008-02-05 Werner LEMBERG 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 * 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 * utils/subfonts/vertical.pe, utils/subfonts/vertref.pe: Abort if no vertical glyph representation forms are available. 2006-12-05 Werner LEMBERG 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 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 * texinput/CJK.enc: Add punctuation tables for GBK encoding. 2007-11-06 Werner LEMBERG * 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 * texinput/CJKfntef.sty (\CJK@preUnderdot): Use \cdot (in math mode). (\CJKxout): Use `/' in math mode. (\CJKunderdotbasesep, \CJKunderdotsep): Adjusted. 2007-10-26 Werner LEMBERG * 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 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 * 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 * utils/subfonts/vertical.pe, utils.subfonts/vertref.pe: Adapt to FontForge version 2007-Sep-10 and newer. 2007-07-26 Gernot Hassenpflug * 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 * texinput/pinyin.sty (\ding): Rename to... (\py@ding): This to make \ding work actually. 2007-05-04 Werner LEMBERG * texinput/CJKvert.sty (\CJKsymbol): Honour \CJKhdef{offset}{...}. * doc/fdxfiles.txt, doc/history.txt: Document it. 2007-04-08 Werner LEMBERG * 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 * texinput/pinyin.sty (\py@macron, \py@@@v): Support T5 encoding. * doc/history.txt: Document it. 2006-10-31 Werner LEMBERG * doc/CJK.txt, doc/CJKutf8.txt: Mention Byte Order Mark in UTF-8. 2006-10-19 Werner LEMBERG * 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 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 * 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 * doc/CJKutf8.txt, doc/history.txt: Minor additions. * MANIFEST: Sorted and updated. 2006-10-05 Werner LEMBERG * 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 * 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 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 * 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 * 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 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 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 * 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 * 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 * texinput/*: Add various replacement files for TeXLive. 2006-08-17 Werner LEMBERG * doc/CJK.txt: Mention problem with fourier.sty. 2006-08-01 Werner LEMBERG * doc/cjk-enc.txt: Mention problems with UTF-8. 2006-07-30 Werner LEMBERG * contrib/wadalab/DNP.txt: Fix patch for wftodm.c. 2006-04-25 Danai SAE-HAN * : Add GPL. * MANIFEST: New file. 2006-03-25 Werner LEMBERG * texinput/CJKutf8.sty (\pdfstringdefPreHook): Don't overwrite but prepend to this macro. 2006-03-23 Werner LEMBERG * 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 * texinput/KS/HLaTeX/c63sh.fd, texinput/KS/HLaTeX/c64sh.fd, texinput/KS/HLaTeX/c65sh.fd: Fix font declaration. Bug reported by Danai SAE-HAN . 2006-02-20 Werner LEMBERG * texinput/UTF8/UTF8.bdg: Bugfix: Handle 0x80 also. * doc/history.txt: Mention it. 2006-02-09 Werner LEMBERG 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 * 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 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 * doc/CJK.txt: Mention usage of Bg5+ for HKSCS-2001/HKSCS-2004. 2006-01-04 Werner LEMBERG * 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 * utils/hbf2gf/cfg/csso12.cfg: Fix typo. 2005-10-31 Danai SAE-HAN * utils/subfonts/makefdx.pl: Provide header for output. Add \CJKvlet lines. 2005-08-19 Werner LEMBERG * doc/TeXLive.txt: New file, describing the relationship between CJK files and TeXLive packages. 2005-08-18 Werner LEMBERG * 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 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 * 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 * COPYING: Updated to new FSF address. 2005-08-05 Werner LEMBERG 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 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 * 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 * 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 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 * utils/subfont/uni2sfd.pl (read_tfmfile): Fix reading CHARWD, CHARHT, and CHARDP. 2005-07-31 Werner LEMBERG * utils/subfont/sfd2uni.pl: New script to produce Unicode virtual subfonts from encoding specific subfonts. 2005-07-29 Werner LEMBERG * 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 * 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 * utils/subfonts/makefdx.pl: New script to create FDX entries. 2005-07-17 Werner LEMBERG * 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 * 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 * doc/history.txt: Updated. 2005-07-05 Werner LEMBERG * utils/thaifont/tools/c90.etx: Fix some typos. 2005-07-04 Werner LEMBERG 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 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 * 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 * 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 * doc/CJK.doc: Improve documentation of `encapsulated' option. Suggested by Brian Murphy. 2005-04-26 Werner LEMBERG * 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 * 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 * texinput/CJK.sty (\CJKspace): Don't use \relax but \@empty. 2005-03-02 Werner LEMBERG * doc/CJK.doc: Mention `CJKbookmarks' option of hyperref package. 2005-02-23 Werner LEMBERG * README: Updated. No public CVS access possible currently. 2004-07-26 Werner LEMBERG * 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 * 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 * doc/reftex.doc: New file. * doc/history.txt: Updated. 2004-06-07 Werner LEMBERG * 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 * 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 * contrib/wadalab/DNP.doc: Improve patch for wftodm.c. 2004-04-29 Werner LEMBERG 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 * 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 Bug fix: Umlaut u with diacritic appears bold. * texinput/pinyin.sty (\py@@@v): Apply kerning at correct place. 2004-02-07 Werner LEMBERG 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 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 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 * doc/pdf/*: New directory tree documenting usage of CJK for improved PDF output. * doc/history.txt: Document it. 2004-01-29 Wenchang Sun * 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 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 * texinput/mule/MULEenc.sty: Fix positions of \texordfeminine and \textordmasculine. 2003-09-20 Werner LEMBERG With the help of Paul Eggert and Edward G.J. Lee , 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 * 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 * 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 * 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 Version 4.5.2 released ====================== Update version numbers and time stamps in all non-binary files. 2003-03-19 Werner LEMBERG Add improved support for pseudo-vertical typesetting. Based on ideas by Robert Fendt . * 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 \///// This macro is then called if it exists, instead of calling \CJKsymbol. For halfwidth katakana, the macro is called \//// For HLaTeX, the macro is called \///// For UTF8, only characters in the range 0x800-0xFFFF get the new code. , , and 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 * texinput/pinyin.sty (\rua): New syllable. While only dialect, it actually is used... 2003-03-12 Werner LEMBERG * texinput/pinyin.sty (\den, \chua): Add missing syllables (found by Jean-Luc Koning ). 2003-03-07 Werner LEMBERG * texinput/pinyin.sty (\py@hy): Assure horizontal mode. 2003-02-10 Werner LEMBERG * 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 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 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 * texinput/CNS/EUC-TW.chr (\CJK@shiftchar): Pass correct parameters to \CJKchar. 2002-06-19 Werner LEMBERG Version 4.5.1 released ====================== Update version numbers and time stamps in all non-binary files. 2002-06-17 Werner LEMBERG 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 * 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 * texinput/Bg5/c00bsmi.fd, texinput/Bg5/c00bsmir.fd: Fix typo. 2002-06-13 Werner LEMBERG * 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 * texinput/JISdnp.enc (\CJK@JISdnpEncoding): Fix position of closing brace. 2002-06-07 Werner LEMBERG * texinput/thai/c90enc.def: New file, contributed by Dominique Unruh . * texinput/thai/thaicjk.ldf: Use it. * doc/history.txt: Updated. 2002-05-16 Werner LEMBERG * 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 * 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 * texinput/CJKnumb.sty (\CJK@traditionalNumbers, \CJK@simplifiedNumbers): New macros. Use them for GB, GBK, Bg5, Bg5+ hooks. 2002-05-01 Werner LEMBERG * 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 * 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 * texinput/CJK.sty (\pickup@font): Add comment character. 2002-04-28 Werner LEMBERG Preparation of release 4.5.0. * README: Updated. 2002-04-27 Werner LEMBERG * texinput/CJK.sty (\CJKsymbol, \CJKsymbols): Simplified. (\Unicode, \CJKenc): Fix error text. 2001-10-08 Mike Fabian * contrib/wadalab/c42goth.fd: Use `dgj' for normal series and add `\CJKbold' for bold series. 2001-07-31 Werner LEMBERG * doc/CJK.doc: Note use of \cleardoublepage if problems occur with two-column printing. 2001-07-27 Fabrice Popineau * utils/cjklatex/cjklatex.c: New file. 2001-06-27 Werner LEMBERG * 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 * texinput/CJK.enc (\CJK@disableMakeUppercase): Define it as \relax if in preprocessed mode. 2001-06-14 HANDA Ken'ichi * 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 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 * texinputs/CJK.sty: Restore EOL character before loading `CJK.cfg'. 2001-05-18 Werner LEMBERG * contrib/wadalab/DNP.doc: Document installation for pdfTeX. * contrib/wadalab/makefont: Updated to normalize font matrix of PS fonts. 2001-04-24 Werner LEMBERG * utils/hbf2gf/config.guess, utils/hbf2gf/config.sub: Updated to latest version from gnu.org. 2001-04-21 Werner LEMBERG * 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 * 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 * utils/lisp/emacs-20.3/cjk-enc.el: Fix documentation to follow Elisp documentation conventions. 2001-04-01 Werner LEMBERG Make UTF8 encoding work in TOC. * texinput/CJK.sty (\CJK@namedef): New macro. * texinput/UTF8/UTF8.bdg: Use it. 2001-03-28 Werner LEMBERG * texinput/mule/MULEenc.sty: Use \textnumero instead of \CYRNo (found by Vladimir Volovich). 2001-03-18 Werner LEMBERG * utils/lisp/cjkspace.el, INSTALL: Fix documentation. 2001-03-15 Werner LEMBERG 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 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 * doc/INSTALL: Minor improvements. 2001-02-13 Werner LEMBERG * utils/hbf2gf/config.{guess,sub}: Updated (from ftp.gnu.org). 2000-12-17 Werner LEMBERG * 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 * utils/hbf2gf/configure.in: Fix kpathsea checking message. * utils/hbf2gf/configure: Updated. 2000-12-02 Werner LEMBERG * 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 * doc/INSTALL: Fix documentation of --with-kpathsea-include. * doc/cjk-enc.doc: Fix typo. 2000-09-21 Werner LEMBERG * texinput/{CJK.sty, CJKulem.sty, pinyin.sty, ruby.sty}: Replacing some \ifdim with \ifnum. 2000-09-20 Werner LEMBERG * texinput/CJKulem.sty: Fixed two nasty bugs (spotted by Sim Ing ): No underlining for \CJKglue and no \CJKglue before and after \uline. 2000-08-28 Werner LEMBERG * utils/thaifont/texmf/dvips/config/config.{norasi,dbtt}: New files. * doc/thaifont.doc: Added info about PS font configuration. 2000-08-24 Werner LEMBERG * utils/lisp/emacs-20.3/thai-word.el (thai-update-word-table): Add documentation string. 2000-08-24 HANDA Ken'ichi * 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 * texinput/thai/thaicjk.ldf: Remove warning about nonexistent hyphenation patterns. 2000-08-20 Werner LEMBERG 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 * examples/thai.tex: New file. * doc/history.txt: Updated. * examples/CJKbabel.tex: Doc fixes. 2000-08-17 Werner LEMBERG * doc/cjk-enc.el, doc/thaifont.doc: Give better URL for thailatex package. 2000-08-15 Werner LEMBERG 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 * 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 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 . Will now run under XEmacs also (with help of Martin Buchholz ). 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 * texinput/CJKulem.sty: New file which provides CJK support for ulem.sty. * doc/history.txt, doc/CJK.doc: Updated. 2000-08-09 Werner LEMBERG * 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 * utils/hbf2gf/config.guess, utils/hbf2gf/config.sub: Updated to latest version from ftp.gnu.org. 2000-07-27 Werner LEMBERG * utils/thaiconv/thaiconv.c: Improve comment. * *.fd: Set \hyphenchar to -1 for all CJK fonts. 2000-06-23 Werner LEMBERG * 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 * 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 * texinput/*/*.cpx: Replace incorrect 0xFF with 0x7F. 2000-04-18 Werner LEMBERG * 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 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 * 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 * 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 * texinput/CJK.sty: Fixing definition of ^^7f to do nothing if written to the TOC file. 2000-03-12 Werner LEMBERG * 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 * 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 it is impossible to provide hyphenation patterns for transcribed Japanese without semantic analysis. 2000-03-02 Werner LEMBERG * README, doc/INSTALL: Slight improvements. * utils/hbf2gf/Makefile.in, utils/hbf2gf/configure.in: Fix incorrect test for NO_STRDUP. Thanks to . 2000-02-06 Werner LEMBERG * 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 for finding this bug). 2000-01-26 Werner LEMBERG * 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 * 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@ definitions. 2000-01-14 Werner LEMBERG * doc/cjk-enc.doc: Added info about file variables to specify document encoding. 2000-01-03 Ching-Mo CHANG * 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 * utils/hbf2gf/configure.in: Removed `-pedantic' flag which causes problems with newer gcc versions. 1999-11-19 Werner LEMBERG * examples/muletest.tex, examples/CJKbabel.tex: Fixing a typo. 1999-11-07 Werner LEMBERG * doc/CEF.doc: Minor fixes. * doc/CJK.doc: Updated; minor fixes. 1999-11-06 Werner LEMBERG * doc/cjk-enc.doc, doc/commands.doc, doc/fonts.doc: Minor fixes. * doc/vertical.doc, doc/history.txt: Updated. 1999-11-05 Werner LEMBERG * texinput/mule/MULEenc.sty: Added \CJKinclude{} and \CJKbibliography{}. These functions act identically to \include resp. \bibliography but load .cjk resp. -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 * doc/cjk-enc.doc: Small improvement in explanation of usage with AUC TeX. 1999-10-24 Werner LEMBERG * 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 * 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 * 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 * 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 * 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 * doc/history.txt: Updated. 1999-09-21 Werner LEMBERG * texinput/pinyin.sty: Adding hyphenation points at the end of all syllables. 1999-09-18 Werner LEMBERG * 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 * 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 * utils/thaiconv/thaiconv.c (adj): Fixed invalid array index in case of marks without base characters. 1999-07-07 Werner LEMBERG * texinput/Bg5/Bg5.chr, texinput/extended.chr: Fixed a typo \CJK@temp->\CJK@gtemp 1999-06-30 Werner LEMBERG * 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 * doc/TDS.doc: Completely revised. 1999-06-10 Werner LEMBERG * 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 * 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 * *.fd files: minor documentation addition regarding font encoding. * all files: Changed date/version to 4.3.0. 1999-06-02 Werner LEMBERG * README: Added info about http and ftp home sites and how to access the CVS repository. 1999-06-01 Werner LEMBERG * README: Added info about CVS mailing list. 1999-05-29 Werner LEMBERG * README: Added mailing list. * doc/INSTALL: Small correction. * README: Small additions. ;; Local Variables: ;; coding: utf-8 ;; End: Copyright (C) 1999, 2001-2012 Werner Lemberg 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. cjk-4.8.5/Makefile0000644000175000001440000001344514132605356013614 0ustar00wlusers00000000000000# Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/TODO0000644000175000001440000000010014132605356012624 0ustar00wlusers00000000000000READMEs in Korean. More support for Omega. ---End of TODO--- cjk-4.8.5/README0000644000175000001440000000236414132605356013032 0ustar00wlusers00000000000000Welcome 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 . 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 /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--- cjk-4.8.5/MANIFEST0000644000175000001440000003204314132605356013300 0ustar00wlusers00000000000000Copyright (C) 1994-2021 Werner Lemberg 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--- cjk-4.8.5/contrib/0000755000175000001440000000000014132605447013606 5ustar00wlusers00000000000000cjk-4.8.5/contrib/wadalab/0000755000175000001440000000000014132605447015201 5ustar00wlusers00000000000000cjk-4.8.5/contrib/wadalab/fixwada0000644000175000001440000000377014132605356016555 0ustar00wlusers00000000000000# Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/contrib/wadalab/c42maru.fd0000644000175000001440000000111114132605356016762 0ustar00wlusers00000000000000% This is the file c42maru.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/contrib/wadalab/wadalab.map0000644000175000001440000001105414132605356017273 0ustar00wlusers00000000000000 % Wadalab Japanese fonts dgjgreek dgjgreek # # 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 () { 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 () { 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 # " ". # $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 () { 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 ` '. 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 cjk-4.8.5/contrib/wadalab/c70goth.fdx0000644000175000001440000001263014132605356017160 0ustar00wlusers00000000000000% This is the file c70goth.fdx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Gernot Hassenpflug % % 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 cjk-4.8.5/contrib/wadalab/c52maru.fdx0000644000175000001440000000054514132605356017165 0ustar00wlusers00000000000000% This is the file c52maru.fdx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/contrib/wadalab/DNP.sfd0000644000175000001440000000332514132605356016322 0ustar00wlusers00000000000000# 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 cjk-4.8.5/contrib/wadalab/c52min.fd0000644000175000001440000000111114132605356016602 0ustar00wlusers00000000000000% This is the file c52min.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/contrib/wadalab/makefont0000644000175000001440000000555614132605356016742 0ustar00wlusers00000000000000#!/bin/sh # # Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/contrib/wadalab/c52maru.fd0000644000175000001440000000111414132605356016766 0ustar00wlusers00000000000000% This is the file c52maru.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/contrib/wadalab/c42goth.fd0000644000175000001440000000111314132605356016761 0ustar00wlusers00000000000000% This is the file c42goth.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/contrib/wadalab/c70maru.fd0000644000175000001440000000115414132605356016772 0ustar00wlusers00000000000000% This is the file c70maru.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/contrib/wadalab/c42goth.fdx0000644000175000001440000000433714132605356017164 0ustar00wlusers00000000000000% This is the file c42goth.fdx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/contrib/wadalab/c70min.fd0000644000175000001440000000133214132605356016607 0ustar00wlusers00000000000000% This is the file c70min.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/contrib/wadalab/c70maru.fdx0000644000175000001440000001263014132605356017163 0ustar00wlusers00000000000000% This is the file c70maru.fdx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Gernot Hassenpflug % % 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 cjk-4.8.5/contrib/wadalab/fixwada2.pl0000644000175000001440000001312214132605356017241 0ustar00wlusers00000000000000#! /usr/bin/perl -w # # Copyright (C) 1994-2021 Werner Lemberg # # 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 () { 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 () { 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 () { # 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 () { # 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 cjk-4.8.5/contrib/wadalab/c42maru.fdx0000644000175000001440000000433714132605356017167 0ustar00wlusers00000000000000% This is the file c42maru.fdx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/contrib/wadalab/wadalab.txt0000644000175000001440000003145614132605356017345 0ustar00wlusers00000000000000This 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 , 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 `/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 `/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 `/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 `/dvips/config' instead. b) Add the following line to /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 `/dvips/wadalab' for recent teTeX and TeXLive versions, and `/dvips/config' otherwise. 3c. [This step is optional and should be omitted for recent teTeX and TeXLive versions.] Append `wadalab.map' to `/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 /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]{}{} , 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 +#include +#include #include -#include +#include 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 for creating CJK and comments to this help document. and Joshua Redstone 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 . ---End of wadalab.txt--- cjk-4.8.5/contrib/wadalab/c52min.fdx0000644000175000001440000000054314132605356017002 0ustar00wlusers00000000000000% This is the file c52min.fdx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/contrib/wadalab/c70min.fdx0000644000175000001440000001651714132605356017012 0ustar00wlusers00000000000000% This is the file c70min.fdx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Gernot Hassenpflug % % 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 cjk-4.8.5/contrib/wadalab/c70goth.fd0000644000175000001440000000113014132605356016761 0ustar00wlusers00000000000000% This is the file c70goth.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/contrib/wadalab/c42min.fd0000644000175000001440000000127114132605356016610 0ustar00wlusers00000000000000% This is the file c42min.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/contrib/wadalab/c42min.fdx0000644000175000001440000000567614132605356017015 0ustar00wlusers00000000000000% This is the file c42min.fdx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/examples/0000755000175000001440000000000014132605447013764 5ustar00wlusers00000000000000cjk-4.8.5/examples/CJKmixed.tex0000644000175000001440000000515114132605356016145 0ustar00wlusers00000000000000% This is the file CJKmixed.tex of the CJK package % for testing CJK text written vertically. % % written by Werner Lemberg % % 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)~臬銝鈭蝬撣貉◤啁憿園拍嗥閫蝑 銝哨隞交嫣噶敶W閬箇\uline{頝銝銝銝荔嗥楊蝯瑽 撌脣器摨寡} \textbf{啁瑽蝝啁嚗臬憒雿梯砍 蝑鈭閫嗥楊蝯瑽閰脤銝剔隤芣} \end{TChinese} \end{minipage}% }% \hspace{0.5cm}% \begin{minipage}[c]{8cm} \begin{otherlanguage}{vietnamese} Ph廕吵 ``Nh廙疸g c璽u h廙i v gi廕ξ 獺p thが廙ng g廕搆'' (vi廕篙 t廕眩 t廙 ti廕積g Anh l FAQ) が廙θ n礙u ra 廙 璽y nh廕彩 m廙卉 穩ch thu th廕計 nh廙疸g c璽u h廙i thが廙ng g廕搆 trong th廙帷 t廕 v nh廙疸g l廙i gi廕ξ 獺p th穩ch h廙φ nh廕另 c廙吧 n籀. \uline{T廙 l廕吵 廕叩 b廕τ cu廙i c羅ng 廕積 nay, 瓊 c籀 nh廙疸g s廙 thay 廙i kh獺 l廙n trong c廕只 tr繳c c廙吧 FAQ.} \textbf{廙 hi廙u r繭 hヾn b廕》 n礙n xem l廕【 chがヾng ``Lm sao t繫i c籀 th廙 廙c u廙θ FAQ''.} \end{otherlanguage} \end{minipage} \end{center} \begin{TChinese} 砍虜蝑~(FAQ list)~臬銝鈭蝬撣貉◤啁憿園拍嗥閫蝑銝哨隞 嫣噶敶W閬箇\uline{頝銝銝銝荔嗥楊蝯瑽撌脣器摨寡} \textbf{啁瑽蝝啁嚗臬憒雿梯砍蝑鈭閫嗥楊蝯瑽 閰脤銝剔隤芣} \end{TChinese} \end{CJK} \end{document} %%% Local Variables: %%% mode: latex %%% coding: utf-8 %%% TeX-master: t %%% End: cjk-4.8.5/examples/py_test.tex0000644000175000001440000000122314132605356016172 0ustar00wlusers00000000000000% This is the file py_test.tex of the CJK package % for testing pinyin syllables with LaTeX2e % % created by Werner Lemberg % % 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} cjk-4.8.5/examples/rubytest.tex0000644000175000001440000000242514132605356016371 0ustar00wlusers00000000000000% This is the file rubytest.tex of the CJK package % for testing ruby with LaTeX2e % % created by Werner Lemberg % % 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: cjk-4.8.5/examples/thai_utf8.tex0000644000175000001440000000265214132605356016405 0ustar00wlusers00000000000000% This is the file thai_utf8.tex of the CJK package % for testing Thai (in utf-8 encoding). % % written by Werner Lemberg % % 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 鉊鉊菽鉆鉊鉊丞葭鉆鉊R鉆鉊鉊﹤葡鉊鉊鉊晤鉊鉆鉊鉆鉊鉊詮鉊鉊鉊菽鉆鉊丞鉊. \textbf{鉊鉊嫩腦鉊耜腺鉊丞萼鉆鉊冢葭鉊R鉊芹董鉊徇腦鉊晤鉆鉊鉊鉊鉊芹腦鉆鉊耜鉆鉊徇腹鉆鉆鉊鉆鉊鉊耜鉊鉆鉊抉 ``鉆鉊鉊鉊鉊芹腦鉆鉊耜鉆鉊丞萼鉊抉葩鉊鉊菽鉊耜腦鉊冢鉊耜 FAQ.''} \end{document} %%% Local Variables: %%% coding: utf-8 %%% mode: latex %%% TeX-master: t %%% TeX-command-default: "CJKLaTeX" %%% End: cjk-4.8.5/examples/muletest.tex0000644000175000001440000001362514132605356016356 0ustar00wlusers00000000000000% This is the file muletest.tex of the CJK package % for testing text written with Mule and Emacs 20. % % written by Werner Lemberg % % 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酳fig gestellte Fragen und ihre Antworten in einer gef鄟ligen Form zusammenzufassen. Die Struktur dieses FAQ wurde drastisch ge鄚dert seit der letzten Version. \textbf{Fr 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 ``NhXng cTu hni vR giVi hSp thQ7ng g╯p'' (vi◥t t╮t tI ti◥ng Anh lR FAQ) hQvc nbu ra 8 hTy nh╰m mpc hech thu th╡p nhXng cTu hni thQ7ng g╯p trong thic t◥ vR nhXng l7i giVi hSp thech hvp nh═t cta nk. TI l╞n ═n bVn cu0i cqng h◥n nay, hU ck nhXng si thay h2i khS lⅥn trong c═u trrc cta FAQ. \textbf{╱ hi╱u rm hⅤn bGn nbn xem lGi chQⅤng ``LRm sao tli ck th╱ hoc huvc 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: cjk-4.8.5/examples/CJKutf8.tex0000644000175000001440000001303314132605356015723 0ustar00wlusers00000000000000% This is the file CJKutf8.tex of the CJK package % for testing the CJKutf8 style file. % % written by Werner Lemberg % % 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)~臭銝鈭蝏撣貉◤桀啁桅園敶閫蝑銝哨隞 嫣噶敶W閬箇\uline{頝銝銝銝荔嗥蝏撌脣蝠摨孵} \textbf{單啁蝏嚗臬憒雿霂餅祇桃鈭閫嗥蝏 霂仿★銝剔霂湔} \end{SChinese} \begin{TChinese} 砍虜蝑~(FAQ list)~臬銝鈭蝬撣貉◤啁憿園拍嗥閫蝑銝哨隞 嫣噶敶W閬箇\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{陣{}瑽恍U艾胯 恙FAQ~ 株狎踵嫘具格桅柴\ruby{}{}\ruby{址{ }虫} \end{Japanese} \begin{otherlanguage}{vietnamese} Ph廕吵 ``Nh廙疸g c璽u h廙i v gi廕ξ 獺p thが廙ng g廕搆'' (vi廕篙 t廕眩 t廙 ti廕積g Anh l FAQ) が廙θ n礙u ra 廙 璽y nh廕彩 m廙卉 穩ch thu th廕計 nh廙疸g c璽u h廙i thが廙ng g廕搆 trong th廙帷 t廕 v nh廙疸g l廙i gi廕ξ 獺p th穩ch h廙φ nh廕另 c廙吧 n籀. \uline{T廙 l廕吵 廕叩 b廕τ cu廙i c羅ng 廕積 nay, 瓊 c籀 nh廙疸g s廙 thay 廙i kh獺 l廙n trong c廕只 tr繳c c廙吧 FAQ.} \textbf{廙 hi廙u r繭 hヾn b廕》 n礙n xem l廕【 chがヾng ``Lm sao t繫i c籀 th廙 廙c u廙θ 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: cjk-4.8.5/examples/SJIS.tex0000644000175000001440000000145414132605356015261 0ustar00wlusers00000000000000% This is the file SJIS.tex of the CJK package % for testing Japanese (in SJIS encoding). % % written by Werner Lemberg % % 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~XgAWA B怋FAQ~Xg\AOX 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: cjk-4.8.5/examples/CJKspace.tex0000644000175000001440000000153314132605356016132 0ustar00wlusers00000000000000% This is the file CJKspace.tex of the CJK package % for testing the CJKspace style file. % % written by Werner Lemberg % % 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+ 隞敹賜丘JK摮銋渡蝛箇質靽嚗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: cjk-4.8.5/examples/CJKfntef.tex0000644000175000001440000000450214132605356016140 0ustar00wlusers00000000000000% This is the file CJKfntef.tex of the CJK package % for testing CJKfntef.sty. % % written by Werner Lemberg % % 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: cjk-4.8.5/examples/Big5.tex0000644000175000001440000000131414132605356015272 0ustar00wlusers00000000000000% This is the file Big5.tex of the CJK package % for testing Chinese (in Big 5 encoding). % % written by Werner Lemberg % % 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)~是從一些經常被問到的問題及其適當的解 答中,以方便的形式摘要而出的。跟上一版不同的是,其編排結構已徹底改變。 \textbf{有關新結構的細節,可參考「如何閱讀本問答集及了解其編排結構」該 項中的說明。} \end{CJK*} \end{document} %%% Local Variables: %%% coding: big5 %%% mode: latex %%% TeX-master: t %%% TeX-command-default: "CJKLaTeX" %%% End: cjk-4.8.5/examples/README0000644000175000001440000000572214132605356014651 0ustar00wlusers00000000000000Please 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. cjk-4.8.5/examples/CEF_test.tex0000644000175000001440000000201114132605356016133 0ustar00wlusers00000000000000% 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} cjk-4.8.5/examples/UTF8.tex0000644000175000001440000000172614132605356015241 0ustar00wlusers00000000000000% This is the file UTF8.tex of the CJK package % for testing UTF 8 encoding. % % written by Werner Lemberg % % 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: cjk-4.8.5/examples/GB.tex0000644000175000001440000000113714132605356014777 0ustar00wlusers00000000000000% This is the file GB.tex of the CJK package % for testing Chinese (in GB encoding). % % written by Werner Lemberg % % 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: cjk-4.8.5/examples/Big5vert.tex0000644000175000001440000000136014132605356016174 0ustar00wlusers00000000000000% 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 % % Version 4.8.5 (16-Oct-2021) \documentclass[12pt]{article} \usepackage{CJK} \usepackage{CJKvert} \begin{document} \begin{CJK*}{Bg5}{bsmi} \CJKtilde \noindent 本常問問答集~(FAQ list)~是從一些經常被問到的問題及其適當的解 答中,以方便的形式摘要而出的。跟上一版不同的是,其編排結構已徹底改變。 \textbf{有關新結構的細節,可參考「如何閱讀本問答集及了解其編排結構」該 項中的說明。} \end{CJK*} \end{document} %%% Local Variables: %%% coding: big5 %%% mode: latex %%% TeX-master: t %%% TeX-command-default: "CJKLaTeX" %%% End: cjk-4.8.5/examples/KS.tex0000644000175000001440000000117014132605356015021 0ustar00wlusers00000000000000% This is the file KS.tex of the CJK package % for testing Korean (in KS encoding). % % written by Werner Lemberg % % 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: cjk-4.8.5/examples/JIS.tex0000644000175000001440000000134314132605356015133 0ustar00wlusers00000000000000% This is the file JIS.tex of the CJK package % for testing Japanese (in JIS encoding). % % written by Werner Lemberg % % 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: cjk-4.8.5/examples/thai.tex0000644000175000001440000000205314132605356015432 0ustar00wlusers00000000000000% This is the file thai.tex of the CJK package % for testing Thai (in TIS-620 encoding). % % written by Werner Lemberg % % 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 塹樨鏑狶H暽鉧郯虮贈誘荈畛煬頞畛×劃駖瞻識擏慞苳茧芮太募錨嘔棡廕熒梛迡ョ. 滮癟岋橏坎竻證癒疰 FAQ 塹歖酷涷繒隞轄△桄扭菔贈頩煬魨體. \textbf{棻證藍冓邯織弝佸挹滮癟岋橏扼佹鳼湧例〞駍 ``滮癟岋橏扭瓚л試÷襖骳 FAQ.''} \end{document} %%% Local Variables: %%% coding: thai-tis620 %%% mode: latex %%% TeX-master: t %%% TeX-command-default: "CJKLaTeX" %%% End: cjk-4.8.5/examples/CJKbabel.tex0000644000175000001440000001415014132605356016103 0ustar00wlusers00000000000000% 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 % % 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酳fig gestellte Fragen und ihre Antworten in einer gef鄟ligen Form zusammenzufassen. \uline{Die Struktur dieses FAQ wurde drastisch ge鄚dert seit der letzten Version.} \textbf{Fr 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 ``NhXng cTu hni vR giVi hSp thQ7ng g╯p'' (vi◥t t╮t tI ti◥ng Anh lR FAQ) hQvc nbu ra 8 hTy nh╰m mpc hech thu th╡p nhXng cTu hni thQ7ng g╯p trong thic t◥ vR nhXng l7i giVi hSp thech hvp nh═t cta nk. \uline{TI l╞n ═n bVn cu0i cqng h◥n nay, hU ck nhXng si thay h2i khS lⅥn trong c═u trrc cta FAQ.} \textbf{╱ hi╱u rm hⅤn bGn nbn xem lGi chQⅤng ``LRm sao tli ck th╱ hoc huvc 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: cjk-4.8.5/utils/0000755000175000001440000000000014132605447013306 5ustar00wlusers00000000000000cjk-4.8.5/utils/f_name.bat0000644000175000001440000001651314132605356015230 0ustar00wlusers00000000000000@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= cjk-4.8.5/utils/hbf2gf/0000755000175000001440000000000014132605447014444 5ustar00wlusers00000000000000cjk-4.8.5/utils/hbf2gf/Makefile.in0000644000175000001440000000602714132605356016515 0ustar00wlusers00000000000000# Makefile for hbf2gf -- wl@gnu.org # Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/utils/hbf2gf/hbf2gf.def0000644000175000001440000000012114132605356016253 0ustar00wlusers00000000000000NAME HBF2GF WINDOWCOMPAT DESCRIPTION 'hbf2gf (CJK Ver. 4.8.5)' STACKSIZE 0x80000 cjk-4.8.5/utils/hbf2gf/hbf2gf.w0000644000175000001440000024452414132605356016004 0ustar00wlusers00000000000000% This is the cweb file hbf2gf.w of the CJK package ver. 4.8.5 16-Oct-2021 % Copyright (C) 1994-2021 Werner Lemberg % % 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 */@# @= 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 @@; @@; @@;@# int main(int argc, char *argv[]) {char *p; @@;@# @@;@# 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) @@;@# @@;@# @@;@# 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" @= {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" @= {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. @= if(argc == 2) {if(strcmp(argv[1], "--help") == 0) @@; else if(strcmp(argv[1], "--version") == 0) @@; }@# 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. @= {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|. @= {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 */ } @ @= #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #ifdef TM_IN_SYS_TIME #include #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. @= 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 " @= 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. @= 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 */ @ @= 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++) @@; } @ 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 @= {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}$ */ @= 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. @= 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}$ */@# @@; @@; @@; } @ \.{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_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_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 @= 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. @= 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 @= 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. @= {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. @= 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 @@; } } 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; } } @ @= {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) {@@; @@; } } @ @= 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; }@# @@; } @ Now |frac_row_left >= frac_row_to_fill|, so we can produce a 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. @= 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; } }@# @@; } @ @= 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). @= 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. @= int threshold = 128; @ @= 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 */ @= 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) {@@; start: @@; y++; } }@# @ @= 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; } @ @= 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. @= 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. @= 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" @= 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; @ @= 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 @= char Buffer[STRING_LENGTH + 1]; @ @= 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; @@;@# 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); } @@; @@;@# @@; @@;@# fclose(config); } @ Here we check whether we have to add an 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"); } @ @= {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); } @ @= int offset_x; int offset_y;@# HBF_CHAR user_min_char; int have_min_char = FALSE; @ @= {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. @= HBF_CHAR min_char, max_char; @ @= {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 @= char b2_codes[256]; unsigned char min_2_byte, max_2_byte; int nmb_2_bytes = 0; @ @= {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. @= 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) @@; 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. @= {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. @= 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. @= #if defined(HAVE_LIBKPATHSEA) #include "kpathsea/kpathsea.h" #elif defined(HAVE_EMTEXDIR) #include "emtexdir.h" #elif defined(HAVE_MIKTEX) #include "miktex.h" #endif @ @= #if defined(HAVE_EMTEXDIR) char emtex_version_string[] = "emTeXdir"; #elif !defined(HAVE_MIKTEX) char no_version_string[] = "no search library"; #endif @ @= 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 @= #ifdef HAVE_EMTEXDIR struct emtex_dir cfg_path, hbf_path; #endif @ @= #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 @ @= #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. @= #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. @= 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. cjk-4.8.5/utils/hbf2gf/config.sub0000755000175000001440000010471414132605356016435 0ustar00wlusers00000000000000#! /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 . # # 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 . # # 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 ." 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 <&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 <&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 <&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: cjk-4.8.5/utils/hbf2gf/emtexdir.c0000644000175000001440000002014514132605356016432 0ustar00wlusers00000000000000/* emtexdir.c -- written by Eberhard Mattes, donated to the public domain */ #if defined (__EMX__) #include #else #include "emdir.h" #endif #if defined(DJGPP) || defined(GO32) #include #endif #include #include #include #include #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 int main (int argc, char *argv[]) { struct emtex_dir ed; int i; unsigned flags1, flags2; char path[260]; if (argc != 6) { puts ("Usage: emtexdir "); 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 cjk-4.8.5/utils/hbf2gf/config.guess0000755000175000001440000014030414132605356016765 0ustar00wlusers00000000000000#! /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 . # # 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 . # 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 ." 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 #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #elif defined(__GLIBC__) LIBC=gnu #else #include /* 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 /* 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 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 #include 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 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' /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 GUESS=i586-unisys-sysv4 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # 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" < #include #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 #if defined(_SIZE_T_) || defined(SIGLOST) #include #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 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 #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 <&2 <&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: cjk-4.8.5/utils/hbf2gf/c-auto.h0000644000175000001440000000200514132605356016001 0ustar00wlusers00000000000000/* * c-auto.h * * This file is part of the CJK package ver 4.8.5 16-Oct-2021 * */ /* Copyright (C) 1994-2021 Werner Lemberg 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 */ cjk-4.8.5/utils/hbf2gf/README0000644000175000001440000000016714132605356015327 0ustar00wlusers00000000000000Additional installation documentation can be found in the files `INSTALL' (in the top directory) and `doc/hbf2gf.txt'. cjk-4.8.5/utils/hbf2gf/emtexdir.h0000644000175000001440000000246214132605356016441 0ustar00wlusers00000000000000/* 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) */ cjk-4.8.5/utils/hbf2gf/install-sh0000755000175000001440000003577614132605356016471 0ustar00wlusers00000000000000#!/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: cjk-4.8.5/utils/hbf2gf/mkinstalldirs0000755000175000001440000000667214132605356017264 0ustar00wlusers00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy scriptversion=2020-07-26.22; # UTC # Original author: Noah Friedman # Created: 1993-05-16 # Public domain. # # This file is maintained in Automake, please report # bugs to or send patches to # . 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 ." # 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: cjk-4.8.5/utils/hbf2gf/hbf.c0000644000175000001440000010261514132605356015353 0ustar00wlusers00000000000000/* * 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 * 17 October 1995 * * The following people have supplied bug fixes: * * Simon Chow * Fung Fung Lee * Man-Chi Pong * Steven Simpson * Charles Wang * Werner Lemberg * * Ross no longer maintains this code. Please send bug reports to * Werner Lemberg . * */ /* * 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 #include #include #include #include #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 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; } cjk-4.8.5/utils/hbf2gf/hbf2gf.10000644000175000001440000003643014132605356015671 0ustar00wlusers00000000000000.\" man page for hbf2gf .\" .\" Copyright (C) 1994-2021 Werner Lemberg .\" .\" 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 .br Ross Paterson (the HBF API) .C cjk-4.8.5/utils/hbf2gf/dvidrv.btm0000644000175000001440000002460414132605356016453 0ustar00wlusers00000000000000setdos /y1 :: :: Copyright (C) 1994-2021 Werner Lemberg :: :: 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 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 ==== cjk-4.8.5/utils/hbf2gf/hbf.h0000644000175000001440000001125614132605356015360 0ustar00wlusers00000000000000/* * 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 no longer maintains this code. Please send bug reports to * Werner Lemberg . * */ #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_ */ cjk-4.8.5/utils/hbf2gf/emdir.c0000644000175000001440000000426414132605356015715 0ustar00wlusers00000000000000/* emdir.c -- Written by Eberhard Mattes, donated to the public domain */ #include "emdir.h" #ifdef OS2 #undef HPS #define INCL_DOSFILEMGR #include #include #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 #include 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 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 cjk-4.8.5/utils/hbf2gf/emdir.h0000644000175000001440000000100614132605356015711 0ustar00wlusers00000000000000/* 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 #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); cjk-4.8.5/utils/hbf2gf/Makefile.gnu0000644000175000001440000000570614132605356016703 0ustar00wlusers00000000000000# This file is part of the CJK package Version 4.8.5 (16-Oct-2021) # Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/utils/hbf2gf/configure.ac0000644000175000001440000000661714132605356016743 0ustar00wlusers00000000000000dnl This file is part of the CJK package ver. 4.8.5 dnl Copyright (C) 1994-2021 Werner Lemberg 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 cjk-4.8.5/utils/hbf2gf/configure0000755000175000001440000044361314132605356016365 0ustar00wlusers00000000000000#! /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&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 &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 #ifdef HAVE_STDIO_H # include #endif #ifdef HAVE_STDLIB_H # include #endif #ifdef HAVE_STRING_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef HAVE_UNISTD_H # include #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 if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory 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 declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. */ #include #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 #include 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 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 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 #include 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&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` 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 ' >$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 cjk-4.8.5/utils/hbf2gf/scripts/0000755000175000001440000000000014132605447016133 5ustar00wlusers00000000000000cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.0/0000755000175000001440000000000014132605447017437 5ustar00wlusers00000000000000cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.0/MakeTeXPK.diff0000644000175000001440000000320614132605356022022 0ustar00wlusers00000000000000--- 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.) cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.0/MakeTeXTFM.diff0000644000175000001440000000170114132605356022134 0ustar00wlusers00000000000000--- 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 &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 &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.) cjk-4.8.5/utils/hbf2gf/scripts/web2c-6.1/0000755000175000001440000000000014132605447017437 5ustar00wlusers00000000000000cjk-4.8.5/utils/hbf2gf/scripts/web2c-6.1/MakeTeXPK.diff0000644000175000001440000000376314132605356022032 0ustar00wlusers00000000000000--- 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 cjk-4.8.5/utils/hbf2gf/scripts/web2c-6.1/README0000644000175000001440000000006614132605356020320 0ustar00wlusers00000000000000This is for web2c-6.1 with the patch for kpathsea 2.6 cjk-4.8.5/utils/hbf2gf/scripts/teTeX-0.4/0000755000175000001440000000000014132605447017463 5ustar00wlusers00000000000000cjk-4.8.5/utils/hbf2gf/scripts/teTeX-0.4/MakeTeXPK.diff0000644000175000001440000000323114132605356022044 0ustar00wlusers00000000000000--- 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 cjk-4.8.5/utils/hbf2gf/scripts/teTeX-0.4/MakeTeXTFM.diff0000644000175000001440000000116414132605356022163 0ustar00wlusers00000000000000--- 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 cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.1/0000755000175000001440000000000014132605447017440 5ustar00wlusers00000000000000cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.1/MakeTeXPK.diff0000644000175000001440000000334514132605356022027 0ustar00wlusers00000000000000--- 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.) cjk-4.8.5/utils/hbf2gf/scripts/web2c-7.1/MakeTeXTFM.diff0000644000175000001440000000160114132605356022134 0ustar00wlusers00000000000000--- 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 #endif #include #include #include #include #include #ifdef TM_IN_SYS_TIME #include #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 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=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>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 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=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>bitshift)&1)==1?PIXEL_MAXVAL:0; bP+= offset; } curr_row--; } else {bitshift= -1; for(col= 0,xP= pixelrow;col>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=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>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>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++))<=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++))<>8),j= 0;j>8),j= 0;jhbf_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*/ cjk-4.8.5/utils/SJISconv/0000755000175000001440000000000014132605447014744 5ustar00wlusers00000000000000cjk-4.8.5/utils/SJISconv/sjispdflatex0000755000175000001440000000230414132605356017370 0ustar00wlusers00000000000000#! /bin/sh # Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/utils/SJISconv/sjislatex0000755000175000001440000000230114132605356016673 0ustar00wlusers00000000000000#! /bin/sh # Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/utils/SJISconv/sjisltx.cmd0000644000175000001440000000310514132605356017127 0ustar00wlusers00000000000000/*----------------------------------------------------------------------*\ sjisltx.cmd This file is part of the CJK macro package for LaTeX2e ver. 4.8.5 Copyright (C) 1994-2021 Wonkoo Kim 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 */ cjk-4.8.5/utils/SJISconv/sjisconv.w0000644000175000001440000000750114132605356016774 0ustar00wlusers00000000000000% This is the cweb file sjisconv.w of the CJK Package Ver. 4.8.5 16-Oct-2021 % Copyright (C) 1994-2021 Werner Lemberg % % 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 #include @# 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 */ } cjk-4.8.5/utils/SJISconv/sjisltx.bat0000644000175000001440000000011214132605356017125 0ustar00wlusers00000000000000call f_name %1 sjisconv < %1 > %fd%%fp%%fn%.cjk latex %fd%%fu%%fn%.cjk cjk-4.8.5/utils/SJISconv/sjisconv.10000644000175000001440000000457014132605356016671 0ustar00wlusers00000000000000.\" man page for sjisconv .\" Copyright (C) 1994-2021 Werner Lemberg .\" .\" 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 cjk-4.8.5/utils/SJISconv/sjisconv.c0000644000175000001440000000101414132605447016742 0ustar00wlusers00000000000000#define banner \ "sjisconv (CJK ver. 4.8.5)" \ /*2:*/ #line 96 "/home/wl/git/cjk/cjk-4.8.5/utils/SJISconv/sjisconv.w" #include #include 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*/ cjk-4.8.5/utils/extconv/0000755000175000001440000000000014132605447014774 5ustar00wlusers00000000000000cjk-4.8.5/utils/extconv/gbklatex.bat0000644000175000001440000000011114132605356017255 0ustar00wlusers00000000000000call f_name %1 extconv < %1 > %fd%%fp%%fn%.cjk latex %fd%%fu%%fn%.cjk cjk-4.8.5/utils/extconv/gbkpdflatex0000755000175000001440000000230614132605356017215 0ustar00wlusers00000000000000#! /bin/sh # Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/utils/extconv/bg5+latex0000755000175000001440000000230014132605356016502 0ustar00wlusers00000000000000#! /bin/sh # Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/utils/extconv/gbklatex.cmd0000644000175000001440000000310514132605356017260 0ustar00wlusers00000000000000/*----------------------------------------------------------------------*\ gbklatex.cmd This file is part of the CJK macro package for LaTeX2e ver. 4.8.5 Copyright (C) 1994-2021 Wonkoo Kim 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 */ cjk-4.8.5/utils/extconv/bg5pltx.bat0000644000175000001440000000011114132605356017041 0ustar00wlusers00000000000000call f_name %1 extconv < %1 > %fd%%fp%%fn%.cjk latex %fd%%fu%%fn%.cjk cjk-4.8.5/utils/extconv/extconv.10000644000175000001440000000460714132605356016552 0ustar00wlusers00000000000000.\" man page for bg5conv .\" .\" Copyright (C) 1994-2021 Werner Lemberg .\" .\" 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 cjk-4.8.5/utils/extconv/extconv.w0000644000175000001440000000732314132605356016656 0ustar00wlusers00000000000000% This is the cweb file extconv.w of the CJK Package Ver. 4.8.5 16-Oct-2021 % Copyright (C) 1994-2021 Werner Lemberg % % 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 #include @# 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 */ } cjk-4.8.5/utils/extconv/bg5+pdflatex0000755000175000001440000000230614132605356017202 0ustar00wlusers00000000000000#! /bin/sh # Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/utils/extconv/bg5pltx.cmd0000644000175000001440000000310314132605356017042 0ustar00wlusers00000000000000/*----------------------------------------------------------------------*\ bg5pltx.cmd This file is part of the CJK macro package for LaTeX2e ver. 4.8.5 Copyright (C) 1994-2021 Wonkoo Kim 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 */ cjk-4.8.5/utils/extconv/gbklatex0000755000175000001440000000230014132605356016515 0ustar00wlusers00000000000000#! /bin/sh # Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/utils/extconv/extconv.c0000644000175000001440000000076214132605447016633 0ustar00wlusers00000000000000#define banner \ "extconv (CJK ver. 4.8.5)" \ /*2:*/ #line 94 "/home/wl/git/cjk/cjk-4.8.5/utils/extconv/extconv.w" #include #include 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*/ cjk-4.8.5/utils/lisp/0000755000175000001440000000000014132605447014255 5ustar00wlusers00000000000000cjk-4.8.5/utils/lisp/cjkspace.el0000644000175000001440000000712714132605356016370 0ustar00wlusers00000000000000;;; cjkspace.el --- provide a tilde character if you type a space. ;;; use this file with AUCTeX. ;; Copyright (C) 1994-2021 Werner Lemberg ;; ;; 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 cjk-4.8.5/utils/lisp/cjktilde.el0000644000175000001440000000615614132605356016377 0ustar00wlusers00000000000000;;; cjktilde.el -- minor mode exchanging `~' and ` ' keys. ;; Copyright (C) 1994-2021 Werner Lemberg ;; ;; 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 cjk-4.8.5/utils/lisp/emacs/0000755000175000001440000000000014132605447015345 5ustar00wlusers00000000000000cjk-4.8.5/utils/lisp/emacs/thai-word.el0000644000175000001440000033243414132605356017575 0ustar00wlusers00000000000000;;; thai-word.el -- find Thai word boundaries ;; Copyright (C) 2000, 2001, 2002, 2003, 2004 ;; Electrotechnical Laboratory, JAPAN. ;; Author: Kenichi HANDA ;; 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 . ;; 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 '("﹛" "﹛" "﹛婺檐陰" "“" "“÷" "“忐" "“鉞瞗" "&" "&佹畟" "※埳" "●" "△悜空" "△悜倭菸" "△悜倪" "△珚唌疰" "△甡埳堍疰" "△唌" "△鉲煜菸" "△鉲煬" "▲" "◎" "◎纓" "★" "★" "★埩曼" "◇" "◇" "◇棍" "◇煞" "◇疻" "◇埳溼" "◇埧" "◇涷" "℅" " ̄" " ̄&" " ̄&狺" " ̄*" " ̄" " ̄陰" " ̄博" " ̄博癒唻" " ̄博鎳" " ̄" " ̄" " ̄" " ̄稱" " ̄" " ̄褶骳" " ̄襄藤鍰" " ̄" " ̄礙唭" " ̄籀" " ̄籀唌疰" " ̄臘媮" " ̄藪" " ̄藪 ̄" " ̄藪÷" " ̄藪竺珛" " ̄藪猁" " ̄藪猁桴" " ̄藪珚唌疰" " ̄蹴佰癒" " ̄蹴肪禮" " ̄轔溼" " ̄轎炕" " ̄邊 ̄" " ̄Ж" " ̄М" " ̄Ъ" " ̄" " ̄矷" " ̄矷寣獺" " ̄竻" " ̄竻 ̄苂" " ̄芫" " ̄芮" " ̄芩" " ̄" " ̄虴﹛譜鄑婰" " ̄虴駖均譜嵺閫" " ̄虴駖飽譜嵺頩" " ̄虼" " ̄虼矷" " ̄虼竻俉" " ̄虼悝" " ̄虼挹" " ̄虼珒" " ̄虼珘" " ̄虼畟" " ̄虼埭" " ̄虼埏" " ̄虼埼埭" " ̄虼堙" " ̄虼媞 ̄虼埏" " ̄虼娷" " ̄虼嵉均譜侃諤" " ̄虼嵉薄譜侃蹅" " ̄虼湉 ̄虼渀" " ̄虼骳" " ̄虼樿" " ̄虳矷" " ̄虳挹 ̄冓岱" " ̄虳棷" " ̄虳駖" " ̄衁芧" " ̄衁挹" " ̄衁桄" " ̄衁牷" " ̄衁" " ̄衎唌" " ̄衎埏" " ̄衩媮擅" " ̄迡" " ̄迡竻" " ̄迡芧" " ̄迡悝忌" " ̄迡牷" " ̄迡狶籤" " ̄迡珗" " ̄迡疶" " ̄迡唌" " ̄迡婰" " ̄迡涷" " ̄迡袟" " ̄迡媮" " ̄迡晼" " ̄迡擏" " ̄迡橏" " ̄迮唌" " ̄迮埏" " ̄迮婇" " ̄迮谹譙芤暽" " ̄迮堙" " ̄迮嵂均譜菠擏" " ̄迮嵂" " ̄迮駖均譜廘閫" " ̄迮骳" " ̄迮橶薄譜鉞淶臏" " ̄迮縡" " ̄迠埳" " ̄郱" " ̄郱" " ̄郱蠅" " ̄郱" " ̄郱桎" " ̄郱唭" " ̄郱袟" " ̄郱塈" " ̄郱湇" " ̄郱駖" " ̄郱樿" " ̄郱樿薄譜廗橧" " ̄邿桄" " ̄郕Л" " ̄郕Ъ" " ̄郕矷" " ̄郕竻" " ̄郕" " ̄郕" " ̄郕涷" " ̄郕谹" " ̄郕塈" " ̄郅譏憿譜鉬鏡" " ̄郅桄ョ譜鉬淶" " ̄郅髬" " ̄郅樿 ̄凊駁" " ̄郅輹" " ̄邾纓 ̄邾籤" " ̄邾捸" " ̄郋淶" " ̄郋谹" " ̄郋嵂" " ̄郈挬 ̄冓諾織" " ̄郈椑 ̄郈畟" " ̄釓芩 ̄凊謠" " ̄釓悝" " ̄陔皊忘" " ̄陔痋 ̄陔谹" " ̄陔駖" " ̄陏矷" " ̄陓芩" " ̄陓捘壅" " ̄陎埳" " ̄陎捸譜й" " ̄倅捔" " ̄倅珨喬" " ̄倇芮" " ̄倇悝" " ̄倇揤" " ̄倇" " ̄倇谹" " ̄倇塈 ̄倇唭" " ̄倇媢" " ̄倓飽" " ̄倓境" " ̄倓寡" " ̄倓轂" " ̄倓錘芩" " ̄倓謹餑" " ̄倓畟" " ̄倓祫" " ̄倓紬" " ̄倰芮" " ̄倰恁" " ̄倰恁 ̄倰駍" " ̄冓折牷譜彤" " ̄冓例" " ̄冓侃" " ̄冓侃插譜鄖唭" " ̄冓佰篢" " ̄冓芷" " ̄冓屍" " ̄冓帟" " ̄冓怎" " ̄冓恍" " ̄冓椒" " ̄冓椎織" " ̄冓棚矷" " ̄冓棚駖" " ̄冓渡" " ̄冓湧" " ̄冓筆" " ̄冓菸" " ̄冓菁樿" " ̄冓萇" " ̄冓勤" " ̄冓煬臏" " ̄冓煌芧" " ̄冓犒" " ̄冓禎織" " ̄冓禍樿" " ̄冓閡" " ̄冓骰" " ̄冓懊" " ̄冓擋駖" " ̄冓鎊矷譜慬鎔" " ̄冓譏繒" " ̄冓彶繒" " ̄冓彶藏" " ̄冓抃飽譜弅" " ̄冓抌" " ̄冓佹蝝 ̄凊佹" " ̄凊佬" " ̄凊峒" " ̄凊棣" " ̄凊渲" " ̄凊" " ̄凊楚" " ̄凊" " ̄凊芩" " ̄凄邦" " ̄凄阪" " ̄凄屆 ̄冓屆" " ̄凄插" " ̄凄插 ̄冓插" " ̄凄揮" " ̄凄斐" " ̄凄飪" " ̄凄瑭" " ̄凄酵" " ̄凄呯" " ̄恁" " ̄悝" " ̄揤" " ̄挹" " ̄捘" " ̄牷" " ̄狶" " ̄珒" " ̄珗" " ̄珘" " ̄瓵" " ̄瓵諮" " ̄瓵唌" " ̄畛" " ̄畟" " ̄痀" " ̄" " ̄唌" " ̄唭 ̄堌" " ̄啋" " ̄埏" " ̄埡" " ̄堎" " ̄堌" " ̄婰" " ̄婰" " ̄婩" " ̄婇" " ̄婇" " ̄" " ̄捸" " ̄梇" " ̄桭" " ̄楖" " ̄淔" " ̄" " ̄堙" " ̄塈" " ̄塈鈮" " ̄堻" " ̄堻珚啎堻" " ̄媢" " ̄媞" " ̄娷" " ̄嵙" " ̄嵙" " ̄嵂薄譎餑" " ̄崹" " ̄" " ̄棷" " ̄褉﹛鏃苂" " ̄駖" " ̄駖" " ̄骳" " ̄骳" " ̄髬" " ̄橶" " ̄樿" " ̄橏" " ̄橏" "_仵捸" "_伈" "ˍ" "ˍ" "ˍ" "ˍ" "ˍ贅溢" "ˍロ" "ˍ矷" "ˍ竻" "ˍ芧" "ˍ苂" "ˍ恁" "ˍ挬" "ˍ挹" "ˍ捚" "ˍ桎" "ˍ桄" "ˍ桄" "ˍ牷" "ˍ狶" "ˍ珒" "ˍ畟" "ˍ砩佹" "ˍ婰" "ˍ婰" "ˍ婩" "ˍ婩" "ˍ" "ˍ梣" "ˍ涷" "ˍ盓" "ˍ袡" "ˍ嵙" "ˍ嵂" "ˍ殽卅" "ˍ鉡蝝" "ˍ頩" "ˍ駖" "ˍ駖" "ˍ駖" "ˍ骳" "ˍ髬" "ˍ橶" "ˍ橶邈鍾" "ˍ樿" "ˍ樿" "ˍ樿" "ˍ樿鍍ˍ橧" "ˍ橏" "ˍ橏" "ˍ橔" "﹊" "﹊" "﹊" "﹊" "﹊穡栴" "﹊穡淔" "﹊恁" "﹊挬" "﹊狶" "﹊狶華擏" "﹊珒" "﹊痀鄐譙" "﹊" "﹊骳" "﹊橏" "﹊橏" "﹊縓" "﹎捄譎鎳" "﹎捔" "﹎珨喬" "﹋" "﹋唌" "﹋唌藤" "﹋堀" "﹠" "﹠" "﹠" "﹠" "﹠" "﹠" "﹠酵" "﹠" "﹠譎齬" "﹠鱗" "﹠閟淔覆" "-" "-肯銵-股銵" "-室" "-椎" "-菟" "-虛牷" "-楚獺" "-煤棺挬" "-煤嘈揤" "-煜" "-煌" "-碧巫" "-碣擏" "-酵埭-酵苂" "-鉸﹛冓閣癒" "-鉼" "-閩" "-儒" "-壅埏" "-嬝駖均凊嬝閫" "-暸" "-識" "-贈閫-譎閫" "-龔" "-攪" "-瓚銑弄" "-瓚蹊" "-瓚徶" "-籤" "-籤彶" "-籥橧-鉖纓餔" "-髓芧" "-髓芩-慞餑" "-髓苂-侜埏" "-抎皊苂" "-佴塈-佴唭" "-佴褉均凊佴蝘" "-佸芫" "-佸涷" "-佸褉薄凊佸衚" "-佸駖" "-侜涷" "-侜堙-侜唌" "-侜髬" "-鉥" "-鉞" "-鈮" "-鈮眓" "-鉬婇滿郅縓" "-鉏禳" "-鈱涷癒陏珒" "-鉣埭" "-鉣駖-髓" "-鉖譏餔" "-鉖籤冓閡" "-嶊" "-漟均冓筆" "-漟擏獍閫" "-漟瞗" "-熐癟" "-熐牄" "-熉禳-鉏禳" "-獍禳" "×" "×﹜昐" "×" "×均橏" "×坎" "×妝埳" "×尿" "×序" "×序珗" "×廷棍" "×弄揤" "×找" "×酊" "×限" "×陰" "×" "×" "×僑疰" "×僱" "×嗽畟" "×嗽" "×" "×" "×輓揤" "×覬境" "×覬譜漺" "×謙椌" "×謠揤耋瓴識廷" "×謠揤腕悝彶" "×驕" "×驍奮﹎" "×驍悝刳" "×驍痀弅" "×驍" "×鷓" "×鷓珜" "×鷓珜轂腕" "×鷓珜" "×靨" "×頩" "×擏" "×暽" "×暽侁桎" "×瞗" "÷" "÷" "÷<" "÷" "÷抉“" "÷抉Ⅰ" "÷峒攪" "÷郃劃媄" "÷郃境" "÷" "÷" "÷僑" "÷嗾蘸" "÷" "÷課" "÷壇" "÷" "÷轄藪喬" "÷" "÷癒藤" "÷臍瓴" "÷藉埬狺" "÷薹埸詳" "÷觴壇" "÷" "÷籀" "÷繳棆" "÷譜遄" "÷識麻" "÷識僱" "÷贈" "÷贈麻" "÷蹴ョ" "÷鏈" "÷鏈" "÷鏈菱" "÷" "÷禳堀" "÷纓" "÷鑠溜" "÷" "÷" "÷" "÷岋" "÷彸漡" "÷侜" "÷" "÷鉖я" "÷彃" "÷慞蝖幽" "±" "±﹊" "±×" "±×" "±並" "±供" "±例" "±股" "±帝" "±棋" "±蜆" "±塾" "±塾" "±碧" "±銑頩" "±壅橏" "±擋" "±蹈剽" "±蹈攪" "±蹈侁涷" "±觴" "±謨" "±證" "±竊" "±岋Э" "±佴" "±佴挬" "±鉥" "±鉆埭" "±鈱埏" "±鉖寧" "±彄" "±慬" "±鞀" "±靻" "√" "√-" "√" "√芋藤" "√芋疰" "√豕陓恁伈" "√豕" "√紫" "√紫啎堻" "√紫埡恁椒" "√紫埱挩瑜" "√" "√凳" "√嘔" "√譎博" "√譎觴" "√鉣" "√鉣" "√煻漡" "√熆菅" "√牄" "√牄 ̄捘" "√牄籥腕" "√牄鉡腕" "√牄閜埼筍" "√閫" "√駍" "√擏=" "√擏∟" "√瞗" "√篝" "√踿" "<納埸觴" "<" "<菸鏈" "<" "<朊" "<" "<" "<" ">" ">﹛樿" ">閫" ">赬" "≦" "≦" "≦﹛恁" "≦酊" "≦凍" "≦框謙" "≦秣悝" "≦耽" "≦陰" "≦" "≦棋" "≦棋頩" "≦" "≦鼠谹" "≦嫩肪禮" "≦" "≦" "≦謊" "≦謊" "≦轄" "≦轄證" "≦轄譏" "≦" "≦穠骳" "≦轉峓" "≦" "≦顫埭" "≦驕媯" "≦戀腕" "≦籤" "≦纓" "≦纓≦侍" "≦" "≦牄碳" "≦侜珘" "≦餑" "≦擏" "≦瞗" "≦篧" "≦篢" "≦踶" "≧" "≧陰" "≧" "≧" "≧" "≧" "﹤昒證" "∠" "∟" "∟" "∟" "∟竻" "∟芧" "∟畟" "∟" "⊿把日" "⊿" "⊿" "⊿" "⊿竻" "⊿芧" "⊿芩" "⊿苂" "⊿芤駖⊿芚唌" "⊿狶" "⊿珗" "⊿畛" "⊿痀" "⊿" "⊿荂紬" "⊿豻√" "㏒" "㏒" "㏒矷" "㏒芮閣" "㏒芼閣" "㏒珓" "㏒珒" "㏑" "㏑Ъ鉞渀藉" "㏑苂" "㏑" "╡侈縡" "◢" "◢挬" "◢畟" "◢" "◢娷" "4" "5" "Ⅰ" "Ⅰ" "Ⅰ" "Ⅰ" "Ⅰ" "Ⅰ" "Ⅰ趨" "Ⅰ挬" "Ⅰ揤" "Ⅰ牷" "Ⅰ狶" "Ⅰ珒" "Ⅰ珗" "Ⅰ珘" "Ⅰ畟" "Ⅰ埩曼" "Ⅰ媢" "Ⅱ" "Ⅱ" "ⅡЛ" "Ⅸ" "ⅨЖ" "Ⅸ竻" "Ⅸ苂" "Ⅸ悝" "Ⅸ挹" "Ⅸ" "Ⅸ埏" "Ⅸ婩" "Ⅸ掅蹊" "Ⅸ盓" "Ⅸ堙Ⅸ芩" "Ⅸ堙Ⅸ捚" "Ⅸ媞" "Ⅸ媞Ⅸ埏" "Ⅸ駖" "Ⅸ橔" "Ⅹ矷" "Ⅹ竻" "Ⅹ" "Ⅹ恁" "Ⅹ揤" "Ⅹ挹" "Ⅹ桄" "Ⅹ珒" "Ⅹ珘" "Ⅹ畟" "Ⅹ" "Ⅹ唌" "Ⅹ埏" "Ⅹ婰" "Ⅹ淶" "Ⅹ堙Ⅹ唌" "Ⅹ堙Ⅹ娷" "Ⅹ媞" "Ⅹ媞Ⅹ埏" "Ⅹ媮" "Ⅹ娷" "Ⅹ嵂" "Ⅹ餑" "Ⅹ駖" "Ⅹ樿" "Ⅹ橔" "〡" "〡瓣" "〡捚" "〡埏" "〡祫" "〡堞譜" "〣悝" "〣挹" "〣" "〣珒" "〣埏" "〣堙" "〣堙〣恁" "〣堙〣唌" "〣媞" "〣媮" "〣嵙" "〥" "〥" "〥飾й" "〥" "〥" "〥恁銚я" "〥悜" "〥挬" "〥挹" "〥挹遉м藉" "〥桄" "〥" "〥牷" "〥狶" "〥珒" "〥珗" "〥畟〥" "〥埭" "〥橏" "卄" "卄" "卄" "卄" "卄" "卄" "卄漱堻" "卄箝" "卄" "B趨蕾凊謠" "B蹊﹤Ⅸ暽" "B遽﹜釓芩" "B謹" "B贅" "B鉰樿屣鎔" "B愬" "C" "C陰吽" "C陰彶轄" "C" "C紫堎轄塵" "C" "C鼓冓境" "C僱" "C僩" "C兢" "C嘈轄" "C嫖窗" "C" "C" "C暽" "C橶" "D" "D" "D㏒Ъ" "D" "D" "D" "D" "D" "D" "D" "D" "E" "F" "F" "F" "F閫" "G" "G遜痀婺" "G" "G" "G歖佸" "H" "H擏" "H暽" "H暽抵畟" "I" "I頩" "I駖" "J" "J" "J" "J僩竻" "J嫗撕" "J" "J" "J頩" "K" "K" "T謝" "Z" "ZЛ" "Z" "Z芧" "Z苂" "Z" "Z狶" "Z畟" "Z痀" "Z痀弅" "a" "a" "a竻" "a芧" "a芩棸" "a苂" "a" "a狶" "a瓴鄖橏" "a畛" "a痀" "a痀弅" "a痀鉡骳" "a痀熅" "a疿痋" "a皊龔" "中塾謙" "中境坐" "中境僱" "之" "之夫" "云證" "云弅" "云猁珛" "云猁桴" "云珚疰" "云甡籀" "仇境" "仇煽" "仇" "仇狳疰鎳" "仇珚唌疰" "仇珚堇鉾" "仇珗挹" "仇唌" "仇埽" "仇埽疺腕" "仍" "仍" "今" "今堋藤" "今埲邦" "仄" "允" "允蜆臘" "允漞" "內" "切" "切境÷" "切境切" "勻" "勻" "勻礙埽" "勻藝" "勻藝" "勻藷竻" "勻轎襲" "勻邊" "勻ン" "勻и" "勻м" "勻刳" "勻矷" "勻竻" "勻竻嶀癟" "勻芮" "勻芮勻捚" "勻" "勻挬鄐鏡" "勻揤" "勻挹" "勻捚" "勻桎" "勻桎" "勻桄" "勻桄" "勻" "勻牷" "勻狶" "勻珥" "勻珒" "勻珘" "勻畛" "勻痀" "勻疺" "勻" "勻埰窗疻" "勻埰萃" "勻埰蛙" "勻埰蛙轄" "勻埰鉞梒" "勻梣" "勻桷" "勻" "勻痋勻郪" "勻痋滮藪" "勻砦" "勻祫" "勻紬" "勻紩" "勻袨" "勻袡" "勻谹" "勻郪" "勻郪馱譆" "勻" "勻堭" "勻媮鄐譙" "勻娷" "勻嵙" "勻" "勻棷" "勻湆" "勻閫" "勻駖" "勻骳" "勻骳" "勻髬" "勻橏" "勻橏" "勾" "勾刲妎" "勾刳妏" "勿" "勿矷" "勿竻" "勿芫" "勿芧" "勿芤桯" "勿俋藩芤嚌" "勿俋藩桲鱗" "勿" "勿恁" "勿悝" "勿捄初" "勿挹" "勿桎" "勿桎" "勿" "勿狶嶀襲" "勿珒" "勿珗" "勿畟" "勿疺" "勿疺彸" "勿" "勿埳唌" "勿婩" "勿" "勿桯啎" "勿涷" "勿盓" "勿郯" "勿郯嫩劼繒" "勿郯嫣抎" "勿堙" "勿媮" "勿嵙" "勿嵂" "勿嵂" "勿駖" "勿駖扭勿駍" "勿髬" "勿樿" "勿樿" "勿橏" "勿橔" "匹" "匹" "匹" "匹恁" "匹揤" "匹桎" "匹牷" "匹珥" "匹珗" "匹畛" "匹畟" "匹埳埳" "匹桯" "匹髬" "匹橏" "匹橏" "匹橏" "卞 ̄藪" "卞 ̄藪疺腕" "卞煽" "卞輓珗" "友" "友" "友" "友" "友飽譏" "友嘀唌" "友嫩晶鄎芤" "友嫩彸鏈" "友嫩彸鏈" "友嫗Л蛙" "友" "友謙堌鉞芤" "友謠珗漺" "友謠堌墊妗" "友鍍黎" "友鎂擒凳瑜" "友" "友藍" "友識貌桎" "友鏈帟÷" "友鏈" "友鏈銓鈱股頩" "友竊褸" "友妗疰唌" "友鄐屍織" "友鉣忺腴襖" "壬" "壬嗶" "壬墅" "壬寥" "壬輾" "壬覲暽壬蟬" "壬鉆" "壬鉰" "壬廜" "天" "天允捘壅" "天允狶木" "天允珗蛙" "天陰忭腕" "天" "天溫梒" "天" "天鼎畟" "天僩癟" "天" "天謊桼檠" "天謊桼" "天銵" "天閫" "天頩" "天駍" "天暽" "夫" "夫" "夫坐" "夫" "夫募" "夫溴籥" "夫" "夫" "夫" "夫豳疺" "夫" "夫藪" "夫蠅" "夫證й" "夫證鉞" "夫證獌遄" "夫鏈" "夫鏈睿" "夫鏈睿嘗芧矷銕渥" "夫鏈睿嫣棹矷銕渥" "夫鏈睿籥" "夫鏈睿鉆" "夫鏈稱鈱鉞芤" "夫鏈" "夫鏈熇餂鉥繭" "夫" "夫м" "夫鉊鎳" "夫鉯" "太" "太嘎" "太塾" "太墅" "太羅" "太繳" "太證" "太慬" "太蒫" "夭" "夭" "夭" "夭賸揤蛙" "夭" "夭橶" "孔" "孔嗽" "孔" "孔" "孔鎳" "孔鎳睿鏈" "孔譏" "孔" "少" "少﹞恁" "少銵" "尤" "尤" "尤" "尺" "尺" "尺﹛淶" "尺" "尺雩藤" "尺鹿瓴" "尺傑堬" "尺傀挩瑜" "尺傘褽捄" "尺勞 ̄" "尺喧說疰" "尺" "尺晰陏珒" "尺" "尺" "尺贈" "尺滼說疰" "尺餑" "尺擏" "尺暽" "尺橧" "尺樲" "屯" "屯" "屯" "屯銓" "屯刳" "屯" "屯" "戈麂" "斤矷鈮" "方芧" "方芩" "方苂" "方" "方" "方狶" "方畟" "方" "日" "日芧" "日芩" "日" "日狶" "日狶夫" "日狶鉞婰" "日珗" "日" "污痀疺" "考" "考窗" "考窗藤" "西" "阡竻" "均" "壯" "壯序" "妥" "宋" "岐" "序" "序" "序禮" "彤" "彤" "彤﹥均" "彤" "彤氮妥" "彤" "彤嘈扯" "彤" "彤" "彤" "彤嵺" "役" "忘" "忘" "忘" "忘" "忘" "忘ч忱" "忘銵" "忘閫" "忘駍" "忌" "忌" "忌" "忌" "忌" "志" "忍橶" "忱" "快" "快" "快薛" "忪" "忪鳩" "忪" "忪漣埏" "忪" "忪頩扯珗" "忪餑扯畛" "忪橧" "戒" "戒岆挬" "扯ロ" "扯Л" "扯竻" "扯芧" "扯苂" "扯" "扯珗" "扯畛" "扯畟" "扯" "折Л" "折" "折芩" "折狶" "折痀" "折" "芋" "豆" "豆ˍ塹" "豆迗" "迄" "巡" "巡媄坐" "巡媄戰" "巡婽期燬" "邦" "那" "阪" "阪晼" "並" "並供" "並" "並藕" "並轎襲" "並纓" "並Ж" "並冓a" "並捇" "並捗" "並狳" "並唭" "並埽" "並堎蜆藪" "並堎疺腕" "並堎痋奿" "並堎" "並塈" "並棜" "乳" "乳嗾囌疺腕" "乳嗷疺腕" "乳狳" "些" "些" "些" "些" "些恁" "侍" "侍" "侍" "侍弄竻" "侍" "侍" "侍" "侍" "侍鏈幓" "侍嶁" "佬" "佬ˍ" "佬ˍ畛" "佬瓚侞桎" "佬瓚鉡蝝" "佬遉" "供" "供﹜" "供”桎" "供 ̄" "供 ̄壅繫" "供 ̄擰" "供 ̄觴" "供 ̄Ы繫" "供 ̄й" "供 ̄" "供﹎" "供﹥侜頩" "供" "供均芮" "供均橏" "供壯悝" "供弄з" "供弄и" "供弄揤" "供找" "供凋" "供陰疻" "供陰" "供" "供插疰" "供腎" "供華識" "供" "供僩寢" "供僩種譏" "供僩" "供僩瓣菠" "供僩瓣證" "供僩贈酵狺" "供僩鏈" "供" "供滿悝" "供漫骳" "供頩" "供駍" "供憿" "供瞗佰" "供瞗鉥梒" "供糒" "例" "例" "例" "例華癟卅揤墊碳" "例" "例" "例碧" "例碧鷓" "例" "例薇媄" "例謄" "例謄" "例" "例譜禎" "例譜銋" "例譎" "例譏" "例譏" "例譆" "例" "例й" "例鉡÷" "來" "來×" "來鳩" "來凳" "來嘔癡" "來嘔癡" "來嘎" "來嗶" "來墓" "來閡" "來閣" "來學" "來識" "來贊" "來攪" "來佴骳" "來虰" "來鉧眓" "來鈱埻" "來鈱梒" "來鉣" "來廜" "侃" "侃把券" "侃" "侃腕" "侃腕 ̄" "侃腕 ̄藪" "侃腕霽" "侃腎埸觴" "侃菽ヰ" "侃菲噸鎳" "侃僑" "侃僱﹊" "侃僱境" "侃僱境÷" "侃僱檠" "侃" "侃閡剷" "侃餑" "侃擏芋" "侃擏侍" "侃擏佸桭" "侃擏鉖饕" "侃橧" "侃踿" "佰" "佰嫗" "佰" "佰Ы" "佰" "佰" "佰" "佰窵" "佰" "併" "併閫" "併擏" "侈" "佩" "佩" "佩" "佩菠" "佩" "佩" "佩漕埏" "佩謙" "佩謙埽" "佩襯芩" "佩讀桴" "佩讀梀揤" "佩讀梀埳" "佩韁藤寢" "佩鰾狺" "佩龔藤" "佩囌恁證" "佩戀疰" "佩籥僩譏鎳" "佩朊" "佩朊襲 ̄喬" "佩閫" "佩頩" "佩餑" "佩暽" "佩暽佻" "佩橧" "佩樲" "佩瞗 ̄渟" "佩篝" "佩篝嶁" "佩諤侃諤" "佩蹅侃蹅" "佻" "佻" "佻" "佻" "佻" "佻窵" "佻" "兒" "刻" "刻芩" "刻" "刻狶" "刻畟" "券" "券ロ" "券" "券矷" "券矷嶁憿" "券竻" "券芧" "券苂" "券" "券" "券狶" "券珗" "券疻倓и頩" "券痀" "券" "券茖淶" "券蚆髬" "刷矷" "刷" "刺" "刺竻" "刺苂" "刺" "刺" "屆" "屆藤到" "屆奷腕堎" "屆狳" "屆畛瓴並" "岱" "岱畟" "往Л" "往悝" "往牷" "往" "征悝" "征挹" "忿" "忿ョ" "忿悝" "忿" "忿" "怵" "怵Ъ" "怵竻" "怵芩" "怵恁" "怵牷" "怵珒" "怵畛" "怵畟" "怵堌" "怵" "怵堙怵Ъ" "怵" "怪" "怪挬鄔м繒" "怪狶" "怪" "怕" "怛" "怛" "怛鉣眓" "房" "房所" "房塾暽" "房塹" "房俛芧" "戾腕" "戾" "戾僩竊﹎喬" "戾僩" "戾僩" "戾僩珗媮捄" "戾僩" "戾" "所" "所" "所" "所" "所" "所" "所觴" "所" "承所" "拉" "拉" "拉謙纓" "拉" "拉閫" "拌" "拌" "拌" "拂" "拂" "拂﹤拉" "拂" "拂" "拂" "抹" "抹" "抵竻" "抵苂" "抵" "抵狶" "抵" "拚" "炕" "爭" "爭滮" "狙" "玫" "疚" "疚" "疚塹" "疚謙藤奿" "疚鍰" "疚Л" "疚" "疚恁" "疚埭" "的" "祀" "祀揪鍾苂" "祀撼" "祀撼僩" "祀撼壽" "祀撼" "祀藪" "祀" "祀樿" "祀橏" "祁" "秉" "秉" "秉捚" "秉" "空" "空詫" "空試" "空境" "空酵郱珗" "空疻捔" "空疿捔" "竺" "竺" "竺" "竺" "竺籥" "竺" "竺疻" "肺" "肺〞橔" "肺" "肺" "肺" "肺遙婩" "肺" "肺鱗" "肺郪" "肺嵙" "肺髬" "肱" "肱忘" "肱忘" "肱忪橧" "肱扯芧" "肱折" "肱菸" "肱塹" "肱蟈" "肱蹊" "肱襖" "肱攪" "肱攪" "肱蘸" "肱髓" "肱鄑樿" "肱鉆眓" "肱嵺" "肱慞" "肱漰" "肱漺" "股" "股" "股竺疻" "股" "股" "股" "股凳迮" "股嘖" "股嘟棫" "股" "股職纂扥" "股臍椑" "股閫" "股駍" "股駍煻" "股暽" "股橶" "肫" "肫" "肫" "肫插" "肫腕" "肫菩" "肫菠" "肫" "肫壽" "肫" "肫" "肫觴" "肫籤" "肫" "肫ч" "肩" "肩塾" "肩境" "肩墊" "肩譜" "肩贈" "肩鏡Ъ" "肩鉆梒" "肩鉆梒" "肩鈱" "肩鉣谹" "肩慬瓚" "肴" "肴夫漶" "肴" "肴妒橏" "肴" "肴" "肴" "肴" "肴" "肴鍍遜幽" "肴г" "肴閫" "肴暽" "肪" "肪鉼D" "肪" "肪戰萃﹎捔" "肪У譜и菠" "肪Я埸觴" "肪й聒" "肪й竊" "肪л" "肪л萃﹎捔" "肪л" "肪м" "肪ч切" "肪" "臥" "臥頩" "臥頩避頩" "臥駖" "臥暽" "臥樿" "臾" "臾" "臾" "臾" "臾" "臾褸媮" "臾謙" "臾鰻媢" "臾纓" "臾餑" "臾餔" "臾擏" "舍" "舍" "芬" "芬韁" "芬鰻" "芯" "芰矷漶鉣" "芰矷漶慞" "芾ロ" "芾Ъ" "芾" "芾竻" "芾芧" "芾狶" "芾" "芾茠竻" "芷竻" "芷芧" "芷苂" "芷" "芷狶" "芷" "哄" "契" "姘" "姿" "姦" "室毯" "室" "室" "屍" "屍" "屍" "屍" "屍艙憼Ы" "屍蕙" "屍蕙憼Ы" "屍虧駖" "屍" "屍" "巷" "巷" "巷" "巷" "巷僱狺攪" "巷" "巷噢芤黖" "巷鰱" "帝" "帝" "帝≦譜" "帝" "帝" "帝澈紩" "帝澈骳" "帝還鞀" "帝籤鉬" "帝" "帝Ж" "帟" "帟" "帟÷鏈" "帟﹥怎" "帟嫗" "帟" "帟" "帟諮籥" "帟籥友" "帟" "帟頩" "幽" "幽" "幽" "幽椎" "幽嗶" "幽襖‵" "幽遄購" "幽鉡僱" "幽鈱梒" "幽" "幽" "庠" "庠" "庠閫" "庠擏" "度駖" "度樿" "建" "建" "建" "建" "建" "建" "建餑" "建餑怨畛" "建橧" "弈肴" "弈換珒" "弈棍" "弈" "弈鉬芤嚌砫∠" "弈滮蟾" "弈" "怨" "怨竻" "怨芧" "怨芩" "怨" "怨珗" "怨皊譎餑" "恍" "恍竻" "恍芧" "恍芩" "恍畟" "恍" "皆" "皆遜√" "皆遜妎珗" "倆" "俱紫" "倡" "倡菠" "倘頠嵙" "曼" "曼塵" "曼塾僑" "曼遜" "插" "揮" "晶腕" "晶漺" "期" "棺礙塹" "棺瓵蛙" "棺堻" "棺堻" "棠" "棗" "棗" "棗" "棹" "棹﹤禎樲" "棹∩鍾" "棹" "棹" "棹" "棹" "棹" "棹齬疰" "棹" "棣" "棋" "棋●珗" "棋﹥湧" "棋" "棋疚" "棋" "棋筍" "棋" "棋" "棋箋碣橝" "棋謙" "棋吽" "棋閫" "棋擏" "棋暽" "棍" "棍" "棍" "棍菟" "棍" "棍" "棍監" "棍" "棍謙" "棍" "棍籀" "棍繫疶" "棍證" "棍鏈" "棍" "棍竊" "棍" "棍Ж盓抇" "棍Л懧侜" "棍щ邦抇" "棍" "棍伝" "植" "植癟" "植識" "植譎" "植馨勞" "植遄唭" "植鉆埳" "植嶀" "椒" "椒" "椒侃腴" "椒戾" "椒勢" "椒" "椒" "椒識貝珗" "椒禳" "椒л股頩" "椒妏梒" "椒忺△" "椒閫" "椒駍" "椒暽" "椒橶" "椎" "椎 ̄" "椎" "椎椎煬" "椎種" "椎м椎" "椎鄎" "椎鉬蟾股頩" "椎銕寢" "椎銕鉆芤" "棉" "棉●蚨藤樺" "棉" "棉廷" "棉閫" "棉餑" "棚" "棚頩" "棚餑" "棚樿" "楮" "楮" "楮" "楮" "楮" "楮" "楮" "楮癟木" "楮譎觴坐疺腕" "楮譎觴坐埧髦" "楮譎觴坐" "楮" "楮鱉埳唻" "楮鰾狺" "楮鷓戰墊" "楮鷓檠" "楮仵" "楮伈" "楮尕" "楮彸" "楮鉖я" "楮餑" "楮餔" "楮擏" "楮擏椒擏" "楮暽" "棻" "棻 ̄" "棻" "棻證" "渲Л" "渲芧" "渲芩" "渲" "渲狶" "渲珗" "渲痀" "渲" "湧" "湧" "湧ロ" "湧Л" "湧Ъ" "湧芩" "湧苂" "湧珗" "湧畛" "湧畟" "湧痀" "湧" "窗" "窗襲" "筆" "筆拉" "筆埭" "絕" "絮狺" "給" "絢" "絢" "聒" "腕" "腕" "腕蟋襖" "腕獺л溘" "腕獺疺腕" "腕獺" "腕ヮ" "腕Л" "腕矷" "腕竻" "腕芩腕" "腕芩膍" "腕" "腕苤棸" "腕倓扯珗" "腕倓飽" "腕倓塾" "腕倓塹" "腕冓Л" "腕悝" "腕挹" "腕捔" "腕捗" "腕" "腕牷腕" "腕珘" "腕疺悝" "腕" "腕" "腕" "腕梒捘鉸畟" "腕涴○" "腕痋" "腕盓" "腕" "腕婻" "腕" "腕湆" "腔" "腋" "腋" "腋芫" "腋挹" "腋珒" "腋婰" "腎" "腎挬" "腎珒" "腴" "腴" "腴" "腴" "腴" "腴" "腴" "腴鏈" "腴鏈閩漺" "腴愬" "腴慬" "菩" "菩 ̄揤" "菩 ̄奡" "菩 ̄媮" "菩 ̄樿" "菩 ̄橏" "菩ˍ" "菩ˍ畛" "菩﹠" "菩×" "菩×駍" "菩≦△苤恁" "菩卄" "菩D" "菩F斯苠ロ" "菩勻堌" "菩勻媞" "菩友" "菩嗶" "菩睿" "菩睿" "菩碧" "菩隙餑菩餉" "菩懊" "菩擁" "菩擁斯郋谹" "菩撻頩" "菩纓菩籤" "菩纖" "菩臢" "菩臢褽芧" "菩臢謙堙" "菩髓芩" "菩и" "菩侜堌" "菩遄梒△苤畟" "菩遄梒" "菩遄梒" "菩遉蝥" "菩鄐梒" "菩鄏" "菩鉭蝘" "菩鉧埭" "菩鉧婰" "菩鉧梒" "菩鈶" "菩鉣" "菩寣癟" "菩嶀" "菩廕" "菩漶" "菩漶" "菩漶" "菩漶" "菩潳" "菩熇" "菩熅" "菩獍均" "菩銦" "菩鉹鏡" "菩鉹鏑" "菩鈭" "菩靻" "萃" "萃﹎捔" "萃" "萃妝骳" "萃抉" "萃抉" "萃把俖" "萃傚" "萃" "萃棵埳" "萃" "萃嘈禮" "萃" "萃" "萃閫" "萃擏" "萃擏廘" "萃橶熉" "萃瞗廘" "萃踿" "菸" "菸" "菸" "菸" "菸塹" "菸" "菸" "菸" "菸" "菸驍捄" "萍" "萍境" "萍瘍" "萍蠅" "萍識" "萍證" "萍纖" "萍佴恁" "萍佴" "萍愬" "萍慬寡" "菠" "菠÷佸悝" "菠" "菠" "菠" "菠識貝珗" "菠禳" "菠閫" "菠橶" "菠瞗" "菠諤" "菅" "菅" "菅" "菅" "菅" "萋" "萋" "萋" "萋斯郴" "萋憿" "萋憿萃憿" "萋窵菁輹" "菁" "菁迓Л" "菁頩" "菁暽" "菁樿" "菁縡" "菁輹" "華" "華△唌" "華" "華" "華境邟揤" "華" "華獺" "華籤" "華籤÷" "華籤切" "華佸挬華鉖鏡" "華頩" "華餑" "華餔" "華擏∟" "華擏菠擏" "華暻" "華橧" "華樲" "華" "華瞗" "華瞗菸" "華瞗寣" "華窵" "華窱縟" "華篝餉竻" "華篢" "華赬" "華蹅" "華踶華餔" "菱" "菱" "菱" "菱" "菱" "菱" "菱" "菔Л" "菔" "菔竻廘閫" "菔芩" "菔苂" "菔狶" "菔" "菟" "菟" "菟Щ鉞淶臏" "菟" "菟竻" "菟竻鉞" "菟芧" "菟苂" "菟苂菠閫" "菟苂菅л" "菟珗" "虛矷" "虛矷蛟苂" "蛟" "蛟芩" "間" "韌" "飪" "飪芩" "飪挬" "飪挬飪涷" "飪埡" "黍" "黍盓煦" "債" "債" "債矷" "債揤" "債" "債牷" "債" "債梮籣" "債盓菸" "債塈" "債媢" "債餑" "傳捇鎳" "傳畟" "傳埧" "傯" "傯" "傯" "傯" "傯" "剷" "剽" "剽" "剽" "剽" "剽" "剽駍" "募" "募" "募" "募" "募" "募" "募Ы" "勤頩" "勢" "勢" "勣" "勣" "匯" "嗟" "嗟" "嗟" "嗨" "嗨" "嗉" "嗉ロ" "嗉" "嗉竻" "嗉芩" "嗉苂" "嗉狶" "嗉珗" "嗉畟" "園Л" "園Ъ" "園苂" "園" "園" "楚" "楚體" "毀" "溯" "溯蛙" "溯畟" "溯漞" "滓" "滓準" "滓ロ" "溥堄" "溘苂" "溼 ̄藪" "溼" "溼疚" "溼肫菠" "溼戰" "溼擅" "溼轄" "溼薰" "溼贅" "溼羶" "溼蠍塵" "溼證" "溼竊﹎喬" "溼ロ" "溼Ж溼" "溼侅" "溼挩觴 ̄" "溼挩鎳" "溼挩鎳彸" "溼捘鉬蝯" "溼珗帟忺腴鏈" "溼珘" "溼畛" "溼畟" "溼奡" "溺仵" "溫畟" "準" "準" "準" "準" "準珝" "準畟" "準疰" "準" "準" "準楖甡婄氶" "準梬" "準骳" "溜" "溜墊臏" "溪疰" "溴" "溴" "溴" "溴均й" "溴弄籤" "溴" "溴" "溴鼠埧" "溴蕞涷" "溴" "溴鱗" "煩鳩" "煩境" "煩壽" "煩蹊晰凊薛" "煩輿" "煩避頩" "煩觴" "煩龔" "煩竊" "煩籤" "煩纖閫" "煩臢" "煩й" "煩鉭梒" "煩鉰芛陔珗" "煩鉣" "煩鉣眓" "煩鉣駖煩髓" "煩鉣暽" "煩徶閫" "煤" "煤﹜埻" "煤﹜堀" "煤﹜堀痀戙" "煤﹜" "煤﹎" "煤﹎堀" "煤﹎堀" "煤﹎堀痀藤" "煤﹎婈雪" "煤廷鉞" "煤陰 ̄藪" "煤陰考" "煤陰妎珗" "煤陰" "煤" "煤" "煤僱彄溘" "煤僱" "煤僩" "煤" "煤監轂坐籤" "煤" "煤噢" "煤馱菠" "煤嘎埰捔" "煤嗷痋奿" "煤塵" "煤境" "煤境並" "煤塹臍瓴" "煤塹鎳" "煤夥說籀" "煤寢" "煤銋" "煤閫" "煤駍" "煤擏" "煉" "煉" "煉" "煉" "煉" "煉" "煉" "煉觴" "煉觴" "煉獺" "煉譎÷" "煉贈" "煉鏈帝" "煉" "照" "照劃" "照嗶" "照境" "照壽" "照籤" "照鉆" "照鉆梒" "照鉣" "照靾" "煜天謙" "煜老謙" "煜抉侍鏈" "煜啪" "煜" "煜壇供﹎" "煜壇倡" "煜壇蟾" "煜壇鉆腕" "煜壇" "煜懊 ̄" "煜" "煜" "煜ロ今" "煜Й捑寢" "煜й" "煜" "煜" "煜珗媟埱" "煜鉭" "煜餑" "煜擏" "煬" "煬扛珛" "煬" "煬閟僩" "煬" "煬韐埳" "煦" "煦僩痋" "煦" "煦" "煦閫" "煦餑" "煦擏" "煌駖" "煥" "煥" "煥﹜籤" "煥﹜疰螺" "煥﹜鉲溯" "煥﹜" "煥 ̄√譎觴" "煥今" "煥並埽" "煥" "煥" "煥" "煥噢" "煥壁唌Ⅷ捔" "煥" "煥獺揤棍" "煥礙" "煥礙珛" "煥羅煥證" "煥臘" "煥竊◎嵑" "煥桲" "煥鈱" "煥鈱梒" "煥鉣" "煥閫" "煥頩" "煥餑" "煥擏" "煥橧" "煥樲" "煞" "煞" "煞菸壽煞" "煞" "煞" "煞" "煞" "煞" "煞" "猿ˍ橶" "猿禮" "猾褸" "瑁ロ照嗶" "瑁ロ煬" "瑁ロ瑁" "瑁Щ" "瑁" "瑁竻" "瑁芧" "瑁芩" "瑁" "瑁珗" "瑁畛ˍ狶" "琿" "琿ロ" "琿Л" "琿Щ" "琿" "琿竻" "琿" "琿畟" "琿痀" "葷" "號" "號碧腕" "號種譏" "號岏碧菠" "號弅" "號狺疰" "號珜捄" "號疰恁扥" "號" "蜂" "蜆" "蜆博" "蜆藪" "蜆藪÷" "蜆藪肫菠" "蜆藪棍" "蜆藪疺腕" "蜆藪" "蜆藪邽捘煻" "蜆藪珝埽鎳" "蜆藪珚藤" "蜆藪珚堇鉾" "蜆藪珚埩曼" "蜆藪珗婽珗" "蜆藪甡埡堞" "蜆藪甡埰蹊" "蜆藪畟給" "蜆藪疰螺" "蜆藪疺寢" "蜆藪唌" "蜆珚" "蜆珚疰" "蜆珚埏椎" "蜆珚堇" "解" "解限皊疰" "解倌蛌" "解嘎狺" "解謠" "詫華" "詫塹" "詫" "詫證" "該謄坐" "該癟" "詳棍" "詳鉭" "誇揮木" "誇獺藤" "誇獺疰" "誇獺唻" "誇譜" "誇纓" "誇Ж疰" "誇Ш狺" "誇Щ陰" "詼" "飽" "馱" "馱藤猁彶轄" "馱譎僩鏈" "馱鈱" "鳩勻珥" "鳩壽" "鳩憶忌" "鳩懊" "鳩證" "鳩竊﹎喬" "鳩鉰痀" "僩" "凳滓媄" "凳溼" "凳溫" "劃" "嗾" "嗾赫" "嗾" "嗾棸" "嘛" "嘛疻捔" "嘗" "嘗捗÷" "嘔" "嘔彸弄" "嘔淀ヰ" "嘔涫噸鎳" "嘆卞埽" "嘆境" "嘆豁" "嘆轂" "嘉玼" "嘉埳" "嘎" "嘎墊觴" "嘎" "嘎" "嘎" "嘎齬迋" "嘎齬倰竻" "嗶" "嗶" "嗶" "嗶" "嗶" "嗶" "嗶" "嗶鏈鉲鎳" "塵" "塾" "塾﹜捄" "塾﹍痋奿" "塾﹎捄" "塾﹤譏繒" "塾坐捇" "塾" "塾斐" "塾絮崸" "塾僩境÷" "塾" "塾" "塾繒" "塾" "塾閫" "塾頩" "塾暽" "境" "境" "境" "境勻" "境勻猁" "境孔" "境" "境廷痀" "境扭侳" "境帝" "境" "境" "境" "境" "境煬" "境" "境塾說疰" "境境" "境" "境毚" "境" "境薄" "境購≦" "境轄壽 ̄" "境轄殮銝" "境" "境癒" "境證糧" "境譏" "境й" "境л" "境л" "境м" "境彸" "境杬÷" "境杬遄" "境漡" "墓" "墊" "墊 ̄" "墊 ̄苂渥" "墊÷" "墊﹤√" "墊切" "墊勻僎" "墊卞埽" "墊" "墊" "墊肅弅" "墊肅" "墊菠" "墊溼蠍" "墊溼" "墊煤寢" "墊煉" "墊僩" "墊碳" "墊器賄" "墊噢珗" "墊褸蛙" "墊謠珗" "墊謠珗繫" "墊轂" "墊臏" "墊觴" "墊觴" "墊繩堙d" "墊羅畛" "墊藝捔" "墊藪" "墊藪埽" "墊識僑" "墊證" "墊轎滄" "墊" "墊臢瘍" "墊ョ埳" "墊リ籥邴" "墊ヱ涫饕渥" "墊З襖" "墊Ъ芤鴗" "墊Ы喬" "墊и" "墊и給" "墊й" "墊й" "墊ч勿梒鏈" "墊ч勿梒" "墊庍" "墊彸" "墊鈮" "墊鉲" "墊鉲寢" "墊滮菠" "墊熁" "墊牄瘍" "墊閫" "墊餑" "墊駍" "墊橶" "塹" "塹迋" "塹獌椒鉡梒" "塹" "塹" "墅" "墅閫" "壽" "壽" "壽閫" "壽頩" "壽餑" "壽樲" "夥" "夥頩" "夥暽" "嫩蠍Ы" "嫖繙畟" "嫖繫" "寡Щ" "寡竻" "寡" "寡珗" "寥竻" "寥芩" "寥苂" "寥苂佴骳" "寥苂獍寡" "寥" "寥痀" "寥" "寥蚆揤" "寥豻忍" "滿" "滿壅駖" "漣" "漣〞" "煽" "煽埳溼鉥肫" "煽埳溼" "煽" "熒" "犒" "瑣埽" "瑣堋" "疑" "疑蹊絮" "疑" "疑癡" "疑癡亂喬" "疑癡" "疑癡М" "疑癡" "疑籀" "疑籀牷疰" "疑籀狺" "疑籀珚唌疰" "疑籀珗堙藪" "疑籀疰恁圮疺腕" "疑籀疰恁扥" "疑繫" "疑繩" "疑繩挬" "疑繩堙" "疑臘" "疑臘肫" "疑臘肴" "疑臘" "疑臘種贈" "疑藕" "疑藕均" "疑藕牷疿" "疑藕畟" "疑藷捔" "疑藷" "疑蟹挶" "疑襠疰" "疑蹴侃" "疑蹴煉" "疑蹴襲" "疑轎鰻" "疑桎僑" "疑痀鄎芤" "疑" "疑唌藤" "疑唌疰" "疑唲疰" "疑啎傚" "疑唻狺" "疑唻疰" "疑唻疰唌" "疑埏疻" "疑埏棆喬" "疑埲捄" "疑埲疰" "疑埬捖桿" "疑埬疶" "疑埼恁扥" "疑埼猁" "疑堌疰" "疑埩挶" "疑埰媟詳" "疑堍疰" "疑婄弧" "疑婄給" "疑婄Ё" "疑婈壑" "瘍褉" "瘉" "瘉" "瘉" "瘉" "瘉" "瘉" "瘉" "睿" "睿" "睿" "睿椎" "睿" "睿" "睿鏈" "睿鏈" "睿鏈鉆梒" "睿" "睿齬椐" "碟佹涷" "碧" "碧戈腕" "碧" "碧均凄" "碧坐" "碧坐" "碧坐挹" "碧廷堙媗" "碧彤" "碧彤狳" "碧抉√" "碧抉劼繒" "碧抉邴" "碧酊" "碧酊" "碧酊" "碧限捄" "碧陰埽" "碧陰埽鎳" "碧陰" "碧陰棆" "碧陶疺" "碧傢" "碧傢彶" "碧喪啟苤" "碧喪啟陎" "碧" "碧插譏" "碧換" "碧棵" "碧腕" "碧" "碧僑疻" "碧僩痋" "碧嗽郕揤覲" "碧嘉谹" "碧嫩煜" "碧嫣" "碧遞疺" "碧" "碧禳砫譏" "碧齬悝∫" "碧齬椐" "碧" "碧" "碧頩" "碧擏" "碧暽" "碧瞗" "碳" "碳" "碳" "碳" "碳晰陔恁" "碳棍" "碳" "碳腕" "碳" "碳滓廷崸" "碳溪龔" "碳煉詩" "碳煥÷" "碳" "碳鼓郯" "碳劃媄" "碳塹覆" "碳嫩芷" "碳嫩釐" "碳" "碳" "碳藪" "碳襖轂鉞芤" "碳鏈" "碳鏈鈱" "碳" "碳纓" "碳" "碳∫" "碳忺△睿" "碳侜" "碩境" "碩碧" "碩證" "碩證" "碩贈" "碩贊" "碩鉧蝑" "碩鈱" "碩鉖寧" "碣" "碣" "碣陰碳" "碣" "碣晷籥橶" "碣棺" "碣棍" "碣" "碣" "碣" "碣鑠纓織" "碣頩" "禎啟" "禎" "禎" "禎" "福" "福◇砦" "福" "福閫" "福擏" "種" "種" "種 ̄堙" "種﹎" "種中" "種勿牷" "種勿珚埩曼" "種勿唌" "種勿唌檠" "種" "種限珗媕瓴" "種限甡埳堍疰" "種陰譎" "種麻" "種腕" "種腕" "種腕" "種" "種遞肫菠" "種鴃藤" "種鴃疰" "種鴃唻" "種儐珛" "種噸恁尕" "種器埡埽" "種噥" "種噢狳疰鎳" "種擒彊揤墊й" "種賴輯蛙" "種臘煜" "種臘熒" "種臘狳疰鎳" "種證" "種譎褶埱" "種譎謙藤奿" "種譎購埸詳" "種譏" "種贈" "種氶" "種仴" "種仴" "種匟轄" "種卍狺捘" "種邟揤" "種邟" "種佸" "種佸涷" "種侜揤" "種熁煤閫" "種餑箄畛" "種擏" "種樲" "種蹅" "稱肫" "稱肫覲" "稱" "稱" "稱籀檠" "稱籀" "稱臘" "稱臘狳疰鎳" "稱" "稱" "箄" "箄" "箄" "箄" "箄ロ" "箄" "箄竻" "箄芧" "箄苂" "箄" "箄狶" "箄畟" "箄痀" "粹Л" "粹竻" "粹竻廕糒" "粹芩" "粹" "粹狶" "粹珗" "粹疰倓髬" "粽抉粽" "粽Ъ" "粽竻" "粽" "精芩" "精苂" "精" "說" "說勻竻" "說菠" "說籀" "說疰" "說堀-" "趙恁" "趙唌籀" "趙唌藤" "趙唌埼堎" "趙唌棸" "趙啎" "趙啋梀塵" "趙埻倡" "趙埻珜" "趙埸埳" "趙埏" "趙埏捄" "趙堇煉" "趙堇恁扥" "趙埲挶賄" "趙埲牷鎳" "趙埬狺" "趙埬珜" "趙埡" "趙埡牷" "趙堎媟賄" "趙埼棡" "趙堌捄" "趙堌珛" "趙堌珝" "趙埰兢" "趙埰悝〡喬" "趙埰揤募" "趙埰捘憾兢" "趙婄К" "趙婄妐" "趙婈鰻" "趕擅" "趕" "趕褶捑寢" "趕褸婄溜" "趕謙觴碳" "趕謐﹎" "趕豳捔" "趕醜溜境" "輒" "輒堋珗" "輕" "辣擅" "遠珗堙藪" "遠媮" "遠媮詫塹" "遜" "遜挬棍" "遜鉬" "遣" "鄘" "酵" "酵△" "酵" "酵" "酵凳埏捄" "酵塾" "酵" "酵銑﹎" "酵蹊絮" "酵轄例藕" "酵轄喧" "酵轄殮鉓" "酵轄殮銝" "酵Ж" "酵Л廙" "酵й煬" "酵彸" "酵竻棹" "酵芫" "酵芛" "酵苂" "酵" "酵苤" "酵苤Ж" "酵苤芮" "酵苤揤" "酵苤挹" "酵苤畟" "酵苤疰" "酵苤疿" "酵苤疿塹繙捄" "酵苤疿埽" "酵苤埭" "酵苳" "酵苳獄譜邟" "酵苳竻" "酵苳" "酵虼" "酵虼М" "酵虼恁扥" "酵虼悜" "酵虼揤" "酵虼狺" "酵虼珗" "酵虼" "酵虼埡" "酵虼" "酵虼輹酵凊刺" "酵衁" "酵衁Ы" "酵衁揤" "酵衁" "酵衁猁" "酵衁珚堇捄鎳" "酵衁珚堇鉾" "酵衁甡埏疻" "酵衁埭" "酵衁媮" "酵迣" "酵迣" "酵迣畛" "酵迣堋珗" "酵迣堋" "酵迣桮" "酵迡" "酵迡Л" "酵迡芧" "酵迡恁酵冓椒" "酵迡悝" "酵迡挹" "酵迡" "酵迡珨" "酵迡疶" "酵迡埭酵迡苂" "酵迡埸埳" "酵迡埩曼" "酵迡埩域" "酵迡塈" "酵迡堥" "酵迡湆" "酵迮" "酵迠" "酵郱Л" "酵郱恁扥" "酵郱悝" "酵郱挬" "酵郱挹" "酵郱珗" "酵郱埳" "酵郱婰" "酵郱梬" "酵郱媢" "酵郱婻" "酵郱婻鏑畟" "酵郱橶" "酵邽珗" "酵邽珗珚埏椎" "酵邿" "酵邿芩" "酵邿梬譜嗶" "酵郅證" "酵郅" "酵郋警" "酵郋譫婖" "酵郋挶賄" "酵郋揤賄" "酵郋珛" "酵郋疺" "酵郋盉" "酵郋堀" "酵郋媟賄" "酵釔捗岋" "酵釔" "酵釔狺疰" "酵釔瓴" "酵釔疺" "酵釓" "酵釓ン" "酵釓Э" "酵釓珜" "酵釓珝" "酵釓堞" "酵釓媟" "酵釓棸" "酵陔堙蛙" "酵陔媟賄" "酵陔棆" "酵陓謙" "酵陓竻" "酵陓捔" "酵陓珛" "酵陎藤" "酵陎藤給" "酵陎捄" "酵陎捄唌疰喬" "酵陎捄埱疺腕" "酵陎珛" "酵陎疻" "酵陎疺" "酵陎唭" "酵陎啋" "酵陎埽" "酵陎梜" "酵倞" "酵倞疺寢" "酵倇" "酵倇坐" "酵倇" "酵倇滿疰喬" "酵倇" "酵倇" "酵倇珝" "酵倇珗" "酵倇埸詳敷" "酵倇埸詳檠" "酵倇埸詳" "酵倇棫" "酵倓錘" "酵倓覲" "酵倓籤" "酵倓髓" "酵倓疰" "酵倛畛" "酵冓允" "酵冓芋" "酵冓侃暑譜鄖樿" "酵冓佰織" "酵冓" "酵冓椒" "酵冓椎禮" "酵冓椎踶" "酵冓椎踶У譜渠痀" "酵冓渡" "酵冓溜" "酵冓溜證" "酵冓溜銩" "酵冓煌竻" "酵冓噫" "酵冓懋" "酵冓轂" "酵冓Ё" "酵冓а" "酵冓а寢" "酵冓岋埶" "酵凊﹛" "酵凊" "酵凄切" "酵凄瞻" "酵凄穠寢" "酵凄鰻" "酵恁" "酵悝" "酵悛倡" "酵捄贅絢揤" "酵捄贅碧" "酵揤" "酵挹" "酵捘酵" "酵捑塹" "酵捑④" "酵牷" "酵牷藪" "酵牷疰" "酵狺檠" "酵狶" "酵狶木" "酵狳桯" "酵猁倡" "酵猁原" "酵猁捔" "酵猁埽" "酵珜" "酵珜" "酵珒" "酵珗" "酵珘" "酵珘棍殮鉓" "酵珨蛙" "酵甡" "酵畛" "酵畛疺" "酵畟" "酵疰飪" "酵疰" "酵疰謊" "酵疿" "酵疿識" "酵疿疰" "酵疶博" "酵疶珜" "酵疺珝" "酵砩薊" "酵砩褶鎳" "酵" "酵" "酵唌" "酵啎傚" "酵唻狺" "酵唻疰唌" "酵圊祫" "酵埻倡" "酵堀畛" "酵堀畟" "酵埽" "酵埽菩" "酵埽" "酵埸藤寢" "酵埸捑寢" "酵埳" "酵埳抇" "酵埳埲懊" "酵埏" "酵埡陰" "酵埡挶" "酵埡珜" "酵埡珛" "酵堎捄" "酵堎畟" "酵堌藤" "酵堌疺" "酵埱境" "酵婄弧" "酵婰" "酵晡" "酵桭" "酵桭婖" "酵梒" "酵涷" "酵淔" "酵痋奿" "酵谹" "酵郴" "酵" "酵塈" "酵棷" "酵渟暑鏟珒" "酵渟" "酵鉡僩鏈" "酵牄" "酵骳" "酵輹" "酸貝" "酸仵狶木" "酷" "酷" "酷" "酷ョ" "酷矷" "酷芫" "酷芫檐" "酷芮" "酷芩" "酷" "酷恁" "酷挬" "酷桎" "酷栴" "酷栴﹠埳" "酷" "酷珛" "酷珘" "酷畟" "酷痀盉" "酷疺境÷" "酷疺鉞芤" "酷唭" "酷埭" "酷堌" "酷婈噪" "酷婰" "酷婩" "酷" "酷捸" "酷郪" "酷堙" "酷晼" "酷閫" "酷駖" "酷駖" "酷暽" "酷樿" "酷樿" "酷橔" "鉸﹤閣癒" "鉸" "鉸" "鉸疰勞" "銀" "銓" "銓" "銓" "銓" "銓" "銓僑" "銓" "銓" "銓鏈" "銓鏈華遄" "鉼" "鉼★" "鉼÷識" "鉼D" "鉼煩" "鉼煥" "鉼邟挹" "鉼鉖籤" "鉼慞餑" "鉼牄" "銑" "銑﹛婰" "銑﹎" "銑﹎痀弅" "銑﹎堀" "銑﹎埳" "銑﹎" "銑﹎" "銑﹤駁" "銑" "銑廷堙媗" "銑豕揤竣畛" "銑豕揤答劃" "銑豕揤絰譜鈮" "銑豕揤蛙" "銑豕捔" "銑豕畛埽" "銑豕媞揤" "銑豕婽蹊" "銑貝" "銑貝埡" "銑兒芋" "銑郃и中梒" "銑限" "銑倒" "銑" "銑紫珗" "銑紫砫м" "銑溥" "銑" "銑" "銑遞疺" "銑巠痀" "銑巠疺" "銑頩" "銑暽" "銑篝" "銑篪" "銑諤" "閡" "閡" "閡﹛" "閡<妎珗" "閡" "閡耽刳譎鎳" "閡陛" "閡陛募" "閡勞菠碳" "閡" "閡菠煻﹜" "閡煤均" "閡瑁竻漶" "閡" "閡銑" "閡" "閡觴" "閡證肴" "閡譎戾腕" "閡譎肫" "閡譏" "閡鏈遄蛙" "閡纓" "閡鱗" "閡" "閡佴揤" "閡劼" "閡煻﹜" "閨" "閩★唌" "閩宏竻" "閩恣" "閩" "閩菸" "閩菠" "閩華" "閩華考" "閩華濟轂" "閩華籤" "閩臏埽" "閩覆" "閩狳" "閩漟蹴纓臏" "閩熆蟾" "閩頩" "閩頩漟" "閩餑" "閩擏" "閩橧" "閩踿" "閣" "閣" "閣" "閣" "閣蹈犗" "閣狳" "閣" "閣" "閣窵" "閣篝" "閣" "閥" "閥" "閥閫" "閥暾" "閥諤" "閤" "閤暽" "閤輹" "隙" "隙" "隙貝" "隙" "隙嗟疚" "隙" "隙" "隙熁刱" "隙餑" "隙擏<" "隙橧" "隙" "隙篝" "隙蹅" "隙踶" "障" "障疚梒種中" "障疚梒и絮" "障" "障" "障" "障" "障樲淶障樲" "韶Ё" "餉" "餉ロ" "餉Л" "餉Ъ" "餉竻" "餉" "餉珗" "餉畟" "餉痀" "駁Л" "駁Л鉬淶繒" "駁" "駁竻" "駁竻×" "駁芧" "駁芩" "駁苂" "駁俉駁" "駁" "駁狶" "駁珗" "駁珘" "駁畟" "駁" "骯矷<" "骯珘" "骰" "骰芩" "骰" "慼" "慼" "慼畟" "憫" "憫" "憫" "憫珒" "憎" "憎" "撈" "撈塈" "撕ョ" "撕ヰ" "撕悝" "撕痋" "撙" "撙粽芮" "撢竻" "撳婽й" "敷" "敷" "敷恁" "敷挬" "敷捚" "敷珥" "敷珗埰廷" "敷瓞" "敷皊疰" "敷" "敷埽" "敷埽檐陰" "敷梩籤" "敷痋" "敷紬" "敷" "敷塈" "敷奡" "敷媢" "敷媞" "敷娷" "敷" "敷褉" "暮" "暮" "暮" "暱" "暱珗" "暱畟" "槨" "槨" "槨" "槨" "槨" "槨Ж" "槨椐" "標" "槽" "槽" "槽" "槽" "槽匱Л" "槽" "槽" "槽з" "模" "模" "模" "模勛" "模" "模" "樊" "樊" "樊" "樊" "樊" "槳" "樂" "樂閫" "樂擏" "樅" "樅頩" "槭" "槭" "槭翹" "樑" "樑" "潛苂" "潸竻" "潸芧" "潸苂" "潸" "潸珗" "潸畟槨" "潸痀" "潮" "蝴" "衛桎" "衛桎抉" "談" "諸" "諸" "諸" "諸" "諸閫" "課" "課" "課" "課" "課" "課" "諂頩" "調" "誰" "論" "論" "諍頩" "誶" "質" "質" "質畟" "賡" "賡畟" "鴃" "儒" "儒痀棍" "儒" "儘境" "儘境壽 ̄" "儘境繹" "儘塹鎳" "儘寢" "儘轄" "儘" "冪" "冪疻" "噫啋" "噫啋鎳" "噹" "噪" "器" "器恁" "器恁忌" "器悝" "器揤" "器捗" "器" "器珒" "器疰畛" "器疻捔" "器埭" "噥" "墾骳" "壇僱" "壇" "壇恁" "壇恁擒謹" "壇悀考" "壇悀耒" "壇悀耳" "壇悀位" "壇悜疚" "壇捄" "壇挹" "壇牷籀" "壇狶木" "壇珚" "壇珗" "壇珘珝" "壇珘疻" "壇畟畛" "壇" "壇塈" "壇媌觴腕" "壇媌" "壇媌鉌境" "壅" "壅" "壅" "壅" "壅瓣" "壅瓣" "壅籀" "壅籀境" "壅蟹" "壅蟹" "壅Ж" "壅Л" "壅佹" "壅佹並藕" "壅佹例譎博" "壅佹例譏" "壅芫" "壅" "壅陏猁и" "壅倰坐" "壅冓券眝蹙駎捚" "壅恁壅樿" "壅挬" "壅桎" "壅桎" "壅牷" "壅狶" "壅珒" "壅珗" "壅畟" "壅痀" "壅皊螺" "壅" "壅唌" "壅埳鉞芤" "壅埏" "壅婩" "壅婩" "壅淀轅臏" "壅淀轅藏" "壅盓" "壅砦" "壅硅" "壅袨" "壅" "壅堙" "壅媢" "壅嵙" "壅" "壅棷" "壅駖" "壅駖謙鏑" "壅駖" "壅骳" "壅骳" "壅髬" "壅樿" "壅樿" "壅樿謙識" "壅樿" "壅橏" "壅橔" "奮﹎肫菠" "奮﹎溫" "奮﹎證" "奮﹎疺腕" "奮﹎" "奮﹎鈮Ж" "奮﹎" "奮" "奮絀" "奮絀例藕" "奮紳" "奮" "奮菠" "奮菠 ̄藪" "奮菠÷籀" "奮菠塾" "奮溢婖" "奮溢" "奮僱" "奮僩" "奮侃" "奮侃÷繒" "奮劦" "奮劦狺" "奮刲" "奮刲妧椎" "嬝" "嬝÷" "嬝匹畛" "嬝" "嬝ロ" "嬝и" "嬝痋奿" "嬝竻" "嬝芫" "嬝芩彄鰻" "嬝苂" "嬝" "嬝悝" "嬝悝忌" "嬝挬" "嬝揤" "嬝挹" "嬝挹嬝" "嬝挹嬝盓" "嬝桎" "嬝桎" "嬝桎" "嬝桄" "嬝牷" "嬝狶" "嬝珒" "嬝珚唌疰" "嬝珗畛捔" "嬝畛" "嬝畟" "嬝疺菠" "嬝疺轄" "嬝皊" "嬝唌" "嬝婩" "嬝" "嬝" "嬝堙" "嬝嵙" "嬝嵙" "嬝嵂" "嬝" "嬝鉡谹" "嬝鈱谹" "嬝牄" "嬝駖" "嬝骳" "嬝骳" "嬝骳" "嬝橔" "學" "學" "學" "學" "彊" "彊婺" "憲" "憲靨繡埳" "憲" "憲" "憲椈邦" "憲椋棫" "憩" "憩" "憩" "憩煤" "憩鏈" "憶" "憶戰" "憶蹙" "憶贈屁陏悝" "憶ロ" "憶и▽陎" "憶①瓴陎悝" "憶竻" "憶邰晷倰" "憶鉆梒" "憶鉆橏憶嗶" "憶鉰埏" "憶鉰埏憶觴" "憶廜" "憶牄" "憾" "憾△鏈" "憾" "憾壯" "憾尬袨" "憾屁Ъ" "憾屁芧" "憾屁珘" "憾抉壇" "憾秉" "憾硃" "憾硃" "憾" "憾腕" "憾溢彶轄" "憾溘" "憾溫塈" "憾" "憾僩狶" "憾兢 ̄博" "憾兢煜壇" "憾兢境÷" "憾兢碧腕" "憾兢轂腕" "憾兢" "憾兢" "憾兢崸" "憾兢" "憾" "憾齬" "憾龔揤" "憾" "憾з" "憾椎" "憾妠" "憾妗鏈" "憾妎珗" "懊" "懊" "懊‾" "懊" "懊" "懊勛" "懊勛祁" "懊博" "懊博塹" "懊" "懊" "懊" "懊溘" "懊" "懊詫" "懊" "懊嘔" "懊" "懊" "懊覲" "懊贅" "懊籀" "懊證" "懊證諮" "懊鏈" "懊" "懊纓" "懊" "懊妏" "懊妏" "懊忐 ̄" "懊忺л鏈" "懊佴" "懊刵" "懊刳" "懊匼" "懊匼識" "懊昋" "懊鉆" "懊鉖繫" "懊鉖梒" "懊牄" "懈" "懈塾" "戰ˍ" "戰×" "戰×菠" "戰÷" "戰≦" "戰考" "戰舟嗷" "戰" "戰例籀" "戰例籀" "戰侃腕" "戰股" "戰肫" "戰肴" "戰垂骳" "戰" "戰勢戰剽" "戰溘" "戰煤﹎" "戰詫" "戰試" "戰僩" "戰嗶瑣婄煉" "戰塾" "戰境" "戰墊" "戰墊" "戰墊" "戰碧菠" "戰稱" "戰墾" "戰憾▽埲駍" "戰憾硃" "戰懊﹎" "戰懊﹎" "戰懊" "戰戰" "戰戰蛻捖捩募" "戰戰蛻捖桿" "戰擰" "戰謙" "戰豁" "戰轄" "戰遽" "戰醜妏" "戰襖" "戰證" "戰證竊" "戰譏樴娾" "戰贈" "戰贈" "戰籤" "戰籤" "戰纖" "戰纖﹛痋=" "戰纖▽埧桎" "戰" "戰ロ" "戰й" "戰疻" "戰媟詳" "戰媟賄" "戰" "戰伈嵕禳" "戰圴" "戰妠疰" "戰岏捔" "戰庍" "戰彸" "戰忐溢婖" "戰忭邦" "戰刳" "戰朊" "戰鄐證倓" "戰鉎" "戰熆▽婄★" "戰熆" "戰熁" "戰鞀" "戰靻" "擅" "擅炊勛" "擅幽" "擅譜轂" "擅" "擅" "擁" "擁" "擁謙" "擁閫" "擁頨" "擋" "擋" "擋暽" "擋暽煬" "撻" "撻" "撻" "撻" "撻紳" "撻" "撻溢" "撻溢" "撻溢痀疺" "撻溢" "撻溼" "撻猾貉" "撻" "撻閫" "撻餑" "撻樲" "撼" "撼" "撼" "撼" "撼暽" "擒麂" "曇" "曇ロ" "曇" "曇狶" "曇珗" "曇畟" "曇皊" "暸" "暸" "暸竻" "暸芩" "縑" "螢苂渥" "螢" "衡侲羅恢" "衡棎芤桯" "諦" "諦" "諦" "諦" "諦僱" "諦鏈" "諦鏈轄霽湴帤" "諦鏈轄籥" "諦鏈徶" "諦坅埧" "諦尪芤捗" "諦忺艙" "謀" "謀" "謀均鴘揤" "謀均鴘桎" "謀" "謀" "謀頩" "謀暽" "諜" "諜" "諜" "諜溴" "諜" "諜" "諜鏈" "諜坅埰蛙" "諮" "諮" "諮嫗饕渥" "諮" "諮霽" "諮籥遙埳抇" "諮鱗" "諮в" "諮彸﹋" "諾輯" "諾" "諾" "謂" "謂" "謂暽" "諷" "諷" "諷絢芶" "諷" "諷" "諷諱" "諷戀寣篕" "諷頨" "諷餑鉯谹" "諷擏" "諭" "諭" "諭侃" "諭" "諭" "諭講畟" "諭" "輯" "輯竻" "輯芧" "輯狶" "輯畛" "輸" "輸竻" "輸芧" "輸" "壑塹" "擰" "擱" "擢揤腕畟" "擭" "擭" "擭藕" "擭珒" "擭堎" "曖萃傚" "曖悝木" "檐●" "檐﹎" "檐﹎皊疰" "檐陰" "檐紫狺疰" "檐紫皊疰" "檐溼" "檐" "檐" "檐妠" "檐妗證" "檠" "檠孔" "檠疚" "檠喀" "檠" "檠壇僱鏈" "檠" "檠" "檠獺唻" "檠繫" "檠繭" "檠譜" "檠證" "檠轎癟" "檠Л" "檠з" "檠" "檠氶" "檠伈" "檠奿" "檠尕" "檠尥" "檠吽" "檠妏" "檠岆" "殮﹜" "殮﹜狳疰" "殮﹜" "殮﹜媢" "殮﹎" "殮﹎" "殮﹎堻" "殮坐疰" "殮凌" "殮僩境÷" "殮僩" "殮藪鎳" "濱" "濱爭木" "濱謄" "濱謄埳" "濱謄" "濟" "濟" "濟菠" "濟轂" "濟轂酵冓溜" "濟轂檠" "濟轂籣鉆" "濟轂疺腕" "濟轅" "濟譎" "濟譏" "濟Ж" "濟Л珔" "濟ч僱" "濟ы嗽" "濟奿" "濟尕" "濟遄蝯" "濟" "薄" "薄" "薄證切" "薄堮" "薄媗" "薛≦" "薛勿" "螺情" "螺掩" "螺掬" "螺" "螺鈺梒" "蟈" "蟋" "襄" "褸" "褸腕" "褸腕" "褸蛙" "褸彸÷" "褸捗" "褸捗м" "褸埧" "褸婻穠珛" "褸婻繡藤" "褸婻薰疺腕" "褸婻薹捘憾兢" "褸婻轉溝" "褸婻邇禳" "褸婻鎳" "褸鈮梒" "謝媄" "謝媄" "謝嵑蠍" "謝棆" "謄" "謄△" "謄創" "謄喬" "謄插" "謄瓣" "謄瓣境癒" "謄瓣" "謄藕" "謄藕珝" "謄忐" "謐" "謐肅" "豁" "豁煜" "豁畟" "豁畟" "豁橏" "豳" "豳" "豳" "賸 ̄藪" "賸籀" "賸藤鳥" "賸蟾" "賸揤菊滄" "賸揤蛙" "賸捑並藕" "賸" "賸猁" "賸珒鉣蝖" "賸珒銩" "賸珛蹈" "賸畟珗" "賸疰猁" "賸痀埸觴竊" "賸疿疻" "賸疺遽溼" "賸皊唭尺" "賸唭抇" "賸埭" "賸埡" "賸祫" "趨" "趨" "趨把ˍ苂渥" "趨" "趨" "趨墊鉞芤" "趨" "趨" "趨鍍謠" "趨襖手" "趨鏈諾" "趨靨滔" "趨忷匹" "趨鉞芤" "蹈" "蹈 ̄棷" "蹈﹠" "蹈-熁塹" "蹈〥埭" "蹈D" "蹈Zロ" "蹈方" "蹈忘駍" "蹈忪謠虴皊證" "蹈帝" "蹈棋" "蹈菩碟" "蹈萋閫" "蹈菱" "蹈菟竻" "蹈境" "蹈酵狶" "蹈壅橏" "蹈嬝挹" "蹈撼" "蹈錘ロ" "蹈臏" "蹈譜" "蹈譙" "蹈瓚﹠" "蹈籥" "蹈刵佹挬" "蹈怤﹛珗" "蹈遄纔" "蹈遉谹" "蹈鉥郯" "蹈鉯谹" "蹈鈱蝘" "蹈鉌蝘" "蹈徶" "蹈熁" "蹈靽" "蹊" "蹊﹛倇揤" "蹊中嵑溜∫" "蹊允畟" "蹊灰珗" "蹊均" "蹊坐奡" "蹊坐骳" "蹊豕" "蹊貝" "蹊狀埡觴" "蹊狀埡и" "蹊狀埡" "蹊陰嗷埧髦" "蹊陰境" "蹊" "蹊脾觴" "蹊溯" "蹊溯梒" "蹊溘" "蹊蜃曼" "蹊蜃" "蹊蜃捗塑" "蹊" "蹊" "蹊謠涷" "蹊" "蹊霾" "蹊齬唌" "蹊" "蹊觴" "蹊妗疰黕" "蹊岏桎" "蹊岈埭" "蹊岒埳" "蹊閫" "蹊頩" "蹊駍" "轄" "轄" "轄﹛я" "轄死椌" "轄羽" "轄鳥" "轄傑唌" "轄" "轄腕" "轄腕÷" "轄腕曼" "轄腕" "轄華" "轄華籤" "轄" "轄嗾" "轄塵" "轄墊" "轄塹" "轄壽" "轄壽匟л溘" "轄熊瓴奡" "轄" "轄觴" "轄觴м" "轄" "轄瓣" "轄繫" "轄繫" "轄藕" "轄藕珝" "轄蠍譏" "轄贈" "轄竊" "轄籤鈱梒" "轄纓" "轄" "轄" "轄忺腴鏈" "轄鉣鄎梒" "轄滮" "轄漡狎" "輾鉣谹" "轂" "轂卅悜倘" "轂貝" "轂" "轂腕" "轂菠" "轂嗟境繒" "轂覲嘗骳" "轂齬唌識" "轂齬埏疰" "轂齬埧埽" "轂齬婄蟋" "轂籤" "轂в啎" "轂" "轂坅" "轂忺腴鏈" "轂鉞芤" "轂閫" "轂橧" "轅" "轅" "轅" "轅境切" "轅鈮" "轅" "轅駔桄" "輿" "輿" "避" "避" "避" "避頩" "避樿" "遽" "遽" "遽●" "遽●皊疰" "遽" "遽" "遽乳埳瑜" "遽" "遽窗埭" "遽煜菸" "遽煥" "遽墊僩鏈" "遽塹" "遽" "遽瑭埏" "遽" "遽岒埡" "遽弅" "遽閫" "遽頩" "遽餔" "遽擏" "還" "還腕" "還" "還謠畛" "還" "還聾骳" "還酈珗" "還饕堋" "還鄎" "還頝湆" "還餕涷" "醜侒Ы" "醜侕" "醜刳朊" "鎂" "鎂嘔皊" "鎂嘟砫鏡" "鎂佸尨" "鎂佸郱痋" "鎂佸" "鎂佮疰" "錘ロ" "錘Л" "錘芚樿" "錘苂" "錘迓駖" "錘珗" "錘畟" "鍾Л" "鍾Ъ" "鍾" "鍾珗" "鍾畛" "癒" "癒鎔竻" "禮" "禮熆" "繕" "繞牷藤" "繒腕" "繒蛙" "臏" "臏" "藏藕" "藍" "藉" "藉" "藉" "藉" "薰" "蟬" "蟬" "蟬" "蟬" "蟬" "蟬" "蟬" "覆" "覲" "覲﹜埳" "覲﹜" "覲‾矷" "覲﹎堀" "覲﹎" "覲﹎" "覲" "覲" "覲毯謬織" "覲" "覲僱獺藤" "覲僱鏈" "覲僱" "覲" "覲閫豐" "覲頩" "覲駍" "覲擏" "覲橶" "覲橶鉰淶" "觴" "觴" "觴" "觴芋" "觴" "觴棍" "觴腕" "觴腕" "觴" "觴塹" "觴" "觴粹" "觴" "觴" "觴" "謨" "謹" "謹" "謹" "謹" "謹賓捘" "謹賓" "謹褸疺菠" "謹" "謹侞" "謹閫" "謹橧" "謬" "謬" "謬證" "謬" "謬駔" "謬駔" "謬駔嵙" "謬駔骳" "謬駎譜" "謬駎鏡" "謬駎樿" "謫‾谹" "謫" "豐" "豐" "豐" "豐頩" "豐樿" "贅" "贅△" "贅" "贅勿" "贅" "贅" "贅菠" "贅菠蜆藪" "贅溢" "贅溢÷" "贅溢境" "贅溢" "贅猾蜓 ̄喬" "贅" "贅噹" "贅壇" "贅壅猁" "贅擒觴④" "贅擒蠍" "贅藕珛" "贅ヰ" "贅熁" "贅閫" "贅餑鎔畛" "贅餔" "贅擏" "贅樲" "蹙" "蹙墊‵" "蹙藕珛" "蹙譎" "蹙忺屍鏈" "蹙鈱塾" "蹙鈱鉆梒" "蹙漶岒砫м" "蹙漺" "蹙熁" "蹙" "邇" "鎔" "鎔" "鎔竻" "鎔芩" "鎔苂" "鎔" "鎔" "鎔狶" "鎔珗" "鎔畛" "鎔" "鎊Ъ" "鎊芧" "鎊芩" "鎊苂" "鎊畟" "鎊" "獺" "癟" "癟匹捄嗟" "癟木" "癡境" "癡埽" "癡鈱" "癡鉣" "籀" "籀扆" "繫" "繫" "繭" "繭" "繹" "繹鉡鱗" "羅" "繳" "臘" "臘" "藪" "藪博" "藪博鎳" "藪鎳" "藕狶木" "蠅" "蠅" "蠅" "蠅" "蠅嫩" "蠅" "蠅" "蠅" "蠅" "蠅" "蠍境" "蟾" "蟾境" "蟾畟嫩Й" "蟾唌" "襠捗" "襠埽" "襖" "襖" "襖" "襖抉抒" "襖" "襖" "襖" "襖漱芮" "襖" "襖" "譜" "譜±" "譜允" "譜夫" "譜老" "譜岐" "譜忘" "譜期" "譜棋" "譜棻" "譜毀" "譜溥" "譜準" "譜煦" "譜境" "譜境" "譜境" "譜犖" "譜瑭" "譜睿" "譜碧" "譜碳" "譜碳" "譜碳" "譜碩" "譜碣" "譜禍" "譜種" "譜覆" "譜覲" "譜謨" "譜謹" "譜鎊" "譜譎" "譜攪" "譜纖" "譜и" "譜й" "譜侞骳" "譜匼" "譜迗" "譜阹" "譜鉆" "譜鉆譜境" "譜鉆梒" "譜鉭埭" "譜鉭梒" "譜鉭梒" "譜鉭梒" "譜鉭蝘" "譜鉡梒" "譜鉖" "譜鉖埭" "譜鉖蝔" "譜嶀" "譜嵺" "譜廜" "譜慳" "識" "識﹜" "識◇淶" "識﹎" "識﹎" "識﹥鏑" "識" "識廷埽" "識廷" "識扭" "識扭" "識貝" "識" "識狙甡婄氶" "識玫甡婄氶" "識疚" "識郃Л" "識" "識偕疻" "識偕媄婻" "識偵譜疺嗷疺腕" "識偵譜刳" "識偭僱譏" "識勒埰皊√" "識務疺腕" "識動檠" "識" "識" "識紫" "識給" "識給腕捔" "識給碧齬悝∫" "識給" "識給" "識給漶彸僩鏈" "識給" "識黑" "識" "識僩" "識" "識疑竻" "識謊" "識謠涷" "識" "識轂蹊" "識轂轄" "識轅" "識仵牷" "識忺幽" "識駍" "識擏" "識暽" "識橶" "證" "證" "證﹎" "證壬" "證夫" "證夭" "證孔" "證" "證妒狶" "證序捇" "證" "證炕疰" "證疚唌媗" "證的捖敘肅妎珗" "證祁" "證竺庇" "證竺熁均疰" "證羌桷" "證羌梖" "證股嗽" "證肫" "證肫詳證" "證肫殮鉓" "證肫Ж" "證肴墊≦" "證肴塹" "證肴夥辣捘燬" "證舍辣捘燬" "證舍領壑" "證" "證" "證" "證腕" "證腕" "證" "證" "證噫疺棆" "證" "證薑貤邟" "證購棆" "證蹊" "證轄" "證轄詳煽" "證醜<藏菠" "證" "證癒疰" "證禮珗" "證" "證м" "證" "證仵" "證仵鏈" "證厒" "證鄋僩鏈" "證滫碳" "證滫й" "譚" "譚夫" "譚些" "譚憾" "譚擁" "譚蹈境" "譚纖" "譚鉧" "譎" "譎" "譎棵桭ロ" "譎" "譎" "譎犖婩" "譎" "譎匟" "譎暽" "譎橶" "譏" "譏侃妢譏" "譏" "譏" "譏" "譏" "譏л" "譏鉌埼鴘" "譏鉌埼鴢" "譏煻" "譏" "譏" "譆" "譆擏" "譙頩" "譙樿" "贈" "贈" "贈﹜-" "贈﹜肫菠" "贈﹜還" "贈﹜鈮Ж" "贈﹜" "贈岔悝" "贈侃" "贈佰" "贈" "贈" "贈溢" "贈溼" "贈" "贈嫗癟" "贈疑湆" "贈" "贈伔" "贈忷" "贈閫" "贈頩" "贈餑" "贈餑鏡畛" "贈餔" "贈擏" "贊" "贊" "贊" "贊轄鉆梒" "贊忺幽" "贊鉡鉆梒" "贊鉣蝯蛙" "贊" "贊" "贊擉恁" "轎" "鏡" "鏡" "鏡ロ" "鏡Л" "鏡Щ" "鏡" "鏡竻" "鏡芧" "鏡苂" "鏡" "鏡狶" "鏡珗" "鏡畟" "鏡" "鏡蚚Ъ" "鏑" "鏑竻" "鏑芧" "鏑苂" "鏑" "鏑狶" "鏑珗" "鏑畟" "鏑痀" "纂扥" "蘆" "蘆" "議" "譬" "譬" "警" "譟詫" "譟詳" "譟捔" "馨" "馨" "櫻" "襲" "霽" "霽" "霽痀捇鎳" "饕" "驕" "鱉種譏" "鰻" "齬境" "齬玼" "齬埽" "龔" "龔" "龔" "龔嘉畛" "龔塵" "龔" "攣" "攪" "攪÷譎煦" "攪" "攪均竻" "攪夾唻棷" "攪" "攪菽腴譏" "攪" "攪僑芧" "攪" "攪" "攪" "攪" "瓚" "瓚勻" "瓚菠佻" "瓚菠" "瓚碧" "瓚蹊閫" "瓚遽" "瓚錘芩" "瓚鍾畟" "瓚龔" "瓚佹珒" "瓚刳" "瓚匼閫" "瓚迋" "瓚迗" "瓚鉡" "瓚鉡眓" "瓚鉡埭" "瓚鉡梒" "瓚鉣" "瓚鉣唭" "瓚鉣梒" "瓚鉲" "瓚鉖涷" "瓚閟梒" "瓚慳" "瓚煻" "瓚犗" "瓚靾" "竊" "竊﹜創" "竊﹎創" "竊﹎轅" "竊中" "竊允" "竊允" "竊" "竊抉" "竊牧" "竊牧" "竊郃 ̄" "竊郃寢" "竊酋" "竊酋 ̄" "竊酋寢" "竊" "竊棍" "竊溢" "竊溢" "竊" "竊" "竊噪" "竊" "竊頩" "竊頩溥" "籤" "籤" "籤" "籤" "籤" "籤" "籤" "籤" "籤" "籤" "籤薄" "籤" "籤薹谹" "籤饕" "籤戀" "籤" "籤ョ" "籤и麻" "籤й" "籤妏" "籣" "籣棗" "籣棋" "籣碳" "籣學" "籣憩" "籣憾" "籣濱C" "籣蟬" "籣鄐蝑" "籣鄖梒" "籣鉆" "籣鉧" "籣鉣唌" "籣鉣梒" "籣熅" "籣鞃" "籥" "籥∩僱" "籥〨埸詳" "籥F" "籥" "籥均" "籥坐" "籥" "籥" "籥聒捗" "籥腕" "籥墊" "籥" "籥輕" "籥輓" "籥銘菠" "籥閩" "籥艙" "籥籥" "籥" "籥囮" "籥遄" "籥鉭梒" "籥鉲芤儩棸" "籥餑" "籥駍" "籥暽" "籥暽佰" "籥橧" "纓" "纓" "纓壽‵" "纓" "纓籤" "纓籤" "纓" "纓" "纖" "纖坐" "纔" "纔" "纔" "纔" "纔頩" "纔駖" "纔暽" "纔樿" "臢" "臢" "臢" "臢" "臢頩" "臢餑" "臢餔" "臢擏" "臢樲" "蘸" "蘸﹞橏" "蘸◇疿∫" "蘸" "蘸" "驗矷遄" "髓" "髓" "髓ロ" "髓Щ" "髓" "髓竻" "髓芧" "髓苂" "髓俉髓" "髓" "髓" "髓狶" "髓珗" "髓畛" "髓" "體抉體" "體" "體" "體ロ" "體Л" "體" "體芩" "體" "體狶" "體珛橏" "體珗" "體" "ョ" "ョ" "ロ" "ロ△" "ロ∫" "ロ並" "ロ ̄" "ロ" "ロ" "ヮ塵" "ヮ" "ヮ" "ヰ" "ヰ埼" "ヰ埼痀婺" "Ё碧腕" "Ё憾兢寢" "Ё" "Ё啋" "Ё啋肫" "Ё啋觴" "Ё啋鎳" "Ё埲" "Ж" "З" "Й" "Й悜倭菸" "К堙" "К" "Л" "Л捗" "Л" "Л珗蛙" "Л埭" "Л埲" "Ъ捗鎳" "Ы坐" "Ы創" "Ы賸痀堍疰" "Ы瓣" "Ы瓣鎳" "Ы礙" "Ы礙鎳" "Ы籀 ̄藪" "Ы籀仍" "Ы籀境" "Ы籀奮菠" "Ы籀贅△" "Ы籀贅" "Ы籀埧髦" "Ы籀" "Ы籀痋" "Ы繪" "Ы繪塵" "Ы蟹" "Ы蟹" "Ыл刳" "Ы悜倪" "Ы狶允" "Ы皊" "Ы皊" "Ы堻" "Э悜疚" "Э捔" "Э皊" "Э" "а" "в庈" "в彶" "в" "в揤絕埧" "в揤蛙" "в" "в" "в" "в婺" "в媢蜆" "в媮椎" "г" "г" "е" "е" "е﹥ョ" "е" "е" "е鏈愨僩" "е齬壖腕梫" "е鑠鷓" "е鑠鷓儥芶" "е慳" "з" "и" "и﹛" "и" "и中梒" "и中" "и井桯" "и" "и均" "и抉ロ" "и邦" "и" "и狀" "и秉" "и秉埳溼" "и秉" "и祠恁" "и秤" "и缺廷疰" "и瓷" "и瓷" "и硃蜆藪" "и硃" "и硃" "и" "и陳" "и章" "и" "и" "и紫" "и紫" "и絮" "и絮" "и給" "и腕" "и菠" "и" "и僩境" "и僩塹鎳" "и僩薦捄塑" "и僩觴п" "и僩" "и" "и遙" "и謠唌" "и" "и鷓" "и齬" "и齬" "и" "и妠" "и巠" "и巠珗" "и忷妢" "й" "й" "й‾庍謙揤賄" "й‾" "й" "й芋" "й例" "й勛" "й勛祁" "й博" "й" "й耋捔" "й菩" "й" "й楚" "й溘 ̄" "й溘" "й煜" "й煜" "й煬" "й" "й嘔" "й嘔埳溼" "й" "й鉼" "й閩菩" "й閣" "й" "й蹈" "й" "й繚殙" "й薹" "й" "й蟾疰" "й譎" "й譏" "й贈" "й贈博" "й" "й鱗" "й" "й妏" "й妏" "й尨" "й刵" "й刱塹" "й" "л ̄" "л_" "л_窗疰喬" "л_菠" "лˍ" "л﹋埽" "л×" "л÷" "л卞" "л" "л序芧" "л阬媯" "л並創" "л乳" "л供﹜喬" "л供﹎喬" "л供" "л例" "л例籀倡" "л例籀" "л侃" "л侃√貝" "л侃" "л侃腕" "л侃" "л佩" "л佩籀" "л牧" "л牧" "л牧媗棍" "л狎" "л疚" "л肫" "л肫凳" "л肴" "л限捄" "л限珜" "л限" "л斬藕" "л" "л椎獌" "л窗" "л絮疰" "л菸轂" "л勢" "л溘曼塵" "л溘" "л溘疻捔" "л溘" "л溘媯" "л準捗" "л煉籀" "л煉饕" "л煜" "л煞" "л煞" "л" "л裔" "л詫" "л詫" "л試" "л詼遜" "л塾僱" "л塾" "л境煬" "л境" "л墊" "л墊貝捔" "л墊" "л墊碳" "л墊閡菠" "л嫖棗抇" "л嫖棗" "л碧菠" "л碳" "л種" "л種鷓" "л稱" "л稱鷓" "л說疰" "л趙埰疰" "л酵苤疰" "л酵迮埰疰" "л酵陓珨" "л酵陎疺" "л酵埽" "л酷珨" "л酷疺" "л鉸疺" "л銑﹎" "л銑巠" "л銑巠境" "л領瞻" "л懊﹎" "л戰虞捑境" "л曖萃傚" "л檐坐" "л檐" "л檐紫" "л檠" "л檠Ж" "л蹊菠" "л遽" "л遽紫" "л繭" "л藪創" "л藤繪寢" "л蠅" "л識" "л識" "л識菠" "л譎臍瓴" "л譎覆" "л贈" "л贈昋" "л贈昋" "л竊僑" "л籤" "л籤" "л籤и麻" "л籤" "л籤" "л籤彸塹" "л" "лЫ喬" "лЫ" "ли" "ли硃牷疰" "ли硃" "лй" "лй佹坐" "лй刵" "лй咘" "лл" "лл" "лл" "л贈" "лョ" "лョ藤" "л捇鎳" "л牶" "л牶" "л狶木" "л疻" "л埩域" "л媟詳" "л媟賄" "л伈" "л伓" "л奷△" "л奷" "л奿" "л屻и" "л吽淶" "л岋礙塹鎳" "л岉" "л巠堙藤" "л庍疚" "л庍限" "л庍" "л弅Ⅱ椌" "л弅B" "л弅蹊" "л弅庈" "л弅芊唻" "л彸" "л忐坐畛彶轄" "л忐溢婖" "л忐溢" "л忭腕" "л豸" "л邟木" "л侜桎" "л刳薹" "л刳" "л刱廷" "л刱廷" "л曶坐" "л朊" "л朊鏈" "л鄐證倓" "л鄋梒" "л鈮б" "л鈮" "л鈮犕碳" "л鉆" "л鉰" "л鈱僩鏈" "л鉣" "л鉲" "л鉎" "л鉎伈" "л鉌" "л鉖弅" "л漡楚" "л煻﹜" "л熆" "л熁" "л熁邦" "л熁" "л熁" "л熁號" "л牄邦" "л靻" "л閫" "л閫鉬淶藉" "л頩" "м" "м侃" "м疚" "м怨" "м勞" "м獺藤" "м礙" "м繳媄婻" "м蟾腕" "м駍揤" "м魨Я" "м暾" "п啪" "п" "п紳" "п" "п" "п頩" "п擏" "п暽" "п樲" "р棗珒" "р詼" "р" "р駍畛" "р" "ч麂" "щ僩觴" "щ" "щ獺疺" "щ繫" "я竻" "я芧" "я" "я狶" "я珗" "я畟" "я痀" "①" "①狶" "①畟" "" "" "腎藤" "" "" "識溢" "識" "譏" "譏л靻譟詳" "譏奾遄" "藹夫" "" "" "矷" "恁棍" "恁椒境" "恁椒" "恁臍瓴" "恁覆" "恁鎳" "恁證" "捄贊" "挩瑜" "捇癒藤" "捇薰疺腕" "捇轍噸鎳" "捇鎳" "牷職媟" "牷臏媢" "牷覆" "珛證例藕" "珗菠" "珗蛙" "疰" "疰煞" "疻" "疻" "疺" "疺棍" "疺腕" "疺腕狳疰鎳" "疺腕" "疺麂恁" "疺境" "疺夥辣捘嚏" "疺寢" "唲譎" "埼埼猁" "埧說" "埧說藤" "埧說疰" "埧說唻" "埧鉸埸觴" "埧銀疺腕" "埧鉼" "埧閡 ̄" "埧閩" "埧閣" "埧髦" "埧" "堌纖坐" "堌" "堌鉲" "堌煻﹜" "埩鎳" "婈藤珘" "桼奾" "桲" "痋" "痋奿" "痋奿詳÷" "痋奿墊鈮∫" "堙鏈" "媕 ̄" "媕墊轂" "媕蹊妠" "媕轄腕" "媕轄" "媕迕﹎" "媕狶木" "媕鄐證倓" "媗÷ ̄" "媗÷識﹎" "媗" "棶" "椐鎳" "吽" "吽兢" "吽酵" "吽" "吽й煬" "吽芚慞僑" "吽挬" "吽" "吽痀" "吽" "吽堻" "吽堻" "吽堻" "吽媢蛙" "吽媗" "吽褉菲饕渥" "囮" "囮 ̄珗蛙" "囮÷" "囮〣" "囮勻畛" "囮位" "囮" "囮Л" "囮庍" "囮弅" "囮弅蠅戙" "囮挬" "囮鄐證倓" "囮骳" "妘桿" "妠" "妠謊" "妠挹" "妠奡" "妗譏" "妗矷" "妗捁辦" "妗狶木" "妗疰鼒" "妗" "妗婇﹤﹠鏈" "妗" "妗縡" "妎" "妎珗" "妎珗÷籀" "妎珗" "妎珗" "妎珘揤" "妎珨境" "妎珨墊" "妎珨捄癒藤" "妎瓴" "妎痀" "妎埽" "妎埽" "妎埽薰疺腕" "妎埽鎳" "妎埽" "妎媗" "妎棡" "妢芴" "妏" "妏溯" "妏蜃" "妏詳" "妏嘔狺" "妏" "妏竻" "妏挹" "妏挹妏媢" "妏桎" "妏珗" "妏畛" "妏埸" "妏埡" "妏堙" "妏嵙" "妏鈮" "妏鈮駎" "妏膍" "妧" "妧" "妧" "妧畟" "妧湆" "妡譎" "妡畟" "妡砫△菅" "妡埼埽" "岍" "岍瓴" "岍瓴挐寢" "岍痀" "岏" "岏÷" "岏匹" "岏倡" "岏傀恁椒" "岏創" "岏楮" "岏剷" "岏境尺" "岏碧菠" "岏稱籀珥疺埸詳證祁" "岏稱籀" "岏酵迡" "岏酸椎" "岏擰" "岏檠" "岏蟋" "岏蟋" "岏轄腕" "岏遽菠" "岏" "岏藤" "岏藤飪" "岏蟾" "岏" "岏竻" "岏悀" "岏悛肫" "岏揤" "岏捔" "岏" "岏狺" "岏狳疰" "岏猁唌" "岏珚" "岏珗" "岏珘捄" "岏疺" "岏唭" "岏埽" "岏" "岏堹曼" "岏奡" "岏媟" "岏媟捔" "岏媢" "岏媢靘" "岏媌" "岏鉥蝔" "岏鉧" "岏鉌醮" "岏熅詳" "岏熏" "岏熏" "岏髬鉌趨" "岈" "岈" "岈謊" "岈竻" "岈畛" "岈畟" "岈堌" "岈媮壅" "岈媮濟" "岋" "岋創" "岋勞切寢" "岋菩" "岋" "岋瓣" "岋臘" "岋臘牷" "岋臘狶木" "岋蹴儐" "岋蹴岋埻" "岋ロ" "岋Щ" "岋Э" "岋" "岋珥" "岋桼√" "岋桼詫華" "岋桼л溘" "岋桼疺腕" "岋桼" "岋婸" "岋閫" "岋骳" "岋樿" "岋橏" "岋橏ч彶藉" "岉" "岉伔" "岒" "岒" "岒" "岒Л" "岒Ъ" "岒芫" "岒芧" "岒苂" "岒" "岒恁" "岒恁鉞" "岒挬" "岒挬銧" "岒挹" "岒捘" "岒捚" "岒" "岒牷" "岒珒" "岒珛揤" "岒珘" "岒畟" "岒埭" "岒埧" "岒痋" "岒盓" "岒媯" "岒媞" "岒媮壅" "岒褉" "岒橏" "岆" "岆" "岆" "岆塵" "岆境÷" "岆" "岆" "岆" "岆" "岆藤今" "岆藤夫竊" "岆藤木" "岆藤觴" "岆芼" "岆" "岆捗椒÷" "岆捗椒檠" "岆捗椒" "岆捗椎" "岆捗菠-" "岆" "岆狶" "岆珒" "岆珝" "岆畛" "岆畛" "岆畟" "岆疺椒" "岆皊" "岆唭" "岆埽初" "岆埽恢" "岆埰鄎芤憼饕渥" "岆淀晶" "岆骳" "岆骳" "岆橏" "巠疰" "帊 ̄喬" "帊÷" "帊並" "帊肫菠" "帊酵衁猁珛" "帊憾兢識" "帊憾兢" "帊檠" "帊識" "帊л譎觴" "帊痋奿" "帊悛" "帊捘煽" "帊捗塾繒" "帊捗Ы蟹" "帊捗庈" "帊捗弅" "帊畟" "庋" "庋" "庋" "庋" "庋" "庋嬝" "庋" "庈" "庈●" "庈√" "庈勻珥" "庈期" "庈棗" "庈椒擏" "庈棉" "庈棚" "庈楮" "庈楮擏" "庈腴" "庈萋" "庈菁" "庈琿芧" "庈琿珗" "庈碧" "庈碧" "庈碧棵郕婩" "庈碧暽" "庈粹" "庈壅恁" "庈壅桎" "庈憾" "庈憾暽" "庈懊" "庈懊" "庈譜菩" "庈譜慬寡" "庈纖購陓谹" "庈м暾庈①珒" "庈岏" "庈弅" "庈迗" "庈迗" "庈邴棵冓邯繒" "庈邴擏" "庈邳" "庈邰暽" "庈俛珗" "庈遄蝝" "庈鉥蝝" "庈鈮婩" "庈鈮谹" "庈鈮郪芧" "庈鉧鏡" "庈閟迖" "庈熅" "庈獌棵倰" "庈蒻" "庍" "庍﹜" "庍﹊" "庍﹌籤" "庍Ⅹ" "庍均褶識壇" "庍均" "庍均籀" "庍均迮悝" "庍均倇" "庍均挬" "庍均捋鉼" "庍均" "庍均疿" "庍坎觴" "庍坎疰" "庍坎" "庍坐倡菠" "庍坐" "庍坐悝" "庍坐畟境" "庍坐畟境" "庍坐桮" "庍坐" "庍圻 ̄藪" "庍圻境癒" "庍圻螺掬" "庍圻褸腕" "庍圻證" "庍圻岍" "庍圻玼" "庍圻痀疺" "庍序" "庍序捃觴" "庍序疻" "庍序疺" "庍廷期燬" "庍廷藤木" "庍廷疰и" "庍弄" "庍弄籀" "庍弄疰" "庍弄疰埡溼挩鎳" "庍弄埽" "庍抉△" "庍抉Ⅲ" "庍抉勻眓咘" "庍抉リ" "庍抉ヰ" "庍抉Ъ" "庍抉м繒" "庍把瞻" "庍把穠寢" "庍" "庍芋埼堎" "庍豕" "庍身珜" "庍邦堎" "庍防邦" "庍狀" "庍郃" "庍郃疰" "庍酊珛倡" "庍酊珛" "庍閂" "庍限" "庍限珜" "庍限" "庍香譜÷" "庍倩恁伈" "庍冢巡境" "庍陸珗" "庍陰" "庍傚" "庍" "庍" "庍紫" "庍絢藤" "庍肅珘揤" "庍肅" "庍腎碳" "庍腎л溘" "庍腎" "庍腎疰" "庍腎彄溘" "庍腎牄" "庍腎" "庍溢藤" "庍溢" "庍溜疺腕" "庍" "庍僑珗" "庍僑珨" "庍僱郅珨" "庍僱" "庍僱" "庍僎ы蟋譏" "庍僎捄" "庍僎疰" "庍僩塵" "庍僩境÷" "庍僩" "庍僩挬" "庍兢珗" "庍凳埏珛" "庍凳堌疺" "庍凳埩曼" "庍凳婄в" "庍嘟_" "庍嫖棟" "庍" "庍獄竊" "庍獄陏" "庍誘挹" "庍輕" "庍輕皊" "庍遠" "庍酵陔媟賄" "庍銖均" "庍韶佸駖" "庍" "庍噢" "庍噢悜倪" "庍壇矷" "庍擒擒佸" "庍褽棆喬" "庍覬股限" "庍覬煉" "庍覬煉" "庍覬贅" "庍覬譜彸溢婖" "庍覬譜刳" "庍覬證臍" "庍覬證謹㊣" "庍覬熆" "庍謎捗" "庍謙挶賄" "庍謙揤號" "庍謙揤蛻瓴" "庍謙揤蜂埽" "庍謙揤訾蟋譏" "庍謙揤賄" "庍謙珚" "庍謙媟覜" "庍謊疰" "庍謊疶喬" "庍謠境" "庍謠" "庍謠猁桴" "庍謐溢婖" "庍鎂噪" "庍鎂褶塹癒募" "庍妠" "庍巠" "庍閫" "庍頩" "庍暽" "弅" "弅" "弅 ̄癡" "弅ˍ" "弅D" "弅勻" "弅屯" "弅戈蟾" "弅" "弅" "弅溼" "弅煜" "弅腹" "弅蜃畟" "弅詫籀檐" "弅詫籀識" "弅詫籀忐" "弅詫籀" "弅詫籀棡÷" "弅詫籀棡熏" "弅詳" "弅誇" "弅" "弅壽埩鎳" "弅" "弅監棜" "弅碳" "弅" "弅" "弅蹊中" "弅蹊" "弅轄嗽" "弅轄繹" "弅轂" "弅轂檐●婖" "弅轅" "弅醜傢" "弅" "弅穠" "弅舊" "弅覲傚" "弅" "弅瓣椎" "弅繹" "弅繩" "弅羅婄溜" "弅繳" "弅繳藤" "弅繳悜" "弅繳挹" "弅繳珥" "弅臘挬" "弅臘揤" "弅臘狶木" "弅藝瓴" "弅藝" "弅蠅捄" "弅譜" "弅譜廜" "弅識溢" "弅識謊" "弅證博癒" "弅證壽 ̄" "弅譏譎☆珛" "弅瓚Л" "弅籥÷" "弅籥塹" "弅纓" "弅纓" "弅" "弅ョ" "弅л÷" "弅л腕" "弅л腕" "弅妏" "弅抇" "弅佸骳" "弅刲" "弅遄" "弅鉖華" "弅慬獺" "弅漞" "弅熁" "弅銇" "弝" "弝天" "弝煤" "弝嘎" "弝塾" "弝墅" "弝碧棵蚢Л" "弝鉼侜悝" "弝銑暽" "弝蹈刳" "弝蹈鉣鈮鉡" "弝蹈漡勻捚" "弝蠅" "弝蠅" "弝蠅" "弝蠅" "弝襖" "弝襖" "弝識" "弝證" "弝證" "弝譎" "弝竊" "弝籤" "弝纓" "弝抌芧" "弝佸挹" "弝刳" "弝迋" "弝迗" "弝鉆" "弝鉆梒" "弝鈶" "弝鈱唭" "弝鈱蝔" "弝鉖塹癒" "弝鉖鏡" "弝幓" "弝慞" "弝熁" "彸" "彸﹜" "彸〡" "彸夫" "彸" "彸坎" "彸坐疰" "彸坐疻" "彸坐熐鏈" "彸坐" "彸廷疰疺捄④" "彸弄境" "彸弄碧酊" "彸弄證" "彸弄" "彸弄狺" "彸弄疺寢" "彸弄" "彸把" "彸郃寢" "彸" "彸勤" "彸溢" "彸溢" "彸溢疰" "彸溢" "彸溢婖" "彸" "彸馱橏" "彸兢" "彸塹" "彸嫩詫④" "彸" "彸謙纓" "彸譎" "彸譎√菠" "彸籤" "彸" "彸鉆芊" "彸鉆刳" "彸鉆駎" "彸閫" "彸駍" "彸暽" "彶" "彶÷" "彶棹" "彶" "忒" "忑" "忑駖" "忐" "忐" "忐﹜" "忐 ̄" "忐<樲牷淶" "忐" "忐B" "忐D" "忐D殮碳" "忐D藪喬" "忐DЖ" "忐G" "忐J" "忐J轄" "忐今" "忐今" "忐允蜆" "忐允賄" "忐天兢" "忐均牷" "忐廷唭" "忐並埽" "忐佯塹" "忐侃" "忐疚" "忐肫棍" "忐" "忐限牷疿" "忐" "忐勛弅" "忐" "忐棍" "忐" "忐紫" "忐菠" "忐溢痀疺" "忐溢" "忐溢" "忐煤寢" "忐詫" "忐試" "忐僩" "忐僩譏" "忐僩譏臍瓴" "忐僩譏薰疺腕" "忐塾" "忐塾僩" "忐疑籀" "忐碣" "忐壅籀" "忐檐" "忐檠" "忐檠尕" "忐" "忐褶媮" "忐褸" "忐褸" "忐轄纓" "忐蟾梖境" "忐識菠" "忐識岆椎" "忐證" "忐證坐境" "忐證坐境坐" "忐證識﹎" "忐證竊" "忐證仵鏈" "忐譎僩鏈" "忐譎癒疰" "忐譎癒疻" "忐譎瞻菠" "忐譎瞻證" "忐譎禮" "忐譎繒" "忐譎臏陰" "忐譎覆" "忐譎覲" "忐譎觴" "忐譎贅酵狺" "忐譎轉勻眓咘" "忐譎鉰僩鏈" "忐譎鉰" "忐譎熆" "忐譏鎳" "忐贈餔忐鏡畟" "忐蹴彶禮" "忐霾骳" "忐Ш瓴" "忐Ы籀" "忐й" "忐л溘" "忐л塾" "忐л豁" "忐弅" "忐佴捄" "忐佸骳" "忐鉡" "忐鉡贈" "忐鉖鏡" "忐閟" "忐餑" "忐橧" "忭" "忭" "忭侃" "忭" "忭" "忭" "忭腕" "忭菠" "忭菠 ̄藪" "忭菠碧腕" "忭菠疺腕" "忭菠彄溘" "忭" "忭" "忭彶" "忭" "忭" "忺△" "忺腴譎獌" "忺萇" "忺寡咘" "忺說" "忺說腕捘" "忺遜" "忺酵揪桮" "忯★" "忯襲" "忷購" "忷礙" "怀腋" "怀" "怀霽" "抌" "抌Л" "抌Ъ" "抌" "抌竻" "抌芧" "抌" "抌珗" "抌畟" "抌皊譏" "抌砫侜橏" "抌" "抎" "抎" "抎覬駖" "抎ロ" "抎Щ" "抎Ъ" "抎竻" "抎芩" "芊" "邟" "邟抇" "邟" "邟矷" "邟芫" "邟芧" "邟苂" "邟恁" "邟挹" "邟畟" "邟" "邟唌" "邟唭" "邟埡" "邟痋" "邟塈邟唭" "邟奡邟埭" "邟媞" "邟嵙" "邟駖" "邟骳" "邟骳" "阰唭" "阰埏" "阰橏" "侅" "侇捔" "佴" "佴ョ" "佴Ж" "佴" "佴矷" "佴竻" "佴芧" "佴恁" "佴悝" "佴悝忑" "佴挹" "佴桎" "佴" "佴珒" "佴珗" "佴畛" "佴痀" "佴" "佴豻纓樲" "佴" "佴梣" "佴淶" "佴硅" "佴紬" "佴袨" "佴" "佴媢" "佴媞" "佴嵙" "佴嵙" "佴" "佴褉轍寡" "佴駍" "佴駍" "佴駍癒埽" "佴駖" "佴駖" "佴骳" "佴骳" "佴骳" "佴橏" "佴橏煬" "佹" "佹" "佹ョ" "佹Ж" "佹" "佹矷" "佹竻" "佹芧" "佹芮" "佹苂" "佹恁" "佹挬" "佹揤" "佹挹" "佹桎" "佹桄" "佹" "佹牷" "佹牷怤" "佹狶" "佹珒" "佹畟" "佹婰" "佹" "佹涷" "佹痋" "佹郯" "佹奡" "佹媢" "佹媞" "佹媞佹埏" "佹嵙" "佹" "佹湆" "佹頩" "佹駖" "佹駖" "佹駖" "佹骳" "佹髬" "佹樿" "佹橏" "侁" "侁" "侁ョ" "侁М" "侁矷" "侁矷閟埳" "侁竻" "侁芫" "侁芩慬臏" "侁苂" "侁恁" "侁悝" "侁挬" "侁揤" "侁挹" "侁桎" "侁牷鞃" "侁珒" "侁珘" "侁畛" "侁痀" "侁豻" "侁唌" "侁埏" "侁埡" "侁婰" "侁" "侁堙侁唌" "侁奡" "侁媞" "侁媮侁埡" "侁嵙" "侁晼觴" "侁褉扭侁蝘" "侁閫" "侁駖" "侁駖" "侁駖" "侁駖" "侁骳" "佸椎" "佸蟹" "佸" "佸矷" "佸苂" "佸" "佸" "佸婰" "佸桭" "佸涷" "佸谹" "佸媞" "佸媞贊" "佸媞佸湆" "佸嵙" "佸" "佸褉鍍佸衚" "侐煤" "侐佸蟹" "侐獍" "侜" "侜" "侜" "侜" "侜" "侜ロ" "侜Щ" "侜" "侜矷" "侜芫" "侜芧" "侜芩" "侜" "侜恁" "侜悝" "侜挬" "侜挹" "侜捚" "侜桎" "侜桎" "侜" "侜牷" "侜珗" "侜珘" "侜畛" "侜畟" "侜痀" "侜唌" "侜埡" "侜堌" "侜婰" "侜" "侜捸" "侜梉郪" "侜袟" "侜堙侜唌" "侜奡" "侜媢" "侜媞" "侜媮" "侜湆" "侜頩" "侜餑" "侜駖" "侜駖" "侜駗" "侜橏" "侞" "侞" "侞" "侞" "侞" "侞芫" "侞" "侞悝" "侞挬" "侞捚" "侞捚鏡" "侞桎" "侞" "侞珒" "侞珗" "侞畛" "侞畟" "侞" "侞埭" "侞堌" "侞" "侞桭" "侞涷" "侞谹" "侞奡侞埭" "侞媮" "侞棷" "侞褉" "侞骳" "侞骳" "侞骳" "侞橏" "冞" "冞" "冞" "冞" "冞" "冞" "冞" "刵愨" "刲" "刲" "刲絮 ̄藪" "刲絮÷" "刲絮√" "刲絮碳" "刲絮埧髦" "刲絮痋奿" "刲絮" "刲絮" "刲" "刲" "刲" "刲М堙" "刲г寥" "刲ч證" "刲" "刲頩" "刲暽" "刳" "刳" "刳" "刳" "刳" "刳" "刳" "刳" "刳" "刳繒" "刳" "刳譙" "刳" "剆" "刱廷" "刱弄樿" "刱" "刱" "刱蹈" "刱轄竊" "刱識" "刱譎" "刱" "刱閫呯苂" "刱擏" "刱橶" "劼嗽珗" "劼" "匊" "匊" "匊閫" "匋" "匋" "匋" "匋頩" "匋樿" "匼" "匼" "匼" "匼蟲" "匼頩" "匼暽" "匼橧" "厒" "厒" "厒" "厒" "呺織" "咍" "咍ロ" "咍Ъ" "咍" "咍芧" "咍" "咍狶" "咍珗" "咍畛" "呯ロ" "呯Л" "呯Ъ" "呯" "呯竻" "呯芩" "呯苂" "呯" "呯狶" "呯畛" "呯痀" "呯" "矷" "矷萃限媯" "矷萃限" "矷墊仱" "矷籀梒" "矷藤薄譎觴" "矷媩" "秅菠" "秅珚" "竻∫" "竻云珛" "竻切僱譏" "竻切藤" "竻勻恁扥" "竻匹埸觴" "竻夫壇" "竻尺" "竻尺纓" "竻木" "竻木 ̄" "竻木÷" "竻" "竻迗" "竻嵙" "籵籤" "籵埽菠" "籵埳菸" "籵埳鉾" "籵埼" "耵" "耵" "耵埳" "耵埳" "耵埼" "肵м" "苀" "苀" "苀" "芫" "芫堈" "芫埱" "芫埱Ы" "芫埱捔" "芫婄溝" "芫婄獺" "芫桮" "芫媗" "芫媗" "芫媗鎳" "芚啋珛" "芚埡珗" "芚埼猁" "芚埰疰" "芚婄獺" "芛埳境煉" "芵藤" "芵唌轄" "芵唌籀" "芵唌й" "芵唌忐繩埳" "芵唌疰" "芵啎" "芵埢曼" "芵埏椎" "芵埏畟" "芵堇" "芵堇鉾" "芵埼猁" "芵埩曼" "芵痋" "芧坐創" "芧坐鉣D" "芧坐" "芧抉籠" "芧腹疰" "芧捄菸" "芧揤蛙" "芧狺" "芧狺畛" "芧狳疰" "芧珔" "芧珔" "芧珝" "芧珚堇鉾" "芧畛捔" "芧疰穠" "芧疰繡藤" "芧疰覆" "芧疻捔" "芧唻" "芧唻供" "芧唻例" "芧埢曼藪鎳" "芧堎" "芧紬" "芧" "芧堙" "芧堙藪" "芧堙藤薄疰" "芧堙猁珒" "芧堙疰" "芧堙棸" "芧堥" "芧堛" "芧堛" "芧堛珛" "芧堛埽" "芧堶珛" "芧堶砩紫媗牷疰" "芧媟埳" "芧媞" "芧媞疻" "芧婸譎限" "芧媥庇" "芧媥揤賄" "芧媕藤觴" "芧媕譎觴" "芧媕狺" "芧媮捄" "芧媮珛證" "芧媮珗" "芧媮棸" "芧媄恁伄堎" "芧媄恁扥" "芧媄猁" "芧媄棡" "芧媋庇" "芧媋捄" "芧媩疺" "芧媩疺腕狳疰鎳" "芧媩疺寢" "芧媩埩芻" "芧婽菠" "芧婽兢" "芧婽" "芧婽籀" "芧婽悜倡" "芧婽捔" "芧婽痀譏鎳" "芧婽疺塹" "芧嵑勻眓咘" "芧嵑亂" "芧嵕褶境" "芧嵕瞻" "芧嵕鰻" "芮" "芮畟" "芮畟濟轂" "芮畟遽" "芼薛勿" "芴職" "芴疰黖鉡僱" "芡捔" "芡啋" "芡啋珛" "芡埻倡" "芡堋藤" "芡堋珗" "芡埳揤瑜" "芡埳捔" "芡埳堍疰" "芡埏疻" "芡堇識狎" "芡堇證" "芡埡刳邲境" "芡埡珗" "芡埡堞" "芡埼椎" "芡埼謝" "芡埼恁扥" "芡埧恁F脾蹊" "芡堌揤瑜" "芡堌珝寢" "芡埰蹊" "芡埰轄例" "芡埰鎂噪" "芡埰捘熅詳" "芡埰埸詳" "芡婄驍寢" "芡婄氶" "芡娾蜃" "芩" "芩菩" "芩壽匟" "芩" "芩證" "芩證Ж" "芩譎僩鏈" "芩警" "芩警蹙" "芩埽" "芩鈱" "苂牷" "苂婺觴" "苂湆" "苂骳" "苂骳" "芤" "芤秉" "芤籀" "芤繹" "芤繹珚埏畟" "芤刵" "芤刲" "芤刲僱" "芤悜" "芤" "芤堎種中" "芤堎" "芤埰漟鉞埧" "芤堻" "芤嵕雪捔" "芤銩" "芤駖" "芤骳" "芶均" "芶均籀" "芶均疰" "芶Л" "芶佹骳" "芶悝÷" "芶悛肪" "芶紬妝紬" "芶鉲" "芶駖妝駖" "芶骳妝骳" "虰÷" "虰" "虰菸" "虰" "虰" "虰薛勿" "虰" "虰" "虰弅" "虰刳" "虰捔з" "虰啋肫" "虮找Ⅹ" "虮塹碳" "虮薄疰" "虮謠珛" "虮臘埩" "虮悝刳譎褶識壇" "虮悜倘" "虮悜幓侞" "虮捄鎳" "虮桮" "虮堥" "虮媢梣珛" "虮媄÷" "虮媄" "虮棆" "豖悝÷" "豖唭弅" "豖堌珛﹦瓣" "迋" "迋" "迋‵婄邦" "迋‵婄揪揤" "迋#" "迋∩契" "迋" "迋椒獌" "迋鼓芤" "迋鼠芧" "迋鼠" "迋嫣饕" "迋貌揤" "迋韶函△" "迋" "迋羲芤" "迋蕞埱" "迋" "迋證鄐埧" "迋鏈寣" "迋" "迋忺腕鉣梒" "迖勻橏" "迖棺桯疻埳" "迖腴" "迖鏑眝鏡畛" "迖臢餑芶駍" "迖臢橧芶駍" "迖蘸轂鉆梒" "迖鄐郪" "迖鄎煜纓" "迖鞀" "迖頖髓" "迕" "迕﹜" "迕﹜蠅堋" "迕﹜蠅埏捄" "迕﹜蟾蹊" "迕﹜譜" "迕﹎" "迕﹎" "迕﹤妧" "迕﹦" "迕中" "迕中" "迕允" "迕勻肫觴" "迕勻醜侕" "迕勻證疝棫" "迕" "迕均馨" "迕均陓塈" "迕坐勞" "迕坐疰" "迕坐疺" "迕廷腕芩" "迕廷境" "迕芋竊" "迕豕揤蛙" "迕豕捔" "迕豕" "迕貝證" "迕貝譎繙堣勿" "迕貝譎覆" "迕邦" "迕狀" "迕狀疺捔" "迕酊塵" "迕酊纓" "迕酊揤" "迕香譜÷" "迕俯博" "迕俯悜倨" "迕倥棡" "迕冢肴" "迕" "迕秣" "迕" "迕匏" "迕啪" "迕疏揤溼" "迕窕狺" "迕笠陰" "迕笠疺" "迕笛捄菠" "迕陰肱" "迕陰" "迕陰牷疰" "迕" "迕竣挬" "迕答梀酵陎捄" "迕紫" "迕紫" "迕紫珚堇鉾" "迕給捔" "迕耋瓴" "迕腕" "迕腎埳埏珛 ̄藪" "迕菊嘗捄" "迕蜃疿捔" "迕" "迕僑挹" "迕僱繪珗" "迕僱證" "迕兢÷" "迕兢懊" "迕嫩棹鏈" "迕" "迕鄙狺鎳" "迕鄘坐" "迕鄞" "迕酵釓珜" "迕酵猁捔" "迕酵梒" "迕酷恁伈" "迕銘" "迕韶銖" "迕擒 ̄" "迕擒斯" "迕擒晰" "迕" "迕謙" "迕謙纂扥" "迕謙" "迕謙珛" "迕謙堛" "迕購鉞芤黕捘" "迕癒" "迕癒疰" "迕舊唌" "迕襯淀譏" "迕驕桄" "迕驕砫塹" "迕鑠箋塹" "迕並藕" "迕л" "迕л塹" "迕鄖譏鎳" "迕仵畟媟" "迕仵痀婺" "迕妠" "迕妠坐" "迕妠" "迕妏" "迕巠" "迕巠疺" "迕巠" "迕憿" "迕擏謬" "迕擏牄" "迕暽" "迕瞗" "迕赬" "迗" "迗 ̄" "迗×說埼堎" "迗÷" "迗÷" "迗≧" "迗⊿" "迗Ⅹ珗" "迗切" "迗天僱堙" "迗夫" "迗戈嗽" "迗考" "迗坎境" "迗" "迗阪" "迗並堎и腕" "迗例" "迗例藕" "迗侃" "迗狎" "迗肫" "迗肫銋" "迗肪" "迗肪а痋奿" "迗肪з" "迗倡" "迗剩菠" "迗勞" "迗" "迗棻" "迗聒檠" "迗聒" "迗亂臘喬" "迗亂臘" "迗溼" "迗煜" "迗煜肅" "迗" "迗墊囮抇" "迗壽檠" "迗" "迗碧菠" "迗懊" "迗縑珗埰募" "迗螢唌" "迗擭喬" "迗檐" "迗檠" "迗轂" "迗" "迗繕塵" "迗覲" "迗贅" "迗贅蠍疺腕" "迗贅蹴ヰ" "迗贅轔噸鎳" "迗繳啎" "迗藪喬" "迗藕疚" "迗藕肫菠" "迗藕蜆藪" "迗藕酵冓溜" "迗藕" "迗藕揤" "迗識﹜" "迗識﹎" "迗識謊▲" "迗識謊熒" "迗證號" "迗證" "迗證轂" "迗證鉭梒" "迗譏" "迗鏈今唌" "迗鏈鄎嗶" "迗驍塵" "迗瓚й" "迗竊﹎喬" "迗竊" "迗竊" "迗" "迗Ы喬" "迗й" "迗й刵" "迗п" "迗п獃" "迗④" "迗藪" "迗捔" "迗埼й" "迗妏" "迗妏" "迗庍" "迗弅" "迗弅昋稱肫" "迗忭" "迗佸挹" "迗刳" "迗鄖梒" "迗鄎梒" "迗鈱鉭梒" "迗鉲" "迗鉲" "迗鉎梒蠅珝" "邲" "邲嘎" "邲境" "邲憶墓" "邲憾" "邲謐" "邲賸埽" "邲轄肅" "邲籤" "邲鈶" "邲靘" "邴" "邴坐" "邴坐憵函" "邴貝" "邴戾" "邴秣疰螺" "邴" "邴" "邴絮" "邴菸纓" "邴菸鉣梒" "邴溢" "邴" "邴鼠棸埳" "邴僩墊" "邴僩敷捘" "邴僩繪夥" "邴僩蠅庇" "邴僩蠅婄肪藏" "邴僩證" "邴僩證鉆蝯" "邴僩譏" "邴僩譏薹悝Ы" "邴僩譏鎳" "邴僩鏈" "邴嗾媯" "邴嘀證鈱" "邴嘀芤嚌唌" "邴塾" "邴嫩椎" "邴嫩椎繒幓" "邴嫩腴鏈" "邴嫩腴鏈鉆蝯" "邴嫩腴鏈鉯" "邴嫩溫" "邴嫩溴鏈鉆" "邴嫩溴鏈鉆蝯" "邴嫩溴鏈鉯" "邴嫖晶婄幽" "邴嫖晶淀幽" "邴嫖毯幽" "邴謙芤黖" "邴醜薇" "邴謹輓" "邴譎觴熄" "邴Ы" "邴伔" "邴伔" "邴" "邴妗譏" "邴岋檠" "邴岋" "邴岋砫芶" "邴岋堎薰" "邴岋堎" "邴岋堎甡籀" "邴巠" "邴彸" "邴彶" "邴佹骳" "邴佸骳" "邴侜恁邴鉖纔駖" "邴鉣蝖腕芧" "邴鉣蝖溼芧唌抇" "邴鉣蝖漞" "邴餑" "邯" "邯" "邯÷" "邯⊿" "邯友醜轂鏈" "邯壽孝塈塾" "邯還" "邯謹輓" "邯臢餔拂轍屆" "邯臢橧" "邯弅" "邯忐﹠涳" "邯佸芮" "邯侜恁邴鉖纔駖" "邯侜" "邯鉞樿" "邯鈮芤" "邯鉡鱗" "邯鉖瓚遉苠" "邯獍禳潳禳遉禳" "邯窵" "邯" "邳" "邳" "邳◎痋" "邳﹠恁" "邳" "邳岐涷" "邳彤" "邳" "邳閫" "邳擏" "邳暾煦韐" "邳瞗" "邰" "邰" "邰頩" "邰暽" "邰樿" "阹" "阹" "阹﹛珘珛" "阹_伔" "阹豕疰" "阹例" "阹例藪藤" "阹兒弧" "阹臾" "阹秣牷疰" "阹傚濟轂" "阹傚" "阹傚牷疰" "阹傚埰" "阹勞" "阹" "阹期" "阹棺" "阹森壽" "阹翔埭" "阹腕椒絮" "阹腕" "阹腋奡" "阹脾皊 ̄藪" "阹脾皊" "阹脾骳咘" "阹華" "阹楚" "阹溢籀" "阹溢悃" "阹溘珗" "阹溼" "阹溫媮" "阹煤" "阹煤" "阹煉" "阹煉" "阹煉佸喬" "阹煜" "阹煥謙" "阹解" "阹" "阹瘍" "阹睿埏" "阹碟" "阹碧菠" "阹碳" "阹碳準" "阹碳" "阹碳吽" "阹碳彸÷" "阹粽" "阹" "阹說籀" "阹說藪" "阹說疰" "阹說疰" "阹辣捘嚏" "阹辣捘燬" "阹遠珗" "阹遠棫" "阹遜捔" "阹遜畟" "阹遜埰捔" "阹鄘" "阹鄘珗" "阹酵猁" "阹銘坐" "阹銘褽" "阹銘藤" "阹銘捘遠" "阹銑狀畟" "阹銑狀畟" "阹銑秣牷" "阹銑秣珗" "阹銑準揤腕畟" "阹銑準鉖華" "阹閡煉" "阹領壑" "阹領瞻" "阹領禳寢" "阹颱謝" "阹" "阹譜" "阹識彤媯悝" "阹證" "阹贈" "阹贈彤媯悝" "阹伈梒" "阹奿" "阹弅" "阹忐" "阹鉭﹜" "阹鉖錘" "阹慳" "阹潀" "阹熇妎" "阹煻坐" "阹鞀" "阹頩" "阹餔" "阹擏" "阹橧" "阹樲" "阹篢" "阽" "阽" "阽" "阽" "阽贈" "阽" "阽" "阽樿淶" "阽輹渀" "侲乳" "侲乳" "侲飽" "侲飽尺" "侲麂芧珔" "侲銖" "侲" "侲謄唌揤" "侲謄唌" "侲ヮ" "俉暑鉞芤" "俋牝" "俋雪捔" "俋鼓" "俋僑珛" "俋攣" "俋" "俋侕" "侳竻" "侳芧" "侳苂" "侳" "侳狶" "侳珗" "侳痀" "侳" "俛" "俛ョ" "俛Л" "俛" "俛芧" "俛芧慴暽" "俛芩" "俛苂" "俛苂抎苂" "俛苂邴閫" "俛" "俛狶" "俛畟" "俛痀" "俛蚐紩" "俇芫" "俇" "俖" "俖竻" "俖苂" "峞遄淶繒" "恉妨嵂" "恉" "恉" "怤﹛淶" "怤" "怤嫖嘉棸" "怤鏈煻" "怤竊僑" "怤鑤饕渥" "恦" "恮" "恮均疰" "恮頩" "恮橶" "扂" "扂" "扂鏈斐埰木" "扂鏈氮Ы" "扂鈱衚" "扂牄м" "拏" "拏僑" "拏領領韶聒捗" "拏妢淀譏" "挍鉣梒" "挍熁" "挋" "挋" "挋" "挋棒挬" "挋" "挋" "挋餑" "拵棒珒" "拵" "拵駖" "拵樿" "挎" "挎轉曬娷" "挃" "挃" "挃" "敃" "敃竻“" "敃竻鉞" "斪" "斪" "遄" "遄℅冓佸" "遄侃迗例藕" "遄陰" "遄" "遄華" "遄" "遄" "遄購" "遄" "遄癟" "遄繫" "遄襖" "遄證" "遄譎" "遄譎頩" "遄譏癒" "遄譏禮" "遄譏繒" "遄譏繙" "遄譏臏" "遄譏藉" "遄譏樲" "遄醮" "遄醮" "遄鏡" "遄" "遄攪" "遄籤" "遄纓禮" "遄纓織" "遄纓藉" "遄纓餔" "遄纓樲" "遄纓樲" "遄纔" "遄纔矷" "遄纔駖" "遄纔樿" "遄纔樿" "遄驗" "遄體" "遄м繒" "遄" "遄" "遄埳" "遄伂" "遄伂獺" "遄伂獺藤" "遄匢" "遄尥糧" "遄尥繒" "遄岋" "遄" "遄芤" "遄邴肫" "遄" "遄苤" "遄" "遄珛" "遄珝捖桿" "遄疻挬" "遄皊纓" "遄眓" "遄砫侜" "遄唭" "遄埭" "遄埳" "遄梒" "遄梒" "遄梒" "遄梒" "遄梒" "遄梒繭" "遄梒繭啎堻" "遄梒繭埳堎" "遄梒繭堇譜и菠" "遄梒繭埬椑" "遄梒繭堎" "遄梒繭埱恁椒" "遄梒繭婖" "遄梒鏈" "遄涷" "遄涷禮" "遄涷藉" "遄淶臏邯" "遄淶臏銎" "遄淶藉" "遄淔藉" "遄淔覆" "遄谹" "遄谹" "遄郪" "遄鈱" "遄蝘" "遄蝔" "遄蝥" "遄閫" "遄閫÷" "遄頩" "遄骳" "遄" "遄擏" "遄擏⊿狶" "遄樿" "遄橏" "遄橏邯" "遄" "遄瞗" "遄瞗恉" "遄" "遄諤" "遄遻" "遉" "遉" "遉" "遉" "遉鳩" "遉嗽" "遉寧" "遉箇芍瘉" "遉箇" "遉謄" "遉轄" "遉避芮" "遉鍋" "遉鍋氮Ⅸ" "遉錘" "遉錘" "遉鍾" "遉" "遉癒" "遉謹" "遉豐樿" "遉鎔" "遉鎔" "遉鎊俉Ⅹ閫" "遉襖" "遉襲" "遉攪" "遉瓚" "遉籤" "遉籤" "遉" "遉匢" "遉昐" "遉苠" "遉" "遉埳" "遉梒" "遉梒" "遉梒" "遉梒" "遉梒" "遉涷" "遉淶藉" "遉谹" "遉郯竻" "遉郯芧" "遉蝑" "遉蝝" "遉蝜" "遉衚" "遉閫" "遉頩" "遉骳" "遉橧" "遉橏" "鄐嗽" "鄐轅" "鄐" "鄐癟" "鄐繫埽" "鄐證" "鄐證倓" "鄐譏織" "鄐譙" "鄐譙駖" "鄐譙駖屁埡樺" "鄐鏡" "鄐鏡坐識" "鄐籥箋勿婩" "鄐籥橧" "鄐纓" "鄐纔芮" "鄐纔駖" "鄐驗" "鄐體" "鄐體" "鄐①" "鄐" "鄐刵" "鄐刳" "鄐芤憵嘉" "鄐迖" "鄐珗憵腴鏈" "鄐疰" "鄐眓" "鄐梒" "鄐梒" "鄐梒" "鄐梒" "鄐涷臏" "鄐涷藉" "鄐淶藉" "鄐谹" "鄐鉭埧" "鄐衚" "鄐憿" "鄐暽" "鄐橏" "鄐歖⊿" "鄏涷繒" "鄑" "鄑" "鄑迖" "鄑迖役" "鄑" "鄑眓" "鄑埳" "鄑梒" "鄑涷禮" "鄑涷繒" "鄑涷薦" "鄑淶藉" "鄑谹" "鄑谹" "鄑谹" "鄑郯竻" "鄑郯芧" "鄑郯芧銚" "鄑郪" "鄑郪芩" "鄑骳" "鄑橏" "鄖" "鄖椎薹募" "鄖椎鎳" "鄖" "鄖竣菠" "鄖筐蚢" "鄖給" "鄖給疰螺" "鄖耋棫" "鄖脾唌" "鄖" "鄖購" "鄖癡" "鄖譎" "鄖譎" "鄖ю" "鄖仵" "鄖" "鄖芤" "鄖迖" "鄖眓" "鄖埭" "鄖埡" "鄖婰" "鄖婰" "鄖梒" "鄖梒" "鄖梒" "鄖梒譜銋" "鄖梒" "鄖淔繙" "鄖淔藉" "鄖淔藉刷痀" "鄖渀繒" "鄖渀臏鄖淶臏" "鄖谹" "鄖郯芧" "鄖郪苂" "鄖蝝" "鄖蝥" "鄖駖" "鄖骳" "鄖橏" "鄖橏舍" "鄖" "鄖瞗" "鄖磣" "鄖窱" "鄖縓" "鄖輹" "鄔" "鄔" "鄔" "鄔懊" "鄔" "鄔轉謝" "鄔鷓" "鄔籤" "鄔籥" "鄔纓禮" "鄔纓藉" "鄔纓餔" "鄔м禮" "鄔м繒" "鄔迖嵷" "鄔" "鄔牷糒" "鄔眓" "鄔埭" "鄔埏" "鄔梒" "鄔梒" "鄔梒" "鄔梒" "鄔涷藉" "鄔谹" "鄔郯苂" "鄔漶" "鄔閫" "鄋" "鄋" "鄋" "鄋鷓" "鄋仱" "鄋" "鄋芤" "鄋痀寢" "鄋痀" "鄋唭" "鄋埻" "鄋埭" "鄋婩" "鄋梒" "鄋梒扼佹" "鄋梒" "鄋梒鏈" "鄋梒" "鄋涷繒" "鄋涷藉" "鄋谹" "鄋谹" "鄋谹" "鄋郯" "鄋郯竻" "鄋郯芩" "鄋郪" "鄋蝷" "鄋蝝" "鄋頩" "鄋骳" "鄋擏" "鄋橏" "鄎" "鄎" "鄎" "鄎僱唌識" "鄎僱埧埽" "鄎僱婄 ̄" "鄎僱婄蟋" "鄎僱" "鄎銑△譜 ̄樿" "鄎" "鄎贈餑" "鄎齬棸苂渥" "鄎齬殽戀" "鄎齬" "鄎戀" "鄎鑠幽薹" "鄎" "鄎芤" "鄎芤嚂埰" "鄎迖" "鄎" "鄎眓" "鄎唭" "鄎埼勴鉲芤" "鄎婩" "鄎梒" "鄎梒虧" "鄎梒" "鄎涷禮餂" "鄎郯竻" "鄎蝖鉡僱" "鄎蝘" "鄎蝜" "鄎蝜鉞芤" "鄎閫" "鄎頩" "鄎駖" "鄎擏" "鄎橏幽" "酮" "酮侲芩" "鉦骳" "鈳" "鉥‵懧溼" "鉥夫 ̄捘" "鉥夫籥腕" "鉥夫鉡腕" "鉥" "鉥肱" "鉥帟 ̄捘" "鉥帟籥腕" "鉥帟鉡腕" "鉥" "鉥嘗疰魽" "鉥嘗疰鴗" "鉥碣" "鉥識貝珗" "鉥齬" "鉥л" "鉥吽鼒芼" "鉥迖" "鉥" "鉥眓" "鉥埳" "鉥埡" "鉥梒" "鉥梒" "鉥梒" "鉥梒" "鉥梒繫疶" "鉥梒繹梒" "鉥梒識貝珗" "鉥梒" "鉥梒" "鉥涷藉" "鉥淶" "鉥渀藉" "鉥谹" "鉥谹" "鉥谹" "鉥滫" "鉥蝖" "鉥蝔" "鉥蝝" "鉥" "鉥頩" "鉥骳" "鉥擏" "鉥橏" "鉥輹" "鉥輹渠" "鉞" "鉞譏" "鉞譏織" "鉞譏臏" "鉞醮" "鉞鏡" "鉞籥" "鉞ю" "鉞芤" "鉞芤魽" "鉞迖" "鉞" "鉞" "鉞眓廘" "鉞埏" "鉞埡" "鉞婰" "鉞梒" "鉞梒" "鉞梒" "鉞涷" "鉞涷藉" "鉞淶" "鉞渀臏" "鉞谹" "鉞郪" "鉞蝘" "鉞蝜瑜" "鉞衚" "鉞閫" "鉞駖" "鉞骳" "鉞暽" "鉞橏" "鉞橏煦" "鉞橏抌Л" "鉞橏厒" "鉞橏恉" "鉞橏鄖淶藉" "鉞橏鉌梒" "鉞瞗" "鉞縟" "鉞遻" "銃√" "銃" "銃" "銃譜" "銃證壽銃譜" "銃籥" "銃纔矷債" "銃饜債" "銃迖" "銃" "銃痀捇鎳" "銃眓" "銃唌" "銃埭" "銃埭鈮唭" "銃埳" "銃梒" "銃谹" "銃谹" "銃郯芧" "銃駖" "銃橏" "鈮" "鈮允啎" "鈮手嫖鷓" "鈮凳埰" "鈮" "鈮" "鈮噹" "鈮噪埭" "鈮器" "鈮壇棍" "鈮壇鄖橏" "鈮懊識﹎" "鈮擅" "鈮擒券" "鈮覬媄" "鈮繫鉥芤" "鈮羅鉆芤" "鈮Ж" "鈮Й捖桿" "鈮Й棫" "鈮К藤" "鈮К埭" "鈮Л堎" "鈮Ы棡" "鈮б" "鈮в募" "鈮и" "鈮и" "鈮й竊" "鈮м" "鈮щ禳" "鈮" "鈮÷" "鈮境" "鈮寢" "鈮碳" "鈮褸腕" "鈮甡埏疻" "鈮妗" "鈮侞捄嗟" "鈮咘" "鈮肣" "鈮芩" "鈮芤懧謠婄腴鏈" "鈮迖煩" "鈮" "鈮埭" "鈮埳" "鈮埏" "鈮婰" "鈮婩" "鈮梒" "鈮梒" "鈮梒" "鈮梒" "鈮涷禮" "鈮涷藉" "鈮谹" "鈮鉭埧" "鈮鉣友" "鈮鉲鏈" "鈮鉲Ы" "鈮熅" "鈮蝔" "鈮" "鈮駖" "鈮骳" "鈮擏鉞擏" "鈮樿" "鈮橏" "鉊" "鉊嘟" "鉊" "鉆支" "鉆" "鉆腕" "鉆脾鄐" "鉆菠" "鉆碣Э" "鉆豪椐" "鉆閡" "鉆" "鉆瓣堻" "鉆藪埽" "鉆蹴溜" "鉆" "鉆埳" "鉆埏" "鉆婰" "鉆梒" "鉆梒" "鉆梒" "鉆谹" "鉆谹" "鉆郯竻" "鉆郪" "鉆蝯" "鉆蝯鉲埼魽" "鉆蝯鉲埼鴗" "鉆骳" "鉆暽" "鉆樿" "鉭" "鉭友" "鉭均芶" "鉭郃" "鉭郃" "鉭郃×鷓珜" "鉭郃÷薑堻" "鉭郃蜆藪" "鉭郃疑臘" "鉭郃轄" "鉭郃癟木" "鉭郃" "鉭郃狶六譜椒仱" "鉭郃狶木" "鉭郃鉧" "鉭菟" "鉭" "鉭鼠埳" "鉭鼠" "鉭獺" "鉭鏈" "鉭鑠謬餔" "鉭" "鉭" "鉭妧芶" "鉭芤" "鉭芤嚃埳" "鉭迖" "鉭迖碟" "鉭" "鉭" "鉭眓" "鉭眓慲" "鉭唌" "鉭埼魽" "鉭婰" "鉭梒" "鉭梒" "鉭梒鏈" "鉭涷禮" "鉭淶" "鉭淶藉" "鉭谹" "鉭谹" "鉭郯" "鉭郪" "鉭郪竻" "鉭蝝" "鉭蝝鉞驗" "鉭蝝鉌醮" "鉭閫" "鉭" "鉭樿" "鉭樿鈱婰" "鉭樿鈱駖" "鉭橏" "鉬" "鉬繭" "鉬藪" "鉬藕" "鉬襖" "鉬襖" "鉬證" "鉬譏禮" "鉬譏簫" "鉬譏繙" "鉬譏藉" "鉬譏覆" "鉬譏樲" "鉬譏樲" "鉬譏篢" "鉬譙駖" "鉬譙樿" "鉬" "鉬龔" "鉬籤" "鉬纓餔" "鉬纓餔" "鉬纓樲" "鉬纔矷" "鉬纔竻" "鉬纔苂" "鉬纔樿" "鉬髓" "鉬髓" "鉬" "鉬芤" "鉬芤憵怎僱" "鉬" "鉬" "鉬眓" "鉬砫閡" "鉬唌" "鉬唭" "鉬埭" "鉬埏" "鉬婰" "鉬婇" "鉬梒" "鉬梒" "鉬涷臏" "鉬淶藉" "鉬淔癒" "鉬淔覆" "鉬谹" "鉬郯苂" "鉬郪芧" "鉬蝝" "鉬蝜" "鉬蝜菟" "鉬閫" "鉬骳" "鉬" "鉬擏" "鉬橏" "鉬瞗" "鉬" "鉬諤" "鉬輹" "鉬輹鉖攪" "鉬遻" "鉬遻拵樿" "鉏" "鉏" "鉏肴" "鉏椒" "鉏椎禮" "鉏渡" "鉏" "鉏蟬" "鉏攪" "鉏攪隡" "鉏瓚" "鉏籤" "鉏髓" "鉏邴" "鉏侲襖" "鉏" "鉏" "鉏眓" "鉏埳" "鉏谹" "鉏谹" "鉏郯" "鉏蝝" "鉏頩" "鉏骳" "鉏橏" "鉠谹" "鉠谹" "鉠郯芧" "鉠橏" "鉧" "鉧" "鉧狀考" "鉧秉" "鉧秉畟婺" "鉧棍" "鉧溯" "鉧煉" "鉧煥碳" "鉧飽л" "鉧塹織" "鉧嫩煬臏" "鉧癟" "鉧證" "鉧證" "鉧譎" "鉧譎" "鉧譏癒" "鉧譏禮" "鉧譏繙" "鉧譏藉" "鉧譙駖" "鉧" "鉧襲" "鉧籤" "鉧籤" "鉧籥" "鉧籥毯嬝埳" "鉧籥" "鉧纓" "鉧纓餔" "鉧纓樲" "鉧" "鉧眓" "鉧唌" "鉧唭" "鉧婰" "鉧婰" "鉧梒" "鉧梒" "鉧梒" "鉧淶" "鉧淶禮" "鉧淶繒" "鉧郯" "鉧郯芧" "鉧蝘" "鉧蝔" "鉧蝑" "鉧蝝煞" "鉧閫" "鉧頩曇珗" "鉧駖" "鉧樿" "鉯" "鉯" "鉯芤" "鉯芤儦婄侍鏈" "鉯芤憵轅臏" "鉯迖" "鉯" "鉯埳" "鉯淶臏" "鉯淶藉" "鉯谹" "鉯谹" "鉯谹" "鉯谹" "鉯郯竻" "鉯郪" "鉯郪竻" "鉯郪苂" "鉯蝝" "鉯暽" "鉯樿" "鈶腕" "鈶" "鈶煥碳" "鈶譏" "鈶庍" "鉡" "鉡-" "鉡-閜埼筍" "鉡〣" "鉡" "鉡考" "鉡耒僩鏈" "鉡耳" "鉡紫" "鉡腕" "鉡腕唌" "鉡嗟" "鉡溯" "鉡煜塹" "鉡詫" "鉡試" "鉡僩芶" "鉡劃芤黕" "鉡夥" "鉡鎂謄" "鉡識" "鉡贈" "鉡纔竻" "鉡纔駖" "鉡纔樿" "鉡驗" "鉡鱗" "鉡" "鉡奿繒" "鉡" "鉡" "鉡疻" "鉡疺" "鉡盉" "鉡眓" "鉡埳" "鉡梒" "鉡梒" "鉡涷禮" "鉡淶繒" "鉡谹" "鉡谹" "鉡郯" "鉡郯苂" "鉡煻譏" "鉡蝖帟漶" "鉡蝝" "鉡頩" "鉡骳" "鉡橧" "鉡橏抇" "鉰" "鉰" "鉰弈" "鉰" "鉰" "鉰芤蹊" "鉰芤蹊凳" "鉰芤蹊塹" "鉰迖" "鉰" "鉰痀疚" "鉰痀懊" "鉰痀懊" "鉰痀轄鷓" "鉰痀蟬" "鉰痀證" "鉰痀竊﹎喬" "鉰痀鈱" "鉰痀" "鉰眓" "鉰埳" "鉰埏" "鉰婰" "鉰婰嫩鎊" "鉰婩" "鉰梒" "鉰梒" "鉰梒" "鉰梒" "鉰涷禮" "鉰涷臏" "鉰涷藉" "鉰谹" "鉰谹" "鉰郯" "鉰郪" "鉰郪竻" "鉰郪芧" "鉰蝜" "鉰蝥" "鉰頩" "鉰駖" "鉰" "鉰樲" "鉰橏" "鈱" "鈱D" "鈱D仇埽" "鈱喧" "鈱棹" "鈱棍鏈" "鈱蠅" "鈱Ж" "鈱" "鈱" "鈱眓" "鈱唭" "鈱埭" "鈱埡" "鈱婰" "鈱婩" "鈱梒" "鈱梒" "鈱梒" "鈱梒" "鈱梒" "鈱梒" "鈱梒" "鈱涷" "鈱涷臏" "鈱涷藉" "鈱淶藉獺" "鈱谹" "鈱谹" "鈱谹" "鈱谹" "鈱谹" "鈱郯" "鈱郯竻" "鈱郯苂" "鈱郪" "鈱郪芧" "鈱鞀" "鈱褘" "鈱" "鈱閫" "鈱駖" "鈱骳" "鈱暽" "鈱橏" "鉣" "鉣D" "鉣D詳÷" "鉣D壽÷" "鉣椎" "鉣" "鉣" "鉣嘟" "鉣碳嗶" "鉣" "鉣" "鉣" "鉣侜悝" "鉣" "鉣迖" "鉣迖鈮迖" "鉣" "鉣冓煩" "鉣" "鉣眓" "鉣唌" "鉣唌竊銵" "鉣埳鉣駖" "鉣埱" "鉣婩" "鉣梒" "鉣梒" "鉣梒" "鉣梒" "鉣梒" "鉣梒" "鉣涷禮" "鉣涷繒" "鉣涷臏" "鉣淶禮" "鉣淶藉" "鉣谹" "鉣谹" "鉣谹" "鉣郯竻" "鉣郯芧" "鉣郯芩" "鉣郯芩蒘" "鉣郯苂" "鉣郪苂" "鉣鄎芤" "鉣鉧" "鉣蝖" "鉣蝘" "鉣蝝" "鉣蝜" "鉣蝥" "鉣衚" "鉣頩" "鉣餑" "鉣駎" "鉣駖" "鉣骳" "鉣擏" "鉣橏" "鉲" "鉲夭" "鉲孔" "鉲" "鉲" "鉲炕藤" "鉲偎" "鉲創" "鉲勛" "鉲勛" "鉲喀" "鉲給" "鉲腕" "鉲菸" "鉲" "鉲溯" "鉲溘" "鉲煉坐疺腕" "鉲煉坐" "鉲煉僱" "鉲煉僱" "鉲煜" "鉲煬" "鉲覜" "鉲" "鉲墊" "鉲嫣肅" "鉲箔奏" "鉲褽纓鎳" "鉲蹈" "鉲蹊" "鉲轄菠" "鉲" "鉲藪博" "鉲識" "鉲識陶堎" "鉲譏" "鉲戀" "鉲籤" "鉲鍰" "鉲觴" "鉲鎳" "鉲妗" "鉲妏" "鉲岍" "鉲岏" "鉲岏" "鉲岆捖" "鉲巠" "鉲巠揤棺" "鉲巠堙藤" "鉲巠媋捖" "鉲弅識" "鉲彸" "鉲彸觴" "鉲佴" "鉲刵" "鉲刲坐" "鉲刲輓" "鉲刳" "鉲刳薹" "鉲刳" "鉲杻" "鉲" "鉲芤" "鉲芤鴘揤" "鉲唌" "鉲埼魽忺答揤" "鉲埼黕" "鉲婩" "鉲梒" "鉲梒晶畛" "鉲梒" "鉲熁邦" "鉲銋" "鉲蝥" "鉲蝏" "鉲駖" "鉲" "鉲暽" "鉲樲" "鉲橏" "鉎蟹陛唻" "鉎蟹務疺腕" "鉎蟹曼塵" "鉎蟹啦" "鉎蟹域" "鉎鏑" "鉎З" "鉎" "鉎梒" "鉌" "鉌" "鉌忱餔" "鉌怪" "鉌" "鉌渡" "鉌勢藏" "鉌勢藏檠" "鉌" "鉌鳩" "鉌嘈" "鉌嗶" "鉌塵" "鉌境" "鉌境詳÷" "鉌境煽" "鉌境妏" "鉌境" "鉌塹織" "鉌塹鎳" "鉌寡" "鉌寡刳" "鉌寡咘" "鉌寡" "鉌甄" "鉌禎禮" "鉌" "鉌壇" "鉌檠" "鉌賸" "鉌趨" "鉌轄" "鉌轅繒" "鉌避芧" "鉌鍋" "鉌" "鉌譎" "鉌譎" "鉌譎" "鉌譏" "鉌醮" "鉌霽" "鉌籤" "鉌纓餔" "鉌纔矷岒" "鉌ョ" "鉌ョ畛珛鎳" "鉌Л" "鉌Л" "鉌Ъ" "鉌м繒" "鉌" "鉌疰擢" "鉌疰" "鉌痀允賄" "鉌痀勛" "鉌痀境" "鉌痀塹鎳" "鉌痀檠" "鉌痀檠刈" "鉌痀檠" "鉌痀蟾" "鉌痀竊﹎喬" "鉌眓" "鉌埼勴" "鉌梒" "鉌梒" "鉌梒" "鉌梒" "鉌梒" "鉌梒" "鉌涷" "鉌涷禮" "鉌涷藉" "鉌淶繒" "鉌淶臏" "鉌淶藉" "鉌谹" "鉌谹" "鉌郯" "鉌郯芩" "鉌郪" "鉌鉧" "鉌漞" "鉌牄" "鉌蝘鄐醮" "鉌擏" "鉌暽" "鉌橏" "鉖" "鉖" "鉖忌" "鉖忸矷" "鉖忸駖" "鉖扯" "鉖華" "鉖華÷籀" "鉖嗶" "鉖嗶倓塵" "鉖境" "鉖塹禮" "鉖塹臏" "鉖塹藉" "鉖塹餔" "鉖塽" "鉖塽駖" "鉖寧" "鉖寧" "鉖寡" "鉖寡" "鉖寥" "鉖" "鉖豳椎" "鉖蹊僱" "鉖轄" "鉖轄" "鉖轅藉" "鉖轅餔" "鉖避竻" "鉖避芫" "鉖避芧" "鉖鍋" "鉖錘" "鉖錘" "鉖錘" "鉖" "鉖禮" "鉖觴" "鉖謹" "鉖謬織" "鉖謬繙" "鉖謬餔" "鉖豐矷" "鉖豐駖" "鉖鎊" "鉖識限唌" "鉖證" "鉖譏簫" "鉖饕" "鉖龔" "鉖攪" "鉖籤" "鉖籤凊侜" "鉖籥" "鉖纓繒" "鉖纓藉" "鉖纓餔" "鉖纔" "鉖纔矷" "鉖纔竻" "鉖纔芮" "鉖纔駖" "鉖驗" "鉖髓" "鉖髓" "鉖體" "鉖" "鉖ロ" "鉖Ъ" "鉖е" "鉖е倓з" "鉖м餔" "鉖я" "鉖迖" "鉖" "鉖眓" "鉖埳" "鉖埡" "鉖梒" "鉖涷藉" "鉖淶" "鉖淶繒" "鉖淶臏" "鉖谹" "鉖郯" "鉖蝔" "鉖蝝" "鉖蝜" "鉖蝥" "鉖" "鉖駖" "鉖骳" "閟" "閟" "閟〝揤瑜" "閟〞" "閟‵鈱鎳" "閟‵熐" "閟㊣" "閟㊣瓴" "閟℅捔" "閟 ̄繹酵凄瞻" "閟 ̄猁" "閟ˍ恁伈" "閟﹋疰" "閟×今" "閟÷詳颱肅" "閟﹤Ⅰ" "閟﹤溜" "閟" "閟知" "閟棵" "閟椒鉞芤" "閟絲悀壬" "閟煬閟衚" "閟" "閟僩證鼠" "閟嫣姦" "閟銘揤" "閟" "閟" "閟證и" "閟醮棹鏡苂" "閟" "閟и" "閟" "閟怴" "閟朊" "閟" "閟倰" "閟凅" "閟" "閟珝儩媯" "閟盉疰" "閟唌" "閟埏" "閟婩" "閟梒" "閟梒" "閟梒" "閟涷繒" "閟涷臏" "閟涷藉" "閟淶禮" "閟淶臏鉯淶臏" "閟淶藉" "閟淔織" "閟淔臏" "閟淔臏佩篧" "閟谹" "閟谹" "閟郯苂" "閟郪" "閟郪竻" "閟郪芧" "閟郪芩" "閟郪苂" "閟鄐芤" "閟鄋梒" "閟鄋涷繒遄購" "閟鄎梒" "閟鉰頩蛙" "閟廕" "閟蝖恢" "閟蝖恢嬝侲襖鏈" "閟蝖恢鉧蟾" "閟蝘" "閟蝝" "閟蝝菩熁" "閟蝝邳" "閟蝜" "閟蝜棻" "閟蝜鉞芤憵溯" "閟餔" "閟駖" "閟" "閟憿" "閟樿譜鉖" "閟樿閜" "閟瞗" "閟篢" "閟縟" "閟" "閟諤" "閟踶" "閜" "閜" "閜" "閜籥友韶腴鏈" "閜埼筍" "閜梒" "閜淶繒" "閜淶繙" "閜淶藉" "閜谹" "閜谹" "閜熁邯" "閜牄" "閜樲" "閜橶" "閜樿" "寣" "寣" "寣" "寣" "寣謠" "寣獺" "寣羅埽" "寣譜" "寣邊艙" "寣醮" "寣鏡" "寣鏡" "寣" "寣驕" "寣齬芧" "寣瓚" "寣鑠纓臏" "寣體" "寣體" "寣體" "寣" "寣я" "寣я" "寣" "寣漺籥鉆梒" "寣" "寣閫" "寣閫愬閫" "寣頩" "寣" "寣擏" "寣橧" "寣橶" "寣磣" "寣篕" "寣糐" "屣" "屣" "屣" "屣鳩" "屣" "屣鍋" "屣錘" "屣禮" "屣釐" "屣鎔" "屣ョ" "屣ロ" "屣Л" "屣з" "屣蝘" "屣閫" "屣閫C" "屣擏" "屣暽" "嶀" "嶀芹肪藏" "嶀芹轅藏" "嶀紫疻秅" "嶀" "嶀" "嶀賓棸" "嶀" "嶀癟" "嶀譜" "嶀鏡" "嶀鏈" "嶀聾棸捗" "嶀襲" "嶀饕" "嶀攪譏" "嶀籥諦鏈鉆梒" "嶀鑠幽臏" "嶀髓リ髓竻" "嶀體" "嶀" "嶀ョ" "嶀①" "嶀" "嶀" "嶀頩" "嶀暽" "嵺" "嵺" "嵺" "嵺閫" "嵺頩" "嵺橧" "嶁" "嶁" "嶁" "嶁" "嶁" "嶁餑" "嶁駍" "嶁" "嶁擏" "嶁暽" "嶁橶" "嶁窵" "嶁" "嶁踿" "嶁踿慬Я" "嵷" "嵷" "嵷" "嵷驕" "嵷瓚" "嵷體" "嵷" "嵷" "嵷閫" "嶊" "嶊覬" "嶊醜賒" "嶊鏈" "嶊髓" "嶊" "嶊閫" "嶊餑" "嶉" "嶉" "嶉僑嚂啋" "嶉" "嶉" "嶉謹" "嶉" "嶉" "嶉" "嶉駍" "幓" "幓" "幓" "幓" "幓" "幓" "幓蝖" "幓" "幓頩" "幓駍" "廘" "廘" "廘均й" "廘抉" "廘把" "廘" "廘" "廘" "廘" "廘" "廘閫" "廘" "廘擉婑" "廘橧" "廘窵廘" "廑" "廑" "廑" "廑" "廑襲" "廑" "廗" "廗" "廗僩疻捘" "廗" "廗獺" "廗獺鉞芤" "廗" "廗蝖幽" "廗蝘∫寥" "廗閫" "廗頩" "廗" "廗擏" "廜" "廜" "廜" "廜" "廜" "廜閫" "廜頩" "廜駍" "廜駗" "廕" "廕" "廕仄淀譏" "廕均" "廕坐" "廕期埳萃" "廕菽腴譏" "廕" "廕嫖" "廕" "廕" "廕鈱梒" "廕蝥" "廕閫" "廙" "廙帟諮" "廙" "廙" "廙" "廙獺" "廙癟" "廙羶蠅" "廙譜" "廙鏡" "廙鏑" "廙鏟" "廙鏃" "廙" "廙禳" "廙襲" "廙饕" "廙驕" "廙體" "廙" "廙擏" "廙暽" "廙橶" "廙窵" "廙篝" "廙縟" "廙縟峒" "廙諤" "廙踿" "廒" "廒" "廒" "廒" "廒飽" "廒" "廒襲" "廒瓚" "廒驗" "廒驗" "廒" "廒頩" "廒駍" "廒橶" "廔" "廔" "廔" "彄" "彄" "彄屁Ъ" "彄溘疺腕" "彄溘岍" "彄溘" "彄溘" "彄" "彄飽" "彄鳩鄋埻" "彄" "彄獺" "彄蠅" "彄鏡" "彄鏡" "彄鏑" "彄襲" "彄霾諦鏈" "彄韁埳捘" "彄鰻" "彄觴" "彄鎳" "彄" "彄蝖" "彄蝷遄" "彄閫" "彄頩" "彄" "彄橶" "彃‵" "彃" "彃股頩" "彃" "彃鼠" "彃" "彃鏈" "彃禳恢" "彃霾" "彃" "彃橧" "徶" "徶★淀幽臏" "徶手勻" "徶" "徶均珗梛" "徶" "徶麂殙譏" "徶襲" "徶" "徶" "徶" "徶頩" "徶駘駖廷芧" "徶" "徶暽" "徶橶" "愬" "愬" "愬" "愬" "愬" "愬慲" "愬蝥" "愬" "愬閫" "愬" "愬擏" "愬橧" "愨" "愨" "愨" "愨" "愨" "愨" "愨蝖遄" "愨" "愨閫" "愨擏" "愨暽嶀暽" "愨橶" "慞" "慞" "慞" "慞" "慞僑" "慞僑" "慞" "慞" "慞蝖漞" "慞" "慞閫" "慞頩" "慞" "慞擏" "慞橶" "慳" "慳" "慳" "慳" "慳" "慳" "慳頩" "慳駍" "慳" "慳擏" "慲" "慲" "慲" "慲" "慲揮" "慲聒髦" "慲" "慲嗽牷" "慲嗽珗媕瓴" "慲" "慲" "慲癒" "慲禮" "慲覆" "慲鏑" "慲襲" "慲ロ" "慲" "慲" "慲" "慲橧橏" "慬" "慬" "慬" "慬完" "慬扭㏑" "慬扯" "慬扯" "慬" "慬鳩" "慬劃" "慬嘗" "慬" "慬" "慬蹈" "慬錘" "慬錘" "慬" "慬禮" "慬臏" "慬覆" "慬鎔" "慬鎔" "慬" "慬禳" "慬饕" "慬鰻" "慬瓚" "慬髓" "慬髓" "慬" "慬ョ" "慬Л" "慬з" "慬я" "慬" "慬" "慬閫" "慬" "慬擏" "慬橶" "慴" "慴" "慴" "慴棗珗恢" "慴毯棺" "慴" "慴僑" "慴僱疰魽菠" "慴僱埏芫" "慴僱婄邦" "慴僱淶" "慴" "慴噢籥鄐股" "慴擒嬝蝯" "慴螢唌" "慴謠婄腴鏈" "慴鍍酵" "慴鎂醜塹" "慴鏡" "慴鏈" "慴" "慴禳迓芶" "慴鰱" "慴尪捇蛙" "慴怀壅埳" "慴迕" "慴漡" "慴閫" "慴頩" "慴駍" "慴" "慴擏徶擏" "慴暾" "慴橧" "慴磥股頩" "慴窵" "慴" "慔" "慔僑儥芶" "慔" "慔醜睿鏈遄芤" "慔" "慔" "慔銵絁" "漶" "漶" "漶" "漶均狶" "漶耽" "漶棋" "漶" "漶豁" "漶遽" "漶" "漶獺" "漶癟" "漶繪" "漶繪" "漶鏡" "漶鏃" "漶霽" "漶饕" "漶籤侜" "漶" "漶妏" "漶彸僩鏈" "漶彶鎳" "漶忐" "漶芊" "漶鉡" "漶漶" "漶熁漶獃" "漶韍" "漶閫" "漶" "漶擏滮擏" "漶" "漶赬" "潳" "潳" "潳" "潳" "潳" "潳鳩" "潳" "潳薛" "潳蟈" "潳癒" "潳禮" "潳鎔" "潳禳" "潳襲" "潳閫" "滮" "滮" "滮並" "滮腕" "滮" "滮嘗" "滮睿霾" "滮" "滮錘" "滮獺" "滮癟" "滮癟÷" "滮藪" "滮證" "滮蹴轅臏" "滮轎鎂姦" "滮鏡" "滮" "滮襲" "滮襲鄐襲" "滮饕" "滮饕墊閫" "滮攪醜禎" "滮З" "滮鄐" "滮閫" "滮頩" "滮擏" "滮撉" "滮暾" "潀氶" "潀伈" "潀奾" "潀尕" "漰" "漰" "漰" "漰抉壯" "漰" "漰鄑" "漰" "漰閫" "漰閫鄑閫" "漰擏" "漼" "漼" "漼" "漼把勻閫" "漼" "漼楚" "漼溘" "漼" "漼" "漼" "漼獺藤" "漼" "漼禸揤" "漼閫勻紬" "漼閫嶁擏" "漼瞗" "漼諤勻紬" "漵" "漵抉岱" "漵" "漵僑" "漵" "漵" "漵禳" "漵" "漵閫抵狶" "滫" "滫≦" "滫" "滫插" "滫棉" "滫菠" "滫" "滫" "滫④" "漇" "漇" "漇棍" "漇" "漇藪" "漇籤" "漇蘸股頩" "漇鉥梒" "漇鉲梒" "漇" "漺" "漺﹤插" "漺" "漺" "漺塾" "漺" "漺轂漡" "漺" "漺" "漺閫" "漺篕" "漟" "漟" "漟抉筆" "漟" "漟僑" "漟謄" "漟獺" "漟遄梒" "漟閫" "漟" "漟擏" "漟殪" "漟窵" "漟縟" "漟縟邴佹骳" "漍" "漍" "漍" "漍" "漞" "漞﹤楚" "漞" "漞抉概" "漞" "漞褸捗" "漞" "漞瓣褸狺" "漞繩藤寢" "漞繩捑寢" "漞臘埡樺" "漞藝瓴" "漞藪" "漞蠍挩瑜" "漞蹴籠" "漞" "漞伢捖桿" "漞奿壽漞" "漞奿藪喬" "漞庈" "漞弅今" "漞獃" "漞" "漈" "漡" "漡" "漡證" "漡譏" "漡頩" "漡曀" "漡曀種瞗" "漡曀抇" "漡暽" "漡橧" "熇" "熇" "熇﹜籀" "熇<" "熇" "熇萃赬" "熇塾" "熇" "熇藪桯" "熇襖" "熇證" "熇籥鉲梒" "熇④籥閫" "熇妎" "熇罻粽" "熇" "熐" "熐" "熐" "熐巫狶" "熐" "熐" "熐癟" "熐繫" "熐繭芧" "熐繭桯" "熐繭嵑﹋" "熐藕" "熐蹴封鄎芤" "熐蹴脾廘僱" "熐轔 ̄" "熐轔 ̄醜趨鏈" "熐轎薊揤" "熐轎蟋" "熐鏡" "熐鏈" "熐籥獌" "熐髓" "熐吽疰黕" "熐忺腴鏈" "熐" "熐慞僑" "熐牄" "熐閫" "熐閫Z畛" "熐" "熐擏" "熐" "熐瞗" "熐瞗遄芤" "熐篢鄎梒" "熐縟" "熉" "熉" "熉" "熉" "熉禳鉏禳" "熉饕" "熉瓚" "熉髓" "熉" "熅" "熅" "熅" "熅屁狶" "熅帟腕芧" "熅詳倡" "熅詳碧齬悝∫" "熅詳岏檠" "熅詳庍腎" "熅詳" "熅" "熅僩邿" "熅" "熅癒糒" "熅臏" "熅獺" "熅癟" "熅譜插" "熅轎竣芶" "熅襲" "熅饕" "熅瓚" "熅髓" "熅體" "熅體鉧體" "熅尨" "熅廗忺幽臏" "熅暽" "熂×" "熂" "熂鱗鉥芤" "熏" "熏夭" "熏孔" "熏疚" "熏疚" "熏疚牷" "熏疚牷疰" "熏疚皊疰" "熏疚" "煻" "煻" "煻﹜" "煻式藤" "煻百悜倡" "煻羽" "煻耳癒藤" "煻耳覆" "煻" "煻坐贈餑" "煻棻" "煻溯" "煻籥煽桯捘" "煻纓" "煻刵" "煻刲兢" "煻刳今" "煻鉥" "煻鉥衚" "煻鉡" "煻鉡僱" "煻鉣≦" "煻鉌" "煻鉌" "煻漡" "煻獍" "煻銋" "煻" "煻閫" "煻" "熆" "熆" "熆△鏈" "熆壬" "熆孔" "熆" "熆疚" "熆詫" "熆詳" "熆" "熆塹" "熆" "熆鉰" "熆獃" "熆閫" "熆閫熆" "熆" "熁" "熁" "熁尹埽鈶" "熁夫" "熁夫懊" "熁" "熁坐捇" "熁抉譏繒" "熁扭藪" "熁" "熁邦" "熁菅" "熁" "熁蜆" "熁" "熁蹊" "熁轄鉆梒" "熁" "熁" "熁刱" "熁鉆梒" "熁" "牄" "牄﹊埸" "牄×僱鏈" "牄÷" "牄÷詳煽" "牄÷詳鉾" "牄÷轂" "牄÷л境" "牄√覆" "牄<藉捄" "牄<鎳" "牄≦腕蜆藪" "牄≦腕" "牄" "牄邦" "牄創" "牄" "牄萃" "牄" "牄" "牄" "牄轄" "牄刵" "牄刲" "牄刱" "牄" "牄鉣" "牄" "牄閫" "牄" "牄暽" "犗" "犗" "犗藉畟" "犗刳" "犗" "犗閫" "犗樲" "犗歖①" "犕" "犕÷" "犕÷棻" "犕÷竊" "犕<" "獃" "獃×僱" "獃" "獃陰" "獃" "獃棍" "獃棍碧" "獃" "獃楚" "獃溼" "獃腹" "獃號" "獃" "獃應" "獃檠" "獃殮博" "獃毚" "獃" "獃褸捗" "獃謠" "獃謝" "獃癡" "獃鏡" "獃Ы籀" "獃匼樲" "獃昃" "獃鈶博" "獃滮獺" "獍" "獍" "獍" "獍飽" "獍寡" "獍" "獍蟈" "獍錘" "獍" "獍癒鉖癒" "獍禮" "獍鎔" "獍" "獍癟鉖癟" "獍譜懊" "獍證" "獍證例藕" "獍證疺腕" "獍" "獍襲漼擏" "獍饕" "獍髓" "獍" "獍ョ鉖ョ" "獍ロ" "獍Ж" "獍З" "獍я" "獍" "獌" "獌" "獌÷" "獌√境й" "獌均疰" "獌把5" "獌肱" "獌肫" "獌" "獌紫捋鉼" "獌" "獌" "獌檠" "獌檠" "獌" "獌" "獌蟾" "獌瓚曇" "獌籥覬唌" "獌й" "獌仱檐" "獌仱" "獌妎" "獌刲" "獌咘" "獌朊" "獌朊譎" "獌朊譆" "獌鉬" "獌鉣淶禮" "獌鉲芤" "獌閟帟" "獌閟" "獌漇" "獌" "獌閫" "獌駖骳" "獌" "獌憿" "獌歖俛" "獌殪鰻" "獌殪" "獌瞗" "獌篢" "獌" "瑢" "瑢" "瑢" "瑢鱗" "瑢妗" "瑢忺脾" "瑢鉞褋" "耤體" "膉" "膉鏡" "膍" "膋" "膋" "蒮" "蒫" "蓍" "蓍侜ロ" "蒪" "蒪" "蓐" "蒔" "蒘" "蒘" "蒶剛" "蒶錘" "蒶" "銦" "銦" "銦藷疺" "銦蠍" "銦蟾" "銦" "銦髓" "銦" "銦" "銦窵" "銦" "銚" "銚я" "銚①" "銚忑" "銚" "銚韐揤" "銚餑堙" "銚" "鉹" "鉹鏑" "鉹" "鉹鑠侻僱" "鉹鑤芧蛙" "鉹體" "鉹" "銣" "鋮" "銎" "銎靻" "銂" "銂" "銂熆" "銕" "銕蛙" "銕寢" "銕禎鈱梒" "銕酵捗" "銕觴銋渥" "銕鏑" "銕遄埧" "銕鉭芤" "銕鈱" "銕滮饕" "銕牄" "銕" "銧" "銧境煻" "銧境靾蛙" "銧蹴е鏈" "銧鏈" "銧迖驗矷" "銧迖驗矷箇矷恢" "銧迗譏" "銧鈱◎芤" "銧漡鉌疰" "銧" "鉾" "鉾" "鉾藪疺" "鉾鏡腕竻" "鉾" "鉾" "鉾憿諤" "鉾朣嵙" "鉾橚и" "鉾" "銇" "銇" "銇" "銇" "銩" "銩﹠" "銩諦織" "銩" "銩藏扆" "銩" "銩襖織" "銩鈮鉆梒" "銩" "銋" "銋蛙勿挹" "銋攪" "銋鱗" "銋漟蹴邦" "鈭蛙" "鈭迋" "鈭鉭埧" "隞" "隞觴" "隞蟹博繙藤" "隞蟹博繙捄" "隞蟹博臍捖桿" "隞蟹博藉捄嗟" "隞蟹博觴 ̄" "隞蟹博鎳" "隞髓" "隞" "隞" "隡" "隡" "隡" "雿" "靘" "靘侃腕" "靘斬藕" "靘稱鷓" "靘" "靘癡埽" "靘簽棆鎳" "靘識" "靘譎" "靘譏" "靘鏡" "靘籥" "靘髓" "靘疻" "靘鈱眓" "靘熁邦" "靘" "靘頠縡" "靽" "靽鱗" "靽廜鼠" "靾勻芧" "靾腕" "靾藏珘" "靾鱗" "靾滮" "靾滮禱芨瑜" "靾滮蹴Ч" "靾滮轎蕨" "靾" "靾" "鞃" "鞃" "鞀" "鞀" "鞀" "靻" "靻鄎嘟" "靻" "靻魰纓餔" "靻" "鞁" "鞁≧陸" "鞁斬藕" "鞁溘" "鞁寢" "鞁儘寢" "鞁觴 ̄喬" "鞁觴и芋" "鞁觴и阪捔" "鞁識" "鞁獌籥" "鞁" "靿" "韍" "韍" "韍觴" "韍鏑" "韍" "韍" "頖" "頖" "頖" "頖鍾" "頖鏡" "頖" "頖髓" "頖" "頖①" "頖侜" "頖" "頖" "颮" "颮友" "颮煬" "颮禎閟衚" "颮藏" "颮轉蠍" "颮證и" "颮鏈慞僑" "颮 ̄桷" "颮Ы藕" "颮棆鎳" "颮迋" "颮漇漞" "颮獌椎" "颮" "餂棺" "餂漶藪婄腴鏈" "餂漺瓣疰儥芧" "餂牄" ))) (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 cjk-4.8.5/utils/lisp/emacs/cjk-enc.el0000644000175000001440000013501614132605356017206 0ustar00wlusers00000000000000;;; cjk-enc.el --- provide a coding system for LaTeX2e CJK package ;; Copyright (C) 1996-2000 Electrotechnical Laboratory, JAPAN. ;; Author: Kenichi HANDA ;; Werner LEMBERG ;; Hin-Tak Leung ;; 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 .cjk in cjk-coding. Files of the form .bib are saved as -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 .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 cjk-4.8.5/utils/lisp/mule-2.3/0000755000175000001440000000000014132605447015517 5ustar00wlusers00000000000000cjk-4.8.5/utils/lisp/mule-2.3/cjk-enc.el0000644000175000001440000006101014132605356017350 0ustar00wlusers00000000000000;;; cjk-enc.el --- provide a coding system for LaTeX2e CJK package ;; Copyright (C) 1996, 1998 Electrotechnical Laboratory, JAPAN. ;; Author: Kenichi HANDA ;; Werner LEMBERG ;; 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 .cjk in *cjk-coding*. Files of the form .bib are saved as -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 cjk-4.8.5/utils/pyhyphen/0000755000175000001440000000000014132605447015152 5ustar00wlusers00000000000000cjk-4.8.5/utils/pyhyphen/make-patterns.sh0000644000175000001440000000306314132605356020262 0ustar00wlusers00000000000000#!/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 cjk-4.8.5/utils/pyhyphen/pinyin.c0000644000175000001440000001346414132605356016633 0ustar00wlusers00000000000000/* 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 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 /* 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", "le", "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", "ne", "!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; } cjk-4.8.5/utils/pyhyphen/hyph-zh-latn-tonepinyin.tex0000644000175000001440000001254314132605356022415 0ustar00wlusers00000000000000% 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: cjk-4.8.5/utils/pyhyphen/pytest.tex0000644000175000001440000000374714132605356017236 0ustar00wlusers00000000000000% This is the file pytest.tex of the CJK package % for testing Chinese pinyin hyphenation. % % created by Werner Lemberg % % 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} cjk-4.8.5/utils/pyhyphen/hyph-zh-latn-pinyin.in0000644000175000001440000000420514132605356021331 0ustar00wlusers00000000000000% 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: cjk-4.8.5/utils/pyhyphen/GNUmakefile0000644000175000001440000000471614132605356017233 0ustar00wlusers00000000000000# 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: cjk-4.8.5/utils/pyhyphen/pinyin.tr0000644000175000001440000000216714132605356017034 0ustar00wlusers00000000000000 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 %% %% Version 4.8.5 (16-Oct-2021) %% %% Copyright (C) 1994-2021 Werner Lemberg %% %% 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 cjk-4.8.5/utils/pyhyphen/pytestutf8.tex0000644000175000001440000000463114132605356020036 0ustar00wlusers00000000000000% This is the file pytestutf8.tex of the CJK package % for testing Chinese pinyin hyphenation. % % created by Werner Lemberg % % 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} Wmen hn xhun lx穩ng. Zi Bij蘋ng wmen hn xing kn Tin"'nm矇n. M穩ngtin wmen xing yo do X蘋"'n q羅. Xige lbi zi hu穩 ji. Wmen hn xhun lx穩ng. Zi Bij蘋ng wmen hn xing kn Tin"'nm矇n. M穩ngtin wmen xing yo do X蘋"'n q羅. Xige lbi zi hu穩 ji. Wmen hn xhun lx穩ng. Zi Bij蘋ng wmen hn xing kn Tin"'nm矇n. M穩ngtin wmen xing yo do X蘋"'n q羅. Xige lbi zi hu穩 ji. Wmen hn xhun lx穩ng. Zi Bij蘋ng wmen hn xing kn Tin"'nm矇n. M穩ngtin wmen xing yo do X蘋"'n q羅. Xige lbi zi hu穩 ji. Wmen hn xhun lx穩ng. Zi Bij蘋ng wmen hn xing kn Tin"'nm矇n. M穩ngtin wmen xing yo do X蘋"'n q羅. Xige lbi zi hu穩 ji. Wmen hn xhun lx穩ng. Zi Bij蘋ng wmen hn xing kn Tin"'nm矇n. M穩ngtin wmen xing yo do X蘋"'n q羅. Xige lbi zi hu穩 ji. Wmen hn xhun lx穩ng. Zi Bij蘋ng wmen hn xing kn Tin"'nm矇n. M穩ngtin wmen xing yo do X蘋"'n q羅. Xige lbi zi hu穩 ji. Wmen hn xhun lx穩ng. Zi Bij蘋ng wmen hn xing kn Tin"'nm矇n. M穩ngtin wmen xing yo do X蘋"'n q羅. Xige lbi zi hu穩 ji. \end{document} cjk-4.8.5/utils/pyhyphen/hyph-zh-latn-pinyin.tex0000644000175000001440000000565014132605356021530 0ustar00wlusers00000000000000% 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: cjk-4.8.5/utils/pyhyphen/pinyin.ldf0000644000175000001440000000411614132605356017150 0ustar00wlusers00000000000000% This is the file pinyin.ldf of the CJK package % for hyphenating Chinese pinyin syllables. % % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/utils/subfonts/0000755000175000001440000000000014132605447015151 5ustar00wlusers00000000000000cjk-4.8.5/utils/subfonts/hlatex2agl.pl0000644000175000001440000002651514132605356017551 0ustar00wlusers00000000000000#! /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 # # 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 () { 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 () { 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 ` [, [,...]]'. # $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 () { 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 ` ', 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 () { # 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 () { # 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 cjk-4.8.5/utils/subfonts/uni2sfd.pl0000644000175000001440000001655114132605356017067 0ustar00wlusers00000000000000#! /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 # # 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 () { 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 # ` '. # $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 () { 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"; $_ = ; if (/\(CHARWD R (.*)\)/) { $wd = "$1"; $_ = ; } if (/\(CHARHT R (.*)\)/) { $ht = "$1"; $_ = ; } 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 ` '. 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 cjk-4.8.5/utils/subfonts/vertical.pe0000644000175000001440000000525414132605356017315 0ustar00wlusers00000000000000# 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 # # 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); cjk-4.8.5/utils/subfonts/vertref.pe0000644000175000001440000000576114132605356017164 0ustar00wlusers00000000000000# 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 # # 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); cjk-4.8.5/utils/subfonts/subfonts.pe0000644000175000001440000000474614132605356017354 0ustar00wlusers00000000000000# 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 # # 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); cjk-4.8.5/utils/subfonts/makefdx.pl0000644000175000001440000002007514132605356017130 0ustar00wlusers00000000000000#! /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 # # 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 \\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 () { 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 () { 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 () { if (/^C \d+ ;/) { / N (.*?) ;/; push (@$maparray, $1); } } close(AFM); } # eof cjk-4.8.5/utils/subfonts/clonevf.pl0000644000175000001440000000527314132605356017150 0ustar00wlusers00000000000000#! /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 # # 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 () { 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 $_); $_ = ; if (/CHARWD/) { print(VPL $_); $_ = ; } if (/CHARHT/) { print(VPL $_); $_ = ; } if (/CHARDP/) { print(VPL $_); $_ = ; } 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 cjk-4.8.5/utils/subfonts/sfd2uni.pl0000644000175000001440000001767614132605356017100 0ustar00wlusers00000000000000#! /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 # # 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 () { 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 # ` '. # $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 () { 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"; $_ = ; if (/\(CHARWD R (.*)\)/) { $wd = "$1"; $_ = ; } if (/\(CHARHT R (.*)\)/) { $ht = "$1"; $_ = ; } 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 () { 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 ` '. 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 cjk-4.8.5/utils/Bg5conv/0000755000175000001440000000000014132605447014611 5ustar00wlusers00000000000000cjk-4.8.5/utils/Bg5conv/bg5conv.w0000644000175000001440000000730014132605356016343 0ustar00wlusers00000000000000% This is the cweb file bg5conv.w of the CJK Package Ver. 4.8.5 16-Oct-2021 % Copyright (C) 1994-2021 Werner Lemberg % % 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 #include @# 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 */ } cjk-4.8.5/utils/Bg5conv/bg5latex.cmd0000644000175000001440000000310614132605356017010 0ustar00wlusers00000000000000/*----------------------------------------------------------------------*\ bg5latex.cmd This file is part of the CJK macro package for LaTeX2e ver. 4.8.5 Copyright (C) 1994-2021 Wonkoo Kim 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 */ cjk-4.8.5/utils/Bg5conv/bg5conv.10000644000175000001440000000460514132605356016242 0ustar00wlusers00000000000000.\" man page for bg5conv .\" Copyright (C) 1994-2021 Werner Lemberg .\" .\" 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 cjk-4.8.5/utils/Bg5conv/bg5latex.bat0000644000175000001440000000011114132605356017004 0ustar00wlusers00000000000000call f_name %1 bg5conv < %1 > %fd%%fp%%fn%.cjk latex %fd%%fu%%fn%.cjk cjk-4.8.5/utils/Bg5conv/bg5pdflatex0000755000175000001440000000230614132605356016744 0ustar00wlusers00000000000000#! /bin/sh # Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/utils/Bg5conv/bg5latex0000755000175000001440000000230014132605356016244 0ustar00wlusers00000000000000#! /bin/sh # Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/utils/Bg5conv/bg5conv.c0000644000175000001440000000076114132605447016324 0ustar00wlusers00000000000000#define banner \ "bg5conv (CJK ver. 4.8.5)" \ /*2:*/ #line 94 "/home/wl/git/cjk/cjk-4.8.5/utils/Bg5conv/bg5conv.w" #include #include 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*/ cjk-4.8.5/utils/cjklatex/0000755000175000001440000000000014132605447015113 5ustar00wlusers00000000000000cjk-4.8.5/utils/cjklatex/cjklatex.c0000644000175000001440000001763514132605356017077 0ustar00wlusers00000000000000/* 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 Date : <29/06/2001> */ #ifndef LATEX #define LATEX "latex" #endif /* Copyright (C) 2001-2021 F. Popineau 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 #include #include #include #include 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; } cjk-4.8.5/utils/CEFconv/0000755000175000001440000000000014132605450014563 5ustar00wlusers00000000000000cjk-4.8.5/utils/CEFconv/cefconv.10000644000175000001440000000516114132605356016300 0ustar00wlusers00000000000000.\" man page for cefconv .\" Copyright (C) 1994-2021 Werner Lemberg .\" .\" 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 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 cjk-4.8.5/utils/CEFconv/cef5conv.w0000644000175000001440000001662014132605356016475 0ustar00wlusers00000000000000% This is the cweb file cef5conv.w of the CJK Package Ver. 4.8.5 16-Oct-2021 % Copyright (C) 1994-2021 Werner Lemberg % % 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 #include #include @# 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 */ } cjk-4.8.5/utils/CEFconv/cef5conv.10000644000175000001440000000542714132605356016372 0ustar00wlusers00000000000000.\" man page for cef5conv .\" Copyright (C) 1994-2021 Werner Lemberg .\" .\" 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 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 cjk-4.8.5/utils/CEFconv/cef5pdflatex0000755000175000001440000000230714132605356017072 0ustar00wlusers00000000000000#! /bin/sh # Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/utils/CEFconv/cef5latex0000755000175000001440000000230114132605356016372 0ustar00wlusers00000000000000#! /bin/sh # Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/utils/CEFconv/cef5ltx.bat0000644000175000001440000000011214132605356016624 0ustar00wlusers00000000000000call f_name %1 cef5conv < %1 > %fd%%fp%%fn%.cjk latex %fd%%fu%%fn%.cjk cjk-4.8.5/utils/CEFconv/cefsltx.bat0000644000175000001440000000011214132605356016722 0ustar00wlusers00000000000000call f_name %1 cefsconv < %1 > %fd%%fp%%fn%.cjk latex %fd%%fu%%fn%.cjk cjk-4.8.5/utils/CEFconv/cef5ltx.cmd0000644000175000001440000000321614132605356016631 0ustar00wlusers00000000000000/*----------------------------------------------------------------------*\ 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 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 */ cjk-4.8.5/utils/CEFconv/ceflatex0000755000175000001440000000230014132605356016304 0ustar00wlusers00000000000000#! /bin/sh # Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/utils/CEFconv/cefspdflatex0000755000175000001440000000230414132605356017165 0ustar00wlusers00000000000000#! /bin/sh # Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/utils/CEFconv/cefslatex0000755000175000001440000000230114132605356016470 0ustar00wlusers00000000000000#! /bin/sh # Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/utils/CEFconv/cefsconv.w0000644000175000001440000001702114132605356016567 0ustar00wlusers00000000000000% This is the cweb file cefsconv.w of the CJK Package Ver. 4.8.5 16-Oct-2021 % Copyright (C) 1994-2021 Werner Lemberg % % 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 #include #include @# 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 */ } cjk-4.8.5/utils/CEFconv/cefconv.w0000644000175000001440000001537114132605356016412 0ustar00wlusers00000000000000% This is the cweb file cefconv.w of the CJK Package Ver. 4.8.5 16-Oct-2021 % Copyright (C) 1994-2021 Werner Lemberg % % 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 #include #include @# 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 */ } cjk-4.8.5/utils/CEFconv/ceflatex.cmd0000644000175000001440000000321714132605356017053 0ustar00wlusers00000000000000/*----------------------------------------------------------------------*\ 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 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 */ cjk-4.8.5/utils/CEFconv/cefsltx.cmd0000644000175000001440000000321614132605356016727 0ustar00wlusers00000000000000/*----------------------------------------------------------------------*\ 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 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 */ cjk-4.8.5/utils/CEFconv/cefsconv.10000644000175000001440000000542214132605356016463 0ustar00wlusers00000000000000.\" man page for cefsconv .\" Copyright (C) 1994-2021 Werner Lemberg .\" .\" 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 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 cjk-4.8.5/utils/CEFconv/cefpdflatex0000755000175000001440000000230614132605356017004 0ustar00wlusers00000000000000#! /bin/sh # Copyright (C) 1994-2021 Werner Lemberg # # 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 cjk-4.8.5/utils/CEFconv/ceflatex.bat0000644000175000001440000000011114132605356017044 0ustar00wlusers00000000000000call f_name %1 cefconv < %1 > %fd%%fp%%fn%.cjk latex %fd%%fu%%fn%.cjk cjk-4.8.5/utils/CEFconv/cef5conv.c0000644000175000001440000000410314132605450016435 0ustar00wlusers00000000000000#define banner \ "cef5conv (CJK ver. 4.8.5)" \ /*2:*/ #line 108 "/home/wl/git/cjk/cjk-4.8.5/utils/CEFconv/cef5conv.w" #include #include #include 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*/ cjk-4.8.5/utils/CEFconv/cefsconv.c0000644000175000001440000000413314132605450016536 0ustar00wlusers00000000000000#define banner \ "cefsconv (CJK ver. 4.8.5)" \ /*2:*/ #line 111 "/home/wl/git/cjk/cjk-4.8.5/utils/CEFconv/cefsconv.w" #include #include #include 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*/ cjk-4.8.5/utils/CEFconv/cefconv.c0000644000175000001440000000367714132605450016367 0ustar00wlusers00000000000000#define banner \ "cefconv (CJK ver. 4.8.5)" \ /*2:*/ #line 100 "/home/wl/git/cjk/cjk-4.8.5/utils/CEFconv/cefconv.w" #include #include #include 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*/ cjk-4.8.5/utils/thaifont/0000755000175000001440000000000014132605447015122 5ustar00wlusers00000000000000cjk-4.8.5/utils/thaifont/texmf/0000755000175000001440000000000014132605447016245 5ustar00wlusers00000000000000cjk-4.8.5/utils/thaifont/texmf/fonts/0000755000175000001440000000000014132605447017376 5ustar00wlusers00000000000000cjk-4.8.5/utils/thaifont/texmf/fonts/map/0000755000175000001440000000000014132605447020153 5ustar00wlusers00000000000000cjk-4.8.5/utils/thaifont/texmf/fonts/map/dvips/0000755000175000001440000000000014132605447021300 5ustar00wlusers00000000000000cjk-4.8.5/utils/thaifont/texmf/fonts/map/dvips/garuda-c90/0000755000175000001440000000000014132605447023134 5ustar00wlusers00000000000000cjk-4.8.5/utils/thaifont/texmf/fonts/map/dvips/garuda-c90/garuda-c90.map0000644000175000001440000000044114132605356025465 0ustar00wlusers00000000000000fgdr8z Garuda " C90Encoding ReEncodeFont " % % 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. cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/0000755000175000001440000000000014132605447020164 5ustar00wlusers00000000000000cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/0000755000175000001440000000000014132605447021442 5ustar00wlusers00000000000000cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/garuda-c90/0000755000175000001440000000000014132605447023276 5ustar00wlusers00000000000000cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdo8z.tfm0000644000175000001440000000737014132605356025215 0ustar00wlusers00000000000000 N@謤C90 THAI ENCODING UNSPECIFIEDW=->W8 ||p8奸  斥創 仙 <(Iy$Jy (z<KpKBY.印膀I8地/ , 寺!(K W-0@彼咖P0 姑呶<呻p { !\!wD!(U1L 88(@呶@48l(B0@\P坼8Hd@\B88XB4@@84(@坼8J88(洵氟 ,划2y yP始y |8p柝tlHppy$| |4 py$官y0p@ppt|p` 洧星 0 斥  3 8 =BDFH韎J嚴L婭N齣P覺R儊TVD蚥\=afkpu5z鯃{鼁|}蠈~T.4 :*"A$%'a4m翟 磺96U榼蕇 轆-+3,/+;*)9(1'1鴦&2 %2鴦$<#<餚"?!7 , }(#8(Q8e u5=]9A适,啍厜啑== , 00  & 暾 81 埭餼齌巃鵒譀繽蜑%i)i)k)H)i@))))))-LMy< =P$InrOXp1'ff /髯(Iz~祺凎嬏 = o C S t | 7 ﹌ い 挃 秪 騥  J b - 9X Q ^5 j 攻 ! 崏 V + K X dZ 7 Q n  昅 =   O9X9X診S1Vl D 7 # 顒Vhb瓁鬩w-鶝鼞x7K1'診uP bM1n +7KAQbMn~C﹋硿#蔮劘$b(33=pCS\)lvt改診髯昅;1 33?}O`Azu挃嘧%o7KGh榨ZbNr"毤纚嚲鞜薞檎錌蕘澸噮裻毼釪笐哏類澡輊奠涓附杠v{uoicSM=7'! - `'"- ``dZ昅Icjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdr8z.tfm0000644000175000001440000000677414132605356025227 0ustar00wlusers00000000000000 N謤C90 THAI ENCODING UNSPECIFIEDW->W ||p  <(IyJy(zKKB.I8/ !K W0@p{!!w!1L88@@8(B@8H@B8B@8(@8J88( ,2yyy|Hppy|| pyyp@pp|p   3 8 =BDFHJLNPRTVD\afkpuz{|}~.4:*"A$'4翟磺96榼蕇轆+3,/+;*)9(1'1&2%2$<#<"?!7 ,(#8(8 5=== , 0  &   %i)i)k))i))))))-My =P$InrOXp1'ff /髯(Iz~祺凎嬏 = o C S t | 7 ﹌ い 挃 秪 騥  J b - 9X Q ^5 j 攻 ! 崏 V + K X dZ 7 Q n  昅 =   O9X9X診S1Vl D 7 # 顒Vhb瓁鬩w-鶝鼞x7K1'診uP bM纚嚲鞜薞檎錌蕘澸噮裻毼釪笐哏類澡輊奠涓附杠v{uoicSM=7'! - `'"- ``昅Icjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdb8z.tfm0000644000175000001440000000711414132605356025174 0ustar00wlusers00000000000000 b;8C90 THAI ENCODING UNSPECIFIED=X-`X }1}p ' =1[z]z1{__T ./+EK//)zLX0@/EEEEEEEEEEz |/z%y/z#1U5666* 695Y6646:, 6,Z5,6 (-2"z$ z z} &Wp p"z"} } pz zpNp p}p 38 =BDFHJLNPRTVZ\afkpuz{|}~2?:>HFS0呼8湄蒲績オ笁2榓螏鎦蘵K,<+M*6)O(L'L&?%?$Q#Q"B!L 9'A;C-GP9JR>83!>> - 6  7  @ .zEjEkEEjEEEEEEVax1bz9祺O7騥 J1'9Xn;dGS訶岏 箍(ffz~u攻9凎嬏 =  / hs | 7 P - 挃 龢 J V bN ~  D \ 9 昅 崏 嘕 %  & + 33 ;d `B p x | 7 # 龢 1 b E n D / O 岏9XS嬏髯t;d榨rj\) bM | +改 |?}麌;瀵)\鬘/岏+乓改 J z纚嚲鞜薞檎錌蕘澸噮裻毼釪笐哏類澡輊奠涓附杠v{uoicSM=7'! - `'"- ``昅Vcjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/garuda-c90/fgdbo8z.tfm0000644000175000001440000000751014132605356025353 0ustar00wlusers00000000000000 b@;8C90 THAI ENCODING UNSPECIFIED=X-`X 刑 }1}p,如甦 奶 斥'傍 出 =1[z]z 1{P_l_T 杯.如/`+<E俞K4夷/8/ )zLX%0@/E8EEhE俄EHE勁E則EE信E俄z |/z0%yH/z#杷1U056<6昇6,* 6杳9xH5dYP6P644@64:H,8 6泓,Z5`,6h拯耐 (-划2"z$( z$ z}D \苒&P\Wp p"z "} }L phz(林 z0ptNpd p4}lpT查< 打 斥38 =B酏DFHJL婧N寁P鬾R僾TVZ4鵡\5afkpuz鮸{鵒|鎴}繸~2l? :=>1H F S10 呼8Y湄]蒲1績5オ 笁 2m榓螏-鎦蘵K,<+M*6Q)O(L1'L嚅&?5%?$Q1#Q嚅"B !L5 99'mA;C -GP9}JR> 8]3=!Q齟%%鵬>> - 6劊  7 臲瘭皻 @% 颭魌鼫夒鼁譋蜼.zEjEkE,EjExEE EEEV,a@x1bz9祺O7騥 J1'9Xn;dGS訶岏 箍(ffz~u攻9凎嬏 =  / hs | 7 P - 挃 龢 J V bN ~  D \ 9 昅 崏 嘕 %  & + 33 ;d `B p x | 7 # 龢 1 b E n D / O 岏9XS嬏髯t;d榨rj\) bM | +改 |?}麌;瀵)\鬘/岏+乓改 J z1"1&=pIZffr|h昏硿凎嘧 =o$33ES`Alv\昀診挃"騥-9XEZjz =33O|昏秪騥 J =qffz懅Ct璃纚嚲鞜薞檎錌蕘澸噮裻毼釪笐哏類澡輊奠涓附杠v{uoicSM=7'! - `'"- ``dZ昅Vcjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/norasi-c90/0000755000175000001440000000000014132605447023326 5ustar00wlusers00000000000000cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnr8z.tfm0000644000175000001440000001443014132605356025272 0ustar00wlusers00000000000000F Fic+&C90 THAI ENCODING UNSPECIFIEDGDG ll` t 2i9i{AA9 ?:  `; G:jkiXi毸9229,99 9,A9~9}|9{2zy,x9w9vCu9t9s,r  + qipoinim llkjihg:`f`eidlclb `a i`y_Y^Z]9Z\P[\ZP  Y X WVUTSRQPONML=yKJIHGFEDCBAp'p@p?#p>!p=%p<0y;p:p94y8p7#p6p6Y6Z66Y6666667pEi/挃jDO蔂龢5?^5"S`Bx乓=qQVn!崏嘕嬏  V  " / ?} G X t  ﹌ 昏  ( M r 攻 9 祺 劗  hs x  n z ! 祺 O ﹌1'9龢髯 I I-凎 E t `A -A改Cz謦l 籓`u{{~い7L 挃d_ZYXWVUTOIC>94/*$ 嚲薞踧槉軺淉窀錚慇昊{uoic]WNE<3-'! 觾幰錌蕘澸噮踧膟槉嫆釪笐哏鞦瞬澡璃綬輊媼滋荼婀涓昊丙~pogeECA:40-$! 纚蹧鞜釪枺督xq`_SL?1'%- TWAvwyA`A T WY '"A  ,o.wy'dlrstv1"'- ATVWY1"'41 7!,8"5#4$91. 76%3&2'017(4)1*741*7&4+1,7-417:",$8.54/1.70613'221/7(4)1/7)`a)b0c,3deg0-4o..q5"t0uC6GOQTU7V8W9Y:';v:w$yO<=4V>WY"A6UA4(H KO?J&TX/A%VWYJ?O-e=-@i?j055ruAA,6.a'o5A=T5V4W=Y1ACGBaC-/O6e=o2u=yCCO3SDU-E"FuT$VGWHYF'Iy5C(G=O0a,JeKo50.5uA6ATV,WX Y$J=e4-#oAL,.FaKUC&GMa !e4-o-2u<y#OT'UV$W%Y*A#T=VW5Yt0C+GAJ=3SVWNY OcPgjHs$vQAO:P,-$.;Paei=oLr6uRwSyT,2mn2p.#rA>QC/>STUHgFHryAVG%O%:L,Q-,.W;HaHei0oHu6XCG S&TY:g*rA9O::,H-.Z;:aOe$i?o*uyCOQa)e-o&uyZ%G,STTg9SpHvAC"O,:[,Z-X.\;a e\iKouvy6`GTV4WKYA]`j'.y2vw2wy2..u0vh(k=y('tg(vwx'ye'j^l_o#-#s5tUa6fi`'Y=el)r aK'#yTj-v,@g?->. sDue=o2y(vywpvw2y2T p?'Mw2vy2T''tx-v-w-y&t)yc)u?3c+:)de)fah)iNjkl=mNnbo+))pEq'=rE;)tbuavNwaxYybzC,&g(-1.'#t(SCaUU:+hUo+';+'-<c#:0g&-l2#s5;0a<,,e-o#.*c:4e2g-<l's4;4a,/o'.aAc'oqe2a22c#:4e'g-l2oM#s;4,%.$;M$dZXS岏-=q崏Z-嬏I!岏 昅hs9X{|?}I嶝蔂n"Qr =33乓#=q bN/V+P顒G|崏D劗XGt~訶b嘕昏So-﹌r$h 7﹌5?dZ榨^5いxl(%Zj昅33cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnbi8z.tfm0000644000175000001440000001476014132605356025431 0ustar00wlusers00000000000000| J@hWO弒C90 THAI ENCODING UNSPECIFIEDWHW ||y几巳么d<;y;yGG; 4D?pLWI始 )y|h翗666;66;?$ )69-F0;1~;}-|;6{z-Ay;)x6咋wF坡v6-u-Qt-s08+ryqpyo ynm|lkjih?ygyfye|d|c pb ya `y_y^6y]y\|[ j  川子 Z Y XW9V5UTS獺R識Q譏P疶O蚢NMA|襖L=KJ!I-H)GF鵏E鼫D鬅C鵚BA&5@m?}> I=$U<2};e:Q988y7!6B}5A}41E31I217e0@}/E.E-#U,$=+.i*)5(+}'*擱&(}%(擱$4}#4擱"/A!,} %=I0AQ):Q'3i>M Ia難 A 蚊櫝荋茖-- + =愿5 - 濏 曏 樾<" 鵒嚬嚭劖鼁部祏C9i9i99i9帕9庚99孤9岳9岸< I$jOxPい{5? =px-龢Du!嘕顒   " & 33 K O p |  7 P ﹌ 乓 箍 b 5? =q ~ D 攻 9 7L x  乓 蔂 5? n z ! = O 1'龢IA9Xb$l9 乓 - bNh z鄺?}=p鑆/龢=p診{5?;dK+昏訶%V{"/9XAIVdZpx7乓診髮い挃嘕懅龢 I"5?IQZdZp7t榨挃/蔂顒5?Mffz劗 =KSx﹌い箍{Q7Lc^YXWVUTSNHB=83.)# 纚譕檎膟嫆耟哱杇綬滋丙~xrlf`VPJ=4+" 纚譕檎膟僠罥耟淉崏酐笐毤泲鞦輞輊奠哪拷昊杠全/|xj]\TR20.'! 觾鏿獶噮膟窀ェ荃piYMF9+ - ATVWvwyA`AV W Y '" A,d o . rstvwy1'- AT VW Y1"'1 7,85491.763204174171 74174 1 7:!,"8#5 4$1.%76 3&2'4(1 7417`C)G O*Q*T+U)V,W-Yac.deg.-oq"$'/t(uv wy.A0OV#W#Y A1HK2OA*JTV W3X4Y456$A/J7Oa,8e6-*i2j0o%.ru&.A9T&VWY&A&(C G#Oae-'ouy:;A<GOT'U=V>W?Y-@"'uAy&0ACGOa,1eo.u+ATV W X4YB3A7JCa ,-e-*o .DEC+G2O0T1UV#W#Ye-'ouy=AT0V.W.Y1tF*G!A CGEJ4OSVHWHYIa5c7:,>eg-?ijo!.$rs$;uGv7w7y6JA,m0np'.r,4K%A/C G*O4ST a:8,8eLg5-io5.r;8uy0L A5C#GOS1TMa :$,eg4-io3.4r0;$uyC3OQ3aEe2-#ouy%)>AC G*O)ST a:G,e"g%-4iop*.;Gu v*v2y`CA5TV(W(YFjN'vwy(vwy=h.k't(v(w(xyF02ae0f iOjPlQo''Ps9tR0aelr'y.T.j aR,SeNg9.Tu vyvwyT p('v.w.y.T'tNvwxy2tNycFuac:',d9e.fMg(h-iTjPklmRn opH.qrU;'tPuIvOwOx yOzR'tF SaR:eNh';'+2a.c1: , e2g.l1o1. s; 2a1c':,*e0g-Fl2o'.*s1;cEe9oq=ac=:,eg- lo=.s;VVVVVVVVVVVVr昅 J箍~$33V訶乓挃 嬏hsK\)?}dZS顒昏/u嶝G9X7騥 =&|=qI-fft﹌P!z岏ffr髯崏bZVE#蔂D=q(嘕M1'$IA5?vn昅`Bcjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftni8z.tfm0000644000175000001440000001501014132605356025254 0ustar00wlusers00000000000000 G@ga3蚾C90 THAI ENCODING UNSPECIFIEDF CF$ kkX P l d t`  2X2XzC E: 0A<  5`: F8- X Z5h5W5h滖,,2:, ,)::8 <92E ~A02I}:|,{:,z y]x:5w,]vAYu,5t]s=r 0 @* qXpoXn$Xm痞[kjihg:XfXeXd[c[b P!a Xx`X_Y^2Y]X\[[ Z  p tT Z Y X-W球VU擻T穢SR絃QCP繒O藍NM?x@彳9KJ%I1H%G嫠F搫E摽D廔C齌BpaA'p@pA?#pA>!p=%p!<0xA;p):p94x8pM7#pM6>xA5?}A4.|3.|2}a14p)0=xA/Bx. p-$p!,&x+.p-*pi)3x(+pA'+&(pA%($1pA#1"-x!)xA xAy}'|x.|x*pM9p(xM/p-6x"Qp)xA p% %Ν-- + ;,x x 惎 堸| | 慖斠摙摿鼫╲蹤@p7X7Y77X7777X778pFhhs^5jDO蔂龢5?^5bN"S`Bx=qQVn!崏嘕嬏  V  " / ?} G X t  ﹌ 昏  ( M r 攻 9 祺 劗  hs x  昏 n z ! 祺 O ﹌1'9髯 I﹌ 7K 7K C -A改bNt謦l 龕$l{9+榨箍9﹌ 挃 I"7KAIVffv\祺秭/嬏 I&1'?}G\)hs7訶い岏#;蔂騥龢1 J-Zu嘕顒 =C乓挃 蔂龢1'E =b]XWVUTSRMGA<72-(" 觾幰錌澒軺淉窀汋慇奠}wqke_UOI<3*! 觾幰錌澒觤湞淉崏酐笐毤哱坢ェ騁璃督荼耄附呵佣丙v|zma`W753,&" 纚鏿薞錌崏坢滋vqbVOB2%# - ATVWYvwyA `A  T V WY'"A,do.rtvwy1"'- A TVWY1" ' 417, 85!4"9#1".7$63!204%1&7 4'1(74)1"7*4+1,74-1.7 :,8/54011.2736 342%4)141.7+`CG&O&Q&T5UV6W(Y ac,7deg-%o.7q%"8'8t9u'vw&yA O595V/WYA5H%K OA:J/T'V4W:XYAJ$Oa;6, e2-&i:jo(<.=r uAT%V+W>Y%A C!GO&ST?a++e-ou'yA@ACGBOCSDT%UEV!W1YF-G"8'8u)yAF/C G5OFa *,%eo*.uHA "TV&WXYAIJaJ<,Ke-.oLJ.MCGFOU:V/WYae-ou9A>5VW7t%AN&CG9JOFEFS>VOWPYQa66cR:S,"eTgU-VijFo.,r;8uRvw"y"A",mnp/.rALUC1G4O11STAaL:6,(eJgS-&io".<r&;uyARCGNOSTWaX:;,Xe$g(-/ioX.Yr;Juy3CO&Q4ae-ou9yLA*C G&O  STAa(:,.eg -$io(;p .0;RuXv/v%y`AZT'VEW+Yj 'wyv'w9yhk' twx'yae/fWi-j)l[oH/'\t\ae&lr '/yT'j/a)C,]eg*-*o.^u7v%y3pv9wyTp9'v'w9y9T.'HtvwxNy't5yc%u3a:c:,Vd/ef_g h- i7jkl m-n`o p).q/'r;t)uBvWwAxyQS'a9':e%h3o3';'/aHc:1,eg:lo.;1a/c:,1e/g -lo/.;aqa%c:1, eg-lo.;&@@@@@@@@&&&&&&&&@@@@髯訶髯bhs~昏昏乓7い;dP\)dZ JGSt&5?33騥/"嬏 =V挃K#昅1'嘕A?}! X岏9D蔂p嶝nV9~($M箍-﹌$崏 顒{|ubNv 攻IjffZ=qn昅懅cjk-4.8.5/utils/thaifont/texmf/fonts/tfm/public/norasi-c90/ftnb8z.tfm0000644000175000001440000001441414132605356025254 0ustar00wlusers00000000000000C KlX9' C90 THAI ENCODING UNSPECIFIEDGIGfll` !=%<3;:9987"6C5B42322180A/F. -$,%+/*)6(,'+&)%)$5#5"0!- & 1*;(4?!y-- + >y y # D:Y:Y::Y::::::=Jx jOxい{5?E =px-龢Du!嘕顒   " & 33 K O p |  7 P ﹌ 乓 箍 b 5? =q ~ D 攻 9 7L x  乓 蔂 5? n z ! = O 龢IA9X~v昏榨- 乓 P b蔮 z鄺?}=p罏M-診{5?hrM+昏訶gb]\[ZYXWRLFA<72-'" 籚蹧蕘僠罥崏枺澡輊呵v|vpjdZTNA8/& 籚蹧蕘噘稓罥湞愔釪耟淉哱坢ェ騁璃督殺荃哪拷昊杠全/{m_^VT531*$ 纚嚲檎蕘酐坢滋un]QJ?1$" - ATVWYvwyA`A T V W Y '"A  ,do.rstvwy1"'- ATVWY1" '417 ,85491.763204 1!7"41#74171!741$7":%,8541.&7"63'2414(17`CG)O)Q)TU*V+W,Ya-bcd!eg"-.oq"/'0tu.v1wyAO23V4W5Y4AHK"O6A7J8T"VW9X9YAJ:O"a9,e9-jo9.r"uAT8V#WY#A.C;GO5STa  e'-ouyC3G-O-S(TU!V<W=Y>-?"'@u3yAACGOaeouA7TVWX9YABCJ)a,De!-Eo#.#.DCFG.O!TUVW7Ya  e-.ouyATVWYGtA54CG3J$O23SVWYaH@c>:D,%eDg)-ij8o>=.%r;s;Du>v<w0yIA,mnp!.r!AJJC@G%O%HSTKa=L:C,CeDgD-)io>=.Cr;Cu&yAMNC&GO99STa@:B,e*g@-Aio@@.rA;Ou4y4C%OQe-$ouyLA%PCQGHO%)ST a=:I,OeRgD-=i6oSCp.B;Iu/vv4y4`A  TVWYjE'vEw8y4vEw8y:hk'tv!w.xyae!fiTlUo!'VsGt2ae''.yTjFa2"e#g2-os u-vypvw#y#Tp6'!vwyT>'tv:wx!y:t3ycua"Gc:,*de3fg-h-i jkl6m n o66p .)q'G;tuvKw xy't"Sa :h2o2';'ac8:,eg-lo8E.s;acF:,9e#g-loF.9s;ac.eo.qac::!,e8g-!lo:8.s;!WWWWWWWW4444WWWWV$=q1'ths/D Jb=q髯訶乓挃﹌崏&!昏(#?}5?P蔂|S-顒$7昅I騥 KG岏"\)33X =Q^5嬏;d9~dZp箍Z1'urbN嶝 嘕+zZIv昅`Bcjk-4.8.5/utils/thaifont/texmf/dvips/0000755000175000001440000000000014132605447017372 5ustar00wlusers00000000000000cjk-4.8.5/utils/thaifont/texmf/dvips/garuda-c90/0000755000175000001440000000000014132605447021226 5ustar00wlusers00000000000000cjk-4.8.5/utils/thaifont/texmf/dvips/garuda-c90/config.garuda-c900000644000175000001440000000002214132605356024242 0ustar00wlusers00000000000000p +garuda-c90.map cjk-4.8.5/utils/thaifont/texmf/dvips/norasi-c90/0000755000175000001440000000000014132605447021256 5ustar00wlusers00000000000000cjk-4.8.5/utils/thaifont/texmf/dvips/norasi-c90/config.norasi-c900000644000175000001440000000002214132605356024322 0ustar00wlusers00000000000000p +norasi-c90.map cjk-4.8.5/utils/thaifont/tools/0000755000175000001440000000000014132605447016262 5ustar00wlusers00000000000000cjk-4.8.5/utils/thaifont/tools/c90.mtx0000644000175000001440000000212414132605356017405 0ustar00wlusers00000000000000% c90.mtx % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/utils/thaifont/tools/c90.etx0000644000175000001440000017552414132605356017414 0ustar00wlusers00000000000000% c90.etx % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/utils/thaifont/tools/norasi-c90.fontinst0000644000175000001440000000476514132605356021747 0ustar00wlusers00000000000000% norasi-c90.fontinst % Copyright (C) 1994-2021 Werner Lemberg % % 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 `-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 cjk-4.8.5/utils/thaifont/tools/garuda-c90.fontinst0000644000175000001440000000433614132605356021711 0ustar00wlusers00000000000000% garuda-c90.fontinst % Copyright (C) 1994-2021 Werner Lemberg % % 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 `-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 cjk-4.8.5/utils/thaifont/tools/INSTALL0000644000175000001440000002635214132605356017322 0ustar00wlusers00000000000000Installation 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 % `-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 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 .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 " (e.g. `config.garuda-c90') with the following line in it: p + 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--- cjk-4.8.5/utils/thaifont/tools/dbtt-old/0000755000175000001440000000000014132605447017773 5ustar00wlusers00000000000000cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old.fontinst0000644000175000001440000000453614132605356023301 0ustar00wlusers00000000000000% dbtt-old.fontinst % Copyright (C) 1994-2021 Werner Lemberg % % 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 `-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 cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old-alias.mtx0000644000175000001440000000172414132605356023330 0ustar00wlusers00000000000000% dbtt-old-alias.mtx % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/utils/thaifont/tools/dbtt-old/config.dbtt-old0000644000175000001440000000002014132605356022662 0ustar00wlusers00000000000000p +dbtt-old.map cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old-alias.etx0000644000175000001440000000216514132605356023320 0ustar00wlusers00000000000000% dbtt-old-alias.etx % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old-alias.tex0000644000175000001440000001010114132605356023305 0ustar00wlusers00000000000000% dbtt-old-alias.tex % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/utils/thaifont/tools/dbtt-old/dbtt-old.map0000644000175000001440000000051114132605356022177 0ustar00wlusers00000000000000fdbr8z DBThaiText " dbtt-oldEncoding ReEncodeFont " % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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> endcodespacerange % 1 beginbfrange <00> <\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 cjk-4.8.5/texinput/standard.chr0000644000175000001440000001257614132605356016336 0ustar00wlusers00000000000000% This is the file standard.chr of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/standard.bdg0000644000175000001440000001004514132605356016303 0ustar00wlusers00000000000000% This is the file standard.bdg of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/pmC.chr0000644000175000001440000000505314132605356015245 0ustar00wlusers00000000000000% This is the file pmC.chr of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/extended.enc0000644000175000001440000003425614132605356016326 0ustar00wlusers00000000000000% This is the file extended.enc of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/extended.chr0000644000175000001440000001345414132605356016332 0ustar00wlusers00000000000000% This is the file extended.chr of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/CJK.sty0000644000175000001440000010073114132605356015177 0ustar00wlusers00000000000000% This is the file CJK.sty of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 % or \CJK@XX \protect \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 % or \CJK@XXX \protect \protect \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 % or \CJK@XXXX \protect \protect \protect \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 `.cpx' (this is .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 cjk-4.8.5/texinput/CJKvert.sty0000644000175000001440000001042714132605356016102 0ustar00wlusers00000000000000% This is the file CJKvert.sty of the CJK package % for vertical typesetting. % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/pmCsmall.enc0000644000175000001440000001450014132605356016264 0ustar00wlusers00000000000000% This is the file pmCsmall.enc of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/pinyin.sty0000644000175000001440000010013214132605356016071 0ustar00wlusers00000000000000% This is the file pinyin.sty of the CJK package % to input Chinese in pinyin transcription % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % % This style file works with plain TeX also. % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/CJK.enc0000644000175000001440000007162714132605356015140 0ustar00wlusers00000000000000% This is the file CJK.enc of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/CJKspace.sty0000644000175000001440000000462314132605356016216 0ustar00wlusers00000000000000% This is the file CJKspace.sty of the CJK package % for suppressing spaces between CJK characters only. % % created by Wenchang Sun % Werner Lemberg % % 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 cjk-4.8.5/texinput/CJKulem.sty0000644000175000001440000000715314132605356016066 0ustar00wlusers00000000000000% This is the file CJKulem.sty of the CJK package % for using the `ulem' package CJK characters. % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/CJKfntef.sty0000644000175000001440000003106314132605356016223 0ustar00wlusers00000000000000% This is the file CJKfntef.sty of the CJK package % extending CJKulem.sty with more font effects % % created by Wenchang Sun % Werner Lemberg % % 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 % % 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 cjk-4.8.5/texinput/CJKnumb.sty0000644000175000001440000002246414132605356016067 0ustar00wlusers00000000000000% This is the file CJKnumb.sty of the CJK package % for typesetting numbers with CJK glyphs. % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/pmCbig.enc0000644000175000001440000001512214132605356015716 0ustar00wlusers00000000000000% This is the file pmCbig.enc of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/ruby.sty0000644000175000001440000001017114132605356015547 0ustar00wlusers00000000000000% This is the file ruby.sty of the CJK package % for displaying ruby (i.e. furigana). % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/standard.enc0000644000175000001440000001535414132605356016324 0ustar00wlusers00000000000000% This is the file standard.enc of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/mule/0000755000175000001440000000000014132605447014770 5ustar00wlusers00000000000000cjk-4.8.5/texinput/mule/MULEenc.sty0000644000175000001440000002762114132605356016770 0ustar00wlusers00000000000000% 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 % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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@; % 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 .cjk % instead of .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 cjk-4.8.5/texinput/KS/0000755000175000001440000000000014132605447014343 5ustar00wlusers00000000000000cjk-4.8.5/texinput/KS/c61hpg.fd0000644000175000001440000000141514132605356015746 0ustar00wlusers00000000000000% This is the file c61hpg.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/c60gs.fd0000644000175000001440000000111614132605356015576 0ustar00wlusers00000000000000% This is the file c60gs.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/c60hmj.fd0000644000175000001440000000112314132605356015741 0ustar00wlusers00000000000000% This is the file c60hmj.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/c61hmj.fd0000644000175000001440000000141514132605356015746 0ustar00wlusers00000000000000% This is the file c61hmj.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/c60mj.fd0000644000175000001440000000113014132605356015567 0ustar00wlusers00000000000000% This is the file c60mj.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/c60hpg.fd0000644000175000001440000000112314132605356015741 0ustar00wlusers00000000000000% This is the file c60hpg.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/c60dr.fd0000644000175000001440000000111614132605356015572 0ustar00wlusers00000000000000% This is the file c60dr.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/c60gt.fd0000644000175000001440000000111614132605356015577 0ustar00wlusers00000000000000% This is the file c60gt.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/hanja.cpx0000644000175000001440000000445214132605356016144 0ustar00wlusers00000000000000% This is the file hanja.cpx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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{205173} \renewcommand\listfigurename{215178~205173} \renewcommand\listtablename{250~205173} \renewcommand\indexname{227218} \CJK@ifundefined\chapter {\renewcommand\refname{209197~246223}} {\renewcommand\bibname{209197~254204}} \renewcommand\figurename{215178} \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{190226} \CJK@ifundefined\mainmatter {\renewcommand\abstractname{169~179}}{} % \renewcommand\ccname{208226} % \renewcommand\enclname{213190170}% 分 翕瑰僭 % \renewcommand\pagename{228204246} % \renewcommand\headtoname{244225209} % \renewcommand\seename{209206} \renewcommand{\today}{% \number\year 180~\number\month 197~\number\day 237} \endinput cjk-4.8.5/texinput/KS/c61gr.fd0000644000175000001440000000134614132605356015603 0ustar00wlusers00000000000000% This is the file c61gr.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/hangul.cap0000644000175000001440000000420114132605356016302 0ustar00wlusers00000000000000% This is the file hangul.cap of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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: cjk-4.8.5/texinput/KS/hangul.cpx0000644000175000001440000000445714132605356016346 0ustar00wlusers00000000000000% This is the file hangul.cpx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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{241247} \renewcommand\listfigurename{215178~241247} \renewcommand\listtablename{165~241247} \renewcommand\indexname{246206} \CJK@ifundefined\chapter {\renewcommand\refname{252237~173251}} {\renewcommand\bibname{252237~174229}} \renewcommand\figurename{215178} \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{206207} \CJK@ifundefined\mainmatter {\renewcommand\abstractname{228224}}{} % \renewcommand\ccname{231187} % \renewcommand\enclname{183206176}% 分 翕瑰僭 % \renewcommand\pagename{228204246~} % \renewcommand\headtoname{222194204} % \renewcommand\seename{252182} \renewcommand{\today}{% \number\year 226~\number\month 249~\number\day 207} \endinput cjk-4.8.5/texinput/KS/c62song.fd0000644000175000001440000000113714132605356016140 0ustar00wlusers00000000000000% This is the file c62song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/c61hgt.fd0000644000175000001440000000141514132605356015752 0ustar00wlusers00000000000000% This is the file c61hgt.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/c61gs.fd0000644000175000001440000000135014132605356015577 0ustar00wlusers00000000000000% This is the file c61gs.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/c60hgt.fd0000644000175000001440000000112314132605356015745 0ustar00wlusers00000000000000% This is the file c60hgt.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/hangul2.cpx0000644000175000001440000000450514132605356016422 0ustar00wlusers00000000000000% This is the file hangul2.cpx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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{247202} \renewcommand\listfigurename{215178~247202} \renewcommand\listtablename{165~247202} \renewcommand\indexname{163198184226} \CJK@ifundefined\chapter {\renewcommand\refname{252237~173251}} {\renewcommand\bibname{252237~174229}} \renewcommand\figurename{215178} \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{206207} \CJK@ifundefined\mainmatter {\renewcommand\abstractname{228224}}{} % \renewcommand\ccname{231187} % \renewcommand\enclname{183206176}% 分 翕瑰僭 % \renewcommand\pagename{228204246~} % \renewcommand\headtoname{222194204} % \renewcommand\seename{252182} \renewcommand{\today}{% \number\year 226~\number\month 249~\number\day 207} \endinput cjk-4.8.5/texinput/KS/c60hol.fd0000644000175000001440000000112314132605356015745 0ustar00wlusers00000000000000% This is the file c60hol.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/c61dr.fd0000644000175000001440000000134714132605356015601 0ustar00wlusers00000000000000% This is the file c61dr.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/c61gt.fd0000644000175000001440000000134614132605356015605 0ustar00wlusers00000000000000% This is the file c61gt.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/hangul2.cap0000644000175000001440000000421514132605356016371 0ustar00wlusers00000000000000% This is the file hangul2.cap of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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: cjk-4.8.5/texinput/KS/KS.chr0000644000175000001440000001527714132605356015371 0ustar00wlusers00000000000000% This is the file KS.chr of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/hanja.cap0000644000175000001440000000421414132605356016111 0ustar00wlusers00000000000000% This is the file hanja.cap of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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: cjk-4.8.5/texinput/KS/c61hol.fd0000644000175000001440000000135314132605356015753 0ustar00wlusers00000000000000% This is the file c61hol.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/KS.enc0000644000175000001440000001404714132605356015354 0ustar00wlusers00000000000000% This is the file KS.enc of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/c61mj.fd0000644000175000001440000000140514132605356015575 0ustar00wlusers00000000000000% This is the file c61mj.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/c60gr.fd0000644000175000001440000000111614132605356015575 0ustar00wlusers00000000000000% This is the file c60gr.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/0000755000175000001440000000000014132605447015430 5ustar00wlusers00000000000000cjk-4.8.5/texinput/KS/HLaTeX/c64ph.fd0000644000175000001440000000357114132605356016674 0ustar00wlusers00000000000000% This is file c64ph.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65pg.fd0000644000175000001440000000356314132605356016675 0ustar00wlusers00000000000000% This is file c65pg.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c64pg.fd0000644000175000001440000000356514132605356016676 0ustar00wlusers00000000000000% This is file c64pg.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63sh.fd0000644000175000001440000000350614132605356016674 0ustar00wlusers00000000000000% This is file c63sh.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c64gs.fd0000644000175000001440000000350614132605356016674 0ustar00wlusers00000000000000% This is file c64gs.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c64jsr.fd0000644000175000001440000000362314132605356017061 0ustar00wlusers00000000000000% This is file c64jsr.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63bm.fd0000644000175000001440000000351414132605356016657 0ustar00wlusers00000000000000% This is file c63bm.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63pn.fd0000644000175000001440000000351414132605356016676 0ustar00wlusers00000000000000% This is file c63pn.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63ph.fd0000644000175000001440000000352214132605356016667 0ustar00wlusers00000000000000% This is file c63ph.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c64gt.fd0000644000175000001440000000342014132605356016670 0ustar00wlusers00000000000000% This is file c64gt.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63jgt.fd0000644000175000001440000000360614132605356017047 0ustar00wlusers00000000000000% This is file c63jgt.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65sh.fd0000644000175000001440000000350514132605356016675 0ustar00wlusers00000000000000% This is file c65sh.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c64mj.fd0000644000175000001440000000342214132605356016666 0ustar00wlusers00000000000000% This is file c64mj.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65gs.fd0000644000175000001440000000350414132605356016673 0ustar00wlusers00000000000000% This is file c65gs.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63dn.fd0000644000175000001440000000466514132605356016672 0ustar00wlusers00000000000000% This is file c63dn.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65gt.fd0000644000175000001440000000341614132605356016676 0ustar00wlusers00000000000000% This is file c65gt.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63vd.fd0000644000175000001440000000351514132605356016673 0ustar00wlusers00000000000000% This is file c63vd.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63yt.fd0000644000175000001440000000351714132605356016720 0ustar00wlusers00000000000000% This is file c63yt.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63tz.fd0000644000175000001440000000352314132605356016716 0ustar00wlusers00000000000000% This is file c63tz.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c64dn.fd0000644000175000001440000000510514132605356016661 0ustar00wlusers00000000000000% This is file c64dn.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65yt.fd0000644000175000001440000000351614132605356016721 0ustar00wlusers00000000000000% This is file c65yt.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/HLaTeX.chr0000644000175000001440000001323614132605356017217 0ustar00wlusers00000000000000% This is the file HLaTeX.chr of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63jnv.fd0000644000175000001440000000360514132605356017057 0ustar00wlusers00000000000000% This is file c63jnv.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63gr.fd0000644000175000001440000000342014132605356016665 0ustar00wlusers00000000000000% This is file c63gr.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65gr.fd0000644000175000001440000000356514132605356016701 0ustar00wlusers00000000000000% This is file c65gr.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/KSHL.enc0000644000175000001440000001561714132605356016671 0ustar00wlusers00000000000000% This is the file KSHL.enc of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65vd.fd0000644000175000001440000000356414132605356016701 0ustar00wlusers00000000000000% This is file c65vd.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c64jmj.fd0000644000175000001440000000363114132605356017042 0ustar00wlusers00000000000000% This is file c64jmj.fd of the CJK package % for using Asian logograjmjs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65jsr.fd0000644000175000001440000000362114132605356017060 0ustar00wlusers00000000000000% This is file c65jsr.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63jmj.fd0000644000175000001440000000361014132605356017036 0ustar00wlusers00000000000000% This is file c63jmj.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c64gr.fd0000644000175000001440000000342114132605356016667 0ustar00wlusers00000000000000% This is file c64gr.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c64pn.fd0000644000175000001440000000356314132605356016703 0ustar00wlusers00000000000000% This is file c64pn.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c64tz.fd0000644000175000001440000000352614132605356016722 0ustar00wlusers00000000000000% This is file c64tz.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65jgt.fd0000644000175000001440000000362314132605356017050 0ustar00wlusers00000000000000% This is file c65jgt.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65bm.fd0000644000175000001440000000356114132605356016663 0ustar00wlusers00000000000000% This is file c65bm.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c64yt.fd0000644000175000001440000000356614132605356016725 0ustar00wlusers00000000000000% This is file c64yt.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65tz.fd0000644000175000001440000000352314132605356016720 0ustar00wlusers00000000000000% This is file c65tz.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c64vd.fd0000644000175000001440000000356414132605356016700 0ustar00wlusers00000000000000% This is file c64vd.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63gs.fd0000644000175000001440000000350514132605356016672 0ustar00wlusers00000000000000% This is file c63gs.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65mj.fd0000644000175000001440000000342014132605356016665 0ustar00wlusers00000000000000% This is file c65mj.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65pn.fd0000644000175000001440000000355114132605356016701 0ustar00wlusers00000000000000% This is file c65pn.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c64jnv.fd0000644000175000001440000000362414132605356017061 0ustar00wlusers00000000000000% This is file c64jnv.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63pg.fd0000644000175000001440000000343614132605356016672 0ustar00wlusers00000000000000% This is file c63pg.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63jsr.fd0000644000175000001440000000360414132605356017057 0ustar00wlusers00000000000000% This is file c63jsr.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c64pga.fd0000644000175000001440000000362114132605356017030 0ustar00wlusers00000000000000% This is file c64pga.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63mj.fd0000644000175000001440000000342114132605356016664 0ustar00wlusers00000000000000% This is file c63mj.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65dn.fd0000644000175000001440000000510314132605356016660 0ustar00wlusers00000000000000% This is file c65dn.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65jmj.fd0000644000175000001440000000362714132605356017050 0ustar00wlusers00000000000000% This is file c65jmj.fd of the CJK package % for using Asian logograjmjs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65pga.fd0000644000175000001440000000361714132605356017036 0ustar00wlusers00000000000000% This is file c65pga.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c64sh.fd0000644000175000001440000000350714132605356016676 0ustar00wlusers00000000000000% This is file c64sh.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63pga.fd0000644000175000001440000000360214132605356017026 0ustar00wlusers00000000000000% This is file c63pga.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/pshan.sty0000644000175000001440000000203514132605356017301 0ustar00wlusers00000000000000% This is the file pshan.sty of the CJK package % for using HLaTeX's PostScript fonts. % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c64bm.fd0000644000175000001440000000356314132605356016664 0ustar00wlusers00000000000000% This is file c64bm.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65ph.fd0000644000175000001440000000356714132605356016702 0ustar00wlusers00000000000000% This is file c65ph.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c63gt.fd0000644000175000001440000000341714132605356016675 0ustar00wlusers00000000000000% This is file c63gt.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c64jgt.fd0000644000175000001440000000362514132605356017051 0ustar00wlusers00000000000000% This is file c64jgt.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/KS/HLaTeX/c65jnv.fd0000644000175000001440000000362214132605356017060 0ustar00wlusers00000000000000% This is file c65jnv.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/GB/0000755000175000001440000000000014132605447014316 5ustar00wlusers00000000000000cjk-4.8.5/texinput/GB/c10gbsn.fd0000644000175000001440000000122214132605356016062 0ustar00wlusers00000000000000% This is the file c10gbsn.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/GB/c19song.fd0000644000175000001440000000112014132605356016105 0ustar00wlusers00000000000000% This is the file c19song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/GB/GB.cpx0000644000175000001440000000535514132605356015331 0ustar00wlusers00000000000000% This is the file GB.cpx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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{191188} \renewcommand\listfigurename{229188} \renewcommand\listtablename{237241} \CJK@ifundefined\chapter {\renewcommand\refname{206188196215}} {\renewcommand\bibname{206188196215}} \renewcommand\indexname{247253} \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{191214} \renewcommand\partformat{\prepartname\CJKnumber{\value{part}}\postpartname} % \newcommand\prechaptername{218} % \newcommand\postchaptername{194} % \newcommand\presectionname{218} % \newcommand\postsectionname{218} % \newcommand\preappendixname{218} % \newcommand\postappendixname{189188} \CJK@ifundefined\mainmatter {\renewcommand\abstractname{170170}}{} % \renewcommand\ccname{} % ? % \renewcommand\enclname{189254} % \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 cjk-4.8.5/texinput/GB/c10fs.fd0000644000175000001440000000112014132605356015536 0ustar00wlusers00000000000000% This is the file c10fs.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/GB/c11song.fd0000644000175000001440000000111614132605356016102 0ustar00wlusers00000000000000% This is the file c11song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/GB/c10gbsn.fdx0000644000175000001440000000450614132605356016262 0ustar00wlusers00000000000000% This is the file c10gbsn.fdx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/GB/c10song.fd0000644000175000001440000000110514132605356016077 0ustar00wlusers00000000000000% This is the file c10song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/GB/c21song.fd0000644000175000001440000000112214132605356016100 0ustar00wlusers00000000000000% This is the file c21song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/GB/c10gkai.fdx0000644000175000001440000000450614132605356016244 0ustar00wlusers00000000000000% This is the file c10gkai.fdx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/GB/c20song.fd0000644000175000001440000000165014132605356016105 0ustar00wlusers00000000000000% This is the file c20song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/GB/c10gkai.fd0000644000175000001440000000121614132605356016047 0ustar00wlusers00000000000000% This is the file c10gkai.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/GB/GB.cap0000644000175000001440000000513314132605356015274 0ustar00wlusers00000000000000% This is the file GB.cap of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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: cjk-4.8.5/texinput/Bg5/0000755000175000001440000000000014132605447014443 5ustar00wlusers00000000000000cjk-4.8.5/texinput/Bg5/Bg5.enc0000644000175000001440000002550314132605356015553 0ustar00wlusers00000000000000% This is the file Bg5.enc of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/Bg5/Bg5.chr0000644000175000001440000001344014132605356015557 0ustar00wlusers00000000000000% This is the file Bg5.chr of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/Bg5/c00bsmi.fd0000644000175000001440000000121214132605356016206 0ustar00wlusers00000000000000% This is the file c00bsmi.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/Bg5/c00kair.fd0000644000175000001440000000120114132605356016200 0ustar00wlusers00000000000000% This is the file c00kair.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/Bg5/c00bsmi.fdx0000644000175000001440000001467514132605356016417 0ustar00wlusers00000000000000% This is the file c00bsmi.fdx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/Bg5/c01song.fd0000644000175000001440000000111214132605356016222 0ustar00wlusers00000000000000% This is the file c01song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/Bg5/c00cns.fd0000644000175000001440000000114314132605356016042 0ustar00wlusers00000000000000% This is the file c00cns.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/Bg5/c00kai.fd0000644000175000001440000000112114132605356016017 0ustar00wlusers00000000000000% This is the file c00kai.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/Bg5/Bg5.cap0000644000175000001440000000476714132605356015562 0ustar00wlusers00000000000000% This is the file Bg5.cap of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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{參~考~文~獻} } {\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: big5 %%% mode: latex %%% TeX-master: t %%% End: cjk-4.8.5/texinput/Bg5/c09song.fd0000644000175000001440000000112314132605356016234 0ustar00wlusers00000000000000% This is the file c09song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/Bg5/c00bkai.fd0000644000175000001440000000120514132605356016164 0ustar00wlusers00000000000000% This is the file c00bkai.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/Bg5/Bg5.cpx0000644000175000001440000000531714132605356015601 0ustar00wlusers00000000000000% This is the file Bg5.cpx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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}{161192} \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{254243} % \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 cjk-4.8.5/texinput/Bg5/c00fs.fd0000644000175000001440000000115514132605356015672 0ustar00wlusers00000000000000% This is the file c00fs.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/Bg5/c05song.fd0000644000175000001440000000115014132605356016230 0ustar00wlusers00000000000000% This is the file c00song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/Bg5/HK.enc0000644000175000001440000003257014132605356015442 0ustar00wlusers00000000000000% This is the file HK.enc of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/Bg5/c00song.fd0000644000175000001440000000111414132605356016223 0ustar00wlusers00000000000000% This is the file c00song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/Bg5/c00bsmir.fd0000644000175000001440000000116114132605356016373 0ustar00wlusers00000000000000% This is the file c00bsmir.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/Bg5/c00kair.fdx0000644000175000001440000000052014132605356016373 0ustar00wlusers00000000000000% This is the file c00kair.fdx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/Bg5/c00bsmir.fdx0000644000175000001440000000052214132605356016563 0ustar00wlusers00000000000000% This is the file c00bsmir.fdx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/Bg5/c00bkai.fdx0000644000175000001440000001467514132605356016373 0ustar00wlusers00000000000000% This is the file c00bkai.fdx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/UTF8/0000755000175000001440000000000014132605447014554 5ustar00wlusers00000000000000cjk-4.8.5/texinput/UTF8/ja.cpx0000644000175000001440000000470614132605356015670 0ustar00wlusers00000000000000% This is the file ja.cpx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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{a貊} % \renewcommand\bibname{徐 } \renewcommand\indexname{蝝W} \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: cjk-4.8.5/texinput/UTF8/ko-Hang2.cpx0000644000175000001440000000427114132605356016641 0ustar00wlusers00000000000000% This is the file ko-Hang2.cpx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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: cjk-4.8.5/texinput/UTF8/c70gkai.fdx0000644000175000001440000000076114132605356016507 0ustar00wlusers00000000000000% 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 cjk-4.8.5/texinput/UTF8/UTF8.enc0000644000175000001440000001373714132605356016003 0ustar00wlusers00000000000000% This is the file UTF8.enc of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/UTF8/c70mj.fdx0000644000175000001440000000075514132605356016205 0ustar00wlusers00000000000000% 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 cjk-4.8.5/texinput/UTF8/ko-Hani.cpx0000644000175000001440000000427014132605356016560 0ustar00wlusers00000000000000% This is the file ko-Hani.cpx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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{蝝W} \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: cjk-4.8.5/texinput/UTF8/c70mj.fd0000644000175000001440000000344714132605356016016 0ustar00wlusers00000000000000% This is the file c70mj.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/UTF8/UTF8.bdg0000644000175000001440000000742114132605356015763 0ustar00wlusers00000000000000% This is the file UTF8.bdg of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/UTF8/c70song.fd0000644000175000001440000000106514132605356016350 0ustar00wlusers00000000000000% This is the file c70song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/UTF8/c70bkai.fd0000644000175000001440000000104014132605356016301 0ustar00wlusers00000000000000% This is the file c70bkai.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/UTF8/ko-Hang.cpx0000644000175000001440000000425314132605356016557 0ustar00wlusers00000000000000% This is the file ko-Hang.cpx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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: cjk-4.8.5/texinput/UTF8/c70bsmi.fd0000644000175000001440000000104014132605356016325 0ustar00wlusers00000000000000% This is the file c70bsmi.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/UTF8/zh-Hant.cpx0000644000175000001440000000506514132605356016606 0ustar00wlusers00000000000000% This is the file zh-Hant.cpx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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: cjk-4.8.5/texinput/UTF8/c70gbsn.fd0000644000175000001440000000103614132605356016331 0ustar00wlusers00000000000000% This is the file c70gbsn.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/UTF8/zh-Hans.cpx0000644000175000001440000000522014132605356016576 0ustar00wlusers00000000000000% This is the file zh-Hans.cpx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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{蝝W} \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: cjk-4.8.5/texinput/UTF8/c70gbsn.fdx0000644000175000001440000000076114132605356016525 0ustar00wlusers00000000000000% 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 cjk-4.8.5/texinput/UTF8/UTF8.chr0000644000175000001440000002063114132605356016001 0ustar00wlusers00000000000000% This is the file UTF8.chr of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/UTF8/c70gkai.fd0000644000175000001440000000103614132605356016313 0ustar00wlusers00000000000000% This is the file c70gkai.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/UTF8/c70bsmi.fdx0000644000175000001440000003314414132605356016527 0ustar00wlusers00000000000000% 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 \space endcodespacerange\space 91\space beginbfchar\space <00>\space <00AF>\space <01>\space <00B7>\space <02>\space <02CD>\space <03>\space \space <04>\space \space <05>\space \space <06>\space \space <07>\space \space <08>\space \space <09>\space \space <0A>\space \space <0B>\space \space <0C>\space \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 \space <51>\space \space <52>\space \space <53>\space \space <54>\space \space <55>\space \space <56>\space \space <57>\space \space <58>\space \space <59>\space \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 cjk-4.8.5/texinput/UTF8/c70bkai.fdx0000644000175000001440000003314414132605356016503 0ustar00wlusers00000000000000% 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 \space endcodespacerange\space 91\space beginbfchar\space <00>\space <00AF>\space <01>\space <00B7>\space <02>\space <02CD>\space <03>\space \space <04>\space \space <05>\space \space <06>\space \space <07>\space \space <08>\space \space <09>\space \space <0A>\space \space <0B>\space \space <0C>\space \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 \space <51>\space \space <52>\space \space <53>\space \space <54>\space \space <55>\space \space <56>\space \space <57>\space \space <58>\space \space <59>\space \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 cjk-4.8.5/texinput/CNS/0000755000175000001440000000000014132605447014451 5ustar00wlusers00000000000000cjk-4.8.5/texinput/CNS/EUC-TW.bdg0000644000175000001440000000643514132605356016102 0ustar00wlusers00000000000000% This is the file EUC-TW.bdg of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/CNS/EUC-TW.enc0000644000175000001440000001600514132605356016105 0ustar00wlusers00000000000000% This is the file EUC-TW.enc of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/CNS/c36song.fd0000644000175000001440000000113614132605356016246 0ustar00wlusers00000000000000% This is the file c36song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/CNS/c32song.fd0000644000175000001440000000113614132605356016242 0ustar00wlusers00000000000000% This is the file c32song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/CNS/c35song.fd0000644000175000001440000000113614132605356016245 0ustar00wlusers00000000000000% This is the file c35song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/CNS/EUC-TW.chr0000644000175000001440000001314014132605356016111 0ustar00wlusers00000000000000% This is the file EUC-TW.chr of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/CNS/c34song.fd0000644000175000001440000000113614132605356016244 0ustar00wlusers00000000000000% This is the file c34song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/CNS/c33song.fd0000644000175000001440000000113614132605356016243 0ustar00wlusers00000000000000% This is the file c33song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/CNS/c37song.fd0000644000175000001440000000113614132605356016247 0ustar00wlusers00000000000000% This is the file c37song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/CNS/c31song.fd0000644000175000001440000000113614132605356016241 0ustar00wlusers00000000000000% This is the file c31song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/JIS/0000755000175000001440000000000014132605447014453 5ustar00wlusers00000000000000cjk-4.8.5/texinput/JIS/c41song.fd0000644000175000001440000000113614132605356016244 0ustar00wlusers00000000000000% This is the file c41song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/JIS/EUC-JP.chr0000644000175000001440000001463714132605356016106 0ustar00wlusers00000000000000% This is the file EUC-JP.chr of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/JIS/EUC-JP.enc0000644000175000001440000001620714132605356016072 0ustar00wlusers00000000000000% This is the file EUC-JP.enc of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/JIS/EUC-JP.bdg0000644000175000001440000000646414132605356016065 0ustar00wlusers00000000000000% This is the file EUC-JP.bdg of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/JIS/c43song.fd0000644000175000001440000000127514132605356016252 0ustar00wlusers00000000000000% This is the file c43song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/JIS/c40song.fd0000644000175000001440000000115414132605356016243 0ustar00wlusers00000000000000% This is the file c40song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/JIS/JIS.cpx0000644000175000001440000000507214132605356015617 0ustar00wlusers00000000000000% This is the file JIS.cpx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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{220161} \renewcommand\listfigurename{222220161} % \newcommand\listfigurename{222236247} \renewcommand\listtablename{189220161} % \newcommand\listtablename{189236247} \CJK@ifundefined\chapter {\renewcommand\refname{178205184165} } {\renewcommand\bibname{216162241210} % \renewcommand\bibname{178205184165} } \renewcommand\indexname{247250} \renewcommand\figurename{222} \renewcommand\tablename{189} \newcommand\prepartname{232} \newcommand\postpartname{244} \renewcommand\partformat{\prepartname\CJKnumber{\value{part}}\postpartname} % \renewcommand{\appendixname}{237191} \CJK@ifundefined\mainmatter {\renewcommand\abstractname{215221}}{} \renewcommand\today{{\ifheisei\count0=\year\else\count0=\year \advance\count0 -1988 191174\,\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 cjk-4.8.5/texinput/JIS/EUC-JPdnp.enc0000644000175000001440000001563414132605356016577 0ustar00wlusers00000000000000% This is the file EUC-JPdnp.enc of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/JIS/c42song.fd0000644000175000001440000000146714132605356016254 0ustar00wlusers00000000000000% This is the file c42song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/JIS/JISdnp.enc0000644000175000001440000001475514132605356016304 0ustar00wlusers00000000000000% This is the file JISdnp.enc of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/JIS/c50song.fd0000644000175000001440000000122114132605356016237 0ustar00wlusers00000000000000% This is the file c50song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/JIS/JIS.cap0000644000175000001440000000462314132605356015571 0ustar00wlusers00000000000000% This is the file JIS.cap of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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: cjk-4.8.5/texinput/CEF/0000755000175000001440000000000014132605447014423 5ustar00wlusers00000000000000cjk-4.8.5/texinput/CEF/c80song.fd0000644000175000001440000000203714132605356016220 0ustar00wlusers00000000000000% This is the file c80song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/CEF/c81song.fd0000644000175000001440000000174314132605356016224 0ustar00wlusers00000000000000% This is the file c81song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/thai/0000755000175000001440000000000014132605447014753 5ustar00wlusers00000000000000cjk-4.8.5/texinput/thai/c90enc.def0000644000175000001440000001066014132605356016516 0ustar00wlusers00000000000000% (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 cjk-4.8.5/texinput/thai/c90gar.fd0000644000175000001440000000140514132605356016352 0ustar00wlusers00000000000000%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 cjk-4.8.5/texinput/thai/c90nrsr.fd0000644000175000001440000000142714132605356016571 0ustar00wlusers00000000000000%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 cjk-4.8.5/texinput/thai/c90cmr.fd0000644000175000001440000000114514132605356016363 0ustar00wlusers00000000000000% This is the file c90cmr.fd of the CJK package % for using Thai with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/thai/c90cmss.fd0000644000175000001440000000115014132605356016543 0ustar00wlusers00000000000000% This is the file c90cmss.fd of the CJK package % for using Thai with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/thai/c90cmtt.fd0000644000175000001440000000115014132605356016545 0ustar00wlusers00000000000000% This is the file c90cmtt.fd of the CJK package % for using Thai with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/thai/thaicjk.ldf0000644000175000001440000000423414132605356017061 0ustar00wlusers00000000000000% This is the file thaicjk.ldf of the CJK package % for handling Thai. % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % % % It is based on a similar file of the thailatex package, written % by Surapant Meknavin with modifications by % Theppitak Karoonboonyanan . \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: cjk-4.8.5/texinput/SJIS/0000755000175000001440000000000014132605447014576 5ustar00wlusers00000000000000cjk-4.8.5/texinput/SJIS/SJIS.chr0000644000175000001440000001521414132605356016046 0ustar00wlusers00000000000000% This is the file SJIS.chr of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/SJIS/SJIS.enc0000644000175000001440000002352014132605356016036 0ustar00wlusers00000000000000% This is the file SJIS.enc of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/SJIS/SJIS.cpx0000644000175000001440000000506714132605356016071 0ustar00wlusers00000000000000% This is the file SJIS.cpx of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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{218159} \renewcommand\listfigurename{125218159} % \renewcommand\listfigurename{125234151} \renewcommand\listtablename{92218159} % \renewcommand\listtablename{92234151} \CJK@ifundefined\chapter {\renewcommand\refname{81108182163} } {\renewcommand\bibname{21465145208} % \renewcommand\bibname{81108182163} } \renewcommand\indexname{245248} \renewcommand\figurename{125} \renewcommand\tablename{92} \newcommand\prepartname{230} \newcommand\postpartname{148} \renewcommand\partformat{\prepartname\CJKnumber{\value{part}}\postpartname} % \renewcommand{\appendixname}{14194} \CJK@ifundefined\mainmatter {\renewcommand\abstractname{118124}}{} \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 cjk-4.8.5/texinput/SJIS/SJISdnp.chr0000644000175000001440000001470114132605356016550 0ustar00wlusers00000000000000% This is the file SJISdnp.chr of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/SJIS/c49song.fd0000644000175000001440000000143314132605356016377 0ustar00wlusers00000000000000% This is the file c49song.fd of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % 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 cjk-4.8.5/texinput/SJIS/SJIS.cap0000644000175000001440000000502314132605356016032 0ustar00wlusers00000000000000% This is the file SJIS.cap of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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: cjk-4.8.5/texinput/SJIS/SJISdnp.enc0000644000175000001440000002272114132605356016542 0ustar00wlusers00000000000000% This is the file SJISdnp.enc of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/texinput/SJIS/SJIS.bdg0000644000175000001440000000763714132605356016040 0ustar00wlusers00000000000000% This is the file SJIS.bdg of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % 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 cjk-4.8.5/doc/0000755000175000001440000000000014132605447012713 5ustar00wlusers00000000000000cjk-4.8.5/doc/reftex.txt0000644000175000001440000000177114132605356014756 0ustar00wlusers00000000000000This 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--- cjk-4.8.5/doc/cjk-enc.txt0000644000175000001440000004071114132605356014770 0ustar00wlusers00000000000000This 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[]{}{} Change family for a certain encoding (and fontencoding). \CJKfontenc{}{} 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 . `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--- cjk-4.8.5/doc/CJKnumb.txt0000644000175000001440000000115714132605356014750 0ustar00wlusers00000000000000This 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--- cjk-4.8.5/doc/thaifont.txt0000644000175000001440000001031114132605356015263 0ustar00wlusers00000000000000This 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--- cjk-4.8.5/doc/fdxfiles.txt0000644000175000001440000000747214132605356015271 0ustar00wlusers00000000000000This 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 \////// is defined. If it exists, it is executed instead of calling \CJKsymbol. For halfwidth katakana, the macro is called \///// For fonts from HLaTeX the macro is called \////// For UTF-8, only characters in the range 0x800-0x10FFFF execute the test for this macro. , and are decimal numbers; 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 `//'. 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}{} If defined, it sets the full height (height plus depth) of all CJK glyphs accessed with \CJKsymbol to . In most cases this value is 1em. \CJKvdef{height}{} 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}{} If defined, shift the (rotated) glyphs accessed with \CJKsymbol vertically by . \CJKvdef{simpleoffset}{} If defined, shift all glyphs accessed with \CJKsymbolsimple vertically by . o The `offset' parameter is available to position glyphs of a given font (i.e., all subfonts) while \CJKhorz is active. \CJKhdef{offset}{} If defined (and \CJKhorz being active), shift the glyphs accessed with \CJKsymbol vertically by . ---End of fdxfiles.txt--- cjk-4.8.5/doc/history.2_50000644000175000001440000002102214132605356014717 0ustar00wlusers00000000000000This 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 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 ). 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 ). ---End of history.2_5--- cjk-4.8.5/doc/vertical.txt0000644000175000001440000001111014132605356015256 0ustar00wlusers00000000000000This 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--- cjk-4.8.5/doc/pyhyphen.txt0000644000175000001440000001045214132605356015321 0ustar00wlusers00000000000000This 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 Bij蘋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 `.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--- cjk-4.8.5/doc/dvidrv.txt0000644000175000001440000000353514132605356014757 0ustar00wlusers00000000000000Using 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--- cjk-4.8.5/doc/hbf2gf.txt0000644000175000001440000003427314132605356014622 0ustar00wlusers00000000000000This 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= \ --with-kpathsea-lib= 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 /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--- cjk-4.8.5/doc/COPYING0000644000175000001440000004311214132605356013746 0ustar00wlusers00000000000000 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. Copyright (C) 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. , 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. cjk-4.8.5/doc/TDS.txt0000644000175000001440000001104614132605356014107 0ustar00wlusers00000000000000This 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// example: /usr/local/web2c-7.0/texmf/tex/latex/CJK/Bg5/Bg5.cap affected variable: $TEXINPUTS TrueType fonts: $TEXMF/fonts/truetype// 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/// [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/ example: /dos/texmf/hbf2gf/gsfs14.cfg affected variable: $HBF2GFINPUTS TFM files ( and as specified in special.map): $TEXMF/fonts/tfm/// example: /usr/local/teTeX/texmf/fonts/tfm/arphic/gbsnlp/gbsnlp23.tfm affected variable: $TFMFONTS PK files ( and as specified in special.map) $TEXMF/fonts/pk/modeless/// 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 .pk you can use dpi/.pk example: /texmf/fonts/pk/modeless/public/b5ka12/dpi600/b5ka1217.pk 2. teTeX additionally allows you to omit either or 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--- cjk-4.8.5/doc/fonts.txt0000644000175000001440000002665714132605356014624 0ustar00wlusers00000000000000This 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 /texmf-local/fonts/truetype/cyberbit/ (on e.g. Windows) or ~/texmf/fonts/truetype/cyberbit/ (on e.g. GNU/Linux) or something similar. indicates the root directory of TeXLive's texmf tree, for example C:\TeXLive2007 or /usr/local/texlive2007. 2. In the file /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 /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--- cjk-4.8.5/doc/ruby.txt0000644000175000001440000001227514132605356014443 0ustar00wlusers00000000000000This 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--- cjk-4.8.5/doc/commands.txt0000644000175000001440000003731314132605356015263 0ustar00wlusers00000000000000This 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}[]{}{} ... \end{CJK} This starts a CJK environment. Possible values for 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 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 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*}[]{}{} ... \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{} Load .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). .cpx is a preprocessed version of .cap. Example: \begin{CJK*}{Bg5}{song} \CJKcaption{Bg5} ... \end{CJK*} \CJKchar[]{}{} Insert a CJK character literally. and 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. and 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{} 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{} Change family for all encodings. This command overrides \CJKencfamily; to reactivate \CJKencfamily say `\CJKfamily{}'. \CJKfamily acts globally if the `global' option is set. \CJKencfamily[]{}{} Change family for a certain encoding (and font encoding). Can be overridden with \CJKfamily. The possible values of 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{}{} 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{}{} \Unicode{}{} Insert a Unicode character literally. , , and 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]{}{} or \CJKchar[UTF8]{}{} 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{}{} This macro is primarily intended for packages. Use it to append the code in to a hook for which is executed each time is selected. For an example see CJKnumb.sty . ---End of commands.txt--- cjk-4.8.5/doc/CEF.txt0000644000175000001440000000526514132605356014060 0ustar00wlusers00000000000000This 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--- cjk-4.8.5/doc/pinyin.txt0000644000175000001440000000372114132605356014764 0ustar00wlusers00000000000000This 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--- cjk-4.8.5/doc/CJK.txt0000644000175000001440000014573514132605356014101 0ustar00wlusers00000000000000 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[