diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-luatex.def')
-rw-r--r-- | Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-luatex.def | 76 |
1 files changed, 70 insertions, 6 deletions
diff --git a/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-luatex.def b/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-luatex.def index 75208abd224..5d0e587c18d 100644 --- a/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-luatex.def +++ b/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-luatex.def @@ -24,10 +24,10 @@ %% %% --------------------------------------------------------------------- %% -\GetIdInfo$Id: ctex.dtx 4819efe 2020-05-16 21:20:43 +0800 Qing Lee <sobenlee@gmail.com> $ +\GetIdInfo$Id: ctex.dtx 76d4e94 2020-06-06 23:22:18 +0800 Qing Lee <sobenlee@gmail.com> $ {LuaLaTeX adapter (CTEX)} \ProvidesExplFile{ctex-engine-luatex.def} - {\ExplFileDate}{2.5.2}{\ExplFileDescription} + {\ExplFileDate}{2.5.3}{\ExplFileDescription} \msg_new:nnn { ctex } { luatexja-loaded } { Package~`luatexja'~can~not~be~loaded~before~`ctex'.\\ @@ -62,7 +62,7 @@ "A960-"A97F, "AC00-"D7FF} \ltjdefcharrange{8}{"A7, "A8, "B0, "B1, "B4, "B6, "D7, "F7} \ltjdefcharrange{9}{% - "2018, "2019, "201C, "201D, "2013, "2014, "2025, "2026, "2027, "2E3A} + "00B7, "2018, "2019, "201C, "201D, "2013, "2014, "2025, "2026, "2027, "2E3A} \ltjsetparameter{jacharrange={-1, -2, -3, -4, -5, +6, +7, -8, +9}} \directlua{for x=128,255 do luatexja.math.is_math_letters[x] = true end} \directlua{ @@ -76,9 +76,8 @@ jcharwidowpenalty=500, differentjfm=paverage } \ExplSyntaxOn -\RequirePackage { xunicode-addon } -\AtBeginUTFCommand { \CTEX@beginallalchar } -\AtEndUTFCommand { \CTEX@endallalchar } +\cs_new_protected:Npn \CTEX@alchar #1 + { \CTEX@beginallalchar #1 \CTEX@endallalchar } \cs_new_protected:Npn \CTEX@beginallalchar { \group_begin: @@ -87,6 +86,71 @@ } \cs_new_protected:Npn \CTEX@endallalchar { \group_end: } +\cs_new_protected:Npn \CTEX@chardef@text@cmd #1 + { + \cs_set_eq:NN \@ifdefinable \@@ifdefinable + \tl_set:Nn \l__ctex_ltj_cmd_tl {#1} + \tex_afterassignment:D \__ctex_ltj_chardef_text_cmd: + \tex_chardef:D #1 + } +\tl_new:N \l__ctex_ltj_cmd_tl +\cs_new_protected:Npn \__ctex_ltj_chardef_text_cmd: + { \exp_after:wN \__ctex_ltj_chardef_text_cmd_aux:N \l__ctex_ltj_cmd_tl } +\cs_new_protected:Npn \__ctex_ltj_chardef_text_cmd_aux:N #1 + { + \int_compare:nNnF {#1} < { "80 } + { \cs_set_protected:Npx #1 { \CTEX@alchar { \tex_Uchar:D #1 } } } + } +\cs_new_protected:Npn \CTEX@text@composite@x #1#2 + { + \CTEX@beginallalchar + \cs_if_exist_use:NF #1 {#2} + \CTEX@endallalchar + } +\cs_new_protected:Npx \CTEX@add@unicode@accent #1#2 + { + \CTEX@beginallalchar + \exp_not:N \tl_if_blank:nTF {#2} { \tex_Uchar:D "A0 ~ } {#2} + \exp_not:N \tex_Uchar:D \tex_numexpr:D #1 \scan_stop: + \CTEX@endallalchar + } +\cs_new_protected:Npn \CTEX@patch@text@cmd #1 + { + \exp_args:NNc \__ctex_ltj_patch_text_cmd:NN #1 + { \UnicodeEncodingName \token_to_str:N #1 } + } +\cs_new_protected:Npn \__ctex_ltj_patch_text_cmd:NN #1#2 + { + \cs_set_eq:NN \CTEX@textcmd #2 + \ctex_preto_cmd:NnnTF \CTEX@textcmd + { \ExplSyntaxOff \makeatletter } + { \CTEX@beginallalchar } + { + \ctex_appto_cmd:NnnTF \CTEX@textcmd + { \ExplSyntaxOff \makeatletter } + { \CTEX@endallalchar } + { \cs_set_eq:NN #2 \CTEX@textcmd } + { \ctex_patch_failure:N #1 } + } + { \ctex_patch_failure:N #1 } + } +\cs_new_protected:Npn \CTEX@patch@tunec + { + \cs_set_eq:NN \chardef@text@cmd \CTEX@chardef@text@cmd + \ctex_file_input:n { tuenc.def } + \cs_set_eq:NN \@text@composite@x \CTEX@text@composite@x + \cs_set_eq:NN \add@unicode@accent \CTEX@add@unicode@accent + \CTEX@patch@text@cmd \textasteriskcentered + } +\@ifpackageloaded { xunicode } + { } + { \CTEX@patch@tunec } +\ctex_at_end_package:nn { xunicode } + { + \RequirePackage { xunicode-addon } + \AtBeginUTFCommand { \CTEX@beginallalchar } + \AtEndUTFCommand { \CTEX@endallalchar } + } \ctex_at_end_package:nn { listings } { \RequirePackage { lltjp-listings } } \group_begin: |