summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty')
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty85
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 }
{