%PDF- %PDF-
| Direktori : /data/old/usr/share/texlive/texmf-dist/tex/xelatex/xecjk/ |
| Current File : //data/old/usr/share/texlive/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty |
%%
%% This is file `xeCJKfntef.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% xeCJK.dtx (with options: `fntef')
%%
%% $Id: xeCJK.dtx 399 2013-01-11 14:57:50Z sobenlee $
%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
%% Wenchang Sun <sunwch@nankai.edu.cn>
%% Current Maintainers:
%% Leo Liu <leoliu.pku@gmail.com>
%% Qing Lee <sobenlee@gmail.com>
%%
%% Copyright (C) 2007--2013 Wenchang Sun
%% (C) 2009--2013 Leo Liu
%% (C) 2012--2013 Qing Lee
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status "maintained".
%% The Current Maintainer of this work are Leo Liu and Qing Lee.
%% -----------------------------------------------------------------
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
\GetIdInfo$Id: xeCJK.dtx 399 2013-01-11 14:57:50Z sobenlee $
{xeCJK patch file for ulem/CJKfntef}
\ProvidesExplPackage
{xeCJKfntef}
{\ExplFileDate}{3.1.2}{\ExplFileDescription}
\PassOptionsToPackage { normalem } { ulem }
\DeclareOption* { \PassOptionsToPackage { \CurrentOption } { ulem } }
\ProcessOptions \scan_stop:
\@ifpackageloaded { xeCJK }
{ }
{ \RequirePackage { xeCJK } }
\RequirePackage { ulem }
\RequirePackage { CJKfntef }
\addto@hook \UL@hook { \xeCJK_hook_for_ulem: }
\cs_new_protected_nopar:Npn \xeCJK_hook_for_ulem:
{
\bool_if:NF \l__xeCJK_ulem_hook_used_bool
{
\bool_set_true:N \l__xeCJK_ulem_hook_used_bool
\xeCJKsetup { CheckFullRight = false }
\bool_if:NTF \l__xeCJK_ulem_skip_punct_bool
{ \cs_set_eq:NN \__xeCJK_ulem_leader_type: \UL@leadtype }
{
\xeCJK_cs_clear:N \__xeCJK_ulem_skip_punct_begin:
\xeCJK_cs_clear:N \__xeCJK_ulem_skip_punct_end:
}
\__xeCJK_ulem_initial:
\xeCJK_glue_to_skip:nN
{
\cs_set_eq:NN \ \tex_space:D
\cs_set_eq:NN \penalty \tex_penalty:D
\cs_set_eq:NN \hskip \skip_horizontal:N
\CJKglue
} \l__xeCJK_ccglue_skip
\xeCJK_glue_to_skip:nN
{
\cs_set_eq:NN \ \tex_space:D
\cs_set_eq:NN \penalty \tex_penalty:D
\cs_set_eq:NN \hskip \skip_horizontal:N
\CJKecglue
} \l__xeCJK_ecglue_skip
\cs_set_protected_nopar:Npn \CJKglue
{ \__xeCJK_ulem_glue:n \l__xeCJK_ccglue_skip }
\cs_set_protected_nopar:Npn \CJKecglue
{ \__xeCJK_ulem_glue:n \l__xeCJK_ecglue_skip }
}
}
\bool_new:N \l__xeCJK_ulem_hook_used_bool
\cs_set_eq:NN \CJK@UL \CJK@@UL
\tl_replace_once:Nnn \CJK@UL { \ULon }
{ \bool_set_true:N \l__xeCJK_ulem_skip_punct_bool \ULon }
\tl_replace_once:Nnn \CJK@@UL { \ULon }
{ \bool_set_false:N \l__xeCJK_ulem_skip_punct_bool \ULon }
\bool_new:N \l__xeCJK_ulem_skip_punct_bool
\cs_new_protected_nopar:Npn \__xeCJK_ulem_skip_punct_begin:
{ \xeCJK_cs_clear:N \UL@leadtype }
\cs_new_protected_nopar:Npn \__xeCJK_ulem_skip_punct_end:
{ \cs_set_eq:NN \UL@leadtype \__xeCJK_ulem_leader_type: }
\xeCJK_cs_clear:N \__xeCJK_ulem_leader_type:
\cs_new_protected_nopar:Npn \__xeCJK_ulem_initial:
{
\xeCJK_swap_cs:NN
\__xeCJK_Default_and_FullLeft_glue:N \__xeCJK_ulem_Default_and_FullLeft_glue:N
\xeCJK_swap_cs:NN
\__xeCJK_Default_and_FullRight_glue:N \__xeCJK_ulem_Default_and_FullRight_glue:N
\xeCJK_swap_cs:NN
\__xeCJK_CJK_and_FullLeft_glue:N \__xeCJK_ulem_CJK_and_FullLeft_glue:N
\xeCJK_swap_cs:NN
\__xeCJK_CJK_and_FullRight_glue:N \__xeCJK_ulem_CJK_and_FullRight_glue:N
\xeCJK_swap_cs:NN
\__xeCJK_Boundary_and_FullLeft_glue:N \__xeCJK_ulem_Boundary_and_FullLeft_glue:N
\xeCJK_swap_cs:NN \__xeCJK_punct_hskip:n \__xeCJK_ulem_punct_hskip:n
\xeCJK_swap_cs:NN \xeCJK_FullLeft_and_Default: \__xeCJK_ulem_FullLeft_and_Default:
\xeCJK_swap_cs:NN \xeCJK_FullLeft_and_CJK: \__xeCJK_ulem_FullLeft_and_CJK:
\xeCJK_swap_cs:NN \xeCJK_FullRight_and_Default: \__xeCJK_ulem_FullRight_and_Default:
\xeCJK_swap_cs:NN \xeCJK_FullRight_and_CJK: \__xeCJK_ulem_FullRight_and_CJK:
\xeCJK_swap_cs:NN \xeCJK_CJK_and_CJK:N \__xeCJK_ulem_CJK_and_CJK:N
\seq_map_inline:Nn \g__xeCJK_CJK_sub_class_seq
{
\seq_map_inline:Nn \g__xeCJK_CJK_sub_class_seq
{
\str_if_eq:nnTF {##1} {####1}
{
\xeCJK_inter_class_toks:nnn { CJK } { CJK/##1 }
{ \__xeCJK_ulem_between_CJK_blocks:nnN { CJK } {##1} }
\xeCJK_inter_class_toks:nnn { CJK/##1 } { CJK/##1 }
{ \__xeCJK_ulem_between_CJK_blocks:nnN { CJK } {##1} }
}
{
\xeCJK_inter_class_toks:nnn { CJK/##1 } { CJK/####1 }
{ \__xeCJK_ulem_between_CJK_blocks:nnN {##1} {####1} }
}
}
}
}
\cs_new_nopar:Npn \xeCJK_if_ulem_patch:TF
{
\if_meaning:w \ \LA@space
\exp_after:wN \use_ii:nn
\else:
\exp_after:wN \use_i:nn
\fi:
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_CJK_and_CJK:N
{
\xeCJK_if_ulem_patch:TF
{
\xeCJK_class_group_end:
\UL@stop \__xeCJK_ulem_ccglue: \UL@start
\__xeCJK_ulem_class_group_begin:
\CJKsymbol
}
{ \__xeCJK_ulem_CJK_and_CJK:N }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_class_group_begin:
{
\xeCJK_class_group_begin:
\xeCJK_clear_Boundary_and_CJK_toks:
\xeCJK_select_font:
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_between_CJK_blocks:nnN #1#2
{
\xeCJK_if_ulem_patch:TF
{
\xeCJK_class_group_end:
\UL@stop \__xeCJK_ulem_ccglue: \UL@start
\xeCJK_class_group_begin:
\xeCJK_clear_Boundary_and_CJK_toks:
\__xeCJK_switch_font:nn {#1} {#2}
\CJKsymbol
}
{
\skip_horizontal:N \l__xeCJK_ccglue_skip
\__xeCJK_switch_font:nn {#1} {#2}
\CJKsymbol
}
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_Default_and_FullLeft_glue:N #1
{
\xeCJK_if_ulem_patch:TF
{
\UL@stop
\__xeCJK_ulem_skip_punct_begin:
\__xeCJK_punct_glue:NN \c__xeCJK_left_tl {#1}
\UL@start
}
{ \__xeCJK_ulem_Default_and_FullLeft_glue:N #1 }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_Boundary_and_FullLeft_glue:N #1
{
\xeCJK_if_ulem_patch:TF
{
\UL@stop
\__xeCJK_ulem_skip_punct_begin:
\int_compare:nNnF \etex_lastnodetype:D = \c_one
{ \__xeCJK_punct_glue:NN \c__xeCJK_left_tl {#1} }
\UL@start
}
{ \__xeCJK_ulem_Boundary_and_FullLeft_glue:N #1 }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_CJK_and_FullLeft_glue:N #1
{
\xeCJK_if_ulem_patch:TF
{
\xeCJK_class_group_end:
\UL@stop
\__xeCJK_ulem_skip_punct_begin:
\__xeCJK_ulem_ccglue:
\__xeCJK_punct_glue:NN \c__xeCJK_left_tl {#1}
\UL@start
\__xeCJK_ulem_class_group_begin:
}
{ \__xeCJK_ulem_CJK_and_FullLeft_glue:N #1 }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_Default_and_FullRight_glue:N #1
{
\xeCJK_if_ulem_patch:TF
{
\UL@stop
\__xeCJK_ulem_skip_punct_begin:
\__xeCJK_punct_if_long:NTF {#1}
{ \__xeCJK_ulem_ccglue: }
{
\__xeCJK_punct_if_middle:NT {#1}
{
\xeCJK_no_break:
\__xeCJK_punct_glue:NN \c__xeCJK_right_tl {#1}
}
\xeCJK_no_break:
}
\UL@start
}
{ \__xeCJK_ulem_Default_and_FullRight_glue:N #1 }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_CJK_and_FullRight_glue:N #1
{
\xeCJK_if_ulem_patch:TF
{
\xeCJK_class_group_end:
\__xeCJK_ulem_Default_and_FullRight_glue:N {#1}
\__xeCJK_ulem_class_group_begin:
}
{ \__xeCJK_ulem_CJK_and_FullRight_glue:N #1 }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_FullLeft_and_Default:
{
\xeCJK_if_ulem_patch:TF
{
\__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_class_group_end: \UL@stop \xeCJK_no_break:
\__xeCJK_punct_glue:NN \c__xeCJK_left_tl \g__xeCJK_last_punct_tl
}
{ \xeCJK_class_group_end: \UL@stop }
\__xeCJK_ulem_skip_punct_end:
\xeCJK_no_break:
\UL@start
}
{ \__xeCJK_ulem_FullLeft_and_Default: }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_FullLeft_and_CJK:
{
\xeCJK_if_ulem_patch:TF
{
\__xeCJK_ulem_FullLeft_and_Default:
\__xeCJK_ulem_class_group_begin:
}
{ \__xeCJK_ulem_FullLeft_and_CJK: }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_FullRight_and_Default:
{
\xeCJK_if_ulem_patch:TF
{
\__xeCJK_punct_rule:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl
\xeCJK_class_group_end:
\UL@stop
\__xeCJK_punct_glue:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl
\__xeCJK_ulem_skip_punct_end:
\UL@start
}
{ \__xeCJK_ulem_FullRight_and_Default: }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_FullRight_and_CJK:
{
\xeCJK_if_ulem_patch:TF
{
\__xeCJK_punct_rule:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl
\xeCJK_class_group_end:
\UL@stop
\__xeCJK_punct_glue:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl
\__xeCJK_ulem_ccglue:
\__xeCJK_ulem_skip_punct_end:
\UL@start
\__xeCJK_ulem_class_group_begin:
}
{ \__xeCJK_ulem_FullRight_and_CJK: }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_punct_hskip:n
{
\xeCJK_if_ulem_patch:TF
{ \__xeCJK_ulem_hskip:n }
{ \__xeCJK_ulem_punct_hskip:n }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_glue:n #1
{
\xeCJK_if_ulem_patch:TF
{ \UL@stop \__xeCJK_ulem_hskip:n {#1} \UL@start }
{ \skip_horizontal:n {#1} }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_ccglue:
{ \skip_set_eq:NN \UL@skip \l__xeCJK_ccglue_skip \UL@leaders }
\cs_new_protected_nopar:Npn \__xeCJK_ulem_hskip:n #1
{
\int_compare:nNnTF \tex_lastkern:D = \c_three
{ \skip_horizontal:n {#1} }
{ \skip_set:Nn \UL@skip {#1} \UL@leaders }
}
\RenewDocumentCommand \CJKunderdot { m }
{
\bool_if:NT \l__xeCJK_ulem_hook_used_bool { \UL@stop }
\CJK@preUnderdot
\__xeCJK_make_under_symbol:n { \CJK@underdotSkip }
\cs_gset_eq:NN \__xeCJK_save_under_dot_CJKsymbol:N \CJKsymbol
\cs_set_eq:NN \CJKsymbol \__xeCJK_under_CJKsymbol:N
\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
\CJK@postUnderdot
\bool_if:NT \l__xeCJK_ulem_hook_used_bool { \UL@start }
\tex_ignorespaces:D
}
\box_new:N \g__xeCJK_under_symbol_box
\RenewDocumentCommand \CJKunderanysymbol { m m m }
{
\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 \CJKsymbol \__xeCJK_under_CJKsymbol:N
#3
\group_end:
\tex_ignorespaces:D
}
\cs_new_protected:Npn \__xeCJK_make_under_symbol:n #1
{
\hbox_set:Nn \l__xeCJK_tmp_box { ^^^^4e00 }
\vbox_gset_to_ht:Nnn \g__xeCJK_under_symbol_box \c_zero_dim
{
\skip_vertical:n {#1}
\hbox_to_zero:n
{
\tex_kern:D - \box_wd:N \l__xeCJK_tmp_box
\tex_hss:D \box_use:N \CJK@underdotBox \tex_hss:D
}
\tex_vss:D
}
}
\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
}
\RenewDocumentEnvironment { CJKfilltwosides } { m }
{
\dim_set:Nn \l__xeCJK_fill_width_dim {#1}
\cs_set_eq:NN \CJKglue \tex_hfil:D
\cs_set_eq:NN \\ \__xeCJK_fill_newline:
\mode_if_vertical:T { \tex_indent:D }
\tex_vbox:D \c_group_begin_token
\tex_hbox:D to \l__xeCJK_fill_width_dim \c_group_begin_token
\tex_ignorespaces:D
}
{
\tex_unskip:D
\c_group_end_token
\c_group_end_token
}
\dim_new:N \l__xeCJK_fill_width_dim
\cs_new_protected_nopar:Npn \__xeCJK_fill_newline:
{
\tex_unskip:D
\c_group_end_token
\tex_hbox:D to \l__xeCJK_fill_width_dim \c_group_begin_token
\tex_ignorespaces:D
}
%%
%% This package consists of the file xeCJK.dtx
%% and the derived files xeCJK.pdf,
%% xeCJK.sty,
%% xeCJK.cfg,
%% xeCJK.ins,
%% xeCJKfntef.sty,
%% xeCJK-example-autofake.tex,
%% xeCJK-example-fallback.tex,
%% xeCJK-example-subCJKblock.tex,
%% xeCJK-example-CJKecglue.tex,
%% xeCJK-example-checksingle.tex,
%% xeCJK-example-CJKfntef.tex,
%% xeCJK-example-punctstyle.tex,
%% xeCJK-example-verbatim.tex, and
%% README.txt.
%%
%% End of file `xeCJKfntef.sty'.