From be26977c41f7693a4a94b13437375993398b365d Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Fri, 18 Jan 2008 17:17:00 +0000
Subject: new latex package catechis (17jan08)

git-svn-id: svn://tug.org/texlive/trunk@6302 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/catechis/catechis.sty | 612 ++++++++++++++++++++++
 1 file changed, 612 insertions(+)
 create mode 100644 Master/texmf-dist/tex/latex/catechis/catechis.sty

(limited to 'Master/texmf-dist/tex/latex/catechis/catechis.sty')

diff --git a/Master/texmf-dist/tex/latex/catechis/catechis.sty b/Master/texmf-dist/tex/latex/catechis/catechis.sty
new file mode 100644
index 00000000000..cc94a2957e1
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/catechis/catechis.sty
@@ -0,0 +1,612 @@
+% \iffalse
+% +AMDG  This document was begun on 9 November 2007, the 
+% commemoration of St. Theodore the Martyr, and it is humbly 
+% dedicated to him and to the Immaculate Heart of Mary 
+% for their prayers, and to the Sacred Heart of Jesus 
+% for His mercy.  Also to St. Peter Damien, Hammer of 
+% heretics, and to St. Pius V, and St. Thomas Aquinas; pray 
+% for us!
+% 
+% This document is copyright 2008 by Donald P. Goodman, and is
+% released publicly under the LaTeX Project Public License.  The
+% distribution and modification of this work is constrained by the
+% conditions of that license.  See
+% 	http://www.latex-project.org/lppl.txt
+% for the text of the license.  This document is released
+% under version 1.3 of that license, and this work may be distributed
+% or modified under the terms of that license or, at your option, any
+% later version.
+% 
+% This work has the LPPL maintenance status 'maintained'.
+% 
+% The Current Maintainer of this work is Donald P. Goodman.
+% 
+% This work consists of the files catechis.ins, catechis.sty, and
+% test.tex, along with README.
+% \fi
+%
+% \maketitle
+% \begin{abstract}
+% The |catechis| package is a simple package which defines a number of highly 
+% customizable macros for writing catechisms.  These include a numbered 
+% question environment; a command for comments and one for scripture
+% citations; and special commands and lengths which can be easily 
+% altered for each, thus making, for example, the indentation of each question 
+% and answer easily altered according to situation and taste.
+% \end{abstract}
+% 
+% \tableofcontents
+% 
+% \section{Introduction}
+% 
+% There is no package which provides appropriate commands for writing 
+% catechism questions and explanations.  One-off hacks are, of course, quite 
+% easy to produce:
+% \begin{quote}
+% |\begin{enumerate}| \\
+% |\item \textbf{Who made us?} \\ God made us.| \\
+% |\item \textbf{Why did God make us?} \\  God made us to know | \\
+% |Him, love Him, and serve Him, and by so doing to gain | \\
+% |everlasting life with Him in Heaven.|\\
+% |\end{enumerate}|
+% \end{quote}
+% However, this solution is far from satisfactory.  It's unportable, fit really 
+% only for this one document; uncustomizable, because it's hard-wired to do 
+% only this one thing; unmodifiable, at least automatically, because it uses 
+% explicit visual formatting in the text (which itself it totally antithetical 
+% to \LaTeX\ principles); and far too wordy.  What is desired is something 
+% more along the lines of the following:
+% \begin{quote}
+% |\catques{Who made us?}{God made us.}| \\
+% |\catques{Why did God make us?}{God made us to know Him, love |\\
+% |Him, and serve Him, and by so doing to gain everlasting life |\\
+% |with Him in Heaven.}|
+% \end{quote}
+% The |catechis| package was designed to provide just these such commands, 
+% with significant further additions useful for catechism writing, as well.
+% 
+% This document was produced in accordance with the \LaTeX\ \textsc{docstrip} 
+% utility.
+%
+% Any questions, comments, and improvements can be sent to the package author, 
+% Donald Goodman, at dgoodmaniii at gmail dot com.
+% 
+% \section{Basic Usage}
+% 
+% Basic usage is\ldots well, it's basic.  There's one basic command which 
+% answers most catechism needs: \DescribeMacro{\catques}|\catques|.  
+% \cmd{\catques} is, as the name implies, the means of formatting most 
+% catechism questions.  Its usage is simple:
+% \begin{quote}
+% \cs{catques}\marg{question text}\marg{answer text}
+% \end{quote}
+% And that's all there is to it.  A question number will be generated, the 
+% question itself will be formatted, then a line break, and then the answer 
+% will be formatted.  And you're done.  The above, for example, looks like 
+% this:
+% \begin{quote}
+% \catques{Who made us?}{God made us.}\catques{Why did God make us?}{God made 
+% us to know Him, love Him, and serve Him, and by so doing to gain everlasting 
+% life with Him in Heaven.}
+% \end{quote}
+% Minus the indentation added by the |quote| environment I've wrapped it in 
+% here, of course.
+%
+% That is, in a nutshell, all there is to the basic usage of the |catechis| 
+% package.
+%
+% \subsection{The List Hacks}
+%
+% The package also includes some ugly hacks on |enumerate| which,
+% though ugly, do what they are supposed to do.  That is, they alter the
+% indentation and spacing of the |enumerate| environments to make it
+% conform with those in traditional catechisms that have fallen under my
+% gaze.  What these means, practically, is merely the following:
+% \begin{enumerate}
+% \item The labels for the environments are altered appropriately;
+% rather than beginning with arabic numerals, it begins with lower-case
+% letters, then moves on to arabic numerals, then to romanettes.
+% \item The punctuation is different; first level is followed by a
+% period, second is enclosed in parentheses, third is followed by a
+% period.
+% \item The indentation is altered to make it work better with the
+% question indentation used.
+% \end{enumerate}
+% So enjoy the |enumerate|s, though they're really not anything
+% remarkable.
+%
+% \subsection{Customization of Basic Usage}
+%
+% However, there's much more to it than that \emph{if the user wants there to 
+% be}.  In the tradition of Peter Wilson,\footnote{Author of a number of highly 
+% customizable and versatile packages and classes, from |tocbibind| and 
+% |epigraph| to the monumental |memoir| class, which has a manual well worth 
+% the reading even if the class will not be used.  His packages are 
+% masterpieces; no comparison is meant (or possible) between them and this 
+% rather hackish and inelegant one.} I endeavored to make the 
+% package as customizable as possible.  Thus, more or less all of the 
+% formatting decisions (namely, all except those which are universal among all 
+% works of the type) have been placed inside command names or specially named 
+% lengths, to be altered by standard \LaTeX\ |\renewcommand|s or 
+% |\setlength|s.  Use of these commands can easily be found from any number of 
+% basic \LaTeX\ tutorials.\footnote{The most useful, this author found, was 
+% the nearly ubiquitous \textit{The Not-so-short Introduction to \LaTeXe}, 
+% available from CTAN.}
+%
+% For example, if you don't want the question number to be in bold (the 
+% default), you just have to redefine the macro\DescribeMacro{\quesnumweight} 
+% | \quesnumweight|, and it will take on the weight you put there.  If you 
+% wanted normal weight, just say:
+% \begin{quote}
+% |\renewcommand\quesnumweight{}|
+% \end{quote}
+% Your question number will now be weightless; that is, normal weight, not 
+% bolded.  You've overridden the default.  This command, like all such 
+% commands, will only take effect on those |\catques| commands issued 
+% \emph{after} the formatting command is issued.
+% 
+% But though your question number will then be formatted as you like, you may 
+% not like the question itself.  You may want the question itself to also be 
+% normal weight.  Use the macro\DescribeMacro{\questionweight} 
+% | \questionweight|.  If you want to italicize them, redefine the macros 
+% \DescribeMacro{\quesnumstyle}|\quesnumstyle| and 
+% \DescribeMacro{\questionstyle}|\questionstyle|.  To do this, simply place the 
+% name of the command you want to work on the unit in the argument of the 
+% macro; no braces are needed, being added by the package itself.  Thus, issue 
+% the simple command |\renewcommand\questionstyle{\textit}|, and the question 
+% will become italicized.
+%
+% Formatting the answer is predictable:  use the macros 
+% \DescribeMacro{\answeight}|\answeight| and 
+% \DescribeMacro{\ansstyle}|\ansstyle| in the same way.
+%
+% If you want to change the spacing involved, you must begin to use 
+% |\setlength| commands instead, but the principle is identical.  Say, for 
+% example, that you don't like the amount of space put in between the questions 
+% by default (1em plus 2pt minus 2pt).  All you have to do is change the 
+% length named \DescribeMacro{\questionskip}|\questionskip|.  |\questionskip| 
+% is rubber by default, because otherwise the package would produce horrible 
+% |overfull vbox| errors every time it was used; this cannot be overriden 
+% without changing the internal definitions of the package itself.  I did this 
+% so that unsuspecting newby users, God bless them, wouldn't unknowingly make 
+% it impossible for \LaTeX\ to properly justify their pages.  Thus, that 
+% plus 2pt minus 2pt rubber length is unchangeable.  I may change this in 
+% future releases, but for now, it's there for good.
+%
+% On the other hand, all other lengths are, by default, rigid, though they 
+% can be made rubber by defining them as such.  If, for example, you want to 
+% change the space in between the questions and answers, just give a new 
+% length to \DescribeMacro{\answerskip}|\answerskip|, which defaults to 0em.  
+% 
+% For the indentations, the lengths are again broken into those for questions 
+% and those for answers.  Plus, indentation styles are provided, to allow for 
+% either hanging or normal indentation.  First, the question indents.
+% 
+% The question indents depend upon the \emph{style} of indentation for their 
+% implementation.  By ``style'' I mean just ``hanging'' or ``normal.''  The 
+% default for questions is ``hanging''; that's how the second line of the 
+% question is indented inward while the first line is flush with the margin.  
+% If you don't like this behavior, then simply redefine the command 
+% \DescribeMacro{\quesindentstyle}|\quesindentstyle| from |\hangindent| (the 
+% default) to |\parindent| (normal, paragraph-style indentation).  For the 
+% answers, use \DescribeMacro{\ansindentstyle}|\ansindentstyle|, which defaults 
+% to |\parindent|, rather than to |\hangindent| like its question counterpart.
+%
+% Next, you have to modify the lengths (maybe).  First, the basic answer 
+% indentation.  By default, the answers are indented by a specific amount, 
+% namely \DescribeMacro{\defanswerindent}|\defanswerindent| minus 
+% \DescribeMacro{\answerindent}|\answerindent|.  This was to allow for the 
+% indentation to be easily set to be equal to the question number plus the 
+% space prior to the beginning of the question text.  |\defanswerindent| is 
+% set to precisely that length, and |\answerindent| is initialized at 0.  If 
+% you want, for example, the answers to be flush to the left margin along with 
+% the question number, simply define |\answerindent| to cancel out 
+% |\defanswerindent|:
+% \begin{quote}
+% |\settowidth\answerindent{\quesnumweight{\quesnumstyle{\thequesnum.  }}}%|
+% \end{quote}
+% I wish it weren't that complicated, but that's what it takes; hopefully I'll 
+% be able to make it more intuitive later.  For some reason simply issuing 
+% |\setlength\answerindent{\the\defanswerindent}| does not work; I hope to 
+% resolve this question soon.
+%
+% Otherwise, however, simply set |\answerindent| equal to whatever you want to 
+% \emph{subtract} from |\defanswerindent|, the default.  If you want the 
+% indentation to be larger, make sure you define your |\answerindent| as a 
+% negative length.
+%
+% Now for the paragraph indentations for questions and answers.  We've already 
+% seen how to set indentation ``style.''  To change actual indentation length 
+% (whether hanging or normal) use the 
+% \DescribeMacro{\quesparindent}|\quesparindent| (which modifies an internal 
+% variable, |\defquesparindent|, in the same way as |\answerindent| does) and 
+% \DescribeMacro{\ansparindent}|\ansparindent|, which works independently.  
+% By default, |\defquesparindent| is set to equal the width of the question 
+% number plus the space preceeding the beginning of actual question text; 
+% since |\answerindent| takes care of this already for answers, it is initially 
+% set to zero.  To cancel out |\defquesparindent|, simply redefine it as for 
+% cancelling |\defanswerindent| (replacing |\answerindent| with 
+% |\quesparindent|, of course).  |\ansparindent| can be increased or decreased 
+% in the usual way.
+% 
+% The right indentation of the answers can also be changed with the 
+% predictably named length \DescribeMacro{\rtanswerindent}|\rtanswerindent|.  
+% It can be changed in the normal manner.
+%
+% The |enumerate|s are not particularly customizable; this is because
+% I found altering the default \LaTeX\ code for them unbelievably hairy.
+% Even as they are, they are remarkably ugly, and include one hack for
+% getting the margins lined up properly that is quite probably the
+% absolute worst piece of programming I've ever done.  But struggle as I
+% might (for hours) I couldn't get it to work without it, so\ldots there
+% we are.  
+% 
+% \DescribeMacro{\listmarg}
+% Still, there is one length which by necessity is customizable:
+% |\listmarg|.  This governs the left margin of the first level of the
+% |enumerate|.  Right now it's set as the difference between the value
+% of |\defquesparindent| and the default indentation of the first level
+% of |enumerate|.  That is, |\leftmargini| (the indentation of the first
+% level of a list) is defined as:
+% \begin{quote}
+% |\setlength\leftmargin{\the\defquesparindent+\the\listmarg}|
+% \end{quote}
+% So if you change the value of |\defquesparindent|, you've changed
+% the indentation of the lists.  To repair this, you can either redefine
+% |\@listi| entirely, or just |\leftmargini| individually, or you can
+% simply alter the value of |\listmarg|.  I recommend the latter; as
+% it's more removed from internals, you're unable to accidentally
+% hose the indentation on your non-catechism |enumerate|s.
+% 
+% So, if you want to alter the value of |\defquesparindent| and want
+% that of |\listmarg| to match, try just running it and seeing how it
+% works.  Then redefine |\listmarg| as you think is necessary.  It's
+% that simple.  Okay, so it's not simple; but it's much better than it
+% was previously, I can tell you.
+%
+% That essentially completes the discussion of the basic command of the 
+% |catechis| package.  Now we may discuss some of its more advanced features.
+% 
+% \section{Advanced Features}
+%
+% \subsection{Comments}
+%
+% \DescribeMacro{\catcomment}
+% Oftentimes in catechisms the answer, while giving the basic truth
+% behind the subject, doesn't give enough information.  For this sort of
+% situation the |\catcomment| command was prepared.  Basically, |\catcomment|
+% places a comment (by default, in normal weight italic) wherever it
+% happens to be issued, with the same left and right indentation as its
+% parent element.
+%
+% It's important that |\catcomment|s be issued as part of their parent
+% element (normally, a |\catques| answer); that is, it should be issued
+% \emph{before} the closing brace (|}|) of whatever it's commenting on.
+% Otherwise, the spacing will probably look quite odd.  This is because
+% |\catcomment| doesn't issue any |\par|s; it's literally part of whatever
+% it's issued in.  But that's for the code
+% section.\footnote{\textit{See} section \ref{sect:code}, at
+% \pageref{sect:code}.}
+% 
+% By default, as said above, |\catcomment|s are set in normal weight
+% italic; their indentation will be identical to that of the parent
+% element.  I have not included any way to alter the indentation easily,
+% as I didn't see any reasonable explanation for doing so.  I'm willing,
+% of course, to take contrary arguments.
+% 
+% \DescribeMacro{\commentstyle}\DescribeMacro{\commentweight}
+% The macros |\commentweight| and |\commentstyle| can both be 
+% redefined to format the comments to your needs and tastes.  They are 
+% redefined in the usual way.
+% 
+% \subsection{Citations Lists}
+% 
+% Most catechisms also include citation lists (usually Scriptural,
+% entirely or nearly so) to justify their points, especially on the more
+% important questions.  So |catechis| includes a way to typeset such
+% entries, as well.
+%
+% \DescribeMacro{\citetitle}\DescribeMacro{citeword}
+% The |\citetitle| command would normally be issued at the beginning
+% of the section including citations.  By default, it simply skips
+% down 1em, then prints what's contained in the macro |\citeword| (by
+% default, this is simply ``Scripture'') in small caps, centered, and
+% then turns things back over to the user.  If you want something
+% other than ``Scripture'' to be printed as the title, simply redefine
+% |\citeword| to something else (say, ``Citations'') by issuing the
+% following:
+% \begin{quote}
+% |\renewcommand\citeword{Citations}|
+% \end{quote}
+%
+% \DescribeMacro{\citetitlestyle}\DescribeMacro{\citetitleweight}
+% To alter the style in which the |\citetitle| is printed, just
+% redefine the macros |\citetitleweight| and |\citetitlestyle|.  By
+% default, |\citetitleweight| is set to nothing (that is, normal
+% weight) and |\citetitlestyle| to |\textsc|.
+% 
+% \DescribeMacro{\scripture}
+% Next, you simply issue the |\scripture| command repeatedly, once for
+% each citation in your list.  (In retrospect, this really should have
+% been something more like |\citation|, but I'm afraid of conflicts with
+% \textsc{Bib}\TeX, about which I know nothing.)  |\scripture| takes
+% two arguments, the first the citation itself and the second its
+% source.  It simply fills the current line with space, starts a new
+% one, prints its first argument, fills the final line of that argument
+% with space, and then prints its second argument left justified.  So
+% the command should be formatted like so:
+% \begin{quote}
+% \cs{scripture}\marg{citation text}\marg{source text}
+% \end{quote}
+% 
+% Yes, you guessed it; the formatting can be customized.  By default,
+% the citation is printed in normal weight italics, and the source is
+% printed in normal weight Roman.  You can changed each one of these
+% easily by redefining commands.
+% 
+% \DescribeMacro{\citeweight}\DescribeMacro{\citestyle}
+% \DescribeMacro{\citesize}
+% The three macros in the left margin control the formatting of the
+% citations.  This time, however, the size can be individually
+% controlled.  This is because I was able to use |\par|s internally in
+% the macros without hosing all the other formatting, since the
+% citations are all set aside on their own and not dependent on their
+% parent element.  So enjoy; just redefine the commands as usual.
+%
+% \DescribeMacro{\sourceweight}\DescribeMacro{\sourcestyle}
+% \DescribeMacro{\sourcesize}
+% The three macros in the left margin at this paragraph control the
+% formatting of the source.  It's pretty tight, huh?  Really, though,
+% there isn't much to say; I'm only continuing to write so that this
+% paragraph will fill up enough to offset the margin space used by by
+% those commands.
+% 
+% So that's the package.  Please refer to Section \ref{sect:examp} for
+% visual examples of the default behavior of these macros.  I pray
+% that this package be useful to you and lead to the edification and
+% salvation of souls.
+% 
+% \section{Examples}
+% \label{sect:examp}
+% 
+% This section is intended to demonstrate the default behavior of the
+% macros.  It also demonstrates the heavily modified |enumerate|
+% environment that is employed, but not described here because it
+% involves no new macros but those in standard \LaTeX.  So here it
+% goes.
+% \setcounter{quesnum}{0}
+% 
+% \catques{Who made us?}{God made us.}
+% 
+% \catques{Why did God make us?}{God made us to know Him, love Him, 
+% and serve Him, and by so doing to gain Heaven.}
+% \catques{Are you going to write any actual examples, or just copy
+% them all from other catechisms?}{Wait for it; I'm going to write
+% some of my own.  The two above are from the Baltimore Catechism,
+% verbatim or nearly so, for those who don't know.}
+% \catques{Did you make a package for writing catechisms?  For 
+% serious?}{Yes, I did.  I had a number of reasons for this:
+% \begin{enumerate}
+% \item I wanted to typeset one or two for myself.
+% \catcomment{This although I've already done so in a very hacked,
+% difficult to read and difficult to write style.  But at least I'm
+% (hopefully) making it easier for others.}
+% \begin{enumerate}
+% \item There's one in \textit{Thomistic Salvation}.
+% \catcomment{And it's not half bad.  I think it addresses the issues it
+% was meant to address pretty thoroughly, in a basic, catechism sort of
+% way.}
+% \item There's also one in \textit{Officium Parvum}.\label{testlabel}
+% \catcomment{This one could use some work.  But it still isn't
+% terrible.}
+% \end{enumerate}
+% \item It's a part of my plan to make a complete Catholic 
+% desktop (though what that plan is, exactly, is still somewhat 
+% up in the air).
+% \catcomment{I'm trying to flesh this idea out a little more.  It will
+% at least contain a couple of \LaTeX\ packages and a multilingual
+% Scripture-searching tool; hopefully also a Catholic calendar desklet
+% and similar items.}
+% \end{enumerate}
+% } % 
+% 
+% \catques{All right, I guess so.  But it still seems weird.}{Maybe.  
+% But I think (hope) it'll bear fruit.
+% \catcomment{And I'm very hopeful.  Hope is, after all, one of the
+% three theological virtues, and mentioned repeatedly in the Scriptures
+% as necessary for us to have.}
+% }% 
+% 
+% \catques{Here's a really long question that I'm trying to make 
+% wrap onto another line so that we can see how that will behave.  
+% Will it behave well?}{Yes, it will behave well.  The algorithm 
+% is reasonably obedient and well-behaved.}
+% \catques{What about the Scripture citations you often see in
+% catechisms?  Can this hooty-falooty package of yours handle those?}{%
+% I'm glad you asked.  Yes, this package can easily handle those.
+% \catcomment{Even in conjunction with a catcomment, you'll notice;
+% versatility (and ease of goal) is always the key.}
+% \citetitle
+% \scripture{In the beginning was the Word, and the Word was with God,
+% and the Word was God.}{St.~John 1:1.}
+% \scripture{Where wast thou when I laid up the foundations of the 
+% earth? tell me if thou hast understanding.}{Job 38:4}
+% }%
+% \catques{Finally, how do the labels work with the hacked
+% |enumerate|s?}{Well, they work all right, thanks to |varioref|; in fact, 
+% here's one:  \ref{testlabel}.}
+% \catques{I want to see some double-digit question numbers.}{I'm
+% working on it; only one more question to go.}
+% \catques{Finally; do they indent properly and all, at least with the
+% defaults?}{Yes, they indent exactly as one would expect.
+% \catcomment{Although in this, my first real foray into serious
+% \LaTeX\ programming, I found that very little works as expected, and
+% one must have a very thorough knowledge of internals to avoid being
+% surprised and having to work quite hard to figure out some unexpected
+% results.}
+% }
+%
+% \section{Implementation}
+% \label{sect:code}
+% 
+% Here's the specifications of the code.  Bear with me; I'm really
+% only an amateur \LaTeX\ programmer (the code will reveal this to
+% anyone with real experience), so it's probably pretty sloppy.
+% 
+% First we name the package. 
+%    \begin{macrocode}
+\ProvidesPackage{catechis}
+%    \end{macrocode}
+% 
+% Then we call the packages that we're going to require.  I call
+% |calc| and |ifthen| reflexively; neither are used extensively, but
+% both some.  |varioref| is needed for hacking |enumerate|; I needed
+% its |\labelformat| command.
+%    \begin{macrocode}
+\RequirePackage{calc}
+\RequirePackage{ifthen}
+\RequirePackage{varioref}
+%    \end{macrocode}
+% 
+% Now we delcare some default settings that may be redeclared by the
+% user; the user just has to |\renewcommand| them.  These are almost all
+% visual formatting issues best hidden from the author.
+%    \begin{macrocode}
+\newcommand\quesnumweight{\textbf}% 
+\newcommand\questionweight{\textbf}%
+\newcommand\answeight{}%
+\newcommand\quesnumstyle{}% 
+\newcommand\questionstyle{}%
+\newcommand\ansstyle{}%
+\newcommand\quesindentstyle{\hangindent}%
+\newcommand\ansindentstyle{\parindent}%
+\newcommand\commentweight{}\newcommand\commentstyle{\textit}%
+\newcommand\citeweight{}\newcommand\citestyle{\textit}% 
+\newcommand\sourceweight{}\newcommand\sourcestyle{}% 
+\newcommand\citetitleweight{}\newcommand\citetitlestyle{\textsc}
+\newcommand\citeword{Scripture}
+\newcommand\citesize{\small}
+\newcommand\sourcesize{\small}
+%    \end{macrocode}
+% 
+% Now we declare the necessary lengths.  Once again, these are
+% formatting issues best hidden from the author.
+%    \begin{macrocode}
+\newlength\questionskip
+\setlength\questionskip{1em} % Space b/f questions; in macros, rubber
+\newlength\answerskip
+\setlength\answerskip{0pt} % Space before answers
+\newlength\answerindent\newlength\rtanswerindent
+\setlength\rtanswerindent{0em} % Right indentation of answers
+\newlength\defanswerindent % Used internally only, below
+\newlength\defquesparindent % Default question parindent
+\newlength\quesparindent % Customizable question parindent
+\newlength\ansparindent % Customizable answer parindent
+\setlength\ansparindent{0em} % Initialize to zero
+\newlength\listindent\newlength\listmarg
+\newlength\perwidth\settowidth\perwidth{.}%
+%    \end{macrocode}
+%
+% Now we delcare the counter for the questions.  Obvious enough.
+%    \begin{macrocode}
+\newcounter{quesnum}
+%    \end{macrocode}
+% 
+% Now we begin to define the commands for the catechism questions.
+% The first is, obviously, |\catques|; within |\catques| we also
+% redefine all the |enumerate| macros, so that it won't hose the
+% |enumerate|s in other, non-catechism parts of the document.
+%    \begin{macrocode}
+\newcommand\catques[2]{%
+\refstepcounter{quesnum}%
+\renewcommand\theenumi{\alph{enumi}}%
+\labelformat{enumi}{\thequesnum(\theenumi)}%
+\renewcommand\theenumii{\arabic{enumii}}%
+\labelformat{enumii}{\thequesnum(\theenumi)(\theenumii)}%
+\renewcommand\theenumiii{\roman{enumiii}}%
+\labelformat{enumiii}{\thequesnum(\theenumi)(\theenumii)(\theenumiii)}%
+\renewcommand\theenumiv{\Alph{enumiv}}%
+\labelformat{enumiv}{\thequesnum(\theenumi)(\theenumii)(\theenumiii)%
+(\theenumiv)}%
+\setlength\leftmarginiii{2em}%
+\setlength\leftmarginiv{2em}%
+\renewcommand\@listi{%
+\setlength\listmarg{\the\labelsep+\the\labelwidth + \the\perwidth}
+\setlength\leftmargin{\the\defquesparindent + \the\listmarg}%
+\setlength\parsep{0em}%
+\setlength\itemsep{0em plus 2pt minus 2pt}%
+\setlength\topsep{0em}
+\setlength\partopsep{0em}
+\setlength\parskip{0em}
+}% end redef of \@listi
+\renewcommand\@listii{%
+\setlength\leftmargin{0em+\the\labelwidth}%
+\setlength\parsep{0em}%
+\setlength\itemsep{0em plus 2pt minus 2pt}%
+\setlength\topsep{0em}
+\setlength\partopsep{0em}
+\setlength\parskip{0em}
+}% end redef of \@listii
+\renewcommand\@listiii{%
+\setlength\leftmargin{0em+\the\labelwidth}%
+\setlength\parsep{0em}%
+\setlength\itemsep{0em plus 2pt minus 2pt}%
+\setlength\topsep{0em}
+\setlength\partopsep{0em}
+\setlength\parskip{0em}
+}% end redef of \@listiii
+\renewcommand\@listiv{%
+\setlength\leftmargin{0em+\the\labelwidth}%
+\setlength\parsep{0em}%
+\setlength\itemsep{0em plus 2pt minus 2pt}%
+\setlength\topsep{0em}
+\setlength\partopsep{0em}
+\setlength\parskip{0em}
+}% end redef of \@listiv
+\begingroup\par\setlength\parskip{\the\questionskip plus 2pt minus 2pt}%
+\settowidth\defquesparindent{% This sucks; but for some reason the
+% indentation eats closing spaces, so...
+\quesnumweight{\quesnumstyle{\thequesnum.  }}}%
+\ifthenelse{\quesindentstyle=\hangindent}{%
+\setlength\parindent{0pt}}{\hangafter=1}%
+\setlength\quesindentstyle{\the\defquesparindent-\the\quesparindent}%
+\quesnumweight{\quesnumstyle{\thequesnum\@.}}  %
+\questionweight{\questionstyle{#1}}\hfill\par\endgroup%
+\begingroup\par\setlength\parskip{\the\answerskip}%
+\ifthenelse{%
+\ansindentstyle=\hangindent}{%
+\setlength\parindent{0pt}}{\hangafter=1}%
+\setlength\ansindentstyle{\the\ansparindent}%
+\settowidth\defanswerindent{%
+\quesnumweight{\quesnumstyle{\thequesnum.  }}}%
+\setlength\leftskip{\the\defanswerindent-\the\answerindent}%
+\setlength\rightskip{\the\rtanswerindent}%
+\answeight{\ansstyle{#2}}\hfill\par\endgroup%
+}%
+%    \end{macrocode}
+% My, wasn't that messy?  Now, on to the |\catcomment| command.
+% Now we define the |\catcomment| command.  It's pretty simple,
+% actually, thanks to lacking the identation issues that |\cateques| was
+% so plagued by.
+%    \begin{macrocode}
+\newcommand\catcomment[1]{%
+\hspace*{\stretch{1}}\\\small\commentweight{\commentstyle{#1}}%
+\hspace*{\stretch{1}}\normalsize%
+}%
+%    \end{macrocode}
+%
+% Now we begin the commands for citing Scriptural citations.  In
+% lists, that is.  Not too complex, either.
+%    \begin{macrocode}
+\newcommand\citetitle{%
+\vspace*{1em}%
+\begin{center}\citetitleweight{\citetitlestyle{\citeword}}\end{center}
+}% end the \citetitle command
+\newcommand\scripture[2]{%
+\par\citesize\citeweight{\citestyle{#1}}\nolinebreak[1]%
+\quad\hspace*{\fill}\mbox{\sourcesize\sourceweight{\sourcestyle{#2}}}%
+\par\normalsize%
+}% end the \scripture command
+%    \end{macrocode}
+% 
+% \printindex
-- 
cgit v1.2.3

