summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/stdclsdv
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/stdclsdv
Initial commit
Diffstat (limited to 'macros/latex/contrib/stdclsdv')
-rw-r--r--macros/latex/contrib/stdclsdv/README27
-rw-r--r--macros/latex/contrib/stdclsdv/stdclsdv.dtx373
-rw-r--r--macros/latex/contrib/stdclsdv/stdclsdv.ins71
-rw-r--r--macros/latex/contrib/stdclsdv/stdclsdv.pdfbin0 -> 148526 bytes
4 files changed, 471 insertions, 0 deletions
diff --git a/macros/latex/contrib/stdclsdv/README b/macros/latex/contrib/stdclsdv/README
new file mode 100644
index 0000000000..d7cbfeeaec
--- /dev/null
+++ b/macros/latex/contrib/stdclsdv/README
@@ -0,0 +1,27 @@
+____________________
+The STDCLSDV package
+
+ The stdclsdv package is designed for package writers who need to
+know what sectioning divisions are provided by the document's class.
+
+ The distribution consists of the following files:
+README (this file)
+stdclsdv.ins
+stdclsdv.dtx
+
+ The distribution is provided under the terms of the LaTeX
+Project Public License (LPPL).
+
+Changes in version 1.1a:
+- New maintainer (Will Robertson)
+
+Changes in version 1.1:
+- Added support for the koma classes (courtesy of Joerg Jaspert)
+
+ To install the package:
+- run: latex stdclsdv.ins (which will generate stdclsdv.sty)
+- run: latex stdclsdv.dtx
+- run: makeindex -s gind.ist stdclsdv
+- run: latex stdclsdv.dtx
+- Print stdclsdv.dvi for a hardcopy of the package manual
+- Move stdclsdv.sty to a location where LaTeX will find it.
diff --git a/macros/latex/contrib/stdclsdv/stdclsdv.dtx b/macros/latex/contrib/stdclsdv/stdclsdv.dtx
new file mode 100644
index 0000000000..868ac16f3f
--- /dev/null
+++ b/macros/latex/contrib/stdclsdv/stdclsdv.dtx
@@ -0,0 +1,373 @@
+% \iffalse meta-comment
+%
+% stdclsdv.dtx
+% Copyright 1999 Peter R. Wilson
+%
+% This program is provided under the terms of the
+% LaTeX Project Public License distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+%
+% Author: Peter Wilson, Herries Press
+% Maintainer: Will Robertson (will dot robertson at latex-project dot org)
+%
+%<*driver>
+\documentclass{ltxdoc}
+\EnableCrossrefs
+\CodelineIndex
+%%\OnlyDescription
+\setcounter{StandardModuleDepth}{1}
+\begin{document}
+ \DocInput{stdclsdv.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+% \CheckSum{130}
+%
+% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath}
+% \DoNotIndex{\@centercr,\@cite}
+% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue}
+% \DoNotIndex{\@input,\@ixpt,\@m}
+% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint}
+% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb}
+% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt}
+% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt}
+% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace}
+% \DoNotIndex{\advance,\Alph,\alph}
+% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box}
+% \DoNotIndex{\bullet}
+% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption}
+% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass}
+% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist}
+% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup}
+% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter}
+% \DoNotIndex{\fbox}
+% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef}
+% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule}
+% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi}
+% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi}
+% \DoNotIndex{\input}
+% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark}
+% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright}
+% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment}
+% \DoNotIndex{\NeedsTeXFormat,\newdimen}
+% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number}
+% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@}
+% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip}
+% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions}
+% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright}
+% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font}
+% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman}
+% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength}
+% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space}
+% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase}
+% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt}
+% \DoNotIndex{\viipt,\vipt,\vskip,\vspace}
+% \DoNotIndex{\wd,\xiipt,\year,\z@}
+%
+% \changes{v1.0}{1999/01/17}{First public release}
+% \changes{v1.1}{2000/07/16}{Added koma classes}
+% \changes{v1.1a}{2009/09/04}{New maintainer (Will Robertson)}
+%
+% \def\fileversion{v1.0} \def\filedate{1999/01/17}
+% \def\fileversion{v1.1} \def\filedate{2000/07/16}
+% \def\fileversion{v1.1a} \def\filedate{2009/09/04}
+% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package
+% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option
+% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file
+% \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter
+% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle
+% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment
+%
+% \title{The \Lpack{stdclsdv} package\thanks{This
+% file has version number \fileversion, last revised
+% \filedate.}}
+%
+% \author{%
+% Peter Wilson, Herries Press\thanks{This work was originally
+% performed as
+% a Guest Researcher at the National Institute of Standards and Technology.}\\
+% Maintainer: Will Robertson \\
+% \texttt{will dot robertson at latex-project dot org}
+% }
+% \date{\filedate}
+% \maketitle
+% \begin{abstract}
+% The \Lpack{stdclsdv} package is intended to be used by the authors
+% of \LaTeX{} packages that need to know about the sectional divisions
+% provided by the document class.
+% \end{abstract}
+% \tableofcontents
+%
+%
+%
+% \section{Introduction}
+%
+% Several packages need to know the kind of sectional divisions
+% provided by the document class.
+%
+% The \Lpack{stdclsdv} package provides a solution for
+% for the case when the document class is one of the \LaTeX{} standard
+% classes (i.e., \Lpack{book}, \Lpack{report}, \Lpack{article},
+% \Lpack{letter}, \Lpack{slides}, and classes derived from the
+% \Lpack{article} class, namely \Lpack{ltxdoc} and \Lpack{proc}).
+% It also handles the \Lpack{koma} classes.\footnote{Courtesy of
+% Joerg Jaspert \texttt{Joerg.Jaspert@informatik.fh-fulda.de}.}
+%
+% This manual is typeset according to the conventions of the
+% \LaTeX{} \textsc{docstrip} utility which enables the automatic
+% extraction of the \LaTeX{} macro source files~\cite{GOOSSENS94}.
+%
+% Section~\ref{sec:usc} describes the usage of the package.
+% Commented source code for the package is in Section~\ref{sec:code}.
+%
+% \section{The \Lpack{stdclsdv} package} \label{sec:usc}
+%
+% The \Lpack{stdclsdv} package provides several |\if...| macros
+% which can be used to determine the kinds of sectional divisions
+% supported by the current (standard) |\documentclass|.
+%
+% The package is designed to work with the standard \LaTeX{}
+% document classes \Lpack{book}, \Lpack{report}, \Lpack{article}, \Lpack{proc}
+% and \Lpack{ltxdoc} class (which is based to a large extent on
+% the \Lpack{article} class).
+%
+% \DescribeMacro{\ifSCDknownclass}
+% |\ifSCDknownclass| is TRUE iff the document class is one of:
+% \Lpack{book}, \Lpack{report}, \Lpack{article}, \Lpack{letter},
+% \Lpack{slides}, \Lpack{proc}, \Lpack{ltxdoc},
+% \Lpack{scrbook}, \Lpack{scrreprt}, \Lpack{scrartcl} or \Lpack{scrlettr}.
+% Otherwise it is FALSE.
+%
+% \DescribeMacro{\ifSCDchapter}
+% |\ifSCDchapter| is TRUE iff the document class defines a |\chapter|
+% sectional division, otherwise it is FALSE.
+%
+% \DescribeMacro{\ifSCDpart}
+% |\ifSCDpart| is TRUE iff the document class defines a |\part|
+% sectional division, otherwise it is FALSE.
+%
+% \DescribeMacro{\ifSCDsection}
+% |\ifSCDsection| is TRUE iff the document class defines a |\section|
+% sectional division, otherwise it is FALSE.
+%
+% \DescribeMacro{\ifSCDnodivs}
+% |\ifSCDnodivs| is TRUE iff the document class has neither |\part|
+% nor |\chapter|
+% nor |\section| divisions, otherwise it is FALSE.
+%
+% \DescribeMacro{\SCDquit}
+% If the document class or divisioning is not handled by a package, it
+% can be useful to skip all futher package code. This could be done using:
+% \begin{verbatim}
+% ...
+% \ifSCDknownclass
+% % normal processing
+% \else % just before end of package file
+% % error/warning message about unknown class
+% \fi
+% \endinput
+% \end{verbatim}
+% Alternatively, using the |\SCDQuit| command provides a clearer means
+% of accomplishing this. The |\SCDquit| macro is defined to do nothing.
+% It is intended to
+% be used for prematurely ending a package file in the following manner:
+% \begin{verbatim}
+% \ifSCDknownclass\else
+% \renewcommand{\SCDquit}{\endinput}
+% % error/warning message about unknown class
+% \fi
+% \SCDquit % ends the file iff the class is unknown
+% % normal processing
+% ...
+% \endinput
+% \end{verbatim}
+%
+% \DescribeMacro{\SCDCheckCommand}
+% \DescribeMacro{\ifSCDSameDefinition}
+% |\SCDCheckCommand| takes the same arguments as |\newcommand|, that is:\\
+% |\SCDCheckCommand{|\meta{command}|}[|\meta{nargs}|][|\meta{defarg}|]{|\meta{definition}|}| \\
+% |\SCDCheckCommand| is
+% identical to the kernel |\CheckCommand| (see \file{ltdefns.dtx}) except
+% that it sets |\ifSCDSameDefinition| to TRUE iff the definition given
+% in |\SCDCheckCommand| is the same as the current definition, otherwise
+% |\ifSCDSameDefinition| is set to FALSE.
+% (|\CheckCommand| issues a warning if the definitions are different).
+%
+%
+% \StopEventually{
+% \bibliographystyle{alpha}
+% \begin{thebibliography}{GMS94}
+% \bibitem[GMS94]{GOOSSENS94}
+% Michel Goossens, Frank Mittelbach, and Alexander Samarin.
+% \newblock {\em The LaTeX Companion}.
+% \newblock Addison-Wesley Publishing Company, 1994.
+% \end{thebibliography}
+% }
+%
+%
+% \section{The package code} \label{sec:code}
+%
+% Announce the name and version of the package, which requires
+% \LaTeXe.
+% \begin{macrocode}
+%<*usc>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{stdclsdv}[2009/09/04 v1.1a Sectional divisions]
+% \end{macrocode}
+%
+% In order to try and avoid name clashes with other packages, each macro
+% name includes the character string |SCD| (Standard Class Division).
+%
+% \begin{macro}{\ifSCDknownclass}
+% \begin{macro}{\ifSCDpart}
+% \begin{macro}{\ifSCDchapter}
+% \begin{macro}{\ifSCDsection}
+% \begin{macro}{\ifSCDnodivs}
+% These are used when we need to decide what sectional
+% divisions are supported by the document's class.
+% We will assume assume an unknown class that has |\part| and |\section|
+% but not
+% |\chapter| divisions.
+% \begin{macrocode}
+\newif\ifSCDknownclass\SCDknownclassfalse
+\newif\ifSCDpart\SCDparttrue
+\newif\ifSCDchapter\SCDchapterfalse
+\newif\ifSCDsection\SCDsectiontrue
+\newif\ifSCDnodivs\SCDnodivsfalse
+% \end{macrocode}
+% Check the actual class.\footnote{Thanks to David Carlisle for
+% information on how to check on the class.}
+% \begin{macrocode}
+\@ifclassloaded{book}{\SCDknownclasstrue\SCDchaptertrue}{}
+\@ifclassloaded{report}{\SCDknownclasstrue\SCDchaptertrue}{}
+\@ifclassloaded{article}{\SCDknownclasstrue}{}
+\@ifclassloaded{proc}{\SCDknownclasstrue}{}
+\@ifclassloaded{ltxdoc}{\SCDknownclasstrue}{}
+\@ifclassloaded{slides}{\SCDknownclasstrue
+ \SCDnodivstrue\SCDpartfalse\SCDsectionfalse}{}
+\@ifclassloaded{letter}{\SCDknownclasstrue
+ \SCDnodivstrue\SCDpartfalse\SCDsectionfalse}{}
+% \end{macrocode}
+% Joerg Jaspert supplied, via Email on 2000/07/16, the following code
+% for the \Lpack{koma} classes.
+% \changes{v1.1}{2000/07/16}{Added checks for koma classes}
+% \begin{macrocode}
+\@ifclassloaded{scrbook}{\SCDknownclasstrue\SCDchaptertrue}{}
+\@ifclassloaded{scrreprt}{\SCDknownclasstrue\SCDchaptertrue}{}
+\@ifclassloaded{scrartcl}{\SCDknownclasstrue}{}
+\@ifclassloaded{scrlettr}{\SCDknownclasstrue
+ \SCDnodivstrue\SCDpartfalse\SCDsectionfalse}{}
+% \end{macrocode}
+%
+% If the class is not one of the standard classes, check if |\part| or
+% |\chapter| or |\section| headings are provided.
+% \begin{macrocode}
+\ifSCDknownclass\else
+ \SCDnodivstrue
+ \ifx\part\undefined
+ \SCDpartfalse
+ \else
+ \SCDnodivsfalse
+ \fi
+ \ifx\chapter\undefined\else
+ \SCDchaptertrue \SCDnodivsfalse
+ \fi
+ \ifx\section\undefined
+ \SCDsectionfalse
+ \else
+ \SCDnodivsfalse
+ \fi
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\SCDquit}
+% A macro that does nothing (see \S\ref{sec:usc} for its intended usage).
+% \begin{macrocode}
+\newcommand{\SCDquit}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifSCDSameDefinition}
+% Used to store the result of |\SCDCheckCommand|. TRUE iff the command
+% has the given definition.
+% \begin{macrocode}
+\newif\ifSCDSameDefinition
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SCDCheckCommand}
+% This is identical to the kernal |\CheckCommand| except that it sets
+% the |\ifSCDSameCommand| flag rather than issuing a warning. See
+% \file{ltdefns.dtx} for the coding for |\CheckCommand|.
+% \begin{macrocode}
+\def\SCDCheckCommand{\@star@or@long%
+ \SCDSameDefinitiontrue% changed from CheckCommand
+ \@SCD@check@command}
+ \@onlypreamble\SCDCheckCommand
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@SCD@check@command}
+% \begin{macrocode}
+\def\@SCD@check@command#1#2#{\@SCD@check@c#1{#2}}
+ \@onlypreamble\@SCD@check@command
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@SCD@check@c}
+% \begin{macrocode}
+\long\def\@SCD@check@c#1#2#3{%
+ \expandafter\let\csname\string\reserved@a\endcsname\relax
+ \renew@command\reserved@a#2{#3}%
+ \@ifundefined{\string\reserved@a}%
+ {\@SCD@check@eq#1\reserved@a}%
+ {\expandafter\@SCD@check@eq
+ \csname\string#1\expandafter\endcsname
+ \csname\string\reserved@a\endcsname}}
+ \@onlypreamble\@SCD@check@c
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@SCD@check@eq}
+% \begin{macrocode}
+\def\@SCD@check@eq#1#2{%
+ \ifx#1#2\else
+ \SCDSameDefinitionfalse % changed from CheckCommand
+ \fi}
+ \@onlypreamble\@SCD@check@eq
+% \end{macrocode}
+% \end{macro}
+%
+% The end of this package.
+% \begin{macrocode}
+%</usc>
+% \end{macrocode}
+%
+%
+%
+% \Finale
+% \PrintIndex
+%
+\endinput
+
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+
+
diff --git a/macros/latex/contrib/stdclsdv/stdclsdv.ins b/macros/latex/contrib/stdclsdv/stdclsdv.ins
new file mode 100644
index 0000000000..66b1782d3a
--- /dev/null
+++ b/macros/latex/contrib/stdclsdv/stdclsdv.ins
@@ -0,0 +1,71 @@
+%% stdclsdv.ins
+%% Copyright 1999, 2000 Peter R. Wilson
+%%
+%% 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: <http://www.latex-project.org/lppl.txt>
+%%
+%% This work has the LPPL maintenance status "maintained".
+%% The Current Maintainer of this work is Will Robertson.
+%%
+%% This work consists of the files listed in the README file.
+%%
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this work when run through
+%% LaTeX.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\batchfile{stdclsdv.ins}
+\input docstrip.tex
+\preamble
+
+-----------------------------------------------------------------
+ Author: Peter Wilson, Herries Press
+ Maintainer: Will Robertson (will dot robertson at latex-project dot org)
+ Copyright 1999, 2000 Peter R. Wilson
+
+ 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: <http://www.latex-project.org/lppl.txt>
+
+ This work has the LPPL maintenance status "maintained".
+ The Current Maintainer of this work is Will Robertson.
+
+ This work consists of the files listed in the README file.
+-----------------------------------------------------------------
+
+\endpreamble
+
+\askforoverwritefalse
+\keepsilent
+
+%%% \Msg{*** Generating the driver file ***}
+%%% \generate{\file{stdclsdv.drv}{\from{stdclsdv.dtx}{driver}}}
+
+\Msg{*** Generating the LaTeX2e package files ***}
+
+\generate{\file{stdclsdv.sty}{\from{stdclsdv.dtx}{usc}}}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file(s) into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space stdclsdv.sty}
+\Msg{*}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* `.dtx' through LaTeX.}
+\Msg{* Process any name.idx file by:}
+\Msg{* \space\space\space\space makeindex -s gind.ist name}
+\Msg{* Process any name.glo file by:}
+\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+
+\endinput
diff --git a/macros/latex/contrib/stdclsdv/stdclsdv.pdf b/macros/latex/contrib/stdclsdv/stdclsdv.pdf
new file mode 100644
index 0000000000..c3da5546d9
--- /dev/null
+++ b/macros/latex/contrib/stdclsdv/stdclsdv.pdf
Binary files differ