%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /data/old/usr/share/texlive/texmf-dist/tex/xelatex/xecjk/
Upload File :
Create Path :
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'.

Zerion Mini Shell 1.0