diff options
author | Karl Berry <karl@freefriends.org> | 2015-05-14 21:23:11 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-05-14 21:23:11 +0000 |
commit | 9591c0c57b007ba49f15f0970009bc27efa23db4 (patch) | |
tree | 4ef2076432f70e69f1d944b127898e217b269ae6 /Master/texmf-dist/tex/latex/ctex/ctex-book.def | |
parent | 99d7ad5df8ac48132b622ee369d7493853592a61 (diff) |
ctex (14may15)
git-svn-id: svn://tug.org/texlive/trunk@37393 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/ctex/ctex-book.def')
-rw-r--r-- | Master/texmf-dist/tex/latex/ctex/ctex-book.def | 363 |
1 files changed, 363 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/ctex/ctex-book.def b/Master/texmf-dist/tex/latex/ctex/ctex-book.def new file mode 100644 index 00000000000..d848f503a12 --- /dev/null +++ b/Master/texmf-dist/tex/latex/ctex/ctex-book.def @@ -0,0 +1,363 @@ +%% +%% This is file `ctex-book.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ctex.dtx (with options: `heading,book') +%% +%% Copyright (C) 2003--2015 +%% CTEX.ORG and any individual authors listed in the documentation. +%% ------------------------------------------------------------------------------ +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c of this license or (at your option) any later +%% version. This version of this license is in +%% http://www.latex-project.org/lppl/lppl-1-3c.txt +%% and 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 Maintainers of this work are Leo Liu, Qing Lee and Liam Huang. +%% +%% ------------------------------------------------------------------------------ +%% +\GetIdInfo$Id: ctex.dtx 3d246c0 2015-05-11 23:20:45 +0800 Qing Lee <sobenlee@gmail.com> $ + {Heading modification for book (CTEX)} +\ProvidesExplFile{ctex-book.def} + {\ExplFileDate}{2.0}{\ExplFileDescription} +\seq_new:N \c__ctex_headings_seq +\seq_gset_from_clist:Nn \c__ctex_headings_seq + { + part , chapter , section , subsection , subsubsection , + paragraph , subparagraph + } +\cs_new_protected_nopar:Npn \__ctex_initial_heading:n #1 + { + \tl_new:c { CTEX@pre#1 } + \tl_new:c { CTEX@post#1 } + \tl_const:cx { CTEXthe#1 } + { + \exp_not:c { CTEX@pre#1 } + \exp_not:c { CTEX@the#1 } + \exp_not:c { CTEX@post#1 } + } + \tl_const:cx { CTEX@#1name } + { + \exp_not:c { CTEX@#1@nameformat } + \exp_not:c { CTEX@pre#1 } + \exp_not:N \tl_if_empty:NTF \exp_not:c { CTEX@#1@numberformat } + { \exp_not:c { CTEX@the#1 } } + { + \group_begin: + \exp_not:c { CTEX@#1@numberformat } + \exp_not:c { CTEX@the#1 } + \group_end: + } + \exp_not:c { CTEX@post#1 } + \exp_not:c { CTEX@#1@aftername } + } + } +\cs_new_protected_nopar:Npn \__ctex_def_heading_keys:n #1 + { + \tl_put_right:Nx \l__ctex_tmp_tl + { + #1 .meta:nn = { ctex / #1 } { ####1 } , + #1 / name .code:n = + { \ctex_assign_heading_name:nn {#1} { ####1 } } , + #1 / number .tl_set:N = \exp_not:c { CTEX@the#1 } , + #1 / format .tl_set:N = \exp_not:c { CTEX@#1@format } , + #1 / nameformat .tl_set:N = \exp_not:c { CTEX@#1@nameformat } , + #1 / numberformat .tl_set:N = \exp_not:c { CTEX@#1@numberformat } , + #1 / aftername .tl_set:N = \exp_not:c { CTEX@#1@aftername } , + #1 / titleformat .tl_set:N = \exp_not:c { CTEX@#1@titleformat } , + #1 / beforeskip .tl_set:N = \exp_not:c { CTEX@#1@beforeskip } , + #1 / afterskip .tl_set:N = \exp_not:c { CTEX@#1@afterskip} , + #1 / indent .tl_set:N = \exp_not:c { CTEX@#1@indent } , + #1 / format+ .code:n = + { \tl_put_right:Nn \exp_not:c { CTEX@#1@format } { ####1 } } , + #1 / nameformat+ .code:n = + { \tl_put_right:Nn \exp_not:c { CTEX@#1@nameformat } { ####1 } } , + #1 / numberformat+ .code:n = + { \tl_put_right:Nn \exp_not:c { CTEX@#1@numberformat } { ####1 } } , + #1 / aftername+ .code:n = + { \tl_put_right:Nn \exp_not:c { CTEX@#1@aftername } { ####1 } } , + #1 / titleformat+ .code:n = + { \tl_put_right:Nn \exp_not:c { CTEX@#1@titleformat } { ####1 } } , + #1 / beforeskip .initial:n = \c_zero_skip , + #1 / afterskip .initial:n = \c_zero_skip , + #1 / indent .initial:n = \c_zero_dim , + #1 / beforeskip .value_required: , + #1 / afterskip .value_required: , + #1 / indent .value_required: , + } + } +\NewDocumentCommand \ctex_assign_heading_name:nn + { m > { \SplitArgument { \c_one } { , } } +m } + { \__ctex_assign_heading_name:nnn {#1} #2 } +\cs_new_protected:Npn \__ctex_assign_heading_name:nnn #1#2#3 + { + \tl_set:cn { CTEX@pre#1 } {#2} + \IfNoValueTF {#3} + { \tl_clear:c { CTEX@post#1 } } + { \tl_set:cn { CTEX@post#1 } {#3} } + } +\tl_clear:N \l__ctex_tmp_tl +\seq_map_inline:Nn \c__ctex_headings_seq + { + \__ctex_initial_heading:n {#1} + \__ctex_def_heading_keys:n {#1} + } +\use:x { \keys_define:nn { ctex } { \exp_not:o { \l__ctex_tmp_tl } } } +\tl_clear:N \l__ctex_tmp_tl +\keys_define:nn { ctex } + { + part / pagestyle .tl_set:N = \CTEX@part@pagestyle , + chapter / pagestyle .tl_set:N = \CTEX@chapter@pagestyle + } +\def\@part[#1]#2{% + \thispagestyle{\CTEX@part@pagestyle}% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}{\CTEXthepart\hspace{1em}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\interlinepenalty \@M + \normalfont \CTEX@part@format + \ifnum \c@secnumdepth >-2\relax + \CTEX@partname + \fi + \CTEX@part@titleformat{#2}\par}% + \@endpart} +\def\@spart#1{% + {\interlinepenalty \@M + \normalfont \CTEX@part@format + \CTEX@part@titleformat{#1}\par}% + \@endpart} +\def\@chapter[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \refstepcounter{chapter}% + \typeout{\CTEXthechapter}% + \addcontentsline{toc}{chapter} + {\protect\numberline{\CTEXthechapter\hspace{0.3em}}#1}% + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \@afterheading + \fi} +\def\@makechapterhead#1{% + \thispagestyle{\CTEX@chapter@pagestyle}% + \@tempskipa \CTEX@chapter@beforeskip \relax + \ifdim \@tempskipa <\z@ + \@tempskipa -\@tempskipa \@afterindentfalse + \else + \@afterindenttrue + \fi + \vspace*{\@tempskipa}% + {\normalfont \parindent \CTEX@chapter@indent \CTEX@chapter@format + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \CTEX@chaptername + \fi + \fi + \interlinepenalty\@M + \CTEX@chapter@titleformat{#1}\par\nobreak + \vskip \CTEX@chapter@afterskip + }} +\def\@makeschapterhead#1{% + \thispagestyle{\CTEX@chapter@pagestyle}% + \@tempskipa \CTEX@chapter@beforeskip \relax + \ifdim \@tempskipa <\z@ + \@tempskipa -\@tempskipa \@afterindentfalse + \else + \@afterindenttrue + \fi + \vspace*{\@tempskipa}% + {\normalfont \parindent \CTEX@chapter@indent \CTEX@chapter@format + \interlinepenalty\@M + \CTEX@chapter@titleformat{#1}\par\nobreak + \vskip \CTEX@chapter@afterskip + }} +\def\@seccntformat#1{% + \@ifundefined{CTEX@#1name}% + {\csname the#1\endcsname\quad}% + {\csname CTEX@#1name\endcsname}} +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \protected@edef\@svsec{\@seccntformat{#1}\relax}% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup + #6{% + \@hangfrom{\hskip #3\relax\@svsec}% + \interlinepenalty \@M + \csname CTEX@#1@titleformat\endcsname{#8}\@@par}% + \endgroup + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\@ifundefined{CTEXthe#1}% + {\csname the#1\endcsname}% + {\csname CTEXthe#1\endcsname}}% + \fi + #7}% + \else + \def\@svsechd{% + #6{\hskip #3\relax + \@svsec \csname CTEX@#1@titleformat\endcsname{#8}}% + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\@ifundefined{CTEXthe#1}% + {\csname the#1\endcsname}% + {\csname CTEXthe#1\endcsname}}% + \fi + #7}}% + \fi + \@xsect{#5}} +\def\@ssect#1#2#3#4#5{% + \@tempskipa #3\relax + \ifdim \@tempskipa>\z@ + \begingroup + #4{% + \@hangfrom{\hskip #1}% + \interlinepenalty \@M + \CTEX@titleformat@n{#5}\@@par}% + \endgroup + \else + \def\@svsechd{#4{\hskip #1\relax \CTEX@titleformat@n{#5}}}% + \fi + \@xsect{#3}} +\cs_new_protected_nopar:Npn \CTEX@set@titleformat@n #1 + { \cs_set_eq:Nc \CTEX@titleformat@n { CTEX@#1@titleformat } } +\cs_new_eq:NN \CTEX@titleformat@n \use:n +\int_zero:N \l__ctex_tmp_int +\clist_map_inline:nn + { section , subsection , subsubsection , paragraph , subparagraph } + { + \int_incr:N \l__ctex_tmp_int + \cs_gset_protected_nopar:cpx {#1} + { + \exp_not:N \@startsection {#1} + { \int_use:N \l__ctex_tmp_int } + { \exp_not:c { CTEX@#1@indent } } + { \exp_not:c { CTEX@#1@beforeskip } } + { \exp_not:c { CTEX@#1@afterskip } } + { + \CTEX@set@titleformat@n {#1} + \exp_not:N \normalfont \exp_not:c { CTEX@#1@format } + } + } + } +\tl_new:N \CTEX@preappendix +\tl_new:N \CTEX@postappendix +\keys_define:nn { ctex } + { appendix .meta:nn = { ctex / appendix } {#1} } +\keys_define:nn { ctex / appendix } + { + name .code:n = { \ctex_assign_heading_name:nn { appendix } {#1} } , + number .tl_set:N = \CTEX@appendixnumber + } +\cs_new_eq:NN \CTEX@save@appendix \appendix +\cs_gset_protected_nopar:Npn \appendix + { + \CTEX@save@appendix + \gdef \CTEX@prechapter { \CTEX@preappendix } + \gdef \CTEX@thechapter { \CTEX@appendixnumber } + \gdef \CTEX@postchapter { \CTEX@postappendix } + } +\cs_new_protected:Npn \CTEX@toc@width@n #1 + { + \hbox_set:Nn \l__ctex_tmp_box {#1} + \dim_set:Nn \@tempdima + { + \dim_max:nn { \@tempdima } + { \box_wd:N \l__ctex_tmp_box + \f@size \p@ / \c_two } + } + } +\group_begin: +\char_set_catcode_other:N \# +\use:n + { + \group_end: + \ExplSyntaxOff + \ctex_preto_cmd:NnTF \numberline { \CTEX@toc@width@n {#1} } { } + { \ctex_patch_failure:N \numberline } + \@ifpackageloaded { tocloft } + { } + { + \ctex_at_end_package:nn { tocloft } + { + \ctex_preto_cmd:NnTF \numberline { \CTEX@toc@width@n {#1} } { } + { \ctex_patch_failure:N \numberline } + } + } + \ExplSyntaxOn + } +\ctex_patch_cmd:Nnn \ps@headings + { \@chapapp\ \thechapter.~\ } { \CTEXthechapter \quad } +\if@twoside + \ctex_patch_cmd:Nnn \ps@headings { \thesection.~\ } { \CTEXthesection \quad } +\fi: +\ctex_at_end_package:nn { fancyhdr } + { + \ctex_patch_cmd:Nnn \ps@fancy + { \@chapapp\ \thechapter.~\ } { \if@mainmatter \CTEXthechapter \quad \fi } + \ctex_patch_cmd:Nnn \ps@fancy + { \thesection.~\ } { \CTEXthesection \quad } + } +\cs_new_protected_nopar:Npn \CTEX@setcurrentlabel@n #1 + { + \protected@edef \@currentlabel + { + \cs_if_exist:cTF { CTEX@the#1 } + { \exp_args:cc { p@#1 } { CTEX@the#1 } } + { \exp_not:o { \@currentlabel } } + } + } +\cs_new_protected_nopar:Npn \ctex_varioref_hook: + { + \seq_map_inline:Nn \c__ctex_headings_seq + { \ctex_fix_varioref_label:n { ##1 } } + } +\cs_new_protected_nopar:Npn \ctex_fix_varioref_label:n #1 + { + \tl_if_empty:cT { p@#1 } + { \exp_args:Nno \labelformat {#1} { \cs:w CTEX@the#1 \cs_end: } } + } +\@ifpackageloaded { varioref } + { \ctex_varioref_hook: } + { + \cs_new_eq:NN \CTEX@save@refstepcounter \refstepcounter + \RenewDocumentCommand \refstepcounter { m } + { + \CTEX@save@refstepcounter {#1} + \CTEX@setcurrentlabel@n {#1} + } + \ctex_at_end_package:nn { varioref } { \ctex_varioref_hook: } + } +\ctex_scheme_input:o { \l__ctex_scheme_tl } +%% +%% +%% End of file `ctex-book.def'. |