summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-01-18 17:17:00 +0000
committerKarl Berry <karl@freefriends.org>2008-01-18 17:17:00 +0000
commitbe26977c41f7693a4a94b13437375993398b365d (patch)
tree8cff21afcc72b11deb482f427f51163693c7eccf /Master/texmf-dist/tex/latex
parentd9a6ab906e739b7bddda19c7990d4f8a3bbc68b8 (diff)
new latex package catechis (17jan08)
git-svn-id: svn://tug.org/texlive/trunk@6302 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r--Master/texmf-dist/tex/latex/catechis/catechis.sty612
1 files changed, 612 insertions, 0 deletions
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