From ebb5a88807ee66de22c4803faa1a8e9ad8ffa5bf Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 25 Oct 2016 20:39:25 +0000 Subject: ctex (25oct16) git-svn-id: svn://tug.org/texlive/trunk@42351 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/ctex/ctexart.cls | 71 +++++++++++++++++++++------- 1 file changed, 54 insertions(+), 17 deletions(-) (limited to 'Master/texmf-dist/tex/latex/ctex/ctexart.cls') diff --git a/Master/texmf-dist/tex/latex/ctex/ctexart.cls b/Master/texmf-dist/tex/latex/ctex/ctexart.cls index 3612b6c88c7..e6d741c764a 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 b7f83de 2016-09-21 21:27:31 +0800 Qing Lee $ +\GetIdInfo$Id: ctex.dtx 575f038 2016-10-25 17:56:58 +0800 Qing Lee $ {Chinese adapter for class article (CTEX)} \ProvidesExplClass{ctexart} - {\ExplFileDate}{2.4.4}{\ExplFileDescription} + {\ExplFileDate}{2.4.5}{\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 @@ -649,10 +649,17 @@ #1 / numbering .bool_set:N = \exp_not:c { CTEX@#1@numbering } , #1 / afterindent .bool_set:N = \exp_not:c { CTEX@#1@afterindent } , #1 / fixskip .bool_set:N = \exp_not:c { CTEX@#1@fixskip } , + #1 / hang .bool_set:N = \exp_not:c { CTEX@#1@hang } , + #1 / hang .initial:n = true , #1 / runin .bool_set:N = \exp_not:c { CTEX@#1@runin } , #1 / break .tl_set:N = \exp_not:c { CTEX@#1@break } , #1 / break+ .code:n = { \tl_put_right:Nn \exp_not:c { CTEX@#1@break } { ####1 } } , + #1 / tocline .code:n = + { + \cs_set:Npn \exp_not:c { CTEX@#1@tocline} + \exp_not:n { ####1####2 } { ####1 } + } , #1 / format+ .code:n = { \tl_put_right:Nn \exp_not:c { CTEX@#1@format } { ####1 } } , #1 / nameformat+ .code:n = @@ -713,6 +720,8 @@ { \cs_set_eq:NN \CTEXifname \use_i:nn } \cs_new_protected_nopar:Npn \CTEX@ifnamefalse { \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} } } \renewcommand\part{% \if@noskipsec \leavevmode \fi \par @@ -731,17 +740,15 @@ \ifodd \CTEX@part@numbering \CTEX@ifnametrue \refstepcounter{part}% - \addcontentsline{toc}{part}{\CTEXthepart\hspace{1em}#1}% \else \CTEX@ifnamefalse \CTEX@makeanchor{part*}% - \addcontentsline{toc}{part}{#1}% \fi \else \CTEX@ifnamefalse - \CTEX@makeanchor@part{part*}% - \addcontentsline{toc}{part}{#1}% + \CTEX@makeanchor{part*}% \fi + \CTEX@addtocline{part}{#1}% {\interlinepenalty \@M \normalfont \parindent \dimexpr \CTEX@part@indent \relax \CTEX@part@format \ifnum \c@secnumdepth >\m@ne \ifodd \CTEX@part@numbering @@ -810,15 +817,13 @@ \unless \ifodd \CTEX@runin \begingroup #6{% - \@hangfrom{\hskip\glueexpr #3\relax\@svsec}% + \CTEX@hangfrom{\hskip\glueexpr #3\relax\@svsec}% \interlinepenalty \@M \csname CTEX@#1@titleformat\endcsname{#8}% \csname CTEX@#1@aftertitle\endcsname}% \endgroup \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \CTEXifname{\protect\numberline{\csname CTEXthe#1\endcsname}}{}% - #7}% + \CTEX@addtocline{#1}{#7}% \else \def\@svsechd{% #6{\hskip\glueexpr #3\relax @@ -826,9 +831,7 @@ \csname CTEX@#1@titleformat\endcsname{#8}% \csname CTEX@#1@aftertitle\endcsname}% \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \CTEXifname{\protect\numberline{\csname CTEXthe#1\endcsname}}{}% - #7}}% + \CTEX@addtocline{#1}{#7}}% \fi \@xsect{#5}} \def\@ssect#1#2#3#4#5{% @@ -836,7 +839,7 @@ \unless \ifodd \CTEX@runin \begingroup #4{% - \@hangfrom{\hskip\glueexpr #1\relax}% + \CTEX@hangfrom{\hskip\glueexpr #1\relax}% \interlinepenalty \@M \CTEX@titleformat@n{#5}% \CTEX@aftertitle}% @@ -870,19 +873,47 @@ \fi}% \fi \ignorespaces} +\cs_new_protected_nopar:Npn \CTEX@hangfrom + { + \bool_if:NTF \CTEX@hang + { \@hangfrom } + { \noindent \use:n } + } \cs_new_protected_nopar:Npn \CTEX@update@sectionformat@n #1 { \cs_set_eq:Nc \CTEX@titleformat@n { CTEX@#1@titleformat } \cs_set_eq:Nc \CTEX@aftertitle { CTEX@#1@aftertitle } \cs_set_eq:Nc \CTEX@afterindent { CTEX@#1@afterindent } \cs_set_eq:Nc \CTEX@fixskip { CTEX@#1@fixskip } + \cs_set_eq:Nc \CTEX@hang { CTEX@#1@hang } \cs_set_eq:Nc \CTEX@runin { CTEX@#1@runin } } \cs_new_eq:NN \CTEX@titleformat@n \use:n \cs_new_eq:NN \CTEX@aftertitle \prg_do_nothing: \cs_new_eq:NN \CTEX@afterindent \c_true_bool \cs_new_eq:NN \CTEX@fixskip \c_false_bool +\cs_new_eq:NN \CTEX@hang \c_true_bool \cs_new_eq:NN \CTEX@runin \c_false_bool +\cs_new:Npn \CTEX@part@tocline #1#2 + { + \CTEXifname + { \CTEXthepart \hspace { 1em } } + { } + #2 + } +\cs_new:Npn \CTEX@chapter@tocline #1#2 + { + \CTEXifname + { \protect \numberline { \CTEXthechapter \hspace { .3em } } } + { } + #2 + } +\cs_new_nopar:Npn \CTEXnumberline #1 + { + \CTEXifname + { \protect \numberline { \use:c { CTEXthe #1 } } } + { } + } \int_zero:N \l__ctex_tmp_int \seq_map_inline:Nn \c__ctex_section_headings_seq { @@ -896,6 +927,8 @@ { \exp_not:c { CTEX@#1@afterskip } } { \exp_not:N \normalfont \exp_not:c { CTEX@#1@format } } } + \cs_new:cpn { CTEX@#1@tocline } ##1##2 + { \CTEXnumberline { ##1 } ##2 } } \keys_define:nn { ctex } { @@ -1128,13 +1161,17 @@ } } } -\ctex_patch_cmd:Nnn \ps@headings - { \ifnum \c@secnumdepth > \z@ \thesection \quad \fi } - { \CTEXifname { \CTEXthesection \quad } { } } \if@twoside + \ctex_patch_cmd:Nnn \ps@headings + { \ifnum \c@secnumdepth > \z@ \thesection \quad \fi } + { \CTEXifname { \CTEXthesection \quad } { } } \ctex_patch_cmd:Nnn \ps@headings { \ifnum \c@secnumdepth > \@ne \thesubsection \quad \fi } { \CTEXifname { \CTEXthesubsection \quad } { } } +\else: + \ctex_patch_cmd:Nnn \ps@headings + { \ifnum \c@secnumdepth > \m@ne \thesection \quad \fi } + { \CTEXifname { \CTEXthesection \quad } { } } \fi: \ctex_at_end_package:nn { fancyhdr } { -- cgit v1.2.3