summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/xetex/xetexko/xetexko-josa.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/xetex/xetexko/xetexko-josa.sty')
-rw-r--r--Master/texmf-dist/tex/xetex/xetexko/xetexko-josa.sty215
1 files changed, 6 insertions, 209 deletions
diff --git a/Master/texmf-dist/tex/xetex/xetexko/xetexko-josa.sty b/Master/texmf-dist/tex/xetex/xetexko/xetexko-josa.sty
index bcdc1aaaf89..a47253af95a 100644
--- a/Master/texmf-dist/tex/xetex/xetexko/xetexko-josa.sty
+++ b/Master/texmf-dist/tex/xetex/xetexko/xetexko-josa.sty
@@ -1,6 +1,6 @@
% xetexko-josa.sty
%
-% Copyright (c) 2013-2020 Dohyun Kim <nomos at ktug org>
+% Copyright (c) 2013-2021 Dohyun Kim <nomos at ktug org>
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -10,214 +10,11 @@
% and version 1.3c or later is part of all distributions of LaTeX
% version 2006/05/20 or later.
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname ProvidesPackage\endcsname\relax\else
- \ProvidesPackage{xetexko-josa}[2020/02/17 v2.23 Auto-josa for XeTeX-ko]
+\ifdefined\ProvidesPackage
+ \ProvidesPackage{xetexko-josa}[2021/03/20 v3.0 A deprecated addendum to XeTeX-ko]
+ \RequirePackage{xetexko}[2021/03/20]
+\else
+ \input xetexko.sty
\fi
-\unless\ifcsname @tempcnta\endcsname
- \alloc@0\count\countdef\insc@unt\@tempcnta\fi
-\unless\ifcsname @tempcntb\endcsname
- \alloc@0\count\countdef\insc@unt\@tempcntb\fi
-
-%%% user commands
-\protected\def\jong {\global\let\XK@last@char=0}
-\protected\def\rieul{\global\let\XK@last@char=1}
-\protected\def\jung {\global\let\XK@last@char=2}
-
-
-\newcount\@josa
-\def\@jong {\global\@josa\z@ }
-\def\@rieul{\global\@josa\@ne}
-\def\@jung {\global\@josa\tw@}
-\@jung
-
-\begingroup
-\catcode`\A=11
-\catcode`\0=12
-\global\let\dhucs@cat@eleven=A
-\global\let\dhucs@cat@twelve=0
-\endgroup
-
-\expandafter\def\expandafter\strip@characternum@meaning@prefix\detokenize
- {the character} #1#2\end{\number`#1\relax}
-\expandafter\def\expandafter\strip@letternum@meaning@prefix\detokenize
- {the letter} #1#2\end{\number`#1\relax}
-
-\def\@josa@char@to@number#1#2{%
- \ifcat#1\dhucs@cat@eleven
- \expandafter\expandafter\expandafter#2\expandafter
- \strip@letternum@meaning@prefix\meaning#1\end
- \else\ifcat#1\dhucs@cat@twelve
- \expandafter\expandafter\expandafter#2\expandafter
- \strip@characternum@meaning@prefix\meaning#1\end
- \else
- #2\z@
- \fi\fi
-}
-
-\def\josa@char@to@number{%
- \XeTeXinterchartokenstate\z@
- \@josa@char@to@number\XK@last@char\count@
- \@josa@char@to@number\XK@lastlast@char\@tempcnta
- \@josa@char@to@number\XK@lastlastlast@char\@tempcntb
- \ifnum\count@="302E
- \count@\@tempcnta \@tempcnta\@tempcntb
- \else\ifnum\count@="302F
- \count@\@tempcnta \@tempcnta\@tempcntb
- \else\ifnum\count@="1160
- \count@\@tempcnta \@tempcnta\@tempcntb
- \fi\fi\fi
- \XeTeXinterchartokenstate\@ne
-}
-
-\def\josa@last@char@latin{%
- \ifnum 49=\count@ \@rieul\else % 1
- \ifnum 51=\count@ \@jong \else % 3
- \ifnum 54=\count@ \@jong \else % 6
- \ifnum 55=\count@ \@rieul\else % 7
- \ifnum 56=\count@ \@rieul\else % 8
- \ifnum 48=\count@ \@jong \else % 0
- \ifnum 108=\count@ \@rieul\else % l
- \ifnum 109=\count@ \@jong \else % m
- \ifnum 110=\count@ \@jong \else % n
- \ifnum 76=\count@ \@rieul\else % L
- \ifnum 77=\count@ \@jong \else % M
- \ifnum 78=\count@ \@jong \else % N
- \@jung
- \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi
- \ifnum 110=\@tempcnta \ifnum 103=\count@ \@jong \fi\fi %skati-ng
- \ifnum 97=\@tempcnta \ifnum 112=\count@ \@jong \fi\fi %c-ap
- \ifnum 117=\@tempcnta \ifnum 112=\count@ \@jong \fi\fi %c-up
- \ifnum 97=\@tempcnta \ifnum 116=\count@ \@jong \fi\fi %c-at
- \ifnum 101=\@tempcnta \ifnum 116=\count@ \@jong \fi\fi %Haml-et
- \ifnum 105=\@tempcnta \ifnum 116=\count@ \@jong \fi\fi %summ-it
- \ifnum 111=\@tempcnta \ifnum 116=\count@ \@jong \fi\fi %n-ot
- \ifnum 117=\@tempcnta \ifnum 116=\count@ \@jong \fi\fi %n-ut
- \ifnum 111=\@tempcnta \ifnum 107=\count@ \@jong \fi\fi %bo-ok
- \ifnum 105=\@tempcnta \ifnum 99=\count@ \@jong \fi\fi %picn-ic
- \ifnum 108=\@tempcnta \ifnum 101=\count@ \@rieul\fi\fi %app-le
- \ifnum 105=\@tempcntb \ifnum 109=\@tempcnta \ifnum 101=\count@ \@jong\fi\fi\fi %t-ime
- \ifnum 105=\@tempcntb \ifnum 110=\@tempcnta \ifnum 101=\count@ \@jong\fi\fi\fi %m-ine
- \ifnum 97=\@tempcntb \ifnum 99=\@tempcnta \ifnum 107=\count@ \@jong\fi\fi\fi %b-ack
- \ifnum 105=\@tempcntb \ifnum 99=\@tempcnta \ifnum 107=\count@ \@jong\fi\fi\fi %p-ick
- \ifnum 111=\@tempcntb \ifnum 97=\@tempcnta \ifnum 116=\count@ \@jung\fi\fi\fi %b-oat
- \ifnum 84=\@tempcntb \ifnum 69=\@tempcnta \ifnum 88=\count@ \@jong\fi\fi\fi %TEX
-}
-
-\def\josa@hanja@hangul#1{%
- \begingroup
- \count@=\z@
- \openin1=#1\relax \josa@hanja \closein1
- \endgroup
-}
-\def\josa@hanja{%
- \read1 to \@tempa
- \ifnum\count@=\@josa
- \global\@josa\@tempa \let\next\relax
- \else
- \advance\count@\@ne \let\next\josa@hanja
- \fi
- \next
-}
-
-\def\num@josa#1{%
- \bgroup
- \count@#1%
- \ifnum\count@<\z@ \count@-\count@ \fi
- \count\tw@\count@
- \divide\count\tw@ 10
- \multiply\count\tw@ 10
- \advance\count@-\count\tw@
- \ifcase\count@\@jong\or\@rieul\or\@jung\or\@jong\or\@jung\or
- \@jung\or\@jong\or\@rieul\or\@rieul\or\@jung\fi
- \egroup
-}
-
-\def\josa@last@char@cjk{%
- \ifnum\@josa>19967 \ifnum\@josa<40870 % cjk unified ideographs
- \advance\@josa-19968 % "4E00
- \josa@hanja@hangul{hanja_hangul.tab}\fi\fi
- \ifnum\@josa>13311 \ifnum\@josa<19894 % cjk unified ideographs ext. A
- \advance\@josa-13312 % "3400
- \josa@hanja@hangul{hanjaexa_hangul.tab}\fi\fi
- \ifnum\@josa>63743 \ifnum\@josa<64046 % cjk compatibility ideographs
- \advance\@josa-63744 % "F900
- \josa@hanja@hangul{hanjacom_hangul.tab}\fi\fi
- \ifnum\@josa>44031 \ifnum\@josa<55204 % hangul syllables
- \advance\@josa-44032 % "AC00
- \count@=\@josa \divide\count@28 \multiply\count@28
- \advance\@josa-\count@ \advance\@josa4519 % "11A7
- \fi\fi
- \ifnum\@josa>"115F \ifnum\@josa<"11A8 % jamo vowels
- \ifnum\@josa="1160 \ifnum\@tempcnta="1105 \@rieul \else \@jong \fi % ㄹ or other chosong
- \else \@jung \fi\fi\fi
- \ifnum\@josa>"11A7 \ifnum\@josa<"1200 % jamo final consonants
- \ifnum\@josa="11AF \@rieul \else \@jong \fi\fi\fi
- \ifnum\@josa>"D7AF \ifnum\@josa<"D7C7 \@jung \fi\fi % jamo vowels
- \ifnum\@josa>"D7CA \ifnum\@josa<"D7FC \@jong \fi\fi % jamo final consonants
- \ifnum\@josa>12592 \ifnum\@josa<12623 % ㄱㄴㄷㄹ
- \ifnum\@josa=12601 \@rieul
- \else\@jong\fi \fi\fi
- \ifnum\@josa>12895 \ifnum\@josa<12924 \advance\@josa-96 \fi\fi
- \ifnum\@josa>12799 \ifnum\@josa<12814 % ㉠ or ㈀
- \ifnum\@josa=12803 \@rieul
- \else\@jong\fi \fi\fi
- \ifnum\@josa>12813 \ifnum\@josa<12829 % ㉮ or ㈎
- \@jung \fi\fi
- \ifnum\@josa>9311 \ifnum\@josa<9372 % ① or ⑴
- \advance\@josa\m@ne \num@josa{\@josa}\fi\fi
- \ifnum\@josa>9423 \ifnum\@josa<9450 \advance\@josa-26 \fi\fi
- \ifnum\@josa>9397 \ifnum\@josa<9424 \advance\@josa-26 \fi\fi
- \ifnum\@josa>9371 \ifnum\@josa<9398 % ⓐ or ⒜
- \ifnum\@josa=9383 \@rieul\else % l
- \ifnum\@josa=9384 \@jong\else % m
- \ifnum\@josa=9385 \@jong\else % n
- \@jung\fi\fi\fi \fi\fi
- \ifnum\@josa>8543 \ifnum\@josa<8556 % ⅰ ⅱ ⅲ
- \advance\@josa-3 \num@josa{\@josa}\fi\fi
- \ifnum\@josa>8559 \ifnum\@josa<8572 % Ⅰ Ⅱ Ⅲ
- \advance\@josa\@ne \num@josa{\@josa}\fi\fi
-}
-
-\protected\def\makejosa#1#2{%
- \josa@char@to@number
- \ifnum\count@<\@cclvi
- \ifnum\lastskip>\z@\else\XKcjklatinsmallbreak\fi % probably last char is latin ㅠㅠ
- \josa@last@char@latin
- \else
- \@josa\count@
- \josa@last@char@cjk
- \fi
- \ifcase\@josa #2% jong
- \or \ifx\@empty#1\@empty \else#2\fi% rieul
- \else #1% jung
- \fi
-}
-
-\def\가{\makejosa{가}{이}}
-\def\이{\futurelet\dhucs@next\makejosa@I}
-\def\은{\makejosa{는}{은}}
-\def\는{\makejosa{는}{은}}
-\def\을{\makejosa{를}{을}}
-\def\를{\makejosa{를}{을}}
-\def\와{\makejosa{와}{과}}
-\def\과{\makejosa{와}{과}}
-\def\으{\makejosa{}{으}}
-\def\로{\makejosa{}{으}로}
-\def\라{\makejosa{라}{이라}}
-\def\makejosa@I{%
- \ifcat\dhucs@next\dhucs@cat@twelve
- \expandafter\expandafter\expandafter\count@\expandafter
- \strip@characternum@meaning@prefix\meaning\dhucs@next\end
- \ifnum 0\ifnum\count@>"ABFF \ifnum\count@<"D7A4 1\fi\fi>\z@
- \makejosa\relax{이}%
- \else
- \makejosa{가}{이}%
- \fi
- \else
- \makejosa{가}{이}%
- \fi
-}
-
\endinput