diff options
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty')
-rw-r--r-- | Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty | 85 |
1 files changed, 57 insertions, 28 deletions
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty index bab6a2e918d..91da63156f2 100644 --- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty +++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty @@ -6,7 +6,7 @@ %% %% xeCJK.dtx (with options: `fntef') %% -%% $Id: xeCJK.dtx 510 2013-08-15 23:20:17Z sobenlee $ +%% $Id: xeCJK.dtx 525 2013-11-11 06:32:00Z sobenlee $ %% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ %% ----------------------------------------------------------------- %% Author: @@ -33,11 +33,11 @@ %% \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} -\GetIdInfo$Id: xeCJK.dtx 510 2013-08-15 23:20:17Z sobenlee $ +\GetIdInfo$Id: xeCJK.dtx 525 2013-11-11 06:32:00Z sobenlee $ {xeCJK patch file for ulem/CJKfntef} \ProvidesExplPackage {xeCJKfntef} - {\ExplFileDate}{3.2.6}{\ExplFileDescription} + {\ExplFileDate}{3.2.7}{\ExplFileDescription} \PassOptionsToPackage { normalem } { ulem } \DeclareOption* { \PassOptionsToPackage { \CurrentOption } { ulem } } \ProcessOptions \scan_stop: @@ -102,7 +102,9 @@ \xeCJK_Boundary_and_Default: \__xeCJK_ulem_Boundary_and_Default: \xeCJK_Boundary_and_NormalSp: \__xeCJK_ulem_Boundary_and_NormalSp: \xeCJK@fix@penalty \__xeCJK_ulem_fix_penalty: + \__xeCJK_punct_kern:n \__xeCJK_ulem_punct_kern:n \__xeCJK_punct_hskip:n \__xeCJK_ulem_punct_hskip:n + \__xeCJK_punct_breakable_kern:n \__xeCJK_ulem_punct_breakable_kern:n \__xeCJK_CJK_and_Boundary_aux: \__xeCJK_ulem_CJK_and_Boundary_aux: \__xeCJK_Default_and_FullLeft_glue:N \__xeCJK_ulem_Default_and_FullLeft_glue:N \__xeCJK_Default_and_FullRight_glue:N \__xeCJK_ulem_Default_and_FullRight_glue:N @@ -215,6 +217,7 @@ \UL@stop \__xeCJK_ulem_skip_punct_begin: \__xeCJK_punct_glue:NN \c__xeCJK_left_tl {#1} + \__xeCJK_punct_offset:NN \c__xeCJK_left_tl {#1} \UL@start } { \__xeCJK_ulem_Default_and_FullLeft_glue:N #1 } @@ -225,7 +228,8 @@ { \UL@stop \__xeCJK_ulem_skip_punct_begin: - \int_compare:nNnF \etex_lastnodetype:D = \c_one + \int_compare:nNnTF \etex_lastnodetype:D = \c_one + { \__xeCJK_zero_glue: } { \__xeCJK_punct_glue:NN \c__xeCJK_left_tl {#1} } \UL@start } @@ -240,6 +244,7 @@ \__xeCJK_ulem_skip_punct_begin: \__xeCJK_ulem_ccglue: \__xeCJK_punct_glue:NN \c__xeCJK_left_tl {#1} + \__xeCJK_punct_offset:NN \c__xeCJK_left_tl {#1} \UL@start \__xeCJK_ulem_class_group_begin: } @@ -254,9 +259,13 @@ \__xeCJK_punct_if_long:NTF {#1} { \__xeCJK_ulem_ccglue: } { - \xeCJK_no_break: - \__xeCJK_punct_if_middle:NT {#1} - { \__xeCJK_punct_glue:NN \c__xeCJK_right_tl {#1} } + \__xeCJK_punct_if_middle:NTF {#1} + { + \xeCJK_no_break: + \__xeCJK_punct_glue:NN \c__xeCJK_right_tl {#1} + \__xeCJK_punct_bound_rule:NN \c__xeCJK_left_tl {#1} + } + { \xeCJK_no_break: } } \UL@start } @@ -279,7 +288,7 @@ \__xeCJK_punct_if_middle:NTF \g__xeCJK_last_punct_tl { \xeCJK_get_punct_bounds:NN \c__xeCJK_left_tl \g__xeCJK_last_punct_tl - \__xeCJK_punct_rule:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl + \__xeCJK_punct_bound_rule:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl \xeCJK_class_group_end: \UL@stop \xeCJK_no_break: \__xeCJK_punct_glue:NN \c__xeCJK_left_tl \g__xeCJK_last_punct_tl } @@ -306,6 +315,7 @@ \__xeCJK_punct_rule:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl \xeCJK_class_group_end: \UL@stop + \__xeCJK_punct_offset:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl \__xeCJK_punct_glue:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl \__xeCJK_ulem_skip_punct_end: \UL@start @@ -319,6 +329,7 @@ \__xeCJK_punct_rule:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl \xeCJK_class_group_end: \UL@stop + \__xeCJK_punct_offset:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl \__xeCJK_punct_glue:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl \__xeCJK_ulem_ccglue: \__xeCJK_ulem_skip_punct_end: @@ -333,6 +344,22 @@ { \__xeCJK_ulem_hskip:n } { \__xeCJK_ulem_punct_hskip:n } } +\cs_new_protected_nopar:Npn \__xeCJK_ulem_punct_kern:n + { + \xeCJK_if_ulem_patch:TF + { \__xeCJK_ulem_hskip:n } + { \__xeCJK_ulem_punct_kern:n } + } +\cs_new_protected_nopar:Npn \__xeCJK_ulem_punct_breakable_kern:n #1 + { + \xeCJK_if_ulem_patch:TF + { + \xeCJK_class_group_end: + \UL@stop \__xeCJK_ulem_hskip:n {#1} \UL@start + \__xeCJK_ulem_class_group_begin: + } + { \__xeCJK_ulem_punct_breakable_kern:n {#1} } + } \cs_new_protected_nopar:Npn \__xeCJK_ulem_glue:n #1 { \xeCJK_if_ulem_patch:TF @@ -353,14 +380,14 @@ { \UL@stop \__xeCJK_ulem_restore_CJK_and_Boundary: } \CJK@preUnderdot \__xeCJK_make_under_symbol:n { \CJK@underdotSkip } - \cs_gset_eq:NN \__xeCJK_save_under_dot_CJKsymbol:N \CJKsymbol + \cs_gset_eq:NN \__xeCJK_save_under_CJKsymbol:N \CJKsymbol \cs_set_eq:NN \CJKsymbol \__xeCJK_under_CJKsymbol:N - \__xeCJK_restore_output_CJKsymbol: + \__xeCJK_restore_shipout_CJKsymbol: \bool_if:NT \l__xeCJK_ulem_hook_used_bool { \UL@start } #1 \bool_if:NT \l__xeCJK_ulem_hook_used_bool { \UL@stop } - \cs_set_eq:NN \CJKsymbol \__xeCJK_save_under_dot_CJKsymbol:N - \tex_output:D \exp_after:wN { \l__xeCJK_underdot_output_tl } + \cs_set_eq:NN \CJKsymbol \__xeCJK_save_under_CJKsymbol:N + \tl_clear:N \l__xeCJK_fntef_shipout_tl \CJK@postUnderdot \bool_if:NT \l__xeCJK_ulem_hook_used_bool { \__xeCJK_ulem_restore_CJK_and_Boundary: \UL@start } @@ -381,26 +408,30 @@ \group_begin: \hbox_set:Nn \CJK@underdotBox {#2} \__xeCJK_make_under_symbol:n {#1} - \cs_gset_eq:NN \__xeCJK_save_under_dot_CJKsymbol:N \CJKsymbol + \cs_set_eq:NN \__xeCJK_save_under_CJKsymbol:N \CJKsymbol \cs_set_eq:NN \CJKsymbol \__xeCJK_under_CJKsymbol:N - \__xeCJK_restore_output_CJKsymbol: + \__xeCJK_restore_shipout_CJKsymbol: + \tl_clear:N \l__xeCJK_underdot_shipout_tl #3 \group_end: \tex_ignorespaces:D } -\cs_new_protected:Npn \__xeCJK_restore_output_CJKsymbol: +\cs_new_protected:Npn \__xeCJK_restore_shipout_CJKsymbol: { - \tl_set:Nx \l__xeCJK_underdot_output_tl - { \exp_after:wN \exp_not:n \tex_the:D \tex_output:D } - \tex_output:D \exp_after:wN + \tl_set:Nn \l__xeCJK_fntef_shipout_tl { - \exp_after:wN \cs_set_eq:NN - \exp_after:wN \CJKsymbol - \exp_after:wN \__xeCJK_save_under_dot_CJKsymbol:N - \l__xeCJK_underdot_output_tl + \l__xeCJK_underdot_shipout_tl + \cs_set_eq:NN \CJKsymbol \__xeCJK_save_under_CJKsymbol:N } } -\tl_new:N \l__xeCJK_underdot_output_tl +\tl_new:N \l__xeCJK_fntef_shipout_tl +\tl_new:N \l__xeCJK_underdot_shipout_tl +\tl_set:Nn \l__xeCJK_underdot_shipout_tl + { + \cs_set_eq:NN \CJKf@global \scan_stop: + \int_zero:N \CJK@nest \CJK@postUnderdot + } +\__xeCJK_add_to_shipout:n { \l__xeCJK_fntef_shipout_tl } \cs_new_protected:Npn \__xeCJK_make_under_symbol:n #1 { \hbox_set:Nn \l__xeCJK_tmp_box { ^^^^4e00 } @@ -409,7 +440,7 @@ \skip_vertical:n {#1} \hbox_to_zero:n { - \tex_kern:D - \box_wd:N \l__xeCJK_tmp_box + \tex_kern:D \box_wd:N \l__xeCJK_tmp_box \tex_hss:D \box_use:N \CJK@underdotBox \tex_hss:D } \tex_vss:D @@ -417,10 +448,8 @@ } \cs_new_protected_nopar:Npn \__xeCJK_under_CJKsymbol:N #1 { - \__xeCJK_save_under_dot_CJKsymbol:N {#1} - \hbox_overlap_left:n { \box_use:N \g__xeCJK_under_symbol_box } - { \xeCJK_make_node:n { CJK } } - \xeCJK_ignore_spaces:w + \hbox_overlap_right:n { \box_use:N \g__xeCJK_under_symbol_box } + \xeCJK_no_break: \__xeCJK_save_under_CJKsymbol:N {#1} } \RenewDocumentEnvironment { CJKfilltwosides } { O { c } m } { |