diff options
Diffstat (limited to 'language/korean/pmhanguljamo/tex/pmhanguljamo-frkim.code.tex')
-rw-r--r-- | language/korean/pmhanguljamo/tex/pmhanguljamo-frkim.code.tex | 97 |
1 files changed, 51 insertions, 46 deletions
diff --git a/language/korean/pmhanguljamo/tex/pmhanguljamo-frkim.code.tex b/language/korean/pmhanguljamo/tex/pmhanguljamo-frkim.code.tex index 9b3283659f..cd005323bf 100644 --- a/language/korean/pmhanguljamo/tex/pmhanguljamo-frkim.code.tex +++ b/language/korean/pmhanguljamo/tex/pmhanguljamo-frkim.code.tex @@ -1,5 +1,7 @@ %% code part of frkim +%% v1.0.2 (\frkhangulfont, \bf) %% v1.0.1 (\AddRule) +%% v1.1 (\jamoul) %% \char_set_catcode_other:N \@ @@ -34,13 +36,26 @@ \symbol{"0027} } -%\NewDocumentCommand \frkhangulfont {} { -% Noto~Serif~KR -%} -% -%\NewDocumentCommand \frkhangulfontfeature {} { -% Script=Hangul, Renderer=OpenType, Ligatures=TeX -%} +%%% jamoul cmd +\tl_new:N \l_frkjamoulcmd_tl + +\tl_set:Nn \frk_space_here { \exp_args:No \use:c { \l_frkjamoulcmd_tl } { \c_space_token } } +\tl_set:Nn \l_frkjamoulcmd_tl {} + +\NewDocumentCommand \jamoul { m m } +{ + \group_begin: + \bool_if:NTF \opt_luatexko_loaded + { + \use:c { #1 } { \hg { #2 } } + } + { + \tl_set:Nn \l_frkjamoulcmd_tl { #1 } + \hg { #2 } + } + \group_end: +} + \DeclareDocumentCommand \setpmhangulfont { o m o } { \IfValueTF { #1 } @@ -62,17 +77,7 @@ } \NewDocumentCommand \hg { m } -{ - \group_begin: - - \cs_if_exist:NTF \hangulfontspec - { - \exp_last_unbraced:NNf \hangulfontspec [ \frkhangulfontfeature ] { \frkhangulfont } - } - { - \exp_last_unbraced:NNf \fontspec [ \frkhangulfontfeature ] { \frkhangulfont } - } - +{ \regex_split:nnN { \s } { #1 } \l_tmpa_seq \seq_map_indexed_inline:Nn \l_tmpa_seq @@ -80,11 +85,9 @@ \_process_word:n { ##2 } \int_compare:nT { ##1 < \seq_count:N \l_tmpa_seq } - { {}~ } + { \frk_space_here } } - \group_end: - } \cs_new:Npn \_process_word:n #1 @@ -359,6 +362,32 @@ \cs_new:Nn \build_syl: { + \group_begin: + \cs_if_exist:NTF \hangulfontspec + { + \exp_last_unbraced:NNf \hangulfontspec [ \frkhangulfontfeature ] { \frkhangulfont } + } + { + \exp_last_unbraced:NNf \fontspec [ \frkhangulfontfeature ] { \frkhangulfont } + } + + \tl_if_empty:NTF \l_frkjamoulcmd_tl + { + \build_syl_main: + } + { + \sys_if_engine_xetex:T { \allowbreak } + \exp_args:No \use:c { \l_frkjamoulcmd_tl } { + \build_syl_main: + } + } + \group_end: + + \tl_clear:N \l_delayedtoken_tl +} + +\cs_new:Nn \build_syl_main: +{ \bool_if:NF \opt_zeroisx_bool { \regex_replace_all:nnN { ' } { x } \g_cho_tl @@ -391,16 +420,12 @@ } } -%%%%>>>> -%%% [\g_cho_tl|\g_jun_tl|\g_jon_tl] - \tl_gclear:N \g_jun_tl \tl_gclear:N \g_jon_tl \tl_if_empty:NF \l_delayedtoken_tl { \l_delayedtoken_tl - \tl_clear:N \l_delayedtoken_tl } } @@ -532,13 +557,6 @@ { \seq_set_split:Nnn \l_inputpar_seq { \par } { #1 } \seq_map_indexed_function:NN \l_inputpar_seq \jamo_word:nn -% \seq_set_split:Nnn \l_inputword_seq { ~ } { #1 } -% \seq_map_indexed_inline:Nn \l_inputword_seq -% { -% \jamotextcmd { ##2 } -% \int_compare:nT { ##1 < \seq_count:N \l_inputword_seq } -% { \space } -% } }{} \cs_new:Npn \jamo_word:nn #1 #2 @@ -569,24 +587,11 @@ } \int_compare:nT { ##1 < \seq_count:N \l_inparpar_seq } - { \space } + { \frk_space_here } } \int_compare:nT { #1 < \seq_count:N \l_inputpar_seq } { \par } } -% -%\NewDocumentEnvironment { jamotext } { +b } -%{ -% \seq_set_split:Nnn \l_tmpa_seq { \par } { #1 } -% \seq_map_indexed_inline:Nn \l_tmpa_seq -% { -% \hg{ ##2 } -% \int_compare:nT { ##1 < \seq_count:N \l_tmpa_seq } -% { \par } -% } -%}{} - - \endinput |