diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/ctex/ctexart.cls')
-rw-r--r-- | Master/texmf-dist/tex/latex/ctex/ctexart.cls | 61 |
1 files changed, 35 insertions, 26 deletions
diff --git a/Master/texmf-dist/tex/latex/ctex/ctexart.cls b/Master/texmf-dist/tex/latex/ctex/ctexart.cls index 20707c50646..1065d74e814 100644 --- a/Master/texmf-dist/tex/latex/ctex/ctexart.cls +++ b/Master/texmf-dist/tex/latex/ctex/ctexart.cls @@ -28,10 +28,10 @@ %% \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} -\GetIdInfo$Id: ctex.dtx cb8bf3c 2019-04-07 23:32:09 +0800 Qing Lee <sobenlee@gmail.com> $ +\GetIdInfo$Id: ctex.dtx 735dfe2 2019-05-29 21:42:29 +0800 Qing Lee <sobenlee@gmail.com> $ {Chinese adapter for class article (CTEX)} \ProvidesExplClass{ctexart} - {\ExplFileDate}{2.4.15}{\ExplFileDescription} + {\ExplFileDate}{2.4.16}{\ExplFileDescription} \tl_const:Nx \c__ctex_version_tl { \cs_if_exist_use:cF { ver@ \@currname . \@currext } { 9999/99/99 } } \cs_new_eq:cN { ver@ctex. \@pkgextension } \c__ctex_version_tl @@ -112,24 +112,17 @@ { \cs_new_eq:NN \ifctexpdf \if_false: } \cs_new_eq:NN \ctex_if_preamble:TF \use_i:nn \ctex_after_end_preamble:n { \cs_set_eq:NN \ctex_if_preamble:TF \use_ii:nn } -\cs_new:Npn \ctex_set_default_ccwd:Nn #1#2 +\cs_new_protected:Npn \ctex_set_default_ccwd:Nn #1#2 + { \tl_set:Nx #1 { \__ctex_default_ccwd_aux:n {#2} } } +\cs_new:Npn \__ctex_default_ccwd_aux:n #1 { - \dim_compare:nNnTF - { \ctex_default_pt:n {#2} } = { \ctex_default_pt:n { #2 ~ mm } } - { \tl_set:Nn #1 {#2} } - { \tl_set:Nn #1 { #2 \ccwd } } - } -\cs_new:Npn \ctex_default_pt:n #1 - { - \exp_after:wN \__ctex_default_pt:w + \exp_not:n {#1} + \exp_after:wN \__ctex_default_ccwd_aux:w \dim_use:N \tex_dimexpr:D #1 pt \scan_stop: \q_stop } -\use:x - { - \cs_new:Npn \exp_not:N \__ctex_default_pt:w - ##1 \tl_to_str:n { pt } ##2 \exp_not:N \q_stop - { ##1 \tl_to_str:n { pt } } - } +\exp_last_unbraced:NNNNo + \cs_new:Npn \__ctex_default_ccwd_aux:w #1 { \tl_to_str:n { pt } } #2 \q_stop + { \tl_if_empty:nT {#2} { \ccwd } } \tl_new:N \l__ctex_encoding_tl \tl_set:Nx \l__ctex_encoding_tl { \sys_if_engine_pdftex:TF { GBK } { UTF8 } } @@ -717,6 +710,8 @@ { \cs_set_eq:NN \CTEXifname \use_ii:nn } \cs_new_protected:Npn \CTEX@addtocline #1#2 { \addcontentsline { toc } {#1} { \use:c { CTEX@#1@tocline } {#1} {#2} } } +\cs_new_protected_nopar:Npn \CTEX@disableautoindent + { \tl_clear:N \l__ctex_autoindent_tl } \renewcommand\part{% \if@noskipsec \leavevmode \fi \par @@ -743,8 +738,10 @@ \CTEX@ifnamefalse \CTEX@makeanchor{part*}% \fi + \CTEX@gettitle{#1}% \CTEX@addtocline{part}{#1}% {\interlinepenalty \@M + \CTEX@disableautoindent \normalfont \CTEX@part@format \CTEX@hangindent{part}% {\CTEXifname{\CTEX@partname\CTEX@part@aftername}{}}% @@ -759,7 +756,9 @@ \def\@spart#1{% \CTEX@ifnamefalse \CTEX@makeanchor@spart{part*}% + \CTEX@gettitle{#1}% {\interlinepenalty \@M + \CTEX@disableautoindent \normalfont \CTEX@part@format \CTEX@hangindent{part}{}% \CTEX@part@titleformat{#1}% @@ -808,6 +807,7 @@ \let\@svsec\@empty \fi \fi + \CTEX@gettitle{#7}% \unless \ifodd \CTEX@runin \begingroup #6{% @@ -830,6 +830,7 @@ \@xsect{#5}} \def\@ssect#1#2#3#4#5{% \CTEX@ifnamefalse + \CTEX@gettitle{#5}% \unless \ifodd \CTEX@runin \begingroup #4{% @@ -869,18 +870,15 @@ \ignorespaces} \cs_new_protected:Npn \CTEX@hangindent #1#2 { + \dim_set:Nn \parindent { \use:c { CTEX@#1@indent } } \bool_if:cTF { CTEX@#1@hang } - { \@hangfrom } - { \noindent \use:n } - { \__ctex_indent_aux:n {#1} #2 } + { \@hangfrom { \__ctex_indent_aux: #2 } } + {#2} } -\cs_new_protected:Npn \__ctex_indent_aux:n #1 +\cs_new_protected_nopar:Npn \__ctex_indent_aux: { - \group_begin: - \skip_set:Nn \l__ctex_heading_skip { \use:c { CTEX@#1@indent } } - \dim_compare:nNnF \l__ctex_heading_skip = \c_zero_dim - { \skip_horizontal:N \l__ctex_heading_skip } - \group_end: + \dim_compare:nNnF \parindent = \c_zero_dim + { \skip_horizontal:n { \parindent } } } \cs_new_protected_nopar:Npn \CTEX@hangfrom { @@ -993,6 +991,17 @@ } \CTEX@hyperheadinghook } +\cs_new_protected:Npn \CTEX@gettitle #1 + { } +\ctex_at_end_package:nn { nameref } + { + \cs_gset_protected_nopar:Npn \CTEX@gettitle { \NR@gettitle } + \seq_map_inline:Nn \c__ctex_headings_cs_seq + { + \cs_if_eq:ccT { NR@ #1 } { CTEX@ #1 } + { \cs_gset_eq:cc { @ #1 } { CTEX@ #1 } } + } + } \cs_new_protected_nopar:Npn \ctex_titlesec_hook: { \@ifpackagewith { titlesec } { explicit } |