summaryrefslogtreecommitdiff
path: root/macros/generic/catcodes/docsrc
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/generic/catcodes/docsrc
Initial commit
Diffstat (limited to 'macros/generic/catcodes/docsrc')
-rw-r--r--macros/generic/catcodes/docsrc/catcodes.tex204
-rw-r--r--macros/generic/catcodes/docsrc/fdatechk.tex14
-rw-r--r--macros/generic/catcodes/docsrc/makedoc.cfg150
-rw-r--r--macros/generic/catcodes/docsrc/mdoccorr.cfg61
-rw-r--r--macros/generic/catcodes/docsrc/srcfiles.tex20
5 files changed, 449 insertions, 0 deletions
diff --git a/macros/generic/catcodes/docsrc/catcodes.tex b/macros/generic/catcodes/docsrc/catcodes.tex
new file mode 100644
index 0000000000..cb3494d880
--- /dev/null
+++ b/macros/generic/catcodes/docsrc/catcodes.tex
@@ -0,0 +1,204 @@
+\ProvidesFile{catcodes.tex}[2015/11/14 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
+}
+% \RequirePackage[ir]{inputtrc} %% 2015/11/14
+\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} %% try it more often! TODO 2012/11/07
+\usepackage{langcode} %% 2012/11/07
+\usepackage{filedate} %% 2012/11/06
+\sloppy
+% \flushbottom %% 2012/11/07
+\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
+``\acro{ASCII} %% 2012/11/06
+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{Overview}
+Sorry, \dots, the abstract and the table of contents
+must suffice for today (2012-11-07) \TODO
+
+\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:
+\pagebreak[2] %% 2012/11/07
+\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}
+
+\section{'actcodes.sty'---Active Characters}
+%% intro 2012/11/07:
+\subsection{Introduction}
+Active characters can simplify syntax often, i.e., the code
+may be very pleasant to type and read. But sometimes something
+may fail. See Section~\ref{sec:actcodes-cmds} for how to cope
+with possibilities and difficulties.
+\headersec
+\input{actcodes.doc}
+
+\section{'catchdq.sty'---Typographical Double Quotes}
+%% <- TODO cf. morgan.sty 2012/11/06 ->
+% \section{'catchdq.sty'---Automatic Typographical Double Quotes by Toggling}
+% \section{'catchdq.sty'---Proper Double Quotes by Toggling}
+%% <- morgan.sty 2012/11/06 ->
+\subsection{Introduction}
+\catchdqs
+The 'catchdq' package allows getting typographical double quotes
+by just using the "\acro{ASCII} double quote" |"|. A more precise overview:
+\begin{enumerate}
+ \item Typically, "typographical" quotation marks mean distinguishing
+ between "opening" and "closing" quotation marks.
+ Usually, you must enter different characters or commands for
+ the distinction, such as |``| for "opening" and |''| for
+ \emph{closing}---in \emph{English} with \emph{\TeX}.
+ For \emph{English} with \emph{Plain~\TeX}, even |"| suffices for "closing."
+ \item There are much different conventions especially for \emph{German}
+ and \emph{French}. They require different characters or \TeX~commands
+ than for \emph{English}. The packages \ctanpkgref{german},
+ \ctanpkgref{ngerman}, and \ctanpkgref{babel} have dealt with
+ such conventions.
+ \item Understanding the ideas mentioned before has been difficult
+ for a long time, probably because typewriter and computer \emph{keyboards}
+ never have offered the appropriate keys. Rather, they only offered
+ the "\acro{ASCII} double quote" that produced an approximation
+ ("neutral quotation marks")
+ \emph{not} making the difference. Many users and readers
+ have not realized the difference, they have not realized
+ how their screen or printer output differed from double quotes
+ in books and newspapers. Cf.~the
+ \wikienref{Quotation mark}{Wikipedia article}\footnote{%
+ \urlhttpref{en.wikipedia.org/wiki/Quotation mark}}
+ \item The idea of the 'catchdq' package is that the user indeed should
+ not worry about that difference and just type
+ "\acro{ASCII} double quotes", and they should be "converted"
+ into the appropriate typographical quotation marks \emph{automatically}.
+ This should work by "toggling," i.e., the first
+ "\acro{ASCII} double quote" is interpreted as "opening,"
+ the second as "closing," the next one as "opening"~\dots
+ ---Word processors have provided this feature (as an option)
+ as well.
+ \item Language-dependency of the feature currently is managed
+ through the \ctanpkgref{langcode} package.
+ \item The feature may cause problems sometimes.
+ Therefore, explicit switching the feature "on"
+ and "off" is required.
+ \item The \ctanpkgref{csquotes} package addresses the issue
+ in a more comprehensive and perhaps more stable way.
+\end{enumerate}
+See Section~\ref{sec:catchdq-cmds} for
+% the commands provided.
+% Note that the \ctanpkgref{csquotes}
+% provides more comprehensive functionality.
+additional details. %% 2012/11/06
+\MakeOther\" %% TODO 2012/11/06
+
+\headersec
+\input{catchdq.doc}
+
+\pagebreak
+\section{'stacklet.sty'---Private Letters}
+\subsection{Introduction}
+\catchdqs %% 2012/11/07
+\uselangcode{en} %% 2012/11/07, \dedqtd above
+"Private letters" \emph{here} are meant to be
+characters that belong to the "letter"
+category only within packages. A package typically provides
+user commands as well as internal commands, and the latter
+are characterized by containing funny letters in commands such
+as `\@gobble.' This is to avoid conflicts.
+See Section~\ref{sec:stacklet-cmds} for the commands provided.
+\MakeOther\" %% 2012/11/07
+\headersec
+\input{stacklet.doc}
+
+%% 'filedate' check 2012/11/06:
+\noNiceVerb
+\input{fdatechk.tex}
+\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
+
+ UPLOADED with `catcodes' r0.1 2012-09-20
+
+2012/11/06 supplementing missing word;
+ TODO on catchdq, `filedate' checks,
+ typeset with recent `niceverb';
+ more accurate about `catchdq',
+ long introduction
+2012/11/07 final formatting, some more info on
+ `stacklet' and `actcodes', TODOs,
+ some \catchdqs, `Overview',
+ 2 more \subsec...Intro...
+
+ UPLOADED with `catcodes' r0.1a 2012-11-07
+
+2015/11/14 for catchdq v0.21 debugging
diff --git a/macros/generic/catcodes/docsrc/fdatechk.tex b/macros/generic/catcodes/docsrc/fdatechk.tex
new file mode 100644
index 0000000000..74778a6acb
--- /dev/null
+++ b/macros/generic/catcodes/docsrc/fdatechk.tex
@@ -0,0 +1,14 @@
+\ProvidesFile{fdatechk.tex}[2015/05/22 `filedate' checks]
+%% TODO short notation
+\UseReferenceDate{\thepdfmoddate}
+\ModDates
+\ReadFileInfos{catcodes.RLS,srcfiles}
+\CheckDateOfGiven{actcodes.sty}
+\CheckDateOfGiven{catchdq.sty}
+%\DatesDiffWarnings
+\CheckDateOfGiven{stacklet.sty}
+%\DatesDiffErrors
+\CheckDateOfGiven{catcodes.tex}
+\CheckDateOfGiven{fdatechk.tex}
+\CheckDateOfGiven{srcfiles.tex}
+\CheckDateOfToday{catcodes.RLS}
diff --git a/macros/generic/catcodes/docsrc/makedoc.cfg b/macros/generic/catcodes/docsrc/makedoc.cfg
new file mode 100644
index 0000000000..666c87706e
--- /dev/null
+++ b/macros/generic/catcodes/docsrc/makedoc.cfg
@@ -0,0 +1,150 @@
+\ProvidesFile{makedoc.cfg}[{2013/03/25 documentation settings}]
+%%
+\author{Uwe L\"uck\thanks{%
+ \url{http://contact-ednotes.sty.de.vu}}}
+%%
+%% 'hyperref':
+\RequirePackage{ifpdf}
+\usepackage[%
+ \ifpdf
+% bookmarks=false, %% 2010/12/22
+% bookmarksnumbered,
+ bookmarksopen, %% 2011/01/24!?
+ bookmarksopenlevel=2, %% 2011/01/23
+% pdfpagemode=UseNone,
+% pdfstartpage=10,
+ pdfstartview=FitH, %% 2012/11/26 again
+% pdfstartview=0 0 100, %% 2011/08/22
+% pdfstartview={XYZ null null 1}, %% 2011/08/25
+% pdfstartview={XYZ null null null},%% 2011/08/25
+% pdfstartview={XYZ null null .5}, %% 2011/08/26
+% pdffitwindow=true, %% 2011/08/22
+ citebordercolor={ .6 1 .6},
+ filebordercolor={1 .6 1},
+ linkbordercolor={1 .9 .7},
+ urlbordercolor={ .7 1 1}, %% playing 2011/01/24
+ \else
+ draft
+ \fi
+]{hyperref}
+\hypersetup{%
+ pdfauthor={Uwe L\374ck}%
+}
+%% metadata, |\MDkeywords{<text>}|, |\MDkeywordsstring|:
+%% %% 2011/08/22:
+\makeatletter
+ \newcommand*{\MDkeywords}[1]{%
+ \gdef\MDkeywordsstring{#1}%
+ \hypersetup{pdfkeywords=\MDkeywordsstring}%% TODO!?
+ }
+ \@onlypreamble\MDkeywords
+%% |\MDaddtoabstract{<par-head>}|, `:' added:
+ \newcommand*{\MDaddtoabstract}[1]{% %% 2012/05/10
+ \par\smallskip\noindent
+ \strong{#1:}\quad\ignorespaces}
+%% \pagebreak[2]
+%% |\printMDkeywords|:
+ \newcommand*{\printMDkeywords}{%
+ \MDaddtoabstract{Keywords}%
+ \MDkeywordsstring
+% \global\let\MDkeywordsstring\relax %% `%' 2012/11/12
+ }
+%% The previous definitions mainly are useful with a variant
+%% |\begin{MDabstract}| of \LaTeX's `{abstract}' environment:
+ \newenvironment{MDabstract}
+ {\abstract\noindent
+ \hspace{1sp}%% for niceverb
+ \ignorespaces}
+ {\@ifundefined{MDkeywordsstring}%
+ {}%
+ {\printMDkeywords}%
+ \global\let\MDabstract\relax %% 2012/11/12
+ \global\let\endMDabstract\relax %% 2012/11/12
+ \endabstract}
+%% |\[MD]docnewline| 2012/11/12 from `readprov.tex':
+ \newcommand*{\MDdocnewline}{\leavevmode\@normalcr[\topsep]}
+%% <- `\leavevmode' for use with `\paragraph'.
+%% Sometimes needs to be preceded by a space.
+%%
+%% |\MDfinaldatechecks[<tex-script>]| with \ctanpkgref{filedate}:
+ \newcommand*{\MDfinaldatechecks}[1][fdatechk]{%
+ \AtEndDocument{%
+% \clearpage %% 2013/03/25 no avail -- with `filedate'!
+ \def\@pkgextension{sty}%
+ \def\NeedsTeXFormat##1[##2]{}%
+ \noNiceVerb %% 2013/03/22
+ \input{#1}%
+ }}
+ \@onlypreamble\MDfinaldatechecks
+\makeatother
+%% Use other packages:
+\RequirePackage{niceverb}[2011/01/24]
+\RequirePackage{readprov} %% 2010/12/08
+\RequirePackage{hypertoc} %% 2011/01/23
+\RequirePackage{texlinks} %% 2011/01/24
+\RequirePackage{relsize} %% 2011/06/27
+\RequirePackage{color} %% 2011/08/06
+\RequirePackage{lmodern} %% 2012/10/29
+\RequirePackage{filedate} %% 2012/11/12
+\RequirePackage{filesdo} %% 2013/03/22
+%% \pagebreak[3]
+%% Logical markup:\qquad |\strong{<chars>}|, |\meta{<chars>}|,
+%% |\acro{<chars>}|, |\pkg{<chars>}|,
+%% |\code{<chars>}|, |\file{<chars>}|:{\sloppy\par}
+\makeatletter
+ \def\do#1#2{\@ifdefinable#1{\let#1#2}}%% 2012/07/13
+ \do\strong\textbf \do\file\texttt \do\acro\textsmaller
+ %% <- wrong tests before 2012/07/13
+ \do\meta\textit \do \pkg\textsf \do\code\texttt
+ \ifpdf
+ \pdfstringdefDisableCommands{%
+ \let\acro\textrm
+ \let\file\textrm %% 2011/11/09
+ \let\code\textrm %% 2011/11/20
+ \let\pkg \textrm %% 2012/03/23
+ }
+ \fi
+ %% TODO 2011/07/22 -> `htlogml.sty'
+\makeatother
+%% |\qtdcode{<text>}|: 2012/10/24:
+ \newcommand*{\qtdcode}[1]{`\code{#1}'}
+%% |\pkgtitle{<package-name>}{<caption>}|
+\newcommand*{\pkgtitle}[2]{% %% 2012/07/13
+ \global\let\pkgtitle\relax
+ \pkg{\huge #1}\\---\\#2\thanks{This
+ document describes version
+ \textcolor{blue}{\UseVersionOf{\jobname.sty}}
+ of \textsf{\jobname.sty} as of \UseDateOf{\jobname.sty}.}}
+%% TODO: %% |\TODO| bad with `mdoccorr.cfg'
+\newcommand*{\TODO}{\textcolor{blue}{\acro{TODO}}} %% 2012/11/06
+%% `\MDsampleinput[{<file>}' was added 2012/11/06.
+%% Problems with `myfilist.tex' were due to 'parskip.sty'
+%% there. On 2012/11/12, we change the former simple macro to a
+%% much more complex
+%% |\MDsamplecodeinput[<add-hfuss>]{<file>}|
+\newcommand*{\MDsamplecodeinput}[2][]{%
+ \begingroup
+ \vskip\bigskipamount \hrule
+ \nobreak\vskip-\parskip
+% \nobreak\vskip\medskipamount
+%% Previous mistake (same below) due to manual change
+%% of `\topsep' in the file `myfilist.tex' (2012/11/30).
+ \ifx\\#1\\\else
+ \hfuzz=\textwidth \advance\hfuzz#1\relax
+ \fi
+ \noNiceVerb \verbatiminput{#2}%
+% \nobreak\vskip\medskipamount
+ \hrule \vskip-\parskip
+ \bigskip %%% \bigbreak
+%% `\bigbreak' made much larger space in `myfilist.tex'.
+ \endgroup
+}
+%% |\ctanpkgdref{<pkg-id>}| adds the printed link to
+%% `ctan.org/pkg' as a footnote. There is a little space
+%% for coloured link borders:
+\newcommand*{\ctanpkgdref}[1]{%
+ \ctanpkgref{#1}\,\urlfoot{CtanPkgRef}{#1}}
+\errorcontextlines=4
+\pagestyle{headings}
+
+\endinput
diff --git a/macros/generic/catcodes/docsrc/mdoccorr.cfg b/macros/generic/catcodes/docsrc/mdoccorr.cfg
new file mode 100644
index 0000000000..6a6a701229
--- /dev/null
+++ b/macros/generic/catcodes/docsrc/mdoccorr.cfg
@@ -0,0 +1,61 @@
+\ProvidesFile{mdoccorr.cfg}[2012/11/13
+ `makedoc' local typographical corrections]
+%% ... also demonstrates 'niceverb.sty'---see the typeset
+%% documentation of the present file in `makedoc.pdf'.
+%%
+%% |\SetPatternCodes{<commands>}| redefines
+%% `\PatternCodes' to be used in parsing and replacing
+%% (some ``sanitizing"). %% improved line breaks 2010/03/29
+\SetPatternCodes{\MakeOther\\\MakeOther\ }
+%% |\StartPrependingChain| initializes setup of a replacement
+%% chain:
+\StartPrependingChain
+%% |\PrependExpandableAllReplacer*{<find>}{<subst>}|:
+\PrependExpandableAllReplacer*{etc. }{etc.\ }
+%% ... you can keep inter-sentence space after `etc.'
+%% by a code line break.---Now we use |\do| as a shorthand:
+\renewcommand*{\do}{\PrependExpandableAllReplacer*}
+\do{Cf. }{Cf.\ } %% 2011/01/12
+\do{cf. }{cf.\ } %% corr. 2010/03/23
+%% ... but think of `cf.~'. Don't leave `cf.' at code line end!
+\do{->}{$\to$} %% 2010/11/06
+\do{<-}{$\gets$} %% 2010/11/06
+% \PrependExpandableAllReplacer{...}{...}{$\dots$}
+%% Allow extra space at line end (bug fix `{}' 2011/12/03):
+\do{...}{\textellipsis\unkern{}}
+%% 2011/10/13: original `\dots' correct before punctuation:
+% \PrependExpandableAllReplacer{dots,}{...,}{\dots,}
+\do{...)}{\dots)} %% 2011/10/25
+\do{...:}{\dots:} %% 2012/11/07
+\do{... }{\textellipsis\unkern\ }
+\do{TODO}{\TODO{}}
+%% ... chain starts here, and here |\MakeDocCorrectHook|
+%% (silently) enters through a default variant
+%% |\SetCorrectHookJobLast| of |\SetCorrectHookJob{<id>}|:
+\SetCorrectHookJobLast
+%% |\ResetPatternCodes| resets `\PatternCodes' to their default
+%% value (which is `\fdPatternCodes'):
+\ResetPatternCodes
+%% ... restores 'fifinddo' default.
+\endinput
+
+HISTORY
+2009/04/05 with makedoc v0.2
+2010/03/11 broke some too long code lines
+2010/03/16 rendered `mdoccorr.cfg'
+2010/03/22 try \Prepend...
+2010/03/23 corrected `cf'
+2010/03/29 use \SetPatternCodes etc.
+2010/11/06 <- and ->
+2010/11/24 `...' ``symmetric variant" of `\textellipsis';
+ \StartPrependingChain, no more
+ \MakeExpandableAllreplacer
+2011/01/27 blue "TODO"
+2011/09/13 \providecommand for dialogues
+2011/10/13 \MDtwodots, without \PXAR, `...,' `...:'
+2011/10/25 \textellipsis\unkern from csquotes instead, `...)'
+2011/11/13 \PrependExpandableAllReplacer*
+2011/12/03 bug fix for 2011/10/25 at line ends
+2012/11/07 TODO -> \TODO{}
+2012/11/12 using \do
+2012/11/13 shorter code lines
diff --git a/macros/generic/catcodes/docsrc/srcfiles.tex b/macros/generic/catcodes/docsrc/srcfiles.tex
new file mode 100644
index 0000000000..170e77c41d
--- /dev/null
+++ b/macros/generic/catcodes/docsrc/srcfiles.tex
@@ -0,0 +1,20 @@
+ \ProvidesFile{srcfiles.tex}[2015/11/14 file infos -> SrcFILEs.txt]
+%\ProvidesFile{srcfiles.tex}[2012/11/07 file infos -> SrcFILEs.txt]
+\RequirePackage[r,wrap]{nicefilelist}
+\RequirePackage{filedate}
+\MaxBaseEmptyList* %%% [readprov.sty,myfilist.sty]
+\ReadFileInfos{catcodes.RLS}
+%% packages:
+\ReadPackageInfos{actcodes,catchdq,stacklet}
+%% documentation:
+\ReadFileInfos{catcodes}
+%% documentation settings and auxiliaries:
+% \ReadPackageInfos{fifinddo,makedoc,niceverb}
+% \ReadFileInfos{makedoc.cfg,mdoccorr.cfg,srcfiles}
+% \ReadFileInfos{srcfiles}
+% \FileListRemark[ -- ]{---USED.---}
+\ReadFileInfos{makedoc.cfg,mdoccorr.cfg}
+\NoStopListInfos[SrcFILEs.txt]
+\EqualityMessages
+\input{fdatechk}
+\stop