summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/ChangeLog404
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/Frankenfile1532
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/INSTALL321
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/README243
-rwxr-xr-xMaster/texmf-dist/doc/latex/frankenstein/abbrevs.pdfbin0 -> 212833 bytes
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/abbrevs.tex67
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/achicago-bst.pdfbin0 -> 412506 bytes
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/achicago-bst.tex67
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/achicago-bst.ver18
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/achicago.bsq2001
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/achicago.pdfbin0 -> 134780 bytes
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/achicago.tex67
-rwxr-xr-xMaster/texmf-dist/doc/latex/frankenstein/attrib.pdfbin0 -> 137127 bytes
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/attrib.tex67
-rwxr-xr-xMaster/texmf-dist/doc/latex/frankenstein/blkcntrl.pdfbin0 -> 76903 bytes
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/blkcntrl.tex67
-rwxr-xr-xMaster/texmf-dist/doc/latex/frankenstein/compsci.pdfbin0 -> 170938 bytes
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/compsci.tex67
-rwxr-xr-xMaster/texmf-dist/doc/latex/frankenstein/dialogue.pdfbin0 -> 98763 bytes
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/dialogue.tex67
-rwxr-xr-xMaster/texmf-dist/doc/latex/frankenstein/lips.pdfbin0 -> 115576 bytes
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/lips.tex67
-rwxr-xr-xMaster/texmf-dist/doc/latex/frankenstein/moredefs.pdfbin0 -> 171823 bytes
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/moredefs.tex67
-rwxr-xr-xMaster/texmf-dist/doc/latex/frankenstein/newclude.pdfbin0 -> 227643 bytes
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/newclude.tex67
-rwxr-xr-xMaster/texmf-dist/doc/latex/frankenstein/slemph.pdfbin0 -> 75976 bytes
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/slemph.tex67
-rwxr-xr-xMaster/texmf-dist/doc/latex/frankenstein/titles.pdfbin0 -> 199455 bytes
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/titles.tex67
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/unsupported/README-unsupported150
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.cfg20
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.ins64
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.pdfbin0 -> 134601 bytes
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.sty1070
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.tex67
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/unsupported/drama.ins64
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/unsupported/drama.pdfbin0 -> 93998 bytes
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/unsupported/drama.sty488
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/unsupported/drama.tex67
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/unsupported/includex-test.tex206
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/unsupported/includex.ins64
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/unsupported/includex.pdfbin0 -> 95848 bytes
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/unsupported/includex.sty492
-rw-r--r--Master/texmf-dist/doc/latex/frankenstein/unsupported/includex.tex67
45 files changed, 8142 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/frankenstein/ChangeLog b/Master/texmf-dist/doc/latex/frankenstein/ChangeLog
new file mode 100644
index 00000000000..f1e0e1b5969
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/ChangeLog
@@ -0,0 +1,404 @@
+2001-09-08 Matt Swift <swift@alum.mit.edu>
+
+ * abbrevs.cfg: Add testing for Acromake category.
+
+ * abbrevs.dtx: Added (messy!) acromake emulation. Removed
+ \TMCurrentMacro for the plain abbrevs -- will deal with that
+ later.
+
+ * moredefs.dtx: Fixed broken \SaveName.
+
+ * moredefs.dtx: Extend \EExpand...\In examples.
+
+ * Makefile: Remove acromake -- abbrevs now emulates it.
+
+2001-09-05 Matt Swift <swift@alum.mit.edu>
+
+ * titles.dtx: Add \slash to \nospacelist.
+
+2001-08-31 Matt Swift <swift@alum.mit.edu>
+
+ * abbrevs.dtx: Added to \nospacelist the following between bars:
+ |/\slash\@sptoken\ \space\/\@xobeysp|. Added \TMCurrentMacro.
+
+ * abbrevs.cfg: Add test with \slash.
+
+ * newclude.dtx: Extensive documentation revisions. Incorporation
+ of includex package. Revision and extension of hooks mechanisms.
+ Remove "group" option, which seemed inferior in all cases to the
+ others.
+
+ * titles.dtx: Changed: \booktitle -> \book, \journaltitle ->
+ \journal, \musictitle -> \music, \articletitle -> \article,
+ \playtitle -> \play, \crafttitle -> \craft. Compatibility easily
+ retained in configuration file. New: \species, \WrapquotesSN,
+ \WrapquotesDN, \WrapquotesSK, \nospacelist (abstraction of what
+ was hard-coded). Dox revisions. Some code cleanup.
+
+ * titles.cfg: New: \newlet\longpoem\textitswitch
+ \newlet\film\textitswitch \newlet\essaytitle\Wrapquotes
+ \newlet\chaptertitle\Wrapquotes. Revise and expand testing to
+ accommodate changes in titles.dtx.
+
+ * tag.sto: Add 2d optional argument to \include. Revise
+ documentation.
+
+ * lips.dtx: New: \BracketedLips, \olips, \Lips, mla package
+ option.
+
+ * group.sto: This file is not distributed any more; it proved
+ inferior to other newclude solutions in all applications.
+
+ * footnote.dtx: Dox changes only.
+
+ * epigraph.dtx: Remove call to \normalcitations. Remove \EPBox.
+ Add \@afterheading.
+
+ * compsci.dtx: New: \file \email. Changed: \booktitle -> \book.
+ Add hyperlatex package option. Make \code not \long.
+
+ * compsci.cfg: Define \ALaTeX instead of \require it (or something
+ like that).
+
+ * blkcntrl.dtx: Implementation and documentation revisions.
+
+ * bits.dtx: Requires letterhead package -- which I don't think I
+ distribute. Aha, that's why this is "unsupported"! It may be
+ usable with a dummy letterhead package. Call scheme-components
+ tasks now.
+
+ * attrib.dtx: Add \attribcitations. Some dox revisions.
+
+ * allocate.sto: Slight dox revisions.
+
+ * achicago.dtx: Depends on slemph and verbatim too now, but not
+ relsize. Some code cleanup. Bumped minor version number to
+ differentiate from what I had up there on my FTP site.
+
+ * achicago-bst.dtx: Extensive revisions to documentation. Thanks
+ to Panagiotis Louridas for pointing out a significant bug that
+ would indicate authors with the same last name as the same with a
+ 3-em dash in the bibliography. More cleanup of code. Major
+ version to 1; reflects non-beta state.
+
+ * README-unsupported: Remove entry for newclude; revise entry for
+ includex.
+
+ * README: Add section for newclude.
+
+ * Makefile: bundle-license = LPPL. Newclude moves to supported,
+ but remove group.sto. Includex remains for now. Alpha-bibstyle
+ mla: comment out for now, needs work in Frankenfile.
+ Alpha-configs: add letterhead remove myletter. Dox-requirements:
+ add attrib.
+
+ * moredefs.dtx: Many documentation changes. Change implementation
+ of \provideboolean and \newboolean to be compatible with ifthen
+ package. Fix \prependto@macro \g@prependto@macro so they work.
+ Fix check for defined macro in \SaveName. Fix \GobbleO \GobbleMO
+ so they work. Bump \docdate and minor version to distinguish from
+ limited release on FTP site.
+
+
+1999-03-22 Matthew Swift <swift@alum.mit.edu>
+
+ * Makefile: Moved dialogue from alph to stable (was a mistake).
+ Added ifndefs around HAVE_WEB2C definition.
+
+1999-03-08 Matthew Swift <swift@alum.mit.edu>
+
+ * abbrevs.cfg: Moved basic categories and datemarks to .dtx.
+ Changed \AbbrevInitialSuffix, \AbbrevSubsequentSuffix back to
+ \TM....
+
+ * INSTALL: Added relsize to abbrevs deps.
+
+ * Makefile: Added relsize to abbrevs-deps.
+
+ * abbrevs.dtx: Some dox. Require slemph. Changed
+ \Abbrev{Initial,Subsequent}Suffix back to \TM... Added basic
+ categories and datemarks from .cfg to main .dtx.
+
+ * achicago-bst.dtx: Revised some dox, adding the table of entry
+ types, defining \field, \entry, etc.
+
+ * titles.dtx: Tiny bit of dox. Fixed some mistakes in
+ commented-out \DTypeouts.
+
+ * compsci.dtx: Fix a bit of dox.
+
+ * README-unsupported: Tidied a bit, and mentioned dependences on
+ relsize.sty.
+
+ * Makefile: Removed non-bundle fileset rules, dependencies, and
+ variables. Removed symlinks.
+
+ * INSTALL: Revised handling of non-Frankenstein packages.
+ Mentioned dox-building requirements.
+
+ * README: Eliminated reference to non-Frankenstein links.
+
+1999-03-01 Matthew Swift <swift@alum.mit.edu>
+
+ * compsci.dtx: Lotso doxo. The whole version-control system
+ revamped. Also began to kick some butt in my verbatim skills with
+ a revamp of bothexample that got the kinks out and eliminated
+ dependence on moreverb. Bracket \email with angle brackets.
+
+ * dialogue.dtx: Updated version to 1.1.
+
+ * achicago-bst.dtx: Lotso doxo.
+
+ * titles.cfg: Added Question-or-Exclamation testing.
+
+ * titles.dtx: Major revision. Lots of dox. Implemented four
+ complementary \WrapquotesXX and two package options. Implemented
+ \IfQuestionOrExclamation. Package now requires package slemph.
+ Added \word \phrase etc. (Were they in the cfg?) Changed some
+ names from old \sc@ to \ti@. Moved from an \if to an \ifx so
+ titles don't break before funny command sequences.
+
+ * abbrevs.dtx: Just documentation.
+
+ * achicago.dtx: Dox.
+
+ * lips.dtx: Major revision. Revised most dox.
+
+ \lips will insert nonbreakable space when followed by the chars in
+ \LPNobreakList and normally-breakable space for everything else.
+ Previously, \lips inserted nonbreakable space for all following
+ punctuation, and minimally breakable space for everything else.
+ The space that follows a period + ellipsis is now
+ normally-breakable when it was nonbreakable.
+
+ We use \ifx instead of \ifcat to look ahead. This fixes \lips
+ breaking before command sequences.
+
+ If \lips occurs before a tie, don't insert post-ellipsis space,
+ let the tie insert it.
+
+ Fixed \PackageError bug. Changed internal \sc@ macros to \lp@
+ except for scratch.
+
+1999-02-27 Matthew Swift <swift@alum.mit.edu>
+
+ * includex.dtx: Revised dox a bit. Redid titling. Added counters
+ sc@count and bit.
+
+ * includex-test.tex: Changed titles of provided files. Redid
+ document titling.
+
+1999-02-26 Matthew Swift <swift@alum.mit.edu>
+
+ * moredefs.dtx: Revised some dox. Added \GVerboseErrors, \GDebug,
+ \D*Typeout, \DGobbleM, and dox. Revised \Debug to deal with them.
+
+ * bits.dtx: A tiny bit of dox.
+
+ * newclude.dtx: Changed abstract. Changed (reverted) to
+ \nc@endofpackage instead of \AtEndOfPackage because of some sort
+ of problem.
+
+ * INSTALL: Removed mention of moreverb.
+
+ * Makefile: Added some dox. Removed moreverbs dependency and
+ rules.
+
+ * dialogue.dtx: Attributed the example. Added a bit of user
+ documentation.
+
+ * attrib.dtx: Added user documentation. Changed \AttribInit to
+ \at@init and gave user a hook \AttribInit. Added footnote hack to
+ \at@init. Added \normalcitations, and added it to \attribstar.
+ Added \nobreak to \attrib.
+
+1999-02-25 Matthew Swift <swift@alum.mit.edu>
+
+ * Makefile: Added blkcntrl.sty to dox-requirements.
+
+ * blkcntrl.dtx: Added warning when \smallblocks called twice.
+ Changed \item[]\hook to \item\relax hook following latest
+ classes.dtx (did it change there?).
+
+ * slemph.dtx: Significant change: \itswitch (and \slswitch) now
+ switches iff the current font is italic (slanted), rather than
+ switching when the current font is sloped
+ (i.e., either slanted OR italic).
+
+ * lips.dtx: Revise documentation.
+
+1999-02-23 Matthew Swift <swift@alum.mit.edu>
+
+ * README: Thorough revision.
+ * Makefile: Thorough revision.
+ * INSTALL: Thorough revision.
+
+1999-02-18 Matthew Swift <swift@alum.mit.edu>
+
+ * install-lsr: Changed [ -n "$addlsr" ] to [ $addlsr ]; revised
+ comments. Moving to Frankenbundle directory.
+
+1998-08-27 Matthew Swift <swift@alum.mit.edu>
+
+ * epigraph.dtx: Added \normalcitations (see attrib.dtx) to
+ \PreEpigraph.
+
+1998-08-24 Matthew Swift <swift@alum.mit.edu>
+
+ * achicago-bst.dtx: I changed all `new.sentence' back to
+ `new.block' because \newblock was adding a tiny bit of horiz
+ space, and that seemed like a good idea.
+
+ * achicago-bst.dtx: Removed `second.presort' function. Removed
+ superfluous variables `sort.label' and `year.and.extra.label'.
+ Renamed several variables and functions for clarity. Added much
+ documentation. Streamlined and debugged
+ `make.short.label.names.q'. Handled duplicate items in the
+ bibliography better: now handles duplicate organizations in the
+ `manual' entry type.
+
+1998-08-22 Matthew Swift <swift@alum.mit.edu>
+
+ * achicago-bst.dtx: Added `make.vol.series.num.month.pages', which
+ seems to work for half the cases, namely, where |series| is empty.
+ Haven't written the other cases yet.
+
+1998-08-20 Matthew Swift <swift@alum.mit.edu>
+
+ * moredefs.dtx: *prepend macros were not prepending, they were
+ adding.
+
+ * epigraph.dtx: Changed \parbox argument from [c] default to [b].
+
+1998-08-15 Matthew Swift <swift@alum.mit.edu>
+
+ * abbrevs.cfg: Added example in comments about changing
+ \PreFootnote.
+
+1997-11-11 Matthew Swift <swift@alum.mit.edu>
+
+ * titles.cfg: Moved all the definitions to the main file. The
+ config file should be expendable.
+
+ * moredefs.dtx: Added \ReserveCS* and \ReserveName* and changed
+ related dox.
+
+ * titles.dtx: Changed @ti@double@ to @doublequotes@ by using
+ \DeclareBooleanOptions to define it.
+
+ Moved the contents of the cfg file into the main file.
+
+ Added \term, \word, \defn, \foreign, \foreignword, \phrase.
+
+ * abbrevs.cfg: Added backwards compatibility of \TMNewCategory,
+ \TMDefineAbbrevPlain.
+
+ * compsci.dtx: removed \word \term \defn and put them in
+ titles package, which compsci requires.
+
+ v0.91 (beta) -> v0.92 (beta): changed the redefinition of the
+ moreverb command to recognize a variable change in the new
+ moreverb.sty. Released to CTAN 4 Oct 96. Is there a version of
+ the moreverb package I should be checking for?
+
+ * lips.dtx: 1.1 -> 1.2
+
+ 1.1 used \newlet but did not require moredefs (bug). I changed to
+ use \newcommand and \let, rather than require moredefs.
+
+ Removed the \expandafters expanding \sc@t@a in
+ \sc@lips@check@punct. This was a bug, it shouldn't have been
+ expanded.
+
+ Added more testing material.
+
+
+ * abbrevs.dtx: \TMLongSuffix and \TMShortSuffix changed to
+ \TMInitialSuffix and \TMSubsequentSuffix.
+
+ \TMNewCategory changed to \NewAbbrevCategory; backward compatible
+ \let is in the config file.
+
+ \TMDefineAbbrevPlain changed to \TMDefineAbbrevStandard;
+ \tm@defineabbrevplain changed to \tm@defineabbrevstandard.
+ backward compatible \let for the former in the config file.
+
+ Added documentation for programmer interface commands
+ \NewUserAbbrevDefiner, \NewAbbrevCategory.
+
+ Actually implemented \TMHookAll, \TMFontAll (oops!).
+
+ Added note about using with CJK.
+
+1997-11-07 Matthew Swift <swift@alum.mit.edu>
+
+ * moredefs.dtx: \NewUserInfo should use \ReserveCS to initialize
+ the variable, not \InitCS.
+
+ Fixed documentation of \NewUserCommand: order of arguments was
+ wrong; mention how the variable is initialized.
+
+1997-10-20 Matthew Swift <swift@alum.mit.edu>
+
+ * compsci.dtx, titles.dtx, abbrevs.dtx, moredefs.dtx:
+ Changed \Monster* to \Franken*.
+
+ * lips.dtx, abbrevs.dtx: Revised abstract.
+
+1997-10-19 Matthew Swift <swift@alum.mit.edu>
+
+ * compsci.dtx: Fixed problem with \char`\\ producing a " in
+ non-typewriter fonts, that is, in the definition of \meta. I'm
+ lost on the current LaTeX font situation. I'm using teTeX 0.4,
+ which bombs when I try to use T1 encoding.
+
+ Fixed some documentation, including ^^A comments which were
+ showing up in the codexample examples.
+
+1997-10-18 Matthew Swift <swift@alum.mit.edu>
+
+ * titles.cfg: Added \musictitle on 5 Aug 96; just making new
+ version now.
+
+ * lips.dtx, abbrevs.dtx, moredefs.dtx, slemph.dtx, titles.dtx:
+ Revised documentation.
+
+ * compsci.dtx, abbrevs.cfg: Corrected typos in dox.
+
+ Use \NewRobustCommand for \cname instead of \DeclareRobustCommand.
+
+ * abbrevs.cfg: Corrected typos in testing.
+
+ * abbrevs.dtx: Added caveat about CJK and 8-bit input.
+
+ Changed \TMNewAbbrevPlain to use \NewRobustCommand instead of
+ \@ifdefinable.
+
+ * moredefs.dtx: Either added or fixed \NewRobustCommand and
+ \NewTextFontCommand.
+
+ In 1.02 (beta), which this version supercedes, I think I did the
+ following:
+
+ fixed bug in \InitName
+ added \DeclareBooleanOptions, \DeclareBooleanUserOptions
+ \SaveCS, \SaveName, \RestoreCS, \RestoreName
+ \UndefineCS
+
+ * INSTALL: Revised to reflect new CTANs and new distribution
+ package format.
+
+ * slemph.dtx: Changed \DeclareTextFontCommand to
+ \NewTextFontCommand.
+
+ Changed \DeclareRobustCommand to \NewRobustCommand.
+
+ * titles.dtx: Fixed infinite loop bug that occurred with
+ 1996/12/01 and 1997/06/01 kernels with revised lookahead macros.
+
+ Changed some legacy macro names from \sc@ to \ti@.
+
+Wed Dec 11 12:12:50 1996 Matthew Swift <swift@bu.edu>
+
+ * README: Added pointer to INSTALL.
+
diff --git a/Master/texmf-dist/doc/latex/frankenstein/Frankenfile b/Master/texmf-dist/doc/latex/frankenstein/Frankenfile
new file mode 100644
index 00000000000..18da2b3b9bb
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/Frankenfile
@@ -0,0 +1,1532 @@
+## Frankenfile -- common part of a Makefile for LaTeX and BibTeX bundles
+#
+# Author: Matt Swift <swift@alum.mit.edu>
+#
+# This file is given into the public domain.
+# Please acknowledge my work when appropriate.
+# Such reflected glory is all I get from releasing this work to you.
+#
+# Version: $Revision: 1.10 $ $Date: 2001/08/31 01:27:17 $
+# See the file ChangeLog-Frankenbundle for revision history.
+#
+# This file is distributed in two ways:
+#
+# 1) With LaTeX filesets. In normal circumstances, you do not need
+# to read this file or alter it See the README or INSTALL file that
+# came with this file instead.
+#
+# 2) As part of the Frankenbundle suite, which helps developers make and
+# distribute LaTeX and BibTeX filesets. In normal circumstances, you
+# should not need to alter this file. Please see the README file
+# in the suite for further documentation.
+
+#
+## Basic variable definitions
+#
+
+# NOTE: to override these definitions, use environment variables or the Make
+# command line. The values here should be the most common ones in general, so
+# that the least number of users have to override them. If you think I could
+# choose better values, please write me.
+
+# NOTE: I use the $(...) construct for command substitution, supported by
+# POSIX, ksh, bash. I can rewrite with nested backquotes if someone insists.
+
+# NOTE: ?= is broken in Make 3.77, so we use the more verbose ifndef
+# construction.
+
+# NOTE: We don't bother to abstract the 'kpsewhich', 'echo', 'cd', 'pwd',
+# 'test', or '[' commands. Any reason to?
+
+# Eliminating built-in implicit rules speeds up Make and makes debugging output
+# much briefer. Recusive Making turns on -w which traces what directory we're
+# in, but we're always in this directory, so we turn off those messages.
+MAKEFLAGS += --no-builtin-rules --no-print-directory
+
+# We don't need all the old-fashioned suffix rules -- removing them makes
+# things more efficient.
+.SUFFIXES:
+
+# Make debugging option. Uncomment to use.
+# MAKEFLAGS += --warn-undefined-variables
+
+# Hmm, this doesn't seem to work when defined in this way. Seems to work only
+# on the command line.
+# MAKEFLAGS += --print-database
+
+# ifeq ($(OS),WIN32)
+# variant defs
+# endif
+
+# RM is defined by Make as 'rm -f'. You could redefine it.
+# ls is often aliased, so use /bin/ls
+ifndef LS
+LS = /bin/ls
+endif
+ifndef TAR
+TAR = tar
+endif
+ifndef LN
+LN = ln
+endif
+ifndef M4
+M4 = m4
+endif
+ifndef SYMLINK
+SYMLINK = $(LN) -f -s
+endif
+ifndef SED
+SED = sed
+endif
+ifndef AWK
+AWK = awk
+endif
+ifndef FGREP
+FGREP = fgrep
+endif
+ifndef TEE
+TEE = tee
+endif
+ifndef XARGS
+XARGS = xargs
+endif
+ifndef EXPR
+EXPR = expr
+endif
+ifndef HEAD
+HEAD = head
+endif
+ifndef TR
+TR = tr
+endif
+ifndef GREP
+GREP = grep
+endif
+ifndef CAT
+CAT = cat
+endif
+ifndef TOUCH
+TOUCH = touch
+endif
+ifndef REHASH
+REHASH = texconfig rehash
+endif
+ifndef DIRNAME
+DIRNAME = dirname
+endif
+ifndef BASENAME
+BASENAME = basename
+endif
+ifndef INSTALL
+INSTALL = install
+endif
+# -p = preserve timestamps
+ifndef INSTALLOPTS
+INSTALLOPTS = -p -m $(MKFILEMODE)
+endif
+ifndef CHMOD
+CHMOD = chmod
+endif
+ifndef MKFILEMODE
+# mode rw-rw-r--, i.e. 664
+MKFILEMODE = 664
+endif
+ifndef MKDIRP
+MKDIRP = $(INSTALL) -d -m $(MKDIRMODE)
+endif
+ifndef MKDIRMODE
+MKDIRMODE = 755
+endif
+ifndef LATEX
+LATEX = latex
+endif
+ifndef TEX
+TEX = tex
+endif
+ifndef BIBTEX
+BIBTEX = bibtex
+endif
+ifndef BIBTOOL
+BIBTOOL = bibtool
+endif
+ifndef MAKEINDEX
+MAKEINDEX = makeindex $(MAKEINDEXOPTS)
+endif
+ifndef MAKEINDEXOPTS
+MAKEINDEXOPTS = -s gind.ist
+endif
+# Subdirectory of the main directory in which to build the distribution:
+# don't call it "distrib" or the name of any other target!
+ifndef distribution-dir
+distribution-dir = distribution
+endif
+
+#
+## internal variables naming files
+#
+
+# FIX: I suppose we could make this faster for the end user by figuring out
+# which of these many definitions are only used by the developer.
+
+dist-extra-files = $(stable-extra-files)
+ifeq ($(USER),$(DEVELOPER))
+dist-extra-files += $(beta-extra-files)
+else
+ifdef USE_UNSUP
+dist-extra-files += $(beta-extra-files)
+endif
+endif
+
+# may not exist
+bundle-bib.bib = $(bundle-bib).bib
+
+packages.sty = $(addsuffix .sty, $(packages))
+packages.stq = $(addsuffix .stq, $(packages))
+packages.ins = $(addsuffix .ins, $(packages))
+packages.dvi = $(addsuffix .dvi, $(packages))
+packages.tex = $(addsuffix .tex, $(packages))
+stos.sto = $(addsuffix .sto, $(stos))
+stos.sqo = $(addsuffix .sqo, $(stos))
+
+classes.cls = $(addsuffix .cls, $(classes))
+classes.clq = $(addsuffix .clq, $(classes))
+classes.ins = $(addsuffix .ins, $(classes))
+classes.dvi = $(addsuffix .dvi, $(classes))
+classes.tex = $(addsuffix .tex, $(classes))
+clos.clo = $(addsuffix .clo, $(clos))
+clos.cqo = $(addsuffix .cqo, $(clos))
+
+bibstyles-bst = $(addsuffix -bst, $(bibstyles))
+bibstyles.bst = $(addsuffix .bst, $(bibstyles))
+bibstyles.bsq = $(addsuffix .bsq, $(bibstyles))
+bibstyles.ins = $(addsuffix .ins, $(bibstyles-bst))
+bibstyles.dvi = $(addsuffix .dvi, $(bibstyles-bst))
+bibstyles.tex = $(addsuffix .tex, $(bibstyles-bst))
+bibstyles.ver = $(addsuffix .ver, $(bibstyles-bst))
+
+# everything depends on the makefiles
+# the "Frankenfile" in the next line is intended to refer to this file
+makefiles = Frankenfile $(calling-makefile)
+stable-extra-files += $(makefiles) $(bundle-bib.bib)
+
+stable-packages.sty = $(addsuffix .sty, $(stable-packages))
+stable-packages.ins = $(addsuffix .ins, $(stable-packages))
+stable-packages.dvi = $(addsuffix .dvi, $(stable-packages))
+stable-packages.tex = $(addsuffix .tex, $(stable-packages))
+
+stable-classes.cls = $(addsuffix .cls, $(stable-classes))
+stable-classes.ins = $(addsuffix .ins, $(stable-classes))
+stable-classes.dvi = $(addsuffix .dvi, $(stable-classes))
+stable-classes.tex = $(addsuffix .tex, $(stable-classes))
+
+stable-bibstyles-bst = $(addsuffix -bst, $(stable-bibstyles))
+stable-bibstyles.bst = $(addsuffix .bst, $(stable-bibstyles))
+stable-bibstyles.ins = $(addsuffix .ins, $(stable-bibstyles-bst))
+stable-bibstyles.dvi = $(addsuffix .dvi, $(stable-bibstyles-bst))
+stable-bibstyles.tex = $(addsuffix .tex, $(dist-bibstyles-bst))
+stable-bibstyles.ver = $(addsuffix .ver, $(dist-bibstyles-bst))
+
+stable-configs.cfg = $(addsuffix .cfg, $(stable-configs))
+
+stable-filesets.ins = $(addsuffix .ins, $(stable-filesets))
+stable-filesets.tex = $(addsuffix .tex, $(stable-filesets))
+stable-filesets.dvi = $(addsuffix .dvi, $(stable-filesets))
+
+beta-packages.sty = $(addsuffix .sty, $(beta-packages))
+beta-packages.dvi = $(addsuffix .dvi, $(beta-packages))
+
+beta-classes.cls = $(addsuffix .cls, $(beta-classes))
+beta-classes.dvi = $(addsuffix .dvi, $(beta-classes))
+
+beta-bibstyles-bst = $(addsuffix -bst, $(beta-bibstyles))
+beta-bibstyles.bst = $(addsuffix .bst, $(beta-bibstyles))
+beta-bibstyles.dvi = $(addsuffix .dvi, $(beta-bibstyles-bst))
+beta-bibstyles.ver = $(addsuffix .ver, $(beta-bibstyles-bst))
+
+beta-configs.cfg = $(addsuffix .cfg, $(beta-configs))
+
+beta-filesets.ins = $(addsuffix .ins, $(beta-filesets))
+beta-filesets.tex = $(addsuffix .tex, $(beta-filesets))
+beta-filesets.dvi = $(addsuffix .dvi, $(beta-filesets))
+
+filesets.tex = $(addsuffix .tex, $(filesets))
+filesets.dvi = $(addsuffix .dvi, $(filesets))
+filesets.ins = $(addsuffix .ins, $(filesets))
+filesets.aux = $(addsuffix .aux, $(filesets))
+filesets.t1 = $(addsuffix .t1, $(filesets))
+filesets.t2 = $(addsuffix .t2, $(filesets))
+filesets.t3 = $(addsuffix .t3, $(filesets))
+
+dist-filesets.aux = $(addsuffix .aux, $(dist-filesets))
+# cits for "have citations"
+dist-filesets-cits.aux = $(addsuffix .aux, $(dist-filesets-cits))
+
+stable-stos.sto = $(addsuffix .sto, $(stable-stos))
+beta-stos.sto = $(addsuffix .sto, $(beta-stos))
+
+# We treat "X.cfg" as if it was a root name.
+configs.cfg = $(addsuffix .cfg, $(configs))
+configs.cfg.install = $(addsuffix .cfg.install, $(configs))
+configs.cfq = $(addsuffix .cfq, $(configs))
+configs.cfq.install = $(addsuffix .cfq.install, $(configs))
+
+# These files are part of the building process.
+part-1 = $(make-dir)/part-1.dtx
+part-2 = $(make-dir)/part-2.dtx
+part-3 = $(make-dir)/part-3.dtx
+parts = $(part-1) $(part-2) $(part-3)
+extractor = $(make-dir)/extractor.ins
+driver = $(make-dir)/driver.tex
+#
+## internal variables for phony targets
+#
+
+dist-bibstyles-bst = $(addsuffix -bst, $(stable-bibstyles))
+dist-packages = $(stable-packages)
+dist-classes = $(stable-classes)
+dist-bibstyles = $(stable-bibstyles)
+dist-filesets = $(dist-packages) $(dist-classes) $(dist-bibstyles-bst)
+filesets = $(packages) $(classes) $(bibstyles-bst)
+ifeq ($(USER),$(DEVELOPER))
+dist-bibstyles-bst += $(addsuffix -bst, $(beta-bibstyles))
+dist-packages += $(beta-packages)
+dist-classes += $(beta-classes)
+dist-bibstyles += $(beta-bibstyles)
+# cits for "have citations"
+dist-filesets-cits = $(basename $(shell $(GREP) -l '\initelyHavECitationS' \
+ $(addsuffix .dtx, $(dist-filesets))))
+else
+ifdef USE_UNSUP
+dist-bibstyles-bst += $(addsuffix -bst, $(beta-bibstyles))
+dist-packages += $(beta-packages)
+dist-classes += $(beta-classes)
+dist-bibstyles += $(beta-bibstyles)
+endif
+endif
+
+
+# nondc = "non-dist-cits"
+nondc-filesets = $(filter-out $(dist-filesets-cits), $(filesets))
+
+packages = $(dist-packages) $(alpha-packages)
+packages.clean = $(addsuffix .clean, $(packages))
+packages.dev.clean = $(addsuffix .dev.clean, $(packages))
+packages.macros = $(addsuffix .macros, $(packages))
+packages.macros.q = $(addsuffix .macros.q, $(packages))
+packages.install = $(addsuffix .install, $(packages))
+packages.install.q = $(addsuffix .install.q, $(packages))
+packages.doc.install= $(addsuffix .doc.install, $(packages))
+packages.sty.install= $(addsuffix .sty.install, $(packages))
+packages.stq.install= $(addsuffix .stq.install, $(packages))
+packages.sto.install= $(addsuffix .sto.install, $(packages))
+packages.sqo.install= $(addsuffix .sqo.install, $(packages))
+packages.src.install= $(addsuffix .src.install, $(packages))
+stable-stos = $(foreach f, $(stable-filesets), $($(f)-stos))
+beta-stos = $(foreach f, $(beta-filesets), $($(f)-stos))
+alpha-stos = $(foreach f, $(alpha-filesets), $($(f)-stos))
+stos = $(stable-stos) $(beta-stos) $(alpha-stos)
+classes = $(dist-classes) $(alpha-classes)
+classes.clean = $(addsuffix .clean, $(classes))
+classes.dev.clean = $(addsuffix .dev.clean, $(classes))
+classes.macros = $(addsuffix .macros, $(classes))
+classes.macros.q = $(addsuffix .macros.q, $(classes))
+classes.install = $(addsuffix .install, $(classes))
+classes.install.q = $(addsuffix .install.q, $(classes))
+classes.doc.install = $(addsuffix .doc.install, $(classes))
+classes.cls.install = $(addsuffix .cls.install, $(classes))
+classes.clq.install = $(addsuffix .clq.install, $(classes))
+classes.clo.install = $(addsuffix .clo.install, $(classes))
+classes.cqo.install = $(addsuffix .cqo.install, $(classes))
+classes.src.install = $(addsuffix .src.install, $(classes))
+stable-clos = $(foreach f, $(stable-filesets), $($(f)-clos))
+beta-clos = $(foreach f, $(beta-filesets), $($(f)-clos))
+alpha-clos = $(foreach f, $(alpha-filesets), $($(f)-clos))
+clos = $(stable-clos) $(beta-clos) $(alpha-clos)
+bibstyles = $(dist-bibstyles) $(alpha-bibstyles)
+bibstyles.clean = $(addsuffix .clean, $(bibstyles-bst))
+bibstyles.dev.clean = $(addsuffix .dev.clean, $(bibstyles-bst))
+bibstyles.macros = $(addsuffix .macros, $(bibstyles-bst))
+bibstyles.macros.q = $(addsuffix .macros.q, $(bibstyles-bst))
+bibstyles.install = $(addsuffix .install, $(bibstyles-bst))
+bibstyles.bst.install= $(addsuffix .bst.install, $(bibstyles-bst))
+bibstyles.bsq.install= $(addsuffix .bsq.install, $(bibstyles-bst))
+bibstyles.install.q = $(addsuffix .install.q, $(bibstyles-bst))
+bibstyles.doc.install = $(addsuffix .doc.install, $(bibstyles-bst))
+bibstyles.src.install = $(addsuffix .src.install, $(bibstyles-bst))
+configs = $(stable-configs) $(beta-configs) $(alpha-configs)
+
+# $(filesets-*) are NOT going to include $(bibstyles), but rather
+# $(bibstyles-bst). This is what we want.
+filesets.macros = $(addsuffix .macros, $(filesets))
+filesets.macros.q = $(addsuffix .macros.q, $(filesets))
+filesets.q = $(addsuffix .q, $(filesets))
+filesets.dep = $(addsuffix .dep, $(filesets))
+filesets.dep.q = $(addsuffix .dep.q, $(filesets))
+filesets.dep.macros = $(addsuffix .dep.macros, $(filesets))
+filesets.dep.macros.q= $(addsuffix .dep.macros.q, $(filesets))
+filesets.dep.install = $(addsuffix .dep.install, $(filesets))
+filesets.dep.install.q= $(addsuffix .dep.install.q, $(filesets))
+filesets.cfg = $(addsuffix .cfg, $(filesets))
+filesets.cfg.install = $(addsuffix .cfg.install, $(filesets))
+filesets.cfq = $(addsuffix .cfq, $(filesets))
+filesets.cfq.install = $(addsuffix .cfq.install, $(filesets))
+filesets.install = $(addsuffix .install, $(filesets))
+filesets.install.q = $(addsuffix .install.q, $(filesets))
+filesets.doc = $(addsuffix .doc, $(filesets))
+filesets.doc.install = $(addsuffix .doc.install, $(filesets))
+filesets.src.install = $(addsuffix .src.install, $(filesets))
+filesets.clean = $(addsuffix .clean, $(filesets))
+filesets.dev.clean = $(addsuffix .dev.clean, $(filesets))
+dist-filesets.clean = $(addsuffix .clean, $(dist-filesets))
+dist-filesets.q = $(addsuffix .q, $(dist-filesets))
+dist-filesets.macros = $(addsuffix .macros, $(dist-filesets))
+dist-filesets.macros.q=$(addsuffix .macros.q, $(dist-filesets))
+dist-filesets.install= $(addsuffix .install, $(dist-filesets))
+dist-filesets.install.q = $(addsuffix .install.q, $(dist-filesets))
+stable-filesets = $(stable-packages) $(stable-classes) \
+ $(stable-bibstyles-bst)
+beta-filesets = $(beta-packages) $(beta-classes) $(beta-bibstyles-bst)
+alpha-filesets = $(filter-out $(dist-filesets), $(filesets))
+
+#
+## perc variables
+#
+
+# NOTE: This is some pretty backhanded Makefile programming. Doing things this
+# way avoids recursive invocations of Make. We still have to recurse to make
+# stos and clos because we cannot expand variable names with % in them in the
+# list of dependencies. This is unlikely to change in GNU Make.
+
+# "Perc" stands for "percent", that is, "%". The perc variables are used in
+# dependencies and expand to what they name with "%" for "perc"; or they expand
+# to nothing, a null dependency. The % if it's there will then get substituted
+# in the pattern rule. We handle NODEP and NODOC differently than the NOSRC
+# and NOMAC flags because they need to avoid building files as well as
+# installing them and. We could actually treat NOMAC the same way, because
+# right now NOMAC doesn't avoid building the macros, it just avoids installing
+# them. But the only circumstance where this would save time is when you just
+# want to install the sources and no macros and no dox. That seems like too
+# weird a case to bother to accommodate.
+
+# Notice we still have to use conditionals like "[ $(NODEP) ] ||" in rules
+# because NODEP might be set by a target-specific assignment, and therefore
+# these conditionals won't work. In those cases, we can't avoid building
+# dependencies, but those cases are exactly the ones where all the dependencies
+# are built anyway (e.g., "all:"). For NODOC, NOSRC, and NOMAC, we can use
+# ifeq constructions, which are determined when the Makefile is read in.
+ifeq ($(NODEP),)
+ perc.dep = %.dep
+ perc.dep.q = %.dep.q
+ perc.dep.macros = %.dep.macros
+ perc.dep.macros.q = %.dep.macros.q
+ perc.dep.install = %.dep.install
+ perc.dep.install.q = %.dep.install.q
+else
+ perc.dep =
+ perc.dep.q =
+ perc.dep.macros =
+ perc.dep.macros.q =
+ perc.dep.install =
+ perc.dep.install.q =
+endif
+ifeq ($(NODOC),)
+ perc.doc = %.doc
+ perc.doc.install = %.doc.install
+else
+ perc.doc =
+ perc.doc.install =
+endif
+
+#
+## definitions
+#
+
+# ROOT-NAME is the stem of the macro package, e.g., "foo" from
+# foo.{sty,cls,bst}
+
+ifeq ($(USER),$(DEVELOPER))
+define transform-common
+ -e 's/__ROOT-NAME__/$*/g' \
+ -e 's/__BUNDLE__/$(bundle-title)/g' \
+ -e 's/__BUNDLE-BIB__/$(bundle-bib)/g'
+endef
+define transform-cls
+ $(SED) $(transform-common) \
+ -e 's/__POSTAMBLE__//g' \
+ -e 's/__NAME__/$*/g' \
+ -e 's/__SUFFIX__/cls/g' \
+ -e 's/__VERSION-INFO-SUFFIX__/cls/g' \
+ -e 's/__QSUFFIX__/clq/g' \
+ -e 's/__OSUFFIX__/clo/g' \
+ -e 's/__TYPE__/LaTeX class/g' \
+ -e 's/__PROG__/LaTeX/g' \
+ -e 's/__PROVIDES__/Class/g'
+endef
+define transform-sty
+ $(SED) $(transform-common) \
+ -e 's/__POSTAMBLE__//g' \
+ -e 's/__NAME__/$*/g' \
+ -e 's/__SUFFIX__/sty/g' \
+ -e 's/__VERSION-INFO-SUFFIX__/sty/g' \
+ -e 's/__QSUFFIX__/stq/g' \
+ -e 's/__OSUFFIX__/sto/g' \
+ -e 's/__TYPE__/LaTeX package/g' \
+ -e 's/__PROG__/LaTeX/g' \
+ -e 's/__PROVIDES__/Package/g'
+endef
+define transform-bst
+ $(SED) $(transform-common) \
+ -e 's/__POSTAMBLE__/\\nopostamble/g' \
+ -e 's/__NAME__/$*-bst/g' \
+ -e 's/__SUFFIX__/bst/g' \
+ -e 's/__VERSION-INFO-SUFFIX__/ver/g' \
+ -e 's/__QSUFFIX__/bsq/g' \
+ -e 's/__TYPE__/BibTeX style/g' \
+ -e 's/__PROG__/BibTeX/g' \
+ -e 's/__PROVIDES__/BibTeXstyle/g'
+endef
+endif # user ?= developer
+
+
+ifneq ($(HAVE_WEB2C),)
+
+# install-lsr = ./install-lsr --add
+# install-plain = ./install-lsr
+
+install-lsr = $(install-lsr-internal) --add
+install-plain = $(install-lsr-internal)
+
+# Usage:
+#
+# $progname [--add] <file> [<file>...] <dir> | <file> <file-full-pathname>
+#
+# This emulates install(1) with two differences.
+# If --add is given, also add the files to web2c ls-R database.
+# If the source file has execute permission, the destination will be given
+# u+x.
+
+define install-lsr-internal
+ function mbuna () { \
+ if [ "$$1" = "--add" ]; then \
+ addlsr=true; \
+ shift; \
+ else \
+ unset addlsr; \
+ fi; \
+ if [ $$addlsr ]; then \
+ : $${MT_TEXMFMAIN=$$(kpsewhich --expand-path='$$TEXMFMAIN')}; \
+ : $${MT_MKTEX_OPT=$$(kpsewhich --format='web2c files' mktex.opt)};\
+ test -n "$$MT_MKTEX_OPT" || \
+ MT_MKTEX_OPT="$$MT_TEXMFMAIN/web2c/mktex.opt"; \
+ if [ ! -f "$$MT_MKTEX_OPT" ]; then \
+ echo "Cannot find mktex.opt; check your installation."; \
+ return 1; \
+ fi; \
+ mt_min_args=2; \
+ mt_max_args=1000; \
+ old=`pwd`; \
+ source "$$MT_MKTEX_OPT"; \
+ cd $$old; \
+ fi; \
+ lastarg=$$(eval echo '$$'{$$#}); \
+ echo $(INSTALL) $(INSTALLOPTS) "$$@"; \
+ if ! $(INSTALL) $(INSTALLOPTS) "$$@"; then \
+ echo "Install failed."; \
+ return 2; \
+ fi; \
+ if [ -d "$$lastarg" ]; then \
+ until [ "$$1" = "$$lastarg" ]; do \
+ if [ -x "$$1" ]; then \
+ echo -n adding user execute permission to $$lastarg/$$1...; \
+ $(CHMOD) u+x $$lastarg/$$1; \
+ echo . Done.; \
+ fi; \
+ if [ $$addlsr ]; then \
+ echo -n adding $$lastarg/$$1 to the ls-R database...; \
+ if ! "$$MT_MKTEXUPD" "$$lastarg" "$$1"; then \
+ echo "Problem updating the ls-R database."; \
+ return 3; \
+ fi; \
+ echo . Done.; \
+ fi; \
+ shift; \
+ done; \
+ else \
+ if [ $$# -ne 2 ]; then \
+ echo "Malformed arguments."; \
+ return 4; \
+ fi; \
+ if [ -x "$$1" ]; then \
+ echo -n adding user execute permission to $$2...; \
+ $(CHMOD) u+x $$2; \
+ echo . Done.; \
+ fi; \
+ if [ $$addlsr ]; then \
+ dir=`$(DIRNAME) $$lastarg`; \
+ file=`$(BASENAME) $$lastarg`; \
+ echo -n adding $$dir/$$file to the ls-R database...; \
+ if ! "$$MT_MKTEXUPD" $$dir $$file; then \
+ echo "Problem updating the ls-R database."; \
+ return 5; \
+ fi; \
+ echo . Done.; \
+ fi; \
+ fi; \
+ }; mbuna
+endef
+else
+
+# NOTE: this is going to fail if the dest is a directory that doesn't exist (it
+# will consider it a filename). So, install-plain and install-lsr must never
+# be called with a dest directory that doesn't exist.
+
+# We define these as functions and echo a message to the user, because in
+# the web2c case we have to use a big function that we definitely want to
+# suppress with @.
+
+define install-lsr
+ function wicker () { \
+ echo $(INSTALL) $(INSTALL-OPTS) "$$@"; \
+ $(INSTALL) $(INSTALL-OPTS) "$$@"; \
+ }; wicker
+endef
+install-plain = $(install-lsr)
+endif
+
+# We check whether the file ACTUALLY has citations, and warn the developer if
+# he has failed to include an appropriate \def\initelyHavECitationS in the .dtx
+# file.
+#
+# There may be other or better ways to do the echoing and checking on the
+# bibtex process. You want bibtex's output to go out with all the usual Make
+# output, but you also want to pipe it to fgrep. Can use gawk and a rule of
+# {print; print > "/dev/stderr"}. I just don't think you can redirect stderr
+# to a pipe with sh like you can with csh.
+#
+# BibTeX doesn't put anything on stderr.
+#
+# args: <root-name> [<addindex-flag>]
+#
+# If <addindex-flag> is nonempty, then force inclusion of an index.
+#
+ifeq ($(USER),$(DEVELOPER))
+define checkdtx
+ if ! $(FGREP) -q '\def\initelyHavECitationS' $$root.dtx; then \
+ echo $(DEVELOPER), PUT \\def\\initelyHavECitationS \{\} IN $$root.dtx\!;\
+ $(RM) $$root.dvi; \
+ return 1; \
+ fi
+endef
+else
+define checkdtx
+ :
+endef
+endif
+
+define latex-libll
+ function bozo () { \
+ echo "Processing $$1 with LaTeX, BibTeX, & Makeindex as necessary.";\
+ root=$$($(EXPR) $$1 : '\([^\.]*\)\(\.[A-z]\+\)\?'); \
+ if [ $$2 ]; then \
+ echo "Forcing an index."; \
+ arg='\AtBeginDocument{\CodelineIndex\EnableCrossrefs} \
+ \AtEndDocument{\clearpage\PrintIndex}\input{'$$1'}'; \
+ else \
+ arg="$$1"; \
+ fi; \
+ $(TOUCH) $$root.aux $$root.ind; \
+ $(LATEX) $$arg; \
+ if $(FGREP) -q '\citation{' $$root.aux; then \
+ $(checkdtx); \
+ if $(BIBTEX) $$root | $(TEE) /dev/stderr | $(FGREP) -q \
+ 'Warning--I didn'\''t find a database entry for'; then \
+ echo BIBTEX FAILED; \
+ $(RM) $$root.dvi; \
+ return 2; \
+ fi; \
+ $(LATEX) $$arg; \
+ fi; \
+ $(MAKEINDEX) $$root.idx; \
+ $(LATEX) $$arg; \
+ }; bozo
+endef
+
+define make-this-if-nonempty
+ function bobo () { \
+ unset turtle; \
+ turtle="$$@"; \
+ if [ "$$turtle" ]; then \
+ echo "Starting recursive make on targets: $$turtle"; \
+ $(MAKE) $$turtle; \
+ else \
+ true; \
+ fi; \
+ }; bobo
+endef
+
+# args: <localfile> <remote-dir> <remote-file-basename>
+#
+# example:
+# X.clq $(MACRODIR) X.cls
+# means "if the remote-file $(MACRODIR)/X.cls is NOT a quickmacro, then
+# install X.clq as the remote-file."
+#
+# example:
+# X.sty $(MACRODIR) X.sty
+# means "if the remote-file IS a quickmacro, then install X.sty as the
+# remote-file."
+#
+# If arguments $1 and $3 are different, we are installing a quickmacro,
+# otherwise we are installing a regular macro. To get the name of the
+# quickmacro version when we are installing a regular version, we change the
+# last letter of the 3-letter extension to q.
+#
+# The file is ALWAYS installed if the remote-file is older than the local
+# file.
+#
+define maybe-install-macro
+ function pliers () { \
+ installp=true; \
+ if [ "$$1" = "$$3" ]; then \
+ quickp=; \
+ else \
+ quickp=true; \
+ fi; \
+ if [ -e $$2/$$3 ]; then \
+ if [ $$1 -nt $$2/$$3 ]; then \
+ echo "File $$1 is newer than $$2/$$3; installing $$1.";\
+ elif [ $$quickp ]; then \
+ if ! $(HEAD) -2 $$2/$$3 \
+ | $(GREP) -q '^%% This is file '\`$$1\'',$$'; then \
+ echo "File $$2/$$3 is not a quickmacro; installing $$1."; \
+ else \
+ echo "Quickfile $$2/$$3 is up to date; not installing $$1.";\
+ installp=; \
+ fi; \
+ else \
+ if $(HEAD) -2 $$2/$$3 | $(GREP) -q \
+ '^%% This is file '\`"$$($(EXPR) $$1 : '\(.\+\.[A-z][A-z]\)[A-z]')q"\'',$$'; then\
+ echo "File $$2/$$3 is a quickmacro; installing $$1."; \
+ else \
+ echo "File $$2/$$3 is up to date; not installing $$1.";\
+ installp=; \
+ fi; \
+ fi; \
+ else \
+ echo "File $$2/$$3 does not exist; installing $$1."; \
+ fi; \
+ if [ $$installp ]; then \
+ test -d $$2 || $(MKDIRP) $$2; \
+ $(install-lsr) $$1 $$2/$$3; \
+ fi; \
+ }; pliers
+endef
+
+#
+## help target (the default)
+#
+
+.PHONY: default help
+default help:
+ @echo ;\
+ echo -----------------------;\
+ echo The $(bundle-title) bundle;\
+ echo -----------------------;\
+ echo ;\
+ echo A \"fileset\" is a LaTeX package, LaTeX class, or BibTeX;\
+ echo bibliography style together with its supporting files.;\
+ echo ;\
+ echo The $(bundle-title) bundle contains the following stable, supported filesets:;\
+ echo ;\
+ echo " $(sort $(stable-filesets))";\
+ echo
+ifneq ($(beta-filesets),)
+ @echo and the following beta, unsupported filesets:;\
+ echo ;\
+ echo " $(sort $(beta-filesets))";\
+ echo ;\
+ echo The unsupported filesets are in the \"unsupported\" subdirectory.;\
+ echo You must copy them to the main directory and set a variable in; \
+ echo $(calling-makefile) before make can operate properly on them.; \
+ echo
+endif
+ @echo Destinations for installed files may be set in the file \"$(calling-makefile)\".;\
+ echo They are currently:;\
+ echo ;\
+ echo " LaTeX macros go into $(MACRODIR)";\
+ echo " LaTeX config files go into $(CONFIGDIR)";\
+ echo " BibTeX macros go into $(BIBDIR)";\
+ echo " LaTeX DVI dox go into $(MDVIDIR)";\
+ echo " BibTeX DVI dox go into $(BDVIDIR)";\
+ echo " Sources go into $(SRCDIR)";\
+ echo
+ifdef HAVE_WEB2C
+ @echo I think your TeX installation is based on web2c.;\
+ echo If this is wrong, change the setting in the file \"$(calling-makefile)\".
+else
+ @echo I think your TeX installation is NOT based on web2c.;\
+ echo If this is wrong, change the setting in the file \"$(calling-makefile)\".;\
+ echo Installation will be easier if you make this change.
+endif
+ @echo ;\
+ echo ------------------------;\
+ echo Targets for the end user;\
+ echo ------------------------;\
+ echo ;\
+ echo For each fileset X, there are the following targets:;\
+ echo ;\
+ echo " X means make X's documentation and macros";\
+ echo " X.q means make X's documentation and quick macros";\
+ echo " X.install means install X's documentation, sources, and macros";\
+ echo " X.install.q means install X's documentation and sources and create";\
+ echo " and install X's quick macros.";\
+ echo " X.clean means delete X's non-distributed files";\
+ echo ;\
+ echo There are also the following general targets:;\
+ echo ;\
+ echo " all means do X for all X's.";\
+ echo " all.q means do X.q for all X's.";\
+ echo " install means do X.install for all X's.";\
+ echo " install.q means do X.install.q for all X's.";\
+ echo " clean means do X.clean for all X's";\
+ echo ;\
+ echo " help means display this help.";\
+ echo ;\
+ echo All individual files \(e.g., X.dvi, X.ins, X.clq\) are also valid targets.;\
+ echo ;\
+ echo To avoid installing certain components, set the following variables;\
+ echo in the environment or on the Make command line to something nonempty:;\
+ echo ;\
+ echo " \$$NOMAC nonempty means do not install macro files";\
+ echo " \$$NOSRC nonempty means do not install source files";\
+ echo " \$$NODOC nonempty means do not build or install documentation files";\
+ echo " \$$NODEP nonempty means do not consider fileset-fileset-dependencies";\
+ echo ;\
+ echo \$$NODEP is automatically set for the general targets.;\
+ echo ;\
+ echo Quick \(\"q\"\) macros are functionally identical to normal macros;\
+ echo but are stripped of comments and are therefore processed faster.;\
+ echo ;\
+ echo Invoking Make with the \"-s\" option will give you briefer output.;\
+ echo ;\
+ echo Example: % make -s NODOC=t install.q;\
+ echo
+ifeq ($(USER),$(DEVELOPER))
+ @echo ------------------------------------------; \
+ echo Targets for the you, the developer \($(DEVELOPER)\); \
+ echo ------------------------------------------; \
+ echo
+ifneq ($(alpha-filesets),)
+ @echo Collective targets build both undistributed and distributed filesets.;\
+ echo Undistributed filesets are:;\
+ echo ;\
+ echo " $(sort $(alpha-filesets))";\
+ echo
+endif
+ @echo Developer targets include the end user targets above plus, for each fileset X:;\
+ echo ;\
+ echo " X.dev.clean means delete X"\'"s non-regeneratable files";\
+ echo ;\
+ echo There are also the following general targets:;\
+ echo ;\
+ echo " dev.clean means do X.dev.clean for all X's";\
+ echo ;\
+ echo " distrib" ;\
+ echo " ctan means make an archive of the distribution files";\
+ echo " ctan.clean means delete the archive and its auxiliary tree";\
+ echo " install.clean means delete all files that could have been installed.";\
+ echo ;\
+ echo " all.clean means do dev.clean ctan.clean install.clean";\
+ echo " fresh means do dev.clean all.q ctan";\
+ echo
+endif
+
+#
+## select from multiple bundle licenses
+#
+
+# $(bundle-license) is e.g. GPL or LPPL
+
+# Use the convention that if foo.ext is license-dependent, assemble it by
+# inserting file foo-$(bundle-license).txt into foo.txt where the directive
+# __INCLUDE_LICENSE__ appears. Other licenses and files may require a
+# different scheme.
+
+license-dependent-files = $(part-1) $(extractor) $(driver)
+
+# NOTE: these files are assumed to be generated and will be deleted by dev.clean
+.PHONY: license-dependent-files.clean
+license-dependent-files.clean:
+ $(RM) $(license-dependent-files)
+
+# The following rule should work, but does not because $(basename ...) is not
+# doing anything to its argument. But in make 3.79 reported to Debian 01-08-30.
+#
+# NOTE: this should work with the files having an initial directory part since
+# m4 should work from the pwd but this aspect might need tweaking.
+#$(license-dependent-files): %: $(basename %).txt $(basename %)-$(bundle-license).txt
+# $(M4) --define=__INCLUDE_LICENSE__="include($(word 2, $^))m4exit(0)" $< > $@
+
+# Workaround: be explicit:
+
+$(license-dependent-files): $(makefiles)
+
+# Things in the source file (especially $(part-1)) are going to look like quotes
+# to m4 and confuse it, so we disable the quoting mechanism and rely on the
+# uniqueness of our string.
+# Make sure you put "-" for stdin as the first input file.
+M4-nq = echo 'changequote(,)dnl' | $(M4)
+$(make-dir)/part-1.dtx: $(make-dir)/part-1.txt $(make-dir)/part-1-$(bundle-license).txt
+ $(M4-nq) --define=__INCLUDE_LICENSE__="include($(make-dir)/part-1-$(bundle-license).txt)dnl" - $< > $@
+
+$(make-dir)/extractor.ins: $(make-dir)/extractor.txt $(make-dir)/extractor-$(bundle-license).txt
+ $(M4-nq) --define=__INCLUDE_LICENSE__="include($(make-dir)/extractor-$(bundle-license).txt)dnl" - $< > $@
+
+$(make-dir)/driver.tex: $(make-dir)/driver.txt $(make-dir)/driver-$(bundle-license).txt
+ $(M4-nq) --define=__INCLUDE_LICENSE__="include($(make-dir)/driver-$(bundle-license).txt)dnl" - $< > $@
+
+#
+## user/developer file targets
+#
+
+$(packages.stq): %.stq: %.ins %.sty
+ @echo "Building $@."
+ $(TEX) $<
+
+# FIX: sqo not implemented yet; same as sto for now.
+$(stos.sqo): %.sqo: %.sto
+ @echo "Building $@."
+ $(TOUCH) $@
+
+$(classes.clq): %.clq: %.ins %.cls
+ @echo "Building $@."
+ $(TEX) $<
+
+# FIX: cqo not implemented yet; same as clo for now.
+$(clos.cqo): %.cqo: %.clo
+ @echo "Building $@."
+ $(TOUCH) $@
+
+# FIX: cfq not implemented yet; same as cfg for now.
+$(configs.cfq): %.cfq: %.cfg
+ @echo "Building $@."
+ $(TOUCH) $@
+# $(configs.cfq): %.cfq: %.ins %.cfg
+# $(TEX) $<
+
+$(bibstyles.bsq): %.bsq: %-bst.ins %.bst
+ @echo "Building $@."
+ $(TEX) $<
+
+# dependencies common to all filesets.dvi
+$(filesets.dvi): $(dox-requirements) $(bundle-bib.bib)
+
+# NOTE: The targets listed here are X.dvi for each X which has an X.cfg. The
+# DVI dox need to be remade when X.cfg changes, so we add a extra-dependency
+# rule here for that.
+$(addsuffix .dvi, $(configs)): %.dvi: %.cfg
+
+$(packages.dvi): %.dvi: %.tex %.sty
+ @echo "Building $@."
+ @$(latex-libll) $*
+
+$(classes.dvi): %.dvi: %.tex %.cls
+ @echo "Building $@."
+ @$(latex-libll) $*
+
+$(bibstyles.dvi): %-bst.dvi: %-bst.tex %.bst %-bst.ver
+ @echo "Building $@."
+ @$(latex-libll) $*-bst
+
+#
+## user/developer phony declarations, target-specific vars, etc.
+#
+
+.PHONY: install install.q \
+ all all.q \
+ clean dev.clean install.clean fresh \
+ $(filesets) $(filesets.q) \
+ $(filesets.macros) $(filesets.macros.q) \
+ $(filesets.dep) $(filesets.dep.q) \
+ $(filesets.dep.macros) $(filesets.dep.macros.q) \
+ $(filesets.doc) \
+ $(filesets.clean) $(filesets.dev.clean)
+
+
+# We get to exercise a lot of the features of Make in this file! Below are
+# some target-specific variable values. When we're building these targets,
+# there is no need to consider fileset-fileset-dependencies, since all filesets
+# are being built. By not considering them, we make things much more
+# efficient.
+#
+# NOTE: target-specific variables are locally set for the COMMANDS of the
+# target and the COMMANDS of all its dependencies, and NOT in the dependency
+# lists of any of those targets.
+all all.q install install.q: NODEP = true
+
+# Targets declared intermediate will not be remade simply because they do not
+# exist and are an intermediate stage on the way to the requested file. If
+# intermediate targets existed before the make, they will be kept around, and
+# will be removed if not. This way we can have a "clean:" development
+# directory without making Make any less efficient. Secondary files are like
+# intermediate files, but are not deleted even when they didn't exist before
+# the make. We want the intermediate files that are going to go into the
+# distribution to be declared secondary so they remain around even when they
+# aren't needed by the target called at the time.
+.INTERMEDIATE: $(filesets.t1) $(filesets.t2) $(filesets.t3) \
+ $(filter-out $(dist-filesets-cits.aux), $(filesets.aux))
+.SECONDARY: $(filesets.tex) $(filesets.ins) \
+ $(packages.sty) $(classes.cls) \
+ $(bibstyles.bst) $(bibstyles.ver) \
+ $(dist-filesets-cits.aux)
+
+# If Make encounters an error while building a file, the file is probably
+# corrupt, but in many cases it is up to date, so we must delete it to ensure
+# that Make doesn't think it is OK.
+.DELETE_ON_ERROR:
+
+#
+## user/developer phony targets
+#
+
+# don't assume that building dox automatically builds macros
+
+$(filesets): %: %.macros $(perc.doc) $(perc.dep)
+$(filesets.q): %.q: %.macros.q $(perc.doc) $(perc.dep.q)
+
+# These are extra dependencies.
+$(filesets.macros): %.macros: $(perc.dep.macros)
+$(filesets.macros.q): %.macros.q: $(perc.dep.macros.q)
+
+$(packages.macros): %.macros: %.sty $(perc.dep.macros)
+$(packages.macros.q): %.macros.q: %.stq $(perc.dep.macros.q)
+ @$(make-this-if-nonempty) $(addsuffix .sqo, $($*-stos))
+
+$(classes.macros): %.macros: %.cls $(perc.dep.macros)
+$(classes.macros.q): %.macros.q: %.clq $(perc.dep.macros.q)
+ @$(make-this-if-nonempty) $(addsuffix .cqo, $($*-clos))
+
+$(bibstyles.macros): %-bst.macros: %.bst $(perc.dep.macros)
+$(bibstyles.macros.q): %-bst.macros.q: %.bsq $(perc.dep.macros.q)
+
+$(filesets.dep): %.dep:
+ @[ $(NODEP) ] || \
+ { $(make-this-if-nonempty) $($*-deps); }
+$(filesets.dep.q): %.dep.q:
+ @[ $(NODEP) ] || \
+ { $(make-this-if-nonempty) $(addsuffix .q, $($*-deps)); }
+$(filesets.dep.macros): %.dep.macros:
+ @[ $(NODEP) ] || \
+ { $(make-this-if-nonempty) $(addsuffix .macros, $($*-deps)); }
+$(filesets.dep.macros.q): %.dep.macros.q:
+ @[ $(NODEP) ] || \
+ { $(make-this-if-nonempty) $(addsuffix .macros.q, $($*-deps)); }
+
+# This would be changed if there were additional forms of documentation.
+# filesets are only called by user with .install or .install.q.
+# For developer, only filesets.macros and filesets.macros.q call %.doc.
+# So until there are other forms of dox, we just need to build %.dvi.
+$(filesets.doc): %.doc: %.dvi
+
+# $(findstring) isn't good enough here, it doesn't look for word boundaries, so
+# you have a problem when any fileset name is a subset of another one.
+
+# GNU expr 1.16 seems broken in that it can't deal with [ $] or [ ^] I can't
+# figure what's up. So we insert an extra space at beginning and end in case
+# our string is at the beginning or end of nondc-filesets.
+$(packages.clean): %.clean:
+ $(RM) $*.{log,ilg,idx,ind,toc,vrb,stq,cfq,bbl,blg,t1,t2,t3} \
+ $(addsuffix .sqo, $($*-stos))
+ @auxp=`$(EXPR) " $(nondc-filesets) " : '.* \($*\) '`; \
+ if [ $$auxp ]; then \
+ echo rm -f $$auxp.aux; \
+ $(RM) $$auxp.aux; \
+ fi
+$(classes.clean): %.clean:
+ $(RM) $*.{log,ilg,idx,ind,toc,vrb,cfq,,clq,bbl,blg,t1,t2,t3} \
+ $(addsuffix .cqo, $($*-clos))
+ @auxp=`$(EXPR) " $(nondc-filesets) " : '.* \($*\) '`; \
+ if [ $$auxp ]; then \
+ echo rm -f $$auxp.aux; \
+ $(RM) $$auxp.aux; \
+ fi
+$(bibstyles.clean): %-bst.clean:
+ $(RM) $*-bst.{log,ilg,idx,ind,toc,vrb,bbl,blg,t1,t2,t3} $*.bsq
+ @auxp=`$(EXPR) " $(nondc-filesets) " : '.* \($*-bst\) '`; \
+ if [ $$auxp ]; then \
+ echo rm -f $$auxp.aux; \
+ $(RM) $$auxp.aux; \
+ fi
+
+#
+## user/developer *.install* targets (both phony and file)
+#
+### phony declarations and install targets
+
+.PHONY: $(filesets.install) \
+ $(filesets.install.q) \
+ $(filesets.dep.install) \
+ $(filesets.dep.install.q) \
+ $(filesets.cfg.install) \
+ $(filesets.cfq.install) \
+ $(filesets.doc.install) \
+ $(filesets.src.install) \
+ $(packages.sty.install) \
+ $(packages.stq.install) \
+ $(packages.sto.install) \
+ $(packages.sqo.install) \
+ $(classes.cls.install) \
+ $(classes.clq.install) \
+ $(classes.clo.install) \
+ $(classes.cqo.install) \
+ $(bibstyles.bst.install) \
+ $(bibstyles.bsq.install)
+
+# setting NOMAC will prevent macros from being installed
+# setting NOSRC will prevent sources from being installed
+# setting NODOC will prevent documentation from being built and installed
+# setting NODEP will inhibit consideration of fileset-fileset-dependencies
+### X.install
+
+$(packages.install): %.install: %.sty.install %.sto.install %.cfg.install \
+ %.src.install $(perc.doc.install) \
+ $(perc.dep.install)
+
+$(classes.install): %.install: %.cls.install %.clo.install %.cfg.install \
+ %.src.install $(perc.doc.install) \
+ $(perc.dep.install)
+$(bibstyles.install): %.install: %.bst.install %.src.install \
+ $(perc.doc.install) $(perc.dep.install)
+### X.install.q
+
+$(packages.install.q): %.install.q: %.stq.install %.sqo.install \
+ %.cfq.install %.src.install \
+ $(perc.doc.install) $(perc.dep.install.q)
+
+$(classes.install.q): %.install.q: %.clq.install %.cqo.install \
+ %.cfq.install %.src.install \
+ $(perc.doc.install) $(perc.dep.install.q)
+$(bibstyles.install.q): %.install.q: %.bsq.install %.src.install \
+ $(perc.doc.install) $(perc.dep.install.q)
+### macros
+
+$(packages.sty.install) \
+$(classes.cls.install): %.install: %
+ifeq ($(NOMAC),)
+ @$(maybe-install-macro) $< $(MACRODIR) $<
+endif
+$(bibstyles.bst.install): %-bst.bst.install: %.bst
+ifeq ($(NOMAC),)
+ @$(maybe-install-macro) $< $(BIBDIR) $<
+endif
+### quickmacros
+
+$(packages.stq.install): %.stq.install: %.stq
+ifeq ($(NOMAC),)
+ @$(maybe-install-macro) $< $(MACRODIR) $*.sty
+endif
+$(classes.clq.install): %.clq.install: %.clq
+ifeq ($(NOMAC),)
+ @$(maybe-install-macro) $< $(MACRODIR) $*.cls
+endif
+$(bibstyles.bsq.install): %-bst.bsq.install: %.bsq
+ifeq ($(NOMAC),)
+ @$(maybe-install-macro) $< $(BIBDIR) $*.bst
+endif
+### deps
+
+$(filesets.dep.install): %.dep.install:
+ @[ $(NODEP) ] || \
+ { $(make-this-if-nonempty) $(addsuffix .install, $($*-deps)); }
+$(filesets.dep.install.q): %.dep.install.q:
+ @[ $(NODEP) ] || \
+ { $(make-this-if-nonempty) $(addsuffix .install.q, $($*-deps)); }
+### option files
+
+# Should technically depend on $(%-stos) but that is not a legal idea.
+$(packages.sto.install): %.sto.install:
+ifeq ($(NOMAC),)
+ @$(foreach x, $($*-stos), \
+ $(maybe-install-macro) $(x).sto $(MACRODIR) $(x).sto;)
+endif
+
+# FIX: sqo not implemented yet, same as sto
+$(packages.sqo.install): %.sqo.install: %.sto.install
+
+# Should technically depend on $(%-clos) but that is not a legal idea.
+$(classes.clo.install): %.clo.install:
+ifeq ($(NOMAC),)
+ @$(foreach x, $($*-clos), \
+ $(maybe-install-macro) $(x).clo $(MACRODIR) $(x).clo;)
+endif
+# FIX: cqo not implemented yet, same as clo
+$(classes.cqo.install): %.cqo.install: %.clo.install
+### dox
+
+# NOTE: If there were ever additional (i.e. non-DVI) formats, this would be a
+# rule that depended on %.doc.dvi.install $.doc.foo.install, etc.
+$(packages.doc.install) \
+$(classes.doc.install): %.doc.install: $(MDVIDIR)/%.dvi
+$(addprefix $(MDVIDIR)/, $(packages.dvi) $(classes.dvi)): $(MDVIDIR)/%: %
+ifeq ($(NODOC),)
+ test -d $(MDVIDIR) || $(MKDIRP) $(MDVIDIR)
+ @$(install-lsr) $< $(MDVIDIR)
+endif
+
+$(bibstyles.doc.install): %.doc.install: $(BDVIDIR)/%.dvi
+$(addprefix $(BDVIDIR)/, $(bibstyles.dvi)): $(BDVIDIR)/%: %
+ifeq ($(NODOC),)
+ test -d $(BDVIDIR) || $(MKDIRP) $(BDVIDIR)
+ @$(install-lsr) $< $(BDVIDIR)
+endif
+### sources
+
+$(addprefix $(SRCDIR)/, $(filesets.ins) $(filesets.tex) \
+ $(bibstyles.ver) $(dist-extra-files)): $(SRCDIR)/%: %
+ifeq ($(NOSRC),)
+ test -d $(SRCDIR) || $(MKDIRP) $(SRCDIR)
+ @$(install-lsr) $< $(SRCDIR)
+endif
+
+$(packages.src.install) \
+$(classes.src.install): %.src.install: \
+ $(addprefix $(SRCDIR)/, %.ins %.tex $(dist-extra-files))
+
+$(bibstyles.src.install): %.src.install: \
+ $(addprefix $(SRCDIR)/, %.ins %.tex %.ver $(dist-extra-files))
+### configs
+
+$(configs.cfg.install): %.install: $(CONFIGDIR)/%
+
+$(addprefix $(CONFIGDIR)/, $(configs.cfg)): $(CONFIGDIR)/%: %
+ifeq ($(NOMAC),)
+ test -d $(CONFIGDIR) || $(MKDIRP) $(CONFIGDIR)
+ @$(install-lsr) $< $(CONFIGDIR)
+endif
+
+# NOTE: X.cfg.install and X.cfq.install when there is no X.cfg is an empty
+# rule. We do this so we can simply list those things as dependencies without
+# having to know whether an X.cfg exists for that X.
+$(filter-out $(configs.cfg.install), $(filesets.cfg.install)) \
+$(filter-out $(configs.cfq.install), $(filesets.cfq.install)):
+
+# FIX: cfq not implemented, is same as cfg
+$(configs.cfq.install): %.cfq.install: %.cfg.install
+
+#
+## user phony declarations and targets
+#
+
+ifneq ($(USER),$(DEVELOPER))
+
+# For the end user, 'install' and 'install.q' targets are limited to
+# distributed filesets.
+all: $(dist-filesets)
+all.q: $(dist-filesets.q)
+install: $(dist-filesets.install)
+install.q: $(dist-filesets.install.q)
+
+# *.clean leaves only what is distributed
+clean: $(dist-filesets.clean)
+
+#
+## developer phony declarations and targets
+#
+else
+
+all: $(filesets)
+all.q: $(filesets.q)
+install: $(filesets.install)
+install.q: $(filesets.install.q)
+
+# *.clean leaves only what is distributed
+clean: $(filesets.clean)
+
+# *.dev.clean leaves only what cannot be regenerated
+dev.clean: $(filesets.dev.clean) license-dependent-files.clean bundle-bib.clean
+
+# Not all .aux files are removed by X.clean.
+$(packages.dev.clean) \
+$(classes.dev.clean): %.dev.clean: %.clean
+ $(RM) $*.{dvi,tex,ins,sty,cls,aux}
+$(bibstyles.dev.clean): %-bst.dev.clean: %-bst.clean
+ $(RM) $*-bst.{ver,dvi,tex,ins,aux} $*.bst
+
+# NOTE Hmm, doesn't work as intended, because once dev.clean is made, it
+# assumes it doesn't have to remake clean (if you put clean before/after
+# ctan).... I don't think this should be true for PHONY targets. Anyway, may
+# want to do "make clean" after "make fresh".
+
+# hmm, all.q is not made by all? ctan is not made by either?
+
+fresh: dev.clean all.q ctan
+
+# FIX: also should remove the directories and their parents too, but only if
+# they're empty.
+install.clean:
+ $(RM) -r $(addprefix $(BIBDIR)/, $(bibstyles.bst)) \
+ $(addprefix $(MACRODIR)/, \
+ $(packages.sty) $(classes.cls) \
+ $(configs.cfg) \
+ $(stos.sto) $(clos.clo)) \
+ $(addprefix $(SRCDIR)/, \
+ $(dist-extra-files) \
+ $(filesets.tex) $(filesets.ins) \
+ $(bibstyles.ver)) \
+ $(addprefix $(MDVIDIR)/, $(filesets.dvi)) \
+ $(addprefix $(BDVIDIR)/, $(bibstyles.dvi))
+
+#
+## developer file targets
+#
+
+# this handles adding this dependency for all the rules in this section:
+$(parts) $(driver) $(extractor) \
+$(filesets.t1) $(filesets.t2) $(filesets.t3): $(makefiles)
+
+$(packages.sty): %.sty: %.t1 %.t2 %.t3 $(parts)
+ @echo "Building $@."
+ $(CAT) $(part-1) $*.t1 $(part-2) $*.t2 $(part-3) $*.t3 \
+ | $(transform-sty) > $@
+
+$(classes.cls): %.cls: %.t1 %.t2 %.t3 $(parts)
+ @echo "Building $@."
+ $(CAT) $(part-1) $*.t1 $(part-2) $*.t2 $(part-3) $*.t3 \
+ | $(transform-cls) > $@
+
+# We want to get version control information and a command into the -bst.ver
+# file. We read the .ver file specially when we build the -bst.dvi file.
+#
+# We quote curly braces in the awk regexps in case we are using gawk and
+# $POSIXLY_CORRECT is set in the environment so that we can't really do
+# anything about it. It is this way when running subshells from Emacs
+# sometimes, in my experience.
+#
+# FIX: not sure we need transform-bst here.
+$(bibstyles.ver): %-bst.ver: %.bst %-bst.t1 %-bst.t2 %-bst.t3 $(parts)
+ @echo "Building $@."
+ $(CAT) $(part-1) $*-bst.t1 $(part-2) $*-bst.t2 $(part-3) $*-bst.t3 \
+ | $(transform-bst) \
+ | $(AWK) '/^ %% \\def\\fileinfo/,/^ %% \\def\\docdate/ \
+ { $$1 = ""; print } \
+ { next }' \
+ > $@
+ $(CAT) $(part-3) \
+ | $(AWK) '/^\\makeatletter% A special comment to help create bst files/, \
+ /^\}% A special comment to help create bst files/ \
+ { print } \
+ { next }' \
+ >> $@
+
+$(bibstyles.bst): %.bst: %-bst.t1 %-bst.t2 %-bst.t3 $(parts)
+ @echo "Building $@."
+ $(CAT) $(part-1) $*-bst.t1 $(part-2) $*-bst.t2 $(part-3) $*-bst.t3 \
+ | $(transform-bst) \
+ | $(AWK) '/^% \\begin\{macro\}\{\\fileinfo\}/, \
+ /^% \\end\{macrocode\}\^\^A special comment to help create bst files/ \
+ { next } \
+ { print }' \
+ > $@
+
+# bundle-bib may be undefined. If bundle-bib is defined, master-bib.bib must
+# be defined and the file it names must exist.
+ifneq ($(bundle-bib),)
+$(bundle-bib.bib): $(master-bib.bib) $(makefiles)
+ $(SYMLINK) $(master-bib.bib) $@
+endif
+
+# t is for temporary
+
+# We quote curly braces in the awk regexps in case we are using gawk and
+# $POSIXLY_CORRECT is set in the environment so that we can't really do
+# anything about it. It is this way when running subshells from Emacs
+# sometimes, in my experience.
+$(filesets.t1): %.t1: %.dtx
+ @echo "Building $@."
+ $(AWK) '/^% \\CheckSum\{[0-9]+\}/,/^% \\part\{Implementation\}/' $*.dtx > $@
+
+$(filesets.t2): %.t2: %.dtx
+ @echo "Building $@."
+ $(SED) -n '/^\\def\\fileinfo{.*}/,/^\\def\\docdate{.*}/p' $*.dtx > $@
+
+$(filesets.t3): %.t3: %.dtx
+ @echo "Building $@."
+ $(AWK) '/^% \\part\{Implementation\}/,/^% \\Finale/ \
+ {if ($$0 !~ /^% \\part\{Implementation\}/) print}' $*.dtx \
+ | $(SED) '/^\\def\\fileinfo{.*}/,/^\\def\\docdate{.*}/d' > $@
+
+# transform-* defs require $* to be the root name
+$(packages.tex): %.tex: $(driver)
+ @echo "Building $@."
+ $(transform-sty) $(driver) > $@
+
+$(classes.tex): %.tex: $(driver)
+ @echo "Building $@."
+ $(transform-cls) $(driver) > $@
+
+$(bibstyles.tex): %-bst.tex: $(driver)
+ @echo "Building $@."
+ $(transform-bst) $(driver) > $@
+
+$(packages.ins): %.ins: $(extractor)
+ @echo "Building $@."
+ $(transform-sty) $(extractor) > $@
+
+$(classes.ins): %.ins: $(extractor)
+ @echo "Building $@."
+ $(transform-cls) $(extractor) > $@
+
+$(bibstyles.ins): %-bst.ins: $(extractor)
+ @echo "Building $@."
+ $(transform-bst) $(extractor) > $@
+
+Frankenfile: $(make-dir)/Frankenfile
+ $(SYMLINK) $< $@
+
+#
+## distribution archive: variables, definitions, phony and file targets
+#
+
+# NOTE this is all still within the developer-only conditional.
+
+stable-files = $(stable-filesets.dvi) \
+ $(stable-filesets.ins) \
+ $(stable-filesets.tex) \
+ $(stable-packages.sty) \
+ $(stable-stos.sto) \
+ $(stable-classes.cls) \
+ $(stable-clos.clo) \
+ $(stable-bibstyles.bst) \
+ $(stable-bibstyles.ver) \
+ $(stable-configs.cfg) \
+ $(stable-extra-files)
+beta-files = $(beta-filesets.dvi) \
+ $(beta-filesets.ins) \
+ $(beta-filesets.tex) \
+ $(beta-packages.sty) \
+ $(beta-stos.sto) \
+ $(beta-classes.cls) \
+ $(beta-clos.clo) \
+ $(beta-bibstyles.bst) \
+ $(beta-bibstyles.ver) \
+ $(beta-configs.cfg) \
+ $(beta-extra-files)
+
+# where we copy distributed files in order to archive them
+stable-archive-dir = $(distribution-dir)/$(stable-dir)
+beta-archive-dir = $(distribution-dir)/$(beta-dir)
+
+stable-archive-files = $(addprefix $(stable-archive-dir)/, $(stable-files))
+beta-archive-files = $(addprefix $(beta-archive-dir)/, $(beta-files))
+dist-archive-files = $(stable-archive-files) $(beta-archive-files)
+
+.PHONY: ctan ctan.clean \
+ distrib distrib.clean \
+ all.clean
+
+ctan.clean distrib.clean:
+ $(RM) -r $(distribution-dir)
+
+all.clean: dev.clean distrib.clean install.clean
+
+# clean before building
+ctan distrib: distrib.clean $(stable-archive-dir) \
+ $(beta-archive-dir) $(dist-archive-files)
+ $(TAR) -C $(distribution-dir) -c -z \
+ -f $(distribution-dir)/$(bundle-filename).tgz \
+ $(filter-out $(bundle-filename).tgz, \
+ $(shell $(LS) $(distribution-dir)))
+
+$(stable-archive-dir) $(beta-archive-dir): $(makefiles)
+ $(MKDIRP) $@
+
+# target is all stable-archive-files except for the bundle-bib.bib if it exists
+$(filter-out $(stable-archive-dir)/$(bundle-bib.bib), \
+ $(stable-archive-files)): $(stable-archive-dir)/%: \
+ % $(stable-archive-dir)
+ @$(install-plain) $< $(stable-archive-dir)
+
+# rule for the bundle-bib.bib if it exists.
+ifneq ($(bundle-bib),)
+$(dist-filesets.aux): %.aux: %.dvi
+
+# bibtool -v verbose; -q suppress warnings (huge number of them);
+# -d don't include double entries
+# -s sort (needed to identify double entries)
+#
+# We want to keep the modification time the same as the master-bib so that the
+# end user's Make process won't think it needs to remake all the dvi files.
+#
+# FIX: bibtool is having a problem getting the right crossreffed entries in
+# when dealing with the master-bib. It did OK on a very short test bib I made.
+#
+# So we do a very patchy workaround:
+# - first make the target normally; it will lack crossreffed entries.
+# - combine the relevant .aux files into frankentemp.aux and change the
+# \bibdata command to use the bundle-bib.dist database.
+# - frankentemp.aux is nonempty or we wouldn't be doing this rule.
+# - we process frankentemp.aux with bibtex and look at the output.
+# - extract lines that say we've got a missing crossref.
+# - remove the difficult apostrophe's from those lines, and save in
+# frankentemp.1.
+# - frankentemp.1 will be empty if we have no missing crossrefs. if it's
+# empty, we're OK, so stop.
+# - take the error lines about missing crossrefs and extract just the key.
+# - frob each key K into the string "-X \'^K$\'" (without the enclosing
+# double quotes).
+# - combine all lines into one line. now we have a series of one or more
+# strings just described all concatenated on one line. save this into
+# frankentemp.2. While combining them, the backslashes before the single
+# quotes got used up.
+# - feed this fabricated string to bibtool. bibtool will extract each key's
+# entry from bundle-bib.bib along with relevant string definitions, and put
+# it on stdout.
+# - append the output to bundle-bib.dist, making it complete.
+# - clean up temp files.
+
+# FIX: we've got potential problems if any keys have regexp chars in them.
+
+.PHONY: bundle-bib.clean
+bundle-bib.clean:
+ $(RM) $(bundle-bib.bib) $(bundle-bib.bib).dist
+
+$(bundle-bib.bib).dist: $(bundle-bib.bib) $(dist-filesets-cits.aux)
+ $(BIBTOOL) -q -d -s $(addprefix -x , $(dist-filesets-cits.aux)) -o $@
+ $(CAT) $(dist-filesets-cits.aux) \
+ | $(SED) 's/^\\bibdata{$(bundle-bib)}/\\bibdata{$(bundle-bib)\.bib\.dist}/' \
+ > $(TMPDIR)/frankentemp.aux
+ $(BIBTEX) $(TMPDIR)/frankentemp \
+ | $(GREP) '^refers to entry ".*", which doesn'\''t exist$$' \
+ | $(SED) -e s/\'//g \
+ > $(TMPDIR)/frankentemp.1; \
+ if [ -s $(TMPDIR)/frankentemp.1 ]; then \
+ $(CAT) $(TMPDIR)/frankentemp.1 \
+ | $(XARGS) -i $(EXPR) {} : 'refers to entry \(.*\), which doesn' \
+ | $(XARGS) -i echo -X \\\'^'{}'\$$\\\' \
+ | $(XARGS) \
+ > $(TMPDIR)/frankentemp.2; \
+ eval $$(echo $(BIBTOOL) -q $$($(CAT) $(TMPDIR)/frankentemp.2) \
+ $<) \
+ >> $@; \
+ fi; \
+ $(RM) $(TMPDIR)/frankentemp.{aux,1,2,bbl,blg}
+ $(TOUCH) -r $(master-bib.bib) $@
+
+$(stable-archive-dir)/$(bundle-bib.bib): $(bundle-bib.bib).dist \
+ $(stable-archive-dir)
+ @$(install-plain) $< $(stable-archive-dir)/$(bundle-bib.bib)
+endif
+
+$(beta-archive-files): $(beta-archive-dir)/%: % $(beta-archive-dir)
+ @$(install-plain) $< $(beta-archive-dir)
+
+endif # developer-only
+
+#
+## Emacs file variables
+#
+# Local Variables:
+# mode: makefile
+# eval: (outline-minor-mode 1)
+# outline-regexp: "##+"
+# End:
diff --git a/Master/texmf-dist/doc/latex/frankenstein/INSTALL b/Master/texmf-dist/doc/latex/frankenstein/INSTALL
new file mode 100644
index 00000000000..b1eec22fc70
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/INSTALL
@@ -0,0 +1,321 @@
+
+ INSTRUCTIONS
+ for
+ BUILDING AND INSTALLING
+ FRANKENSTEIN
+
+----------------------------------------------------------------------
+ CONTENTS
+
+ NOTE
+ QUICK AND DIRTY
+ THE BEST WAY: USING THE MAKEFILE
+ NON-FRANKENSTEIN PACKAGES
+ DOING IT BY HAND
+ basics
+ configuration files
+ generating quick versions
+ regenerating DVI documentation
+ fileset dependencies
+ FILE LOCATIONS
+ TDS locations
+ CTAN locations
+ MAKEFILE TECHNICAL NOTES
+ Frankenbundle
+ TERMINOLOGY
+ AUTHOR
+
+----------------------------------------------------------------------
+ NOTE
+
+If you are reading this file in a TeX installation, you probably don't
+need to install anything at all. Simply try using one of the
+Frankenstein packages in your document and see if it works. If LaTeX
+can't find the package, you need to install it, so read on.
+
+Since you're reading on, I'll assume from here on that you are reading
+this file in a directory with other Frankenstein files as you found
+them on CTAN.
+
+----------------------------------------------------------------------
+ QUICK AND DIRTY
+
+You can simply put this entire directory (or just the .sty files)
+somewhere in LaTeX's search path for input files, e.g.,
+TDS:/texmf/tex/latex/frankenstein. You will then be able to use all
+the Frankenstein packages, with the following qualifications:
+
+ 1. The documentation won't be in the standard place.
+ 2. To use the achicago bibstyle, you must also put the file
+ "achicago.bst" where BibTeX can find it.
+ 3. With a web2c-based installation you _may_ also need to take the
+ extra step of rebuilding your ls-R databases with a command like
+ "texconfig rehash".
+ 4. To use the abbrevs, achicago, blkcntrl, and dialogue packages,
+ you must have the relsize package on your system; to use the
+ compsci package, you must have the the relsize, url and verbatim
+ packages on your system. For how to obtain and install these
+ non-Frankenstein packages on your system, see the section on
+ non-Frankenstein packages below.
+
+----------------------------------------------------------------------
+ THE BEST WAY:
+ USING THE MAKEFILE
+
+If you have the GNU Make program on your system, using the Makefile is
+the easiest way to do everything described in this document and more.
+Simply run "make" and you will see a help message describing the
+things you can do. You probably won't need to read anything else in
+this file except the section NON-FRANKENSTEIN PACKAGES below.
+
+To use the Makefile on the unsupported filesets, you must do two
+things.
+
+ 1. Copy all the files in the "unsupported" subdirectory into its
+ parent directory ("frankenstein").
+
+ 2. Set the variable USE_UNSUP to something nonempty either by:
+ a. uncommenting the line in the file Makefile, or
+ b. setting it in your environment, or
+ c. set the variable on the Make command line, e.g., "make
+ USE_UNSUP=t all".
+
+----------------------------------------------------------------------
+ NON-FRANKENSTEIN PACKAGES
+
+Certain Frankenstein packages depend on packages that are not part of
+Frankenstein or the official LaTeX distribution:
+
+ abbrevs,
+ achicago,
+ blkcntrl,
+ and dialogue depend on "relsize.sty".
+ compsci depends on "relsize.sty", "url.sty", and "verbatim.sty".
+
+If you wish to use one of those four Frankenstein packages, I suggest
+you follow these steps:
+
+First check if you already have them on your system:
+
+ If you have a TeX installation based on web2c (e.g., UN*X
+ installations derived from teTeX or TeXLive), you can type:
+
+ % kpsewhich X.sty
+
+ (where X is relsize, url, or verbatim) and if you get a response,
+ you already have that file on your system. If you don't have web2c
+ but do have a TDS-compliant texmf tree, see the section FILE
+ LOCATIONS below to see where to look. If you have neither web2c
+ nor a TDS-compliant texmf tree, you can simply try to use the
+ Frankenstein package, and if LaTeX tells you one of the
+ non-Frankenstein packages is missing, well then you have to install
+ it.
+
+If you don't already have the files you need, download them from CTAN.
+
+ The locations are given in the section FILE LOCATIONS below.
+
+ To install relsize.sty and url.sty, simply put them where LaTeX can
+ find them.
+
+ To install verbatim, I recommend you install the entire "tools"
+ distribution, following the directions in the file readme.txt.
+
+----------------------------------------------------------------------
+ DOING IT BY HAND
+
+ basics
+
+Each package fileset X in the Frankenstein bundle contains either four
+or five files:
+
+ X.sty the package macros
+ X.dvi package documentation
+ X.tex may be used to regenerate X.dvi from X.sty
+ X.ins may be used to generate a fast-loading version of X.sty
+
+A standard configuration file is included in the abbrevs, compsci,
+slemph, and titles package filesets:
+
+ X.cfg package configuration file (not in all packages)
+
+The file X.sty may be used as it is; simply put it where LaTeX can
+find it. TDS locations are given below. To use the package, put
+\usepackage{X} in the preamble of your LaTeX source document. If a
+configuration file exists for the package, you must also put it where
+LaTeX can find it.
+
+The following files compose the achicago bibstyle fileset:
+
+ achicago.bst the bibstyle macros
+ achicago-bst.dvi bibstyle documentation
+ achicago-bst.tex may be used to regenerate achicago-bst.dvi from
+ achicago.bst and achicago-bst.ver
+ achicago-bst.ins may be used to generate a fast-loading version
+ of achicago.bst (see below)
+ achicago-bst.ver a file needed by achicago-bst.tex
+
+The file achicago.bst may be used as it is; simply put it where BibTeX
+can find it. To use the bibstyle, you must load the achicago PACKAGE
+by putting \usepackage{achicago} in the preamble of your LaTeX source
+document.
+
+
+ configuration files
+
+If you want to alter a configuration file, make a copy of it, put it
+the copy in the LaTeX search path prior to the distributed
+configuration file, and alter the copy.
+
+
+ generating fast-loading or "quick" versions
+
+Running TeX or LaTeX on X.ins will produce a file called either X.stq
+(for packages) or X.bsq (for bibstyles). For packages X, the file
+X.sty must be in the LaTeX search path (usually the current
+directory); for bibstyles Y-bst, the files Y.bst and Y-bst.ver must be
+in the same directory. The new file is functionally identical to the
+X.sty or X.bst file, but is stripped of comments and will therefore be
+processed faster by TeX or BibTeX. I am unable to tell you how much
+faster! To use X.stq (X.bsq), you must rename it to X.sty (X.bst) and
+put it where LaTeX (BibTeX) can find it. DO NOT DELETE THE ORIGINAL
+X.sty (X.bst) because it contains the documentation which X.tex
+(X-bst.tex) transforms into the file X.dvi (X-bst.dvi).
+
+
+ regenerating DVI documentation
+
+To regenerate the file X.dvi, run LaTeX on X.tex. For packages X, the
+file X.sty must be in the LaTeX search path as well as X.cfg if it
+exists; for bibstyles Y-bst, the files Y.bst and Y-bst.ver must be in
+the LaTeX search path.
+
+Generating documentation requires the following Frankenstein packages:
+
+ abbrevs.sty, blkcntrl.sty, compsci.sty, lips.sty, moredefs.sty,
+ slemph.sty, titles.sty, and achicago.sty,
+
+and the achicago.bst bibstyle.
+
+You also need all 3 non-Frankenstein packages (see the section
+NON-FRANKENSTEIN PACKAGES above).
+
+Documentation for dialogue furthermore requires the attrib package.
+Documentation for attrib furthermore requires the dialogue package.
+Documentation for achicago-bst furthermore requires the longtable package,
+ which is in the "tools" bundle with "verbatim" (see the section
+ NON-FRANKENSTEIN PACKAGES above).
+
+
+ fileset dependencies
+
+If you install the macro files of one fileset, you should also install
+all the macro files of the filesets it depends on:
+
+ Fileset Depends on (directly or indirectly)
+ ....................................................................
+ abbrevs moredefs,relsize,slemph
+ achicago blkcntrl,moredefs,relsize,slemph,titles
+ achicago-bst achicago,blkcntrl,moredefs,relsize,slemph,titles
+ attrib moredefs
+ blkcntrl moredefs,relsize
+ compsci abbrevs,alltt,lips,moredefs,relsize,slemph,
+ titles,url,verbatim
+ dialogue blkcntrl,moredefs,relsize
+ lips <NOTHING>
+ moredefs <NOTHING>
+ slemph <NOTHING>
+ titles moredefs,slemph
+
+----------------------------------------------------------------------
+ FILE LOCATIONS
+
+ TDS locations
+
+Relevant non-Frankenstein files:
+
+ File Location: TDS:/texmf/...
+ ...........................................................
+ url.sty ...tex/latex/misc/url.sty
+ relsize.sty ...tex/latex/misc/relsize.sty
+ longtable.dtx ...source/latex/tools/longtable.dtx
+ verbatim.dtx ...source/latex/tools/verbatim.dtx
+
+ longtable.sty ...tex/latex/tools/longtable.sty
+ longtable.dvi ...doc/latex/tools/longtable.dvi
+ verbatim.sty ...tex/latex/tools/verbatim.sty
+ verbatim.dvi ...doc/latex/tools/verbatim.dvi
+
+Frankenstein files:
+
+ File Location: TDS:/texmf/...
+ ...........................................................
+ achicago.bst .../bibtex/bst/achicago
+ achicago-bst.dvi .../doc/bibtex
+ *.cfg *.sty .../tex/latex/frankenstein
+ *.dvi .../doc/latex/frankenstein
+ <all other files> .../source/latex/frankenstein
+
+ CTAN locations
+
+Frankenstein:
+
+ CTAN:/macros/latex/contrib/supported/frankenstein/*
+
+Relevant non-Frankenstein packages:
+
+ Package Location: CTAN:/macros/latex/...
+ ...........................................................
+ relsize ...contrib/other/misc/relsize.sty
+ url ...contrib/other/misc/url.sty
+ verbatim ...packages/tools/*
+ longtable ...packages/tools/*
+
+The LaTeX base distribution:
+
+ CTAN:/macros/latex/base/*
+
+----------------------------------------------------------------------
+ MAKEFILE TECHNICAL NOTES
+
+I have tested the Make system with Debian GNU/Linux and Make v3.77.
+If certain commands or options need to be altered to work with your
+setup, check the top of Frankenfile where a lot of commands are
+abstracted in variables. It's best to reset the variables at the top
+of Makefile, on the Make command line, or in your environment rather
+than changing Frankenfile. Please write me describing any problems
+you encounter. GNU Make is available at ftp://gnu.mit.edu/pub/gnu/.
+
+
+ Frankenbundle
+
+The Frankenstein Makefiles also make a great way for you to maintain
+and distribute your own LaTeX packages and classes and BibTeX
+bibstyles. I distribute them with some documentation and necessary
+additional files as the Frankenbundle suite on
+CTAN:/support/frankenbundle.
+
+----------------------------------------------------------------------
+ TERMINOLOGY
+
+ fileset: A group of files related to a single LaTeX package, LaTeX
+ class, or BibTeX bibliography style and any accompanying
+ option or configuration files. The files in a package or
+ class fileset have the same root name but different
+ filename extensions. In bibstyle filesets, some root names
+ differ by a "-bst" suffix.
+
+ CTAN: Comprehensive TeX Archive Network: a system of TeX-related
+ file archives available via FTP (see
+ ftp://ctan.tug.org/tex-archive/CTAN.sites) and often
+ reproduced on CDROMs.
+
+ TDS: TeX Directory Structure: a recommended directory structure
+ for TeX installations. See
+ ftp://ctan.tug.org/tex-archive/tds.
+
+----------------------------------------------------------------------
+ AUTHOR
+
+ Matt Swift
+ <swift@alum.mit.edu>
diff --git a/Master/texmf-dist/doc/latex/frankenstein/README b/Master/texmf-dist/doc/latex/frankenstein/README
new file mode 100644
index 00000000000..313bcb3afa2
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/README
@@ -0,0 +1,243 @@
+
+ FRANKENSTEIN
+
+ A Collection of Macros for LaTeX and BibTeX
+
+ available at
+
+ CTAN:/macros/latex/contrib/supported/frankenstein/*
+
+------------------------------------------------------------------------
+ CONTENTS
+
+ OVERVIEW
+ DOCUMENTATION
+ PACKAGE DESCRIPTIONS
+ abbrevs
+ compsci
+ dialogue
+ achicago
+ titles
+ attrib
+ lips
+ moredefs
+ slemph
+ blkcntrl
+ NOTES
+ configuration files
+ unsupported packages
+ DISTRIBUTION CONDITIONS
+ TERMINOLOGY
+ AUTHOR
+
+------------------------------------------------------------------------
+ OVERVIEW
+
+ "Frankenstein" is the whimsical name for a collection of 14 LaTeX
+ packages and a BibTeX bibliography style that I have written.
+ Frankenstein helps you do a variety of things with LaTeX. You can
+ use just a part of Frankenstein if you want, or you can use all the
+ parts together. You should download this whole directory, however,
+ to make sure you will have all the parts you might need. To use
+ certain packages, you will also need the non-Frankenstein packages
+ "relsize.sty", "url.sty", and/or "verbatim.sty". See the file
+ INSTALL for full details.
+
+ The package descriptions below will tell you briefly what they can
+ help you do. Happy TeXing!
+
+------------------------------------------------------------------------
+ DOCUMENTATION
+
+ This file contains general information on the Frankenstein bundle
+ and brief descriptions of its packages and bibstyle.
+
+ Installation instructions are in the file INSTALL.
+
+ Full documentation of each LaTeX package X is in the file X.dvi:
+ CTAN:/macros/latex/contrib/supported/frankenstein/X.dvi
+ TDS:/texmf/doc/latex/frankenstein/X.dvi
+
+ Full documentation of the achicago BibTeX bibliography style is in
+ the file achicago-bst.dvi:
+ CTAN:/macros/latex/contrib/supported/frankenstein/achicago-bst.dvi
+ TDS:/texmf/doc/bibtex/achicago-bst.dvi
+
+------------------------------------------------------------------------
+ PACKAGE DESCRIPTIONS
+
+------------------------------------------------------------------------
+ abbrevs
+ abbreviation macros
+ (Frankenstein's briefs)
+
+ "Abbreviation macros" expand to defined text and insert following
+ space intelligently, based on context. They can also expand to one
+ thing the first time they are used and another thing on subsequent
+ invocations. Thus they can be abbreviations in two senses, in the
+ source and in the document. Useful applications include the
+ abstraction of textual elements such as names without fussing over
+ spacing and the automatic expansion of abbreviations and acronyms at
+ their first use. The initial and subsequent expansions of an
+ abbreviation macro are available at any time via explicit commands.
+ Abbreviation macros are grouped into categories; there are hooks
+ applicable to each category. Categories can be reset so that
+ subsequent abbreviation macros in that category behave as if used
+ for the first time again.
+
+ A generic facility is also provided for suffixes like 1900 B.C. and
+ 6:00 P.M., which correctly handles following periods.
+
+------------------------------------------------------------------------
+ compsci
+ macros for writing about macros
+ (Frankenstein's conscience)
+
+ Compsci is useful whenever writing about programming, but especially
+ when writing about TeX and especially when used as a supplement to
+ the ltxdoc class to document LaTeX macros in a literate programming
+ style with .dtx files.
+
+------------------------------------------------------------------------
+ dialogue
+ dialogue environment
+ (Frankenstein's mouth)
+
+ The dialogue environment is for citing short passages of scripted
+ dialogue. It is not for typsetting a long script.
+
+------------------------------------------------------------------------
+ achicago
+ Chicago Manual A-style (but author-date) citations
+ (Frankenstein's references)
+
+ A bibliography style based on _The Chicago Manual of Style_. The
+ style is mostly style A, but borrows the author-date reference
+ system from style B. Requires accompanying BibTeX bibliography
+ style "achicago".
+
+------------------------------------------------------------------------
+ titles
+ titling macros
+ (Frankenstein's pedigree)
+
+ Macros that typeset the titles of books, journals, etc. and handle
+ following spacing and punctuation intelligently, based on context.
+ Useful for bibliographic databases. Also includes other markup like
+ \word, \defn, \phrase, etc.
+
+------------------------------------------------------------------------
+ attrib
+ attribution of block elements
+ (Frankenstein's hat)
+
+ \attrib attributes block elements, for example when citing a
+ reference after a block quotation.
+
+------------------------------------------------------------------------
+ lips
+ text ellipses
+ (Frankenstein's lips)
+
+ The \lips command generates text ellipses that are closer to what
+ _The Chicago Manual of Style_ suggests than what \dots produces. It
+ does the right thing in most circumstances, and so is easy to use.
+
+------------------------------------------------------------------------
+ moredefs
+ more defining commands
+ (Frankenstein's brain)
+
+ A collection of defining, expansion, and debugging commands for
+ programming in LaTeX and writing LaTeX packages and classes.
+
+------------------------------------------------------------------------
+ newclude
+ a new system for including files
+ (Frankenstein's backbone)
+
+ Provides a backwards-compatible reimplementation of \include and
+ \includeonly. The principal new features are: (1) the restriction
+ that \clearpage's must surround an included file is removed, (2) the
+ restriction that \include's cannot be nested is removed, and (3) the
+ provision of hooks executed before and after the contents of an
+ included file. Newclude accomplishes the first two by using a
+ single .aux file instead of many. Newclude also provides the
+ experimental functionality of the former package includex, which
+ allows you to include partial contents of independent LaTeX files
+ that can also be processed on their own (that is, files that contain
+ \documentclass, \begin{document}, etc.).
+
+------------------------------------------------------------------------
+ slemph
+ slanted emphasis
+ (Frankenstein's gait)
+
+ Defines \itswitch, \slswitch, \textitswitch, and \textslswitch,
+ which switch between slanted or italic type and upright type. Can
+ be used to represent emphasis with slanted type.
+
+------------------------------------------------------------------------
+ blkcntrl
+ block element hooks
+
+ Inserts hooks into certain block elements and footnotes. Also
+ provides a command to set block quotations one size smaller than the
+ main text.
+
+------------------------------------------------------------------------
+ NOTES
+
+ configuration files
+
+ A standard configuration file <package>.cfg is included in the
+ abbrevs, compsci, slemph, and titles package filesets. If you want
+ to alter a configuration file, make a copy of it, put it the copy in
+ the LaTeX search path prior to the distributed configuration file,
+ and alter the copy.
+
+
+ unsupported packages
+
+ Several additional unsupported Frankenstein package filesets are in
+ the subdirectory:
+
+ CTAN:/macros/latex/contrib/supported/frankenstein/unsupported
+
+ See the file README-unsupported in that directory for further
+ information.
+
+------------------------------------------------------------------------
+ DISTRIBUTION CONDITIONS
+
+ All Frankenstein filesets are copyrighted by Matthew Swift and
+ released under the conditions of the GNU General Public License
+ contained in the file COPYING.
+
+ I am willing to specially license this code; please simply contact
+ me with your proposal.
+
+------------------------------------------------------------------------
+ TERMINOLOGY
+
+ fileset: A group of files related to a single LaTeX package, LaTeX
+ class, or BibTeX bibliography style and any accompanying
+ option or configuration files. The files in a package or
+ class fileset have the same root name but different
+ filename extensions. In bibstyle filesets, some root names
+ differ by a "-bst" suffix.
+
+ CTAN: Comprehensive TeX Archive Network: a system of TeX-related
+ file archives available via FTP (see
+ ftp://ctan.tug.org/tex-archive/CTAN.sites) and often
+ reproduced on CDROMs.
+
+ TDS: TeX Directory Structure: a recommended directory structure
+ for TeX installations. See
+ ftp://ctan.tug.org/tex-archive/tds.
+
+------------------------------------------------------------------------
+ AUTHOR
+
+ Matt Swift
+ <swift@alum.mit.edu>
diff --git a/Master/texmf-dist/doc/latex/frankenstein/abbrevs.pdf b/Master/texmf-dist/doc/latex/frankenstein/abbrevs.pdf
new file mode 100755
index 00000000000..5c04d864a9e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/abbrevs.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/frankenstein/abbrevs.tex b/Master/texmf-dist/doc/latex/frankenstein/abbrevs.tex
new file mode 100644
index 00000000000..1551e437725
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/abbrevs.tex
@@ -0,0 +1,67 @@
+% abbrevs.tex -- documentation for the abbrevs LaTeX package.
+%
+% This program is part of the Frankenstein bundle for LaTeX2e.
+%
+% Copyright (C) 1995-2001 Matt Swift <swift@alum.mit.edu>
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later
+% is part of all distributions of LaTeX version 1999/12/01 or
+% later.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% LaTeX Project Public License for more details.
+%
+\documentclass{ltxdoc}
+\makeatletter
+\def\part {%
+ \clearpage
+ \@afterindentfalse
+ \secdef\@part\@spart
+}
+\def\StripV #1{\E@cdr #1\@nil}
+\makeatother
+\usepackage{attrib,compsci}
+\newbook\manual {Chicago\nocite{chicago:14} Manual of Style}[Chicago Manual]
+\newbook\MLAman {The\nocite{mlaman} MLA Style Manual and Guide to Scholarly Publishing}
+ [The MLA Style Manual]
+\newtheorem{lessoninternal}{Lesson}
+\newenvironment{lesson} {%
+ \let\AttribInit\sffamily
+ \let\PreTrib\textsection
+ \let\PostTrib\ShortEmpty
+ \lessoninternal
+ } {%
+ \endlessoninternal
+ }
+\newcommand\manualref [1] {\textsf{\S #1}}
+\ProcessDTXFile{abbrevs.sty}
+\newlet\MaybeABib\relax
+\IfCitations {
+ \def\MaybeABib {%
+ \newpage
+ \bibliographystyle{achicago}%
+ \bibliography{frankenstein}%
+ }
+ \SaveDoXVarS
+ \usepackage{achicago}
+ \RestoreDoXVarS
+}
+\CodelineIndex
+\EnableCrossrefs
+\begin{document}
+\date{Version: \StripV\fileversion \qquad Date: \filedate\\
+ \relsize{-2}Documentation revision: \docdate}
+\author{Matt Swift \email{swift@alum.mit.edu}}
+\title{The \textsf{abbrevs} LaTeX package \\\smaller \fileinfo}
+\maketitle
+\DocInput{abbrevs.sty}
+\MaybeABib
+\newpage
+\PrintIndex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/frankenstein/achicago-bst.pdf b/Master/texmf-dist/doc/latex/frankenstein/achicago-bst.pdf
new file mode 100644
index 00000000000..8de77e1dd3d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/achicago-bst.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/frankenstein/achicago-bst.tex b/Master/texmf-dist/doc/latex/frankenstein/achicago-bst.tex
new file mode 100644
index 00000000000..bd0c55faa64
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/achicago-bst.tex
@@ -0,0 +1,67 @@
+% achicago-bst.tex -- documentation for the achicago BibTeX style.
+%
+% This program is part of the Frankenstein bundle for LaTeX2e.
+%
+% Copyright (C) 1995-2001 Matt Swift <swift@alum.mit.edu>
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later
+% is part of all distributions of LaTeX version 1999/12/01 or
+% later.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% LaTeX Project Public License for more details.
+%
+\documentclass{ltxdoc}
+\makeatletter
+\def\part {%
+ \clearpage
+ \@afterindentfalse
+ \secdef\@part\@spart
+}
+\def\StripV #1{\E@cdr #1\@nil}
+\makeatother
+\usepackage{attrib,compsci}
+\newbook\manual {Chicago\nocite{chicago:14} Manual of Style}[Chicago Manual]
+\newbook\MLAman {The\nocite{mlaman} MLA Style Manual and Guide to Scholarly Publishing}
+ [The MLA Style Manual]
+\newtheorem{lessoninternal}{Lesson}
+\newenvironment{lesson} {%
+ \let\AttribInit\sffamily
+ \let\PreTrib\textsection
+ \let\PostTrib\ShortEmpty
+ \lessoninternal
+ } {%
+ \endlessoninternal
+ }
+\newcommand\manualref [1] {\textsf{\S #1}}
+\ProcessDTXFile{achicago-bst.ver}
+\newlet\MaybeABib\relax
+\IfCitations {
+ \def\MaybeABib {%
+ \newpage
+ \bibliographystyle{achicago}%
+ \bibliography{frankenstein}%
+ }
+ \SaveDoXVarS
+ \usepackage{achicago}
+ \RestoreDoXVarS
+}
+\CodelineIndex
+\EnableCrossrefs
+\begin{document}
+\date{Version: \StripV\fileversion \qquad Date: \filedate\\
+ \relsize{-2}Documentation revision: \docdate}
+\author{Matt Swift \email{swift@alum.mit.edu}}
+\title{The \textsf{achicago} BibTeX style \\\smaller \fileinfo}
+\maketitle
+\DocInput{achicago.bst}
+\MaybeABib
+\newpage
+\PrintIndex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/frankenstein/achicago-bst.ver b/Master/texmf-dist/doc/latex/frankenstein/achicago-bst.ver
new file mode 100644
index 00000000000..239544360f2
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/achicago-bst.ver
@@ -0,0 +1,18 @@
+ \def\fileinfo{A Chicago Manual BibTeX style}
+ \def\DoXPackageS {longtable}
+ \def\initelyHavECitationS {}
+ \def\fileversion{v1}
+ \def\filedate{2001/08/31}
+ \def\docdate{2001/08/31}
+\makeatletter% A special comment to help create bst files. Don't change!
+\@ifundefined{JusTLoaDInformatioN} {%
+ }{% ELSE (we know the compsci package is already loaded, too)
+ \UndefineCS\JusTLoaDInformatioN
+ \SaveDoXVarS
+ \eExpand\csname DoXPackageS\endcsname\In {%use \csname in case it's undefined
+ \usepackage{#1}%
+ }%
+ \RestoreDoXVarS
+ \makeatother
+ \endinput
+}% A special comment to help create bst files. Don't change!
diff --git a/Master/texmf-dist/doc/latex/frankenstein/achicago.bsq b/Master/texmf-dist/doc/latex/frankenstein/achicago.bsq
new file mode 100644
index 00000000000..eb6257966d0
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/achicago.bsq
@@ -0,0 +1,2001 @@
+%%
+%% This is file `achicago.bsq',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% achicago.bst
+%%
+%% This program is part of the Frankenstein bundle for LaTeX.
+%%
+%% Copyright (C) 1995-2001 Matthew Swift <swift@alum.mit.edu>
+%%
+%% This file may have one of TWO names, either
+%% achicago.bst or achicago.bsq. This
+%% BibTeX style will work ONLY if it is called achicago.bst
+%% and placed in a proper directory. This file should have been
+%% distributed to you with a DIFFERENT file (also) called
+%% achicago.bst which functions identically to this one
+%% but contains documentation in comments. This file works faster,
+%% but the other should be kept because it contains the documentation
+%% for this BibTeX style. Files called README and INSTALL should have
+%% also been distributed to you with this file; see them for more
+%% information.
+%%
+%% This program is free software; you may redistribute it and/or
+%% modify it under the conditions of the LaTeX Project Public
+%% License, either version 1.2 or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt, and version 1.2 or later is
+%% part of all distributions of LaTeX version 1999/12/01 or later.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% LaTeX Project Public License for more details.
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+%%
+
+ %% A BibTeX bibliography style
+ %% conforming to the Chicago Manual's A style
+ %% but with B style author-date citations
+ %% by Matt Swift <swift@alum.mit.edu>
+ %%
+ %% \def\fileinfo{A Chicago Manual BibTeX style}
+ %% \def\DoXPackageS {longtable}
+ %% \def\initelyHavECitationS {}
+ %% \def\fileversion{v1}
+ %% \def\filedate{2001/08/31}
+ %% \def\docdate{2001/08/31}
+ %%
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+INTEGERS { author.ptype editor.ptype organization.ptype key.ptype
+ emergency.ptype }
+INTEGERS { last.year.tag.num }
+STRINGS { last.leaditem last.label.and.year following.year.label.tag }
+INTEGERS { j nameptr namesleft numnames len }
+STRINGS { s t u v w }
+ENTRY
+ { address
+ annotation
+ author
+ bookauthor
+ booktitle
+ chapter
+ edition
+ editor
+ faddress
+ flanguage
+ fpublisher
+ ftitle
+ fyear
+ howpublished
+ illustrator
+ institution
+ journal
+ key
+ month
+ note
+ number
+ oaddress
+ opublisher
+ organization
+ oyear
+ pages
+ publisher
+ school
+ series
+ seriesedition
+ title
+ translator
+ type
+ volume
+ year
+ yearcomp
+ }
+ { principal-type }
+ { label
+ year.label year.label.tag
+ principal-field
+ leaditem
+}
+MACRO {jan} {"January"}
+MACRO {feb} {"February"}
+MACRO {mar} {"March"}
+MACRO {apr} {"April"}
+MACRO {may} {"May"}
+MACRO {jun} {"June"}
+MACRO {jul} {"July"}
+MACRO {aug} {"August"}
+MACRO {sep} {"September"}
+MACRO {oct} {"October"}
+MACRO {nov} {"November"}
+MACRO {dec} {"December"}
+FUNCTION {debugval}
+{ ": [" *
+ swap$ * %$
+ "] in " * cite$ * %$
+ top$ %$
+}
+
+FUNCTION {debugmsg}
+{ " in " * cite$ * top$
+}
+FUNCTION {init.scalars}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+
+ #0 'author.ptype :=
+ #1 'editor.ptype :=
+ #2 'organization.ptype :=
+ #3 'key.ptype :=
+ #4 'emergency.ptype :=
+}
+FUNCTION {not}
+{ { #0
+ }
+ { #1
+ }
+ if$ %$
+}
+
+FUNCTION {and}
+{ 'skip$ %$
+ { pop$ %$
+ #0
+ }
+ if$ %$
+}
+
+FUNCTION {or}
+{ { pop$ %$
+ #1
+ }
+ 'skip$ %$
+ if$ %$
+}
+FUNCTION {comma}
+{ ","
+}
+
+FUNCTION {period}
+{ "."
+}
+
+FUNCTION {hyphen}
+{ "-"
+}
+
+FUNCTION {colon}
+{ ":"
+}
+
+FUNCTION {space}
+{ " "
+}
+
+FUNCTION {delimiter.name-part}
+{ " "
+}
+
+FUNCTION {delimiter.name}
+{ " "
+}
+
+FUNCTION {delimiter.sub-sortkey}
+{ " "
+}
+
+FUNCTION {tie}
+{ "~"
+}
+
+FUNCTION {etal}
+{ " et~al."
+}
+FUNCTION {unidentified}
+{ "HiGHlY*Peco@lIEr"
+}
+FUNCTION{output.begin}
+{ ""
+ before.all 'output.state :=
+}
+FUNCTION {output.end}
+{ write$ %$
+}
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$ %$
+ { after.block 'output.state :=
+ }
+ if$ %$
+}
+FUNCTION {new.sentence}
+{ output.state before.all = output.state after.block = or
+ 'skip$ %$
+ { after.sentence 'output.state :=
+ }
+ if$ %$
+}
+FUNCTION {output.internal}
+{ 's := % s := string/entry(nonnull)
+ space * 't := % t := punctuation + space
+ output.state mid.sentence =
+ { t * write$ %$
+ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$ %$
+ "\newblock " write$ %$
+ }
+ { output.state before.all =
+ 'write$ %$
+ { add.period$ space * write$
+ }
+ if$ %$
+ }
+ if$ %$
+ mid.sentence 'output.state :=
+ }
+ if$ %$
+ s
+}
+FUNCTION {output}
+{ swap$ duplicate$ empty$
+ { pop$
+ pop$ %$
+ }
+ 'output.internal
+ if$ %$
+}
+FUNCTION {output.bibitem}
+{ newline$ %$
+ "\bibitem[\UnexpandableProtect\SCcite{" write$ %$
+ label write$ %$
+ "}{" write$ %$
+ year.label year.label.tag * write$ %$
+ "}]{" write$ %$
+ cite$ write$
+ "}" write$ %$
+ newline$ %$
+}
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ %$
+ ""
+ }
+ 'skip$ %$
+ if$ %$
+}
+FUNCTION {italicize}
+{ duplicate$ empty$
+ { pop$ %$
+ ""
+ }
+ { "\textitswitch{" swap$ * "}" * %$
+ }
+ if$ %$
+}
+FUNCTION {parenthesize}
+{ duplicate$ empty$
+ { pop$ %$
+ ""
+ }
+ { "(" swap$ * ")" * %$
+ }
+ if$ %$
+}
+FUNCTION {format.clip}
+{ #1 entry.max$ substring$
+ #1 global.max$ substring$
+}
+FUNCTION {format.sortify.clip}
+{ % duplicate$ "sinful" debugval %$
+ purify$ %$
+ "l" change.case$ %$
+ format.clip
+}
+FUNCTION {check.empty}
+{ 't :=
+ duplicate$ empty$
+ { "empty " t * " in " * cite$ * warning$
+ }
+ 'skip$ %$
+ if$ %$
+}
+FUNCTION {multipage.p}
+{ pages 't :=
+ #0 'j :=
+ % WHILE
+ { j not
+ t empty$ not %$
+ and
+ }
+ { t #1 #1 substring$ %$
+ duplicate$ hyphen = %$
+ swap$ duplicate$ comma =
+ swap$ "+" = %$
+ or
+ or
+ { #1 'j :=
+ }
+ { t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+ j
+}
+FUNCTION {format.n.dashify}
+{ 't :=
+ ""
+ % WHILE
+ { t empty$ not } %$
+ { t #1 #1 substring$ hyphen = %$
+ { t #1 #2 substring$ "--" = not %$
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { % WHILE
+ { t #1 #1 substring$ hyphen = } %$
+{ hyphen *
+ t #2 global.max$ substring$ 't :=
+}
+ while$ %$
+ }
+ if$ %$
+ }
+ { t #1 #1 substring$ * %$
+ t #2 global.max$ substring$ 't :=
+ }
+ if$ %$
+ }
+ while$ %$
+}
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #5 <
+ { tie
+ }
+ { space
+ }
+ if$
+ swap$ * *
+}
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$
+ }
+ if$
+}
+FUNCTION {start.a.q}
+{ #-1 'j :=
+ ""
+}
+FUNCTION {inc.j}
+{ j #1 + 'j :=
+}
+
+FUNCTION {key.q}
+{ duplicate$ empty$
+ { pop$ %$
+ key field.or.null
+ inc.j
+ }
+ 'skip$ %$
+ if$ %$
+}
+
+FUNCTION {organization.q}
+{ duplicate$ empty$
+ { pop$ %$
+ organization field.or.null
+ inc.j
+ }
+ 'skip$ %$
+ if$ %$
+}
+
+FUNCTION {editor.q}
+{ duplicate$ empty$
+ { pop$ %$
+ editor field.or.null
+ inc.j
+ }
+ 'skip$ %$
+ if$ %$
+}
+
+FUNCTION {author.q}
+{ duplicate$ empty$
+ { pop$ %$
+ author field.or.null
+ inc.j
+ }
+ 'skip$ %$
+ if$ %$
+}
+
+FUNCTION {blank.q}
+{ duplicate$ empty$
+ 'inc.j
+ 'skip$ %$
+ if$ %$
+}
+FUNCTION {check.q}
+{ 't :=
+ duplicate$ empty$
+ { pop$ %$
+ cite$ format.clip 'u := %$
+ "Need " t * " in " * cite$ * "; using: " * u * warning$
+ u
+ inc.j
+ }
+ 'skip$ %$
+ if$ %$
+}
+FUNCTION {format.names.for.label}
+{ 's :=
+ s num.names$ 'numnames := %$
+ s #1 "{vv~}{ll}" format.name$ %$
+ s numnames "{ff}{vv}{ll}{jj}" format.name$ "others" = %$
+ numnames #3 >
+ or
+ % more than 3 names, or final name is "others"
+ { etal *
+ }
+ { numnames #1 - 'namesleft :=
+ #2 'nameptr :=
+{ namesleft #0 > }
+{ nameptr numnames =
+ % we're on the final name (and it's not "others")
+ { numnames #2 >
+{ comma *
+}
+'skip$ %$
+ if$ %$
+ " and " * s nameptr "{vv~}{ll}" format.name$ * %$
+ }
+ % we're not on the final name (in this case: 2d of 3 names)
+ { comma * space *
+ s nameptr "{vv~}{ll}" format.name$ * %$
+ }
+ if$ %$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+}
+ while$ %$
+ }
+ if$ %$
+}
+FUNCTION {format.names.lastfirst}
+{ 's :=
+ s num.names$ 'numnames := % numnames = num.name$(s);
+ numnames 'namesleft :=
+ #1 'nameptr := % nameptr = 1;
+ % WHILE
+ { namesleft #0 > }
+ { nameptr #1 =
+ { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ %$
+ }
+ { comma *
+ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := %$
+ nameptr numnames =
+ % final name
+ { t "others" =
+ { etal *
+ }
+ { " and " * t *
+ }
+ if$ %$
+ }
+ % names both precede and follow this name
+ { space * t *
+ }
+ if$ %$
+ }
+ if$ %$
+ nameptr #1 + 'nameptr := % nameptr += 1;
+ namesleft #1 - 'namesleft := % namesleft =- 1;
+ }
+ while$ %$
+}
+FUNCTION {format.names.firstfirst}
+{ 's :=
+ s num.names$ 'numnames := % numnames = num.name$(s);
+ numnames 'namesleft :=
+ #1 'nameptr := % nameptr = 1;
+ % WHILE
+ { namesleft #0 > }
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := %$
+ nameptr #1 =
+ 't
+ { nameptr numnames =
+ % final name
+ { numnames #2 >
+ { comma *
+ }
+ 'skip$ %$
+ if$ %$
+ t "others" =
+ { etal *
+ }
+ { " and " * t *
+ }
+ if$ %$
+ }
+ % names both precede and follow this name
+ { comma * space * t *
+ }
+ if$ %$
+ }
+ if$ %$
+ nameptr #1 + 'nameptr := % nameptr += 1;
+ namesleft #1 - 'namesleft := % namesleft =- 1;
+ }
+ while$ %$
+}
+FUNCTION {make.annotation}
+{ annotation empty$ %$
+ { ""
+ }
+ { "\begin{SCannotation}"
+ annotation *
+ "\end{SCannotation}" *
+ }
+ if$ %$
+}
+FUNCTION {make.edition}
+{ edition empty$ %$
+ { seriesedition empty$ not series field.or.null title field.or.null = and %$
+ { seriesedition
+ }
+ { ""
+ }
+ if$ %$
+ }
+ { edition
+ }
+ if$ %$
+}
+FUNCTION {make.year.month}
+ { year empty$ %$
+ { ""
+ }
+ { year year.label.tag *
+month empty$ %$
+ 'skip$ %$
+ { comma * space * month *
+ }
+if$ %$
+ }
+ if$ %$
+}
+FUNCTION {make.year.nomonth}
+{ year empty$ %$
+ { ""
+ }
+ { year year.label.tag *
+ }
+ if$ %$
+}
+FUNCTION {make.year.or.oyear.month}
+{ oyear empty$ %$
+ { make.year.month
+ }
+ { year empty$ %$
+ { "oyear without year in " cite$ * warning$
+ }
+ 'skip$ %$
+ if$ %$
+ oyear year.label.tag *
+ month empty$ %$
+ 'skip$ %$
+{ comma * space * month *
+ }
+ if$ %$
+ }
+ if$ %$
+}
+FUNCTION {make.leaditem.with.tags}
+{ leaditem
+ principal-type editor.ptype =
+ { editor num.names$ #1 > %$
+{ ",~eds." *
+}
+{ ",~ed." *
+}
+ if$ %$
+ }
+ 'skip$ %$
+ if$ %$
+}
+FUNCTION {make.editors.secondary}
+{ editor empty$ %$
+ { ""
+ }
+ { output.state after.sentence =
+ output.state after.block = or
+ { "E"
+ }
+ { "e"
+ }
+ if$ %$
+ "dited by " * editor format.names.firstfirst *
+ }
+ if$ %$
+}
+FUNCTION {make.bookauthors.secondary}
+{ bookauthor empty$ %$
+ { ""
+ }
+ { output.state after.sentence =
+ output.state after.block =
+ or
+ { "B"
+ }
+ { "b"
+ }
+ if$ %$
+ "y " * bookauthor format.names.firstfirst *
+ }
+ if$ %$
+}
+FUNCTION {make.translators}
+{ translator empty$ %$
+ { ""
+ }
+ { output.state after.sentence =
+ output.state after.block =
+ or
+ { "T"
+ }
+ { "t"
+ }
+ if$ %$
+ "ranslated " *
+ flanguage empty$ %$
+ 'skip$ %$
+ { "from the " * flanguage * space *
+ }
+ if$ %$
+ "by " * translator format.names.firstfirst *
+ }
+ if$ %$
+}
+
+FUNCTION {make.illustrators}
+{ illustrator empty$ %$
+ { ""
+ }
+ { output.state after.sentence =
+ output.state after.block =
+ or
+ { "I"
+ }
+ { "i"
+ }
+ if$ %$
+ "llustrated by " * illustrator format.names.firstfirst *
+ }
+ if$ %$
+}
+FUNCTION {make.title.ital}
+{ title field.or.null italicize
+}
+
+FUNCTION {make.booktitle.ital}
+{ booktitle field.or.null italicize
+}
+
+FUNCTION {make.as.ftitle.ital}
+{ ftitle empty$ %$
+ { ""
+ }
+ { "as " ftitle italicize *
+ }
+ if$ %$
+}
+FUNCTION {make.title.inquotes}
+{ title empty$ %$
+ { ""
+ }
+ {
+ "\Wrapquotes{" title * "}" *
+ }
+ if$ %$
+}
+FUNCTION {make.pages}
+{ pages empty$ %$
+ { ""
+ }
+ { pages format.n.dashify
+ }
+ if$ %$
+}
+FUNCTION {make.vol.series.num.month.pages}
+{ volume empty$ %$
+ { series empty$ %$
+ { number empty$ %$
+ { month empty$ %$
+{ pages empty$ %$
+ % none of VSNMP
+ { space 'u :=
+ ""
+ }
+ % P
+ { comma 'u :=
+ multipage.p
+ { "pp." pages format.n.dashify
+}
+ { "p." pages
+}
+ if$ %$
+ tie.or.space.connect
+ }
+ if$ %$
+}
+{ pages empty$ %$
+ % M
+ { comma 'u :=
+ month
+ }
+ % MP
+ { comma 'u :=
+ month comma * space * make.pages *
+ }
+ if$ %$
+}
+ if$ %$
+ }
+ { month empty$ %$
+{ pages empty$ %$
+ % N
+ { comma 'u :=
+ "no." number tie.or.space.connect
+ }
+ % NP
+ { comma 'u :=
+ "no." number colon * make.pages * tie.or.space.connect
+ }
+ if$ %$
+}
+{ pages empty$ %$
+ % NM
+ { comma 'u :=
+ "no." number tie.or.space.connect
+ space * month parenthesize *
+ }
+ % NMP
+ { comma 'u :=
+ "no." number tie.or.space.connect
+ space * month parenthesize *
+ colon * space * make.pages *
+ }
+ if$ %$
+}
+ if$ %$
+ }
+ if$ %$
+ }
+ { number empty$ %$
+ { month empty$ %$
+{ pages empty$ %$
+ % S
+ {
+ }
+ % SP
+ {
+ }
+ if$ %$
+}
+{ pages empty$ %$
+ % SM
+ {
+ }
+ % SMP
+ {
+ }
+ if$ %$
+}
+ if$ %$
+ }
+ { month empty$ %$
+{ pages empty$ %$
+ % SN
+ {
+ }
+ % SNP
+ {
+ }
+ if$ %$
+}
+{ pages empty$ %$
+ % SNP
+ {
+ }
+ % SNMP
+ {
+ }
+ if$ %$
+}
+ if$ %$
+ }
+ if$ %$
+ }
+ if$ %$
+ }
+ { series empty$ %$
+ { number empty$ %$
+ { month empty$ %$
+{ pages empty$ %$
+ % V
+ { comma 'u :=
+ "vol." volume tie.or.space.connect
+ }
+ % VP
+ { space 'u :=
+ volume colon * make.pages *
+ }
+ if$ %$
+}
+{ pages empty$ %$
+ % VM
+ { comma 'u :=
+ "vol." volume tie.or.space.connect
+ space * month parenthesize *
+ }
+ % VMP
+ { space 'u :=
+ volume space *
+ month parenthesize * colon * space * make.pages *
+ }
+ if$ %$
+}
+ if$ %$
+ }
+ { month empty$ %$
+{ pages empty$ %$
+ % VN
+ { space 'u :=
+ volume ", no." number tie.or.space.connect *
+ }
+ % VNP
+ { space 'u :=
+ volume space *
+ number parenthesize * colon * space * make.pages *
+ }
+ if$ %$
+}
+{ pages empty$ %$
+ % VNM
+ { space 'u :=
+ volume ", no." number tie.or.space.connect *
+ space * month parenthesize *
+ }
+ % VNMP
+ { space 'u :=
+ volume space * number parenthesize * colon * space *
+ make.pages * space * month parenthesize *
+ }
+ if$ %$
+}
+ if$ %$
+ }
+ if$ %$
+ }
+ { number empty$ %$
+ { month empty$ %$
+{ pages empty$ %$
+ % VS
+ {
+ }
+ % VSP
+ {
+ }
+ if$ %$
+}
+{ pages empty$ %$
+ % VSM
+ {
+ }
+ % VSMP
+ {
+ }
+ if$ %$
+}
+ if$ %$
+ }
+ { month empty$ %$
+{ pages empty$ %$
+ % VSN
+ {
+ }
+ % VSNP
+ {
+ }
+ if$ %$
+}
+{ pages empty$ %$
+ % VSNM
+ {
+ }
+ % VSNMP
+ {
+ }
+ if$ %$
+}
+ if$ %$
+ }
+ if$ %$
+ }
+ if$ %$
+ }
+ if$ %$
+}
+FUNCTION {make.crossref}
+{ "\citeNP{" crossref * "}" *
+}
+FUNCTION {output.series.number}
+{ series empty$ %$
+ { number empty$ %$
+ { ""
+ }
+ { "Can't use `number' without `series' in " cite$ * warning$
+ ""
+ }
+ if$ %$
+ }
+ { number empty$ %$
+{ series
+ seriesedition empty$ %$
+ 'skip$ %$
+ { comma output
+ new.block
+ seriesedition
+ }
+ if$ %$
+}
+{ series space *
+ "no." *
+ number tie.or.space.connect
+ "number and seriesedition" seriesedition either.or.check
+}
+ if$ %$
+ }
+ if$ %$
+ comma output
+}
+FUNCTION {output.volume.series}
+{ volume empty$ %$
+ { ""
+ }
+ { "Volume" volume tie.or.space.connect
+ series empty$ %$
+ 'skip$ %$
+ { " of " * series italicize *
+ seriesedition empty$ %$
+ 'skip$ %$
+ { comma output
+ new.block
+ seriesedition
+ }
+ if$ %$
+ }
+ if$ %$
+ "volume and number" number either.or.check
+ }
+ if$ %$
+ comma output
+}
+FUNCTION {make.chapter.of}
+{ chapter empty$ %$
+ { ""
+ }
+ { type empty$ %$
+ { "Chapter"
+ }
+ { type "t" change.case$ %$
+ }
+ if$ %$
+ chapter tie.or.space.connect
+ " of " *
+ }
+ if$ %$
+}
+FUNCTION {make.chapter}
+{ chapter empty$ %$
+ { ""
+ }
+ { type empty$ %$
+ { "Chapter"
+ }
+ { type "t" change.case$ %$
+ }
+ if$ %$
+ chapter tie.or.space.connect
+ }
+ if$ %$
+}
+FUNCTION {make.number.tr}
+{ type empty$ %$
+ { "Technical Report"
+ }
+ { type "t" change.case$ %$
+ }
+ if$ %$
+ number empty$ %$
+ 'skip$ %$
+ { number tie.or.space.connect
+ }
+ if$ %$
+}
+%%
+%% FIX: new idea, start using it
+FUNCTION {set.principal-field.principal-type}
+{ type$ "book" = %$
+ type$ "inbook" = %$
+ or
+ { start.a.q
+ author.q
+ editor.q
+ blank.q
+ key.q
+ "author, editor, or key for entry type " type$ * check.q %$
+ }
+ { type$ "proceedings" = %$
+ { start.a.q
+ blank.q
+ editor.q
+ organization.q
+ key.q
+ "editor, organization, or key for entry type " type$ * check.q %$
+ }
+ { type$ "manual" = %$
+ { start.a.q
+ author.q
+ blank.q
+ organization.q
+ key.q
+ "author, organization, or key for entry type " type$ * check.q %$
+ }
+ % for all other entry types
+ { start.a.q
+ author.q
+ blank.q
+ blank.q
+ key.q
+ "author or key for entry type " type$ * check.q %$
+ }
+ if$ %$
+ }
+ if$ %$
+ }
+ if$ %$
+ 'principal-field :=
+ j 'principal-type :=
+}
+
+FUNCTION {key.special.p}
+{ type$ "manual" = %$
+type$ "proceedings" = %$
+ or
+ principal-type organization.ptype =
+ and
+ key empty$ not %$
+ and
+}
+
+FUNCTION {make.leaditem}
+{ key.special.p
+ % is \field{key} all-caps?
+ { key duplicate$ "u" change.case$ =
+ % if so, key is assumed to be an acronym FIX; should I warn what we're doing?
+ { key " (" * organization * ")" *
+ }
+ % if not, key is assumed to be an initial prefix (abbreviation) of organization
+ % for use only in the label
+ { organization
+ }
+ if$ %$
+ }
+ { principal-field
+principal-type author.ptype =
+principal-type editor.ptype =
+ or
+{ format.names.lastfirst
+}
+'skip$ %$
+ if$ %$
+ }
+ if$ %$
+}
+
+FUNCTION {make.label.from.principal-field}
+{ principal-field
+ principal-type author.ptype =
+ principal-type editor.ptype =
+ or
+ { format.names.for.label
+ }
+ % organization, key, or emergency
+ 'skip$ %$
+ if$ %$
+}
+
+FUNCTION {make.label}
+{ key.special.p
+ { key
+ }
+ { make.label.from.principal-field
+ }
+ if$ %$
+}
+
+
+FUNCTION {length}
+{ 'u :=
+ #0 'len :=
+ % WHILE
+ { u "" = not }
+ { len #1 + 'len :=
+ u #2 global.max$ substring$ 'u :=
+ }
+ while$ %$
+ len
+}
+
+
+FUNCTION {head}
+{ 'w :=
+ w #1 #1 substring$ %$
+ duplicate$ "{" = %$
+ { w #2 #1 substring$ "\" = %$
+ { pop$ %$
+ w #1 text.prefix$ %$
+ }
+ 'skip$ %$
+ if$ %$
+ }
+ 'skip$ %$
+ if$ %$
+}
+
+
+FUNCTION {behead}
+{ 'u :=
+ u
+ u head length #1 +
+ global.max$ %$
+ substring$ %$
+}
+
+FUNCTION {behead.t}
+{ t behead 't :=
+}
+
+FUNCTION {format.dehyphen}
+{ 't :=
+ ""
+ % WHILE
+ { t "" = not }
+ { t head
+ duplicate$ hyphen = %$
+ { pop$ %$
+ }
+ { *
+ }
+ if$ %$
+ behead.t
+ }
+ while$ %$
+}
+
+
+
+
+FUNCTION {format.dehyphen.dewhitespace}
+{ 't :=
+ ""
+ % WHILE
+ { t "" = not }
+ { t head
+ duplicate$ %$
+ duplicate$ hyphen = %$
+ swap$ empty$
+ or
+ { pop$ %$
+ }
+ { *
+ }
+ if$ %$
+ behead.t
+ }
+ while$ %$
+}
+
+FUNCTION {format.names.for.sort}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames := %$
+ numnames 'namesleft :=
+ % WHILE
+ { namesleft #0 > }
+ {
+ % NOTE: order or name-parts ought to follow that used for leaditem
+ % word-by-word alphabetization:
+ % letter-by-letter alphabetization, no attention to initials:
+
+ % letter-by-letter alphabetization, with first initials exception:
+
+ s nameptr "{vv{}}{ll{}}{ jj{}}" format.name$ %$
+
+ % Each first-name token of the form of an initial ("L.") will be followed by a
+ % space but other spaces will be removed.
+
+ % Algorithm: step through looking for space, which terminates name tokens,
+ % adding non-spaces to an accumulator on the stack as we go.
+ % When we find a space, look at the accumulator (a whole name token).
+ % If it's length is 2 and 2d char is a period, we've got an initial, so
+ % add the space to the accumulator. If not, throw away the space
+ % and step on looking for another name.
+
+ % FIX: would it be simpler to replace periods with spaces?
+ % would a period ever appear in a first-name when not an initial?
+ % Rev.? Col.? These should be alphabetized as spelled out, prob.
+ % but need to check \manual
+
+
+ s nameptr "{ff{ } }" format.name$ 't := %$
+ % t is "F1 F2 F3 ... FN " or empty
+
+
+ t empty$ %$
+ 'skip$ %$
+ { delimiter.name-part *
+ "" % accumulator
+ % WHILE
+ { t "" = not }
+ { t head
+ duplicate$ empty$
+ % last char will always be a space
+ % accumulator contains whole name token
+ { pop$ %$ throw space away for now; top of stack is now accumulator
+ duplicate$ %$
+ duplicate$ text.length$ #2 = % 2 chars long
+ swap$ behead head period = %$ 2d char is period
+ and
+ % name token in accumulator is an initial, so add a space to it
+ { space *
+ }
+ % name token in accumulator is not an initial
+ 'skip$ %$
+ if$ %$
+ % in either case, concatenate the accumulator the name on the
+ % stack and initialize it again
+ * ""
+ }
+ % accumulator contains partial name token
+ % add t's head (not a space) to accumulator
+ { *
+ }
+ if$ %$
+ behead.t
+ }
+ while$ %$
+ % we always end up with an empty string on the stack
+ pop$ %$
+ }
+ if$ %$
+
+ format.dehyphen
+ 't :=
+ % t now contains one name of a namelist
+ nameptr #1 =
+ { t
+ }
+ { delimiter.name *
+ nameptr numnames =
+ t "others" =
+ and
+ { "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" *
+ }
+ { t *
+ }
+ if$ %$
+ }
+ if$ %$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$ %$
+}
+FUNCTION {make.principal-field.for.sort} % FIX: note: leaditem must already be set
+{ principal-type author.ptype =
+ principal-type editor.ptype =
+ or
+ { principal-field format.names.for.sort
+ }
+ { principal-type emergency.ptype =
+ { principal-field
+ }
+ % organization.ptype, key.ptype, including both key.special cases
+ % leaditem is the same as principal-field except in the key.special
+ % cases, when we do want the leaditem not the principal-field
+{ leaditem
+ % letter-by-letter alphabetization:
+ format.dehyphen.dewhitespace
+ }
+ if$ %$
+ }
+ if$ %$
+}
+FUNCTION {begin.entry}
+{ output.begin
+ output.bibitem
+}
+FUNCTION {finish.entry}
+{ add.period$ %$
+ output.end
+ newline$ %$
+ make.annotation write$ %$
+}
+FUNCTION {article}
+{ begin.entry
+ make.leaditem.with.tags space output
+ new.block
+ make.year.nomonth "year" check.empty space output
+ new.block
+ make.title.inquotes "title" check.empty space output
+ new.block
+ crossref empty$ %$
+ { journal italicize "journal" check.empty space output
+ series empty$ %$
+ 'skip$ %$
+ { "Achicago can not yet handle nonempty series! in " cite$ * warning$
+ }
+ if$ %$
+ volume empty$ number empty$ month empty$ pages empty$ and and and
+ { "empty volume, number, month, and pages in " cite$ * warning$
+ }
+ 'skip$ %$
+ if$ %$
+ make.vol.series.num.month.pages u output
+ }
+ { "In " make.crossref * space output
+ make.pages "pages" check.empty comma output
+ }
+ if$ %$
+ new.block
+ note space output
+ finish.entry
+}
+FUNCTION {book}
+{ begin.entry
+ make.leaditem.with.tags comma output
+ new.block
+ make.year.or.oyear.month "year" check.empty comma output
+ new.block
+ make.title.ital "title" check.empty comma output
+ new.block
+ make.edition comma output
+ new.block
+ crossref empty$ %$
+ { volume empty$ %$
+ { output.series.number
+ }
+ { output.volume.series
+ }
+ if$ %$
+ editor empty$ author empty$ or
+ 'skip$ %$
+ { new.block
+ make.editors.secondary comma output
+ }
+ if$ %$
+ new.block
+ make.translators comma output
+ new.block
+ make.illustrators comma output
+ new.block
+ oyear empty$ %$
+ { address comma output
+ publisher "publisher" check.empty colon output
+ }
+ { oaddress comma output
+ opublisher "opublisher" check.empty colon output
+ new.block
+ "Reprint" comma output
+ address field.or.null comma output
+ publisher "publisher" check.empty
+ address empty$ %$
+ { comma
+ }
+ { colon
+ }
+ if$ %$
+ output
+ year "year" check.empty comma output
+ }
+ if$ %$
+ }
+ { volume empty$ %$
+ { "In "
+ }
+ { "Volume" volume tie.or.space.connect
+ " of " *
+ }
+ if$ %$
+ make.crossref * comma output
+ }
+ if$ %$
+ new.block
+ yearcomp empty$ %$
+ 'skip$ %$
+ { "Composed in " yearcomp *
+ comma output
+ new.block
+ }
+ if$ %$
+ fyear empty$
+ 'skip$
+ { "First published "
+ translator empty$ flanguage empty$ not and
+ { "in " * flanguage * space *
+ }
+ 'skip$
+ if$
+ make.as.ftitle.ital * space output
+ faddress empty$ fpublisher empty$ not and
+ { "by "
+ }
+ { "in "
+ }
+ if$ %$
+ space output
+ faddress space output
+ fpublisher
+ faddress empty$ %$
+ { space
+ }
+ { colon
+ }
+ if$ %$
+ output
+ fyear
+ faddress empty$ fpublisher empty$ and
+ { space
+ }
+ { comma
+ }
+ if$ output %$
+ new.block
+ }
+ if$ %$
+ note comma output
+ finish.entry
+}
+FUNCTION {inbook}
+{ begin.entry
+ make.leaditem.with.tags comma output
+ new.block
+ make.year.or.oyear.month "year" check.empty comma output
+ new.block
+ crossref empty$ %$
+ { make.chapter.of
+ duplicate$ 'u := %$
+ duplicate$ empty$
+ { pop$ %$
+ pages empty$ %$
+ { "empty chapter, type, and pages in " cite$ * warning$
+ "In "
+ }
+ { "Pages " make.pages * " in " *
+ }
+ if$ %$
+ }
+ 'skip$ %$
+ if$ %$
+ comma output
+ make.title.ital "title" check.empty space output
+ make.bookauthors.secondary comma output
+ make.editors.secondary comma output
+ volume empty$ %$
+ { output.series.number
+ }
+ { output.volume.series
+ }
+ if$ %$
+ make.edition comma output
+ u empty$ %$
+ 'skip$ %$
+ { make.pages comma output
+ }
+ if$ %$
+ new.block
+ make.translators comma output
+ new.block
+ make.illustrators comma output
+ new.block
+ oyear empty$ %$
+ { address comma output
+ publisher "publisher" check.empty colon output
+ }
+ { oaddress comma output
+ opublisher "opublisher" check.empty colon output
+ new.block
+ "Reprint" comma output
+ address field.or.null comma output
+ publisher "publisher" check.empty
+ address empty$ %$
+ { comma
+ }
+ { colon
+ }
+ if$ %$
+ output
+ year "year" check.empty comma output
+ }
+ if$ %$
+ }
+ % crossref not empty
+ { "In " make.crossref * comma output
+ make.chapter comma output
+ make.pages comma output
+ chapter empty$ pages empty$ and
+ { "empty chapter and pages in " cite$ * warning$
+ }
+ 'skip$ %$
+ if$ %$
+ }
+ if$ %$
+ new.block
+ note comma output
+ finish.entry
+}
+FUNCTION {incollection}
+{ begin.entry
+ make.leaditem.with.tags comma output
+ new.block
+ make.year.or.oyear.month "year" check.empty space output
+ new.block
+ make.title.inquotes "title" check.empty space output
+ new.block
+ crossref empty$ %$
+ { make.chapter.of duplicate$ empty$
+ { pop$ %$
+ "In "
+ }
+ 'skip$ %$
+ if$ %$
+ space output
+ make.booktitle.ital "booktitle" check.empty space output
+ make.bookauthors.secondary comma output
+ make.editors.secondary comma output
+ volume empty$ %$
+ { output.series.number
+ }
+ { output.volume.series
+ }
+ if$ %$
+ make.edition comma output
+ make.pages comma output
+ chapter empty$ type empty$ and pages empty$ and %$
+ { "empty chapter, type, and pages in " cite$ * warning$
+ }
+ 'skip$ %$
+ if$ %$
+ new.block
+ make.translators space output
+ new.block
+ make.illustrators space output
+ new.block
+ oyear empty$ %$
+ { address space output
+ publisher "publisher" check.empty colon output
+ }
+ { oaddress space output
+ opublisher "opublisher" check.empty colon output
+ new.block
+ "Reprint" comma output
+ address comma output
+ publisher "publisher" check.empty
+ address empty$ %$
+ { comma
+ }
+ { colon
+ }
+ if$ %$
+ output
+ year comma output
+ }
+ if$ %$
+ }
+ % crossref not empty
+ { new.block
+ "In " make.crossref * space output
+ make.chapter comma output
+ make.pages comma output
+ chapter empty$ pages empty$ and
+ { "empty chapter and pages in " cite$ * warning$
+ }
+ 'skip$ %$
+ if$ %$
+ }
+ if$ %$
+ new.block
+ note space output
+ finish.entry
+}
+FUNCTION {format.thesis}
+{ 'v :=
+ begin.entry
+ make.leaditem.with.tags comma output
+ new.block
+ make.year.month "year" check.empty space output
+ new.block
+ make.title.inquotes "title" check.empty space output
+ new.block
+ v "type" check.empty space output
+ school "school" check.empty comma output
+ address comma output
+ new.block
+ note space output
+ finish.entry
+}
+FUNCTION {thesis}
+{ type field.or.null format.thesis
+}
+FUNCTION{mastersthesis}
+{ type empty$ %$
+ { "Master's thesis"
+ }
+ { type
+ }
+ if$ %$
+ format.thesis
+}
+FUNCTION {minorthesis}
+{ mastersthesis
+}
+FUNCTION {phdthesis}
+{ type empty$ %$
+ { "Ph.D.~diss."
+ }
+ { type
+ }
+ if$ %$
+ format.thesis
+}
+FUNCTION {majorthesis}
+{ phdthesis
+}
+FUNCTION {manual}
+{ begin.entry
+ make.leaditem.with.tags space output
+ new.block
+ make.year.month space output
+ new.block
+ make.title.ital "title" check.empty comma output
+ new.block
+ make.edition comma output
+ new.block
+ address space output
+ organization colon output
+ new.block
+ note space output
+ finish.entry
+}
+FUNCTION {booklet}
+{ begin.entry
+ make.leaditem.with.tags comma output
+ new.block
+ make.year.month space output
+ new.block
+ make.title.inquotes "title" check.empty comma output
+ new.block
+ howpublished space output
+ address comma output
+ new.block
+ note space output
+ finish.entry
+}
+FUNCTION {inproceedings}
+{ begin.entry
+ make.leaditem.with.tags comma output
+ new.block
+ make.year.month "year" check.empty space output
+ new.block
+ make.title.inquotes "title" check.empty space output
+ new.block
+ crossref empty$ %$
+ { make.editors.secondary space output
+ make.booktitle.ital "booktitle" check.empty comma output
+ volume empty$ %$
+ { output.series.number
+ }
+ { output.volume.series
+ }
+ if$ %$
+ make.edition comma output
+ new.block
+ organization space output
+ address comma output
+ publisher colon output
+ make.pages comma output
+ }
+ { "In " make.crossref * space output
+ make.chapter comma output
+ make.pages comma output
+ chapter empty$ pages empty$ and
+ { "empty chapter and pages in " cite$ * warning$
+ }
+ 'skip$ %$
+ if$ %$
+ }
+ if$ %$
+ new.block
+ note space output
+ finish.entry
+}
+FUNCTION {conference}
+{ inproceedings
+}
+FUNCTION {proceedings}
+{ begin.entry
+ make.leaditem.with.tags space output
+ new.block
+ make.year.month "year" check.empty space output
+ new.block
+ make.title.ital "title" check.empty comma output
+ new.block
+ make.edition comma output
+ new.block
+ volume empty$ %$
+ { output.series.number
+ }
+ { output.volume.series
+ }
+ if$ %$
+ new.block
+ organization space output
+ address comma output
+ publisher colon output
+ new.block
+ note comma output
+ finish.entry
+}
+FUNCTION {misc}
+{ begin.entry
+ make.leaditem.with.tags comma output
+ new.block
+ make.year.month space output
+ new.block
+ title space output
+ new.block
+ howpublished comma output
+ new.block
+ note space output
+ finish.entry
+}
+FUNCTION {techreport}
+{ begin.entry
+ make.leaditem.with.tags comma output
+ new.block
+ make.year.month "year" check.empty comma output
+ new.block
+ make.title.inquotes "title" check.empty comma output
+ new.block
+ make.number.tr comma output
+ institution "institution" check.empty comma output
+ address comma output
+ new.block
+ note comma output
+ finish.entry
+}
+FUNCTION {unpublished}
+{ begin.entry
+ make.leaditem.with.tags comma output
+ new.block
+ make.year.month space output
+ new.block
+ make.title.inquotes "title" check.empty space output
+ new.block
+ note "note" check.empty space output
+ finish.entry
+}
+FUNCTION {default.type}
+{ misc }
+FUNCTION {chop.word}
+{ 't :=
+ 'len :=
+ t #1 len substring$ = %$
+ { t len #1 + global.max$ substring$
+ }
+ { t
+ }
+ if$ %$
+}
+FUNCTION {make.title.for.sort}
+{ title field.or.null
+ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ format.dehyphen.dewhitespace
+}
+FUNCTION {presort}
+{ set.principal-field.principal-type
+
+ make.leaditem
+ 'leaditem :=
+
+ make.label
+ 'label :=
+
+ oyear empty$ %$
+ { year
+ }
+ { oyear
+ }
+ if$ %$
+ field.or.null purify$ #-1 #4 substring$
+ 'year.label :=
+}
+
+FUNCTION {sortkey<-label+year+principal+title}
+{ label
+ delimiter.sub-sortkey *
+ year.label *
+ delimiter.sub-sortkey *
+ make.principal-field.for.sort *
+ delimiter.sub-sortkey *
+ make.title.for.sort *
+ format.sortify.clip
+ 'sort.key$ := %$
+}
+
+FUNCTION {sortkey<-principal+year+year-tag}
+{ make.principal-field.for.sort
+ delimiter.sub-sortkey *
+ year.label *
+ year.label.tag *
+ format.sortify.clip
+ 'sort.key$ := %$
+}
+
+FUNCTION {presort.&.sortkey<-label+year+principal+title}
+{ presort
+ sortkey<-label+year+principal+title
+}
+FUNCTION {initialize.sorting-gvars}
+{ unidentified 'last.leaditem :=
+ unidentified 'last.label.and.year :=
+ "" 'following.year.label.tag :=
+ #0 'last.year.tag.num :=
+}
+FUNCTION {forward.pass.wrap.dupe.leaditems}
+{ leaditem
+ duplicate$ last.leaditem = %$
+ % we add the brace pair at the end because this forces add.period$ to add a %$
+ % period after it. FIX: if we ever want \SCdup to actually print its
+ % argument, we must get it to print its argument minus any final period.
+ { "\SCduplicate{" swap$ * "{}}" * 'leaditem := %$
+ }
+ { 'last.leaditem :=
+ }
+ if$ %$
+}
+FUNCTION {forward.pass.add.bcds}
+{ label year.label * format.clip
+ duplicate$ last.label.and.year = %$
+ % same as previous entry
+ { pop$ %$
+ last.year.tag.num #1 + 'last.year.tag.num :=
+ last.year.tag.num int.to.chr$ 'year.label.tag := %$
+ }
+ % different from previous entry
+ { "a" chr.to.int$ 'last.year.tag.num := %$
+ "" 'year.label.tag :=
+ 'last.label.and.year :=
+ }
+ if$ %$
+}
+
+FUNCTION {reverse.pass.add.as}
+{ following.year.label.tag "b" =
+ { "a" 'year.label.tag :=
+ }
+ 'skip$ %$
+ if$ %$
+ year.label.tag 'following.year.label.tag :=
+}
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$ %$
+ { preamble$ write$ newline$ %$
+ }
+ if$ %$
+ "\begin{thebibliography}{}" write$ newline$
+}
+FUNCTION {end.bib}
+{ newline$ %$
+ "\end{thebibliography}" write$ newline$
+}
+READ
+
+EXECUTE {init.scalars}
+
+ITERATE {presort.&.sortkey<-label+year+principal+title}
+SORT
+
+EXECUTE {initialize.sorting-gvars}
+
+ITERATE {forward.pass.add.bcds}
+REVERSE {reverse.pass.add.as}
+
+ITERATE{sortkey<-principal+year+year-tag}
+SORT
+
+EXECUTE {initialize.sorting-gvars}
+ITERATE {forward.pass.wrap.dupe.leaditems}
+
+EXECUTE {begin.bib}
+ITERATE {call.type$} %$
+EXECUTE {end.bib}
diff --git a/Master/texmf-dist/doc/latex/frankenstein/achicago.pdf b/Master/texmf-dist/doc/latex/frankenstein/achicago.pdf
new file mode 100644
index 00000000000..9ad8fc89e4b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/achicago.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/frankenstein/achicago.tex b/Master/texmf-dist/doc/latex/frankenstein/achicago.tex
new file mode 100644
index 00000000000..bc4b339b438
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/achicago.tex
@@ -0,0 +1,67 @@
+% achicago.tex -- documentation for the achicago LaTeX package.
+%
+% This program is part of the Frankenstein bundle for LaTeX2e.
+%
+% Copyright (C) 1995-2001 Matt Swift <swift@alum.mit.edu>
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later
+% is part of all distributions of LaTeX version 1999/12/01 or
+% later.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% LaTeX Project Public License for more details.
+%
+\documentclass{ltxdoc}
+\makeatletter
+\def\part {%
+ \clearpage
+ \@afterindentfalse
+ \secdef\@part\@spart
+}
+\def\StripV #1{\E@cdr #1\@nil}
+\makeatother
+\usepackage{attrib,compsci}
+\newbook\manual {Chicago\nocite{chicago:14} Manual of Style}[Chicago Manual]
+\newbook\MLAman {The\nocite{mlaman} MLA Style Manual and Guide to Scholarly Publishing}
+ [The MLA Style Manual]
+\newtheorem{lessoninternal}{Lesson}
+\newenvironment{lesson} {%
+ \let\AttribInit\sffamily
+ \let\PreTrib\textsection
+ \let\PostTrib\ShortEmpty
+ \lessoninternal
+ } {%
+ \endlessoninternal
+ }
+\newcommand\manualref [1] {\textsf{\S #1}}
+\ProcessDTXFile{achicago.sty}
+\newlet\MaybeABib\relax
+\IfCitations {
+ \def\MaybeABib {%
+ \newpage
+ \bibliographystyle{achicago}%
+ \bibliography{frankenstein}%
+ }
+ \SaveDoXVarS
+ \usepackage{achicago}
+ \RestoreDoXVarS
+}
+\CodelineIndex
+\EnableCrossrefs
+\begin{document}
+\date{Version: \StripV\fileversion \qquad Date: \filedate\\
+ \relsize{-2}Documentation revision: \docdate}
+\author{Matt Swift \email{swift@alum.mit.edu}}
+\title{The \textsf{achicago} LaTeX package \\\smaller \fileinfo}
+\maketitle
+\DocInput{achicago.sty}
+\MaybeABib
+\newpage
+\PrintIndex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/frankenstein/attrib.pdf b/Master/texmf-dist/doc/latex/frankenstein/attrib.pdf
new file mode 100755
index 00000000000..4da19d03a2a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/attrib.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/frankenstein/attrib.tex b/Master/texmf-dist/doc/latex/frankenstein/attrib.tex
new file mode 100644
index 00000000000..80300c7b1d7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/attrib.tex
@@ -0,0 +1,67 @@
+% attrib.tex -- documentation for the attrib LaTeX package.
+%
+% This program is part of the Frankenstein bundle for LaTeX2e.
+%
+% Copyright (C) 1995-2001 Matt Swift <swift@alum.mit.edu>
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later
+% is part of all distributions of LaTeX version 1999/12/01 or
+% later.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% LaTeX Project Public License for more details.
+%
+\documentclass{ltxdoc}
+\makeatletter
+\def\part {%
+ \clearpage
+ \@afterindentfalse
+ \secdef\@part\@spart
+}
+\def\StripV #1{\E@cdr #1\@nil}
+\makeatother
+\usepackage{attrib,compsci}
+\newbook\manual {Chicago\nocite{chicago:14} Manual of Style}[Chicago Manual]
+\newbook\MLAman {The\nocite{mlaman} MLA Style Manual and Guide to Scholarly Publishing}
+ [The MLA Style Manual]
+\newtheorem{lessoninternal}{Lesson}
+\newenvironment{lesson} {%
+ \let\AttribInit\sffamily
+ \let\PreTrib\textsection
+ \let\PostTrib\ShortEmpty
+ \lessoninternal
+ } {%
+ \endlessoninternal
+ }
+\newcommand\manualref [1] {\textsf{\S #1}}
+\ProcessDTXFile{attrib.sty}
+\newlet\MaybeABib\relax
+\IfCitations {
+ \def\MaybeABib {%
+ \newpage
+ \bibliographystyle{achicago}%
+ \bibliography{frankenstein}%
+ }
+ \SaveDoXVarS
+ \usepackage{achicago}
+ \RestoreDoXVarS
+}
+\CodelineIndex
+\EnableCrossrefs
+\begin{document}
+\date{Version: \StripV\fileversion \qquad Date: \filedate\\
+ \relsize{-2}Documentation revision: \docdate}
+\author{Matt Swift \email{swift@alum.mit.edu}}
+\title{The \textsf{attrib} LaTeX package \\\smaller \fileinfo}
+\maketitle
+\DocInput{attrib.sty}
+\MaybeABib
+\newpage
+\PrintIndex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/frankenstein/blkcntrl.pdf b/Master/texmf-dist/doc/latex/frankenstein/blkcntrl.pdf
new file mode 100755
index 00000000000..4aff99f658d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/blkcntrl.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/frankenstein/blkcntrl.tex b/Master/texmf-dist/doc/latex/frankenstein/blkcntrl.tex
new file mode 100644
index 00000000000..19e31d3da4d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/blkcntrl.tex
@@ -0,0 +1,67 @@
+% blkcntrl.tex -- documentation for the blkcntrl LaTeX package.
+%
+% This program is part of the Frankenstein bundle for LaTeX2e.
+%
+% Copyright (C) 1995-2001 Matt Swift <swift@alum.mit.edu>
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later
+% is part of all distributions of LaTeX version 1999/12/01 or
+% later.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% LaTeX Project Public License for more details.
+%
+\documentclass{ltxdoc}
+\makeatletter
+\def\part {%
+ \clearpage
+ \@afterindentfalse
+ \secdef\@part\@spart
+}
+\def\StripV #1{\E@cdr #1\@nil}
+\makeatother
+\usepackage{attrib,compsci}
+\newbook\manual {Chicago\nocite{chicago:14} Manual of Style}[Chicago Manual]
+\newbook\MLAman {The\nocite{mlaman} MLA Style Manual and Guide to Scholarly Publishing}
+ [The MLA Style Manual]
+\newtheorem{lessoninternal}{Lesson}
+\newenvironment{lesson} {%
+ \let\AttribInit\sffamily
+ \let\PreTrib\textsection
+ \let\PostTrib\ShortEmpty
+ \lessoninternal
+ } {%
+ \endlessoninternal
+ }
+\newcommand\manualref [1] {\textsf{\S #1}}
+\ProcessDTXFile{blkcntrl.sty}
+\newlet\MaybeABib\relax
+\IfCitations {
+ \def\MaybeABib {%
+ \newpage
+ \bibliographystyle{achicago}%
+ \bibliography{frankenstein}%
+ }
+ \SaveDoXVarS
+ \usepackage{achicago}
+ \RestoreDoXVarS
+}
+\CodelineIndex
+\EnableCrossrefs
+\begin{document}
+\date{Version: \StripV\fileversion \qquad Date: \filedate\\
+ \relsize{-2}Documentation revision: \docdate}
+\author{Matt Swift \email{swift@alum.mit.edu}}
+\title{The \textsf{blkcntrl} LaTeX package \\\smaller \fileinfo}
+\maketitle
+\DocInput{blkcntrl.sty}
+\MaybeABib
+\newpage
+\PrintIndex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/frankenstein/compsci.pdf b/Master/texmf-dist/doc/latex/frankenstein/compsci.pdf
new file mode 100755
index 00000000000..745cae40086
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/compsci.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/frankenstein/compsci.tex b/Master/texmf-dist/doc/latex/frankenstein/compsci.tex
new file mode 100644
index 00000000000..15c25b106f0
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/compsci.tex
@@ -0,0 +1,67 @@
+% compsci.tex -- documentation for the compsci LaTeX package.
+%
+% This program is part of the Frankenstein bundle for LaTeX2e.
+%
+% Copyright (C) 1995-2001 Matt Swift <swift@alum.mit.edu>
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later
+% is part of all distributions of LaTeX version 1999/12/01 or
+% later.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% LaTeX Project Public License for more details.
+%
+\documentclass{ltxdoc}
+\makeatletter
+\def\part {%
+ \clearpage
+ \@afterindentfalse
+ \secdef\@part\@spart
+}
+\def\StripV #1{\E@cdr #1\@nil}
+\makeatother
+\usepackage{attrib,compsci}
+\newbook\manual {Chicago\nocite{chicago:14} Manual of Style}[Chicago Manual]
+\newbook\MLAman {The\nocite{mlaman} MLA Style Manual and Guide to Scholarly Publishing}
+ [The MLA Style Manual]
+\newtheorem{lessoninternal}{Lesson}
+\newenvironment{lesson} {%
+ \let\AttribInit\sffamily
+ \let\PreTrib\textsection
+ \let\PostTrib\ShortEmpty
+ \lessoninternal
+ } {%
+ \endlessoninternal
+ }
+\newcommand\manualref [1] {\textsf{\S #1}}
+\ProcessDTXFile{compsci.sty}
+\newlet\MaybeABib\relax
+\IfCitations {
+ \def\MaybeABib {%
+ \newpage
+ \bibliographystyle{achicago}%
+ \bibliography{frankenstein}%
+ }
+ \SaveDoXVarS
+ \usepackage{achicago}
+ \RestoreDoXVarS
+}
+\CodelineIndex
+\EnableCrossrefs
+\begin{document}
+\date{Version: \StripV\fileversion \qquad Date: \filedate\\
+ \relsize{-2}Documentation revision: \docdate}
+\author{Matt Swift \email{swift@alum.mit.edu}}
+\title{The \textsf{compsci} LaTeX package \\\smaller \fileinfo}
+\maketitle
+\DocInput{compsci.sty}
+\MaybeABib
+\newpage
+\PrintIndex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/frankenstein/dialogue.pdf b/Master/texmf-dist/doc/latex/frankenstein/dialogue.pdf
new file mode 100755
index 00000000000..4a4f86828ae
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/dialogue.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/frankenstein/dialogue.tex b/Master/texmf-dist/doc/latex/frankenstein/dialogue.tex
new file mode 100644
index 00000000000..947cb0ee1ac
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/dialogue.tex
@@ -0,0 +1,67 @@
+% dialogue.tex -- documentation for the dialogue LaTeX package.
+%
+% This program is part of the Frankenstein bundle for LaTeX2e.
+%
+% Copyright (C) 1995-2001 Matt Swift <swift@alum.mit.edu>
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later
+% is part of all distributions of LaTeX version 1999/12/01 or
+% later.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% LaTeX Project Public License for more details.
+%
+\documentclass{ltxdoc}
+\makeatletter
+\def\part {%
+ \clearpage
+ \@afterindentfalse
+ \secdef\@part\@spart
+}
+\def\StripV #1{\E@cdr #1\@nil}
+\makeatother
+\usepackage{attrib,compsci}
+\newbook\manual {Chicago\nocite{chicago:14} Manual of Style}[Chicago Manual]
+\newbook\MLAman {The\nocite{mlaman} MLA Style Manual and Guide to Scholarly Publishing}
+ [The MLA Style Manual]
+\newtheorem{lessoninternal}{Lesson}
+\newenvironment{lesson} {%
+ \let\AttribInit\sffamily
+ \let\PreTrib\textsection
+ \let\PostTrib\ShortEmpty
+ \lessoninternal
+ } {%
+ \endlessoninternal
+ }
+\newcommand\manualref [1] {\textsf{\S #1}}
+\ProcessDTXFile{dialogue.sty}
+\newlet\MaybeABib\relax
+\IfCitations {
+ \def\MaybeABib {%
+ \newpage
+ \bibliographystyle{achicago}%
+ \bibliography{frankenstein}%
+ }
+ \SaveDoXVarS
+ \usepackage{achicago}
+ \RestoreDoXVarS
+}
+\CodelineIndex
+\EnableCrossrefs
+\begin{document}
+\date{Version: \StripV\fileversion \qquad Date: \filedate\\
+ \relsize{-2}Documentation revision: \docdate}
+\author{Matt Swift \email{swift@alum.mit.edu}}
+\title{The \textsf{dialogue} LaTeX package \\\smaller \fileinfo}
+\maketitle
+\DocInput{dialogue.sty}
+\MaybeABib
+\newpage
+\PrintIndex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/frankenstein/lips.pdf b/Master/texmf-dist/doc/latex/frankenstein/lips.pdf
new file mode 100755
index 00000000000..4a8a36ea777
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/lips.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/frankenstein/lips.tex b/Master/texmf-dist/doc/latex/frankenstein/lips.tex
new file mode 100644
index 00000000000..2c60ab165ba
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/lips.tex
@@ -0,0 +1,67 @@
+% lips.tex -- documentation for the lips LaTeX package.
+%
+% This program is part of the Frankenstein bundle for LaTeX2e.
+%
+% Copyright (C) 1995-2001 Matt Swift <swift@alum.mit.edu>
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later
+% is part of all distributions of LaTeX version 1999/12/01 or
+% later.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% LaTeX Project Public License for more details.
+%
+\documentclass{ltxdoc}
+\makeatletter
+\def\part {%
+ \clearpage
+ \@afterindentfalse
+ \secdef\@part\@spart
+}
+\def\StripV #1{\E@cdr #1\@nil}
+\makeatother
+\usepackage{attrib,compsci}
+\newbook\manual {Chicago\nocite{chicago:14} Manual of Style}[Chicago Manual]
+\newbook\MLAman {The\nocite{mlaman} MLA Style Manual and Guide to Scholarly Publishing}
+ [The MLA Style Manual]
+\newtheorem{lessoninternal}{Lesson}
+\newenvironment{lesson} {%
+ \let\AttribInit\sffamily
+ \let\PreTrib\textsection
+ \let\PostTrib\ShortEmpty
+ \lessoninternal
+ } {%
+ \endlessoninternal
+ }
+\newcommand\manualref [1] {\textsf{\S #1}}
+\ProcessDTXFile{lips.sty}
+\newlet\MaybeABib\relax
+\IfCitations {
+ \def\MaybeABib {%
+ \newpage
+ \bibliographystyle{achicago}%
+ \bibliography{frankenstein}%
+ }
+ \SaveDoXVarS
+ \usepackage{achicago}
+ \RestoreDoXVarS
+}
+\CodelineIndex
+\EnableCrossrefs
+\begin{document}
+\date{Version: \StripV\fileversion \qquad Date: \filedate\\
+ \relsize{-2}Documentation revision: \docdate}
+\author{Matt Swift \email{swift@alum.mit.edu}}
+\title{The \textsf{lips} LaTeX package \\\smaller \fileinfo}
+\maketitle
+\DocInput{lips.sty}
+\MaybeABib
+\newpage
+\PrintIndex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/frankenstein/moredefs.pdf b/Master/texmf-dist/doc/latex/frankenstein/moredefs.pdf
new file mode 100755
index 00000000000..5555d69f384
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/moredefs.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/frankenstein/moredefs.tex b/Master/texmf-dist/doc/latex/frankenstein/moredefs.tex
new file mode 100644
index 00000000000..fa2fcdbed74
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/moredefs.tex
@@ -0,0 +1,67 @@
+% moredefs.tex -- documentation for the moredefs LaTeX package.
+%
+% This program is part of the Frankenstein bundle for LaTeX2e.
+%
+% Copyright (C) 1995-2001 Matt Swift <swift@alum.mit.edu>
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later
+% is part of all distributions of LaTeX version 1999/12/01 or
+% later.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% LaTeX Project Public License for more details.
+%
+\documentclass{ltxdoc}
+\makeatletter
+\def\part {%
+ \clearpage
+ \@afterindentfalse
+ \secdef\@part\@spart
+}
+\def\StripV #1{\E@cdr #1\@nil}
+\makeatother
+\usepackage{attrib,compsci}
+\newbook\manual {Chicago\nocite{chicago:14} Manual of Style}[Chicago Manual]
+\newbook\MLAman {The\nocite{mlaman} MLA Style Manual and Guide to Scholarly Publishing}
+ [The MLA Style Manual]
+\newtheorem{lessoninternal}{Lesson}
+\newenvironment{lesson} {%
+ \let\AttribInit\sffamily
+ \let\PreTrib\textsection
+ \let\PostTrib\ShortEmpty
+ \lessoninternal
+ } {%
+ \endlessoninternal
+ }
+\newcommand\manualref [1] {\textsf{\S #1}}
+\ProcessDTXFile{moredefs.sty}
+\newlet\MaybeABib\relax
+\IfCitations {
+ \def\MaybeABib {%
+ \newpage
+ \bibliographystyle{achicago}%
+ \bibliography{frankenstein}%
+ }
+ \SaveDoXVarS
+ \usepackage{achicago}
+ \RestoreDoXVarS
+}
+\CodelineIndex
+\EnableCrossrefs
+\begin{document}
+\date{Version: \StripV\fileversion \qquad Date: \filedate\\
+ \relsize{-2}Documentation revision: \docdate}
+\author{Matt Swift \email{swift@alum.mit.edu}}
+\title{The \textsf{moredefs} LaTeX package \\\smaller \fileinfo}
+\maketitle
+\DocInput{moredefs.sty}
+\MaybeABib
+\newpage
+\PrintIndex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/frankenstein/newclude.pdf b/Master/texmf-dist/doc/latex/frankenstein/newclude.pdf
new file mode 100755
index 00000000000..5d32223e97d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/newclude.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/frankenstein/newclude.tex b/Master/texmf-dist/doc/latex/frankenstein/newclude.tex
new file mode 100644
index 00000000000..aeaab9f1c70
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/newclude.tex
@@ -0,0 +1,67 @@
+% newclude.tex -- documentation for the newclude LaTeX package.
+%
+% This program is part of the Frankenstein bundle for LaTeX2e.
+%
+% Copyright (C) 1995-2001 Matt Swift <swift@alum.mit.edu>
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later
+% is part of all distributions of LaTeX version 1999/12/01 or
+% later.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% LaTeX Project Public License for more details.
+%
+\documentclass{ltxdoc}
+\makeatletter
+\def\part {%
+ \clearpage
+ \@afterindentfalse
+ \secdef\@part\@spart
+}
+\def\StripV #1{\E@cdr #1\@nil}
+\makeatother
+\usepackage{attrib,compsci}
+\newbook\manual {Chicago\nocite{chicago:14} Manual of Style}[Chicago Manual]
+\newbook\MLAman {The\nocite{mlaman} MLA Style Manual and Guide to Scholarly Publishing}
+ [The MLA Style Manual]
+\newtheorem{lessoninternal}{Lesson}
+\newenvironment{lesson} {%
+ \let\AttribInit\sffamily
+ \let\PreTrib\textsection
+ \let\PostTrib\ShortEmpty
+ \lessoninternal
+ } {%
+ \endlessoninternal
+ }
+\newcommand\manualref [1] {\textsf{\S #1}}
+\ProcessDTXFile{newclude.sty}
+\newlet\MaybeABib\relax
+\IfCitations {
+ \def\MaybeABib {%
+ \newpage
+ \bibliographystyle{achicago}%
+ \bibliography{frankenstein}%
+ }
+ \SaveDoXVarS
+ \usepackage{achicago}
+ \RestoreDoXVarS
+}
+\CodelineIndex
+\EnableCrossrefs
+\begin{document}
+\date{Version: \StripV\fileversion \qquad Date: \filedate\\
+ \relsize{-2}Documentation revision: \docdate}
+\author{Matt Swift \email{swift@alum.mit.edu}}
+\title{The \textsf{newclude} LaTeX package \\\smaller \fileinfo}
+\maketitle
+\DocInput{newclude.sty}
+\MaybeABib
+\newpage
+\PrintIndex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/frankenstein/slemph.pdf b/Master/texmf-dist/doc/latex/frankenstein/slemph.pdf
new file mode 100755
index 00000000000..49955c90551
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/slemph.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/frankenstein/slemph.tex b/Master/texmf-dist/doc/latex/frankenstein/slemph.tex
new file mode 100644
index 00000000000..8a4230cff81
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/slemph.tex
@@ -0,0 +1,67 @@
+% slemph.tex -- documentation for the slemph LaTeX package.
+%
+% This program is part of the Frankenstein bundle for LaTeX2e.
+%
+% Copyright (C) 1995-2001 Matt Swift <swift@alum.mit.edu>
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later
+% is part of all distributions of LaTeX version 1999/12/01 or
+% later.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% LaTeX Project Public License for more details.
+%
+\documentclass{ltxdoc}
+\makeatletter
+\def\part {%
+ \clearpage
+ \@afterindentfalse
+ \secdef\@part\@spart
+}
+\def\StripV #1{\E@cdr #1\@nil}
+\makeatother
+\usepackage{attrib,compsci}
+\newbook\manual {Chicago\nocite{chicago:14} Manual of Style}[Chicago Manual]
+\newbook\MLAman {The\nocite{mlaman} MLA Style Manual and Guide to Scholarly Publishing}
+ [The MLA Style Manual]
+\newtheorem{lessoninternal}{Lesson}
+\newenvironment{lesson} {%
+ \let\AttribInit\sffamily
+ \let\PreTrib\textsection
+ \let\PostTrib\ShortEmpty
+ \lessoninternal
+ } {%
+ \endlessoninternal
+ }
+\newcommand\manualref [1] {\textsf{\S #1}}
+\ProcessDTXFile{slemph.sty}
+\newlet\MaybeABib\relax
+\IfCitations {
+ \def\MaybeABib {%
+ \newpage
+ \bibliographystyle{achicago}%
+ \bibliography{frankenstein}%
+ }
+ \SaveDoXVarS
+ \usepackage{achicago}
+ \RestoreDoXVarS
+}
+\CodelineIndex
+\EnableCrossrefs
+\begin{document}
+\date{Version: \StripV\fileversion \qquad Date: \filedate\\
+ \relsize{-2}Documentation revision: \docdate}
+\author{Matt Swift \email{swift@alum.mit.edu}}
+\title{The \textsf{slemph} LaTeX package \\\smaller \fileinfo}
+\maketitle
+\DocInput{slemph.sty}
+\MaybeABib
+\newpage
+\PrintIndex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/frankenstein/titles.pdf b/Master/texmf-dist/doc/latex/frankenstein/titles.pdf
new file mode 100755
index 00000000000..6dbd5359022
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/titles.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/frankenstein/titles.tex b/Master/texmf-dist/doc/latex/frankenstein/titles.tex
new file mode 100644
index 00000000000..2039ca27dc0
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/titles.tex
@@ -0,0 +1,67 @@
+% titles.tex -- documentation for the titles LaTeX package.
+%
+% This program is part of the Frankenstein bundle for LaTeX2e.
+%
+% Copyright (C) 1995-2001 Matt Swift <swift@alum.mit.edu>
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later
+% is part of all distributions of LaTeX version 1999/12/01 or
+% later.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% LaTeX Project Public License for more details.
+%
+\documentclass{ltxdoc}
+\makeatletter
+\def\part {%
+ \clearpage
+ \@afterindentfalse
+ \secdef\@part\@spart
+}
+\def\StripV #1{\E@cdr #1\@nil}
+\makeatother
+\usepackage{attrib,compsci}
+\newbook\manual {Chicago\nocite{chicago:14} Manual of Style}[Chicago Manual]
+\newbook\MLAman {The\nocite{mlaman} MLA Style Manual and Guide to Scholarly Publishing}
+ [The MLA Style Manual]
+\newtheorem{lessoninternal}{Lesson}
+\newenvironment{lesson} {%
+ \let\AttribInit\sffamily
+ \let\PreTrib\textsection
+ \let\PostTrib\ShortEmpty
+ \lessoninternal
+ } {%
+ \endlessoninternal
+ }
+\newcommand\manualref [1] {\textsf{\S #1}}
+\ProcessDTXFile{titles.sty}
+\newlet\MaybeABib\relax
+\IfCitations {
+ \def\MaybeABib {%
+ \newpage
+ \bibliographystyle{achicago}%
+ \bibliography{frankenstein}%
+ }
+ \SaveDoXVarS
+ \usepackage{achicago}
+ \RestoreDoXVarS
+}
+\CodelineIndex
+\EnableCrossrefs
+\begin{document}
+\date{Version: \StripV\fileversion \qquad Date: \filedate\\
+ \relsize{-2}Documentation revision: \docdate}
+\author{Matt Swift \email{swift@alum.mit.edu}}
+\title{The \textsf{titles} LaTeX package \\\smaller \fileinfo}
+\maketitle
+\DocInput{titles.sty}
+\MaybeABib
+\newpage
+\PrintIndex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/frankenstein/unsupported/README-unsupported b/Master/texmf-dist/doc/latex/frankenstein/unsupported/README-unsupported
new file mode 100644
index 00000000000..aadf532c276
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/README-unsupported
@@ -0,0 +1,150 @@
+
+ SOME UNSUPPORTED PARTS OF:
+
+ FRANKENSTEIN
+
+ A Collection of Macros for LaTeX and BibTeX
+
+------------------------------------------------------------------------
+ CONTENTS
+
+ NOTES
+ general
+ non-support
+ PACKAGE DESCRIPTIONS
+ includex
+ bits
+ drama
+ DISTRIBUTION CONDITIONS
+ TERMINOLOGY
+ AUTHOR
+
+------------------------------------------------------------------------
+ NOTES
+
+ general
+
+ Three LaTeX packages are part of the Frankenstein bundle but are
+ unsupported. They are distributed on CTAN in a subdirectory of the
+ directory containing the supported Frankenstein filesets (i.e.,
+ CTAN:/macros/latex/contrib/supported/frankenstein/unsupported/). In
+ a TeX installation, however, supported and unsupported macros,
+ sources, and documentation should be placed together, (e.g., in
+ TDS:/texmf/{doc,source,tex}/latex/frankenstein).
+
+ If you wish to use the unsupported packages, download the entire
+ "frankenstein" directory from CTAN (which will include the
+ "unsupported" subdirectory).
+
+ To use the Makefile on the unsupported filesets, you must do two
+ things.
+
+ 1. Copy all the files in the "unsupported" subdirectory into its
+ parent directory ("frankenstein").
+
+ 2. Set the variable USE_UNSUP to something nonempty either by:
+ a. uncommenting the line in the file Makefile, or
+ b. setting it in your environment, or
+ c. set the variable on the Make command line, e.g., "make
+ USE_UNSUP=t all".
+
+ Descriptions of the four unsupported packages are below.
+ Further important information about the Frankenstein bundle may be
+ found in the file README.
+
+ Installation instructions are in the file INSTALL.
+ The bits and drama packages depend on the non-Frankenstein package
+ "relsize.sty". Please see INSTALL for further information.
+
+ Both the README and INSTALL files are located in the parent
+ directory of this file (on CTAN) or in the same directory as this
+ file (in a TeX installation).
+
+
+ non-support
+
+ The package filesets in this directory are UNSUPPORTED. They are
+ furthermore possibly INCOMPLETE and NOT fully DOCUMENTED.
+
+ I hope one day to complete these packages, document them, and
+ support them. I will gladly listen to feedback on them, but I do
+ not take the same level of responsibility for them as for the
+ packages I call "supported". In the meantime, they are made public
+ under the conditions stated below so that I can refer interested
+ individuals to them.
+
+ These packages are indeed valuable in certain ways, such as
+ sometimes working as advertised, but of course I offer no
+ guarantees.
+
+
+------------------------------------------------------------------------
+ PACKAGE DESCRIPTIONS
+
+------------------------------------------------------------------------
+ bits
+ (Frankenstein's guts)
+
+ Bits provides a programmer's interface for a new idea called a
+ "bit", which is like an environment but has a title, author, and
+ other attributes usually only associated with the "document"
+ environment.
+
+------------------------------------------------------------------------
+ drama
+ production-format stage script
+ (Frankenstein's heart)
+
+ Drama defines macros for typesetting a basic production-style stage
+ script.
+
+------------------------------------------------------------------------
+ includex
+ extra ways to include files
+
+ Includex allows you to include just the contents of one source file
+ into another, ignoring the text outside the \begin{document}
+ ... \end{document} in the included file. See also the supported
+ "newclude" package, which is intended to supersede includex, though
+ until I ensure that it is a satisfactory replacement I will keep
+ includex around.
+
+------------------------------------------------------------------------
+ DISTRIBUTION CONDITIONS
+
+ All Frankenstein files are copyrighted by Matthew Swift and released
+ under the conditions of the GNU General Public License contained in
+ the file COPYING, which should be in the parent directory or the
+ same directory as this file.
+
+ The unsupported filesets in the same directory as this file ought to
+ be distributed WITH the supported ones. They are useless without
+ the supported ones.
+
+ I am willing to specially license this code; please simply contact
+ me with your proposal.
+
+------------------------------------------------------------------------
+ TERMINOLOGY
+
+ fileset: A group of files related to a single LaTeX package, LaTeX
+ class, or BibTeX bibliography style and any accompanying
+ option or configuration files. The files in a package or
+ class fileset have the same root name but different
+ filename extensions. In bibstyle filesets, some root names
+ differ by a "-bst" suffix.
+
+ CTAN: Comprehensive TeX Archive Network: a system of TeX-related
+ file archives available via FTP (see
+ ftp://ctan.tug.org/tex-archive/CTAN.sites) and often
+ reproduced on CDROMs.
+
+ TDS: TeX Directory Structure: a recommended directory structure
+ for TeX installations. See
+ ftp://ctan.tug.org/tex-archive/tds.
+
+------------------------------------------------------------------------
+ AUTHOR
+
+ Matt Swift
+ <swift@alum.mit.edu>
diff --git a/Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.cfg b/Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.cfg
new file mode 100644
index 00000000000..c25a476ff1a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.cfg
@@ -0,0 +1,20 @@
+% \iffalse
+%%
+% Even if you don't want any code in this file, leave the empty file, or else
+% loading the \package{bits} package will consume extra time as it searches
+% for this file.
+%%
+% \fi
+% \begin{macrocode}
+\def\fileinfo{Bits package configuration}
+\def\fileversion{v1}
+\def\filedate{1996/01/24}
+\def\docdate{1996/01/24}
+% \end{macrocode}
+%
+% \AddToCheckSum{10}
+%
+% \begin{macrocode}
+\ProvidesFile{bits.cfg}
+\InputIfFileExists{monster.cfg}{}{}
+% \end{macrocode}
diff --git a/Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.ins b/Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.ins
new file mode 100644
index 00000000000..f61f9054c55
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.ins
@@ -0,0 +1,64 @@
+% bits.ins -- docstrip driver for the bits LaTeX package
+%
+% Copyright (C) 1995-2001 Matthew Swift <swift@alum.mit.edu>
+% Please see the copyright notice in \preamble below.
+
+% This file, when run through TeX or LaTeX, will generate fast loadable files
+% from the .sty, .cls, or .bst files mentioned below.
+
+\input docstrip
+\keepsilent
+
+\preamble
+
+ This program is part of the Frankenstein bundle for LaTeX.
+
+ Copyright (C) 1995-2001 Matthew Swift <swift@alum.mit.edu>
+
+ This file may have one of TWO names, either
+ bits.sty or bits.stq. This
+ LaTeX package will work ONLY if it is called bits.sty
+ and placed in a proper directory. This file should have been
+ distributed to you with a DIFFERENT file (also) called
+ bits.sty which functions identically to this one
+ but contains documentation in comments. This file works faster,
+ but the other should be kept because it contains the documentation
+ for this LaTeX package. Files called README and INSTALL should have
+ also been distributed to you with this file; see them for more
+ information.
+
+ This program is free software; you may redistribute it and/or
+ modify it under the conditions of the LaTeX Project Public
+ License, either version 1.2 or (at your option) any later version.
+ The latest version of this license is in
+ http://www.latex-project.org/lppl.txt, and version 1.2 or later is
+ part of all distributions of LaTeX version 1999/12/01 or later.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ LaTeX Project Public License for more details.
+
+\endpreamble
+
+\askforoverwritefalse
+
+% This will get changed to either nothing or \nopostamble.
+
+
+\generate{\file{bits.stq}{\from{bits.sty}{}}}
+
+\Msg{}
+\Msg{***********************************************************************}
+\Msg{*}
+\Msg{* The file bits.stq is a faster replacement for the file}
+\Msg{* bits.sty.}
+\Msg{*}
+\Msg{* bits.stq is stripped of comments (documentation) and must be}
+\Msg{* renamed bits.sty and placed where LaTeX can find it}
+\Msg{* before it may be used.}
+\Msg{*}
+\Msg{***********************************************************************}
+\Msg{}
+
+\endbatchfile
diff --git a/Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.pdf b/Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.pdf
new file mode 100644
index 00000000000..bd635a1d872
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.sty b/Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.sty
new file mode 100644
index 00000000000..630fa00409c
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.sty
@@ -0,0 +1,1070 @@
+%^^A* legal notices
+% \iffalse
+%
+% This program is part of the Frankenstein bundle for LaTeX.
+%
+% Copyright 1995-2001 Matt Swift <swift@alum.mit.edu>.
+%
+% This file contains both the code and documentation for the
+% bits LaTeX package. It will work ONLY if it is placed in a
+% proper directory. Files called README, INSTALL, bits.tex
+% and bits.ins should have also been distributed to you
+% with this file. See them for more information on how to typeset
+% the documentation with LaTeX and how to generate a version of this
+% file that will work faster than this one.
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later is
+% part of all distributions of LaTeX version 1999/12/01 or later.
+%
+% This program is distributed in the hope that it will be useful,
+% but without any warranty; without even the implied warranty of
+% merchantability or fitness for a particular purpose. See the
+% LaTeX Project Public License for more details.
+%
+% \fi
+%
+%^^A* checks
+%
+%^^A NOTE: The character table, with two %'s, will get written to all files.
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \CheckSum{602}
+%
+% \newcommand\scheme [2] {\ensuremath{\frac{#1}{#2}}}
+%
+%^^A** abstract
+% \begin{abstract}
+% Bits provides a programmer's interface for a new idea called a
+% \term{bit}, which is like an environment but has a title, author, and
+% other attributes usually only associated with the \env{document}
+% environment.
+%
+% This package is useful but may have problems and is unsupported.
+% \end{abstract}
+% \tableofcontents
+%
+% \part{Discussion}
+%
+% This documentation is spotty, but should be accurate. Please feel free to
+% write me if you can't figure something out.
+%
+% \section{Basic concepts and terminology}
+% \subsection{Users' interface}
+%
+% A \term{bit} is the smallest part of a document treated as an independent
+% unit. Each \term{bit} has an explicit type called a \term{bitstyle}.
+% (Examples: generic, story, poem, recipe, letter.) A bit's bitstyle
+% determines the markup that is legal within the bit. (Additional declarations
+% can be made on a per-bit basis, also; see below.) A bit's formatting is
+% determined by both its bitstyle and the copystyle (see below) of the
+% document. New bitstyles can be added.
+%
+% A \term{copystyle} is one of an explicit list of ways to present a collection
+% of bits together in a single document. It might well be called a
+% ``documentstyle'' and be implemented as a \LaTeX{} documentclass, but if they
+% are kept separate, copystyles and documentclasses can coexist with each
+% other, and this leads to a greater flexibility when dealing with existing
+% documents. The relationship between copystyles and documentclasses is
+% discussed further below. New copystyles can be added.
+%
+% \subsection{Programmers' interface}
+%
+% The formatting of a bit is considered to involve a fixed number of
+% \term{tasks}. Examples of tasks performed near the beginning of formatting a
+% bit are inserting some space after the preceding bit, and formatting the
+% title of the current bit. Each task must be assigned a \term{procedure} that
+% accomplishes that task. (Notice that the null procedure might be a suitable
+% procedure for some tasks in some situations.) We call a mapping of some
+% tasks to suitable procedures a \term{profile}. We call a profile that maps
+% the \emph{complete} set of tasks a \term{scheme}. You need a scheme to
+% format a bit, and the scheme to use for a given bit is determined by its
+% bitstyle and copystyle.
+%
+% Now we are in a position to try to visualize the variable space established
+% by the \term{bits} package. It's not simple, and if you think of a better
+% way, please let me know.
+%
+% As just explained, to format a bit, you need a scheme, which is a series of
+% procedures suitable for a series of certain tasks. To be concrete, let's
+% assume there are 4 tasks. Identify each task with a general color. In our
+% example, let's use red, blue, green, and yellow. Think of a scheme as a
+% stack of colored blocks, each representing a procedure. The top block,
+% corresponding to the first task, is red, the second block is blue, the third
+% green, and the bottom block, corresponding to the final task, is yellow.
+%
+% Suppose I create a new scheme, the same as the original except for a slight
+% change in the first task. This would be represented by changing the color of
+% the red, or top, block to a different shade of red. The precise color of a
+% block represents the specific procedure. A general color is associated with
+% a task because it is expected that no procedure suitable for one task is
+% going to be suitable for another task. The redness of a block represents its
+% suitability for the the first task.
+%
+% (If we wanted to be exact, we would observe that some procedures, such as the
+% null procedure, might be suitable for more than one task. OK, let such
+% procedures be a shade of grey, with the null task, let us say, being white.
+% Then the colored block at each task's position will have either the
+% associated color of the task or a shade of grey.)
+%
+% I have drawn in your mind the picture of two stacks of 4 colored blocks,
+% differing only in the shade of the top (red) block. Let's give them the
+% names Jack and Jill. Let Jack and Jill represent two bitstyles. You can
+% imagine as many bitstyles as you like---Jack, Jill, Hank, Wendy, and
+% Beauregard; all are stacks of four colored blocks arranged next to each other
+% in a line, a red block on top, a blue block, a green block, and a yellow
+% block. Some of the stacks might even have identical blocks. This would mean
+% that two bitstyles have the same scheme. You refer to bitstyles by their
+% name, so in the future, you could change one bitstyle and make it different
+% from the other. In fact, when you create a new bitstyle, it is initially
+% simply a copy of an existing bitstyle. Then you can modify the new one if
+% you want to.
+%
+% bitclass? bittype? bitstyle best describes a scheme. bitscheme?
+%
+% You've almost got the whole picture now. We need to consider copystyles.
+% Suppose Jack, Jill, Hank, Wendy, and little Beauregard are all siblings.
+% They have the same last name, Grimm. Grimm is the name of a copystyle.
+% Across town, or in a parallel universe, there is another set of siblings
+% Jack, Jill, etc.\ with a different last name, Beedle. They, too, are
+% represented by a line of stacks of colored blocks. Line up the Beedle
+% siblings behind the Grimm siblings, and you now have a pile of colored blocks
+% 4 high (4 tasks), 5 wide (the 5 bitstyles Jack, Jill, etc.), and 2 deep (the
+% 2 copystyles Grimm and Beedle).
+%
+% That's it. Given a bitstyle (e.g., Hank) and a copystyle (e.g., Beedle), you
+% have a particular scheme for formatting a bit.
+%
+% As you may notice, there is so far no justification for the metaphor of
+% family. Nothing I've said yet about tasks and procedures corresponds to the
+% metaphor's suggestion that Hank Beedle is probably more similar to Wendy
+% Beedle than he is to Hank Grimm; or that when putting together the Beedles in
+% a family photograph, there is a certain pleasing aesthetic unity that would
+% be lacking if any of those odd-looking Grimms were to stray into the picture.
+% In fact, technically, each scheme can be completely different from every
+% other scheme, Hank Beedle being as different from Wendy Beedle as he is from
+% Hank Grimm.
+%
+% These metaphors are justified when you consider the way in which new
+% copystyles and bistyles are added, and the expected purposes for bitstyles
+% and copystyles.
+%
+% OR: family of Poems, family of recipes. First name is the copystyle. Then a
+% document would consist of Hank Poem, Hank Recipe, etc. = Standard Poem,
+% Standard Recipe; Fancy Poem, Fancy Recipe.
+%
+% Or, each family has one Poem, one Recipe, etc. So a document puts together
+% members of a family, Poem, Recipe, etc.
+%
+% \section{Usage}
+%
+% Bits look like \LaTeX{} environments that take two arguments. (Surprise
+% surprise that's exactly what they are.) Here's an example of a bit with
+% hypothetical bitstyle ``poem'':
+%
+% \begin{codeexample}
+% \begin{poem}{Butterflies}{\subtitle{An Address to My Stomach}}
+% O jittery one, quavering tub, \\
+% Rumble not your complaints so violently! \\
+% Remember your jollitude just last Sunday, \\
+% The pound of bovine ambrosia \\
+% I filled you to the gills with \\
+% To silence you, on this, my wedding day.
+% \end{poem}
+% \end{codeexample}
+%
+% \section{Extension and customization}
+% \subsection{Customizing an instance of a bit}
+%
+% Fat little Hank Beedle might come with a note tied around his neck on a piece
+% of yarn, with special instructions on his care and feeding from his mother.
+% ``Peanuts will give him hives,'' it might say. And ``A quart of sour cream
+% is always welcome.''
+%
+% \subsection{Adding bitstyles, copystyles, and tasks}
+%
+% When you add a new bitstyle $B'$, you create a new scheme for each of the
+% existing copystyles. You name an existing bitstyle $B$ and zero or more
+% profiles. For each existing copystyle $C$, the profiles will be composed
+% with the \scheme{B}{C} scheme to obtain the new scheme \scheme{B'}{C}.
+% (Notice that if any of the profiles you name are schemes, the choice of $B$
+% is irrelevant, and that if you name no profiles, $B' = B$.)
+%
+% The procedure is identical when you add a new copystyle. Just swap
+% references to copystyles and bibstyles in the last paragraph.
+%
+% You can add to list of tasks. When you do this, you must assign a default
+% procedure for it (part of the \cat{Z} scheme, the universal default). All
+% existing bitstyles and copystyles will inherit the same procedure for this
+% task. This makes sense because they've presumably all done the task the same
+% way before, if they've done it at all. You can promulgate changes with
+% \cs\Promulgate etc.
+%
+% \section{Notes}
+%
+% FIX; bit type determines its markup; bitstyle is a mapping of tasks to
+% procedures.
+%
+% \StopEventually{}
+%
+% \part{Implementation}
+%
+% \section{Version control}
+%
+% \begin{macro}{\fileinfo}
+% \begin{macro}{\DoXUsepackagE}
+% \begin{macro}{\HaveECitationS}
+% \begin{macro}{\fileversion}
+% \begin{macro}{\filedate}
+% \begin{macro}{\docdate}
+% \begin{macro}{\PPOptArg}
+% These definitions must be the first ones in the file.
+% \begin{macrocode}
+\def\fileinfo{basic bits (Frankenstein's guts)}
+\def\DoXPackageS {}
+\def\fileversion{v1.2}
+\def\filedate{2001/08/31}
+\def\docdate{2001/08/31}
+\edef\PPOptArg {%
+ \filedate\space \fileversion\space \fileinfo
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% If we're loading this file from a \cs\ProcessDTXFile command (see the
+% \package{compsci} package), then \cs\JusTLoaDInformatioN will be defined;
+% othewise we assume it is not (that's why the FunkY NamE).
+%
+% If we're loading from \cs\ProcessDTXFile, we want to load the packages listed
+% in \cs\DoXPackageS (needed to typeset the documentation for this file) and
+% then bail out. Otherwise, we're using this file in a normal way as a
+% package, so do nothing. \cs\DoXPackageS, if there are any, are declared in
+% the \ext{dtx} file, and, if you're reading the typeset documentation of this
+% package, would appear just above. (It's OK to call \cs\usepackage with an
+% empty argument or \cs\relax, by the way.)
+% \begin{macrocode}
+\makeatletter% A special comment to help create bst files. Don't change!
+\@ifundefined{JusTLoaDInformatioN} {%
+ }{% ELSE (we know the compsci package is already loaded, too)
+ \UndefineCS\JusTLoaDInformatioN
+ \SaveDoXVarS
+ \eExpand\csname DoXPackageS\endcsname\In {%use \csname in case it's undefined
+ \usepackage{#1}%
+ }%
+ \RestoreDoXVarS
+ \makeatother
+ \endinput
+}% A special comment to help create bst files. Don't change!
+% \end{macrocode}
+%
+% Now we check for \LaTeX2e and declare the LaTeX package.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{bits}[\PPOptArg]
+% \end{macrocode}^^A special comment to help create bst files. Don't change!
+%
+% ^^A NOTE: We have to compensate for the above backslashes, which are not
+% ^^A actually in the .dtx file the author works on, by adding to the
+% ^^A CheckSum.
+%%
+% \AddToCheckSum{17}^^A `dtx-update-checksum' automatically handles this.
+% \AddToCheckSum{7}^^A The half a macrocode env. at the top is missed, however...
+% \AddToCheckSum{10}^^A ... and so are the 5 \defs from the .dtx file
+% ^^A that precede it.
+% \IfCitations {%
+% \AddToCheckSum{2}^^A When \initelyHavECitationS is defined in
+% } ^^A the .dtx file, we need 2 more in the CheckSum.
+%
+%
+% \section{Preliminaries}
+%
+% \subsection{Requirements}
+%
+% \begin{macrocode}
+\RequirePackage{blkcntrl,letterhead,moredefs,relsize}
+% \end{macrocode}
+%
+% \subsection{Option processing}
+%
+% \begin{macrocode}
+\DeclareOption{poetica} {%
+ \RequirePackage{poetica}
+ \newcommand\FullTitlePoetica {%
+ \begin{Poetica}
+ \fontshape{t}\selectfont
+ \BitTitle\\%
+ \ifx\BitSubtitle\ShortEmpty \else
+ \BitSubtitle\\%
+ \fi
+ \end{Poetica}
+ }
+ \AtBeginDocument {%
+ \let\FullTitle\FullTitlePoetica
+ }
+}
+% \end{macrocode}
+% FIX: hmm, I think I always want user options so that I can have two different
+% packages require a package, and they don't have to match up on their options.
+% What about options that can only be used in preamble, that would be the right
+% thing for many cases I think. Aak, \cname{ends} can't be defined without
+% special handling? Hmm, seems like it can.
+% \begin{macrocode}
+\DeclareBooleanUserOptions{ends}{noends}
+\DeclareBooleanUserOptions{signed}{anonymous}
+
+\DeclareBooleanOptions{titlepage}{notitlepage}
+
+\ExecuteOptions{ends,notitlepage,signed}
+\ProcessOptions
+% \end{macrocode}
+%
+% \section{Making new copy and bit styles}
+%
+% \subsection{General stuff}
+%
+% \begin{macro}{\bt@a}
+% \begin{macro}{\bt@b}
+% \begin{macro}{\bt@c}
+% \begin{macro}{\bt@d}
+% \begin{macro}{\bt@e}
+% \mbox{}
+% \begin{macrocode}
+\ReserveCS\bt@a
+\ReserveCS\bt@b
+\ReserveCS\bt@c
+\ReserveCS\bt@d
+\ReserveCS\bt@e
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\bt@tasks}
+% \begin{macro}{\bt@bitstyle@list}
+% \begin{macro}{\bt@copystyle@list}
+% Comma-separated lists of valid bitstyles, copystyles, and tasks. We start
+% them off non-null to bootstrap the system of adding new ones, which adds
+% them preceded by a comma.
+% \begin{macrocode}
+\newcommand\bt@tasks {%
+ environment,end@bit,begin@bit,interbits,firstbit%
+ ,settitle,setfirsttitle%
+}
+\newcommand\bt@bitstyle@list {%
+ generic%
+}
+\newcommand\bt@copystyle@list {%
+ standard%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\if@bt@trymoreschemes@}
+% \begin{macro}{\@bt@trymoreschemes@true}
+% \begin{macro}{\@bt@trymoreschemes@false}
+% \begin{macro}{\bt@list@car}
+% \begin{macro}{\bt@list@cdr}
+% \cname{bt@list@car} and \cname{bt@list@cdr} expand to the car and cdr of a
+% comma-separated list, respectively.
+% \begin{macrocode}
+\provideboolean{@bt@trymoreschemes@}
+
+\NewName{bt@list@car}{#1,#2\@nil} {%
+ #1%
+}
+\NewName{bt@list@cdr}{#1,#2\@nil} {%
+ #2%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\NewCopystyle}
+% \begin{macro}{\NewBitstyle}
+% \begin{macro}{\bt@assign@task}
+% To define a new style, you specify a base style and a list of profiles.
+% Each of these can be empty. If no base style is specified, the root style
+% is used (i.e., standard copystyle or generic bitstyle). See discussion
+% above.
+% \begin{macrocode}
+\newcommand\NewCopystyle [2][Z] {% args: [profile-list] new-copystyle
+ \addto@macro\bt@copystyle@list{,#2}%
+ \@for\bt@a:=\bt@bitstyle@list \do {%
+ \@for\bt@b:=\bt@tasks \do {%
+ \eExpand\bt@b\In {%
+ \expandafter\bt@assign@task
+ \expandafter{\bt@a}{#2}{##1}{#1}%
+ }%
+ }%
+ }%
+}
+\newcommand\NewBitstyle [2][Z] {% args: [scheme-list] new-bitstyle
+ \addto@macro\bt@bitstyle@list{,#2}%
+ \@for\bt@a:=\bt@copystyle@list \do {%
+ \@for\bt@b:=\bt@tasks \do {%
+ \eExpand\bt@a\In {%
+ \eExpand\bt@b\In {%
+% \eExpandNest\bt@b\In {% FIX?
+ \bt@assign@task{#2}{##1}{####1}{#1}%
+ }%
+ }%
+ }%
+ }%
+}
+\newcommand\bt@assign@task [4] {% args: bitstyle copystyle
+ % task scheme-list
+ \@bt@trymoreschemes@true
+ \edef\bt@d{#4}% scheme-list that diminishes; edef not necessary
+ \@whilesw\if@bt@trymoreschemes@\fi {%
+% \end{macrocode}
+% There's at least one element to start; and the last scheme (\cat{Z}) is always
+% defined.
+% \begin{macrocode}
+ \edef\bt@c{%
+ \bt@list@car\bt@d,\@nil
+ }
+ \@ifundefined{bt@make@#3@\bt@c} {%
+ \edef\bt@d{\bt@list@cdr\bt@d,\@nil}%
+ }{% ELSE
+ \@nameuse{bt@make@#3@\bt@c}{#1}{#2}%
+ \@bt@trymoreschemes@false
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\PromulgateTaskAcrossCopystyles}
+% \begin{macro}{\PromulgateTaskAcrossBitstyles}
+% \mbox{}
+% \begin{macrocode}
+\newcommand\PromulgateTaskAcrossCopystyles [3] {% args: task scheme bitstyle
+ \@for\bt@a:=\bt@copystyle@list \do {%
+ \@nameuse{bt@make@#1@#2}{#3}{\bt@a}%
+ }%
+}
+\newcommand\PromulgateTaskAcrossBitstyles [3] {% args: task scheme copystyle
+ \@for\bt@a:=\bt@bitstyle@list \do {%
+ \@nameuse{bt@make@#1@#2}{\bt@a}{#3}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\bt@begin@bit@common}
+% \begin{macro}{\BitStyle}
+% \begin{macro}{\PreBitAll}
+% \cname{bt@begin@bit@common} should be called early in the sequence of
+% beginning a bit.
+% \begin{macrocode}
+\providesavebox\sc@box@a
+\newcommand\bt@begin@bit@common [2] {%
+ \title{#1}%
+% \end{macrocode}
+% We want to clear all optional attributes here, such as subtitle. FIX: should
+% be a list of attributes and perhaps even abstract clearing functions on them, etc.
+% \begin{macrocode}
+ \subtitle{}%
+% \end{macrocode}
+% Execute stuff: FIXME: nice hooks can be set here to execute things later
+% We introduce the \par so that extra spaces in the argument are not going to
+% mean anything. It would be complicated but possible by means perhaps of
+% \cs\nullfont to avoid starting a paragraph here. Arg, the kernel is so
+% opaque on how it handles ignoring spaces and what it's doing with everypar.
+% \begin{macrocode}
+ \par #2%
+ \refstepcounter{bit}%
+ \ifnum\value{bit} = \@ne
+ \@nameuse{bt@firstbit@\CopyStyle}%
+ \else
+ \@nameuse{bt@interbits@\CopyStyle}%
+ \fi
+}
+\ReserveCS\BitStyle
+\ReserveCS\PreBitAll
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Schemes}
+%
+% \subsubsection{The \cat{Z} scheme}
+%
+% \begin{macro}{\FullTitle}
+% The \cat{Z} scheme is always the last resort deafult, and it corresponds to
+% the standard copystyle and the generic bitstyle.
+%
+% FIXME: whenever we have a dummy we have to use DefName or else we error
+% FIXME: Aak, when Promulgating we need defnames for everyting!
+% \begin{macrocode}
+\newcommand\bt@make@environment@Z [2] {% args: bitstyle dummy
+ \DefName{end#1}{}{}%
+ \DefName{#1}{##1##2} {%
+ \DefName{end#1}{} {%
+ \@nameuse{bt@end@bit@#1@\CopyStyle}{##1}%
+ }%
+ \@nameuse{bt@begin@bit@#1@\CopyStyle}{##1}{##2}%
+ }%
+}
+\newcommand\bt@make@interbits@Z [2] {% args: dummy copystyle
+ \DefName{bt@interbits@#2}{} {%
+ \relax
+ \par\pagebreak[2]\bigskip\bigskip
+ \@nameuse{bt@settitle@\BitStyle @#2}%
+ }%
+}
+\newcommand\bt@make@firstbit@Z [2] {% args: dummy copystyle
+ \DefName{bt@firstbit@#2}{} {%
+ \relax
+ \par\pagebreak[2]%
+ \thispagestyle{empty}%
+ \@nameuse{bt@setfirsttitle@\BitStyle @#2}%
+ }%
+}
+\newcommand\bt@make@begin@bit@Z [2] {% args: bitstyle copystyle
+ \DefName{PreBit#1}{}{}%
+ \DefName{bt@begin@bit@#1@#2}{##1##2} {%
+ \def\BitStyle{#1}%
+ \bt@begin@bit@common{##1}{##2}%
+ \PreBitAll
+ \@nameuse{PreBit#1}%
+ }%
+}
+\newcommand\bt@make@end@bit@Z [2] {% args: bitstyle copystyle
+ \DefName{bt@end@bit@#1@#2}{##1} {%
+ \TheEnd
+ }%
+}
+\newcommand\bt@make@settitle@Z [2] {% args: bitstyle copystyle
+ \DefName{bt@settitle@#1@#2}{} {%
+ \relax
+ \begin{center}\FullTitle\end{center}
+ }%
+}
+\newcommand\bt@make@setfirsttitle@Z [2] {% args: bitstyle copystyle
+ \DefName{bt@setfirsttitle@#1@#2}{} {%
+ \relax
+ \begin{center}\FullTitle\end{center}
+ \DTypeout{FIXME setfirsttitle in Z scheme}%
+ }%
+}
+% \end{macrocode}
+% When there is no subtitle, it sometimes seems better for the title to be set
+% one size larger than the copy; but when you have a subtitle, you need the
+% title two sizes larger so that the subtitle can be an intermediate size.
+% With CM fonts, because their boldface is extended, a bold subtitle at the
+% same size as the copy looks good, and larger is too larger. So this is a
+% tricky issue. A basic kludge that would work for me, given the font families
+% I have an use, would be to check for CM fonts here, or on the other hand
+% specifically for an extended boldface, or for Dante/Bulmer, or set a flag in
+% my dante.sty or bulmer.sty.
+% \begin{macrocode}
+\newcommand\FullTitle {%
+ \relsize{2}\bfseries
+% \relsize{1}\bfseries
+ \BitTitle\\%
+ \ifx\BitSubtitle\ShortEmpty
+ \else
+ \csname sbseries\endcsname % this way it's harmless if undefined
+ \relsize{-1}\BitSubtitle\\%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{The \cat{P} scheme}
+%
+% \begin{macro}{\bt@make@setfirsttitle@P}
+% \begin{macro}{\bt@make@settitle@P}
+% \begin{macro}{\bt@make@end@bit@P}
+% \begin{macro}{\bt@make@begin@bit@P}
+% The \cat{P} scheme was created for the poem bitstyle.
+% \begin{macrocode}
+\newcommand\bt@make@begin@bit@P [2] {% args: bitstyle copystyle
+ \DefName{bt@begin@bit@#1@#2}{##1##2} {%
+ \def\BitStyle{#1}%
+ \bt@begin@bit@common{##1}{##2}%
+ \PreBitAll
+ \verse % FIX: why does the PreBitAll hook come before \verse and the
+ % BitHook come after? Why doesn't the PreBitAll come in
+ % @common@ -- well, so that a bit can put stuff before the hooks.
+ \@nameuse{PreBit#1}%
+ }%
+}
+\newcommand\bt@make@end@bit@P [2] {% args: bitstyle copystyle
+ \DefName{bt@end@bit@#1@#2}{##1} {%
+ \relax
+ \endverse
+ \TheEnd
+ }%
+}
+\newcommand\bt@make@settitle@P [2] {% args: bitstyle copystyle
+ \DefName{bt@settitle@#1@#2}{} {%
+ \relax
+ \begin{verse}\FullTitle\end{verse}
+ }%
+}
+\newcommand\bt@make@setfirsttitle@P [2] {% args: bitstyle copystyle
+ \DefName{bt@setfirsttitle@#1@#2}{} {%
+ \relax
+ \begin{verse}\FullTitle\end{verse}
+ \DTypeout{this is setfirsttitle in P scheme}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{The \cat{R} scheme}
+% For the prose bitstyle.
+% \begin{macrocode}
+\newcommand\bt@make@settitle@R [2] {%
+ \DefName{bt@settitle@#1@#2}{} {%
+ \relax
+ \ifx\BitTitle\ShortEmpty\else
+ \noindent
+ \begingroup
+ \relsize{1}%
+ \bfseries
+ \BitTitle
+ \endgroup
+ \par\smallskip
+ \fi
+ }%
+}
+% \end{macrocode}
+%
+% \subsubsection{The \cat{T} scheme} FIX: for what?
+%
+% \section{The standard copystyle and generic bitstyle}
+%
+% \begin{macrocode}
+\@for\bt@e:=\bt@tasks \do {%
+ \PromulgateTaskAcrossBitstyles{\bt@e}{Z}{standard}
+}
+% \end{macrocode}
+%
+% \section{Bit Styles}
+%
+% \subsection{Story}
+% This is the same as generic.
+% \begin{macrocode}
+\NewBitstyle{generic}
+\NewBitstyle{story}
+% \end{macrocode}
+%
+% \subsection{Poem}
+%
+% \begin{macrocode}
+\NewBitstyle{poem}
+\PromulgateTaskAcrossCopystyles{begin@bit}{P}{poem}
+\PromulgateTaskAcrossCopystyles{end@bit}{P}{poem}
+\PromulgateTaskAcrossCopystyles{settitle}{P}{poem}
+\PromulgateTaskAcrossCopystyles{setfirsttitle}{P}{poem}
+% \end{macrocode}
+%
+% \subsection{Prose}
+%
+% \begin{macrocode}
+\NewBitstyle{prose}
+\PromulgateTaskAcrossCopystyles{settitle}{R}{prose}
+% \end{macrocode}
+%
+% \section{Copy Styles}
+%
+% \begin{macrocode}
+\NewCopystyle{titlepage}
+
+\newcommand\bt@make@setfirsttitle@T [2] {% args: bitstyle copystyle
+ \DefName{bt@setfirsttitle@#1@#2}{} {%
+ \thispagestyle{empty}%
+ \vspace*{\fill}%
+ \begin{center}
+ {\relsize{5}\BitTitle \\}%
+ \ifx\BitSubtitle\ShortEmpty\else
+ {\relsize{3}\BitSubtitle \\}%
+ \fi
+ \end{center}
+ \vfill
+% \CoverNotes
+% \vfill
+ \par
+ \begingroup
+ \sffamily
+ \hfill
+ \begin{tabular}{r@{\hspace{\@ne em}}r}
+ Copy of:&\todayabbrev \\%
+ Version of:&\Lastchange \\%
+ Date:&\Date \\%
+ \end{tabular}
+ \par\bigskip\bigskip
+ \begin{raggedleft}
+ \def\and{\\}%
+ \larger\scshape\Author
+% \end{macrocode}
+% A final |\par| is needed to close the paragraph in raggedleft mode.
+% \begin{macrocode}
+ \par
+ \end{raggedleft}
+ \endgroup
+ \newpage
+ \setcounter{page}{\@ne}%
+ }%
+}
+\PromulgateTaskAcrossBitstyles{setfirsttitle}{T}{titlepage}
+% \end{macrocode}
+%
+% \section{Bit counters and interbit skips}
+%
+% \begin{macro}{\c@bit}
+% \begin{macro}{\c@bitbit}
+% \begin{macro}{\c@bitbitbit}
+% \mbox{}
+% \begin{macrocode}
+\providecounter{bit}
+\providecounter{bitbit}[bit]
+\providecounter{bitbitbit}[bitbit]
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\bt@bitskip}
+% \begin{macro}{\InterBitBreak}
+% \begin{macro}{\InterBitBitBreak}
+% \begin{macro}{\InterBitBitBitBreak}
+% \cs\medbreak is penalty -100; \cs\smallbreak is 50. FIXME: what's going on
+% here?
+% \begin{macrocode}
+\newcommand\bt@bitskip[1] {%
+ \par
+ \ifdim \lastskip < \bigskipamount
+ \removelastskip
+ \penalty -500%
+ #1%
+ \fi
+}
+\newcommand\InterBitBreak {%
+ \bt@bitskip
+ \bigskip
+}
+\newcommand\InterBitBitBreak {%
+ \bt@bitskip
+ \medskip
+}
+\newcommand\InterBitBitBitBreak {%
+ \bt@bitskip
+ \smallskip
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\bitbit}
+% \begin{macro}{\bitbitbit}
+% \begin{macro}{\bt@bitbit}
+% \begin{macro}{\bt@bitbitbit}
+% FIXME: These should be made attributes of the Generic Bit Style.
+% \begin{macrocode}
+\newcommand\bitbit {%
+ \@ifstar {%
+ \bt@bitbit{}%
+ }{% ELSE
+ \refstepcounter{bitbit}%
+ \bt@bitbit{\thebitbit\ }%
+ }%
+}
+\newcommand{\bt@bitbit} [2] {%
+ \ifnum\value{bitbit}=\@ne \else
+ \InterBitBitBreak
+ \fi
+ \noindent #1{\relsize{-1}\bfseries #2}%
+ \par\nobreak
+ \smallskip
+}
+\newcommand\bitbitbit {%
+ \@ifstar {%
+ \bt@bitbitbit{}%
+ }{% ELSE
+ \refstepcounter{bitbitbit}%
+ \bt@bitbitbit{\thebitbitbit\ }%
+ }%
+}
+\newcommand\bt@bitbitbit [2] {%
+ \ifnum\value{bitbitbit}=\@ne \else
+ \InterBitBitBitBreak
+ \fi
+ \noindent #1{\relsize{-1}\bfseries #2}%
+ \par\nobreak
+ \smallskip
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Userinfos}
+%
+% \begin{macro}{\Author}
+% \begin{macro}{\author}
+% \begin{macro}{\Lastchange}
+% \begin{macro}{\lastchange}
+% \begin{macro}{\Date}
+% \begin{macro}{\date}
+% \begin{macro}{\title}
+% \begin{macro}{\BitTitle}
+% \begin{macro}{\BitSubtitle}
+% \begin{macro}{\Subtitle}
+% \begin{macro}{\subtitle}
+% When we redefine \cs\author, \cs\date, and \cs\title, we add a new action to
+% the original meaning. This means that standard commands like \cs\maketitle
+% will still perform as expected, if someone prefers to use that instead of the
+% \Frankenstein commands.
+% \begin{macrocode}
+\SaveCS\date
+
+\newcommand*\Date {%
+ \todayabbrev
+}
+\defcommand\date [1] {%
+ \MDSaveddate{#1}%
+ \def\Date{#1}%
+}
+\SaveCS\title
+\ReserveCS\BitTitle
+
+\defcommand\title [1] {%
+ \MDSavedtitle{#1}%
+ \def\BitTitle{#1}%
+}
+% \end{macrocode}
+% Why did I originally want \cs\Subtitle to be a user command instead of \cs\subtitle?
+% \begin{macrocode}
+\NewUserInfo*[\subtitle]\BitSubtitle
+%\NewUserInfo*[\Subtitle]\BitSubtitle
+%\newlet\subtitle\Subtitle
+\NewUserInfo*\Lastchange
+\lastchange{\todayabbrev}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Copystyle}
+% \begin{macro}{\copystyle}
+% \mbox{}
+% \begin{macrocode}
+\NewUserInfo*\CopyStyle
+\copystyle{standard}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Dates}
+%
+% \begin{macro}{\today}
+% \begin{macro}{\todayabbrev}
+% \mbox{}
+% \begin{macrocode}
+\def\today {%
+ \number\day\space\ifcase\month\or
+ January\or February\or
+ March\or April\or May\or June\or July\or August\or September\or
+ October\or November\or December\fi\space\number\year
+}
+\newcommand\todayabbrev {%
+ \number\day\space\ifcase\month\or
+ Jan\or Feb\or
+ Mar\or Apr\or May\or Jun\or Jul\or Aug\or Sep\or
+ Oct\or Nov\or Dec\fi\space\number\year
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\copywrite}
+% This adds a copyright message to the beginning of \cs\Notes. Its single
+% argument should be a year.
+% \begin{macrocode}
+\newcommand\copywrite [1] {%
+ \edef\Notes {%
+ \copyright#1 All rights reserved. \Notes
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Ends}
+%
+% \begin{macro}{\EndSign}
+% It's very hard to attach this thing without allowing a page break before it. FIX.
+% \begin{macrocode}
+\newcommand\EndSign {%
+ \par\nobreak
+ \vspace{2\bigskipamount}% multiplication turns glue into dimen.
+ \hfill
+% \end{macrocode}
+% We do this so that |\Author| can have |\\|s in it.
+% \begin{macrocode}
+ \begingroup
+ \scshape
+ \let\and\@tabularcr
+ \begin{tabular}{c}
+ \Author \\%
+ \relsize{-1}\itshape\Date
+ \end{tabular}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\theend}
+% User command which (almost) always makes an \cs\EndSign:
+% \begin{macrocode}
+\newcommand\theend {%
+ \if@signed@
+ \EndSign
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\TheEnd}
+% The end of a bit calls \cs\TheEnd. The default definition is either
+% nothing or \cs\EndSign, depending on some condition.
+% \begin{macrocode}
+\newcommand\TheEnd {%
+ \def\sc@t@c {%
+ prizes%
+ }%
+ \let\sc@t@a\EndSign
+ \ifx\CopyStyle\sc@t@c
+ \InitCS*\sc@t@a
+ \else
+ \if@signed@
+ \if@ends@
+% FIX: when you get the footer going...
+% \ifnum\value{page} < 2%
+% \InitCS*\sc@t@a
+% \fi
+ \else
+ \InitCS*\sc@t@a
+ \fi
+ \else
+ \InitCS*\sc@t@a
+ \fi
+ \fi
+ \sc@t@a
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Version control}
+%
+% We use macros instead of boxes, because at this point some of the macros in
+% the boxes may change their meaning.
+%
+% Algorithm: We will maintain two \cs\hbox es |to \textwidth| each time
+% \cs\MakeCover is called. Set the footboxes to |\v@idbox| here. Whenever
+% |\MakeCover| is called, it should stack another |\vbox| with the right
+% information in it into both boxes. The information is expanded, and thus the
+% macro contents can change between calls to |\MakeCover|, but the box being
+% built inserts two different |\vboxes| with their value at the moment.
+%
+% \begin{macro}{\bt@vcbox}
+% \begin{macro}{\VersionControlString}
+% \begin{macro}{\VersionControlAuthorString}
+% \mbox{}
+% \begin{macrocode}
+\newcommand\BTVersionWord {Version}
+\newcommand\BTCopyWord {Copy}
+\newcommand\bt@vcbox {%
+ \footnotesize
+ \ifx\Lastchange\ShortEmpty\else
+ {\bfseries \BTVersionWord:} {\slshape \Lastchange}%
+ \fi
+ \hspace{\@ne em}%
+ {\bfseries \BTCopyWord:} {\slshape \todayabbrev}%
+}
+\newcommand\VersionControlString {%
+ \hfill \bt@vcbox \hfill
+}
+% \end{macrocode}
+% I should assign some names to the various meanings of and, like protect.
+% \begin{macrocode}
+\newcommand\VersionControlAuthorString {%
+ \bt@vcbox \hfill {\scshape\def\and{\unskip, \ignorespaces}\Author}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\whitespace}
+% \mbox{}
+% \begin{macrocode}
+\requirecommand\whitespace {%
+ \bigbreak
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \part{Configuration}
+%
+% We leave the rest to a configuration file.
+% \begin{macrocode}
+\InputIfFileExists{bits.cfg}{}{}
+% \end{macrocode}
+%
+% The contents of the distributed configuration file are below.
+%
+% \InputIfFileExists{bits.cfg}{}{}
+%
+% \Finale
diff --git a/Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.tex b/Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.tex
new file mode 100644
index 00000000000..dca970a548c
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.tex
@@ -0,0 +1,67 @@
+% bits.tex -- documentation for the bits LaTeX package.
+%
+% This program is part of the Frankenstein bundle for LaTeX2e.
+%
+% Copyright (C) 1995-2001 Matt Swift <swift@alum.mit.edu>
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later
+% is part of all distributions of LaTeX version 1999/12/01 or
+% later.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% LaTeX Project Public License for more details.
+%
+\documentclass{ltxdoc}
+\makeatletter
+\def\part {%
+ \clearpage
+ \@afterindentfalse
+ \secdef\@part\@spart
+}
+\def\StripV #1{\E@cdr #1\@nil}
+\makeatother
+\usepackage{attrib,compsci}
+\newbook\manual {Chicago\nocite{chicago:14} Manual of Style}[Chicago Manual]
+\newbook\MLAman {The\nocite{mlaman} MLA Style Manual and Guide to Scholarly Publishing}
+ [The MLA Style Manual]
+\newtheorem{lessoninternal}{Lesson}
+\newenvironment{lesson} {%
+ \let\AttribInit\sffamily
+ \let\PreTrib\textsection
+ \let\PostTrib\ShortEmpty
+ \lessoninternal
+ } {%
+ \endlessoninternal
+ }
+\newcommand\manualref [1] {\textsf{\S #1}}
+\ProcessDTXFile{bits.sty}
+\newlet\MaybeABib\relax
+\IfCitations {
+ \def\MaybeABib {%
+ \newpage
+ \bibliographystyle{achicago}%
+ \bibliography{frankenstein}%
+ }
+ \SaveDoXVarS
+ \usepackage{achicago}
+ \RestoreDoXVarS
+}
+\CodelineIndex
+\EnableCrossrefs
+\begin{document}
+\date{Version: \StripV\fileversion \qquad Date: \filedate\\
+ \relsize{-2}Documentation revision: \docdate}
+\author{Matt Swift \email{swift@alum.mit.edu}}
+\title{The \textsf{bits} LaTeX package \\\smaller \fileinfo}
+\maketitle
+\DocInput{bits.sty}
+\MaybeABib
+\newpage
+\PrintIndex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/frankenstein/unsupported/drama.ins b/Master/texmf-dist/doc/latex/frankenstein/unsupported/drama.ins
new file mode 100644
index 00000000000..d2fb3087545
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/drama.ins
@@ -0,0 +1,64 @@
+% drama.ins -- docstrip driver for the drama LaTeX package
+%
+% Copyright (C) 1995-2001 Matthew Swift <swift@alum.mit.edu>
+% Please see the copyright notice in \preamble below.
+
+% This file, when run through TeX or LaTeX, will generate fast loadable files
+% from the .sty, .cls, or .bst files mentioned below.
+
+\input docstrip
+\keepsilent
+
+\preamble
+
+ This program is part of the Frankenstein bundle for LaTeX.
+
+ Copyright (C) 1995-2001 Matthew Swift <swift@alum.mit.edu>
+
+ This file may have one of TWO names, either
+ drama.sty or drama.stq. This
+ LaTeX package will work ONLY if it is called drama.sty
+ and placed in a proper directory. This file should have been
+ distributed to you with a DIFFERENT file (also) called
+ drama.sty which functions identically to this one
+ but contains documentation in comments. This file works faster,
+ but the other should be kept because it contains the documentation
+ for this LaTeX package. Files called README and INSTALL should have
+ also been distributed to you with this file; see them for more
+ information.
+
+ This program is free software; you may redistribute it and/or
+ modify it under the conditions of the LaTeX Project Public
+ License, either version 1.2 or (at your option) any later version.
+ The latest version of this license is in
+ http://www.latex-project.org/lppl.txt, and version 1.2 or later is
+ part of all distributions of LaTeX version 1999/12/01 or later.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ LaTeX Project Public License for more details.
+
+\endpreamble
+
+\askforoverwritefalse
+
+% This will get changed to either nothing or \nopostamble.
+
+
+\generate{\file{drama.stq}{\from{drama.sty}{}}}
+
+\Msg{}
+\Msg{***********************************************************************}
+\Msg{*}
+\Msg{* The file drama.stq is a faster replacement for the file}
+\Msg{* drama.sty.}
+\Msg{*}
+\Msg{* drama.stq is stripped of comments (documentation) and must be}
+\Msg{* renamed drama.sty and placed where LaTeX can find it}
+\Msg{* before it may be used.}
+\Msg{*}
+\Msg{***********************************************************************}
+\Msg{}
+
+\endbatchfile
diff --git a/Master/texmf-dist/doc/latex/frankenstein/unsupported/drama.pdf b/Master/texmf-dist/doc/latex/frankenstein/unsupported/drama.pdf
new file mode 100644
index 00000000000..ccc6013db57
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/drama.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/frankenstein/unsupported/drama.sty b/Master/texmf-dist/doc/latex/frankenstein/unsupported/drama.sty
new file mode 100644
index 00000000000..b74e90f9742
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/drama.sty
@@ -0,0 +1,488 @@
+%^^A* legal notices
+% \iffalse
+%
+% This program is part of the Frankenstein bundle for LaTeX.
+%
+% Copyright 1995-2001 Matt Swift <swift@alum.mit.edu>.
+%
+% This file contains both the code and documentation for the
+% drama LaTeX package. It will work ONLY if it is placed in a
+% proper directory. Files called README, INSTALL, drama.tex
+% and drama.ins should have also been distributed to you
+% with this file. See them for more information on how to typeset
+% the documentation with LaTeX and how to generate a version of this
+% file that will work faster than this one.
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later is
+% part of all distributions of LaTeX version 1999/12/01 or later.
+%
+% This program is distributed in the hope that it will be useful,
+% but without any warranty; without even the implied warranty of
+% merchantability or fitness for a particular purpose. See the
+% LaTeX Project Public License for more details.
+%
+% \fi
+%
+%^^A* checks
+%
+%^^A NOTE: The character table, with two %'s, will get written to all files.
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \CheckSum{314}
+%
+%^^A** abstract
+% \begin{abstract}
+% Defines macros for typesetting a basic production-style stage script.
+%
+% This package is useful but may have problems and is unsupported.
+% \end{abstract}
+% \tableofcontents
+%
+% \part{Discussion}
+%
+% I am close to handling the insertion of a ``continued'' message at the top
+% of the page when a speech is broken across the page. But it's not there
+% yet.
+%
+% \DescribeEnv{script}
+% This is the only environment so far, for a basic production-style stage
+% script. It is implemented as a bitstyle: see the \package{bits} package
+% for details of use. I think you only need to issue an
+% \cs\author\marg{author's name} and \cs\date\marg{date} command. Also,
+% create an empty file called \file{bits.cfg} on your system (or put the
+% \cs\author declaration in it).
+%
+% Options come in pairs (boldface is default):
+% \begin{description}
+% \item[\textmd{oneact}/multiact] Multiact scripts use act numbers; oneacts
+% just have scenes.
+% \end{description}
+%
+% \DescribeMacro\character
+% \cs\character\marg{full description}\marg{name}\marg{csname} defines a new
+% character. \meta{full description} is used in the dramatis personae
+% listing. \meta{name} is the name to use to refer to the character in stage
+% directions, and to introduce their speeches. \cs\character defines a
+% command |\|\meta{csname} which prints \meta{name} in the font given in
+% \cs\DirectStyle. Use this in stage directions. It is an abbreviation
+% macro of category \cat{Character}; following spacing is handled
+% automatically for you. See the \package{abbrevs} package for details. Also
+% defined is the command
+% \DescribeMacro\SpeakAppend
+% |\|\meta{csname}|says|, which is used to introduce the character's
+% speeches. The suffix ``says'' can be changed by redefining \cs\SpeakAppend
+% before using \cs\character. You can also define it before loading the
+% \package{drama} package.
+%
+% \DescribeMacro\scene
+% \DescribeMacro\act
+% Use \cs\scene and \cs\act to start acts and scenes.
+%
+% \DescribeMacro\direct
+% \DescribeMacro\setstage
+% \cs\direct\marg{stage directions}. Use \cs\setstage\marg{stage directions}
+% at the beginning of scenes and acts.
+%
+% \StopEventually{}
+%
+% \part{Implementation}
+%
+% \section{Version control}
+%
+% \begin{macro}{\fileinfo}
+% \begin{macro}{\DoXUsepackagE}
+% \begin{macro}{\HaveECitationS}
+% \begin{macro}{\fileversion}
+% \begin{macro}{\filedate}
+% \begin{macro}{\docdate}
+% \begin{macro}{\PPOptArg}
+% These definitions must be the first ones in the file.
+% \begin{macrocode}
+\def\fileinfo{drama package (Frankenstein's heart)}
+\def\DoXPackageS {}
+\def\initelyHavECitationS {}
+\def\fileversion{v0.2}
+\def\filedate{1996/05/05}
+\def\docdate{1996/05/05}
+\edef\PPOptArg {%
+ \filedate\space \fileversion\space \fileinfo
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% If we're loading this file from a \cs\ProcessDTXFile command (see the
+% \package{compsci} package), then \cs\JusTLoaDInformatioN will be defined;
+% othewise we assume it is not (that's why the FunkY NamE).
+%
+% If we're loading from \cs\ProcessDTXFile, we want to load the packages listed
+% in \cs\DoXPackageS (needed to typeset the documentation for this file) and
+% then bail out. Otherwise, we're using this file in a normal way as a
+% package, so do nothing. \cs\DoXPackageS, if there are any, are declared in
+% the \ext{dtx} file, and, if you're reading the typeset documentation of this
+% package, would appear just above. (It's OK to call \cs\usepackage with an
+% empty argument or \cs\relax, by the way.)
+% \begin{macrocode}
+\makeatletter% A special comment to help create bst files. Don't change!
+\@ifundefined{JusTLoaDInformatioN} {%
+ }{% ELSE (we know the compsci package is already loaded, too)
+ \UndefineCS\JusTLoaDInformatioN
+ \SaveDoXVarS
+ \eExpand\csname DoXPackageS\endcsname\In {%use \csname in case it's undefined
+ \usepackage{#1}%
+ }%
+ \RestoreDoXVarS
+ \makeatother
+ \endinput
+}% A special comment to help create bst files. Don't change!
+% \end{macrocode}
+%
+% Now we check for \LaTeX2e and declare the LaTeX package.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{drama}[\PPOptArg]
+% \end{macrocode}^^A special comment to help create bst files. Don't change!
+%
+% ^^A NOTE: We have to compensate for the above backslashes, which are not
+% ^^A actually in the .dtx file the author works on, by adding to the
+% ^^A CheckSum.
+%%
+% \AddToCheckSum{17}^^A `dtx-update-checksum' automatically handles this.
+% \AddToCheckSum{7}^^A The half a macrocode env. at the top is missed, however...
+% \AddToCheckSum{10}^^A ... and so are the 5 \defs from the .dtx file
+% ^^A that precede it.
+% \IfCitations {%
+% \AddToCheckSum{2}^^A When \initelyHavECitationS is defined in
+% } ^^A the .dtx file, we need 2 more in the CheckSum.
+%
+%
+% \begin{macrocode}
+\RequirePackage{abbrevs,bits,dialogue,moredefs,relsize}
+%\RequirePackage{xmark}
+\let\sc@mark\Gobble
+\VerboseErrors
+
+\DeclareBooleanOptions{oneact}{multiact}
+\ProcessOptions
+% \end{macrocode}
+%
+% \section{characters}
+%
+% \begin{macro}{\SpeakAppend}
+% \begin{macro}{\sc@cast}
+% \begin{macro}{\character}
+%
+% \begin{macrocode}
+\providecommand\SpeakAppend {says}
+\ReserveCS\sc@cast
+\NewUserAbbrevDefiner\NewCharacterAbbrev{Character}
+\let\TMFontCharacter\scshape
+\newcommand*\character [3] {% args: dramper name csname
+ \expandafter\NewCharacterAbbrev\csname #3\endcsname{#2}%
+ \NewName* {#3\SpeakAppend} {} {%
+ \speak{#2}%
+ }%
+ \addto@macro\sc@cast{,#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The |\@cdr| gets rid of the first silly comma.
+% \begin{macrocode}
+\newcommand\DramPer {%
+ \ifx\sc@cast\LongEmpty\else
+ {\larger\scshape Cast}%
+ \relax\begin{verse}
+ \edef\sc@t@a{\E@cdr\sc@cast\@nil}%
+ \@for\sc@t@b:=\sc@t@a \do {%
+ \sc@t@b\\%
+ }%
+ \relax\end{verse}%
+% \end{macrocode}
+% Prepare for another set of characters.
+% \begin{macrocode}
+ \InitCS\sc@cast
+ \bigbreak
+ \fi
+}
+% \end{macrocode}
+%
+% \subsubsection{sectioning}
+%
+% \begin{macro}{\sc@toks@saved@output}
+% We pull some fancy stuff with the output routine here. The algorithm is a
+% simpler version of Knuth's \cite[260ff]{knuth:texbook}.
+% \begin{macrocode}
+\newtokens\sc@toks@saved@output
+\sc@toks@saved@output=\output
+% \end{macrocode}
+% \end{macro}
+%
+% The |\sc@botmark|, if not empty, will contain text to be inserted at the top
+% of the next page. It must contain vertical not horizontal material.
+%
+% We actually need to communicate the boolean |sc@directing| via the mark,
+% because only the information in the marks is guaranteed to reflect the state
+% at the end of the page, and not several lines later.
+% \begin{macrocode}
+\providelength\sc@len
+
+\newcommand\sc@outputwrapper {%
+ \setlength{\sc@len}{\dp255}%
+ \the\sc@toks@saved@output
+ \def\sc@t@b {%
+ \sc@botmark
+ \addtolength{\sc@len}{-\prevdepth}%
+ \kern\sc@len
+ }%
+ \InitCS\sc@t@a
+ \ifx\sc@botmark\ShortEmpty
+ \let\sc@t@a\sc@t@b
+ \else
+ \ifsc@directing
+ \let\sc@t@a\sc@t@b
+ \fi
+ \fi
+ \sc@t@a
+}
+\newcommand\script {%
+ \MakeDirectTakeArg
+ \relax\begin{Script}%
+}
+\NewName{endscript} {} {%
+ \relax\end{Script}%
+}
+\NewName{script*} {} {%
+ \MakeDirectTakeNoArg
+ \relax\begin{Script}%
+}
+\NewName{endscript*} {} {%
+ \relax\end{Script}%
+}
+\newcommand\sc@make@begin@bit@D [2] {% args: bitstyle copystyle
+ \DefName{sc@begin@bit@#1@#2}{##1##2} {%
+ \def\BitStyle{#1}%
+ \sc@begin@bit@common{##1}{##2}%
+ \PreBitAll
+%
+% \ClaimXMarkTwo
+% \FrankenInfo{drama}{The script environment is changing \protect\output.}%
+% \output={\sc@outputwrapper}%
+% \let\maxdepth\maxdimen
+% \let\@maxdepth\maxdimen
+ \if@oneact@
+ \def\thepage {%
+ \arabic{bitbitbit}\hspace{\@ne em}\arabic{page}%
+ }%
+ \else
+ \def\thepage {%
+ \arabic{bitbit}--\arabic{bitbitbit}\hspace{\@ne em}\arabic{page}%
+ }%
+ \fi
+ \DramPer
+%
+ \@nameuse{PreBit#1}%
+ }%
+}
+\newcommand\sc@make@end@bit@D [2] {% args: bitstyle copystyle
+ \DefName{sc@end@bit@#1@#2}{##1} {%
+ \sc@possiblyfinishdirecting
+ \TheEnd
+ \FrankenInfo{drama}{\protect\output is back to normal now.}%
+ }%
+}
+\NewBitstyle{Script}
+\PromulgateComponentAcrossCopystyles{end@bit}{D}{Script}
+\PromulgateComponentAcrossCopystyles{begin@bit}{D}{Script}
+
+\newcommand\act {%
+ \sc@possiblyfinishdirecting
+ \sc@mark{\ShortEmpty}%
+ \stepcounter{bitbit}%
+ \pagebreak[3]%
+ \bigskip
+ \centerline{\relsize{2}Act \thebitbit}%
+ \par
+ \nobreak
+ \smallskip
+}
+\newcommand\scene {%
+ \sc@possiblyfinishdirecting
+ \sc@mark{\ShortEmpty}%
+ \stepcounter{bitbitbit}%
+ \pagebreak[3]%
+ \bigskip
+ \centerline{\relsize{1}Scene \thebitbitbit}%
+ \par
+ \nobreak
+ \smallskip
+}
+% \end{macrocode}
+%
+% \subsubsection{speakers and stage directions}
+%
+% \begin{macrocode}
+\newlength{\halfacross}
+ \setlength{\halfacross}{\textwidth}
+ \divide\halfacross by 2
+\newlength{\quarteracross}
+ \setlength{\quarteracross}{\textwidth}
+ \divide\quarteracross by 4
+
+\newenvironment{DramaTab} [1] {%
+ \relax\begin{list}{} {%
+ \setlength{\leftmargin}{#1}%
+ \setlength{\listparindent}{\z@}%
+ \sloppy
+ }%
+ \item\relax
+ }{%
+ \relax\end{list}%
+}
+\newcommand\setstage [1] {%
+ \relax\begin{DramaTab}{\halfacross}%
+ \DirectStyle
+ \DirectOpen
+ \ignorespaces
+ #1%
+ \unskip
+ \DirectClose
+ \relax\end{DramaTab}%
+}
+% \end{macrocode}
+%
+% It is a question of style whether to announce the speaker's name a second
+% time, if his speech continues after a stage direction in a paragraph by
+% itself. If the page breaks immediately before the stage direction, or
+% duringit, no continuation message will be given. If it breaks after the
+% stage direction, and before the next speaker is announced with the |\speak|
+% command, a continuation message appropriate to the speaker \emph{before} the
+% stage direction is given. Of course, sectioning commands will cancel any
+% continuation messages.
+%
+% Communicating via the mark is giving me a problem. I need to solve this
+% problem and replace @sc@bool with mark information.
+%
+% Also, when using the no-argument form on a source with arguments, you cannot
+% swallow the spaces with |\ignorespaces|, because the open brace shields them.
+%
+% There are problems with certain combinations of taking arguments and
+% reannouncing speakers after a stage direction. I should draw a chart, and
+% see how I can handle things.
+% \begin{macro}{\DirectOpen}
+% \begin{macro}{\DirectClose}
+% \mbox{}
+% \begin{macrocode}
+\newcommand\DirectOpen {\textrm{(}}
+\newcommand\DirectClose {\textrm{)}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+\newboolean{sc@directing}
+
+\newcommand*\DirectNoArg {%
+ \sc@noargs@finishdirecting
+ \sc@direct
+}
+\newcommand\DirectWithArg [1] {%
+ \sc@args@finishdirecting
+ \sc@direct
+ #1%
+ \sc@really@finishdirecting
+}
+\newcommand\sc@direct {%
+ \global\let\sc@lastmark\sc@themark
+ \sc@mark{\ShortEmpty}%
+ \sc@directingtrue
+ \pagebreak[0]% mild encouragement
+ \relax\begin{DramaTab}{\quarteracross}%
+ \DirectStyle
+ \DirectOpen
+ \ignorespaces
+}
+\newcommand\sc@really@finishdirecting {%
+ \unskip
+ \DirectClose
+ \relax\end{DramaTab}
+ \sc@directingfalse
+% \sc@mark\expandafter{\sc@lastmark}% FIXME:
+}
+% \end{macrocode}
+% Looks like args version is null.
+% \begin{macrocode}
+\ReserveCS\sc@args@finishdirecting
+\newcommand\sc@noargs@finishdirecting {%
+ \ifsc@directing
+ \sc@really@finishdirecting
+ \fi
+}
+\ReserveCS\sc@possiblyfinishdirecting
+\newcommand\MakeDirectTakeArg {%
+ \let\sc@possiblyfinishdirecting\sc@args@finishdirecting
+ \let\direct\DirectWithArg
+}
+\newcommand\MakeDirectTakeNoArg {%
+ \let\sc@possiblyfinishdirecting\sc@noargs@finishdirecting
+ \let\direct\DirectNoArg
+}
+% \end{macrocode}
+%
+% \todo{Do penalties better?}
+%
+% \begin{macro}{\GiveSpeaker}
+% \begin{macrocode}
+\newcommand\GiveSpeaker [1] {%
+ \par
+ \centerline{\textsc{#1}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GiveSpeakerContinued}
+% The space is explicit for clarity.
+% \begin{macrocode}
+\newcommand\GiveSpeakerContinued [1] {%
+ \GiveSpeaker{#1\space\rlap{\textsl{(continued)}}}%
+}
+\newcommand\speak [1] {%
+ \sc@possiblyfinishdirecting
+ \sc@mark{\ShortEmpty}%
+ \pagebreak[2]%
+ \smallskip
+ \sc@mark{\GiveSpeakerContinued{#1}}%
+ \GiveSpeaker{#1}%
+ \par
+ \nopagebreak
+ \noindent
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
diff --git a/Master/texmf-dist/doc/latex/frankenstein/unsupported/drama.tex b/Master/texmf-dist/doc/latex/frankenstein/unsupported/drama.tex
new file mode 100644
index 00000000000..99b7c8c2e0a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/drama.tex
@@ -0,0 +1,67 @@
+% drama.tex -- documentation for the drama LaTeX package.
+%
+% This program is part of the Frankenstein bundle for LaTeX2e.
+%
+% Copyright (C) 1995-2001 Matt Swift <swift@alum.mit.edu>
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later
+% is part of all distributions of LaTeX version 1999/12/01 or
+% later.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% LaTeX Project Public License for more details.
+%
+\documentclass{ltxdoc}
+\makeatletter
+\def\part {%
+ \clearpage
+ \@afterindentfalse
+ \secdef\@part\@spart
+}
+\def\StripV #1{\E@cdr #1\@nil}
+\makeatother
+\usepackage{attrib,compsci}
+\newbook\manual {Chicago\nocite{chicago:14} Manual of Style}[Chicago Manual]
+\newbook\MLAman {The\nocite{mlaman} MLA Style Manual and Guide to Scholarly Publishing}
+ [The MLA Style Manual]
+\newtheorem{lessoninternal}{Lesson}
+\newenvironment{lesson} {%
+ \let\AttribInit\sffamily
+ \let\PreTrib\textsection
+ \let\PostTrib\ShortEmpty
+ \lessoninternal
+ } {%
+ \endlessoninternal
+ }
+\newcommand\manualref [1] {\textsf{\S #1}}
+\ProcessDTXFile{drama.sty}
+\newlet\MaybeABib\relax
+\IfCitations {
+ \def\MaybeABib {%
+ \newpage
+ \bibliographystyle{achicago}%
+ \bibliography{frankenstein}%
+ }
+ \SaveDoXVarS
+ \usepackage{achicago}
+ \RestoreDoXVarS
+}
+\CodelineIndex
+\EnableCrossrefs
+\begin{document}
+\date{Version: \StripV\fileversion \qquad Date: \filedate\\
+ \relsize{-2}Documentation revision: \docdate}
+\author{Matt Swift \email{swift@alum.mit.edu}}
+\title{The \textsf{drama} LaTeX package \\\smaller \fileinfo}
+\maketitle
+\DocInput{drama.sty}
+\MaybeABib
+\newpage
+\PrintIndex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/frankenstein/unsupported/includex-test.tex b/Master/texmf-dist/doc/latex/frankenstein/unsupported/includex-test.tex
new file mode 100644
index 00000000000..4539bd840b6
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/includex-test.tex
@@ -0,0 +1,206 @@
+%* filecontents
+% $Id: includex-test.tex,v 1.2 1999/02/27 05:09:26 swift Exp $
+
+%** includex-test-aux.tex
+\begin{filecontents}{includex-test-aux.tex}
+This text is in a separate file that just contains text, and some \LaTeX\ code.
+For a change, let's quote \emph{Moby Dick}, chapter~94:
+\begin{quotation} %
+ Squeeze!\ squeeze!\ squeeze!\ all the morning long; I squeezed that sperm
+ till I myself almost melted into it; I squeezed that sperm till a strange
+ sort of insanity came over me; and I found myself unwittingly squeezing my
+ co-laborers' hands in it, mistaking their hands for the gentle globules.
+ Such an abounding, affectionate, friendly, loving feeling did this avocation
+ beget; that at last I was continually squeezing their hands, and looking up
+ into their eyes sentimentally; as much as to say,---Oh!\ my dear fellow
+ beings, why should we longer cherish any social acerbities, or know the
+ slightest ill-humor or envy! Come; let us squeeze hands all round; nay, let
+ us all squeeze ourselves into each other; let us squeeze ourselves
+ universally into the very milk and sperm of kindness.
+
+ Would that I could keep squeezing that sperm for ever! For now, since by many
+ prolonged, repeated experiences, I have perceived that in all cases man must
+ eventually lower, or at least shift, his conceit of attainable felicity; not
+ placing it anywhere in the intellect or the fancy; but in the wife, the
+ heart, the bed, the table, the saddle, the fire-side, the country; now that I
+ have perceived all this, I am ready to squeeze case eternally. In thoughts
+ of the visions of the night, I saw long rows of angels in paradise, each with
+ his hands in a jar of spermaceti.
+\end{quotation}
+\end{filecontents}
+%** includex-test-aux1.tex
+\begin{filecontents}{includex-test-aux1.tex}
+\documentclass{article}
+
+\usepackage{alltt}
+
+\newcommand\preamblecmd
+ {This line is due to the preamble of the included file.}
+
+\tdisable
+\tdisableone{flue}
+\tdisableopt[glue]{shoe}
+\tdisabletwo{blue}{grue}
+
+\begin{document}
+
+\tdisable
+\tdisableone{flue}
+\tdisableopt[glue]{shoe}
+\tdisabletwo{blue}{grue}
+
+\preamblecmd
+
+This file could be compiled on its own.
+
+\begin{alltt}
+Here is yet another quotation from Beckett, this time from \emph{Watt}
+(45--46).
+\end{alltt}
+
+\begin{quotation}
+ The crocuses and the larch turning green every year a week before the others
+ and the pastures red with uneaten sheep's placentas and the long summer days
+ and the new-mown hay and the wood-pigeon in the morning and the cuckoo in the
+ afternoon and the corncrake in the evening and the wasps in the jam and the
+ smell of the gorse and the look of the gorse and the apples falling and the
+ children walking in the dead leaves and the larch turning brown a week before
+ the others and the chestnuts falling and the howling winds and the sea
+ breaking over the pier and the first fires and the hooves on the road and the
+ consumptive postman whistling \emph{The Roses Are Blooming in Picardy} and
+ the standard oil-lamp and of course the snow and to be sure the sleet and
+ bless your heart the slush and every fourth year the February d\`eb\^acle and
+ the endless April showers and the crocuses and then the whole bloody business
+ starting all over again.
+\end{quotation}
+
+Notice, just as one single thing among dozens, that ``crocus''
+sounds like ``croak us.''
+
+\end{document}Error 1 in radical shutdown!
+Error 2 in radical shutdown!
+
+None of this text should ever be set.
+
+\end{filecontents}
+%** includex-test-aux.sty
+\begin{filecontents}{includex-test-aux.sty}
+\renewcommand\autotest {%
+ This text is coming from the definition of $\backslash$\texttt{autotest} that
+ is in the auxiliary file.
+}
+
+\typeout{Autoload file being loaded!}
+
+\newcommand\madbomber {%
+ \emph{I am the mad bomber!}%
+}
+
+\end{filecontents}
+
+%* main document
+
+\documentclass{article}
+\usepackage{includex,compsci}
+
+\begin{document}
+%* Intro
+\def\fileversion{v1}
+\def\filedate{1999/02/26}
+
+\makeatletter
+\def\StripV #1{\E@cdr #1\@nil}
+\makeatother
+
+\date{Version: \StripV\fileversion \qquad Date: \filedate}
+\author{Matt Swift \email{swift@alum.mit.edu}}
+\title{Testing the \package{includex} package}
+\maketitle
+
+\section{New ways to include}
+
+This will take several pages.
+
+First, check that we can |\include| as usual, so the rest of this page should
+be blank, and the Melville quote should be alone on the next page.
+
+\include{includex-test-aux}
+
+This should be on a new page. Now we include the same thing, but it should
+come immediately here because we use |\include*|:
+
+\include*{includex-test-aux}
+
+And this paragraph should immediately follow the Melville. Now, we check
+|\includedoc| and |\includedoc*| in a similar manner. The included file is
+going to use the |alltt| environment. We have loaded the package in the parent
+file. The |\usepackage| command in the included file should be disabled; if
+not, there will be an error when it tries to redefine the environment. Also,
+we disable several commands that will produce an error if they are not. This
+should be the last text on this page.
+
+\newcommand\tdisable{\typeout{Error with \protect\tdisable.}}
+\newcommand\tdisableone[1]{\typeout{Error with \protect\tdisableone.}}
+\newcommand\tdisableopt[2][]{\typeout{Error with \protect\tdisableopt.}}
+\newcommand\tdisabletwo[2]{\typeout{Error with \protect\tdisabletwo.}}
+
+\disable{\let\tdisable\relax}
+\disable{\let\tdisableone\Gobble}
+\disable{\let\tdisableopt\GobbleOM}
+\disable{\let\tdisabletwo\GobbleMM}
+
+\makeatletter
+\newcommand\checkp {%
+ \@ifundefined{preamblecmd} {%
+ \DTypeout{Preamblecmd undefined.}%
+ }{% ELSE
+ \DTypeout{Preamblecmd is: (\preamblecmd).}%
+% \let\preamblecmd\relax
+ }%
+}
+\makeatother
+\checkp
+
+\includedoc{includex-test-aux1}
+
+\checkp
+
+And this should be on a new page. The first line should have said it
+comes from the preamble.
+
+The |\includedoc| family of commands puts the included file into a group. So
+|\preamblecmd| is not defined now.
+
+Now we do the same thing over, but the file should appear immediately.
+
+\includedoc*{includex-test-aux1}
+
+\checkp
+
+And this paragraph should immediately follow the Beckett. Finally, we have to
+check |\includedocskip| and |\includedocskip*|. The difference will be that
+the first line will say it comes from the parent. This should be the last text
+on the page.
+
+\newcommand\preamblecmd {%
+ This def of preamblecmd comes from the parent.
+}
+
+\includedocskip{includex-test-aux1}
+
+\checkp
+This should be on a new page. And once again, the quote should follow
+immediately here:
+
+\includedocskip*{includex-test-aux1}
+
+\checkp
+
+And this text should immediately follow the quote.
+
+%* end
+
+END OF TEST
+
+\end{document}
+
diff --git a/Master/texmf-dist/doc/latex/frankenstein/unsupported/includex.ins b/Master/texmf-dist/doc/latex/frankenstein/unsupported/includex.ins
new file mode 100644
index 00000000000..87907d4bd6c
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/includex.ins
@@ -0,0 +1,64 @@
+% includex.ins -- docstrip driver for the includex LaTeX package
+%
+% Copyright (C) 1995-2001 Matthew Swift <swift@alum.mit.edu>
+% Please see the copyright notice in \preamble below.
+
+% This file, when run through TeX or LaTeX, will generate fast loadable files
+% from the .sty, .cls, or .bst files mentioned below.
+
+\input docstrip
+\keepsilent
+
+\preamble
+
+ This program is part of the Frankenstein bundle for LaTeX.
+
+ Copyright (C) 1995-2001 Matthew Swift <swift@alum.mit.edu>
+
+ This file may have one of TWO names, either
+ includex.sty or includex.stq. This
+ LaTeX package will work ONLY if it is called includex.sty
+ and placed in a proper directory. This file should have been
+ distributed to you with a DIFFERENT file (also) called
+ includex.sty which functions identically to this one
+ but contains documentation in comments. This file works faster,
+ but the other should be kept because it contains the documentation
+ for this LaTeX package. Files called README and INSTALL should have
+ also been distributed to you with this file; see them for more
+ information.
+
+ This program is free software; you may redistribute it and/or
+ modify it under the conditions of the LaTeX Project Public
+ License, either version 1.2 or (at your option) any later version.
+ The latest version of this license is in
+ http://www.latex-project.org/lppl.txt, and version 1.2 or later is
+ part of all distributions of LaTeX version 1999/12/01 or later.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ LaTeX Project Public License for more details.
+
+\endpreamble
+
+\askforoverwritefalse
+
+% This will get changed to either nothing or \nopostamble.
+
+
+\generate{\file{includex.stq}{\from{includex.sty}{}}}
+
+\Msg{}
+\Msg{***********************************************************************}
+\Msg{*}
+\Msg{* The file includex.stq is a faster replacement for the file}
+\Msg{* includex.sty.}
+\Msg{*}
+\Msg{* includex.stq is stripped of comments (documentation) and must be}
+\Msg{* renamed includex.sty and placed where LaTeX can find it}
+\Msg{* before it may be used.}
+\Msg{*}
+\Msg{***********************************************************************}
+\Msg{}
+
+\endbatchfile
diff --git a/Master/texmf-dist/doc/latex/frankenstein/unsupported/includex.pdf b/Master/texmf-dist/doc/latex/frankenstein/unsupported/includex.pdf
new file mode 100644
index 00000000000..e452557a80a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/includex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/frankenstein/unsupported/includex.sty b/Master/texmf-dist/doc/latex/frankenstein/unsupported/includex.sty
new file mode 100644
index 00000000000..0d0c58a8f66
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/includex.sty
@@ -0,0 +1,492 @@
+%^^A* legal notices
+% \iffalse
+%
+% This file is part of the Frankenstein bundle, comprising the
+% files listed in the file Manifest.txt. You should have
+% received the complete bundle when you received this file.
+%
+% Copyright 1995-2001 Matt Swift <swift@alum.mit.edu>.
+%
+% This file contains both the code and documentation for the
+% includex LaTeX package. It will work ONLY if it is placed in
+% a proper directory. Files called README, INSTALL,
+% includex.tex includex.ins, and includex.dvi
+% should have also been distributed to you with this file. See
+% README for more information on how to generate a version of
+% this file that will work faster than this one.
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later is
+% part of all distributions of LaTeX version 1999/12/01 or later.
+%
+% This program is distributed in the hope that it will be useful,
+% but without any warranty; without even the implied warranty of
+% merchantability or fitness for a particular purpose. See the
+% LaTeX Project Public License for more details.
+%
+% \fi
+%
+%^^A* checks
+%
+%^^A NOTE: The character table, with two %'s, will get written to all files.
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \CheckSum{227}
+%
+% \begin{abstract}
+% Includex allows you to include just the contents of one source file into
+% another, ignoring the text outside the
+% \code{\begin{document}}\lips\code{\end{document}} in the included file.
+%
+% This package is useful but may have problems and is unsupported.
+%
+% See also the \package{newclude} package.
+% \end{abstract}
+% \tableofcontents
+%
+% \part{Discussion}
+% \section{Including Files}
+%
+% \DescribeMacro{\include*}
+% \cs\include was always pretty useless to me because it did a \cs\clearpage
+% before and after the \cs\input. The macro |\include*| is defined below to be
+% like \cs\include but without the \cs\clearpage s.
+%
+% The other thing we do is define a command \cs\includedoc, which includes a
+% file which is allowed to have its own \cs\documentclass and |\begin{document}|
+% and |\end{document}| and \cs\usepackage commands.
+%
+% This opens up a whole new world of truly modular \LaTeX{} files. There is
+% even nothing special about extracting the |document| environment, we can
+% extract \emph{any} environment, or perhaps even other things.
+%
+% There are some problems, however. Maybe the \cs\usepackage is necessary,
+% maybe it would conflict. Same with other commands like the \cs\newcommand
+% family. It is simply not (yet) an issue in \LaTeX{} design to consider the
+% implications of parent files. The problems are not insurmountable. We can
+% begin by working with a convention, and ultimately maybe make some changes in
+% certain macros. I will be getting to all this. I admit I have not looked
+% carefully to see whether the design specifications of \LaTeX3{} address these
+% important issues.
+%
+% The macros here will be useful in many circumstances, when the included files
+% are themselves simple.
+%
+% \DescribeMacro{\includedoc}
+% \DescribeMacro{\includedoc*}
+% \DescribeMacro{\includedocskip}
+% \DescribeMacro{\includedocskip*}
+% There are now two main commands, \cs\includedoc and \cs\includedocskip,
+% each with a |*| version analogous to the new \cmd{include*}. Each take a
+% filename as an argument just like \cs\include.
+%
+% \cs\includedoc\marg{filename} reads everything in the file except for
+% \cs\documentclass, \cs\usepackage, |\begin{document}|, |\end{document}|
+% (and whatever follows it).
+%
+% \cs\includedocskip\marg{filename} does the same except it also skips
+% everything between \cs\documentclass and |\begin{document}|.
+%
+% \DescribeMacro{\disable}
+% At present there is a makeshift way to ignore additional commands when
+% using \cs\includedoc and \cs\includedocskip. If you want to cause \cs\foo
+% which takes no arguments to be disabled, say |\disable{\let\foo\relax}|. If
+% \cs\foo takes one mandatory argument, say |\let\foo\Gobble| instead. If
+% \cs\foo takes one optional and one mandatory, say |\let\foo\GobbleOM|. If
+% \cs\foo takes two mandatory arguments, say |\let\foo\GobbleMM|. For other
+% permutations of arguments, you can extrapolate from the macros defined
+% below.
+%
+% \StopEventually{}
+%
+% \part{Implementation}
+%
+% \section{Version control}
+%
+% \begin{macro}{\fileinfo}
+% \begin{macro}{\DoXUsepackagE}
+% \begin{macro}{\HaveECitationS}
+% \begin{macro}{\fileversion}
+% \begin{macro}{\filedate}
+% \begin{macro}{\docdate}
+% \begin{macro}{\PPOptArg}
+% These definitions must be the first ones in the file.
+% \begin{macrocode}
+\def\fileinfo{extra ways to include files}
+\def\DoXPackageS {}
+\def\fileversion{v0.6a}
+\def\filedate{1999/02/23}
+\def\docdate{1999/02/23}
+\edef\PPOptArg {%
+ \filedate\space \fileversion\space \fileinfo
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% If we're loading this file from a \cs\ProcessDTXFile command (see the
+% \package{compsci} package), then \cs\JusTLoaDInformatioN will be defined;
+% othewise we assume it is not (that's why the FunkY NamE).
+%
+% If we're loading from \cs\ProcessDTXFile, we want to load the packages listed
+% in \cs\DoXPackageS (needed to typeset the documentation for this file) and
+% then bail out. Otherwise, we're using this file in a normal way as a
+% package, so do nothing. \cs\DoXPackageS, if there are any, are declared in
+% the \ext{dtx} file, and, if you're reading the typeset documentation of this
+% package, would appear just above. (It's OK to call \cs\usepackage with an
+% empty argument or \cs\relax, by the way.)
+% \begin{macrocode}
+\makeatletter% A special comment to help create bst files. Don't change!
+\@ifundefined{JusTLoaDInformatioN} {%
+ }{% ELSE (we know the compsci package is already loaded, too)
+ \UndefineCS\JusTLoaDInformatioN
+ \SaveDoXVarS
+ \eExpand\csname DoXPackageS\endcsname\In {%use \csname in case it's undefined
+ \usepackage{#1}%
+ }%
+ \RestoreDoXVarS
+ \makeatother
+ \endinput
+}% A special comment to help create bst files. Don't change!
+% \end{macrocode}
+%
+% Now we check for \LaTeX2e and declare the LaTeX package.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{includex}[\PPOptArg]
+% \end{macrocode}^^A special comment to help create bst files. Don't change!
+%
+% ^^A NOTE: We have to compensate for the above backslashes, which are not
+% ^^A actually in the .dtx file the author works on, by adding to the
+% ^^A CheckSum.
+%%
+% \AddToCheckSum{17}^^A `dtx-update-checksum' automatically handles this.
+% \AddToCheckSum{7}^^A The half a macrocode env. at the top is missed, however...
+% \AddToCheckSum{10}^^A ... and so are the 5 \defs from the .dtx file
+% ^^A that precede it.
+% \IfCitations {%
+% \AddToCheckSum{2}^^A When \initelyHavECitationS is defined in
+% } ^^A the .dtx file, we need 2 more in the CheckSum.
+%
+%
+% \section{Requirements}
+%
+% Now we declare the package, check for \LaTeX2e, and load the other packages
+% needed.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{includex}
+\RequirePackage{moredefs}
+% \end{macrocode}
+%
+% \section{Disabling things}
+%
+% \begin{macro}{\disable}
+% This allows the disabling hacks.
+% \begin{macrocode}
+\ReserveCS\DisableMonster % This line is elsewhere for main package
+\newcommand\disable[1] {%
+ \g@addto@macro\DisableMonster{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{New things}
+%
+% \begin{macro}{\sc@saved@include}
+% \begin{macro}{\include}
+% \begin{macro}{\sc@include}
+% \begin{macro}{\sc@@include}
+% This is a simple redefinition of \cs\include without the \cs\clearpage
+% commands. Nothing tricky going on.
+% \begin{macrocode}
+\newlet\sc@saved@include\include
+\renewcommand\include {%
+ \@ifstar
+ \sc@include
+ \sc@saved@include
+}
+\newcommand\sc@include {%
+ \relax
+ \ifnum\@auxout=\@partaux
+ \@latex@error{\string\include\space cannot be nested}\@eha
+ \else
+ \expandafter\sc@@include
+ \fi
+}
+\newcommand\sc@@include[1] {%
+ \if@filesw
+ \immediate\write\@mainaux{\string\@input{#1.aux}}%
+ \fi
+ \@tempswatrue
+ \if@partsw
+ \@tempswafalse
+ \edef\@tempb{#1}%
+ \@for \@tempa:=\@partlist
+ \do{\ifx\@tempa
+ \@tempb
+ \@tempswatrue
+ \fi}%
+ \fi
+ \if@tempswa
+ \let\@auxout\@partaux
+ \if@filesw
+ \immediate\openout\@partaux #1.aux%
+ \immediate\write\@partaux{\relax}%
+ \fi
+ \@input@{#1.tex}%
+ \@writeckpt{#1}%
+ \if@filesw
+% NOTE: Robin took out the \immediate here.
+% \immediate\closeout\@partaux
+ \closeout\@partaux
+ \fi
+ \else
+ \@nameuse{cp@#1}%
+ \fi
+ \let\@auxout\@mainaux
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Now we start dealing with the much more tricky extraction of the |document|
+% environment.
+%
+% We start with considering how to quit inputting a file. The idea is to make
+% the |\end{document}| command of the included file call \cs\endinput. But
+% there is a hitch that characters on the line after the |\end{document}| get
+% inserted when you don't want them to. To beat that limitation, we have to do
+% some work.
+%
+% \begin{macro}{\sc@radical@shutdown}
+% We will add a bunch of commands to this macro, with the idea of \cs\catcode ing
+% everything and its brother to a comment. This would be a brute force
+% method!
+% \begin{macrocode}
+\ReserveCS\sc@radical@shutdown
+% \end{macrocode}
+% First log a message that we're about to do some crazy things. In case
+% something ever goes wrong, this might help.
+% \begin{macrocode}
+\addto@macro\sc@radical@shutdown {%
+ \PackageInfo{includex}{\protect\sc@radical@shutdown\space beginning}%
+}
+% \end{macrocode}
+% Now we start adding \cs\catcode commands. These first two should be
+% redundant; but just in case someone changed things\lips.
+% \begin{macrocode}
+\addto@macro\sc@radical@shutdown{\catcode`\%=14} % 14 = comment
+\addto@macro\sc@radical@shutdown{\catcode`\^=7} % 7 = superscript
+% \end{macrocode}
+% \begin{macro}{\sc@disable@char}
+% Next, we define a command we weill use in a loop in a moment.
+% \begin{macrocode}
+\newcommand\sc@disable@char[1] {%
+ \addto@macro\sc@radical@shutdown
+ {\catcode`#1=14}} % 14 = comment
+% \end{macrocode}
+% \end{macro}
+% The following list contains every keyboard char except these three, which are
+% treated specially: |%#|.
+% The first is already a comment, and we handle the second in a moment. Each
+% character in the following list is \cs\catcode d to a comment:
+% \begin{macrocode}
+\@tfor\sc@t@a:=abcdefghijklmnopqrstuvwxyz%
+ ABCDEFGHIJKLMNOPQRSTUVWXYZ%
+ ~!@$&*()_+-=[]|/?.,<>%
+ 1234567890%
+ `'";:%
+ \^\\\{\}\ % this is really the chars "^\{}" and space
+ \do {\expandafter\sc@disable@char\sc@t@a}
+% \end{macrocode}
+% We add |#| separately, because it's tricky or impossible to put it into the
+% list we just used.
+% \begin{macrocode}
+\sc@disable@char\#
+% \end{macrocode}
+% We end the macro with \cs\endinput. This has to come after all the previous,
+% otherwise, \TeX{} goes ahead and reads to the end of the line immediately,
+% with regular catcodes. This is a good theory, I'm not sure it's necessary.
+% \begin{macrocode}
+\addto@macro\sc@radical@shutdown{\endinput}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sc@radical@shutdown@aftergroup}
+% We need to use |\sc@radical@shutdown| this way.
+% \begin{macrocode}
+\newcommand\sc@radical@shutdown@aftergroup {%
+ \aftergroup\sc@radical@shutdown
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sc@begindoc@toks}
+% \begin{macro}{\sc@enddoc@toks}
+% These are for \cs\AtBeginIncludedDocument and \cs\AtEndIncludedDocument.
+% \begin{macrocode}
+\newtoks\sc@begindoc@toks
+\sc@begindoc@toks{}
+\newtoks\sc@enddoc@toks
+\sc@enddoc@toks{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\AtBeginIncludedDocument}
+% The analogue of \cs\AtBeginDocument.
+% \begin{macrocode}
+\newcommand\AtBeginIncludedDocument[1] {%
+ \sc@begindoc@toks\expandafter{\the\sc@begindoc@toks#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\AtEndIncludedDocument}
+% The analogue of \cs\AtEndDocument
+% \begin{macrocode}
+\newcommand\AtEndIncludedDocument[1] {%
+ \sc@enddoc@toks\expandafter{\the\sc@enddoc@toks#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\includedoc}
+% \begin{macro}{\includedoc*}
+% Now we start from the other end, defining the user command.
+% \begin{macrocode}
+\newcommand\includedoc {%
+% Robin's new:
+ \@ifstar {%
+ \def\sc@includebit@cmd{\include*}\sc@includebit
+ }{% ELSE
+ \let\sc@includebit@cmd\include\sc@includebit
+ }%
+}
+
+% My old:
+% {\sc@includebit}
+% {\clearpage
+% \sc@includebit[\clearpage]}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\sc@includebit}
+% The commented-out code is for some eventual extensions.
+%
+% Interface is \cmd{sc@includebit}\oarg{postlude}\marg{file} (where
+% \oarg{postlude} is command(s) to be executed after the inclusion is
+% complete); it is assumed that \cmd{sc@includebit@cmd} is either \cs\include
+% or \cmd{include*}
+% \begin{macrocode}
+\newcounter{sc@count}
+\newcounter{bit}
+\newcommand\sc@includebit [2] [] {%
+ \setcounter{sc@count}{\thebit}%
+ \begingroup
+ \DisableMonster
+ \let\usepackage\GobbleOM
+% Robin's new:
+ \def\enddocument {%
+ \makeatletter
+ \the\sc@enddoc@toks
+ \sc@radical@shutdown@aftergroup
+ }
+% My old:
+% \let\enddocument\sc@radical@shutdown@aftergroup
+ \let\documentclass\GobbleOM
+ \let\documentstyle\GobbleOM % why worry about branching if 2.09..
+ \def\document {%
+ \the\sc@begindoc@toks
+ }%
+ \def\IncludedJobname {#2}%
+ \sc@includebit@cmd{#2}%
+ \endgroup
+ \par
+ #1
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\includedocskip}
+% \begin{macro}{\includedocskip*}
+% Now we make a similar command that \emph{entirely} skips the preamble,
+% whereas \cs\includedoc only skipped those commands that we specifically
+% disabled. Obviously this whole business of the preamble needs to be
+% radically reconceived if convenient modularity of documents is to be had. At
+% the moment, no distinction is made between things like \cs\newcommand and
+% \cs\usepackage that should be exported to a parent file, and those things that
+% should not.
+% \begin{macrocode}
+\newcommand\includedocskip {%
+ \@ifstar {%
+ \sc@includebitskip
+ }{% ELSE
+ \clearpage
+ \sc@includebitskip[\clearpage]%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% I tried combining |\sc@includebitskip| and |\sc@includebit| but something
+% changed when I used a conditional to do this. I'm sure the problem could be
+% figured out and the two combined.
+%
+% \begin{macro}{\sc@includebitskip}
+% We begin skipping with the \cs\documentclass or \cs\documentstyle command, and
+% stop with the |\begin{document}| command. With some hacking to the new
+% |verbatim| environment, this could be done. I haven't done this yet, so this
+% is implemented by stuffing everything into a macro argument. I can't think
+% of a \cs\begin occurring between \cs\documentclass the \cs\begin document, but
+% that will screw things up if it does.
+%
+% The commented lines here are once again for a future extension.
+% \begin{macrocode}
+\newcommand\sc@includebitskip [2] [] {%
+ \setcounter{sc@count}{\thebit}%
+ \begingroup
+ \DisableMonster
+ \let\enddocument\sc@radical@shutdown@aftergroup
+ \long\def\documentclass ##1\begin{%
+ \begingroup
+ \def\@currenvir{document}%
+ \GobbleM
+ }% "{document}" is still to be read.
+ \let\documentstyle\documentclass
+ \include*{#2}%
+ \endgroup
+ \par
+ #1\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
diff --git a/Master/texmf-dist/doc/latex/frankenstein/unsupported/includex.tex b/Master/texmf-dist/doc/latex/frankenstein/unsupported/includex.tex
new file mode 100644
index 00000000000..b2072b08084
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/includex.tex
@@ -0,0 +1,67 @@
+% includex.tex -- documentation for the includex LaTeX package.
+%
+% This program is part of the Frankenstein bundle for LaTeX2e.
+%
+% Copyright (C) 1995-2001 Matt Swift <swift@alum.mit.edu>
+%
+% This program is free software; you may redistribute it and/or
+% modify it under the conditions of the LaTeX Project Public
+% License, either version 1.2 or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt, and version 1.2 or later
+% is part of all distributions of LaTeX version 1999/12/01 or
+% later.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% LaTeX Project Public License for more details.
+%
+\documentclass{ltxdoc}
+\makeatletter
+\def\part {%
+ \clearpage
+ \@afterindentfalse
+ \secdef\@part\@spart
+}
+\def\StripV #1{\E@cdr #1\@nil}
+\makeatother
+\usepackage{attrib,compsci}
+\newbook\manual {Chicago\nocite{chicago:14} Manual of Style}[Chicago Manual]
+\newbook\MLAman {The\nocite{mlaman} MLA Style Manual and Guide to Scholarly Publishing}
+ [The MLA Style Manual]
+\newtheorem{lessoninternal}{Lesson}
+\newenvironment{lesson} {%
+ \let\AttribInit\sffamily
+ \let\PreTrib\textsection
+ \let\PostTrib\ShortEmpty
+ \lessoninternal
+ } {%
+ \endlessoninternal
+ }
+\newcommand\manualref [1] {\textsf{\S #1}}
+\ProcessDTXFile{includex.sty}
+\newlet\MaybeABib\relax
+\IfCitations {
+ \def\MaybeABib {%
+ \newpage
+ \bibliographystyle{achicago}%
+ \bibliography{frankenstein}%
+ }
+ \SaveDoXVarS
+ \usepackage{achicago}
+ \RestoreDoXVarS
+}
+\CodelineIndex
+\EnableCrossrefs
+\begin{document}
+\date{Version: \StripV\fileversion \qquad Date: \filedate\\
+ \relsize{-2}Documentation revision: \docdate}
+\author{Matt Swift \email{swift@alum.mit.edu}}
+\title{The \textsf{includex} LaTeX package \\\smaller \fileinfo}
+\maketitle
+\DocInput{includex.sty}
+\MaybeABib
+\newpage
+\PrintIndex
+\end{document}