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.