\documentclass[11pt]{ncc} \ToCenter[h]{160mm}{240mm} \title{\Huge NCC-\LaTeX} \author{by Alexander I. Rozhenko} \usepackage[headings]{ncchdr} \TitleBeforeAuthor \sectionstyle{center} \indentaftersection \newcommand*\package[1]{\textbf{#1}} \newcommand*\bungle[1]{\textit{#1}} \newcommand*\Opt[1]{\texttt{\textbf{#1}}} \newcommand*\Meta[1]{\texttt{\upshape#1}} \newcommand*\com[1]{\Meta{\symbol{"5C}#1}} \newcommand*\meta[1]{\Meta{\symbol{"7B}{\itshape #1}\symbol{"7D}}} \newcommand*\opt[1]{\Meta{[{\itshape #1}]}} \begin{document} \maketitle \thispageheading{\footnotesize This document was prepared in \com{sectionstyle}\meta{\upshape center} with \com{indentaftersection}.\\ This heading was printed with \com{thispageheading} command from the \package{watermark} package} \begin{abstract} This document describes classes and packages from NCC-\LaTeX. We compare the \package{ncc} class with standard \LaTeX's classes and point out a difference between the \package{ncc} class and \package{ncclatex} package. Packages from the \bungle{ncclatex} and \bungle{ncctools} bungles are partially described here. \end{abstract} \tableofcontents \newpage \section{The ncc class} To mark out features of the \package{ncc} class, we compare it with standard \LaTeX\ classes \package{article}, \package{book}, and \package{report}. The first and the main distinction is that preparing of articles, books, and reports in NCC-\LaTeX\ is provided with special options (called \textbf{styles}) of the \package{ncc} class instead of using different classes. The following style options are allowed for this: \begin{description}[\Opt{preprint}] \item[\Opt{article}] prepares an article. \item[\Opt{preprint}] prepares an article with a title going on a separate page. The \com{preprint}\meta{No} command allows inserting a preprint number under the preprint title. \item[\Opt{book}] prepares a book. The \com{bookeditor}\meta{text} command allows inserting a text under the book title. \item[\Opt{report}] is equivalent to the \Opt{book} option used together with the \Opt{oneside} option. \end{description} The \Opt{titlepage} and \Opt{notitlepage} options are not used in the \package{ncc} class. The appearance of a title on a separate page is controlled in a style used. An \Opt{article} style specifies running title and others specify a title on a separate page. The \Meta{abstract} environment is defined in all styles. It is prepared on a separate page if a title is prepared on a separate page. The page style \Meta{headings} is set by default in all styles except articles for which the \Meta{myheadings} style is used. The default options for the \package{ncc} class are \Opt{10pt}, \Opt{a4paper}, \Opt{article}, \Opt{twoside}, \Opt{onecolumn}, \Opt{final}, \Opt{openany}. The class sets \com{unitlength} to 1~mm (i.e. all coordinates in the \Meta{picture} environment are calculated in millimeters). \subsection{Page layout} All standard paper size options are supported, namely \Opt{a4paper}, \Opt{a5paper}, \Opt{b5paper},\linebreak \Opt{letterpaper}, \Opt{legalpaper}, \Opt{executivepaper}, and \Opt{landscape}. One more paper size option is introduced: \Opt{a5a4paper}. It is useful for printing a5 papers on a4 printer having centered tray. In contrast to standard classes, the width and height of the text field isn't automatically expanded on the entire page. Text field dimensions are defined depending on the base point size: \begin{center}\renewcommand{\cboxstyle}{\small\bf} \setlength\tabcolsep{20pt} \begin{tabular}{|c|c|c|}\hline \cbox{Point size} & \cbox{Text width} & \cbox{Text height} \\\hline \Strut/1/ 10 pt & 110 mm & 157 mm \\ 11 pt & \jhbox{111}[r]{126.5} mm & 199 mm \\ 12 pt & 145 mm & 233 mm \\ \bstrut 14 pt & 160 mm & 240 mm \\\hline \end{tabular} \end{center} If you want to fit the text field to the entire page in the same manner as in standard classes, use the \Opt{fittopage} option. The text field is centered on the page taking into account the header field also, but the margin from the top is corrected to be at most 1.5~inch. If you want to center the text field taking into account the marginal notes, header, and footer, use the command \begin{verbatim} \ToCenter[hfm]{\textwidth}{\textheight} \end{verbatim} in the preamble of a document. The optional parameter of this command enumerates fields counted while centering. Using this command, you can change the width and height of the text field and center the result on the page. Other way for changing the width and height is using the \com{FromMargins} command. For example, the following command \begin{verbatim} \FromMargins[hf]{20mm}{10mm}{25mm}{15mm} \end{verbatim} calculates the text field dimensions and margins in such a way to provide 20~mm distance from the left border of the page, 10~mm distance from the right border, 25~mm distance from the top, and 15~mm distance from the bottom in assumption that header and footer are in use. In two-side printing the left and right distances are swapped for even pages. \subsection{Base point size options} Along with standard base point size options \Opt{10pt}, \Opt{11pt}, and \Opt{12pt}, the \Opt{14pt} size option is introduced. In 14~pt, font sizes \com{huge} and \com{Huge} are equal to \com{LARGE}. Sometimes, the standard sizes of fonts used in section markup commands are a bit larger than necessary. This case appears when a page size is small enough or a base font size is too large. The \Opt{small} option can be used in this cases to reduce font sizes used in section markup commands. The \Opt{14pt} option applies it. \subsection{Other options} The following standard options can be used with the \package{ncc} class: \Opt{oneside}, \Opt{twoside}, \Opt{draft}, \Opt{final}, \Opt{openright}, \Opt{openany}, \Opt{onecolumn}, \Opt{twocolumn}, \Opt{openbib}, \Opt{fleqn}, and \Opt{leqno}. The \Opt{russian} option loads the \package{babel} package with the \Meta{[russian]} optional parameter. \subsection{Packages loaded by the ncc class}\label{s:load} The \package{ncc} class loads many packages from \bungle{ncclatex} and \bungle{ncctools} bungles. They are: \begin{description}[\package{watermark}] \item[\package{ncclatex}] is the kernel of NCC-\LaTeX; \item[\package{nccltrus}] is loaded when the \Opt{russian} option is used. It redefines titles of captions to russian ones; \item[\package{nccold}] provides some obsolete commands from old NCC-\LaTeX, namely \com{no}, \com{eref},\linebreak \com{Eq}, \com{Eqs}, \com{Eqalign}, \com{tbox}, \com{bbox}, \com{tbbox}, \com{emline}, and \com{emlinewidth}; \item[\package{dcounter}] provides dynamic counters; \item[\package{desclist}] improves the \Meta{description} environment, and provides the \Meta{desclist} environment with better control of marker in descriptions; \item[\package{extdash}] provides shortcut commands \com{-/}, \com{--}, \com{---}, \com{=/}, \com{==}, and \com{===} for better control of hyphenation of compound words; \item[\package{nccboxes}] provides more boxes; \item[\package{nccfloats}] provides commands \com{minifig}, \com{fig}, \com{figs}, \com{minitabl}, \com{tabl}, and \com{tabls} covering standard \LaTeX\ floats and preparing the floating material in NCC-\LaTeX\ style (a text in NCC-\LaTeX\ floats is centered and prepared in the \com{footnotesize}). New features, \com{sidefig} and \com{sidetabl}, simplify creation of minifloats posed on the outer side of page; \item[\package{nccfoots}] provides commands \com{Footnote}, \com{Footnotemark}, and \com{Footnotetext} for manual management of footnote markers. \item[\package{nccmath}] extends the \package{amsmath} package with NCC-\LaTeX\ commands for preparing display equations (\com{eq}, \com{eqs}, \com{eqalign}), redefines the \Meta{eqnarray} environment to work properly together with \AmS\ display equations, introduces the \Meta{darray}, \Meta{fleqn}, and \Meta{ceqn} environments; \item[\package{nccpic}] is an envelop for the \package{graphicx} package (provides extension lists for useful dvi-drivers, introduces the \com{putimage} command for compatibility with old NCC-\LaTeX, and defines the \com{ipic} command); \item[\package{nccsect}] provides an improved section, caption, and TOC-entries management; \item[\package{nccthm}] theorems in NCC-\LaTeX\ style (customizable layout, many new features); \item[\package{tocenter}] provides the \com{ToCenter} and \com{FromMargins} commands; \item[\package{watermark}] provides watermarks. \end{description} The \package{ncc} class loads some standard \LaTeX\ packages. They are \package{amsmath}, \package{graphicx}, and \package{makeidx}. The \package{babel} package is also loaded if the \Opt{russian} option is used. \subsection{New commands of the ncc class} We describe here new commands introduced in the \package{ncc} class only. Other new commands are introduced in packages of \bungle{ncclatex} and \bungle{ncctools} bungles (most of them are common for the \package{ncc} class and \package{ncclatex} package). \begin{desclist}{}{} \item[\com{partmark}\meta{text}] is used for control the header and footer marks after a new part. \item[\com{openrightorany}] produces the \com{clearpage} or \com{cleardoublepage} command depending on open mode selected in the class options. If an empty even page is created, its header mark is set empty. \item[\com{AuthorBeforeTitle} and \com{TitleBeforeAuthor}] determine what item must go first in the title: author text or title text. In article style the title text goes first and in other styles the author goes first. These commands should be used in the preamble. \item[\com{noeqbreak} and \com{alloweqbreak}] manage the possibility of page break between a text and display equation following after. The first command forbids such page breaks and the last command allows them. The default is \com{alloweqbreak}. \item[\com{SetTOCStyle}\meta{style}] sets a style for table of contents, list of tables, and list of figures. The default style is empty. For example, the use of \verb+\SetTOCStyle{\small}+ in the preamble of the document sets a small font for output in TOC. \item[\com{setyear}\meta{year}, \com{theyear}:] the first command sets a year and the second one prints an year set before. The \verb+\setyear+ command doesn't change the \verb+\year+ counter. The default value for the \verb+\theyear+ command is the current value of the \verb+\year+ counter. \item[\Meta{biblist}] is a new environment: \com{begin}\meta{\upshape biblist}\opt{starting No}\meta{prototype} \ldots \com{end}\meta{\upshape biblist}. It prints a pure bibliography list without heading. The first optional parameter sets an initial value for the bibliography counter. The style of preparing the bibliography is controlled with the \com{bibliststyle} command (its default value is \verb+\small+). The \texttt{thebibliography} environment is prepared on the base of the \texttt{biblist}. \item[\Meta{theglossary}] environment is introduced. The \com{printindex}, \com{see}, and \com{seealso} commands are loaded by the \package{makeidx} package. The \com{printglossary} command is introduced. \end{desclist} The \Meta{figure} and \Meta{table} counters are declared dynamically. So, they are controlled with the \com{countstyle} command. The default count style for article and preprint is empty, and for book and report the \verb+\countstyle{chapter}+ is used. The \Meta{equation} counter is also controlled with the \com{countstyle} command. \paragraph{Specific commands for the article style.} Three new commands \begin{center} \com{setseries}\meta{text}, \com{setvolume}\meta{Volume No}, and \com{setissue}\meta{Issue No} \end{center} are allowed in the article style. They produce the commands \com{theseries}, \com{thevolume}, and \com{theissue} which can be used in publishing. In the article style the \package{ncc} class tries to load an \package{nccadd.sty} file. This style file is useful in publishing to set common information for all articles in a journal issue. The number of the last page is marked with the \Meta{NCC@lastpage} label. Its \verb+\pageref+ value can be used in publishing to automate the substitution of article last page number. If the \Opt{openright} option is used, \verb+\cleardoublepage+ action is applied at the end of article. \paragraph{Specific commands for the preprint style.} The \com{preprint}\meta{Preprint No} command is introduced. If a preprint number is defined, the following text \begin{center}\bf Preprint\\number\end{center} is inserted below the title of preprint. \paragraph{Specific commands for the book and report styles.} The \com{frontmatter}, \com{mainmatter}, and \com{backmatter} commands can be used. The \com{bookeditor}\meta{text} command inserts the specified text below the title of book. A style of chapter prefixing in running head and in the table of contents is controlled with the \com{ChapterPrefixStyle}\meta{list} command. The list can contain comma separated words \Meta{header} and \Meta{toc}. Using them you set prefix style for header and/or toc respectively. In prefix style the chapter number is preceded with the \textbf{Chapter} or \textbf{Appendix} text. \subsection{Using fancy headers with the ncc class} The headers in \package{ncc} class are maintained a bit different from standard classes. So, if you want to use fancy headers together with the \package{ncc} class, type \begin{quote} \com{usepackage}\opt{list-of-page-styles}\verb+{ncchdr}+ \end{quote} in the preamble of document. The \Meta{\textit{list-of-page-styles}} parameter must contain a list of page styles to be redefined, i.e., something from \Opt{empty}, \Opt{plain}, \Opt{headings}, and \Opt{myheadings}. The last style in the list is set after using of this package. Note: the \Opt{headings} and \Opt{myheadings} styles have a common part in the \package{ncc} class which is redefined in this package. So, redefining one of these page styles you automatically redefine another style also. Additional fancy page style \Opt{title} is provided with the \package{ncchdr} package. It uses three title marks, namely \com{lefttitlemark}, \com{titlemark} (in center), and \com{righttitlemark}. To load this style use the \Opt{title} option with the package. The package is based on the \package{nccfancyhdr} package from the \bungle{ncctools} bungle. \section{The ncclatex package} The most part of the \package{ncc} class is loaded in the \package{ncclatex} package. To provide almost all functionality of NCC-\LaTeX\ with standard \LaTeX\ classes, you can use this package. The package loads many packages also. It is easy to say what packages it does not load from the list specified in the Section~\ref{s:load}. Only three of them are not loaded, namely \package{nccold}, \package{tocenter}, and \package{watermark}. If you want to pass additional options to a package loaded with \package{ncclatex}, load it in the \com{usepackage} command before loading the \package{ncclatex}. The \package{ncclatex} package has two options: \Opt{small} and \Opt{russian}. Using of the \Opt{small} option provides smaller fonts in section markup commands. The \Opt{russian} option tries to load the \package{babel} package with \Opt{[russian]} optional parameter, redefines captions of mathematical statements in Russian by loading the \package{nccltrus} package, and redefines \com{alph} and \com{Alph} commands to produce russian alphanumeric numbers. Original latin variants of alphanumeric numbering are saved in \com{alphlatin} and \com{Alphlatin}. The package sets \com{unitlength} to 1~mm (millimeters are default units in NCC-\LaTeX). \subsection{Sections, captions, and toc-entries in NCC-\LaTeX{}} \subsubsection{Sections} Section markup commands of level 0 and greater are redefined using the \package{nccsect} package from \bungle{ncctoools} (the level 0 command is \com{chapter} or \com{part} depending on class used; the commands of greater levels are \com{section}, \com{subsection}, \ldots, \com{subparagraph}). All section markup commands are divided into two categories: display sections (until \com{subsubsection}) and run-in sections (\com{paragraph} and \com{subparagraph}). The package uses floating horizontal alignment for display sections which is controlled with the \begin{quote} \com{sectionstyle}\meta{style} \end{quote} command. The following styles are allowed: \begin{description}[\Meta{hangindent*}] \item[\Meta{hangindent}] is the standard \LaTeX\ style. \item[\Meta{hangindent*}] is the same as \Meta{hangindent}, but ragged right. \item[\Meta{parindent}] sections are indented on \com{parindent} without hanged number. \item[\Meta{parindent*}] is the same as \Meta{parindent}, but ragged right. \item[\Meta{center}] section headers are centered. \end{description} The \com{indentaftersection} and \com{noindentaftersection} commands control indentation after sections. The \package{nccsect} package sets style and indentation to standard \LaTeX\ defaults, \verb+\sectionstyle{hangindent}+ and \com{noindentaftersection}. But the \package{ncclatex} package uses \verb+\sectionstyle{hangindent*}+. The \package{nccsect} package essentially improves the management of section number tags, running heads, and writing to aux-file: \begin{itemize} \item If you want to suppress generation of running head in a section markup command, type \com{norunninghead} before it. \item If you want to replace the text of running head to another one, type \com{runninghead}\meta{text} before a section. \item If you want to suppress a number in a section or in a caption of float, type \com{noheadingtag} before the section or caption markup command. Note that the text of used markup command goes to the running head and to the aux-file. This is the easier way to produce a section without number which must appear in the table of contents and in the header. \item If you want to replace a number in a section or caption to something else, type the \linebreak \com{headingtag}\meta{other number} before the section or caption markup command. Note that the replaced number goes to the running head and to the aux-file. It must contain robust commands only. Fragile commands in it must be protected with the \com{protect} command. The associated counter is not incremented in this case. \item If you want entirely replace a number in a section or caption (including prefix and suffix automatically inserted by section and caption markup commands) to something else, type \com{headingtag*}\meta{other number} before the section or caption markup command. In this case, the writing to running head and to aux-file is suppressed. \item If you want to suppress writing text of a section or caption to aux-file, type the\linebreak \com{skipwritingtoaux} command before the section or caption markup command. \end{itemize} \subsubsection{Captions} The \com{caption} command useful in floats is also redefined in the \package{nccsect} package. The caption creation method internally differs from the standard method. You can use line breaking commands in it, but be sure that line break in caption does not go to the aux-file (use an optional parameter with caption to define an argument going to the aux-file). The \com{centering} command can be used in captions without worrying (it is automatically suppressed while writing to aux-file). The \com{caption*} command is allowed to produce a caption without number tag (the words `Figure' or `Table' belong to the tag!). A text of such a caption does not go to the aux-file. The package defines \textit{different} caption commands for tables and figures. A table caption usually goes above a table. So, a vertical skip after table caption is necessary, but a skip before table caption is unnecessary. A figure caption usually goes below a figure. In this case vertical skips are different: skip before is needed, but skip after is unnecessary. This is the reason why table and figure captions are prepared differently. \subsubsection{TOC-entries} The management of toc-, lot- and lof-entries is also redefined in the \package{nccsect} package. Every toc-entry is specified with 2 parameters: a left margin and a value of hang indentation. The \package{nccsect} package calculates the left margin for a toc-entry by summation of margin skips defined in toc-entries of lower levels. For example, if a toc-entry of 2nd level is typed out, its left margin will be a sum of margin skips defined in toc-entries of 0th and 1st levels. This is much more flexible way than the standard one in which the left margin was coded just in the toc-command. The margin skip and hang indent skip are determined using prototyping technique. This method provides very easy way for redeclaring toc-entries. For example, if your book contains not more than 9 sections, and more than 9 subsections in some sections, you can redeclare the subsection toc-entry as follows: \begin{verbatim} \DeclareTOCEntry{2}{}{}{9.99}{}[9.99] \end{verbatim} This command contains the following parameters: the toc-entry level, an action applied before toc-entry (you can insert a vertical skip for example), a prefix before a toc-entry number (a section sign for example), a number prototype for calculation of hang indentation, and a style applied to the toc-entry. The 6th optional parameter in square brackets is used for calculation of margin skip for the next toc-level. If it is omitted, the skip is equal to the hang indentation value of this toc-entry. \subsubsection{Customization commands} In conclusion, we show customization commands with their default values for the \package{ncclatex} package: \begin{description} \item[\com{SectionTagSuffix}\meta{\upshape.\com{hskip} .6em}] is a suffix inserted after a section number tag (excluding sections of 0th level). Numbers in sections in NCC-\LaTeX\ are ended with the decimal point. \item[\com{CaptionTagSuffix}\meta{\upshape.\com{hskip} .6em plus .2em minus .1em}] is a suffix inserted after a caption number tag. \item[\com{NumberlineSuffix}\meta{\upshape.\com{hskip} .6em}\meta{\upshape.\com{hskip} .4em}] describes 2 suffices: the first one is used in calculation of hang indentation of toc-entries and the last one is inserted after a number in toc-entries. The last suffix is usually narrower that the first one. This allows to decrease a distance between number and text if the width of number exceed the prototype width just a little. Note: the \com{numberline} command from standard \LaTeX\ is modified in the \package{nccsect} package to prevent an overlapping of a text on a number if a number is wider than hung indentation value. \item[\com{PnumPrototype}\meta{\upshape99}] is a prototype of page number used for calculation of right margin in toc. It is supposed that a book contains not more than 99 pages by default. To change the page number width to 3-digit pattern, use the \com{PnumPrototype}\meta{\upshape999} command. \end{description} \subsection{Theorems in NCC-\LaTeX{}} The \package{ncclatex} package defines a number of math statements using the \package{nccthm} package from the \bungle{ncctools} bungle. A brief introduction is needed to explain the possibilities of the \package{nccthm} package. In this section we call all math statements as \textit{theorems} for simplicity. \subsubsection{Overview} In mathematical manuscripts, two modes of theorems numbering are useful. In ordinary mode, a number goes after the theorem title (e.g., \textbf{Theorem~1}, \textbf{Example~1}, \textbf{Theorem~2}, etc.). In this mode, theorems with different titles are usually numbered independently. Another mode requires a number going before a theorem title. We call this mode the \textit{apar} mode. In apar mode, theorems with different titles are numbered sequentially (e.g., \textbf{1~Theorem}, \textbf{2~Example}, \textbf{3~Theorem}, etc.). Both modes can be mixed together in one manuscript. Theorems with different titles can be shown differently. For example, a Theorem statement is shown with bold header and italic body (a comment after header is prepared with normal font). But an Example statement can be shown with italic header and normal body. We call a presentation of a theorem by the \textit{theorem type}. The \package{nccthm} package provides two default theorem types named \texttt{theorem} and \texttt{remark}. New theorem types can be created and existing theorem types can be redefined. The next parameter of theorems is the indentation style. A theorem can open a new paragraph without indentation (default behaviour) and with paragraph indentation. A theorem number in the apar mode can be shown on margins. The indentation style is controlled via options \Opt{indent}, \Opt{noindent}, \Opt{margin}, and \Opt{nomargin} of the \package{nccthm} package. The last parameter of theorems is the break style. A line break after theorem header (comment included) can be used. The break and no break style can be coded in theorems while the definition of them using switches \com{TheoremBreakStyle} and \com{TheoremNoBreakStyle} before the definition or redefinition of theorems (in contrast to standard \LaTeX, the \com{renewtheorem} command is provided for redefinition of theorems). The break style of an individual theorem can be changed on the fly with the commands \com{breakafterheader} and \com{nobreakafterheader} inserted before a theorem. All described properties of theorems are provided with the \package{nccthm} package. Moreover, the counters used in theorems are declared as dynamic counters (see the \package{dcounter} package from \bungle{ncctools}). A dynamic counter is created at the first use. So, a space of \TeX\ count registers is not occupied with useless counters (this is too important because a number of counters is limited). Using dynamic counters a package writer can prepare some predefined theorems without worry. Since a dynamic counter is created at the first use, a user can control the numbering style for it. This is provided with the \com{countstyle}\meta{base-counter} command. The \Meta{\itshape base-counter} is the name of counter a newly created dynamic counter must be subordinated to. An empty parameter means no subordination. So, the change of numbering style for all theorems in a manuscript is executed with one command only! If some counters must have a specific count style, you can create them manually or using the \com{countstyle} command with an optional parameter, \begin{quote} \com{countstyle}\opt{list-of-counters}\meta{base-counter} \end{quote} This command creates new counters from the comma separated list and subordinates all counters in the list to the \Meta{\itshape base-counter}. It can be used for existing counters also if you want to \textit{change the subordination} of them to another counter. For example, using \begin{verbatim} \countstyle[section]{} \end{verbatim} in a book we reject the subordination of the \Meta{section} counter to the \Meta{chapter} counter! \subsubsection{Predefined theorems} The \package{ncclatex} package defines 8 theorems in 3 forms each: theorems with automatic numbering, theorems with manual numbering, and theorems in the \textit{apar} mode. All the theorems can be used in two ways: as environments and as commands. In command style they must be concluded with another theorem, or \com{qef}, or \com{qed} command. The \com{qef} command finishes a paragraph, inserts a proper vertical space, and returns the font shape to the normal font. The \com{qed} command usually finishes the proof of theorem. It prints a qed symbol (white square) adjusted to the right margin and calls the \com{qef}. The \com{qed*} command prints the qed symbol only. \subsubsection{Theorems with automatic numbering} We show the using of these theorems in the environment style. \begin{tabbing} \tt xxxxx\=\verb+\begin{proposition}+\opt{Comment}\quad \=\Meta{\itshape body}\quad\=\+\kill \verb+\begin{theorem}+\opt{Comment} \>\Meta{\itshape body} \>\verb+\end{theorem}+\\ \verb+\begin{lemma}+\opt{Comment} \>\Meta{\itshape body} \>\verb+\end{lemma}+\\ \verb+\begin{proposition}+\opt{Comment} \>\Meta{\itshape body} \>\verb+\end{proposition}+\\ \verb+\begin{corollary}+\opt{Comment} \>\Meta{\itshape body} \>\verb+\end{corollary}+\\ \verb+\begin{definition}+\opt{Comment} \>\Meta{\itshape body} \>\verb+\end{definition}+\\ \verb+\begin{statement}+\opt{Comment} \>\Meta{\itshape body} \>\verb+\end{statement}+\\ \verb+\begin{example}+\opt{Comment} \>\Meta{\itshape body} \>\verb+\end{example}+\\ \verb+\begin{remark}+\opt{Comment} \>\Meta{\itshape body} \>\verb+\end{remark}+ \end{tabbing} In environment style, the end of theorem is equivalent to the \com{qef} command. Counter names coincide with the names of environments. First 4 environments are prepared using the \Meta{theorem} type and last 4 environments are prepared using the \Meta{remark} type. \subsubsection{Theorems with manual numbering} We show the using of these theorems in the environment style also. \begin{tabbing} \tt xxxxx\=\verb+\begin{Proposition}+\meta{Number}\opt{Comment}\quad \=\Meta{\itshape body}\quad\=\+\kill \verb+\begin{Theorem}+\meta{Number}\opt{Comment}\quad \>\Meta{\itshape body} \>\verb+\end{Theorem}+\\ \verb+\begin{Lemma}+\meta{Number}\opt{Comment}\quad \>\Meta{\itshape body} \>\verb+\end{Lemma}+\\ \verb+\begin{Proposition}+\meta{Number}\opt{Comment}\quad \>\Meta{\itshape body} \>\verb+\end{Proposition}+\\ \verb+\begin{Corollary}+\meta{Number}\opt{Comment}\quad \>\Meta{\itshape body} \>\verb+\end{Corollary}+\\ \verb+\begin{Definition}+\meta{Number}\opt{Comment}\quad \>\Meta{\itshape body} \>\verb+\end{Definition}+\\ \verb+\begin{Statement}+\meta{Number}\opt{Comment}\quad \>\Meta{\itshape body} \>\verb+\end{Statement}+\\ \verb+\begin{Example}+\meta{Number}\opt{Comment}\quad \>\Meta{\itshape body} \>\verb+\end{Example}+\\ \verb+\begin{Remark}+\meta{Number}\opt{Comment}\quad \>\Meta{\itshape body} \>\verb+\end{Remark}+ \end{tabbing} If the \Meta{\itshape Number} parameter is empty, a theorem without number is prepared. These commands do not use counters at all. The presentation types for these theorems are the same as for corresponding theorems with automatic numbering. Every theorem type has the corresponding \com{like}\Meta{\itshape type} command used for preparing theorems of this type. For example, to prepare a math statement in the \Meta{theorem} type, write down the following: \begin{quote} \com{liketheorem}\meta{Title}\meta{Number}\opt{Comment}\quad \Meta{\itshape body}\quad \com{qef} \end{quote} To prepare a math statement in the \Meta{remark} type, typeset \begin{quote} \com{likeremark}\meta{Title}\meta{Number}\opt{Comment}\quad \Meta{\itshape body}\quad \com{qef} \end{quote} \subsubsection{Theorems in apar mode} We show the using of these theorems in the command style. \begin{tabbing} \tt xxxxx\=\com{aproposition}\opt{Comment}\quad\=\Meta{\itshape body}\quad\=\+\kill \com{atheorem}\opt{Comment}\quad \>\Meta{\itshape body} \>\com{qef}\\ \com{alemma}\opt{Comment}\quad \>\Meta{\itshape body} \>\com{qef}\\ \com{aproposition}\opt{Comment}\quad \>\Meta{\itshape body} \>\com{qef}\\ \com{acorollary}\opt{Comment}\quad \>\Meta{\itshape body} \>\com{qef}\\ \com{adefinition}\opt{Comment}\quad \>\Meta{\itshape body} \>\com{qef}\\ \com{astatement}\opt{Comment}\quad \>\Meta{\itshape body} \>\com{qef}\\ \com{anexample}\opt{Comment}\quad \>\Meta{\itshape body} \>\com{qef}\\ \com{aremark}\opt{Comment}\quad \>\Meta{\itshape body} \>\com{qef} \end{tabbing} These theorems are number with the \Meta{apar} counter. The presentation types for these theorems are the same as for corresponding theorems with automatic numbering. The star-forms of \com{liketheorem} and \com{likeremark} commands are used for preparing apar variants of math statements. They have no number parameter: \begin{tabbing} \tt xxxxx\=\com{liketheorem*}\meta{Title}\opt{Comment}\quad\=\Meta{\itshape body}\quad\=\+\kill \com{liketheorem*}\meta{Title}\opt{Comment} \>\Meta{\itshape body} \>\com{qef}\\ \com{likeremark*}\meta{Title}\opt{Comment} \>\Meta{\itshape body} \>\com{qef} \end{tabbing} One additional command, the \com{apar}, can be used in the apar mode. Its syntax is the following: \begin{quote} \com{apar}\opt{Header} \end{quote} It starts a new paragraph numbered with subsequent value of the \Meta{apar} counter. The header is prepared in bold font. \subsubsection{Proof command and support of different qed symbols} The \com{proof}\opt{Comment} opens the proof of a math statement. For example, \begin{verbatim} \proof[of Theorem 1] Some text \qed \end{verbatim} looks as follows: \proof[of Theorem 1] Some text \qed Along with the \com{qed}, the \com{qedsymbol} command can be used in the case when a proof finishes with the display formula. It is typed with the \AmS\ \verb+\tag*{\qedsymbol}+ command within a display formula. The \package{nccthm} package provides now two variants of the qed symbol, white and black. They are requested through package options \Opt{whiteqed} and \Opt{blackqed} respectively. When an option is used, two more commands are created for it: \com{\itshape option} and \com{{\itshape option}symbol}. For example, the \Opt{whiteqed} option generates the \com{whiteqed} and \com{whiteqedsymbol} commands, and the \Opt{blackqed} option generates the \com{blackqed} and \com{blackqedsymbol} commands. The later option in the list of options describes the default qed symbol. If no options used, only \com{qed} and \com{qedsymbol} commands are generated. Other qed symbols are welcome! \subsubsection{Customization commands} In conclusion, we show customization commands with their default values for the \package{ncclatex} package: \begin{description} \item[\com{TheoremCommentDelimiters}\meta{}\meta{}] describes delimiters inserted before and after a theorem\linebreak comment. In the \package{nccthm} package the parenthesis are used, but in the \package{ncclatex} package the delimiters are empty. \item[\com{AfterTheoremHeaderChar}\meta{.}] describes the character inserted at the end of header of theorem and proof. \item[\com{AfterTheoremHeaderSkip}\meta{\upshape\com{hskip} .7em plus .2em minus .1em}] describes a horizontal skip inserted after a header of theorem and proof. \item[\com{AparStyleParameters}\meta{\com{bfseries}}\meta{\com{bfseries}}\meta{.\com{enskip}}] describes style parameters for\linebreak preparing apar theorems: the first parameter is a style used in the \com{apar} command, the second and third parameters describe the prefix and suffix inserted before and after \com{theapar} command in typeout. \item[\com{ProofStyleParameters}\meta{\com{bfseries}}\meta{\com{proofname}}] describes style parameters used in the\linebreak \com{proof} command: the first is a font style and the last is a proof title (it is coded here in the \com{proofname} command with the default definition \verb+\newcommand\proofname{Proof}+). \end{description} \subsection{Math extension} In old NCC-\LaTeX, the standard \LaTeX\ environments were used for preparing display formulas and some extension commands were developed to support manual numbering. In the new release of NCC-\LaTeX, it was decided to use an excellent math extension provided with the \package{amsmath} package and enlarge it a bit. The enlargement of \AmS\ package is provided with the \package{nccmath} package. The \package{nccmath} package passes all options to the \package{amsmath}. Two major enlargements were done: \begin{itemize} \item In \package{amsmath}, the \Meta{eqnarray} environment leaves unchanged because alternative \AmS\ environments exist. We redefine the \Meta{eqnarray} to work in the \AmS\ style. The following improvements were done in it: an equation tag is prepared by the same manner as in \AmS\ display formulas (\com{tag} and \com{tag*} are allowed); the \com{displaybreak} command is allowed; the intercolumn distance is reduced to the distance between ordinary and relational math symbols; and the center field is prepared in the \com{displaystyle}. \item In old NCC-\LaTeX, a display equivalent for the \Meta{array} environment, namely \Meta{darray}, was implemented. In the new release, it is implemented also but in a bit different way to avoid conflicts with packages that redefine the \Meta{array} environment. The use of column specifications in the \Meta{darray} environment is restricted to \Meta{l}, \Meta{c}, \Meta{r}, \Meta{@}, and \Meta{*} commands. The intercolumn distance is just the same as for \Meta{eqnarray} environment and no space is inserted before the first and after the last column. \end{itemize} \subsubsection{NCC-\LaTeX\ equivalents to display formulas} The following NCC-\LaTeX\ equivalents are provided with \package{nccmath}: \begin{desclist}{}{\hfill\enskip=}[\com{eqalign*}\meta{formulas}] \raggedright \item[\com{eq}\meta{formula}] \verb+\begin{equation}+ \Meta{\itshape formula} \verb+\end{equation}+. \item[\com{eq*}\meta{formula}] \verb+\begin{equation*}+ \Meta{\itshape formula} \verb+\end{equation*}+. \item[\com{eqs}\meta{formulas}] \verb+\begin{eqnarray}+ \Meta{\itshape formulas} \verb+\end{eqnarray}+. \item[\com{eqs*}\meta{formulas}] \verb+\begin{eqnarray*}+ \Meta{\itshape formulas} \verb+\end{eqnarray*}+. \item[\com{eqalign}\meta{formulas}] \verb+\begin{equation} \begin{darray}{rcl}+ \Meta{\itshape formulas} \verb+\end{darray} \end{equation}+. \item[\com{eqalign*}\meta{formulas}] \verb+\begin{equation*} \begin{darray}{rcl}+ \Meta{\itshape formulas} \verb+\end{darray} \end{equation*}+. \end{desclist} The \com{eqs} and \com{eqs*} commands have an optional parameter describing a distance between columns. For example, \begin{verbatim} \eqs[0mm]{&& -\Delta u = f, \\ && u|_\Gamma = 0,} \end{verbatim} removes the intercolumn distance because the 3rd column is only used here. The \Meta{eqnarray} environment has no optional parameter. The \com{eqalign} and \com{eqalign*} commands have an optional parameter also. Its meaning is the column specification parameter: \com{eqalign}\meta{formulas} = \verb+\eqalign[rcl]+\meta{formulas}. \subsubsection{Remarks on display equations} The alignment style in display equations (except \TeX's low level \verb|$$|) can be changed using the following environments: \begin{quote} \com{begin}\meta{fleqn}\opt{margin} \Meta{\itshape body} \com{end}\meta{fleqn}\\ \com{begin}\meta{ceqn} \Meta{\itshape body} \com{end}\meta{ceqn} \end{quote} The \Meta{fleqn} environment sets the flush left alignment with the left margin specified by the optional parameter (default margin is \Meta{0pt}). The \Meta{ceqn} environment sets the centered alignment. The \com{intertext} command from \package{amsmath} now has an optional parameter, \begin{quote} \com{intertext}\opt{skip}\meta{text between formulas} \end{quote} The \Meta{\itshape skip} is a vertical skip value inserted before and after the text. If it is omitted, the standard spaces are inserted. In \LaTeX, it is not recommended to start a display formula from a new paragraph (in vertical mode in other words). This is because the \TeX's algorithm inserts an empty paragraph before such a formula. To avoid insertion of an empty paragraph, Donald Knuth recommended to use \com{noindent} command before a display formula starting in the vertical mode. This trick is used in the \package{nccmath} package. All display environments are slightly corrected with insertion of \com{NCC@ignorepar} command at their beginning. This command does a little more than simply applies this trick. It provides suppressing of the vertical space before a display formula if it opens a minipage. It also supports the use of short skip above a display environment by user's request. In \TeX, two types of skips above display formulas are used: the normal skip defined in the \com{abovedisplayskip} register and the short skip defined in the \com{abovedisplayshortskip} register. When a display formula is typed out, \TeX\ decides what skip to insert depending on width of the formula, its style (centered or flushed left, numbered left or right), and the width of the rest of text in the last line of the previous paragraph. But this algorithm works for ordinary formulas only. It does not work in multiline formulas prepared with \com{halign} command. So, a manual replacement of normal skip to short skip is required in some cases. To provides this, the \com{useshortskip} command is introduced in the \package{nccmath} package. It forces the use of short skip in a display formula going after it. \subsubsection{Other math commands} The following commands were ported from the old NCC-\LaTeX: \begin{description}[\com{nr}] \item[\com{nr}] has just the same syntax as the \verb+\\+ but inserts an extra vertical space of \Meta{0.5ex}. It is quite useful in display formulas to separate some rows a bit more. \item[\com{mrel}\meta{rows}] prepares a new math relation symbol from one-column table of math formulas. For example, the command \verb+$\mrel{<\\[-.7ex]>}$+ produces $\mrel{<\\[-.7ex]>}$. \item[\com{underrel}\meta{base}\meta{bottom}] is a twin to \com{overrel}. For example,\\ \verb+$A\underrel{\longrightarrow}{x\to 0}B$+ produces $A\underrel{\longrightarrow}{x\to 0}B$. \end{description} \subsection{Figures and tables in NCC-\LaTeX{}} The standard \LaTeX\ floating environments, namely \Meta{figure} and \Meta{table}, allow user to place floating material in a document. But they do not introduce a style in which this material must be prepared. In NCC-\LaTeX, envelop commands are developed which join a style with a float and introduce more features. These commands are implemented in the \package{nccfloats} package from the \bungle{ncctools} bungle. \subsubsection{Basic commands} The \com{FloatingStyle}\meta{style} command sets a style of floats in the document. It affects on the material prepared with commands described below. The default style is \begin{verbatim} \FloatingStyle{\footnotesize\centering} \end{verbatim} We start with the basic commands, namely \com{minifig} and \com{minitabl}. They prepare a material in a minipage and allow using the \com{caption} command in the body. Their syntax is similar to the \com{parbox} command: \begin{quote} \com{minifig}\opt{pos}\opt{height}\opt{inner-pos}\meta{width}\meta{body}\\ \com{minitabl}\opt{pos}\opt{height}\opt{inner-pos}\meta{width}\meta{body} \end{quote} The \Meta{\itshape pos} is a vertical alignment parameter for minipage (\Meta{t}, \Meta{b}, or \Meta{c}) with respect to surrounding text; the \Meta{\itshape height} is a minipage height required; the \Meta{\itshape inner-pos} is a vertical alignment of text inside the minipage (\Meta{t}, \Meta{b}, \Meta{c}, or \Meta{s}); and the \Meta{\itshape width} is the minipage width. The \Meta{\itshape body} is prepared in the specified style and can contain a \com{caption} command. All other NCC-\LaTeX\ floating extension commands are based on \com{minifig} and \com{minitabl}. \subsubsection{Side figure or table} For small figures and tables, it is preferable to insert them inside a text instead of using floating mechanism. The typographic rules usually require an illustrative material to occupy an outer side of paper. In two side printing, this means figure and tables should be on the right side if a page number is odd and on the left side if page number is even. In one side printing, figures and tables must occupy the right side of paper. The following commands support such a placement: \begin{quote} \com{sidefig}\opt{pos}\Meta{($w_1$)}\Meta{($w_2$)}\meta{figure body}\meta{text body}\\ \com{sidefig*}\opt{pos}\Meta{($w_1$)}\Meta{($w_2$)}\meta{figure body}\meta{text body}\\ \com{sidetabl}\opt{pos}\Meta{($w_1$)}\Meta{($w_2$)}\meta{table body}\meta{text body}\\ \com{sidetabl*}\opt{pos}\Meta{($w_1$)}\Meta{($w_2$)}\meta{table body}\meta{text body} \end{quote} For simplicity, we further use the term \textit{minifloat} for the small illustrating material (figure or table), however understanding that it is not a float at all. It is inserted in the main flow next to a paragraph box specified in the last parameter of above described commands. The no-star forms of above described commands place a minifloat next to the specified text on the outer side of page (to the right for odd page and to the left for even page). In two column or one side mode, minifloat is always posed to the right. The star forms provide the reverse placement. By default, minifloat is vertically centered with respect to the text and the \com{strut} command is inserted at the beginning and at the end of the \Meta{\itshape text body} to provide normal baseline distances of the first and last lines of the text from surrounding text lines. All parameters in square and round brackets are optional and mean the following: \begin{desclist}{}{}[\Meta{\itshape pos}] \item[\Meta{\itshape pos}] specifies minifloat alignment (\Meta{t}, \Meta{b}, or \Meta{c}; default is \Meta{c}) with respect to text box and can contain additional chars controlling the text body preparation: \Meta{j} means the last line of the text to be justified to the right and \Meta{n} means suppressing of struts insertion (they should be inserted manually if necessary); \item[$w_1$] is the width of minifloat (if units are omitted, the \com{unitlength} is supposed); and \item[$w_2$] is the width of the text box (if units are omitted, the \com{unitlength} is supposed). \end{desclist} If both width parameters are absent, the widths are calculated as \verb+(\linewidth-1.5em)/2+. If $w_2$ is absent, the text body width is calculated as \verb+\linewidth-+$w_1$\verb+-1.5em+. While preparing a side minifloat, it is sometimes necessary to provide conditional placement depending on the side a minifloat is posed. The command \begin{quote} \com{ifleftsidefloat}\meta{left-clause}\meta{right-clause} \end{quote} provides this. It is useful in parameters of \com{sidefig} or \com{sidetabl} and processes \Meta{\itshape left-clause} if the minifloat is posed to the left or \Meta{\itshape right-clause} otherwise. \subsubsection{Floating figure or table} \begin{quote} \com{fig}\opt{placement}\Meta{($w$)}\meta{body}\\ \com{fig*}\opt{placement}\Meta{($w$)}\meta{body}\\ \com{tabl}\opt{placement}\Meta{($w$)}\meta{body}\\ \com{tabl*}\opt{placement}\Meta{($w$)}\meta{body} \end{quote} The \Meta{\itshape placement} is a float placement parameter describing places where a float can appear. The default value is \Meta{htp} (here, or at the top of the next page, or on the page with floats only). The optional \Meta{($w$)} parameter defines a width of box occupied by the float (the width of nested \com{minifig} or \com{minitabl}). If it is omitted, the float has the maximum width equal to \com{linewidth}. The \com{fig} and \com{tabl} commands envelop the \Meta{figure} and \Meta{table} environments respectively. Their star-forms envelop corresponding starred environments. \subsubsection{Two floating figures or tables side by side} \begin{quote} \com{figs}\opt{placement}\Meta{($w_1$)}\Meta{($w_2$)}\meta{body1}\meta{body2}\\ \com{figs*}\opt{placement}\Meta{($w_1$)}\Meta{($w_2$)}\meta{body1}\meta{body2}\\ \com{tabls}\opt{placement}\Meta{($w_1$)}\Meta{($w_2$)}\meta{body1}\meta{body2}\\ \com{tabls*}\opt{placement}\Meta{($w_1$)}\Meta{($w_2$)}\meta{body1}\meta{body2} \end{quote} These commands place two figures or tables side by side. The \Meta{\itshape body1} is a body of the left figure or table and the \Meta{\itshape body2} is a body of the right figure or table. Other parameters are optional. The meaning and default value of the \Meta{\itshape placement} parameter is the same as described above. The \Meta{($w_1$)} and \Meta{($w_2$)} parameters are widths of left and right boxes. If they both are omitted, the left and right boxes will have the width equal to \Meta{(\com{linewidth}-1em)/2}. If \Meta{($w_2$)} is omitted, the right box will occupy the rest of horizontal space minus \Meta{1em}. If both parameters are specified, the rest space is inserted between boxes. If the total width of left and right floats exceeds the \com{linewidth}, the floats will overlap at the middle of line (a negative horizontal space is inserted between them). In \com{tabls} command, boxes of the left and right bodies are top-aligned, but in \com{figs} command, the bottom alignment is used. \subsection{Graphics in NCC-\LaTeX{}} The \package{nccpic} package from the \bungle{ncctools} bungle envelops the standard \package{graphicx} package. The package passes all options to the underground package. The main aim of the \package{nccpic} package is the preparing of graphics extensions list depending on a dvi-driver used with the \package{graphicx} package. This allows omit an extension of a graphics file in the \com{includegraphics} command. When a file without extension is searched, this command sequentially tries extensions from the list until an appropriate file will be found. Using this feature you can support multiple output from \LaTeX\ with minimum changes in \Meta{.tex} sources. The only required thing is to prepare a number of versions for all graphics files called in a document. For example, the dvips program likes \Meta{.eps} files, the Yap previewer likes \Meta{.bmp} or \Meta{.eps} files, the pdflatex likes \Meta{.png} files. To satisfy their needs, you can prepare \Meta{.eps}, \Meta{.bmp}, and \Meta{.png} versions for all pictures and pass a required option to the \package{nccpic} package. The graphics extensions list is customized now for most popular drivers, namely \Opt{dvips}, \Opt{dvipdf}, and \Opt{dvipdfm}, and for use with \Opt{pdftex} also. More customization is welcome! The next aim of the \package{nccpic} package is the regulation of placement of graphics files in the file system. It is too inconvenient when pictures are stored together with \Meta{.tex} source files. We propose to store graphics files in the \Meta{graphics} subdirectory of the source directory. To support the search in this storage, the graphics path is customized in the \package{nccpic} package. The following commands are introduced in the \package{nccpic} package: \begin{desclist}{}{} \item[\com{ipic}\meta{filename}] command loads a file having the name \Meta{{\itshape filename}.pic} searching it in the graphics path. It allow to take actual graphics inclusion commands out of source files for automation purposes. \item[\com{putimage}\Meta{($x,y$)[$x_r,y_r$]($x_s,y_s$)}\meta{filename}] command emulates a graphics inclusion technique used in the old NCC-\LaTeX. Look in the \package{nccpic} package file for more detail description. \item[\com{draftgraphics} and \com{finalgraphics}] are toggles between final and draft modes for preparation of graphics. In draft mode, a graphics object is shown as a framebox of the required dimensions with an object name in it. Using these commands, you can toggle graphics preparation mode on the fly. In draft mode, the \com{putimage} command does not test an existence of required graphics file. \end{desclist} \subsection{Additional boxes} The \package{nccboxes} package from the \bungle{ncctools} bungle provides additional boxes: \begin{description} \item[\com{jhbox}\meta{prototype}\opt{align}\meta{body}] horizontally aligns the body in the text box which width is defined by the \Meta{\itshape prototype} parameter. The optional \Meta{\itshape align} parameter defines a position of alignment (\Meta{l}, \Meta{c}, \Meta{r}, or \Meta{s}; default is \Meta{c}). \item[\com{jvbox}\meta{prototype}\opt{align}\meta{body}] vertically aligns the body with respect to the strut defined by the \Meta{\itshape prototype} parameter. The optional \Meta{\itshape align} parameter defines a position of alignment (\Meta{t}, \Meta{c}, or \Meta{b}; default is \Meta{c}). If \Meta{t} is used, the body is raised in such a way that its height will be equal to the height of the prototype's strut. For \Meta{b} case, the depths will be equal and, for \Meta{c} case, the body is vertically centered with respect to prototype's strut. \item[\com{jparbox}\meta{prototype}\opt{align}\meta{width}\meta{body}] prepares a paragraph box of required \Meta{\itshape width} and vertically aligns it with respect to the \Meta{\itshape prototype} by the same manner as \com{jvbox}. \item[\com{pbox}\opt{align}\meta{body}] is a simple one-column table. The \Meta{\itshape align} parameter may consist of two letters defining a relative alignment in the column (\Meta{l}, \Meta{c}, or \Meta{r}) and the vertical alignment of the table with respect to surrounding text (\Meta{t}, \Meta{c}, or \Meta{b}). Centering is the default alignment. The distance between the table rows is independent on the \com{arraystretch} value. \item[\com{addbox}\meta{above}\meta{below}\meta{body}] prepares an hbox containing the \Meta{\itshape body} which height is adjusted to the value of the \Meta{\itshape above} length parameter and depth is adjusted to the value of the \Meta{\itshape below} length parameter. For example, \verb+\addbox{.5ex}{.5ex}{text}+ increases the height and depth of produced hbox on \Meta{0.5ex}. \item[\com{picbox}\meta{body}] = \verb+\begin{picture}(0,0)(0,0)+ \Meta{\itshape body} \verb+\end{picture}+. \end{description} To prepare a fancy table, the following commands can be used: \begin{desclist}{}{} \item[\com{Strut}\Meta{/{\itshape value}/}] is a strut which height and depth are calculated from the strut prototype (letter \Meta{A} by default) as follows: if \Meta{{\itshape value}>0}, the full height of the current \com{strutbox} multiplied by the \Meta{\itshape value} is added to the height of prototype strut, otherwise the depth of prototype strut is increased with the modulus of \Meta{\itshape value} multiplied by the full height of \com{strutbox}. For example, \verb+\Strut/1/+ inserts a strut which height exceeds the height of the letter \Meta{A} from the current font on the interline distance. The \com{Strut} without parameter is equal to \verb+\Strut/0/+. \item[\com{tstrut}, \com{bstrut}, and \com{tbstrut}] insert struts exceeding the height, depth, and height and depth of the strut prototype by a special small amount. This amount is calculated in such a way that the full height of \com{tbstrut} will be equal to 1.5 of full height of the current \com{strutbox}. \item[\com{cbox}\Meta{/{\itshape value}/}\opt{align}\meta{body}] prepares a box whose body is a one-column table. Its height and depth are enlarged using \com{tstrut} at the beginning and \com{bstrut} at the end of body. The horizontal alignment (\Meta{l}, \Meta{c}, or \Meta{r}) in the column and the vertical alignment (\Meta{t}, \Meta{c}, or \Meta{b}) are defined in the \Meta{\itshape align} parameter. Centered alignment is used by default. The resulting box is vertically aligned with respect to the \com{Strut}\Meta{/{\itshape value}/} using the \com{jvbox} command. The \com{cbox*} command does the same but vanishes the height and depth of the resulting box. \end{desclist} The \com{cbox} command is used in the headers of tables. Its star form is useful in cells having vertical spans. The style for typing its body is managed with the \com{cboxstyle} command. Its default value is empty but in NCC-\LaTeX\ this command is redefined as follows: \begin{verbatim} \renewcommand\cboxstyle{\scriptsize} \end{verbatim} We demonstrate the use of struts and \com{cbox} on the example \begin{center} \renewcommand\cboxstyle{\small\bf} \setlength{\tabcolsep}{10pt} \begin{tabular}{|l|c|c|c|}\hline \cbox*/-1.5/{Vertically\\spanned head} & \cbox{Simple head} &\multicolumn2{c|}{\cbox{Very long head\\of two lines}}\\\cline{2-4} &\cbox{subhead} &\cbox{subhead} &\cbox{subhead}\\\hline \Strut/1/ Text & field & field & field \\ Text & field & field & field \\ \bstrut Text & field & field & field \\\hline \end{tabular} \end{center} produced by the following code: \begin{verbatim} \begin{center} \renewcommand\cboxstyle{\small\bf} \setlength{\tabcolsep}{10pt} \begin{tabular}{|l|c|c|c|}\hline \cbox*/-1.5/{Vertically\\spanned head} & \cbox{Simple head} &\multicolumn2{c|}{\cbox{Very long head\\of two lines}}\\\cline{2-4} &\cbox{subhead} &\cbox{subhead} &\cbox{subhead}\\\hline \Strut/1/ Text & field & field & field \\ Text & field & field & field \\ \bstrut Text & field & field & field \\\hline \end{tabular} \end{center} \end{verbatim} \subsection{Miscellaneous commands} We describe here commands provided by the \package{ncclatex} package itself. \begin{desclist}{}{} \item[\com{acknow}] starts a new paragraph with the \textit{Acknowledgements} title. \item[\com{cref}\meta{citelabel}] produces a citation without brackets to the specified \Meta{\itshape citelabel}. It is used in the case of citations containing ranges, e.g.\ [2--4, 7]. \item[\com{mop}\meta{name}] is used for coding new math operations like $\sin$. For example, \verb+$k=\mop{sgn}x$+ produces $k=\mop{sgn}x$ with proper font and spaces. This command is equivalent to \AmS\ \com{operatorname} command. \item[\com{tg}, \com{ctg}, \com{arctg}, and \com{arcctg}] produce math operations for tangent, cotangent, and for their inverse functions in Russian typesetting tradition. \item[\com{No}] produces the numero symbol. If the \Opt{russian} option is not used, this command emulates the numero symbol with the text ``\No''. \item[\com{tc}\meta{body}] adjust the body to the center using \verb+\hspace*{\fill}+ glues. This command is useful in tables when centered alignment of a particular cell is required but another alignment is specified for the column the cell belongs to. \end{desclist} The titles of proof, predefined theorems, and acknowledgements are declared with commands having the \Meta{name} suffix. For example, the proof title is coded in the \com{proofname}, the title of lemmas is defined in the \com{lemmaname}, and the acknowledgements title is coded in the \com{acknowname} command. They all can be redefined to provide internationalization (the \Opt{russian} option redefines these titles in Russian). \section{The sibjnm class} This class describes a style used in the \textit{Siberian Journal of Numerical Mathematics} (SibJNM), \texttt{http://www.sscc.ru/SibJNM/}, email: \texttt{sibjnm@oapmg.sscc.ru}. We recommend to use this class for submitting an article to this journal. The \package{sibjnm} class is based on the \package{ncc} class. It sets the following options of \package{ncc} class: \Opt{a4paper}, \Opt{11pt}, \Opt{article}, \Opt{twoside}, and \Opt{onecolumn}. A user can manage the following options: \Opt{draft}, \Opt{final}, \Opt{openany}, \Opt{openright}, and \Opt{russian}. Other options are forbidden. The SibJNM is a bilingual journal. An article can be prepared in English or in Russian. An abstract is prepared in both languages. Before abstracts, one of subject classification commands must be used: \com{UDC}\meta{indices} or \com{AmSclassification}\meta{indices}. The first command sets UDC classification indices and the last command sets \AmS\ classification indices of the article subject. The russian abstract must go right after the \com{maketitle} command. Its syntax: \begin{quote} \verb+\begin{Rabstract}+\meta{Authors}\meta{Title} \Meta{\itshape body} \verb+\end{Rabstract}+ \end{quote} The english abstract must go after the russian one. Its syntax is similar: \begin{quote} \verb+\begin{Eabstract}+\meta{Authors}\meta{Title} \Meta{\itshape body} \verb+\end{Eabstract}+ \end{quote} The text field of SibJNM article is 155$\times$225 mm. \end{document}