diff options
-rw-r--r-- | Master/texmf-dist/source/latex/endfloat/endfloat.asc | 10 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/endfloat/endfloat.drv | 56 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/endfloat/endfloat.dtx | 1969 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/endfloat/endfloat.ins | 38 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/endfloat/readme.enf | 118 |
5 files changed, 2191 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/endfloat/endfloat.asc b/Master/texmf-dist/source/latex/endfloat/endfloat.asc new file mode 100644 index 00000000000..3c64cb2d6ab --- /dev/null +++ b/Master/texmf-dist/source/latex/endfloat/endfloat.asc @@ -0,0 +1,10 @@ +PGP signature for endfloat.dtx version 2.4i +-----BEGIN PGP MESSAGE----- +Version: 2.6.2i + +iQCVAwUBMHzBeRu6nIqxqP+5AQFlLgP/SPWWYcCBBJKla6PZO5+zrWFdzxHhc6eN +jYFOdqEgWNAXyXCpb5xgBWHgG/aFX+aLD0mI4yiuAC6BZz2NjvdF35nPg9i0+YYt +pYQVJ6q5arh8ZyuqOIolqSYehavvLFull7hmr2dPcFS88e9YYtuI+zhh/ey80QLp +zAE5b2i/+IQ= +=NBCW +-----END PGP MESSAGE----- diff --git a/Master/texmf-dist/source/latex/endfloat/endfloat.drv b/Master/texmf-dist/source/latex/endfloat/endfloat.drv new file mode 100644 index 00000000000..e051dcb680c --- /dev/null +++ b/Master/texmf-dist/source/latex/endfloat/endfloat.drv @@ -0,0 +1,56 @@ +%% +%% This is file `endfloat.drv', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% endfloat.dtx (with options: `driver') +%% +%% IMPORTANT NOTICE: +%% This is part of a set of tools (or better yet, experiments) written +%% by Jeff Goldberg (j.goldberg@Cranfield.ac.uk), who is writting this +%% not only for it utility value, but as part of the process of learning +%% LaTeX. These tools are far from perfect, and comments are welcome. +%% +%% The usual disclaimers apply: If it doesn't work right that's your +%% problem (but do let me know). +%% +%% The usual GNU-style conditions apply: If you change it, you take +%% the blame; if you pass it on, pass on all present condiditions; +%% +\def\filename{endfloat} +\def\fileversion{v2.4i} +\def\filedate{1995/10/11} +\def\docdate {1995/10/11} +%% \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 \~} +%% +%% Description: LaTeX style to put figures and tables at end of article +%% Keywords: LaTeX, style-option, float, figure, table +%% Authors: James Darrell McCauley <jdm5548@diamond.tamu.edu>, +%% Jeff Goldberg <j.goldberg@cranfield.ac.uk> +%% Maintainer: Jeff Goldberg <J.Goldberg@Cranfield.ac.uk> +%% Latest Version: Version 2.4i <October 1995> +\documentclass{ltxdoc} +\setlength\hfuzz{2pt} % ignore small overfulls +\CodelineIndex +\EnableCrossrefs +\begin{document} + \DocInput{endfloat.dtx} +\end{document} +\endinput +%% +%% End of file `endfloat.drv'. diff --git a/Master/texmf-dist/source/latex/endfloat/endfloat.dtx b/Master/texmf-dist/source/latex/endfloat/endfloat.dtx new file mode 100644 index 00000000000..a7ca418bf38 --- /dev/null +++ b/Master/texmf-dist/source/latex/endfloat/endfloat.dtx @@ -0,0 +1,1969 @@ +\def\filename{endfloat} +\def\fileversion{v2.4i} +\def\filedate{1995/10/11} +\def\docdate {1995/10/11} +% +% \CheckSum{596} +%% \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 \~} +%% +% +% \iffalse +%% Description: LaTeX style to put figures and tables at end of article +%% Keywords: LaTeX, style-option, float, figure, table +%% Authors: James Darrell McCauley <jdm5548@diamond.tamu.edu>, +%% Jeff Goldberg <j.goldberg@cranfield.ac.uk> +%% Maintainer: Jeff Goldberg <J.Goldberg@Cranfield.ac.uk> +%% Latest Version: Version 2.4i <October 1995> +% \fi +% +% \DoNotIndex{\documentclass,\usepackage,\hfuzz,\small,\tt,\begin,\end} +% \DoNotIndex{\NeedsTeXFormat,\filedate,\fileversion,\DoNotIndex} +% \DoNotIndex{\def,\edeg,\xdef,\gdef,\let,\divide,\advance,\multiply} +% \DoNotIndex{\",\-,\H,\',\\,\{,\},\^,\ } +% \DoNotIndex{\begingroup,\endgroup,\catcode,\global,\relax,\space} +% \DoNotIndex{\string,\immediate} +% \DoNotIndex{\normalsize,\large,\Large,\small,\tiny,\bf} +% \DoNotIndex{\@z} +% \DoNotIndex{\ifthenelse,\and,\equal,\whiledo,\if,\fi,\else} +% \DoNotIndex{\CodelineIndex,\EnableCrossrefs,\DisableCrossrefs} +% \DoNotIndex{\DocInput,\AltMacroFont} +% \DoNotIndex{\RecordChanges,\OnlyDescription} +% \DoNotIndex{\@input,\@namedef,\@whilesw,\clearpage,\ifnum,\ifx} +% \DoNotIndex{\jobname,\message,\MessageBreak,\newcommand} +% \DoNotIndex{\protect,\providecommand,\ProvidesPackage,\renewcommand} +% \DoNotIndex{\section,\setlength} +% +% \changes{v0.1}{1992/02/25}{created by Darrell McCauley (jdm)} +% \changes{v1.0}{1992/03/01}{cleaned up and released jdm} +% \changes{v2.0}{1992/06/02}{incorporated changes made by bj (see v1.99). jdm} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% \changes{v2.1c}{1994/07/20}{Modify documentation -jpg} +% \changes{v2.3}{1995/03/05}{Fix figure* bug and docs -jpg} +% +% \newcommand*{\pkg}[1]{\textsf{#1}} +% \newcommand*{\file}[1]{\texttt{#1}} +% \newcommand*{\cls}[1]{\textsl{#1}} +% \newcommand{\bs}{\texttt{\char'134}} +% +% \title{The \texttt{\filename} package\thanks{This file +% has version number \fileversion, last +% revised \filedate, documentation dated \docdate.}} +% \author{James Darrell McCauley +% \and Jeff Goldberg\thanks{JPG (J.Goldberg@Cranfield.ac.uk) +% is responsible for all modifications +% from version 2.1 upwards. Since there is almost no original code +% left, he has claimed co-authorship from version 2.4. He is +% also the current maintainer.}} +% +% \date{\docdate} +% +% \maketitle +% +% \begin{abstract} +% The purpose of this style is to put all figures on pages by themselves +% at the end of an article in a section named Figures. Likewise for tables. +% Markers, like ``[Figure 3 about here]'' appear in the text (by default) +% near where the figure (or table) would normally have occurred. +% This is usually required when preparing submissions to journals. +% +% A number of package options and other mechanisms are provided to +% give the user control over various aspects of the package's behavior. +% +% Loading this package will change the output of \LaTeX. +% \end{abstract} +% +% \tableofcontents +% \section{In many voices} +% +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% This documentation was put in its current form by Jeff Goldberg, +% who has tried to indicate when he is (when +% I am) speaking. See section~\ref{sec:history} for more detail. +% However, both the original author, Darrell McCauley, and +% a major contributor, Brian Junker, use the first person +% singular. In this version I no longer work to keep it clear +% who wrote what portions of the documentation and the code, but +% have allowed things to blend together a little more, since the +% constant interpolations were hindering readability. Generally +% the user documentation was written by Darrell MaCauley (jdm), +% but anything that refers to \LaTeXe\ features was added +% by me (jpg). Also, where you find spelling and typographical +% errors, you are likely to be reading my text. +% +% This documentation is long. Most users won't need to read beyond +% the first few pages, but there are a number of ways to customize +% the behavior of \pkg{endfloat} and these are detailed as the +% documentation progresses. The package is unusual in the way +% it does its job, so it can interact with other packages and +% other aspects of \LaTeX\ in ways that may be surprising. +% Although the package is flexible in some respects, it is +% highly limited in others. +% Tools and hints are provided to help you control these interactions, +% but these do require some reading. But you only need to take +% a look at these sections when the need arises. +% +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% +% \section{Why write this package?} +% +% Many journals require tables and figures to be separated from the text +% when you submit those ugly double spaced copies. They also usually want +% a list of figures/tables before these sections (capability added in v2.0, +% control through package options added in v2.2). +% +% I (jdm) am writing a set of styles that look exactly like a journal, but just +% by adding one style option, I wanted the user to meet the requirements +% for formatting submissions. I encourage others to do the +% same.\footnote{Note that jdm, working in old \LaTeX209 +% did not have the distinction between class, package and package +% options available to him at the time he made his comment. +% The most coherent way to do what is needed is to use a class, +% let's say \cls{submit}, which would load \pkg{endfloat} and +% presumably some double spacing packages among other things. Once +% that class is defined, then other classes which are specific +% to particular journals can be defined.} +% +% \section{Usage} +% \subsection{Loading} +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% Just include the package in your preamble +% \begin{verbatim} +% \usepackage[...]{endfloat} +%\end{verbatim} +% +% Note that versions 2.1 and beyond will no longer work with +% \LaTeX209. Get your administrator to upgrade your site +% to the new standard, \LaTeXe. Although version~2.0 (a \LaTeX209 version) +% will usually work with \LaTeXe, it will not do so in combination +% with certain other packages. +% +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% +% \subsection{What it does} +% +% Merely loading the package will get it working. Loading it will +% have \LaTeX\ produce two extra files with +% \texttt{.ttt} and \texttt{.fff} extensions +% (for tables and figures, respectively). +% +% This puts all figures and tables at the end of your document +% each on a page by itself\footnote{This +% is the default. See section~\ref{sec:separator} to see how +% to have multiple floats per page.} +% and creates a List of Figures and/or List of Tables section +% at the end (when appropriate and controllable by options). +% The floats are processed using |\baselinestretch{1}| irrespective +% of what is used in the document as a whole. This can be +% reset to, say 1.4, by using +% \begin{verbatim} +% \AtBeginDelayedFloats{\renewcommand{\baselinestretch}{1.4}} +%\end{verbatim} +% which is available from version 2.4. See section~\ref{sec:hooks} +% for more discussion. +% +% It also leaves notes in the text (i.e., ``[Figure 4 about here.]''). +% If you would rather not have these, this can be turned off by +% using the |nomarkers| options. If you +% do not like the look of this marker, you can change +% their text and appearance +% (see section~\ref{sec:language}). +% +% \subsection{Starred floats} +% The |figure*| and |table*| versions are supported by the current +% version.\footnote{I (jpg) very stupidly introduced a bug in version 2.2 +% which wrecked |figure*|. It has been brought to my attention and +% fixed. I offer my thanks and my apologies.} +% However, it must be noted that what actually gets processed at the +% end is always with the star, since in single column mode the +% |*| is harmless. +% +% \subsection{Options} \label{sec:options} +% +% Under version 2.2 and higher, +% the \pkg{endfloat} package uses package options. The options +% are summarized in table~\ref{tab:options}. In addition to these +% options, see sections~\ref{sec:extra} and~\ref{sec:hooks} for more +% advanced ways of controlling output. +% +% \begin{table} +% \caption{Options and defaults} \label{tab:options} +% \smallskip +% \begin{tabular}{lcll} +% \hline +% \multicolumn{1}{c}{Option} & +% \multicolumn{1}{c}{Default}& +% \multicolumn{1}{c}{Default implication} & +% \multicolumn{1}{c}{Descriptions} \\ +% \hline +% |nofiglist| & off & & no list of figures\\ +% |notablist| & off & & no list of tables\\ +% |nolists| & & |nofiglist|, |notablist| & neither list\\ +% |figlist| & on & & list of figures\\ +% |tablist| & on & & list of tables\\ +% |lists| & & |figlist|, |tablist| & list of tables and figures\\ +% |nofighead| & on & & no `Figures' section header\\ +% |notabhead| & on & & no `Tables' section header\\ +% |noheads| & & |nofighead|, |notabhead| & neither of the headers\\ +% |fighead| & off & & `Figures' section header\\ +% |tabhead| & off & & `tables' section header\\ +% |heads| & & |fighead|, |tabhead| & Both section headers\\ +% |markers| & on & & Place markers in the text\\ +% |nomarkers| & off & & no markers in text\\ +% |tablesfirst| & off & & Put tables before figures\\ +% |figuresfirst| & on & & Put figures before tables\\ +% \hline +% \end{tabular} +% \end{table} +% +% The list of tables and figures can be suppressed by using the +% \texttt{nofiglist} and \texttt{notablist} options. Both +% can be suppressed with the \texttt{nolists} option.\footnote{In +% versions prior to 2.2 the command for turning of the lists turned +% on the headers (the equivalent of the |heads| option). That is +% not the case with these options. The |lists| and the |heads| +% options are entirely orthogonal.} +% The default is \texttt{lists}. +% +% A section header for `Tables' and `Figures' can be produced by using +% the option |tabhead|, |fighead|, respectively, and |heads| for both. +% The defaults are |notabhead| and |nofighead|. +% +% If you want the headers instead of the lists you would need to +% use both the |nolists| and the |heads| options. +% +% If you want to suppress the markers in the text, use the +% option \texttt{nomarkers}. The default is +% \texttt{markers}. +% +% Normally the figures at the end appear before the tables. +% This can be changed by using the option \texttt{tablesfirst}. +% The default is \texttt{figuresfirst}.\footnote{It is hoped that +% future versions will allow new kinds of float or environment +% to be delayed, in which case an entirely new mechanism will +% need to be introduced for ordering their appearance.} +% +% A typical usage might be something like +% \begin{verbatim} +%\documentclass[a4paper,12pt]{article} +%\usepackage[nolists,tablesfirst]{endfloat} +%... +%\begin{document} +%\end{verbatim} +% which would suppress the list of tables and figures as well as +% the corresponding section headers, and would have the tables +% precede the figures. +% +% \subsubsection{Contradictions and dilemmas} +% +% It is not recommended that one specify conflicting options, but +% if you insist, here are the rules. In table~\ref{tab:options} the third +% column indicates what other options are implied by default. That +% is |heads| turns on |fighead| by default, but that implication +% can be overruled by explicitly stating the |nofighead| option. +% +% \begin{enumerate} +% \item \label{rule:default} +% When two entirely conflicting options are both specified +% the one corresponding to the default wins. +% (e.g., if both |markers| and |nomarkers| are specified then +% |markers| will be in effect). Here the notion of default is +% determined by inspecting the second column of table~\ref{tab:options}. +% \item \label{rule:elsewhere} +% When one option is more specific than the other the more specific +% one holds true, and the more general will only partially hold. +% So specifying \texttt{fighead} and \texttt{noheads} will be the +% same as saying \texttt{fighead} and \texttt{notabhead}. +% \item +% The order in which the options appear is not relevant. +% \item +% If some of the obsolete commands for these options are used +% all bets are off on these interactions. +% \end{enumerate} +% +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% +% \section{Modifying marker text}\label{sec:language} +% +% \changes{v1.0b}{1992/03/10}{adaptation for LaTeX 2.09 and +% international namegiving by Ronald Kappert +% R.Kappert@urc.kun.nl} +% \DescribeMacro{\tableplace} +% \DescribeMacro{\figureplace} +% Announcements in any language can be generated by +% using |\renewcommand| to redefine |\tableplace| and +% |\figureplace| +% +% The defaults are +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% \begin{verbatim} +%\newcommand{\figureplace}{% +% \begin{center} +% [\figurename~\thepostfig\ about here.] +% \end{center}} +%\newcommand{\tableplace}{% +% \begin{center} +% [\tablename~\theposttbl\ about here.] +% \end{center}} +%\end{verbatim} +% +% These redefinitions may be placed in the \file{endfloat.cfg} +% file (see section~\ref{sec:extra} for more information). +% +% WARNING! The name of the counters |posttbl| and |postfig| +% are very likely to change in future versions, possibly +% to |efloattttctr| and |efloatfffctr|, but whatever they +% change to, the names will be a function of either the +% file extension names |ttt| or |fff|, or the environment +% names |table| and |figure|. The purpose is so that the +% counters can be automatically created for new float types. +% +% Hooks for the \texttt{babel} package are not (yet) provided, so +% you will have to do things by hand: +% \begin{verbatim} +% \renewcommand{\figurename}{Abra} % if no babel +% \renewcommand{\figureplace}{% +% \begin{center} +% [A(z) \thepostfig.~\figurename itt legyen.] +% \end{center}} +%\end{verbatim} +% +% If you wish to change the name of the figure or table section +% heading, you can to that in the usual way (via the \texttt{babel} +% package, or by redefining \verb"\figuresection" and \verb"tablesection" +% directly). +% +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% \changes{v1.0b}{1992/03/10}{adaptation for LaTeX 2.09 and +% international namegiving by Ronald Kappert +% R.Kappert@urc.kun.nl} +% \changes{v1.99}{1992/05/27}{extensive changes by bj} +% +% \section{Commands before processing delayed material} \label{sec:hooks} +% +% \DescribeMacro{\AtBeginFigures} +% \DescribeMacro{\AtBeginTables} +% \DescribeMacro{\AtBeginDelayedFloats} +% If you wish to have some more control over how the tables and figures +% are processed, you can make use of the commands |\AtBeginDelayedFloats|, +% |\AtBeginFigures| and +% |\AtBeginTables|. If you wanted to ensure that the tables begin +% on a recto page, you could for example say something like +% |\AtBeginTables{\cleardoublepage}| in the preamble of your +% document.\footnote{It is difficult for me to imagine a situation where +% one would be using \pkg{endfloat} and the class option \texttt{twoside}, +% without which \texttt{\bslash cleardoublepage} +% is the same as \texttt{\bslash clearpage}, together. +% Another, more realistic example would be to adjust the +% \texttt{\bslash baselinestretch} for table and figure processing.} +% Material in |\AtBeginTables| and |\AtBeginFigures| is processed after +% the list of tables or list of figures (if those options are set) and +% just before the files with the delayed material in input. These are +% also processed after the original definitions of the table and figure +% environments are restored. +% +% These commands can be used either in the preamble of your document, +% or in the \file{endfloat.cfg} file (see section~\ref{sec:extra}). +% +% \section{Processing delayed floats before the end} +% +% \DescribeMacro{\processdelayedfloats} +% If you wish to process +% the floats prior to the end of the document, you may do so with the +% |\processdelayedfloats| command, which has been made available from +% version~2.4 onward. This will process all of the +% unprocessed tables and figures up to that point. You may wish +% to use this command at the end of every chapter for example. +% +% If you do use this, there are several points which should be noted. +% \begin{enumerate} +% \item All outstanding floats will be processed at the +% end of the document. +% \item If you use the |lists| option you will get a list of all +% tables and figures in the document. Not just the ones for +% the current chapter. Using lists may have other odd consequences. +% \item It is your responsibility to set |\tableplace| and +% |\figureplace| correctly, as well as to possibly reset +% the counters |\theposttbl| and |\thepostfig| (section~\ref{sec:language}) +% as you wish. If you do not reset them, they will continue to +% increase throughout the document. +% \end{enumerate} +% +% \section{Several floats per page}\label{sec:separator} +% +% \DescribeMacro{\efloatseparator} +% Endfloat places \verb"\efloatseparator" after each float in their +% respective files. By default it is defined to be \verb"\clearpage" +% forcing one float per page. You may change this by using +% \verb"\renewcommand" to redefine \verb"\efloatseparator" as you wish. +% One possibility, suggested by a user, +% is +% \begin{verbatim} +% \renewcommand{\efloatseparator}{\mbox{}} +%\end{verbatim} +% It makes most sense to place such a redefinition in the configuration +% file (see section~\ref{sec:extra}). +% +% Do not be mislead by my misleading name for this command. This +% actually appears after each float including the last one, so is +% not truly a separator. +% +% \section{Configuration file and other end environments}\label{sec:extra} +% +% Many users have suggested options to the package which are +% often journal specific. Many of the suggestion options are +% also not specific to how \pkg{endfloat} itself works, but to how +% captions and lists of figures and tables are to appear. +% Instead of burdening the package with options that, in the +% end, are specific to particular journals, I have added a +% configuration file for \pkg{endfloat} which will allow +% you to make many of these redefinitions without +% having to further increase the size of \pkg{endfloat} itself. +% +% As of version 2.4 \pkg{endfloat} will look for a file +% called \file{endfloat.cfg} in \TeX's input path. If it +% is found, it will be included after \pkg{endfloat} is loaded. +% The purpose of this configuration file is to allow the user to +% include additional definitions related to \pkg{endfloat}. +% For example, any redefinition of \verb"\figureplace" can +% go in this file, so that the preamble does not need to +% be filled with material that only makes sense when +% \pkg{endfloat} is loaded.\footnote{However, if you find yourself +% placing other material (such as double spacing or modification +% of title page and abstract) into \file{endfloat.cfg} to +% simulate a journal submission class, you should really +% do the right thing and create a journal submission class. +% Creating a minor class (one that loads an existing class +% such as \cls{article} is not difficult. See the +% \textit{Class Guide}\cite{LT3:ClassGuide} for instructions. Future versions +% of the \pkg{endfloat} documentation may include a sample.} +% +% The configuration file can also provided +% so that the user could specify environments other +% than |figure| and |table| (and their |*|-ed counterparts) which can +% be delayed until the end of the document. At the moment that would +% be very difficult to do with environments which are not processed with +% tables of figures (ie, those environments that should have a different +% ``list-of'', different counters, and different temporary files from +% those used by tables and figures); but the plan is to make even that +% ever more easier. +% +% \subsection{Modified figures and tables} +% +% As stated in section~\ref{sec:envnames}, \pkg{endfloat} will +% utterly fail if one does something like +% \begin{verbatim} +%\newenvironment{foo}{...\begin{table}...} +% {...\end{table}...} +%\end{verbatim} +% because \pkg{endfloat} will make |\begin{table}| go into a verbatim +% like mode and look for the literal string |\end{table}|, which it +% will not see in |\end{foo}|. +% +% However, for those who know \LaTeX\ internals fairly well, it is +% not impossible to tell \pkg{endfloat} to also treat the |foo| environment +% as a delayed table. It is however, not easy, although my goal +% is to make this easier in subsequent versions. It will take +% a fair amount of understanding of the implementation to see how to +% do this. And the best thing to do is to follow an example. +% +% \subsection{Sideways figures and tables} +% +% The \pkg{rotating} package\cite{RahBar:rotating} +% contains definitions of environments +% |sidewaysfigure| and |sidewaystable|,\footnote{These +% require support from the dvi driver, such as \texttt{dvips}.} +% and it would be nice to have these work in documents which also +% use \pkg{endfloat}. Appropriate redefinitions of these so that +% they work with \pkg{endfloat} +% are given in the file \file{efxmpl.cfg}. If you wish to use +% that file, you should include it as a package (possibly renamed) +% \emph{after} you include \pkg{endfloat}. Or you could simple rename +% it to \file{endfloat.cfg} and \pkg{endfloat} will include it automatically. +% +% For a description of those commands see section~\ref{sec:config}. +% +% \subsection[Changing list and caption appearance] +% {Changing the appearence of ``lists of'' and captions} +% +% When the |lists| option is used, the \LaTeX\ commands |\listoftables| +% and |\listoffigures| are called. These produce lists indicating +% the page number that each table or figure appear on. With \pkg{endfloat} +% in use this information is usually superfluous, and -- rumor has it -- +% undesirable by at least some journals. +% What seems to be required +% when using lists is that either the list does not the figure or table number, +% and/or the caption doesn't not contain the caption text. +% +% This section provides a few rudimentary samples of what you might +% put into the configuration file to get these effects. I have chosen +% not to make these package options, because they are often too journal +% specific. The availability of the configuration file means that +% you can put this things there, and the differences between \pkg{endfloat} +% using and non-\pkg{endfloat} using \LaTeX\ source documents is minimal. +% +% \subsubsection{Removing captions} +% +% \DescribeMacro{\@makecaption} +% The simplest thing is to provide a simple redefinition of |\@makecaption|. +% You should model your redefinition after the one described in +% \file{classes.dtx} for your release of \LaTeX\ instead of blindly +% following what is here. |\@makecaption| takes two arguments, the +% first will be something like ``figure 3'' and the second will +% be the caption text. We will simply ignore the second argument. +% Most of the tricky bit of the definition +% is about testing whether the caption is longer than a line. Since +% we will only be using the first argument, we can safely assume that +% the caption will fit on one line.\footnote{If you have +% \texttt{\bs figurename} as something absurdly long or a +% very narrow \texttt{\bs textwidth}, +% then you will have to use a more complicated version.} +% Your redefinition of |\@makecaption| may look like +% \begin{verbatim} +%\renewcommand{\@makecaption}[2]{% +% \vskip\abovecaptionskip +% \hbox to \hsize{\hfil #1\hfil}% +% \vskip\belowcaptionskip} +%\end{verbatim} +% +% \DescribeMacro{\caption} +% This still leaves one problem. If you use +% \begin{verse}\ttfamily +% \bs caption[\textit{short caption text}]\{\textit{full caption text}\} +%\end{verse} +% only the short caption text will ever appear in the list of tables or +% figures. The following redefinition of |\caption| will take care of +% that. +% First save the original definition of |\caption| +% \begin{verbatim} +% \let\OrigCaption\caption +% \renewcommand{\caption}[2][X]{\OrigCaption[#2]{}} +%\end{verbatim} +% +% \subsubsection{Eliminating numbers from lists of tables and figures} +% +% This is a bit trickier, and I have heard that it doesn't work +% with all versions of \LaTeXe, but I am unwilling to reinstall +% and older version for debugging this. +% A user [get the name] suggested that page numbers be suppressed +% in the lists of figures and tables. +% +% \begin{macro}{\l@figure} +% \begin{macro}{\l@table} +% All this requires is a redefinition of |\l@figure| and |\l@table| +% which are defined in \texttt{classes.txt}. Also see section~2.4.1 of the +% \emph{Companion} to see how these macros are called. +% +% The real only trick here is that |\l@figure| is defined to take +% two arguments, but the second is never used. The way it will be +% called will give it something like +% \begin{verbatim} +% {\numberline {3} Caption of that figure}{85} +%\end{verbatim} +% as arguments, where the second argument is the page number. +% The |\numberline| command will make use of the \LaTeX\ register +% |\@tempdima| for the width of the box containing the table +% or figure number. So we need to set that. +% The rest is pretty unsophisticated. You can, of course, modify it +% at will. +%\begin{verbatim} +%\renewcommand*{\l@figure}[2]{% +% \setlength\@tempdima{2.3em}% +% \noindent\hspace*{1.5em}#1\hfil\newline } +%\end{verbatim} +% And for tables: +% \begin{verbatim} +%\let\l@table\l@figure +%\end{verbatim} +% \end{macro} +% \end{macro} +% +% \section{Obsolete commands} +% +% Versions of the package prior to 2.2 had some commands which the +% user could specify in the preamble to do what \emph{some} of the +% options do now. Although I would like to eventually remove those +% commands, they are documented in the \textit{Companion}; so they +% will remain for quite some time. +% +% \section{Caveats}\label{sec:caveats} +% +% Some of the things that are listed here may be considered bugs, +% design errors, interactions to watch out for, or just the +% way life is sometimes. They are, at least, a matter of concern, and you +% should watch out for them. +% +% \subsection{Literal strings} +% +% When floats are being read, \LaTeX\ is in verbatim mode. Among +% other things, this means that the lines like +% \begin{verbatim} +%\end{figure} +%\end{verbatim} +% must appear on lines by themselves without any whitespace before +% or after them. A complete reimplementation of the most difficult +% part of the package is required to fix this limitation, but +% it is among the distant goals I have. +% +% \subsection{Extra files} +% This creates two extra files: \texttt{\meta{jobname}.fff} and +% \texttt{\meta{jobname}.ttt}. Any files by those names +% in the current directory will be overwritten. +% +% \subsection{Environment names} \label{sec:envnames} +% +% Because of how the redefinitions of \texttt{figure} and \texttt{table} +% are actually implemented, it is crucial that these environment +% names be used. That is, you cannot simply define a new environment which +% calls \texttt{figure} or \texttt{table} since the former must +% look for the literal string +% \begin{verbatim} +% \end{figure} +%\end{verbatim} +% in the document, while doing no expansion of control sequences. +% The latter does the same, but wants |table| instead of +% |figure|. This caution generally applies to all `verbatim-like' +% environments +% +% Although I haven't been able to confirm this yet, the +% \LaTeX\ system ScientificWord\footnote{A registered trademark. +% Write to info@tcisoft.com for more information.} +% may automatically put floats +% inside a macro called \verb"\FFRAME". If so, I hope +% that either someone from ScientificWord or one of its +% users will create something for \verb"\FFRAME" similarly to +% what I have done for \verb"\sidewaystable" in the sample configuration +% file (section~\ref{sec:extra}). +% +% Steps are slowly being taken to allow for new delayed environments +% to be added. That will be version~3, but I (jpg) still have +% a long way to go to get there. Each new minor release of +% the package includes few changes visible to the user, but may +% contain substantial internal changes to move the package in the desired +% direction. Version~2.4 now contains a configuration file in which +% various things can be defined. See section~\ref{sec:extra} for +% more information. +% +% Once it does become easier to delay other environments, the +% word ``float'' may not be the best expression, since there will +% be no reason to expect that only floating environments are +% delayed. +% +% \subsection{The Environment's environment}\label{sec:envenv} +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% +% Because no \TeX\ expansion is done while the material in these +% floats are read in, but is delayed until the floats are +% processed at the end of the document, it will be the state of +% \TeX\ at the end which will matter. For example, a document +% with something like +% \begin{verbatim} +% \newcommand{\XXX}{YYY} +% ... +% \begin{table} +% ... +% ... \XXX ... +% ... +% \end{table} +% ... +% \renewcommand{\XXX}{ZZZ} +% ... +% \end{document} +%\end{verbatim} +% will process the table with |\XXX| expanding to |ZZZ|. +% +% In any particular instance, the user can use either re-redefine +% |\XXX| before the end of document, or can re-redefine it using +% on of the hooks, |\AtBeginDelayedFloats|, |\AtBeginTables|, or +% |\AtBeginFigures|, which are discussed in section~\ref{sec:hooks}. +% +% \subsection{Verbatim in delayed floats}\label{sec:verbatim} +% +% There should be no problem with verbatim text within a +% float unless that verbatim text contains an |\end{figure}| or +% |\end{table}| in a figure or table respectively. I don't see +% a fix for this. All I can imagine is that you create a new +% delayed type which behaves exactly like |figure| (or |table|) +% (even writing |\begin{figure}| and |\end{figure}| to the +% \texttt{.fff} file. [\textit{mutatis mutandis} for |table|]) +% In future versions, I may create a sample like this in the +% sample configuration file, but it is a low priority since +% the only time one would write such a figure or table would +% be in a document about \LaTeX\ and it is difficult to imagine +% circumstances where a document about \LaTeX\ would need to +% be subject to \pkg{endfloat}. +% +% \subsection{Ordering End Document material}\label{sec:enddocument} +% +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% \changes{v2.1}{1994/06/25}{Use AtEndDocument. jpg} +% +% Version 2.1 uses the \LaTeXe\ directive |\AtEndDocument|. This +% makes it \LaTeXe\ specific, but it means that it can be used +% with other packages that use that directive. Previous versions +% of \pkg{endfloat} redefined |\enddocument|. Now several +% packages or commands can add stuff at the ends of documents +% and still work together. This does mean that \emph{the order +% of loading packages can be important!} If you use several +% packages that may use the |\AtEndDocument| directive and you +% get funny results, try loading them in a different order. +% It that doesn't work, complain to the maintainer of the packages +% so that they will work out a way for the packages to interact +% correctly. +% +% \changes{v2.1}{1994/06/25}{Use AtEndDocument. jpg} +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% \subsubsection{General ordering and wish list}\label{sec:order} +% +% I believe that the output of a \LaTeXe\ run should be independent +% of the order in which package are loaded. It would be possible +% to set this up, but it would take coordination of all package +% writers who use |\AtEndDocument|. The actual call to |\AtEndDocument| +% would not occur during package loading, but some new command, +% like |\ExecuteAtEndDocument| would be called by the user after +% all such packages are loaded, with tags for each thing in the +% packages, so something like +% \begin{verbatim} +% \usepackage{lastpage} +% \usepackage{endfloat,xyzzy} +% \ExecuteAtEndDocument{endfloat,xyzzy,lastpage} +%\end{verbatim} +% and the order of End Document material would be the \pkg{endfloat} +% material, followed by \textsf{xyzzy}, and finally by \pkg{lastpage}. +% The package \pkg{xyzzy} is fictitious, while the +% package \pkg{lastpage}\cite{Goldberg:lastpage} exists, +% it doesn't really matter what these do. +% +% I will have to wait until someone else develops such a system, but +% I will gladly modify the packages I am responsible for maintaining +% to comply with it. Until then +% I will include a message +% which begins with \texttt{AED} +% in every usage of |\AtEndDocument|, and try to minimize any side +% effects my usage may have. +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% +% \subsection{What are packages for?} \label{sec:monoton} +% +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% +% One option is to not have packages like \pkg{endfloat} actually call +% |\AtEndDocument|, but merely define a user level command which +% would make the call itself. This way, the order of those particular +% commands would matter, but not the ordering of the package loading. +% +% Another advantage of this is that packages could easily be things +% which make commands available, but do not actually entail +% a change in \texttt{.dvi} output themselves. It is classes, +% and options to classes which do that. That is, the actual +% loading of packages should have no visible effects, other than +% making new commands available. (Typeface changing +% packages, such as \textsf{times}, are obvious, and principled, exceptions.) +% The disadvantage is that it leads +% to two-step modifications (loading and calling) to change +% a document. +% +% I would propose any package (other than typeface changing +% packages) which changes output instead of merely providing additional +% commands, should be clearly labeled as doing such in the documentation +% and in a message. +% +% \subsection{Float position specifiers} \label{sec:gobble} +% +% Float position specifiers are passed to the temporary files +% and are used when those floats are processed. This may lead +% to funny results, especially if the first figure or first table uses +% |[p]| while the |heads| option is being used. This can lead to +% that float, floating to the page after the header. +% Most other float specifiers will not lead to any problems, because +% the package mucks about the various float specification parameters. +% +% \subsection{Misplaced headers} \label{sec:buggyheads} +% +% Version 2.2c contains a partial fix to a problem with the placement +% of floats around the section headers produced by the |heads| option. +% There were two variants of the problem. In one the first float +% after the header would float above the header. This has been fixed +% by using the \LaTeXe\ command |\suppressfloats|. The other +% problem is that that the first float may float to a page float +% after the page with the header on it. +% +% This has been partially fixed, but +% if users use the |[p]| specification on their first floats or if +% there are large floats, the problem can still +% show up. It is recommended that whenever the user wants a |[p]| that +% an |[hp]| be used instead. In normal running (without \pkg{endfloat}), +% this should only rarely effect the document, but it will help avoid +% the problem with the floating end float. An |[h]| may also be needed for +% large floats. There is only need to be concerned about the first +% figure and first table. +% +% The natural solution to this problem will require that the bug +% in described in section~\ref{sec:gobble} be resolved. +% +% \subsection{Known incompatibilities} +% +% Above I have outlined sources of potential conflicts and incompatibilities +% with other packages. Those sections contain a discussion of potential +% work-arounds. Here I list where I know of specific incompatibilities +% with distributed packages. This list is not complete. If you know +% on an addition, please let me know. +% +% \subsubsection{Environment names} +% +% The packages listed here all have the problem described in +% section~\ref{sec:envnames}. The work-arounds are also described +% there. \pkg{rotating}, \emph{Scientific Word}. +% +% \subsubsection{Ordering end material} +% +% The following packages put things at the end of the document, and +% peculiar results are possible if you don't pay attention to the +% order in which packages are loaded. This is described in +% section~\ref{sec:order}. The package \pkg{lastpage} is among +% these, as are recent versions of the package \pkg{harvard}. +% +% \subsubsection{Conflicting \texttt{\bs enddocument}} +% +% Prior to \LaTeXe's provision of the hook |\AtEndDocument|, package +% writers were forced to redefine |\enddocument|. Some did so +% in ways that over wrote any other package's redefinition of the +% same. When you encounter such a package you should try to get +% its author to release a modified version. Version~2.0 of \pkg{endfloat} +% was such a packages. So was the winter 1993 version of~\pkg{harvard} +% (which has been fixed). But +% for those using an old version of \pkg{harvard} you will encounter +% problems. +% +% \subsubsection{Miscellaneous} +% +% There are several other potential conflicts that don't fall into +% the broader categories. +% +% \begin{itemize} +% \item |\listoftables| and |\listoffigurers| are left undefined +% in class \cls{elsart}. But this is because Elsevier does +% not want those lists. Elsevier, bless them, does not want +% floats at the end for submissions to its journals. So +% there is no reason to use \pkg{endfloat} (with or without lists) +% with class \cls{elsart}. Let's hope that other publishers +% will follow Elsevier's lead in understanding that the +% submission rules which were created were created for a reason, +% and when those reasons no longer apply, the rules should be changed. +% +% I look forward to the day when \pkg{endfloat} will serve +% no purpose. +% +% \item The \pkg{float} package appears to work in my limited tests. +% Although, only tables and figures get moved to end. +% The success is due to the robustness with which \pkg{float} +% is written. +% +% \end{itemize} +% +% \section{Support}\label{sec:support} +% +% As is usual, this package is provided with no warranty whatsoever. +% However, it is my desire to make it useful and usable, although +% I may very well fail at that. If you +% need a feature added, see whether the hooks will allow you to +% do what you want. If something goes wrong look over +% section~\ref{sec:caveats}. But if you need to get in touch +% with the maintainer, you should send email to me at +% \texttt{J.Goldberg@Cranfield.ac.uk}. +% +% \section{History}\label{sec:history} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% \changes{v2.1}{1994/06/25}{Use AtEndDocument. jpg} +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% +% \subsection{The burden of history} +% +% By version 2.2 the file was getting so that most of the bytes +% were things that had been commented out of previous versions, +% and changelog messages. Instead of this making things clearer +% to the maintainer, it turns out to be clutter. I (jpg) have started +% to throw out some of history (it is not really useful to see +% who corrected what typo or cleaned up what extraneous space +% with a |%| in 1991. Although my purge of history is far +% from complete, it should be noted that I do want to preserve +% the spirit of the history. I have already been miscredited +% with original authorship. I have made extensive modifications +% and extensions, but the basic core (even if only a small amount +% of version 2.0 code remains) and concept are JDM's. +% +% \subsection{Author} +% The file was written by Darrell McCauley (jdm5548@diamond.tamu.edu) +% in February and March 1992. He acknowledges that much of the +% guts are adapted from +% \texttt{comment.sty} by Victor Eijkhout (eijkhout@csrd.uiuc.edu). +% So, although Jeff +% Goldberg (J.Goldberg@Cranfield.ac.uk) now maintains this, he should not +% be credited with writing the package, but only with extending and +% maintaining it. He has contributed enough so that by version~2.4 +% he claimed co-authorship. +% +% \subsection{Version 2.4} +% +% Version 2.4 involves the largest set of additional features +% since at least version 2.2 (which added all the options). Some +% of these are +% \begin{itemize} +% +% \item +% This version adds various user hooks, both as commands: +% |\AtBeginFigures|, |\AtBeginTables|, and +% |\AtBeginDelayedFloats| (section~\ref{sec:hooks}), +% and |\efloatseparator| (section~\ref{sec:separator}). +% +% \item +% Most importantly, there is the addition of a configuration file +% (section~\ref{sec:extra}). An example configuration file contains +% code which allows \pkg{endfloat} to work properly with +% the \texttt{sidewaystable} environment of the \pkg{rotating} +% package. +% +% \item +% Additionally, all figures and tables are written as |figure*| and +% |table*| in the temporary files, eliminating the need to force single +% column mode when table and figures are processed. +% +% \item +% There are a fair number of internal changes to the code (which +% make it easier for the various hooks to work). +% +% \item +% Also changed some internal command names, such as |\xtable|, +% which did not include |@| to names that to include |@| such as +% |\ef@extable|. Also renamed all commands |\end...| to something +% else so as to not use up valuable environment name space. +% +% \item +% Removed dead code. It was making this too hard to read. +% +% \item +% Documentation changes to reflect user level changes. Also added +% more to the Caveats section (section~\ref{sec:caveats}). +% +% \end{itemize} +% +% During the past few months I have received a wonderful level +% of feedback from users. Many made very useful suggestions. +% Even those queries which resulted from a misunderstanding of +% how to use the package have been lead me to modify the +% documentation. I had intended to acknowledge all of you, +% but the list has grown too long. You know who you are. Thanks, +% and good luck with your journal submissions! +% +% \subsection{Version 2.3} +% +% Very minor changes in the organization of some parts of the +% code, but I fixed a bug I introduced while ``cleaning up'' for +% for version~2.2: I had misunderstood part of the original +% code and commented out a necessary trick to allow for |figure*| +% The bug was very real, so I am releasing this version~2.3 as soon +% as I can document it, and am not waiting to include other planned +% improvements. +% +% \subsection{Version 2.2} +% +% A user (Kate Hedstrom) pointed out a number of bugs and shortcomings, +% which led me (jpg) to finally sit down and make some of the changes +% I had been planning on making. The effect of the |tablesfirst| option +% was specifically requested, and also work on the bug discussed +% in section~\ref{sec:buggyheads}. Although my bug fix is partial, +% version 2.2 includes the means to suppress the headers altogether. +% +% \subsubsection{Package options} +% +% I, jpg, have used the package option facility of \LaTeXe\ +% to get other options (described in section~\ref{sec:options}). +% I also made some cosmetic changes (breaking up lines to reduce +% the number of overfull boxes when printing the documentation, +% line breaks and indentation to make the code more readable. +% I also replaced some |\def|s with |\newcommand|s and +% |\providecommand|s. This are not logged, because I actually +% found that all of the logging information was hampering my +% ability to read and modify the code. +% +% \subsubsection{Internal commands} +% +% In version 2.2, I also replaced some code internal +% to |\xfigure| and |\xtable| with |\efloat@foundendfig| +% and |\efloat@foundendtab|. This was merely a stylistic +% change. +% +% I also deleted some some definitions +% which are not used. These had had probably been left as hooks, but with +% not enough for them to be useful hooks. There are some cases where +% I have left these in when I could see what they could be used for. +% I have tried to add a note as to their potential use. +% +% \subsubsection{Documentation} +% +% Massive changes to user documentation, and some to the code +% documentation. +% +% \subsection{Version 2.1} +% +% I, Jeffrey Goldberg, in June 1994 wanted to use Darrell McCauley's +% \file{endfloat.sty} with \LaTeXe. It worked fine until I +% needed to use the \LaTeXe\ directive |\AtEndDocument| for +% some other function, and discovered that it was not functioning +% and that it was because version 2.0 (and earlier) of +% \texttt{endnotes.sty} redefined |\enddocument|. The +% fix that I needed was trivial, but it made the file no +% longer compatible with \LaTeX209. As a consequence, it seemed +% that the only way I could make up for this crime was to make +% it fully compatible with \LaTeXe. +% +% \subsection{Minor changes (version 2.0)} +% +% A series of changes and fixes were made in March 1992. Many +% by the original author others by Ronald Kappert (R.Kappert@urc.kun.nl) +% who replaced literal strings with |\figurename|, and so on; and +% by schultz@unixg.ubc.ca who pointed out gobbling bug with +% |\nomarkersintext|. +% +% \subsection{Brian Junker's modifications (version 2.0)} +% +% Brian Junker (brian@stat.cmu.edu) made a number of fixes. +% Here are his change comments: +% \changes{v1.99}{1992/05/27}{extensive changes by bj} +% +% \begin{enumerate} +% \item Changed ``comment" to ``figure" and ``komment" to +% ``table" throughout, to avoid collisions with other +% style files' definitions of ``comment". Also +% fixes |\begin{table}| ends with |\end{komment}| +% error generated by my (older) version of PC\TeX. +% +% \item Fixed gobble of float position specifiers. +% There are two ways to do this: +% \begin{enumerate} +% \item |\write\ifnextchar[{\gobbleuntilnext}{}| +% into every +% environment written to |\jobname.fff|, etc.; +% \item save \LaTeX's old def's of |\figure| and |\table| +% and re-use them when processing fig's and tables. +% I chose the latter approach, for maximum +% consistency with \LaTeX, other style files, etc. +% \end{enumerate} +% +% \item Added def's of |\tablename| and |\figurename|, +% which my version of PC-\TeX\ seemed to need. +% [backward compatibility for earlier versions ---jdm] +% +% \item Moved formatting of figure and table markers to +% |\figureplace| and |\tableplace|. +% +% \item Style change: in-text markers are now +% centered reminders like ``[Figure 4 about here.]". +% +% \item Style change: added list of tables and +% figures to the table and figure sections. +% Change back to old format with |\nofiglist| and +% |\notablist|. +% +% \item Changed default to |\markersintext|. +% +% \item Fixed trivial typo in |\@openposttbls| +% \changes{v1.99}{1992/05/27}{extensive changes by bj} +% \end{enumerate} +% All changes marked |% bj| at end of line. +% ---Brian Junker (brian@stat.cmu.edu) +% +% \section{Wish list} +% +% I doubt that I will really work on this wish list in the near future +% but in addition to solving the know bugs, there are two major sorts of +% changes that I (jpg) would like to see. +% \begin{enumerate} +% \item +% Updating the verbatim writing by using the tools in the +% |verbatim| standard packages, and the |moreverb| package. +% Since they provide more generalized an cleaner verbatim code +% then this which dates back to the earliest days of \LaTeX. +% \item +% Integrate with the |float| package which (among other things) +% enables the user to define new floating environments. +% \pkg{endfloat} v2.2 only allows figures and tables to be placed at +% the end, not all types of potential floats. Nor does it allow +% the user to specify which of the two types it does recognize +% to be placed at the end. +% \end{enumerate} +% +% \begin{thebibliography}{1} +% +% \bibitem{Goldberg:lastpage} +% Jeffrey Goldberg. +% \newblock The \texttt{lastpage} package. +% \newblock Electronic documentation +% +% \bibitem{A-W:GMS94} +% Michel Goossens, Frank Mittelbach, and Alexander Samarin. +% \newblock {\em The {\LaTeX} Companion}. +% \newblock Addison-Wesley, Reading, Massachusetts, 1994. +% +% \bibitem{LT3:ClassGuide} +% The \LaTeX3 Project. +% \newblock \emph{\LaTeXe\ for class and package writers} +% \newblock (Preliminary draft) June 1994. +% \newblock Electronic Documentation +% +% \bibitem{Lingnau:float} +% Anselm Lingnau. +% \newblock An Improved Environment for Floats +% \newblock June 1994 (version~1.2) +% \newblock Electronic Documentation +% +% \bibitem{RahBar:rotating} +% Sebastian Rahtz and Leonor Barroca. +% \newblock A style option for rotated objects in \LaTeX{} +% \newblock April 1994. (version~2) +% \newblock Electronic Documentation +% \end{thebibliography} +% +%\StopEventually{\PrintIndex\PrintChanges} +% +% \section{The documentation driver file} +% +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% The next bit of code contains the documentation driver file for +% \TeX{}, i.e., the file that will produce the documentation you are +% currently reading. It will be extracted from this file by the +% \texttt{docstrip} program. +% \begin{macrocode} +%<*driver> +\documentclass{ltxdoc} +\setlength\hfuzz{2pt} % ignore small overfulls +\CodelineIndex +\EnableCrossrefs +%\DisableCrossrefs % Say \DisableCrossrefs if index is ready +%\RecordChanges % Gather update information +%\OnlyDescription % comment out for implementation details +\begin{document} + \DocInput{endfloat.dtx} +\end{document} +%</driver> +% \end{macrocode} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% +% \section{The implementation} +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% \subsection{File and package identification} +% +% We start by checking if this file was already loaded. If not we +% identify the current version. +% \changes{v2.1}{1994/06/25}{Use LaTeX2e package form. jpg} +% \begin{macrocode} +%<*package> +\NeedsTeXFormat{LaTeX2e}[1994/06/01] +\ProvidesPackage{endfloat}[\filedate\space\fileversion\space + LaTeX2e package puts figures and tables at end (jdm)] +% \end{macrocode} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e package form. jpg} +% +% \subsection{How it was written} +% +% [this subsection mostly based on jdm's original text.] +% +% Overview: redefine the figure and table environment following +% the |comment| environment of +% \texttt{comment.sty} written by Victor Eijkhout +% \texttt{eijkhout@csrd.uiuc.edu}. +% +% Instead of processing what was between |\begin{...}| and |\end{...}|, +% every line is written to a file (|\jobname.fff| for figures, |\jobname.ttt| +% for tables). Then, when you do an |\end{document}|, the figure section +% is processed, then the table section is processed. The |tablesfirst| +% option changes this order. +% +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% \changes{v2.1}{1994/06/25}{Use AtEndDocument. jpg} +% +% After initial versions, I [jdm] received much help from Ronald Kappert +% and Brian Junker (see change log below). \emph{Thanks guys!} +% +% \subsection{Define warning message} +% Since I, JPG, am making the commands options, I want to warn users +% to use the options, since these commands should be discontinued +% in future versions. +% \begin{macrocode} +\newcommand{\ef@OldCmd}[2]{\PackageWarning{endfloat} + {The command \protect#1 is obsolete and will be\MessageBreak + omitted from future releases of the endfloat package.\MessageBreak + Use the package option `#2' instead.}} +% \end{macrocode} +% \subsection{Flags} +% Put all of the newifs for the user options and flags here. +% \begin{macrocode} +\newif\if@domarkers +\newif\if@tablist % bj +\newif\if@figlist % bj +\newif\if@tabhead +\newif\if@fighead +\newif\if@tablesfirst +% \end{macrocode} +% +% \subsubsection{Default values} +% Set default values of all of the flags here. +% \begin{macrocode} +\@domarkerstrue +\@tablisttrue +\@figlisttrue +\@tabheadfalse +\@figheadfalse +\@tablesfirstfalse +% \end{macrocode} +% +% \begin{macro}{\markersintext} +% \begin{macro}{\nomarkersintext} +% First set up flags and defaults. First set for flagging +% whether markers appear in text. +% \changes{v1.99}{1992/05/27}{extensive changes by bj} +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% \changes{v2.2a}{1994/10/07}{Create new options} +% \begin{macrocode} +\DeclareOption{nomarkers}{\@domarkersfalse } +\DeclareOption{markers}{\@domarkerstrue } +% \end{macrocode} +% \begin{macrocode} +\newcommand{\markersintext}{\@domarkerstrue + \ef@OldCmd{\markersintext}{markers}} +\newcommand{\nomarkersintext}{\@domarkersfalse + \ef@OldCmd{\nomarkersintext}{nomarkers}} +% \end{macrocode} +% +% \end{macro} +% \end{macro} +% \begin{macro}{\dotablist} +% \begin{macro}{\notablist} +% Options for creating lists of Tables \ldots +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% \changes{v1.99}{1992/05/27}{extensive changes by bj} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% +% \begin{macrocode} +\newcommand{\dotablist}{\@tablisttrue \ef@OldCmd{\dotablist}{tablist}} +\newcommand{\notablist}{\@tablistfalse \@tabheadtrue + \ef@OldCmd{\notablist}{notablist}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\dofiglist} +% \begin{macro}{\nofiglist} +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% \changes{v1.99}{1992/05/27}{extensive changes by bj} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% \ldots and Figures +% \begin{macrocode} +\newcommand{\dofiglist}{\@figlisttrue \ef@OldCmd{\dofiglist}{figlist}} +\newcommand{\nofiglist}{\@figlistfalse \@figheadtrue + \ef@OldCmd{\nofiglist}{nofiglist}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Now we make options |tablist| and |notablist| and |figlist| and +% |nofiglist|. Note that options will be processed in order of +% the |\DeclareOption| commands in this file. So by placing +% |list| after |nolist| we ensure that if both are specified, |list| +% is in effect. +% +% First two new options +% \begin{macrocode} +\DeclareOption{nolists}{\@tablistfalse \@figlistfalse } +\DeclareOption{lists}{\@tablisttrue \@figlisttrue } +% \end{macrocode} +% Now the more specific ones, which must come after the more +% general options to get the right interactions between semi-conflicting +% options. +% \begin{macrocode} +\DeclareOption{notablist}{\@tablistfalse } +\DeclareOption{nofiglist}{\@figlistfalse } +\DeclareOption{tablist}{\@tablisttrue } +\DeclareOption{figlist}{\@figlisttrue } +% \end{macrocode} +% +% The \texttt{notablist} and \texttt{nofiglist} options still leave +% a section header at the beginning of the tables and figures. +% +% Note again the role that order plays, by placing |fighead| after +% |noheads| it ensures that |fighead| will be in effect if both +% are specified. +% \begin{macrocode} +\DeclareOption{heads}{\@figheadtrue \@tabheadtrue } +\DeclareOption{noheads}{\@figheadfalse \@tabheadfalse } +\DeclareOption{fighead}{\@figheadtrue } +\DeclareOption{tabhead}{\@tabheadtrue } +\DeclareOption{nofighead}{\@figheadfalse } +\DeclareOption{notabhead}{\@tabheadfalse } +% \end{macrocode} +% Also need option for putting tables first +% \begin{macrocode} +\DeclareOption{tablesfirst}{\@tablesfirsttrue } +\DeclareOption{figuresfirst}{\@tablesfirstfalse } +% \end{macrocode} +% Other option stuff +% \begin{macrocode} +\DeclareOption*{% + \PackageWarning{endfloat}{Unknown option `\CurrentOption'}} +\ProcessOptions +% \end{macrocode} +% \subsection{Other preliminaries} +% I (jpg) have been slowly working at making more and more of the +% code for processing tables and figures common, with the idea +% that once I have factored out all that is common with them +% I will be then be able to set up code for other floats, +% I have still a very long way to go, but common code created +% for version 2.3 is here. +% +% \begin{macro}{\efloat@openpost} +% \begin{macro}{\efloat@newwrite} +% attempt to reduce old |\@openpostfigs| and |\@openposttbls| to +% one command +% The first one calls |\newwrite| so, |\efloat@newwrite{ttt}| +% will have the effect of |\newwrite\efloat@postttt|. +% \begin{macrocode} +\def\efloat@newwrite#1{% + \expandafter\newwrite\csname efloat@post#1\endcsname} +% \end{macrocode} +% \end{macro} +% |\efloat@openpost{ttt}| will be the same as +% \begin{verbatim} +% \immediate\openout\efloat@postttt=\jobname.ttt\relax +%\end{verbatim} +% while also calling |\ef@setct{ttt}{1}| to set a flag +% (|@ef@tttopen|) in the case of |ttt|. +% \begin{macrocode} +\def\efloat@openpost#1{\expandafter\immediate\expandafter\openout + \csname efloat@post#1\endcsname =\jobname.#1\relax + \ef@setct{#1}{1} + \message{(\jobname.#1)}} +% \end{macrocode} +% \begin{macro}{\ef@setct} +% \begin{macro}{\ef@newct} +% |\ef@newct{ttt}| will create a new counter called |\@ef@tttopen| +% and |\ef@setct{ttt}{1}| would set it to 1. +% \begin{macrocode} +\def\ef@newct#1{% + \expandafter \newcount \csname @ef@#1open\endcsname} +\def\ef@setct#1#2{\expandafter\global\csname @ef@#1open\endcsname=#2\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% Conditionally open a file +% \begin{macrocode} +\def\efloat@condopen#1{% + \expandafter\ifnum \csname @ef@#1open\endcsname>0 \relax \else + \efloat@openpost{#1}\fi} +% \end{macrocode} +% Immediate write to one of these files. +% \begin{macrocode} +\def\efloat@iwrite#1#2{% + \expandafter\immediate\expandafter\write\csname efloat@post#1\endcsname + {#2}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\efloatseparator} +% A user suggested that in some cases we may not wish +% to force \pkg{endfloat} to put each float on a page by itself. By +% default that is what it does, by defining \verb"\efloatseparator" +% to be \verb"\clearpage". If you want it to be something else, +% you may redefine this command in the configuration file or preamble. +% \begin{macrocode} +\newcommand{\efloatseparator}{\clearpage} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\postfig} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% Counters +% \changes{v1.99}{1992/05/27}{extensive changes by bj} +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% \begin{macrocode} +\newcounter{postfig} +% \end{macrocode} +% \end{macro} +% +% Code for opening the |\jobname.fff| +% \begin{macrocode} +\efloat@newwrite{fff} +\ef@newct{fff} +% \end{macrocode} +% \begin{macro}{\posttbl} +% \changes{v1.99}{1992/05/27}{extensive changes by bj} +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% \changes{v2.3c}{1995/03/08}{Remove some tbl specific stuff -jpg} +% Same stuff but for tables +% \begin{macrocode} +\newcounter{posttbl} +% \end{macrocode} +% \end{macro} +% +% Commands for opening |\jobname.ttt| +% This sets up new write for tables +% \begin{macrocode} +\efloat@newwrite{ttt} +\ef@newct{ttt} +% \end{macrocode} +% \begin{macro}{\ef@makeinnocent} +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% \begin{macrocode} +\newcommand*{\ef@makeinnocent}[1]{\catcode`#1=12 } +% \end{macrocode} +% \end{macro} +% \begin{macro}{\figureplace} +% \begin{macro}{\tableplace} +% Place markers. +% \changes{v1.0b}{1992/03/10}{adaptation for LaTeX 2.09 and +% international namegiving by Ronald Kappert +% R.Kappert@urc.kun.nl} +% \changes{v1.99}{1992/05/27}{extensive changes by bj} +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% +% \begin{macro}{\figurename} +% \begin{macro}{\tablename} +% Make sure that |\tablename| and |\figurename| are defined. +% \begin{macrocode} +\providecommand{\figurename}{Figure} +\providecommand{\tablename}{Table} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \changes{v1.99}{1992/05/27}{extensive changes by bj} +% \begin{macrocode} +\newcommand{\figureplace}{% + \begin{center} + [\figurename~\thepostfig\ about here.] + \end{center}} +\newcommand{\tableplace}{% + \begin{center} + [\tablename~\theposttbl\ about here.] + \end{center}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \subsection{Parsing \texttt{figure} and \texttt{table}} +% \changes{v1.99}{1992/05/27}{extensive changes by bj} +% +% Now we get the utilities for parsing needed to +% get unmodified code into files. +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% \begin{macrocode} +%\def\@gobbleuntilnext[#1]{} % Not used (jpg) +\let\@bfig\figure % bj +\let\@btab\table % bj +\let\efloat@float\relax +% \end{macrocode} +% +% \begin{macro}{\figure} +% the {blank space } appearing with |\nomarkersintext| was fixed by adding +% a percent sign (|%|) at strategic locations, determined by setting +% |\tracingcommands=1| ---Darrell +% \changes{v2.0}{1992/06/02}{Corrected problem of extra blank spaces in +% the output when nomarkersintext was in effect +% (bug reported by schultz@unixg.ubc.ca). +% jdm} +% +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% As mentioned by the jdm above, the following is based +% on \texttt{comment.sty}. It appears that the idea is to +% turn off all control sequence processing and read in from +% input each line, until a line is found that looks like +% |\end{figure}|. Thus the actual name of the environment +% is hardcoded into the use of the macros +% (see section~\ref{sec:envnames}). ---jpg] +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% \changes{v1.1}{1992/03/13}{verified that floats were +% used before a section was +% created for them. jdm} +% \changes{v1.2}{1992/03/14}{corrected typo that may have caused figures not +% to be printed. jdm} +% +% \changes{v1.99}{1992/05/27}{extensive changes by bj} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% \begin{macrocode} +\def\figure{% +% \end{macrocode} +% If we have already done one table then the file we write to +% is already open, and there is nothing to do, else open it up. +% \begin{macrocode} + \efloat@condopen{fff} +% \end{macrocode} +% +% We have read a |\begin{figure}| to get here. We need to write that +% into the file. +% +% +% I (jpg) would add the |[htb]| parameters to what +% gets written, but that leaves any float specifiers that had +% been employed by the user wandering around in the floated material. +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% \begin{macrocode} + \efloat@iwrite{fff}{\string\begin{figure*}}% +% \end{macrocode} +% Since the figures are not actually processed until much later, we don't +% use \LaTeX's figure numbering mechanism, but we use our own. Also +% put marker in text (if option set). In the future, I may combine +% the counter for the markers and the counter used as a flag for +% whether the file is open into one thing. +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% \begin{macrocode} + \if@domarkers% + \addtocounter{postfig}{1}% % bj + \figureplace% % bj + \fi% +% \end{macrocode} +% \begin{macro}{\@currenvir} +% |\@currenvir| (current environment) it set to fool +% latex into expecting the end of this environment +% to match the environment name. It will be used more extensively +% when dealing with +% the problem discussed in section~\ref{sec:envnames}. +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% \begin{macrocode} + \def\@currenvir{efloat@float}% +% \end{macrocode} +% \end{macro} +% Now we set up catcodes for reading in text without processing +% things. But need to make |^^M| special since we want to read +% line by line. +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% \begin{macrocode} + \begingroup% + \let\do\ef@makeinnocent \dospecials% + \ef@makeinnocent\^^L% and whatever other special cases + \endlinechar`\^^M \catcode`\^^M=12 \ef@xfigure}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\efloat@foundend} +% When |\ef@xfigure| is verbatim-like reading the figure it has to +% do some clean-up after it as found the |\end{figure}| or +% |\end{figure*}|. This is it. [this part written by jpg v2.2] +% \begin{macrocode} +\def\efloat@foundend#1#2{\def\next{\endgroup\end{efloat@float}% + \efloat@iwrite{#1}{\string\end{#2}}% + \efloat@iwrite{#1}{\string\efloatseparator}% + \efloat@iwrite{#1}{ }}}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ef@xfigure} +% |\ef@xfigure| reads line by line, checking whether each line +% is the |\end{figure}|. If it is, then write out end stuff +% to the file. Otherwise write out read in line to the +% file and do the |\next| line. +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% \begin{macrocode} +{\catcode`\^^M=12 \endlinechar=-1 % + \gdef\ef@xfigure#1^^M{\def\test{#1}% +% \end{macrocode} +% Test for |\end{figure}| +% \begin{macrocode} + \ifx\test\ef@endfiguretest + \efloat@foundend{fff}{figure*} +% \end{macrocode} +% Test for |\end{figure*}| +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% \begin{macrocode} + \else\ifx\test\ef@enddblfiguretest + \efloat@foundend{fff}{figure*} +% \end{macrocode} +% Finally, if none of the above, we have a line of text in the +% body of the figure which should be written to the file. +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% \begin{macrocode} + \else% + \efloat@iwrite{fff}{#1}% + \let\next\ef@xfigure% + \fi \fi \next}% +}% +% \end{macrocode} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% \begin{macro}{\ef@endfiguretest} +% \begin{macro}{\ef@enddblfiguretest} +% Generalizing these end\ldots{}test so that they +% can be used for user specified floating environments will +% require more |\expandafter|s then you can shake a stick at. +% I am not looking forward to taking on that task. I should +% look at the version control package to see what I can +% lift from there, since it must be the same problem. +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% \begin{macrocode} +{\escapechar=-1% + \xdef\ef@endfiguretest{\string\\end\string\{figure\string\}}% + \xdef\ef@enddblfiguretest{\string\\end\string\{figure*\string\}}% +}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% \end{macro} +% \begin{macro}{\table} +% |\table| is the same as |\figure|. But I am not going to +% document it as much. +% \changes{v2.1b}{1994/07/03}{Modify documentation -jpg} +% \changes{v1.99}{1992/05/27}{extensive changes by bj} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% \begin{macrocode} +\def\table{\efloat@condopen{ttt} + \efloat@iwrite{ttt}{\string\begin{table*}}% + \if@domarkers + \addtocounter{posttbl}{1} % bj + \tableplace % bj + \fi + \def\@currenvir{efloat@float}% + \begingroup + \let\do\ef@makeinnocent \dospecials + \ef@makeinnocent\^^L% and whatever other special cases + \endlinechar`\^^M \catcode`\^^M=12 \ef@xtable} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ef@xtable} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% \begin{macrocode} +{\catcode`\^^M=12 \endlinechar=-1 % + \gdef\ef@xtable#1^^M{\def\test{#1} + \ifx\test\ef@enddbltabletest + \efloat@foundend{ttt}{table*} + \else\ifx\test\ef@endtabletest + \efloat@foundend{ttt}{table*} + \else + \efloat@iwrite{ttt}{#1}% + \let\next\ef@xtable + \fi \fi \next} +} +% \end{macrocode} +% \end{macro} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% \begin{macrocode} +{\escapechar=-1 + \xdef\ef@enddbltabletest{\string\\end\string\{table*\string\}} + \xdef\ef@endtabletest{\string\\end\string\{table\string\}} +} +% \end{macrocode} +% Define starred floats. +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% \begin{macrocode} +\@namedef{figure*}{\figure} +\@namedef{table*}{\table} +% \end{macrocode} +% \subsection{Processing Figures and Tables} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% \begin{macrocode} +\providecommand{\figuresection}{Figures} +\providecommand{\tablesection}{Tables} +% \end{macrocode} +% \begin{macro}{\AtBeginFigures} +% \begin{macro}{\AtBeginTables} +% \begin{macro}{\AtBeginDelayedFloats} +% Here we set-up the hooks for getting stuff into |\process...| +% commands easily. The command |\g@addto@macro| is defined +% in \file{classes.dtx}. I was about to write it myself, when I realized that +% it must already exist for things like |\AtBeginDocument|. +% \begin{macrocode} +\newcommand{\processfigures@hook}{\@empty} +\def\AtBeginFigures{\g@addto@macro\processfigures@hook} +\newcommand{\processtables@hook}{\@empty} +\def\AtBeginTables{\g@addto@macro\processtables@hook} +\newcommand{\processdelayedfloats@hook}{\@empty} +\def\AtBeginDelayedFloats{% + \g@addto@macro\processdelayedfloats@hook} +\newcommand{\processotherdelayedfloats}{\@empty} +% \end{macrocode} +% \end{macro}\end{macro}\end{macro} +% \begin{macro}{\processfigures} +% \changes{v1.99}{1992/05/27}{extensive changes by bj} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% \begin{macrocode} +\def\processfigures{% +% \end{macrocode} +% First test to see if there are any figures to process. If so +% do it. +% \begin{macrocode} + \expandafter\ifnum \csname @ef@fffopen\endcsname>0 +% \end{macrocode} +% Close the file for writing. Set a flag saying so. +% \begin{macrocode} + \immediate\closeout\efloat@postfff \ef@setct{fff}{0} +% \end{macrocode} +% Deal with headers and list of figures if necessary +% \begin{macrocode} + \clearpage % bj + \if@figlist % bj + {\normalsize\listoffigures} % bj + \clearpage % bj + \fi + \if@fighead + \section*{\figuresection} % bj +% \end{macrocode} +% See the discussion in section~\ref{sec:place} for what problem +% the |suppressfloats[t]| is here to solve. If I understand the +% \textit{Companion} correctly (page 144), this was not available +% in previous versions of \LaTeX. +% \begin{macrocode} + \suppressfloats[t] % jpg + \fi + \markboth{\uppercase{\figuresection}}{\uppercase{\figuresection}}% bj +% \end{macrocode} +% Use any user defined hooks just before inputting the file. +% \begin{macrocode} + \processfigures@hook \@input{\jobname.fff} + \fi} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\processtables} +% \changes{v1.99}{1992/05/27}{extensive changes by bj} +% \changes{v2.1}{1994/06/25}{Use LaTeX2e documentation form. jpg} +% Just like |\processfigures|, only not so well documented. +% \begin{macrocode} +\def\processtables{% + \expandafter\ifnum \csname @ef@tttopen\endcsname>0 + \immediate\closeout\efloat@postttt \ef@setct{ttt}{0} + \clearpage % bj + \if@tablist % bj + {\normalsize\listoftables} % bj + \clearpage % bj + \fi + \if@tabhead + \section*{\tablesection} % bj + \suppressfloats[t] % jpg + \fi + \markboth{\uppercase{\tablesection}}{\uppercase{\tablesection}}% bj + \processtables@hook \@input{\jobname.ttt} + \fi} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Getting float placement correct} \label{sec:place} +% +% In versions prior to this attempt (v2.2c), when the |heads| options +% were used, the float could could either float to the next page, leaving +% the section header alone, or could float to the top of the page, leaving +% section header at the bottom of the page. The idea here is to change the +% parameters that place floats, to very very strongly +% encourage floats at the bottom of pages. +% It also allows for easy top floats. Thus obviating the need +% for float pages. +% A |\suppressfloats[t]| in the commands +% that issue the headers will make sure that the floats don't float +% above the headers. +% +% \begin{macrocode} +\renewcommand{\bottomfraction}{1.0} +\renewcommand{\topfraction}{1.0} +\renewcommand{\textfraction}{0.0} +% \end{macrocode} +% +% \subsubsection{Calling the processing commands} +% Note that there is an extra set |{| and |}| so that the +% restoration of the original definitions is in a group and is \emph{not} +% global. If, for some reason, you wish them to be global then use +% something like +% \begin{verbatim} +% \makeatletter +% \AtBeginDelayedFloats{\global\let\table\@btab \global\let\figure\@bfig} +% \makeatother +%\end{verbatim} +% \begin{macro}{\processdelayedfloats} +% \begin{macrocode} +\newcommand{\processdelayedfloats}{{% +% \end{macrocode} +% Here we reset stuff to apply while end stuff is being processed. +% Prior to version 2.4, these were in |\processtablels| and |\processfigures|. +% \begin{macrocode} + \def\baselinestretch{1}\normalsize + \let\figure\@bfig + \let\table\@btab +% \end{macrocode} +% The hook comes after those settings so as to override them if desired. +% \begin{macrocode} + \processdelayedfloats@hook +% \end{macrocode} +% Process tables, figures, and others (or figures, tables, others) +% \begin{macrocode} + \if@tablesfirst \processtables\processfigures + \else \processfigures\processtables \fi + \processotherdelayedfloats}} +% \end{macrocode} +% \end{macro} +% \changes{v1.99}{1992/05/27}{extensive changes by bj} +% \changes{v2.1}{1994/06/25}{Modify documentation text. jpg} +% \changes{v2.1}{1994/06/25}{Use AtEndDocument. jpg} +% \begin{macrocode} +\AtEndDocument{% % jpg + \message{AED endfloat: Processing end Figures and Tables}% % jpg + \onecolumn + \processdelayedfloats } +% \end{macrocode} +% Use, or don't use, configuration file. +% \begin{macrocode} +\InputIfFileExists{endfloat.cfg}{% + \typeout{*** Using endfloat.cfg ***}}{} +%</package> +% \end{macrocode} +% +% \section{Extra macros -- HIGHLY Experimental} \label{sec:config} +% +% \subsection{Getting new delayed environments} +% +% I have been promising to make it easy to define new sorts +% of environments which can be delayed. I don't expect to deliver +% on that promise any time soon; so until I do, I will provide a +% couple of useful extra macros in a configuration fill which +% the user may experiment with. The two that I have needed are +% used in conjunction with the +% \textsf{rotating} package\cite{RahBar:rotating}, which +% among other things provides environments |sidewaystable| and +% |sidewaysfigure|. With the following definitions, these should +% also work properly with \pkg{endfloat}. +% +% \begin{macrocode} +%<*config> +% Warning! This configuration file is experimental and +% will probably only work with the version of endfloat.sty +% with which it is distributed. It is fully expected that the +% mechanism by which the stuff here is done will change radically +% in future versions. For detailed comments on this code see +% endfloat.dtx. +% \end{macrocode} +% +% Setting up sidewaystable and sidewaysfigure is fairly easy since they +% will use the same counters as table and figure, and more importantly +% the same temporary files. So, no special |\processsideways...| needs +% to be created. +% +% We must, of course, have use of the rotating package. +% \begin{macrocode} +\RequirePackage{rotating} +% \end{macrocode} +% First save the definitions from |rotating| of the environments +% in question, since they will need to be restored when they are +% processed at the end. +% \begin{macrocode} +\let\efsaved@sidewaysfigure\sidewaysfigure +\let\efsaved@sidewaystable\sidewaystable +% \end{macrocode} +% +% And to restore them when the time comes. These hooks are called by +% |\processtables| and |\processfigures|. We use the hooks to +% restore the original definitions of |sideways...|. +% \begin{macrocode} +\AtBeginTables{\let\sidewaystable=\efsaved@sidewaystable\relax} +\AtBeginFigures{\let\sidewaysfigure=\efsaved@sidewaysfigure\relax} +% \end{macrocode} +% \begin{macro}{\sidewaystable} +% This redefinition of |sidewaystable| is very similar to the redefinition +% of |\table| in |endfloat| proper. When a |\begin{sidewaystable}| is +% expanded, it will write |\begin{sidewaystable}| to |\jobname.ttt| and +% otherwise do what it does for a |\begin{table}|, except of course that +% it is looking for an |\end{sidewaystable}|. +% \begin{macrocode} +\def\sidewaystable{\efloat@condopen{ttt} + \efloat@iwrite{ttt}{\string\begin{sidewaystable}}% + \if@domarkers + \addtocounter{posttbl}{1} + \tableplace + \fi + \def\@currenvir{efloat@float}% + \begingroup + \let\do\ef@makeinnocent \dospecials + \ef@makeinnocent\^^L% and whatever other special cases + \endlinechar`\^^M \catcode`\^^M=12 \ef@xsidetable} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ef@xsidetable} +% The definition of |\ef@xsidetable| is similar to the definition of +% |\ef@xtable| in |endfloat| proper. It is a little bit simpler, since +% there is no need to worry about the |*|-ed versions. Note that it +% writes out verbatim the environment to the |.ttt| file. When +% it finds a line that satisfies the |\ef@endsidetabletest| it +% will call a macro that will write |\end{sidewaystable}| to the +% |\jobname.ttt| file. +% \begin{macrocode} +{\catcode`\^^M=12 \endlinechar=-1 % + \gdef\ef@xsidetable#1^^M{\def\test{#1} + \ifx\test\ef@endsidetabletest + \efloat@foundend{ttt}{sidewaystable} + \else + \efloat@iwrite{ttt}{#1}% + \let\next\ef@xsidetable + \fi \next} +} +% \end{macrocode} +% \end{macro} +% +% Now figures +% \begin{macro}{\sidewaysfigure} +% \begin{macrocode} +\def\sidewaysfigure{\efloat@condopen{fff} + \efloat@iwrite{fff}{\string\begin{sidewaysfigure}}% + \if@domarkers + \addtocounter{postfig}{1} + \figureplace + \fi + \def\@currenvir{efloat@float}% + \begingroup + \let\do\ef@makeinnocent \dospecials + \ef@makeinnocent\^^L% and whatever other special cases + \endlinechar`\^^M \catcode`\^^M=12 \ef@xsidefigure} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ef@xsidefigure} +% \begin{macrocode} +{\catcode`\^^M=12 \endlinechar=-1 % + \gdef\ef@xsidefigure#1^^M{\def\test{#1} + \ifx\test\ef@endsidefiguretest + \efloat@foundend{fff}{sidewaysfigure} + \else + \efloat@iwrite{fff}{#1}% + \let\next\ef@xsidefigure + \fi \next} +} +% \end{macrocode} +% \end{macro} +% We need the strings to test for ends of the sideways things. +% \begin{macrocode} +{\escapechar=-1% + \xdef\ef@endsidefiguretest{\string\\end\string\{sidewaysfigure\string\}}% + \xdef\ef@endsidetabletest{\string\\end\string\{sidewaystable\string\}}}% +% \end{macrocode} +% +% \begin{macrocode} +%</config> +% \end{macrocode} +% \Finale +% +\endinput diff --git a/Master/texmf-dist/source/latex/endfloat/endfloat.ins b/Master/texmf-dist/source/latex/endfloat/endfloat.ins new file mode 100644 index 00000000000..58462da56bb --- /dev/null +++ b/Master/texmf-dist/source/latex/endfloat/endfloat.ins @@ -0,0 +1,38 @@ +\def\fildedate{1995/06/01} +\def\batchfile{endfloat.ins} +\input docstrip.tex + +\def\SimplePackage#1{% + \generateFile{#1.sty}{t}{\from{#1.dtx}{package}}} + +\def\SimpleConfig#1{% + \generateFile{#1.cfg}{t}{\from{#1.dtx}{config}}} + +\def\SimpleDriver#1{% + \generateFile{#1.drv}{t}{\from{#1.dtx}{driver}}} + +\def\SimpleClass#1{% + \generateFile{#1.cls}{t}{\from{#1.dtx}{class}}} + +\keepsilent + +\preamble + +IMPORTANT NOTICE: +This is part of a set of tools (or better yet, experiments) written +by Jeff Goldberg (j.goldberg@Cranfield.ac.uk), who is writting this +not only for it utility value, but as part of the process of learning +LaTeX. These tools are far from perfect, and comments are welcome. + +The usual disclaimers apply: If it doesn't work right that's your +problem (but do let me know). + +The usual GNU-style conditions apply: If you change it, you take +the blame; if you pass it on, pass on all present condiditions; + +\endpreamble + +\SimplePackage{endfloat} +\SimpleDriver{endfloat} +%\SimpleConfig{endfloat} +\generateFile{efxmpl.cfg}{t}{\from{endfloat.dtx}{config}} diff --git a/Master/texmf-dist/source/latex/endfloat/readme.enf b/Master/texmf-dist/source/latex/endfloat/readme.enf new file mode 100644 index 00000000000..76a7b70aeaa --- /dev/null +++ b/Master/texmf-dist/source/latex/endfloat/readme.enf @@ -0,0 +1,118 @@ +-----BEGIN PGP SIGNED MESSAGE----- + +This is the readme file for the endfloat package v2.4i + +This readme was modified on October 2, 1997 but without +updated endfloat itself, instead to fix errors in this file +and in endfloat.ins + +Endfloat is a LaTeX package. Versions 2.1 and above require +LaTeX2e. + +Accompanying files should be: + + readme.txt (or readme.endfloat) This file + endfloat.dtx Docstrip archive (essential) + endfloat.ins (La)TeX batch file (if you + don't know what it is + then you DO need it) + endfloat.asc PGP separate signature for + endfloat.dtx (to check + authenticity) + +============================================================ +Overview: + the package places figures and tables at the end of the document, + as often requested by journals for non-camera ready submission. + +======================================================== +Installation: + +Run + + latex endfloat.ins + +This will produce three files, endfloat.sty, endfloat.drv and efxmpl.cfg . +You can run LaTeX on endfloat.drv for the documentation. + +You should copy the file endfloat.sty to where you keep +your (La)TeX inputs. You should read the documentation to find out +more about the example configuration file, efxmpl.cfg. + +To produce the documentation, run LaTeX on endfloat.drv (or endfloat.dtx) +a couple of times, and then use the makeindex program (which might be +called makeindx on your system) to generate the index + + makeindex -g -s gind.ist endfloat + +Then run LaTeX (at least) two more times to get the index in the table +of contents. + +========================================================= +Major changes in version 2.4 since 2.3: + Configuration file (with example of getting sidewaystable to work), + Many new hooks for more user control. Internal changes. + +Major changes in version 2.3 and 2.2 since 2.1: + Documentation and many internal changes. + Added options for suppressing "Tables" and "Figures" section heads, for + switching order of tables and figures. Use of package options + generally. + +================================================= +Maintainer: Jeff Goldberg (J.Goldberg@Cranfield.ac.uk) +Original author: James Darrell McCauley + +Obtaining endfloat: The necessary files are kept on the Comprehensive +TeX Archive Network (CTAN). Current CTAN sites are ftp.tex.ac.uk, +ftp.shsu.edu, and ftp.dante.de. They are also mirrored at other locations. +Once on CTAN, type the command "quote site index endfloat" to +find where endfloat lives. It is probably in +macros/latex/contrib/supported/endfloat . +Get the whole directory. + +Experimental versions of the package may also be available at +ftp://ftp.cranfield.ac.uk/public/cc/cc047/TeX/sources . Note that +the experimental versions may have internal inconsistencies, may +fail to work altogether, and most certainly will have incorrect +documentation. + + +================================================= +License and copying: +The usual General Public Software License Agreement (version 2 or later) +applies: You can copy it freely, but you can't restrict other's rights to it. +If you distributed it, you should make the source available +(the .dtx file, the .ins file and this file). +If you change it, change the name and take credit/blame for +your changes. + +================================================= +No Warranty: +There is no warranty. If it doesn't work right, none of the authors +may be held liable for any direct or indirect damage. There are +some known bugs (see the documentation), there may very well be +some unknown bugs. + +=================================================== +This is a PGP signed textfile. And the file endfloat.asc is a detached +signature for the file endfloat.dtx. + +For information about PGP try + http://www.pgp.net/pgp/ +or send mail with subject HELP PGP to + galactus@stack.urc.tue.nl + +My public key can be found on the key server (pgp-public-keys@keys.pgp.net) +and via my home page (http://www.cranfield.ac.uk/public/cc/cc047/) and +by finger (finger goldberg@csli.stanford.edu or goldberg@ny01.nytud.hu) + +-----BEGIN PGP SIGNATURE----- +Version: 2.6.2i + +iQCVAgUBNDPIdRu6nIqxqP+5AQFjeQP/WCbJ19LJcb8rGmndDLOLOkRnHbaHKCFS +G2OCxYEcER7k6JVQ1L1hY1UKbT3uUBuNv44iXviWc4nCDMkNGQ/TuYeMZ/8lyBnp +xpcgpWhFuPrrVr1kuIDnEa79SE4PROayTnhiM4zHgc40YTQBnTtrZzfUt9P9/knf +mCv57H7hO6I= +=wck7 +-----END PGP SIGNATURE----- |