\ProvidesFile{catcodes.tex}[2012/09/20 documenting catcodes files]
\title{\pkg{catcodes}\\---\\``Generic" Switching of Category Codes}
% \listfiles
{ \RequirePackage{makedoc} \ProcessLineMessage{}
  \renewcommand\mdSectionLevelOne  {\string\subsection}
  \renewcommand\mdSectionLevelTwo  {\string\subsubsection}
  \MainDocParser{\SectionLevelTwoParseInput}
  \HeaderLines{18}              %% 18 2012/08/26
  \MakeSingleDoc{stacklet.sty}
  \MakeSingleDoc{actcodes.sty}  %% 2012/08/26
  \MakeSingleDoc{catchdq.sty}   %% 2012/09/16
}
\documentclass[fleqn]{article}%% TODO paper dimensions!?
\input{makedoc.cfg} %% shared formatting settings
% \ReadPackageInfos{stacklet}
\MDkeywords{Macro programming, category codes, private letters, 
            active characters, double quotes}
\newcommand*{\headersec}{%
    \subsection{Package File Header---\pkg{plainpkg} and Legalese}}
\usepackage{ngerman} \originalTeX
\usepackage{catchdq}
\sloppy
\begin{document}
\maketitle
\begin{MDabstract}
The 'catcodes' bundle provides small packages for switching
category codes, usable both with \LaTeX\ and without. \ 
(i)\enspace \pkg{stacklet.sty} maintains stacks for ``private letters," 
needed for 'plainpkg.tex''s minimal framework for ``generic" 
packages. \ 
(ii)\enspace \pkg{actcodes.sty} deals with ``active characters," 
switching their category codes and assigning meanings to 
``active-character tokens." \ 
(iii)\enspace
%% 2012/09/16:
\pkg{catchdq.sty} uses the ``double quote" as an active character 
for simplified access to typographical double quotes.---These 
packages are ``generic" in the sense that they should 
be usable at least both with \LaTeX\ and Plain \TeX, 
based on 'plainpkg.tex'.

\MDaddtoabstract{Required Packages}
\ctanpkgref{plainpkg}, 'stacklet'
\MDaddtoabstract{Related Packages} 
\ctanpkgref{catoptions}, 'pcatcode' from \ctanpkgref{amsrefs}, 
\ctanpkgref{texapi}, 
\ctanpkgref{csquotes}.  %% 2012/09/16
\end{MDabstract}
\tableofcontents

\section{Shared Features of Usage}
%%% rm. 2012/09/17:
% \section{General Background---Usage, Required}
% The packages of this bundle are part of a certain family of 
% ``generic" packages: They should work \emph{with} \LaTeX\ 
% as well as \emph{without} \LaTeX, aiming at 
% ``independency of format"---actully too much now~...
% most importantly, they require \ctanpkgref{plainpkg}. 
%%% rm 2012/09/16:
% , 
% and the latter's documentation should tell you about 
% how to use the present packages.
%
All the packages of the bundle are ``\pkg{plainpkg} packages" 
in the sense of the 
\ctanpkgref{plainpkg}\foothttpurlref{ctan.org/pkg/plainpkg}
documentation that exhibits details of what is summarized here. 
Therefore:
\begin{itemize}
  \item All of them require that \TeX\ finds `plainpkg.tex' 
        as well as `stackrel.sty'.
  \item In order to load `<catcodes>.sty'
        (where <catcodes> is `stacklet', `actcodes', or `catchdq'), 
        type \ |\usepackage{<catcodes>}| \ within a \LaTeX\ document 
        preamble, \ |\RequirePackage{<catcodes>}| \ in a 
        ``\pkg{plainpkg} package", or \ |\input <catcodes>.sty| \
        $\dots$ \ or perhaps `\input{<catcodes>.sty}'? 
\end{itemize}

\pagebreak
\section{'stacklet.sty'---Private Letters}
See Section~\ref{sec:stacklet-cmds} for the commands provided.
\headersec
\input{stacklet.doc}

\pagebreak
\section{'actcodes.sty'---Active Characters}
See Section~\ref{sec:actcodes-cmds} for the commands provided.
\headersec
\input{actcodes.doc}

\section{'catchdq.sty'---Proper Double Quotes by Toggling}
See Section~\ref{sec:catchdq-cmds} for the commands provided.
Note that the \ctanpkgref{csquotes} provides more comprehensive 
functionality.
\headersec
\input{catchdq.doc}

\end{document}

VERSION HISTORY

2012/08/24   for stacklet v0.1  very first
2012/08/26   for stacklet v0.2   increased \HeaderLines, abstract; 
             for actcodes v0.1  added ...
2012/09/16f. for catchdq  v0.2  added ...
2012/09/19                      "plainpkg packages", \pagebreaks, 
                                Roman numbers in abstract, \headersec
2012/09/19                      trying ngerman.sty
