|
@@ -25,17 +25,50 @@ |
|
|
|
|
|
%% --- User commands --- |
|
|
\ExplSyntaxOn |
|
|
|
|
|
\cs_new:Nn \blxja_if_CJKtoken:nTF { |
|
|
\token_if_cs:NTF #1 {#3} { |
|
|
\int_compare:nNnTF {`#1} > {"2E7F} {#2} {#3} % ToDo: change CJK chars range |
|
|
} |
|
|
} |
|
|
\cs_new:Nn \blxja_if_CJKtoken:nT {\blxja_if_CJKtoken:nTF {#1} {#2} {}} |
|
|
\DeclareDocumentCommand{\ifCJKtokens}{ m m m }{ |
|
|
\tl_set:Nx \l_tmpa_tl {#1} |
|
|
\tl_set:Nx \l_tmpa_tl { \tl_to_str:n {#1} } |
|
|
\bool_set_false:N \l_tmpa_bool |
|
|
\tl_map_inline:Nn \l_tmpa_tl { |
|
|
\token_if_cs:NF ##1 { |
|
|
\int_compare:nNnT {`##1} > {"2E7F} {\bool_set_true:N \l_tmpa_bool} % ToDo: change CJK chars range |
|
|
\blxja_if_CJKtoken:nT {##1} {\bool_set_true:N \l_tmpa_bool} |
|
|
} |
|
|
} |
|
|
\bool_if:NTF \l_tmpa_bool {#2} {#3} |
|
|
} |
|
|
\cs_generate_variant:Nn \blxja_if_CJKtoken:nTF {fTF} |
|
|
\cs_generate_variant:Nn \tl_if_head_is_group:nTF {oTF} |
|
|
\DeclareDocumentCommand{\ifbeginwithCJKtoken}{ m m m }{ |
|
|
\tl_set:Nf \l_tmpa_tl { \tl_head:f {#1} } |
|
|
\tl_if_head_is_group:oTF { \l_tmpa_tl }{ |
|
|
\tl_set:Nf \l_tmpa_tl { \exp_last_unbraced:No \use:n \l_tmpa_tl } |
|
|
\ifbeginwithCJKtoken { \l_tmpa_tl } {#2} {#3} |
|
|
}{ |
|
|
\blxja_if_CJKtoken:fTF { \l_tmpa_tl } {#2} {#3} |
|
|
} |
|
|
} |
|
|
\cs_generate_variant:Nn \tl_if_single:nTF {oTF} |
|
|
\DeclareDocumentCommand{\ifendwithCJKtoken}{ m m m }{ |
|
|
\tl_set:Nf \l_tmpa_tl { #1 } |
|
|
\tl_if_single:oTF \l_tmpa_tl {} { |
|
|
\tl_set:Nf \l_tmpa_tl { \tl_tail:f {\l_tmpa_tl} } |
|
|
} |
|
|
\tl_if_head_is_group:oTF { \l_tmpa_tl }{ |
|
|
\tl_set:Nf \l_tmpa_tl { \exp_last_unbraced:No \use:n \l_tmpa_tl } |
|
|
\ifendwithCJKtoken { \l_tmpa_tl } {#2} {#3} |
|
|
}{ |
|
|
\tl_if_single:oTF {\l_tmpa_tl} { |
|
|
\blxja_if_CJKtoken:fTF { \l_tmpa_tl } {#2} {#3} |
|
|
} { |
|
|
\ifendwithCJKtoken { \l_tmpa_tl } {#2} {#3} |
|
|
} |
|
|
} |
|
|
} |
|
|
\ExplSyntaxOff |
|
|
|
|
|
\DeclareDocumentCommand{\replacecommand}{ s }{% |
|
|