\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 , %% Jeff Goldberg %% Maintainer: Jeff Goldberg %% Latest Version: Version 2.4i % \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} % % \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 ***}}{} % % \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} % % \end{macrocode} % \Finale % \endinput