diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/frankenstein/unsupported')
15 files changed, 2819 insertions, 0 deletions
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 Binary files differnew file mode 100644 index 00000000000..bd635a1d872 --- /dev/null +++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/bits.pdf 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 Binary files differnew file mode 100644 index 00000000000..ccc6013db57 --- /dev/null +++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/drama.pdf 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 Binary files differnew file mode 100644 index 00000000000..e452557a80a --- /dev/null +++ b/Master/texmf-dist/doc/latex/frankenstein/unsupported/includex.pdf 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} |