diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/ncctools/topsection.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/ncctools/topsection.dtx | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/ncctools/topsection.dtx b/Master/texmf-dist/source/latex/ncctools/topsection.dtx new file mode 100644 index 00000000000..905b702f94f --- /dev/null +++ b/Master/texmf-dist/source/latex/ncctools/topsection.dtx @@ -0,0 +1,133 @@ +% \iffalse +%% +%% File: topsection.dtx Copyright (C) 2005 by Alexander I. Rozhenko +%% +%<package>\NeedsTeXFormat{LaTeX2e} +%<package>\ProvidesPackage{topsection} +%<package> [2005/12/24 v1.0 Top section definition (NCC)] +% +% \changes{v1.0}{2005/12/24}{Initial version} +% +%<*driver> +\let\makeindex\relax +\documentclass{ltxdoc} +\usepackage{topsection} +\GetFileInfo{topsection.sty} +\begin{document} +\title{The \textsf{topsection} package\thanks{This file + has version number \fileversion, last + revised \filedate.}} +\author{Alexander I. Rozhenko\\rozhenko@oapmg.sscc.ru} +\date{\filedate} +\maketitle +\DocInput{topsection.dtx} +\end{document} +%</driver> +% \fi +% \DescribeMacro\topsection +% This package implements an unnumbered top-level section +% (chapter in books and reports or section in articles): +% \begin{quote} +% |\topsection|\marg{title} +% \end{quote} +% Such a section is used when table of contents, index, or +% bibliography are prepared. So, the |\topsection| command can +% be used to make such definitions or redefinitions to be independent +% on class in use. The command definition is compatible with standard +% \textbf{article}, \textbf{book}, and \textbf{report} classes +% and also with the \textbf{ncc} class. +% +% \DescribeMacro\@iftopchapter +% To distinguish what type of top section is used, the following +% conditional command is also specified: +% \begin{quote} +% |\@iftopchapter|\marg{chapter-clause}\marg{section-clause} +% \end{quote} +% The \meta{chapter-clause} is executed if top section is the |\chapter|. +% Otherwise, the \meta{section-clause} is executed. +% +% If the \textbf{nccsect} +% package is used together with this package, the top-section title +% is also written to the aux-file. To avoid this, +% use |\skipwritingtoaux| modifier just before the top section. +% +% \StopEventually{} +% +% \section{The Implementation} +% +% At first, we provide |\@mkboth| command to be sure that +% it is defined (in \textbf{ncc} class |\@mkboth| useless and +% so it does not defined here). If it does not exist yet, its +% default value will be equal to \LaTeX's |\@gobbletwo| command. +% \begin{macrocode} +%<*package> +\providecommand\@mkboth[2]{} +% \end{macrocode} +% +% \begin{macro}{\NCC@topsection} +% \begin{macro}{\@iftopchapter} +% The |\NCC@topsection| macro contains a command to be used as a +% top section. To select an appropriate command, we test the +% |\chapter| command to be defined. The |\@iftopchapter| macro is +% also specified here. +% \begin{macrocode} +\newcommand\@iftopchapter[2]{} +\@ifundefined{chapter}{% + \def\NCC@topsection{\section}% + \let\@iftopchapter\@secondoftwo +}{% + \def\NCC@topsection{\chapter}% + \let\@iftopchapter\@firstoftwo +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\topsection} +% Now we define the |\topsection| command. When the package is loaded, +% we specify the command to be a new one. Its real definition +% is done at the beginning of document when all packages are +% already loaded and an appropriate decision can be selected. +% \begin{macrocode} +\newcommand*\topsection[1]{} +\AtBeginDocument{% +% \end{macrocode} +% If the \textbf{nccsect} package is in use, we define the |\topsection| +% command using the basic form of the corresponding sectioning command. +% The |\noheadingtag| modifier turns off the top-section numbering. +% In the definition, we test the |\@mkboth| command to be equal to +% |\@gobbletwo|. This situation appears in two cases: when the page +% style other than |headings| is used or when the \textbf{ncc} class +% is loaded. In the last case, the appropriate page header is already +% specified in sectioning command with corresponding mark-command +% (|\chaptermark| or |\sectionmark| updates both headers by the same +% manner). So, in both these cases we need not use the |\@mkboth|. +% But in other cases we specify the header mark in standard way +% and use the |\norunninghead| modifier to skip updating headers +% inside the sectioning command. +% \begin{macrocode} + \@ifpackageloaded{nccsect}{% + \renewcommand*\topsection[1]{% + \ifx\@mkboth\@gobbletwo + \noheadingtag \NCC@topsection{#1}% + \else + \norunninghead + \noheadingtag \NCC@topsection{#1}% + \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}% + \fi + }% +% \end{macrocode} +% When the \textbf{nccsect} package does not loaded, the top-section +% definition uses just the same technique as in standard classes. +% \begin{macrocode} + }{% + \renewcommand*\topsection[1]{% + \NCC@topsection*{#1}% + \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}% + }% + }% +} +%</package> +% \end{macrocode} +% \end{macro} +\endinput |