\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{nccsections} [2006/01/19 v1.01 Custom sectioning styles (NCC)] % % \changes{v1.00}{2006/01/01}{This version is uploaded to CTAN} % \changes{v1.01}{2006/01/17}{addtopackage -> afterpackage} % \changes{v1.01}{2006/01/19}{Add modification of \NCC@secflush hook} % \RequirePackage{afterpackage} \RequirePackage{nccsect}[2006/01/19] % % The style parameter in section declaration commands is applied % to the section text only % \DeclareOption{newsecstyle}{% \def\NCC@preparesectag#1#2{\def\NCC@makesectag##1{#1{#2##1\NCC@asecnum}}} \def\NCC@secttitle#1#2#3{#2#1{#3}} \let\NCC@secptitle\NCC@secttitle \let\NCC@secxtitle\NCC@secttitle \DeclareSection*1{section}{\Large\bff}% {3.5ex \@plus 1ex \@minus .2ex}% {2.3ex \@plus .2ex}{\Large\bff} \DeclareSection*2{subsection}{\large\bff}% {3.25ex \@plus 1ex \@minus .2ex}% {1.5ex \@plus .2ex}{\large\bff} \DeclareSection*3{subsubsection}{\normalsize\bff}% {3ex \@plus 1ex \@minus .2ex}% {1.5ex \@plus .2ex}{\normalsize\bff} \DeclareSection4{paragraph}{\normalsize\bff}% {\NCC@runskip}{-1em}{\normalsize\bff} \DeclareSection5{subparagraph}[\parindent]{\normalsize\bff}% {\NCC@runskip}{-1em}{\normalsize\bff} \AfterPackage{ncclatex}{% \ifNCC@small \DeclareSection*1{section}{\large\bff}% {3.1ex \@plus 1ex \@minus .2ex}% {1.5ex \@plus .2ex}{\large\bff} \DeclareSection*2{subsection}{\normalsize\bff}% {2.7ex \@plus 1ex \@minus .2ex}% {1.5ex \@plus .2ex}{\normalsize\bff} \DeclareSection*3{subsubsection}{\normalsize\bff\itshape}% {\NCC@runskip}% {1.5ex \@plus .2ex}{\normalsize\bff\itshape} \else \DeclareSection*1{section}{\Large\bff}% {3.5ex \@plus 1ex \@minus .2ex}% {2.3ex \@plus .2ex}{\Large\bff} \DeclareSection*2{subsection}{\large\bff}% {3.1ex \@plus 1ex \@minus .2ex}% {1.5ex \@plus .2ex}{\large\bff} \DeclareSection*3{subsubsection}{\normalsize\bff}% {2.7ex \@plus 1ex \@minus .2ex}% {1.5ex \@plus .2ex}{\normalsize\bff} \fi \DeclareSection4{paragraph}{\normalsize\bff}{\NCC@runskip}% {-.6em \@plus -.2em \@minus -.1em}{\normalsize\bff} \DeclareSection5{subparagraph}[\parindent]{\normalsize\bff}{\NCC@runskip}% {-.6em \@plus -.2em \@minus -.1em}{\normalsize\bff} } } % % The style parameter in toc-entry declaration commands is applied % to the toc-entry text only % \DeclareOption{newtocstyle}{% \let\NCC@tocnumprototype\@secondoftwo \def\NCC@nexttocnum#1#2{#1{#2\NCC@atocnum}} \def\NCC@preparetocnum#1#2{\def\NCC@maketocnum##1{#2{##1\NCC@atocnum}}} \def\NCC@tocentrytitle#1#2{% \def\@tempa##1{#1{\ignorespaces##1}}% \NCC@parsetocnum#2\NCC@do } \def\NCC@parsetocnum{\futurelet\@tempb\NCC@testtocnum} \def\NCC@testtocnum{% \ifx\@tempb\numberline \expandafter\NCC@gettocnum \else \expandafter\NCC@gettoctext \fi } \def\NCC@gettocnum#1#2{#1{#2}\NCC@gettoctext} \def\NCC@gettoctext#1\NCC@do{\@tempa{#1}} \@ifundefined{chapter}{% \DeclareTOCEntry0{\runinsectionskip\def\@dotsep{1000}}% {\bff}{III}{\bff}[] }{% \DeclareTOCPart{\NCC@secskip{4ex \@plus .2ex}\def\@dotsep{1000}}% {\large\bff}{II}{\large\bff} \DeclareTOCEntry0{\runinsectionskip\def\@dotsep{1000}% \aftergroup\penalty\aftergroup\@highpenalty}% {\bff}{9}{\bff} } } % % A chapter tag goes inline with title % \DeclareOption{chapterinline}{% \@ifundefined{chapter}{\NCC@secoptionerror}{% \let\NCC@chap@@gobble\@empty \def\NCC@secflush{\NCC@secsave} \@ifpackagewith{nccsections}{newsecstyle}{% \def\NCC@makechaptitle#1#2#3{\NCC@chap@@gobble \ifx\NCC@sec@@main\@empty #1\@svsec \else \NCC@sec{\@svsec}#1\fi \interlinepenalty \@M #2{#3\@@par}% } }{% \def\NCC@makechaptitle#1#2#3{\NCC@chap@@gobble \ifx\NCC@sec@@main\@empty \def\NCC@sec@@main{#1\@svsec}\else \def\NCC@sec@@main{\protect\NCC@sec{\@svsec}#1}\fi #2{\NCC@sec@@main\interlinepenalty \@M #3\@@par}% } } \DeclareSection*0{chapter}{\huge\bff}{10ex}% {8ex \@plus .2ex}{\huge\bff} \AfterPackage{ncclatex}{% \ifNCC@small \DeclareSection*0{chapter}{\Large\bff}{\z@}% {6ex \@plus .2ex}{\Large\bff} \else \DeclareSection*0{chapter}{\LARGE\bff}{\z@}% {8ex \@plus .2ex}{\LARGE\bff} \fi } } } % % Chapter like a section % \DeclareOption{chaptersection}{% \@ifundefined{chapter}{\NCC@secoptionerror}{% \@ifpackagewith{nccsections}{chapterinline}{}{% \ExecuteOptions{chapterinline}% } \def\NCC@chap@@gobble{\let\@chapapp\@gobble} \AtBeginDocument{% \def\NCC@thetocchapter{\thechapter} \let\NCC@makechapfinal\NCC@makechapfinalgobble } } } % % A part tag goes inline with title % \DeclareOption{partinline}{% \let\NCC@part@@gobble\@empty \@ifundefined{chapter}{% \def\NCC@secflush{\NCC@secsave} \@ifpackagewith{nccsections}{newsecstyle}{% \def\NCC@makeparttitle#1#2#3{\NCC@part@@gobble \ifx\NCC@sec@@main\@empty #1\@svsec \else \NCC@sec{\@svsec}#1\fi \interlinepenalty \@M #2{#3\@@par}% } }{% \def\NCC@makeparttitle#1#2#3{\NCC@part@@gobble \ifx\NCC@sec@@main\@empty \def\NCC@sec@@main{#1\@svsec}\else \def\NCC@sec@@main{\protect\NCC@sec{\@svsec}#1}\fi #2{\NCC@sec@@main\interlinepenalty \@M #3\@@par}% } } \DeclareSection*0{part}{\LARGE\bff}% {5ex \@plus 1ex \@minus .2ex}% {4ex \@plus .2ex}{\LARGE\bff} \AfterPackage{ncclatex}{% \ifNCC@small \DeclareSection*0{part}{\Large\bff}% {4ex \@plus 1ex \@minus .2ex}% {2.8ex \@plus .2ex}{\Large\bff} \else \DeclareSection*0{part}{\LARGE\bff}% {5ex \@plus 1ex \@minus .2ex}% {3.8ex \@plus .2ex}{\LARGE\bff} \fi } }{% \@ifpackagewith{nccsections}{newsecstyle}{% \def\NCC@makeparttitle#1#2#3{#1\NCC@part@@gobble \@svsec\interlinepenalty \@M #2{#3\@@par}% } }{% \def\NCC@makeparttitle#1#2#3{#1\NCC@part@@gobble #2{\@svsec\interlinepenalty \@M #3\@@par}% } } \DeclarePart{\StartFromTextArea\vfil\centering}% {\vfil\newpage \if@twoside\if@openright \mbox{}\thispagestyle{empty}\newpage\fi\fi}% {\huge\bff}{\huge\bff} \AfterPackage{ncclatex}{% \ifNCC@small \DeclarePart{\StartFromTextArea\vspace{\stretch{.5}}\centering} {\vfill\newpage}{\LARGE\bff}{\LARGE\bff} \else \DeclarePart{\StartFromTextArea\vspace{\stretch{.5}}\centering} {\vfill\newpage}{\huge\bff}{\huge\bff} \fi } } } % % Part like a section % \DeclareOption{partsection}{% \@ifpackagewith{nccsections}{partinline}{}{% \ExecuteOptions{partinline}% } \def\NCC@part@@gobble{\let\partname\@gobble} \@ifundefined{chapter}{}{% \AtBeginDocument{% \def\NCC@thetocpart{\thepart} \let\NCC@makepartfinal\NCC@makepartfinalgobble } } } \def\NCC@secoptionerror{% \PackageError{nccsections}% {Option `\CurrentOption' useful in book-like classes only}{}% } \@onlypreamble\NCC@secoptionerror \ProcessOptions\relax \endinput