\documentclass{article} \usepackage{listings} \lstloadlanguages{[LaTeX]TeX} \lstset{language=[LaTeX]TeX, basicstyle=\small, labelstyle=\tiny, labelstep=0, labelsep=5pt, commentstyle=\emph, stringstyle=\texttt} \title{The Plates Package} \author{Anthony A. Tanbakuchi \\ \small{atanbakuchi@hotmail.com} \\ v0.1 last revised 2002/3/18} \date{} \begin{document} \maketitle \begin{abstract} The plates package provides a simple facility for inserting color figures in documents when they should be gathered and printed together --- just like in books with a section of color plates. The benefit of such a facility is to allow these special figures to be printed separately and later slipped into the final document. The package provides the plates environment to handle this situation. The user need only place these special figures in a plate environment instead of a figure environment and issue a command to print the plates at a chosen location in the document. Additionaly, if the author wishes to have a version of the document where the color figures are included in the text merely including the \emph{figures} option will change the behavior of the plates environment to a figure environment, causing the plates to be printed directly in the text. Finally, the use of \lstinline!\autoref{...}! from the \textbf{hyperref} package will allow references to logically chose the prefix \emph{Figure} or \emph{Plates} depending if the figure option has been given. \end{abstract} It is important to note that one could just create a plate appendix in their document and put all their special figures directly in this section of the document, alleviating the need for this package. However, by using the plates package one can turn on and off the functionality, allowing the creation of printed version of the document and possibly on line versions (like PDF's) where it would be more logical to have the plated near the point referenced in the text. Furthermore, by placing the plates in the document's text (like figures) the source document is much easier to edit. \section{Usage} The new package can be invoked in the preamble by,\\ \lstinline!\usepackage[]{plates}!\\ Now the new plate environment is available for use in the document. The plate environment is used just like the figure environment. \begin{lstlisting}{} \begin{plate} %Your normal figure commands here eg. \cation{A caption} \label{...} \end{plate} \end{lstlisting} NOTE: it is recommended that you use the \textbf{hyperref} package, the plates package dynamically changes the \lstinline!\autoref{...}! command such that if \lstinline!\autoref{...}! is issued and no options were used when the package was loaded, then Plate \ldots is printed, however it the package is used with the \emph{figures} option, then \lstinline!\autoref{...}! is properly redefined to output Figure \ldots. \bigskip \noindent {\large Package Options:} \begin{description} \item[figures] Treats plates just like figures. Gathering is turned off, \lstinline!\autoref{plate:...}! references as Figure instead of Plate. \item[onefloatperpage] Ensures that one float is on a single page. After each float \lstinline!\cleardoublepage! is called, this is particulary useful in a double sided document where the color figures will be one to a page and one sided. If you wish to define your own actions to be taken after each float, you can manually do it, an example of double page clearing is:\\ \lstinline!\renewcommand{\efloatseparator}{\cleardoublepage}! \item[memoir] If the memoir class is being used, then the option will cause \lstinline!\ProcessPlates! to create an appendix page called Plates before the plates are printed. If this option is used and the memoir class is not in use an error will occur. If you are not using the memoir package, but wish to define your own actions to create appendix pages and such before the plates are printed, then you can manually define the command: \lstinline!\AtBeginPlates{ Your Actions Here }!. \end{description} \bigskip \noindent {\large New Commands:} \begin{description} \item[$\backslash$listofplates] Functions just like $\backslash$listoffigures but prints a list of the plates. \item[$\backslash$ProcessPlates] At point of issue in document all the gathered plates thus far are printed. Therefore, the command can be used to accumulate plates to the end of each chapter (if issued at the end of each chapter) or at the end of the document in an appendix (if issued at the end). Note, if the command is never issued, then it will dump all the gathered plates at the end of the document. \item[$\backslash$atBeginPlates] User definable actions that should occur just before the plates are printed. (Eg. \lstinline!\atBeginPlates{\chapter{Plates}}!) It is preferable to use this method rather than hard coding the commands into the document in front of the \lstinline!\ProcessPlates! so that if the \emph{figures} option is used the actions will not be executed. \item[$\backslash$setplatename] Allows user to define the actual name used for the plates environment in the table of contents, caption, etc. The default is \lstinline!\setplatename{Plate}!, alternately you could set it to \lstinline!\setplatename{Diagram}!. Note, you should use the singular form of the desired name. \end{description} \section{Examples} The following example shows how the commands are used. The example will print out all \emph{figure} environments normally, but the \emph{plate} environments will be gathered and printed at the end of the document where the command \lstinline!\ProcessPlates! is issued. \begin{lstlisting}{} \documentclass{article} \usepackage{plates} \usepackage{hyperref} \setplatename{Photo} \atBeginPlates{\section{Photos}} \begin{document} %Print a list of figures and plates \listoffigures \listofplates \section{Conclusion} The document text begins. Here we can include a plate and reference it by \autoref{Plate:1}, yet it won't appear until we issue the \ProcessPlates command. \begin{plate} This is a plate. \caption{A plate caption.} \label{Plate:1} \end{plate} Now a figure in our document. \autoref{fig:1} will appear near our reference to it. \begin{figure} A figure to look at. \caption{A figure} \label{fig:1} \end{figure} Another plate. \begin{plate} This is a plate. \caption{A plate caption.} \label{Plate:2} \end{plate} \section{Conclusion} Some final text to go with our thoughts. %Now we wish all the plates to print here. \ProcessPlates % The \atBeginPlates command is issued, % creating a new Photos section. % Next, % Plate:1 then Plate:2 is printed. \end{document} \end{lstlisting} \bigskip Thus, the document has contains by order: introduction section, fig:1, concluding section, a new section called Photos, then plate:1 and plate:2. If we issued the option \emph{figures} to the plates package, the plates would be printed in the text, the order would be, introduction section, plate:1, fig:1, plate:2, then concluding section. \lstinline!\listofplates! and \lstinline!\ProcessPlates! would have no effect. \section{Credits} This package is built from a little new code and some modified code from other packages. Specifically, code from the memoir class is used to define a new float environment, to enable the gathering of the plates modified code from the endfloat package has also been used. I would like to thank the authors of both noted packages for providing much of the needed facilities enabling this package. \section{Closing} If you like this package, find bugs, or just have useful comments please let the me know at atanbakuchi@hotmail.com. Please note that I am not a TeX hack, just someone who had a wish for this type of package and managed to find a solution. \end{document}