diff options
author | Karl Berry <karl@freefriends.org> | 2008-01-18 17:17:00 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-01-18 17:17:00 +0000 |
commit | be26977c41f7693a4a94b13437375993398b365d (patch) | |
tree | 8cff21afcc72b11deb482f427f51163693c7eccf | |
parent | d9a6ab906e739b7bddda19c7990d4f8a3bbc68b8 (diff) |
new latex package catechis (17jan08)
git-svn-id: svn://tug.org/texlive/trunk@6302 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/latex/catechis/README | 28 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/catechis/catechis.pdf | bin | 0 -> 168774 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/catechis/test.tex | 100 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/catechis/catechis.ins | 33 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/catechis/catechis.sty | 612 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/catechis.tlpsrc | 2 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc | 1 |
7 files changed, 776 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/catechis/README b/Master/texmf-dist/doc/latex/catechis/README new file mode 100644 index 00000000000..ac67de72f93 --- /dev/null +++ b/Master/texmf-dist/doc/latex/catechis/README @@ -0,0 +1,28 @@ ++AMDG + +This readme is for catechis v1.0, uploaded on 17 Jan 2008. + +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. + +This document should run properly on any properly running LaTeX +system. It's been tested specifically with TeXLive on Linux (2.6.2 +kernel) and MikTeX on Windows XP. + +catechis is intended to provide basic and advanced macros for +producing catechism texts. It is meant to be extensively +customizable. diff --git a/Master/texmf-dist/doc/latex/catechis/catechis.pdf b/Master/texmf-dist/doc/latex/catechis/catechis.pdf Binary files differnew file mode 100644 index 00000000000..4aefe5963ba --- /dev/null +++ b/Master/texmf-dist/doc/latex/catechis/catechis.pdf diff --git a/Master/texmf-dist/doc/latex/catechis/test.tex b/Master/texmf-dist/doc/latex/catechis/test.tex new file mode 100644 index 00000000000..2d62266d7d5 --- /dev/null +++ b/Master/texmf-dist/doc/latex/catechis/test.tex @@ -0,0 +1,100 @@ +% +AMDG See catechis.sty for dedication of this test +% file. Pray for us! Have mercy on 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. +\documentclass[12pt]{article} +\title{Testing the \texttt{catechis} Package} +\author{Donald P.\ Goodman III} +\date{\today} + +\usepackage{catechis} + +\begin{document} +\maketitle + +\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 above are verbatim or nearly verbatim from the +Baltimore Catechism, for those who do not 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 +enumerates?}{Well, they work all right, thanks to \texttt{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.} +} + +\end{document} diff --git a/Master/texmf-dist/source/latex/catechis/catechis.ins b/Master/texmf-dist/source/latex/catechis/catechis.ins new file mode 100644 index 00000000000..25ea30b1b82 --- /dev/null +++ b/Master/texmf-dist/source/latex/catechis/catechis.ins @@ -0,0 +1,33 @@ +% +AMDG This document was produced on 12 September 2007, the Feast of the +% Holy Name of Mary, and it is humbly dedicated to her, the Blessed Virgin +% Mary, for her prayers, and to the Sacred Heart of Jesus for His mercy. +% +% 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. +% +\documentclass{ltxdoc} +\title{The \texttt{catechis} Package} +\author{Donald P.\ Goodman III} +\date{\today} + +\usepackage{doc} +\usepackage{catechis} +\usepackage{makeidx} + +\begin{document} +\DocInput{catechis.sty} +\end{document} 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 diff --git a/Master/tlpkg/tlpsrc/catechis.tlpsrc b/Master/tlpkg/tlpsrc/catechis.tlpsrc new file mode 100644 index 00000000000..6efce0df0d0 --- /dev/null +++ b/Master/tlpkg/tlpsrc/catechis.tlpsrc @@ -0,0 +1,2 @@ +name catechis +category Package diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc index fc3af411901..52ed87b3cc1 100644 --- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc @@ -50,6 +50,7 @@ depend calrsfs depend calxxxx depend captcont depend casyl +depend catechis depend cbcoptic depend ccaption depend cclicenses |