texlive[53693] Master/texmf-dist: pmhanguljamo (6feb20)
commits+karl at tug.org
commits+karl at tug.org
Thu Feb 6 21:42:54 CET 2020
Revision: 53693
http://tug.org/svn/texlive?view=revision&revision=53693
Author: karl
Date: 2020-02-06 21:42:52 +0100 (Thu, 06 Feb 2020)
Log Message:
-----------
pmhanguljamo (6feb20)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/pmhanguljamo/pmhanguljamo-doc.pdf
trunk/Master/texmf-dist/doc/latex/pmhanguljamo/pmhanguljamo-doc.tex
trunk/Master/texmf-dist/doc/latex/pmhanguljamo/pmhanguljamo-kdoc.pdf
trunk/Master/texmf-dist/doc/latex/pmhanguljamo/pmhanguljamo-kdoc.tex
trunk/Master/texmf-dist/tex/latex/pmhanguljamo/pmhanguljamo.sty
Added Paths:
-----------
trunk/Master/texmf-dist/tex/latex/pmhanguljamo/pmhanguljamo-rrk.sty
Removed Paths:
-------------
trunk/Master/texmf-dist/doc/latex/pmhanguljamo/pmhanguljamo-rrk.tex
Modified: trunk/Master/texmf-dist/doc/latex/pmhanguljamo/pmhanguljamo-doc.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/pmhanguljamo/pmhanguljamo-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pmhanguljamo/pmhanguljamo-doc.tex 2020-02-06 19:44:26 UTC (rev 53692)
+++ trunk/Master/texmf-dist/doc/latex/pmhanguljamo/pmhanguljamo-doc.tex 2020-02-06 20:42:52 UTC (rev 53693)
@@ -30,7 +30,7 @@
\title{Poorman's Hangul Jamo Input Method \\ \Large \texttt{pmhanguljamo.sty} }
\author{Kangsoo Kim}
-\date{30 Jan 2020\quad version 0.3.1}
+\date{06 Feb 2020\quad version 0.3.2}
\maketitle
@@ -494,7 +494,7 @@
\let\jamotext\relax
\let\endjamotext\relax
\ExplSyntaxOn
-\input pmhanguljamo-rrk.tex
+\input pmhanguljamo-rrk.sty
\ExplSyntaxOff
@@ -577,7 +577,7 @@
has only leading `@', i.e., \textkorean{\jamoword{x@}} should be input by `\verb|x@|'.
If the syllable has trailing consonants or is part of a word, just \verb|@| is
good. \\
-\verb|\jamoword{h at ngeul @@nam-eun}| \textkorean{\jamoword{h at ngeul @@nam-eun}}.
+\verb|\jamoword{h at ngeul @@nam-eun}| \textkorean{\jamoword{h at ngeul @@d at b}}.
\end{enumerate}
Modified: trunk/Master/texmf-dist/doc/latex/pmhanguljamo/pmhanguljamo-kdoc.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/pmhanguljamo/pmhanguljamo-kdoc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pmhanguljamo/pmhanguljamo-kdoc.tex 2020-02-06 19:44:26 UTC (rev 53692)
+++ trunk/Master/texmf-dist/doc/latex/pmhanguljamo/pmhanguljamo-kdoc.tex 2020-02-06 20:42:52 UTC (rev 53693)
@@ -61,7 +61,8 @@
%\date{2020/07/19\quad v0.2.0}
%\date{2020/01/20\quad v0.2.1}
%\date{2020/01/28\quad v0.3}
-\date{2020/01/30\quad v0.3.1}
+%\date{2020/01/30\quad v0.3.1}
+\date{2020/02/05\quad v0.3.2}
\maketitle
@@ -166,11 +167,12 @@
호환 자모를 \cmda{\jamoword} 명령의 인자 안에서 쓰는 방법은 \ref{sec:compjamo}절을 보라. 이 명령은 본문
중에서 독립적으로 쓰기 위해 마련되었다.
인자로 단 하나의 자모만이 와야 한다. 설령 \texttt{RRK} 옵션을 부여하여 RRK 입력 방법을 쓰는 때라도
-이 명령의 인자는 이 패키지의 고유한 전자 규칙을 따른다.
+이 명령의 인자는 이 패키지의 고유한 전자 규칙을 따른다. 쌍아래아는 유니코드 호환 자모에는 정의되어 있지
+않으나 편의를 위하여 조판할 수 있도록 해두었다.
\medskip
\begin{exampleside}
-\jmcc{BSG} \jmcc{@} \jmcc{UEY}
+\jmcc{BSG} \jmcc{@} \jmcc{UEY} \jmcc{@@}
\end{exampleside}
\section{轉字 규칙} \label{sec:pmrule}
@@ -225,13 +227,13 @@
\centering
\caption{알파벳-자모 대응 규칙: 자음}\label{tab:cons}
\ttfamily
-\begin{tabular}{ll|ll|ll|ll}
+\begin{tabular}{ll|ll|ll|ll|ll}
\hline
-ㄱ & g & ㄴ & n & ㄷ & d & ㄹ & r \\
-ㅁ & m & ㅂ & b & ㅅ & s & ㅇ & \textbf{x} \\
-ㅈ & j & ㅊ & c & ㅋ & k & ㅌ & t \\
-ㅍ & p & ㅎ & h & \char"3181 & \textbf{q} & \char"317F & \textbf{z} \\
-\char"3186 & \textbf{f} & & & & & & \\
+ㄱ & g & ㄴ & n & ㄷ & d & ㄹ & r & ㅁ & m \\
+ㅂ & b & ㅅ & s & ㅇ & \textbf{x} & ㅈ & j & ㅊ & c \\
+ㅋ & k & ㅌ & t & ㅍ & p & ㅎ & h & & \\ \hline
+\char"3181 & \textbf{q} & \char"317F & \textbf{z} &
+\char"3186 & \textbf{f} & & & & \\
\hline
\end{tabular}
\end{table}
@@ -284,29 +286,31 @@
\verb|\jamoword{g at i}| \jamoword{g at i}.
-\item `쌍아래아'는 현대의 제주어 표기에서 이따금 필요하다. 모양대로 \verb|@@|로 적으며 \verb|y@|를 취하지 않았다. 현대 국어에서 이 글자의 소리는 잊혀진 것이라서 소리로 연상할 수 없기 때문이다.\\
+\item `쌍아래아(\jmcc{@@})'는 현대의 제주어 표기에서 이따금 필요하다. 모양대로 \verb|@@|로 적으며 \verb|y@|를 취하지 않았다. 현대 국어에서 이 글자의 소리는 잊혀진 것이라서 소리로 연상할 수 없기 때문이다.\\
\verb|\jamoword{@@/nam/vn}| \jamoword{@@/nam/vn}.
\item 표준 로마자 표기법에서 \texttt{wa}, \texttt{wo}, \texttt{we}, \texttt{wi}로 표기할 때 나타나는 반자음 \verb|w|은 채택하지 않았다. `ㅘ, ㅝ, ㅟ'는 생긴 대로 \texttt{oa}, \texttt{ue}, \texttt{ui}로 적는다.
-\item 이 패키지는 Unicode 4.0의 한글 자모 보충 A, B를 지원한다. 그러므로 한글 자모 영역([U+11XX])에는 없는 `\jamoword{wuye}'와 같은 모음을 표기할 수 있다. \verb|\jamoword{sa/guye}| \jamoword{sa/guye/}. 물론 폰트가 이를 지원해야 한다.
+\item 이 패키지는 Unicode 4.0의 한글 자모 확장 A, B를 지원한다. 그러므로 한글 자모 영역([U+11XX])에는 없는 `\jamoword{wuye}'와 같은 모음을 표기할 수 있다. \verb|\jamoword{sa/guye}| \jamoword{sa/guye/}. 물론 폰트가 이를 지원해야 한다.
\end{enumerate}
\subsubsection{호환자모 음절} \label{sec:compjamo}
\cmda{\jamoword}나 \env{jamotext} 범위 안에서 호환 자모를 식자하려면 해당하는 자모를 대문자로, 하나의 음절로 입력한다.
-별도로 \cmda{\jmcc}를 쓰지 않는다. 그러나 반드시 하나의 자모가 한 음절이어야 한다.\\
-\verb|\jamoword{B/n at n; ib/si/ur;sso/ri;ni;}|
-\jamoword{B/n at n; ib/si/ur;sso/ri;ni;}
+별도로 \cmda{\jmcc}를 쓰지 않는다. 그러나 반드시 하나의 자모가 한 음절이어야 한다.
-\verb|\jamoword{孟m at ix/子j@/I/ g at r/@/sya/d at i}|
+\begin{exampleside}
+\jamoword{B/n at n; ib/si/ur;sso/ri;ni;} \\
\jamoword{孟m at ix/子j@/I g at r/@/sya/d at i}
+\end{exampleside}
\medskip
호환 자모 아래아 `\jmcc{@}'를 \cmda{\jamoword} 인자 안에서 식자하려 할 때는 자모 아래아 `\jamoword{w@}'와
-구별하기 위해 대문자 \texttt{W}로 표기해야 한다. \verb|W|와 \verb|WI|만이 지원된다.
+구별하기 위해 대문자 \texttt{W}로 표기해야 한다. \verb|W|, \verb|WW|, \verb|WI|만이 지원된다.
-\verb|\jamoword{W/n at n; 呑t at n/D/字/jj at x; ga/on;d at is;so/ri; g@;t@;ni/ra;.}| \\
-\jamoword{W/n at n; 呑t at n/D/字/jj at x; ga/on;d at is;so/ri; g@;t@;ni/ra;.}
+\begin{exampleside}
+\jamoword{W/n at n; 呑t at n/D/字/jj at x; ga/on;d at is;so/ri; g@;t@;ni/ra;.}\\
+\jamoword{WW/nvn jei/ju/e pyo/gi/ei i/yox/doin/da/.}
+\end{exampleside}
\subsubsection{문장 부호, 한자와 음절 한글}
@@ -608,7 +612,7 @@
\let\jamotext\relax
\let\endjamotext\relax
\ExplSyntaxOn
-\input {pmhanguljamo-rrk.tex}
+\input {pmhanguljamo-rrk.sty}
\ExplSyntaxOff
패키지 옵션으로 \verb|[rrk]| 또는 \verb|[RRK]|가 주어지면 입력 규칙이 표준 로마자 표기법 전자법 방식으로
@@ -630,6 +634,18 @@
\centering
\begin{tabular}{ll|ll|ll|ll|ll|ll}
\hline
+\multicolumn{12}{l}{자음}\\ \hline
+ㄱ & g & ㄲ & kk & ㅋ & k & ㄷ & d & ㄸ & tt & ㅌ & t \\
+ㅂ & b & ㅃ & pp & ㅍ & p & ㅈ & j & ㅉ & jj & ㅊ & ch \\
+ㅅ & s & ㅆ & ss & ㅎ & h & & & & & & \\
+ㄴ & n & ㅁ & m & ㅇ & ng & ㄹ & l & & & & \\ \hline
+\end{tabular}
+\end{table}
+
+\begin{table}[h]
+\centering
+\begin{tabular}{ll|ll|ll|ll|ll|ll}
+\hline
\multicolumn{12}{l}{모음} \\ \hline
ㅏ & a & ㅓ & eo & ㅗ & o & ㅜ & u & ㅡ & eu & ㅣ & i\\
ㅐ & ae & ㅔ & e & ㅚ & oe & ㅟ & wi & & & & \\ \hline
@@ -638,17 +654,6 @@
\end{tabular}
\end{table}
-\begin{table}[h]
-\centering
-\begin{tabular}{ll|ll|ll|ll|ll|ll}
-\hline
-\multicolumn{12}{l}{자음}\\ \hline
-ㄱ & g & ㄲ & kk & ㅋ & k & ㄷ & d & ㄸ & tt & ㅌ & t \\
-ㅂ & b & ㅃ & pp & ㅍ & p & ㅈ & j & ㅉ & jj & ㅊ & ch \\
-ㅅ & s & ㅆ & ss & ㅎ & h & & & & & & \\
-ㄴ & n & ㅁ & m & ㅇ & ng & ㄹ & l & & & & \\ \hline
-\end{tabular}
-\end{table}
\begin{enumerate}[(1)] \firmlist
\item 단어의 첫소리 `ㅇ'은 적지 않는다. 그밖의 초성 이응은 \verb|-|로 적는다. \\
@@ -786,6 +791,8 @@
\textbullet\ v0.3.1 (2020/01/30): RRK 입력 방법에서 한글 음절 문자 구성 방법 개선. 일부 문장부호 추가.
+\textbullet\ v0.3.2 (2020/02/05): RRK에서도 \verb|\jmcc|를 쓸 수 있게 하고 \verb|\jmcc|의 인자로 \verb|@@|를 허용함.
+
%%% APPENDICES
\ExplSyntaxOn
\int_new:N \l_appsec_int
Deleted: trunk/Master/texmf-dist/doc/latex/pmhanguljamo/pmhanguljamo-rrk.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pmhanguljamo/pmhanguljamo-rrk.tex 2020-02-06 19:44:26 UTC (rev 53692)
+++ trunk/Master/texmf-dist/doc/latex/pmhanguljamo/pmhanguljamo-rrk.tex 2020-02-06 20:42:52 UTC (rev 53693)
@@ -1,510 +0,0 @@
-%
-% subroutine of pmhanguljamo.sty
-%. v0.3.1 (2020/01/30)
-%
-\seq_new:N \l_textjm_seq
-
-\NewDocumentEnvironment { jamotext } { +b }
-{
- \seq_set_split:Nnn \l_textjm_seq {\par} { #1 }
- \seq_indexed_map_inline:Nn \l_textjm_seq
- {
- \jamoword { ##2 }
- \int_compare:nT { ##1 < \seq_count:N \l_textjm_seq }
- {
- \par
- }
- }
-}{}
-
-\tl_new:N \l_tmpz_tl
-
-\NewDocumentCommand \jamoword { m }
-{
- \seq_set_split:Nnn \l_tmpa_seq { ~ } { #1 }
- \seq_indexed_map_inline:Nn \l_tmpa_seq
- {
- \tl_set:Nn \l_tmpz_tl { ##2 }
- \exp_args:No \str_if_in:nnT { \l_tmpz_tl } { - }
- {
- \regex_replace_all:nnN { \- } { \/\- } \l_tmpz_tl
- }
- \exp_args:No \str_if_in:nnT { \l_tmpz_tl } { . }
- {
- \regex_replace_all:nnN { \. } { \/\. } \l_tmpz_tl
- }
- \exp_args:No \str_if_in:nnT { \l_tmpz_tl } { , }
- {
- \regex_replace_all:nnN { \, } { \/\, } \l_tmpz_tl
- }
- \exp_args:No \str_if_in:nnT { \l_tmpz_tl } { ! }
- {
- \regex_replace_all:nnN { \! } { \/\! } \l_tmpz_tl
- }
- \exp_args:No \str_if_in:nnT { \l_tmpz_tl } { ? }
- {
- \regex_replace_all:nnN { \? } { \/\? } \l_tmpz_tl
- }
- \exp_args:No \str_if_in:nnT { \l_tmpz_tl } { : }
- {
- \regex_replace_all:nnN { \: } { \/\: } \l_tmpz_tl
- }
- \exp_args:No \str_if_in:nnT { \l_tmpz_tl } { ; }
- {
- \regex_replace_all:nnN { \; } { \/\; } \l_tmpz_tl
- }
-
- \exp_args:No \str_if_in:nnTF { \l_tmpz_tl } { / }
- {
- \exp_args:NNno \seq_set_split:Nnn \l_tmpb_seq { / } { \l_tmpz_tl }
- \seq_map_function:NN \l_tmpb_seq \rrk_fn_outer:n
- }
- {
- \exp_args:No \rrk_a_word:n { \l_tmpz_tl }
- }
- \int_compare:nT { \seq_count:N \l_tmpa_seq > ##1 }
- {
- \space
- }
- }
-}
-
-\cs_new:Npn \rrk_fn_outer:n #1
-{
- \rrk_a_word:n { #1 }
-}
-
-\cs_new_nopar:Npn \rrk_a_word:n #1
-{
- \seq_gclear:N \g_outsyl_tl
-
- \regex_match:nnTF { [a-zA-Z0 ] } { #1 }
- {
- \exp_args:NNnx \seq_set_split:Nnn \g_tmpa_seq {} { \str_lowercase:f { #1 } }
-
- \int_step_inline:nn { 9 }
- {
- \seq_put_right:Nn \g_tmpa_seq { 0 }
- }
-
- \cho_fn:
-
- \seq_use:Nn \g_outsyl_tl { }
- }
- {
- #1
- }
-}
-
-\cs_new:Npn \insert_out:n #1
-{
- \seq_put_right:Nn \g_outsyl_tl { #1 }
-}
-
-\cs_new:Npn \prepare_three_tk:
-{
- \seq_pop_left:NN \g_tmpa_seq \l_tmpa_tl
- \seq_pop_left:NN \g_tmpa_seq \l_tmpb_tl
- \seq_pop_left:NN \g_tmpa_seq \l_tmpc_tl
-}
-
-\cs_new:Npn \cho_fn:
-{
- \prepare_three_tk:
-
- \str_case_e:nn { \l_tmpa_tl }
- {
-% Zero 자음
- { @ } { \insert_out:n { ᄋ } \restore_c: \restore_b: \restore_a: }
- { a } { \insert_out:n { ᄋ } \restore_c: \restore_b: \restore_a: }
- { e } { \insert_out:n { ᄋ } \restore_c: \restore_b: \restore_a: }
- { i } { \insert_out:n { ᄋ } \restore_c: \restore_b: \restore_a: }
- { o } { \insert_out:n { ᄋ } \restore_c: \restore_b: \restore_a: }
- { u } { \insert_out:n { ᄋ } \restore_c: \restore_b: \restore_a: }
- { w } { \insert_out:n { ᄋ } \restore_c: \restore_b: \restore_a: }
- { y } { \insert_out:n { ᄋ } \restore_c: \restore_b: \restore_a: }
-
- { g } { \insert_out:n { ᄀ } \restore_c: \restore_b: }
- { n } { \insert_out:n { ᄂ } \restore_c: \restore_b: }
- { d } { \insert_out:n { ᄃ } \restore_c: \restore_b: }
- { l } { \insert_out:n { ᄅ } \restore_c: \restore_b: }
- { r } { \insert_out:n { ᄅ } \restore_c: \restore_b: }
- { m } { \insert_out:n { ᄆ } \restore_c: \restore_b: }
- { b } { \insert_out:n { ᄇ } \restore_c: \restore_b: }
- { c } { \insert_out:n { ᄎ } \restore_c: }
- { h } { \insert_out:n { ᄒ } \restore_c: \restore_b: }
- { x } { \insert_out:n { ᄋ } \restore_c: \restore_b: }
-
- { s } { \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { s }
- { \insert_out:n { ᄊ } \restore_c: }
- { \insert_out:n { ᄉ } \restore_c: \restore_b: } }
- { j } { \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { j }
- { \insert_out:n { ᄍ } \restore_c: }
- { \insert_out:n { ᄌ } \restore_c: \restore_b: } }
- { k } { \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { k }
- { \insert_out:n { ᄁ } \restore_c: }
- { \insert_out:n { ᄏ } \restore_c: \restore_b: } }
- { t } { \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { t }
- { \insert_out:n { ᄄ } \restore_c: }
- { \insert_out:n { ᄐ } \restore_c: \restore_b: } }
- { p } { \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { p }
- { \insert_out:n { ᄈ } \restore_c: }
- { \insert_out:n { ᄑ } \restore_c: \restore_b: } }
- { - } { \exp_args:Nno \str_if_in:nnTF { aeiouwy@ } { \l_tmpb_tl }
- { \insert_out:n { ᄋ } \restore_c: \restore_b: }
- { \insert_out:n { } \restore_c: \restore_b: \cho_fn: }
- }
- }
- \jung_fn:
-}
-
-\cs_new:Npn \jung_fn:
-{
- \prepare_three_tk:
-
- \exp_args:No \str_if_eq:nnTF { \l_tmpa_tl } { 0 }
- { \scan_stop: }
- {
- \str_case_e:nn { \l_tmpa_tl }
- {
- { i } { \insert_out:n { ᅵ } \restore_c: \restore_b: }
- { o } { \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { e }
- { \insert_out:n { ᅬ } \restore_c: }
- { \insert_out:n { ᅩ } \restore_c: \restore_b: } }
- { u } { \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { i }
- { \insert_out:n { ᅴ } \restore_c: }
- { \insert_out:n { ᅮ } \restore_c: \restore_b: } }
- { a } { \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { e }
- { \insert_out:n { ᅢ } \restore_c: }
- { \insert_out:n { ᅡ } \restore_c: \restore_b: } }
- { e } { \str_case_e:nnF { \l_tmpb_tl }
- {
- { o } { \insert_out:n { ᅥ } \restore_c: }
- { u } { \insert_out:n { ᅳ } \restore_c: }
- }
- { \insert_out:n { ᅦ } \restore_c: \restore_b: }
- }
- { @ } { \str_case_e:nnF { \l_tmpb_tl }
- {
- { @ } { \insert_out:n { ᆢ } \restore_c: }
- { i } { \insert_out:n { ᆡ } \restore_c: }
- }
- { \insert_out:n { ᆞ } \restore_c: \restore_b: }
- }
-
- { y } { \str_case_e:nn { \l_tmpb_tl }
- {
- { o } { \insert_out:n { ᅭ } \restore_c: }
- { u } { \insert_out:n { ᅲ } \restore_c: }
- { a } { \exp_args:No \str_if_eq:nnTF { \l_tmpc_tl } { e }
- { \insert_out:n { ᅤ } }
- { \insert_out:n { ᅣ } \restore_c: } }
- { e } { \exp_args:No \str_if_eq:nnTF { \l_tmpc_tl } { o }
- { \insert_out:n { ᅧ } }
- { \insert_out:n { ᅨ } \restore_c: } }
- }
- }
- { w } { \str_case_e:nn { \l_tmpb_tl }
- {
- { o } { \insert_out:n { ᅯ } \restore_c: }
- { i } { \insert_out:n { ᅱ } \restore_c: }
- { e } { \insert_out:n { ᅰ } \restore_c: }
- { a } { \exp_args:No \str_if_eq:nnTF { \l_tmpc_tl } { e }
- { \insert_out:n { ᅫ } }
- { \insert_out:n { ᅪ } \restore_c: } }
- }
- }
- }
-
- \jong_fn:
- }
-}
-
-\cs_new:Npn \prepare_five_tk:
-{
- \seq_pop_left:NN \g_tmpa_seq \l_tmpa_tl
- \seq_pop_left:NN \g_tmpa_seq \l_tmpb_tl
- \seq_pop_left:NN \g_tmpa_seq \l_tmpc_tl
- \seq_pop_left:NN \g_tmpa_seq \l_tmpd_tl
- \seq_pop_left:NN \g_tmpa_seq \l_tmpe_tl
-}
-
-\cs_new:Npn \jong_fn:
-{
- \prepare_five_tk:
-
- \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { 0 }
- {
- \exp_args:Nx \insert_jong:n { \l_tmpa_tl }
- }
- {
- \exp_args:Nno \str_if_in:nnTF { aeiouwy@ } { \l_tmpb_tl }
- {
- \restore_e: \restore_d: \restore_c: \restore_b: \restore_a:
- \cho_fn:
- }
- {
- \exp_args:Nno \str_if_in:nnTF { aeiouwy@ } { \l_tmpc_tl }
- {
- \restore_e: \restore_d: \restore_c: \restore_b: \restore_a:
- \take_jong_two:
- }
- {
- \exp_args:Nno \str_if_in:nnTF { aeiouwy@ } { \l_tmpd_tl }
- {
- \restore_e: \restore_d: \restore_c: \restore_b: \restore_a:
- \take_jong_three:
- }
- {
- \exp_args:Nno \str_if_in:nnTF { aeiouwy@ } { \l_tmpe_tl }
- {
- \exp_args:Nx \insert_jong:n { \l_tmpa_tl \l_tmpb_tl }
-% \exp_args:Nx \insert_out:n { \l_tmpc_tl \l_tmpd_tl }
- \restore_e: \restore_d: \restore_c:
- \cho_fn:
- }
- {
- \restore_e: \restore_d: \restore_c: \restore_b: \restore_a:
- \take_jong_four:
- }
- }
- }
- }
- }
-}
-
-\cs_new:Npn \take_jong_four:
-{
- \prepare_five_tk:
- \exp_args:No \str_if_eq:nnTF { \l_tmpa_tl } { 0 }
- { \scan_stop: }
- {
- \exp_args:Nx \insert_jong:n { \tl_use:N \l_tmpa_tl \tl_use:N \l_tmpb_tl }
- \restore_e: \restore_d: \restore_c:
- \cho_fn:
- }
-}
-
-\cs_new:Npn \insert_jong:n #1
-{
- \str_case:nn { #1 }
- {
- { kk } { \insert_out:n { ᆩ } }
- { gs } { \insert_out:n { ᆪ } }
- { g } { \insert_out:n { ᆨ } }
- { nj } { \insert_out:n { ᆬ } }
- { nh } { \insert_out:n { ᆭ } }
- { n } { \insert_out:n { ᆫ } }
- { d } { \insert_out:n { ᆮ } }
- { lg } { \insert_out:n { ᆰ } }
- { lm } { \insert_out:n { ᆱ } }
- { lb } { \insert_out:n { ᆲ } }
- { ls } { \insert_out:n { ᆳ } }
- { lt } { \insert_out:n { ᆴ } }
- { lp } { \insert_out:n { ᆵ } }
- { lh } { \insert_out:n { ᆶ } }
- { l } { \insert_out:n { ᆯ } }
- { m } { \insert_out:n { ᆷ } }
- { bs } { \insert_out:n { ᆹ } }
- { b } { \insert_out:n { ᆸ } }
- { ss } { \insert_out:n { ᆻ } }
- { s } { \insert_out:n { ᆺ } }
- { ng } { \insert_out:n { ᆼ } }
- { j } { \insert_out:n { ᆽ } }
- { ch } { \insert_out:n { ᆾ } }
- { k } { \insert_out:n { ᆿ } }
- { t } { \insert_out:n { ᇀ } }
- { p } { \insert_out:n { ᇁ } }
- { h } { \insert_out:n { ᇂ } }
- { / } { \insert_out:n { 0 } }
- }
-}
-
-\cs_new:Npn \take_jong_three:
-{
- \prepare_three_tk:
- \exp_args:No \str_if_eq:nnTF { \l_tmpa_tl } { 0 }
- { \scan_stop: }
- {
-%% XX-
- \exp_args:No \str_if_eq:nnTF { \l_tmpc_tl } { - }
- {
- \exp_args:Nx \insert_jong:n { \l_tmpa_tl \l_tmpb_tl }
- \restore_c:
- }
- {
- \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { - }
- {
- \exp_args:Nx \insert_jong:n { \l_tmpa_tl }
- \restore_c: \restore_b:
- }
- {
- \check_jong_sub:
- }
- }
- \cho_fn:
- }
-}
-
-
-\cs_new:Npn \check_jong_sub:
-{
- \exp_args:Noo \str_if_eq:nnTF { \l_tmpb_tl } { \l_tmpc_tl }
- {
- \exp_args:Noo \str_if_eq:nnTF { \l_tmpa_tl } { \l_tmpb_tl } %%% sss
- {
- \exp_args:Nx \insert_jong:n { \l_tmpa_tl \l_tmpb_tl } %% ss-s
- \restore_c:
- }
- {
- \exp_args:Nno \str_if_in:nnTF { tpkj } { \l_tmpb_tl }
- {
- \exp_args:Nx \insert_jong:n { \l_tmpa_tl }
- \restore_c: \restore_b:
- }
- {
- \check_jong_sub_last:
- }
- }
- }
- {
- \str_if_eq:eeTF { \l_tmpa_tl } { k }
- {
- \str_if_eq:eeTF { \l_tmpb_tl } { k } %% kk-g
- {
- \exp_args:Nx \insert_jong:n { \l_tmpa_tl \l_tmpb_tl }
- \restore_c:
- }
- {
- \exp_args:Nx \insert_jong:n { \l_tmpa_tl }
- \restore_c: \restore_b:
- }
- }
- {
- \exp_args:No \str_if_eq:nnTF { \l_tmpa_tl } { c } %%% chX
- {
- \exp_args:Nx \insert_jong:n { \l_tmpa_tl \l_tmpb_tl }
- \restore_c:
- }
- {
- \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { c } %%% Xch
- {
- \exp_args:Nx \insert_jong:n { \l_tmpa_tl }
- \restore_c: \restore_b:
- }
- {
- \check_jong_sub_last:
- }
- }
- }
- }
-}
-
-\cs_new:Npn \check_jong_sub_last:
-{
- \str_case_e:nnTF { \l_tmpa_tl }
- {
- { n } { \str_case_e:nn { \l_tmpb_tl }
- {
- { j } { }
- { g } { }
- { h } { }
- }
- }
- { g } { \str_case_e:nn { \l_tmpb_tl }
- {
- { s } { }
- }
- }
- { l } { \str_case_e:nn { \l_tmpb_tl }
- {
- { g } { }
- { m } { }
- { b } { }
- { s } { }
- { t } { }
- { p } { }
- { h } { }
- }
- }
- { b } { \str_case_e:nn { \l_tmpb_tl }
- {
- { s } { }
- }
- }
- { s } { \str_case_e:nn { \l_tmpb_tl }
- {
- { s } { }
- }
- }
- }
- {
- \exp_args:Nx \insert_jong:n { \l_tmpa_tl \l_tmpb_tl }
- \restore_c:
- }
- {
- \exp_args:Nx \insert_jong:n { \l_tmpa_tl }
- \restore_c: \restore_b:
- }
-}
-
-\cs_new:Npn \take_jong_two:
-{
- \prepare_three_tk:
- \exp_args:No \str_if_eq:nnTF { \l_tmpa_tl } { 0 }
- { \scan_stop: }
- {
- \exp_args:Noo \str_if_eq:nnTF { \l_tmpa_tl } { \l_tmpb_tl }
- {
- \exp_args:Nno \str_if_in:nnTF { tpkj } { \l_tmpa_tl }
- { \restore_c: \restore_b: \restore_a: }
- {
- \exp_args:No \str_if_eq:nnTF { \l_tmpa_tl } { c }
- { \restore_c: \restore_b: \restore_a: }
- { \exp_args:Nx \insert_jong:n { \l_tmpa_tl }
- \restore_c: \restore_b: }
- }
- }
- {
- \exp_args:No \str_if_eq:nnTF { \l_tmpa_tl } { c }
- { \restore_c: \restore_b: \restore_a: }
- { \exp_args:Nx \insert_jong:n { \l_tmpa_tl }
- \restore_c: \restore_b: }
- }
- }
- \cho_fn:
-}
-
-\cs_new:Npn \restore_c:
-{
- \exp_args:NNx \seq_put_left:Nn \g_tmpa_seq { \tl_use:N \l_tmpc_tl }
-}
-
-\cs_new:Npn \restore_b:
-{
- \exp_args:NNx \seq_put_left:Nn \g_tmpa_seq { \tl_use:N \l_tmpb_tl }
-}
-
-\cs_new:Npn \restore_a:
-{
- \exp_args:NNx \seq_put_left:Nn \g_tmpa_seq { \tl_use:N \l_tmpa_tl }
-}
-
-\cs_new:Npn \restore_d:
-{
- \exp_args:NNx \seq_put_left:Nn \g_tmpa_seq { \tl_use:N \l_tmpd_tl }
-}
-
-\cs_new:Npn \restore_e:
-{
- \exp_args:NNx \seq_put_left:Nn \g_tmpa_seq { \tl_use:N \l_tmpe_tl }
-}
-
-\cs_new:Npn \restore_five:
-{
- \restore_e: \restore_d: \restore_c: \restore_b: \restore_a:
-}
-
-\endinput
-
-%% end of file pmhanguljamo-rrk.tex
Added: trunk/Master/texmf-dist/tex/latex/pmhanguljamo/pmhanguljamo-rrk.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pmhanguljamo/pmhanguljamo-rrk.sty (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/pmhanguljamo/pmhanguljamo-rrk.sty 2020-02-06 20:42:52 UTC (rev 53693)
@@ -0,0 +1,510 @@
+%
+% subroutine of pmhanguljamo.sty
+%. v0.3.2 (2020/02/05)
+%
+\seq_new:N \l_textjm_seq
+
+\NewDocumentEnvironment { jamotext } { +b }
+{
+ \seq_set_split:Nnn \l_textjm_seq {\par} { #1 }
+ \seq_indexed_map_inline:Nn \l_textjm_seq
+ {
+ \jamoword { ##2 }
+ \int_compare:nT { ##1 < \seq_count:N \l_textjm_seq }
+ {
+ \par
+ }
+ }
+}{}
+
+\tl_new:N \l_tmpz_tl
+
+\NewDocumentCommand \jamoword { m }
+{
+ \seq_set_split:Nnn \l_tmpa_seq { ~ } { #1 }
+ \seq_indexed_map_inline:Nn \l_tmpa_seq
+ {
+ \tl_set:Nn \l_tmpz_tl { ##2 }
+ \exp_args:No \str_if_in:nnT { \l_tmpz_tl } { - }
+ {
+ \regex_replace_all:nnN { \- } { \/\- } \l_tmpz_tl
+ }
+ \exp_args:No \str_if_in:nnT { \l_tmpz_tl } { . }
+ {
+ \regex_replace_all:nnN { \. } { \/\. } \l_tmpz_tl
+ }
+ \exp_args:No \str_if_in:nnT { \l_tmpz_tl } { , }
+ {
+ \regex_replace_all:nnN { \, } { \/\, } \l_tmpz_tl
+ }
+ \exp_args:No \str_if_in:nnT { \l_tmpz_tl } { ! }
+ {
+ \regex_replace_all:nnN { \! } { \/\! } \l_tmpz_tl
+ }
+ \exp_args:No \str_if_in:nnT { \l_tmpz_tl } { ? }
+ {
+ \regex_replace_all:nnN { \? } { \/\? } \l_tmpz_tl
+ }
+ \exp_args:No \str_if_in:nnT { \l_tmpz_tl } { : }
+ {
+ \regex_replace_all:nnN { \: } { \/\: } \l_tmpz_tl
+ }
+ \exp_args:No \str_if_in:nnT { \l_tmpz_tl } { ; }
+ {
+ \regex_replace_all:nnN { \; } { \/\; } \l_tmpz_tl
+ }
+
+ \exp_args:No \str_if_in:nnTF { \l_tmpz_tl } { / }
+ {
+ \exp_args:NNno \seq_set_split:Nnn \l_tmpb_seq { / } { \l_tmpz_tl }
+ \seq_map_function:NN \l_tmpb_seq \rrk_fn_outer:n
+ }
+ {
+ \exp_args:No \rrk_a_word:n { \l_tmpz_tl }
+ }
+ \int_compare:nT { \seq_count:N \l_tmpa_seq > ##1 }
+ {
+ \space
+ }
+ }
+}
+
+\cs_new:Npn \rrk_fn_outer:n #1
+{
+ \rrk_a_word:n { #1 }
+}
+
+\cs_new_nopar:Npn \rrk_a_word:n #1
+{
+ \seq_gclear:N \g_outsyl_tl
+
+ \regex_match:nnTF { [a-zA-Z0 ] } { #1 }
+ {
+ \exp_args:NNnx \seq_set_split:Nnn \g_tmpa_seq {} { \str_lowercase:f { #1 } }
+
+ \int_step_inline:nn { 9 }
+ {
+ \seq_put_right:Nn \g_tmpa_seq { 0 }
+ }
+
+ \cho_fn:
+
+ \seq_use:Nn \g_outsyl_tl { }
+ }
+ {
+ #1
+ }
+}
+
+\cs_new:Npn \insert_out:n #1
+{
+ \seq_put_right:Nn \g_outsyl_tl { #1 }
+}
+
+\cs_new:Npn \prepare_three_tk:
+{
+ \seq_pop_left:NN \g_tmpa_seq \l_tmpa_tl
+ \seq_pop_left:NN \g_tmpa_seq \l_tmpb_tl
+ \seq_pop_left:NN \g_tmpa_seq \l_tmpc_tl
+}
+
+\cs_new:Npn \cho_fn:
+{
+ \prepare_three_tk:
+
+ \str_case_e:nn { \l_tmpa_tl }
+ {
+% Zero 자음
+ { @ } { \insert_out:n { ᄋ } \restore_c: \restore_b: \restore_a: }
+ { a } { \insert_out:n { ᄋ } \restore_c: \restore_b: \restore_a: }
+ { e } { \insert_out:n { ᄋ } \restore_c: \restore_b: \restore_a: }
+ { i } { \insert_out:n { ᄋ } \restore_c: \restore_b: \restore_a: }
+ { o } { \insert_out:n { ᄋ } \restore_c: \restore_b: \restore_a: }
+ { u } { \insert_out:n { ᄋ } \restore_c: \restore_b: \restore_a: }
+ { w } { \insert_out:n { ᄋ } \restore_c: \restore_b: \restore_a: }
+ { y } { \insert_out:n { ᄋ } \restore_c: \restore_b: \restore_a: }
+
+ { g } { \insert_out:n { ᄀ } \restore_c: \restore_b: }
+ { n } { \insert_out:n { ᄂ } \restore_c: \restore_b: }
+ { d } { \insert_out:n { ᄃ } \restore_c: \restore_b: }
+ { l } { \insert_out:n { ᄅ } \restore_c: \restore_b: }
+ { r } { \insert_out:n { ᄅ } \restore_c: \restore_b: }
+ { m } { \insert_out:n { ᄆ } \restore_c: \restore_b: }
+ { b } { \insert_out:n { ᄇ } \restore_c: \restore_b: }
+ { c } { \insert_out:n { ᄎ } \restore_c: }
+ { h } { \insert_out:n { ᄒ } \restore_c: \restore_b: }
+ { x } { \insert_out:n { ᄋ } \restore_c: \restore_b: }
+
+ { s } { \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { s }
+ { \insert_out:n { ᄊ } \restore_c: }
+ { \insert_out:n { ᄉ } \restore_c: \restore_b: } }
+ { j } { \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { j }
+ { \insert_out:n { ᄍ } \restore_c: }
+ { \insert_out:n { ᄌ } \restore_c: \restore_b: } }
+ { k } { \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { k }
+ { \insert_out:n { ᄁ } \restore_c: }
+ { \insert_out:n { ᄏ } \restore_c: \restore_b: } }
+ { t } { \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { t }
+ { \insert_out:n { ᄄ } \restore_c: }
+ { \insert_out:n { ᄐ } \restore_c: \restore_b: } }
+ { p } { \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { p }
+ { \insert_out:n { ᄈ } \restore_c: }
+ { \insert_out:n { ᄑ } \restore_c: \restore_b: } }
+ { - } { \exp_args:Nno \str_if_in:nnTF { aeiouwy@ } { \l_tmpb_tl }
+ { \insert_out:n { ᄋ } \restore_c: \restore_b: }
+ { \insert_out:n { } \restore_c: \restore_b: \cho_fn: }
+ }
+ }
+ \jung_fn:
+}
+
+\cs_new:Npn \jung_fn:
+{
+ \prepare_three_tk:
+
+ \exp_args:No \str_if_eq:nnTF { \l_tmpa_tl } { 0 }
+ { \scan_stop: }
+ {
+ \str_case_e:nn { \l_tmpa_tl }
+ {
+ { i } { \insert_out:n { ᅵ } \restore_c: \restore_b: }
+ { o } { \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { e }
+ { \insert_out:n { ᅬ } \restore_c: }
+ { \insert_out:n { ᅩ } \restore_c: \restore_b: } }
+ { u } { \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { i }
+ { \insert_out:n { ᅴ } \restore_c: }
+ { \insert_out:n { ᅮ } \restore_c: \restore_b: } }
+ { a } { \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { e }
+ { \insert_out:n { ᅢ } \restore_c: }
+ { \insert_out:n { ᅡ } \restore_c: \restore_b: } }
+ { e } { \str_case_e:nnF { \l_tmpb_tl }
+ {
+ { o } { \insert_out:n { ᅥ } \restore_c: }
+ { u } { \insert_out:n { ᅳ } \restore_c: }
+ }
+ { \insert_out:n { ᅦ } \restore_c: \restore_b: }
+ }
+ { @ } { \str_case_e:nnF { \l_tmpb_tl }
+ {
+ { @ } { \insert_out:n { ᆢ } \restore_c: }
+ { i } { \insert_out:n { ᆡ } \restore_c: }
+ }
+ { \insert_out:n { ᆞ } \restore_c: \restore_b: }
+ }
+
+ { y } { \str_case_e:nn { \l_tmpb_tl }
+ {
+ { o } { \insert_out:n { ᅭ } \restore_c: }
+ { u } { \insert_out:n { ᅲ } \restore_c: }
+ { a } { \exp_args:No \str_if_eq:nnTF { \l_tmpc_tl } { e }
+ { \insert_out:n { ᅤ } }
+ { \insert_out:n { ᅣ } \restore_c: } }
+ { e } { \exp_args:No \str_if_eq:nnTF { \l_tmpc_tl } { o }
+ { \insert_out:n { ᅧ } }
+ { \insert_out:n { ᅨ } \restore_c: } }
+ }
+ }
+ { w } { \str_case_e:nn { \l_tmpb_tl }
+ {
+ { o } { \insert_out:n { ᅯ } \restore_c: }
+ { i } { \insert_out:n { ᅱ } \restore_c: }
+ { e } { \insert_out:n { ᅰ } \restore_c: }
+ { a } { \exp_args:No \str_if_eq:nnTF { \l_tmpc_tl } { e }
+ { \insert_out:n { ᅫ } }
+ { \insert_out:n { ᅪ } \restore_c: } }
+ }
+ }
+ }
+
+ \jong_fn:
+ }
+}
+
+\cs_new:Npn \prepare_five_tk:
+{
+ \seq_pop_left:NN \g_tmpa_seq \l_tmpa_tl
+ \seq_pop_left:NN \g_tmpa_seq \l_tmpb_tl
+ \seq_pop_left:NN \g_tmpa_seq \l_tmpc_tl
+ \seq_pop_left:NN \g_tmpa_seq \l_tmpd_tl
+ \seq_pop_left:NN \g_tmpa_seq \l_tmpe_tl
+}
+
+\cs_new:Npn \jong_fn:
+{
+ \prepare_five_tk:
+
+ \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { 0 }
+ {
+ \exp_args:Nx \insert_jong:n { \l_tmpa_tl }
+ }
+ {
+ \exp_args:Nno \str_if_in:nnTF { aeiouwy@ } { \l_tmpb_tl }
+ {
+ \restore_e: \restore_d: \restore_c: \restore_b: \restore_a:
+ \cho_fn:
+ }
+ {
+ \exp_args:Nno \str_if_in:nnTF { aeiouwy@ } { \l_tmpc_tl }
+ {
+ \restore_e: \restore_d: \restore_c: \restore_b: \restore_a:
+ \take_jong_two:
+ }
+ {
+ \exp_args:Nno \str_if_in:nnTF { aeiouwy@ } { \l_tmpd_tl }
+ {
+ \restore_e: \restore_d: \restore_c: \restore_b: \restore_a:
+ \take_jong_three:
+ }
+ {
+ \exp_args:Nno \str_if_in:nnTF { aeiouwy@ } { \l_tmpe_tl }
+ {
+ \exp_args:Nx \insert_jong:n { \l_tmpa_tl \l_tmpb_tl }
+% \exp_args:Nx \insert_out:n { \l_tmpc_tl \l_tmpd_tl }
+ \restore_e: \restore_d: \restore_c:
+ \cho_fn:
+ }
+ {
+ \restore_e: \restore_d: \restore_c: \restore_b: \restore_a:
+ \take_jong_four:
+ }
+ }
+ }
+ }
+ }
+}
+
+\cs_new:Npn \take_jong_four:
+{
+ \prepare_five_tk:
+ \exp_args:No \str_if_eq:nnTF { \l_tmpa_tl } { 0 }
+ { \scan_stop: }
+ {
+ \exp_args:Nx \insert_jong:n { \tl_use:N \l_tmpa_tl \tl_use:N \l_tmpb_tl }
+ \restore_e: \restore_d: \restore_c:
+ \cho_fn:
+ }
+}
+
+\cs_new:Npn \insert_jong:n #1
+{
+ \str_case:nn { #1 }
+ {
+ { kk } { \insert_out:n { ᆩ } }
+ { gs } { \insert_out:n { ᆪ } }
+ { g } { \insert_out:n { ᆨ } }
+ { nj } { \insert_out:n { ᆬ } }
+ { nh } { \insert_out:n { ᆭ } }
+ { n } { \insert_out:n { ᆫ } }
+ { d } { \insert_out:n { ᆮ } }
+ { lg } { \insert_out:n { ᆰ } }
+ { lm } { \insert_out:n { ᆱ } }
+ { lb } { \insert_out:n { ᆲ } }
+ { ls } { \insert_out:n { ᆳ } }
+ { lt } { \insert_out:n { ᆴ } }
+ { lp } { \insert_out:n { ᆵ } }
+ { lh } { \insert_out:n { ᆶ } }
+ { l } { \insert_out:n { ᆯ } }
+ { m } { \insert_out:n { ᆷ } }
+ { bs } { \insert_out:n { ᆹ } }
+ { b } { \insert_out:n { ᆸ } }
+ { ss } { \insert_out:n { ᆻ } }
+ { s } { \insert_out:n { ᆺ } }
+ { ng } { \insert_out:n { ᆼ } }
+ { j } { \insert_out:n { ᆽ } }
+ { ch } { \insert_out:n { ᆾ } }
+ { k } { \insert_out:n { ᆿ } }
+ { t } { \insert_out:n { ᇀ } }
+ { p } { \insert_out:n { ᇁ } }
+ { h } { \insert_out:n { ᇂ } }
+ { / } { \insert_out:n { 0 } }
+ }
+}
+
+\cs_new:Npn \take_jong_three:
+{
+ \prepare_three_tk:
+ \exp_args:No \str_if_eq:nnTF { \l_tmpa_tl } { 0 }
+ { \scan_stop: }
+ {
+%% XX-
+ \exp_args:No \str_if_eq:nnTF { \l_tmpc_tl } { - }
+ {
+ \exp_args:Nx \insert_jong:n { \l_tmpa_tl \l_tmpb_tl }
+ \restore_c:
+ }
+ {
+ \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { - }
+ {
+ \exp_args:Nx \insert_jong:n { \l_tmpa_tl }
+ \restore_c: \restore_b:
+ }
+ {
+ \check_jong_sub:
+ }
+ }
+ \cho_fn:
+ }
+}
+
+
+\cs_new:Npn \check_jong_sub:
+{
+ \exp_args:Noo \str_if_eq:nnTF { \l_tmpb_tl } { \l_tmpc_tl }
+ {
+ \exp_args:Noo \str_if_eq:nnTF { \l_tmpa_tl } { \l_tmpb_tl } %%% sss
+ {
+ \exp_args:Nx \insert_jong:n { \l_tmpa_tl \l_tmpb_tl } %% ss-s
+ \restore_c:
+ }
+ {
+ \exp_args:Nno \str_if_in:nnTF { tpkj } { \l_tmpb_tl }
+ {
+ \exp_args:Nx \insert_jong:n { \l_tmpa_tl }
+ \restore_c: \restore_b:
+ }
+ {
+ \check_jong_sub_last:
+ }
+ }
+ }
+ {
+ \str_if_eq:eeTF { \l_tmpa_tl } { k }
+ {
+ \str_if_eq:eeTF { \l_tmpb_tl } { k } %% kk-g
+ {
+ \exp_args:Nx \insert_jong:n { \l_tmpa_tl \l_tmpb_tl }
+ \restore_c:
+ }
+ {
+ \exp_args:Nx \insert_jong:n { \l_tmpa_tl }
+ \restore_c: \restore_b:
+ }
+ }
+ {
+ \exp_args:No \str_if_eq:nnTF { \l_tmpa_tl } { c } %%% chX
+ {
+ \exp_args:Nx \insert_jong:n { \l_tmpa_tl \l_tmpb_tl }
+ \restore_c:
+ }
+ {
+ \exp_args:No \str_if_eq:nnTF { \l_tmpb_tl } { c } %%% Xch
+ {
+ \exp_args:Nx \insert_jong:n { \l_tmpa_tl }
+ \restore_c: \restore_b:
+ }
+ {
+ \check_jong_sub_last:
+ }
+ }
+ }
+ }
+}
+
+\cs_new:Npn \check_jong_sub_last:
+{
+ \str_case_e:nnTF { \l_tmpa_tl }
+ {
+ { n } { \str_case_e:nn { \l_tmpb_tl }
+ {
+ { j } { }
+ { g } { }
+ { h } { }
+ }
+ }
+ { g } { \str_case_e:nn { \l_tmpb_tl }
+ {
+ { s } { }
+ }
+ }
+ { l } { \str_case_e:nn { \l_tmpb_tl }
+ {
+ { g } { }
+ { m } { }
+ { b } { }
+ { s } { }
+ { t } { }
+ { p } { }
+ { h } { }
+ }
+ }
+ { b } { \str_case_e:nn { \l_tmpb_tl }
+ {
+ { s } { }
+ }
+ }
+ { s } { \str_case_e:nn { \l_tmpb_tl }
+ {
+ { s } { }
+ }
+ }
+ }
+ {
+ \exp_args:Nx \insert_jong:n { \l_tmpa_tl \l_tmpb_tl }
+ \restore_c:
+ }
+ {
+ \exp_args:Nx \insert_jong:n { \l_tmpa_tl }
+ \restore_c: \restore_b:
+ }
+}
+
+\cs_new:Npn \take_jong_two:
+{
+ \prepare_three_tk:
+ \exp_args:No \str_if_eq:nnTF { \l_tmpa_tl } { 0 }
+ { \scan_stop: }
+ {
+ \exp_args:Noo \str_if_eq:nnTF { \l_tmpa_tl } { \l_tmpb_tl }
+ {
+ \exp_args:Nno \str_if_in:nnTF { tpkj } { \l_tmpa_tl }
+ { \restore_c: \restore_b: \restore_a: }
+ {
+ \exp_args:No \str_if_eq:nnTF { \l_tmpa_tl } { c }
+ { \restore_c: \restore_b: \restore_a: }
+ { \exp_args:Nx \insert_jong:n { \l_tmpa_tl }
+ \restore_c: \restore_b: }
+ }
+ }
+ {
+ \exp_args:No \str_if_eq:nnTF { \l_tmpa_tl } { c }
+ { \restore_c: \restore_b: \restore_a: }
+ { \exp_args:Nx \insert_jong:n { \l_tmpa_tl }
+ \restore_c: \restore_b: }
+ }
+ }
+ \cho_fn:
+}
+
+\cs_new:Npn \restore_c:
+{
+ \exp_args:NNx \seq_put_left:Nn \g_tmpa_seq { \tl_use:N \l_tmpc_tl }
+}
+
+\cs_new:Npn \restore_b:
+{
+ \exp_args:NNx \seq_put_left:Nn \g_tmpa_seq { \tl_use:N \l_tmpb_tl }
+}
+
+\cs_new:Npn \restore_a:
+{
+ \exp_args:NNx \seq_put_left:Nn \g_tmpa_seq { \tl_use:N \l_tmpa_tl }
+}
+
+\cs_new:Npn \restore_d:
+{
+ \exp_args:NNx \seq_put_left:Nn \g_tmpa_seq { \tl_use:N \l_tmpd_tl }
+}
+
+\cs_new:Npn \restore_e:
+{
+ \exp_args:NNx \seq_put_left:Nn \g_tmpa_seq { \tl_use:N \l_tmpe_tl }
+}
+
+\cs_new:Npn \restore_five:
+{
+ \restore_e: \restore_d: \restore_c: \restore_b: \restore_a:
+}
+
+\endinput
+
+%% end of file pmhanguljamo-rrk.tex
Property changes on: trunk/Master/texmf-dist/tex/latex/pmhanguljamo/pmhanguljamo-rrk.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/pmhanguljamo/pmhanguljamo.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pmhanguljamo/pmhanguljamo.sty 2020-02-06 19:44:26 UTC (rev 53692)
+++ trunk/Master/texmf-dist/tex/latex/pmhanguljamo/pmhanguljamo.sty 2020-02-06 20:42:52 UTC (rev 53693)
@@ -22,8 +22,8 @@
\RequirePackage{xparse}
\ProvidesExplPackage
{pmhanguljamo}
- {2020/01/28}
- {v0.3}
+ {2020/02/05}
+ {v0.3.2}
{Poorman's Hangul Jamo Input Method}
\RequirePackage{l3keys2e}
@@ -36,12 +36,140 @@
\ProcessKeysOptions { pmhanguljamo }
+\NewDocumentCommand \jmcc { m }
+{
+ \prop_item:Nn \c_compjamo_prop { #1 }
+}
+
+\prop_const_from_keyval:Nn \c_compjamo_prop
+{
+ G = \char"3131,
+ GG = \char"3132,
+ GS = \char"3133,
+ N = \char"3134,
+ NJ = \char"3135,
+ NH = \char"3136,
+ D = \char"3137,
+ DD = \char"3138,
+ R = \char"3139,
+ RG = \char"313A,
+ RM = \char"313B,
+ RB = \char"313C,
+ RS = \char"313D,
+ RT = \char"313E,
+ RP = \char"313F,
+ RH = \char"3140,
+ M = \char"3141,
+ B = \char"3142,
+ BB = \char"3143,
+ BS = \char"3144,
+ S = \char"3145,
+ SS = \char"3146,
+ X = \char"3147,
+ J = \char"3148,
+ JJ = \char"3149,
+ C = \char"314A,
+ K = \char"314B,
+ T = \char"314C,
+ P = \char"314D,
+ H = \char"314E,
+ A = \char"314F,
+ AY = \char"3150,
+ AI = \char"3150,
+ YA = \char"3151,
+ YAY = \char"3152,
+ YAI = \char"3152,
+ E = \char"3153,
+ EY = \char"3154,
+ EI = \char"3154,
+ YE = \char"3155,
+ YEY = \char"3156,
+ YEI = \char"3156,
+ O = \char"3157,
+ OA = \char"3158,
+ OAY = \char"3159,
+ OAI = \char"3159,
+ OY = \char"315A,
+ OI = \char"315A,
+ YO = \char"315B,
+ U = \char"315C,
+ UE = \char"315E,
+ UEY = \char"315E,
+ UEI = \char"315E,
+ UY = \char"315F,
+ UI = \char"315F,
+ YU = \char"3160,
+ V = \char"3161,
+ VI = \char"3162,
+ VY = \char"3162,
+ I = \char"3163,
+ NN = \char"3165,
+ ND = \char"3166,
+ NS = \char"3167,
+ NZ = \char"3168,
+ RGS = \char"3169,
+ RD = \char"316A,
+ RBS = \char"316B,
+ RZ = \char"316C,
+ RF = \char"316D,
+ MB = \char"316E,
+ MS = \char"316F,
+ MZ = \char"3170,
+ MX = \char"3171,
+ BG = \char"3172,
+ BD = \char"3173,
+ BSG = \char"3174,
+ BSD = \char"3175,
+ BJ = \char"3176,
+ BT = \char"3177,
+ BX = \char"3178,
+ BBX = \char"3179,
+ SG = \char"317A,
+ SN = \char"317B,
+ SD = \char"317C,
+ SB = \char"317D,
+ SJ = \char"317E,
+ Z = \char"317F,
+ XX = \char"3180,
+ Q = \char"3181,
+ QS = \char"3182,
+ QZ = \char"3183,
+ PX = \char"3184,
+ HH = \char"3185,
+ F = \char"3186,
+ YOYA = \char"3187,
+ YOYAY = \char"3188,
+ YOI = \char"3189,
+ YUYE = \char"318A,
+ YUYEY = \char"318B,
+ YUI = \char"318C,
+ W = \char"318D,
+ WI = \char"318E,
+ @ = \char"318D,
+ @I = \char"318E,
+ @@ = \double_arae_a,
+ WW = \double_arae_a
+}
+
+\newcommand*\double_arae_a{%
+ \hbox_set:Nn \l_tmpa_box { \char"318D }
+ \dim_set:Nn \l_tmpa_dim { \box_wd:N \l_tmpa_box + 2pt }
+ \makebox[\l_tmpa_dim][c]{ \char"318D\kern-.6em\char"318D }
+}
+
+%%%% if RRK is given, then input pmhanguljamo-rrk.sty
+%%%% and stop.
+
\bool_if:NT \opt_rrkopt_bool
{
- \file_input:n { pmhanguljamo-rrk.tex }
+ \file_input:n { pmhanguljamo-rrk.sty }
\endinput
}
+%%%%
+%%%% pm input method:
+%%%%
+
\NewDocumentCommand \jamotextcmd { m }
{
\tl_set:Nn \l_tmpa_tl { #1 / }
@@ -166,11 +294,6 @@
\build_syl_fn:n
}
-\NewDocumentCommand \jmcc { m }
-{
- \prop_item:Nn \c_compjamo_prop { #1 }
-}
-
\NewDocumentCommand \ColonMark {} { : }
\NewDocumentCommand \SemiColonMark {} { ; }
\NewDocumentCommand \SlashMark {} { / }
@@ -541,113 +664,5 @@
| = {}
}
-\prop_const_from_keyval:Nn \c_compjamo_prop
-{
- G = \char"3131,
- GG = \char"3132,
- GS = \char"3133,
- N = \char"3134,
- NJ = \char"3135,
- NH = \char"3136,
- D = \char"3137,
- DD = \char"3138,
- R = \char"3139,
- RG = \char"313A,
- RM = \char"313B,
- RB = \char"313C,
- RS = \char"313D,
- RT = \char"313E,
- RP = \char"313F,
- RH = \char"3140,
- M = \char"3141,
- B = \char"3142,
- BB = \char"3143,
- BS = \char"3144,
- S = \char"3145,
- SS = \char"3146,
- X = \char"3147,
- J = \char"3148,
- JJ = \char"3149,
- C = \char"314A,
- K = \char"314B,
- T = \char"314C,
- P = \char"314D,
- H = \char"314E,
- A = \char"314F,
- AY = \char"3150,
- AI = \char"3150,
- YA = \char"3151,
- YAY = \char"3152,
- YAI = \char"3152,
- E = \char"3153,
- EY = \char"3154,
- EI = \char"3154,
- YE = \char"3155,
- YEY = \char"3156,
- YEI = \char"3156,
- O = \char"3157,
- OA = \char"3158,
- OAY = \char"3159,
- OAI = \char"3159,
- OY = \char"315A,
- OI = \char"315A,
- YO = \char"315B,
- U = \char"315C,
- UE = \char"315E,
- UEY = \char"315E,
- UEI = \char"315E,
- UY = \char"315F,
- UI = \char"315F,
- YU = \char"3160,
- V = \char"3161,
- VI = \char"3162,
- VY = \char"3162,
- I = \char"3163,
- NN = \char"3165,
- ND = \char"3166,
- NS = \char"3167,
- NZ = \char"3168,
- RGS = \char"3169,
- RD = \char"316A,
- RBS = \char"316B,
- RZ = \char"316C,
- RF = \char"316D,
- MB = \char"316E,
- MS = \char"316F,
- MZ = \char"3170,
- MX = \char"3171,
- BG = \char"3172,
- BD = \char"3173,
- BSG = \char"3174,
- BSD = \char"3175,
- BJ = \char"3176,
- BT = \char"3177,
- BX = \char"3178,
- BBX = \char"3179,
- SG = \char"317A,
- SN = \char"317B,
- SD = \char"317C,
- SB = \char"317D,
- SJ = \char"317E,
- Z = \char"317F,
- XX = \char"3180,
- Q = \char"3181,
- QS = \char"3182,
- QZ = \char"3183,
- PX = \char"3184,
- HH = \char"3185,
- F = \char"3186,
- YOYA = \char"3187,
- YOYAY = \char"3188,
- YOI = \char"3189,
- YUYE = \char"318A,
- YUYEY = \char"318B,
- YUI = \char"318C,
- W = \char"318D,
- WI = \char"318E,
- @ = \char"318D,
- @I = \char"318E
-}
-
\endinput
More information about the tex-live-commits
mailing list.