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 | 48 |
1 files changed, 39 insertions, 9 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 4e12ae932c8..4bc477718ac 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 @@ -26,10 +26,10 @@ %% %% ------------------------------------------------------------------------------ %% -\GetIdInfo$Id: ctex.dtx c498d8c 2017-04-01 21:33:50 +0800 Qing Lee <sobenlee@gmail.com> $ +\GetIdInfo$Id: ctex.dtx e177d82 2017-08-07 16:58:14 +0800 Qing Lee <sobenlee@gmail.com> $ {LuaLaTeX adapter (CTEX)} \ProvidesExplFile{ctex-engine-luatex.def} - {\ExplFileDate}{2.4.9}{\ExplFileDescription} + {\ExplFileDate}{2.4.10}{\ExplFileDescription} \msg_new:nnn { ctex } { luatexja-loaded } { Package~`luatexja'~can~not~be~loaded~before~`ctex'.\\ @@ -84,9 +84,11 @@ \AtEndUTFCommand { \group_end: } \cs_set_protected:Npn \fontspec_visible_space: { - \font_glyph_if_exist:NnTF \font { "2423 } - { \ltjalchar "2423 \exp_stop_f: } - { \fontspec_visible_space_fallback: } + \etex_iffontchar:D \tex_font:D "2423 \exp_stop_f: + \ltjalchar "2423 \exp_stop_f: + \else: + \fontspec_visible_space_fallback: + \fi: } \ctex_at_end_package:nn { listings } { @@ -415,7 +417,7 @@ { \ctex_ltj_switch_family:x {#1} \tex_ignorespaces:D } \cs_new_protected_nopar:Npn \ctex_ltj_switch_family:n #1 { - \ctex_ltj_family_if_exist:xNTF {#1} \CJK@family + \ctex_ltj_family_if_exist:nNTF {#1} \CJK@family { \tl_set:Nn \l_ctex_ltj_family_tl {#1} \selectfont @@ -424,9 +426,9 @@ } \tl_new:N \l_ctex_ltj_family_tl \cs_generate_variant:Nn \ctex_ltj_switch_family:n { x } -\prg_new_protected_conditional:Npnn \ctex_ltj_family_if_exist:xN #1#2 { T , F , TF } +\prg_new_protected_conditional:Npnn \ctex_ltj_family_if_exist:nN #1#2 { T , F , TF } { - \prop_get:NxNTF \g__ctex_ltj_family_name_prop {#1} #2 + \prop_get:NnNTF \g__ctex_ltj_family_name_prop {#1} #2 { \prg_return_true: } { \cs_if_exist_use:cTF { \__ctex_ltj_family_csname:n {#1} } @@ -437,7 +439,9 @@ { \prg_return_false: } } } -\cs_generate_variant:Nn \prop_get:NnNTF { Nx } +\cs_generate_variant:Nn \ctex_ltj_family_if_exist:nNT { x } +\cs_generate_variant:Nn \ctex_ltj_family_if_exist:nNF { x } +\cs_generate_variant:Nn \ctex_ltj_family_if_exist:nNTF { x } \cs_new_protected_nopar:Npn \__ctex_ltj_family_unknown_warning:n #1 { \prop_if_empty:NF \g__ctex_ltj_family_font_name_prop @@ -1110,6 +1114,32 @@ \skip_set:Nn \l__ctex_xkanjiskip_skip { \ltjgetparameter { xkanjiskip } } \ctex_add_to_selectfont:n { \ctex_update_xkanjiskip: } +\dim_new:N \cht +\dim_new:N \cdp +\dim_new:N \cwd +\newluafunction \g__ctex_kanjisize_func +\group_begin: +\char_set_catcode_space:n { 32 } +\lua_now_x:n + { + local nulltable = { } + local t = lua.get_functions_table() + local fmt = luatexja.jfont.font_metric_table + local getattribute = tex.getattribute + local setdimen = tex.setdimen + t[\int_use:N \g__ctex_kanjisize_func] = function () + local ft = fmt[getattribute('ltj@curjfnt')] or nulltable + local ft = ft and ft.char_type or nulltable + local fk = ft and ft[0] or nulltable + setdimen('cht', fk.height or 0) + setdimen('cdp', fk.depth or 0) + setdimen('cwd', fk.width or ft.zw or 0) + end + } +\group_end: +\cs_new_protected_nopar:Npn \ctex_update_kanjisize: + { \luatex_luafunction:D \g__ctex_kanjisize_func } +\ctex_add_to_selectfont:n { \ctex_update_kanjisize: } \keys_define:nn { ctex } { space .code:n = |