% \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
% (dgoodmaniii@gmail.com).
% 
% This work consists of the files catechis.ins and
% catechis.sty, along with the 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.
%
% This is version 1.1 of |catechis|; the only change is some
% cleaning up of the |enumerate|s, mostly just hard-wiring
% everything so that it actually works.  While this comes at
% the cost of flexibility, it gains\ldots well, actually
% working, so I considered this a good deal.  Hopefully I'll
% be able to add some flexibility on this score in the
% future; until then, you can still use the default
% |enumerate|s but calling them outside of a |\catques|.
%
% 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.  
% 
% 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.}
% \begin{enumerate}
% \item And now for a few more items\ldots 
% \begin{enumerate}
% \item Just to see what they look like.
% \end{enumerate}
% \end{enumerate}
% \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.}
% }
% \catques{Do the enumerates line up properly even when
% there are two digits in the question number?}{
% \begin{enumerate}
% \item Do the enumerates still have proper margins with
% multiple-digit question numbers?
% \item Why, yes.  Yes, they do.
% \end{enumerate}
% }
%
% \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
%    \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}%
\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%
\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)}%
\settowidth\leftmarginiii{2em}%
\settowidth\leftmarginiv{2em}%
\renewcommand\@listi{%
\settowidth\leftmargin{\the\defquesparindent.  }%
\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{%
\settowidth\leftmargin{(\theenumi)  }%
\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{%
\settowidth\leftmargin{\theenumii.  }%
\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{%
\settowidth\leftmargin{\theenumiii.  }%
\setlength\parsep{0em}%
\setlength\itemsep{0em plus 2pt minus 2pt}%
\setlength\topsep{0em}
\setlength\partopsep{0em}
\setlength\parskip{0em}
}% end redef of \@listiv
}%
%    \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 |\catques| 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