diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/ncclatex/ncc.cls |
Initial commit
Diffstat (limited to 'macros/latex/contrib/ncclatex/ncc.cls')
-rw-r--r-- | macros/latex/contrib/ncclatex/ncc.cls | 451 |
1 files changed, 451 insertions, 0 deletions
diff --git a/macros/latex/contrib/ncclatex/ncc.cls b/macros/latex/contrib/ncclatex/ncc.cls new file mode 100644 index 0000000000..ffc2a048e2 --- /dev/null +++ b/macros/latex/contrib/ncclatex/ncc.cls @@ -0,0 +1,451 @@ +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{ncc} + [2006/01/17 v1.10 NCC-LaTeX document class (NCC)] +% +% \changes{v1.01}{2002/03/24}{This version is uploaded to CTAN} +% \changes{v1.02}{2002/04/03}{Bug in loading book class fixed} +% \changes{v1.03}{2004/04/08}{The processing of 'russian' option is improved} +% \changes{v1.04}{2004/09/23}{Provide index making commands via the makeidx} +% \changes{v1.05}{2004/11/30}{Remove \NCC@null from the titlepage env.} +% \changes{v1.05}{2004/11/30}{Rename \NCC@null to \StartFromTextArea} +% \changes{v1.05}{2004/11/30}{Add the \StartFromHeaderArea command} +% \changes{v1.06}{2004/12/16}{Remove \NCC@gempty command} +% \changes{v1.07}{2005/01/12}{Remove options passed to packages} +% \changes{v1.07}{2005/02/21}{Set tbtags as default option} +% \changes{v1.07}{2005/03/23}{Add optional arg. to \alloweqbreak} +% \changes{v1.07}{2005/03/30}{Fix bug in the \preprint command} +% \changes{v1.07}{2005/05/20}{Move \StartFromTextArea to the nccsect package} +% \changes{v1.07}{2005/05/20}{Move \StartFromHeaderArea to the nccsect package} +% \changes{v1.08}{2005/06/18}{Add titlepage*, \ExpandTextArea, \RestoreTextArea} +% \changes{v1.08}{2005/07/02}{Improve \ExpandTextArea command} +% \changes{v1.09}{2005/12/24}{Move biblist to a separate package} +% \changes{v1.09}{2005/12/24}{Unify toc-headers using topsection package} +% \changes{v1.09}{2005/12/26}{Move titlepage and text area controls to separate packages} +% \changes{v1.09}{2005/12/26}{Loading ncctitle package instead of ncctitle.clo} +% \changes{v1.09}{2005/12/28}{Code revision and minor changes} +% \changes{v1.09}{2005/12/28}{More minor changes} +% \changes{v1.09}{2006/01/05}{The \SetTOCStyle was removed from here} +% \changes{v1.10}{2006/01/17}{addtopackage -> afterpackage} +% +\newcommand\@ptsize{} +\newif\if@restonecol +\newif\if@openright +% +% What goes first in title: author or title? +% +\newif\ifNCC@authorbeforetitle +\newcommand{\AuthorBeforeTitle}{\NCC@authorbeforetitletrue} +\newcommand{\TitleBeforeAuthor}{\NCC@authorbeforetitlefalse} +\@onlypreamble\AuthorBeforeTitle +\@onlypreamble\TitleBeforeAuthor +% +% Paper size options +% +\DeclareOption{a4paper} + {\setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5paper} + {\setlength\paperheight {210mm}% + \setlength\paperwidth {148mm}} +\DeclareOption{a5a4paper} + {\setlength\paperheight {210mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{b5paper} + {\setlength\paperheight {250mm}% + \setlength\paperwidth {176mm}} +\DeclareOption{letterpaper} + {\setlength\paperheight {11in}% + \setlength\paperwidth {8.5in}} +\DeclareOption{legalpaper} + {\setlength\paperheight {14in}% + \setlength\paperwidth {8.5in}} +\DeclareOption{executivepaper} + {\setlength\paperheight {10.5in}% + \setlength\paperwidth {7.25in}} +\DeclareOption{landscape} + {\setlength\@tempdima {\paperheight}% + \setlength\paperheight {\paperwidth}% + \setlength\paperwidth {\@tempdima}} +\DeclareOption{fittopage}{} +% +% Base font size options +% +\DeclareOption{10pt}{\renewcommand\@ptsize{0}} +\DeclareOption{11pt}{\renewcommand\@ptsize{1}} +\DeclareOption{12pt}{\renewcommand\@ptsize{2}} +\DeclareOption{14pt}{\renewcommand\@ptsize{4}% + \PassOptionsToPackage{small}{ncclatex}} +% +% Layout options +% +\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} +\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} +\DeclareOption{draft}{\setlength\overfullrule{5pt}} +\DeclareOption{final}{\setlength\overfullrule{0pt}} +\DeclareOption{openany}{\@openrightfalse} +\DeclareOption{openright}{\@openrighttrue} +\DeclareOption{onecolumn}{\@twocolumnfalse} +\DeclareOption{twocolumn}{\@twocolumntrue} +% +% Special openbib option +% +\DeclareOption{openbib}{% + \AtEndOfPackage{% + \renewcommand\@openbib@code{% + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + } + \renewcommand\newblock{\par} + }% +} +% +% \setyear{year} command defines \theyear +% +\newcommand*{\setyear}[1]{\gdef\theyear{#1}} +\newcommand\theyear{\number\year} +% +% Subclass selection options +% +\DeclareOption{article}{% + \def\NCC@clsload{% + \TitleBeforeAuthor + \input{nccart.clo}% + \newcommand*{\setseries}[1]{\gdef\theseries{##1}}% + \newcommand*{\setvolume}[1]{\gdef\thevolume{##1}}% + \newcommand*{\setissue}[1]{\gdef\theissue{##1}}% + \setseries{}\setvolume{}\setissue{}% + \AtEndDocument{% + \clearpage + \if@filesw \advance\c@page\m@ne + \immediate\write\@mainaux{\string\newlabel + {NCC@lastpage}{{}{\thepage}}}% + \advance\c@page\@ne + \fi + \openrightorany + }% + \pagestyle{myheadings}% + \countstyle{}% + \InputIfFileExists{nccadd.sty}{}{}% + }% + \let\chapter\relax + \let\thechapter\relax +} +\DeclareOption{preprint}{% + \def\NCC@clsload{% + \AuthorBeforeTitle + \input{nccart.clo}% + \RequirePackage{ncctitle}% + \RequirePackage{afterpackage} + \newcommand\preprintname{Preprint} + \AfterPackage{babel}{% + \addto\captionsrussian{% + \def\preprintname{% + {\cyr\CYRP\cyrr\cyre\cyrp\cyrr\cyri\cyrn\cyrt}}% + } + } + \newcommand*{\preprint}[1]{% + \def\thepreprint{##1}% + \ifx\thepreprint\@empty + \titlecomment{}% + \else + \titlecomment{\bfseries \preprintname\\[1.5ex]\thepreprint}% + \fi + }% + \preprint{}% + \pagestyle{headings}% + \countstyle{}% + }% + \let\chapter\relax + \let\thechapter\relax +} +\DeclareOption{book}{% + \def\NCC@clsload{% + \AuthorBeforeTitle + \input{nccbook.clo}% + \RequirePackage{ncctitle}% + \let\bookeditor\titlecomment + \pagestyle{headings}% + \countstyle{chapter}% + }% + \let\chapter\@empty % nccsect and russianb packages test an existence of + \let\thechapter\@empty % \thechapter and \chapter to understand what class +} % was loaded +\DeclareOption{report}{\ExecuteOptions{book,oneside}} +% +% We set tbtags as the default tags positioning in split environment +% +\def\NCC@temp{\PassOptionsToPackage{tbtags}{nccmath}} +\DeclareOption{centertags}{\let\NCC@temp\relax} +% +% Process options and load size option file +% +\ExecuteOptions{a4paper,10pt,article,twoside,onecolumn,final,openany} +\ProcessOptions\relax +\NCC@temp \let\NCC@temp\relax +\input{ncc1\@ptsize.clo} +\@ifclasswith{ncc}{fittopage}{\input{nccfit.clo}}{} +% +% Center text on the page taking into account the header only, +% because default NCC-LaTeX style is headings or myheadings and +% marginal notes are useless. The top margin is bounded by 1.5in. +% +\RequirePackage{tocenter} +\ToCenter[h]{\textwidth}{\textheight} +\ifdim\topmargin >.5in \topmargin=.5in \fi +% +% Set list margins +% +\if@twocolumn + \setlength\leftmargini {2em} + \setlength\leftmarginii {1.7em} + \setlength\leftmarginiii{1.5em} + \setlength\leftmarginiv {1.2em} + \setlength\leftmarginv {.5em} + \setlength\leftmarginvi {.5em} +\else + \setlength\leftmargini {2.5em} + \setlength\leftmarginii {2.2em} + \setlength\leftmarginiii{1.87em} + \setlength\leftmarginiv {1.7em} + \setlength\leftmarginv {1em} + \setlength\leftmarginvi {1em} +\fi +\setlength\labelsep{.5em} +\leftmargin\leftmargini +\def\NCC@labelwidth{\labelwidth\leftmargin\advance\labelwidth-\labelsep} +\NCC@labelwidth +% +% Set enumeration styles +% +\renewcommand\theenumi{\@arabic\c@enumi} +\renewcommand\theenumii{\@alph\c@enumii} +\renewcommand\theenumiii{\@roman\c@enumiii} +\renewcommand\theenumiv{\@Alph\c@enumiv} +\renewcommand\p@enumii{\theenumi} +\renewcommand\p@enumiii{\theenumi(\theenumii)} +\renewcommand\p@enumiv{\p@enumiii\theenumiii} +\newcommand\labelenumi{\theenumi.} +\newcommand\labelenumii{(\theenumii)} +\newcommand\labelenumiii{\theenumiii.} +\newcommand\labelenumiv{\theenumiv.} +\newcommand\labelitemi{\textbullet} +\newcommand\labelitemii{\normalfont\bfseries \textendash} +\newcommand\labelitemiii{\textasteriskcentered} +\newcommand\labelitemiv{\textperiodcentered} +% +% Set other dimensions, skips, and penalties +% +\if@twocolumn \setlength\parindent{1em} +\else \setlength\parindent{1.5em} +\fi +\setlength\smallskipamount{3\p@ \@plus \p@ \@minus \p@} +\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@} +\setlength\maxdepth{.5\topskip} +\setlength\lineskip{\p@} +\setlength\normallineskip{\p@} +\renewcommand\baselinestretch{} +\setlength\columnseprule{0\p@} +\setlength\parskip{\z@ \@plus \p@} +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +\setcounter{topnumber}{4} +\renewcommand\topfraction{.8} +\setcounter{bottomnumber}{2} +\renewcommand\bottomfraction{.6} +\setcounter{totalnumber}{6} +\renewcommand\textfraction{.2} +\renewcommand\floatpagefraction{.5} +\setcounter{dbltopnumber}{4} +\renewcommand\dbltopfraction{.8} +\renewcommand\dblfloatpagefraction{.5} +\setlength\arraycolsep{5\p@} +\setlength\tabcolsep{6\p@} +\setlength\arrayrulewidth{.4\p@} +\setlength\doublerulesep{2\p@} +\setlength\tabbingsep{\labelsep} +\skip\@mpfootins = \skip\footins +\setlength\fboxsep{3\p@} +\setlength\fboxrule{.4\p@} +\def\@dotsep{4.5} +% +% Declare old font selection commands +% +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal} +\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal} +% +% Create section counters. We use \countstyle command from dcounter package. +% +\RequirePackage{dcounter} +\newcounter{part} +\renewcommand\thepart{\@Roman\c@part} +\@ifundefined{chapter}{ + \countstyle[section]{} +}{ + \countstyle[chapter]{} + \countstyle[section]{chapter} +} +\countstyle[subsection]{section} +\countstyle[subsubsection]{subsection} +\countstyle[paragraph]{subsubsection} +\countstyle[subparagraph]{paragraph} +% +% Declare floats +% +\DeclareDynamicCounter{figure} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{\figurename\nobreakspace\thefigure} +\newenvironment{figure}{\@float{figure}}{\end@float} +\newenvironment{figure*}{\@dblfloat{figure}}{\end@dblfloat} +\DeclareDynamicCounter{table} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{\tablename\nobreakspace\thetable} +\newenvironment{table}{\@float{table}}{\end@float} +\newenvironment{table*}{\@dblfloat{table}}{\end@dblfloat} +% +% Names of standard english captions +% +\newcommand\prefacename{Preface} +\newcommand\contentsname{Contents} +\newcommand\listfigurename{List of Figures} +\newcommand\listtablename{List of Tables} +\newcommand\refname{References} +\newcommand\bibname{Bibliography} +\newcommand\indexname{Index} +\newcommand\glossaryname{Glossary} +\newcommand\figurename{Figure} +\newcommand\tablename{Table} +\newcommand\partname{Part} +\newcommand\chaptername{Chapter} +\newcommand\appendixname{Appendix} +\newcommand\abstractname{Abstract} +% +% English version of \today +% +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year} +% +% Prepare commands for making indices +% +\RequirePackage{makeidx} +\newcommand\printglossary{\@input@{\jobname.gls}} +% +% Load remaining packages +% +\RequirePackage{ncclatex} +\RequirePackage{topsection} +\RequirePackage{watermark} +\RequirePackage{ncctitlepage} +\RequirePackage{nccheadings} +\RequirePackage{nccold} +% +% Define the bibliography +% +\newdimen\bibindent +\setlength\bibindent{1.5em} +\let\@openbib@code\@empty +\newcommand\newblock{\hskip .11em\@plus .33em\@minus .07em} +\RequirePackage{nccbiblist} +\def\NCC@biblisthook{\itemsep\parsep} +% +% noeqbreak supresses page breaks before display equations +% alloweqbreak[number] allows page breaks before display equations +% (default is alloweqbreak[4]) +% +\newenvironment{noeqbreak}{\predisplaypenalty\@M + \ignorespaces +}{\ignorespacesafterend} +\newenvironment*{alloweqbreak}[1][4]{% + \predisplaypenalty + \ifcase #1\@highpenalty + \or \@lowpenalty + \or \z@ + \or \@beginparpenalty + \else \@secpenalty + \fi + \ignorespaces +}{\ignorespacesafterend} +\alloweqbreak % Break before display formulas is allowed +\allowdisplaybreaks % Breaks in display formulas are allowed +% +% Verse, quotation, quote. The description is already defined in ncclatex +% +\newenvironment{verse}{% + \let\\\centercr + \list{}{\itemsep \z@ \itemindent -1.5em \listparindent\itemindent + \rightmargin \leftmargin \advance\leftmargin 1.5em}% + \item\relax +}{\endlist} +\newenvironment{quotation}{% + \list{}{\listparindent 1.5em \itemindent \listparindent + \rightmargin \leftmargin \parsep \z@ \@plus \p@}% + \item\relax +}{\endlist} +\newenvironment{quote}{% + \list{}{\rightmargin\leftmargin}\item\relax +}{\endlist} +% +% Footnote making commands +% +\renewcommand{\footnoterule}{% + \kern-3\p@ \hrule\@width .4\columnwidth \kern2.6\p@ +} +\newcommand{\@makefntext}[1]{% + \parindent 1em \noindent + \hb@xt@ 1.8em{\hss\@makefnmark}#1} +% +% \tableofcontents, \listoffigures, \listoftables +% +\newcommand{\tableofcontents}{\NCC@toc\contentsname{toc}} +\newcommand{\listoffigures}{\NCC@toc\listfigurename{lof}} +\newcommand{\listoftables}{\NCC@toc\listtablename{lot}} +\def\NCC@toc#1{\skipwritingtoaux\topsection{#1}\@starttoc} +% +% theindex and theglossary +% +\newenvironment{theindex}{\NCC@index\indexname}{\endNCC@index} +\newenvironment{theglossary}{\NCC@index\glossaryname}{\endNCC@index} +\newenvironment*{NCC@index}[1]{% + \if@twocolumn \@restonecolfalse \else \@restonecoltrue \fi + \columnseprule \z@ \columnsep 35\p@ + \@iftopchapter{\twocolumn \topsection{#1}}% + {\twocolumn[\topsection{#1}]\thispageheading{}}% + \parindent\z@ \parskip\z@ \@plus .3\p@ + \let\item\@idxitem \small +}{\if@restonecol\onecolumn \else \clearpage\fi} +\newcommand\@idxitem{\par\hangindent 5em} +\newcommand\subitem{\@idxitem \hspace*{2em}} +\newcommand\subsubitem{\@idxitem \hspace*{4em}} +\newcommand\indexspace{\par \addvspace{4ex \@plus 1ex \@minus .5ex}} +% +% Final actions +% +\pagenumbering{arabic} +\NCC@clsload % load specified subclass +\let\NCC@clsload\relax +\if@twocolumn + \twocolumn \sloppy \flushbottom +\else + \onecolumn + \if@twoside \flushbottom \else \raggedbottom \fi +\fi +\endinput |