[texhax] where to get \listoffigures and figure environment implementation

Alexandre Kretchetov krechet at stanford.edu
Sat May 28 00:27:35 CEST 2005


Dear ALL

For convenience, I'm redefining my figure environment in the
following way (down in the letter)
to have a nice Figures exactly where I want them.

Question: but after modification \listoffigures produces blank page. Do
you have any idea how it can be fixed?

Of course I can go with just standard figures, and I will, If I would not
find the answer.

Thank you in advance
 Alexandre

P.S. I'm sending you the style file also.

================================


\renewenvironment{figure}                        % FIGURE (not float)
{%                                               % Begin new environment
  \vskip 12pt plus 4pt minus 12pt
  \noindent
  \begin{minipage}{\textwidth}%
  \begin{center}
  \refstepcounter{figure}
  \FIGtrue
}
{%                                               % End environment
  \end{center}
  \vskip 6pt plus 2pt minus 2pt%
  \setbox\b at x=\hbox{\captionbox}
  \captionbox%                               % print deferred caption
  \end{minipage}%
  \vskip 10pt plus 4 pt minus 4pt%
  \FIGfalse
}


-------------- next part --------------
% Stanford University PhD thesis style -- modifications to the report style

% This is unofficial so you should always double check against the

% Registrar's office rules

%

% People are free to borrow as long as they change the name and date

% in the \typeout lines, the name of the file, and acknowledge the

% work that has been done by previous people.  Ideally they should

% comment their changes.



% Original version by Joseph Pallas back in 1989

% Modified by Emma Pease 5/7/92

%   added singlespace environment from doublespace.sty

%   added switches for variant title pages

%   modified the figure environment according to changes in latex.tex

%   corrected the signature page due to University rule changes

%   added an optional third reader to signature page

% Corrected a spacing problem with style changes 5/14/92 - Emma

% Modified by Emma Pease 1/10/95

% Modified for latex2e  5/17/95

%   changed \@xfloat and \@footnotetext to reflect latex2e changes

% Modified for latex2e 6/22/95 (Emma Pease)

%   changed singlespace environment so it would work (taken from doublespace.sty)

% Modified 9/8/95 (Emma Pease)

%   removed doublespace.sty commands and explicitely inputted

%   doublespace

% Modified 12/17/96 (Emma Pease)

%   added optional \coprincipaladvisor (\coprincipaladviser)

% Modified 5/29/98

%   replaced the required doublespace.sty by setspace.sty

% Modified 8/21/98

%   added a \businessthesis for the school of business

% Modified 8/22/98 

%   added a \lawthesis

% Modified 8/23/98

%   spelling error in \businessthesis def corrected

% Modified 5/14/1999 by Emma Pease

%   'By' dropped from title page

% Modified 7/26/1999 by Emma Pease

%   copyright page fixed

% Modified 9/28/99 by Emma Pease

%   more copyright page fixings

% Modified 10/28/99 by Emma Pease

%   and more copyright page fixings plus a minor mod on bibliography

%   need to start thinking of overhauling to standard package format

% Modified 11/26/99

%   fixed copyrightyear so that all Fall quarter theses are next

%   year's copyright



% Modified 5/31/01 by Emma Pease

%   fixed certification statement.  Setup for twoside option.

% Modified 6/4/01 by Emma Pease

%   emphasized that it is unofficial

% Modified 8/3/01 by Emma Pease

%   setup so that on twoside if the intro material (page numbered with

%   roman numerals) ends on an odd page an extra blank page is included so

%   the main body (page numbered with arabic numbers) starts on an odd

%   absolute page  (explanation modified 5/28/02)

% Modified 5/28/02 by Emma Pease

%   made first and second reader optional (not that the first reader

%   should ever be missing but someone managed to avoid a second reader)

%   If they aren't defined, they won't appear

% Modified 7/13/2003 by Emma Pease

%   dropped signature line for ``Approved for the University Committee

%   on Graduate Studies'' on signature page.  Also made sure the next

%   section starts on an odd page if two sided.

% Modified 11/19/03 by Emma Pease

%   fixed the bibliography so the addcontentsline works correctly with

%   hyperref.  Thanks to Peter Sturdza for pointing out this

% Modified 2/14/04 by Emma Pease

%   Changed documentation on how to change line spacing

% Modified 6/29/04 by Emma Pease

%   Correction to humanitiesthesis definition



% Modified 11/9/2004 by Emma Pease

%   Reformatted Signature Page to fit requirements

%   Reformatted Title page to fit requirements





%%%%%

%%%%%   PRELIMS

%%%%%



\typeout{Document Style Option `suthesis' for latex2e <$Date: 11/09/2004 $>.}

\typeout{Note that this tries to fulfill the Stanford Thesis

  requirements but it is unofficial}



% First thing we do is make sure that report has been loaded.  A

% common error is to try to use suthesis as a documentstyle.

\@ifundefined{chapter}{\@latexerr{The `suthesis' option should be used

with the `report' document style}{You should probably read the

suthesis documentation.}}{}



%%%%%

%%%%%   DOCUMENTATION

%%%%%



\long\def\comment#1{}

\comment{



  Example of use:

    \documentclass{report}



\usepackage{suthesis-2e}

\dept{Computer Science}





    \begin{document}

    \title{How to Write Theses\\

            With Two Line Titles}

    \author{John Henry Candidate}

    \principaladviser{John Parker}

    \firstreader{John Green}

    \secondreader{John BigBooty (Another Department)}

    \thirdreader{Jane Supernumerary} %if needed

 

    \beforepreface

    \prefacesection{Preface}

        This thesis tells you all you need to know about...

    \prefacesection{Acknowledgments}

        I would like to thank...

    \afterpreface

 

    \chapter{Introduction}

         ...

    \chapter{Conclusions}

         ...

    \appendix

    \chapter{A Long Proof}

         ...

    \bibliographystyle{plain}

    \bibliography{mybib}

    \end{document}



Documentation: 

    This style file modifies the standard report style to follow the

    Graduate Degree Support Section of the Registrar's Office's

    "Directions for Preparing Doctoral Dissertations".  It sets the

    margins and interline spacing and disallows page breaks at

    hyphens.



    The \beforepreface command creates the title page, a copyright page

    (optionally), and a signature page.  Then the user should put

    preface section(s), using the \prefacesection{section title}

    command.  The \afterpreface command then produces the tables of

    contents, tables and figures, and sets things up to start

    the main body (on arabic page 1).

    

    The following commands can control what goes in the front matter

    material:

    

        \title{thesis title}

        \author{author's name}

        \dept{author's department}

                - Computer Science if omitted

The following switches allow for special title pages (not all are current)

        \committeethesis - for a thesis in a committee (no dept.)

                           use \dept{committee name}

        \programthesis - for a thesis in a program (no dept.)

                           use \dept{program name}

        \educationthesis - for the School of Education. \dept doesn't matter

        \businessthesis - for the GraduateSchool of Business. \dept doesn't matter

        \lawthesis - for the School of law. \dept doesn't matter

        \humanitiesthesis - for a thesis also submitted to the Graduate

                            Program in Humanities

        \specialthesis  - for a Graduate Special thesis

        \industrialthesis - for a thesis in Industrial Engineering

        \dualthesis     - for a thesis in a dual language department.

                          Also define \language{language}.



        \principaladviser{the principal advisor's name}

           (or \principaladvisor, if you prefer advisor spelled with o)

        \coprincipaladviser{optional second principal advisor's name}

           (or \coprincipaladvisor, use only if you have two principal

           advisors only for the second one)

        \firstreader{the first reader's name}

        \secondreader{the second reader's name}

        \thirdreader{optional third reader's name}

        \submitdate{month year in which submitted to GPO}

                - date LaTeX'd if omitted

        \copyrightyear{year degree conferred (next year if submitted

          in Fall quarter)}

                - year LaTeX'd (or next year, in December) if omitted

        \copyrighttrue or \copyrightfalse

                - produce or don't produce a copyright page (true by default)

        \thesiscopyrighttrue or \thesiscopyrightfalse

                - produces the style of copyright page listed by the

                Thesis Office or the style that everyone else uses

                (Thesis office by default).

        \figurespagetrue or \figurespagefalse

                - produce or don't produce a List of Figures page

                  (true by default)

        \tablespagetrue or \tablespagefalse

                - produce or don't produce a List of Tables page

                  (true by default)



This style uses interline spacing that is 1.3 times normal, except

in the figure and table environments where normal spacing is used.

That can be changed by doing:

    \setstretch{1.6}

(or whatever you want instead of 1.6)



This command should be put before the \begin{document} command but

after loading the packages



You can also set any particular section in singlespacing mode by using

the singlespace environment.  For example



\begin{quote}

\begin{singlespace}

...

\end{singlespace}

\end{quote}



makes the quote singlespaced.  See the documentation for setspace.sty

for more information.



The example at the beginning shows the 12pt substyle being used.  This

seems to give acceptable looking results, but it may be omitted to get

smaller print.



}



%%%%%

%%%%%   SETUP DOUBLESPACING

%%%%%



% include doublespace.sty for some of the stuff below



\RequirePackage{setspace}





% Use 1.3 times the normal baseline-to-baseline skip

\setstretch{1.5}





%%%%%

%%%%%   SETUP MARGINS AND PENALTIES NEEDED FOR STANFORD THESIS

%%%%%



% We need 1" margins except on the binding edge, where it is 1 1/2"

% Theses may be either single or double sided

  \if at twoside

     \setlength\oddsidemargin   {36.1\p@}

     \setlength\evensidemargin  {0\p@}

     \setlength\marginparwidth {40\p@}

  \else

     \setlength\oddsidemargin   {36.1\p@}

     \setlength\evensidemargin  {36.1\p@}

     \setlength\marginparwidth  {40\p@}

  \fi



\marginparsep 10pt

%\oddsidemargin 0.5in \evensidemargin 0in

%\marginparwidth 40pt 





\topmargin 0pt \headsep .5in

\textheight 8.5in \textwidth 6in



% Disallow page breaks at hyphens (this will give some underfull vbox's,

% so an alternative is to use \brokenpenalty=100 and manually search

% for and fix such page breaks)

\brokenpenalty=10000



%%%%%

%%%%%   SETUP COMMANDS PECULIAR TO THESES

%%%%%



% \author, \title are defined in report; here are the rest of the

% front matter defining macros

\def\dept#1{\gdef\@dept{#1}}

\def\advis at r{Adviser} % default spelling

\def\principaladviser#1{\gdef\@principaladviser{#1}}

\def\principaladvisor#1{\gdef\@principaladviser{#1}\gdef\advis at r{Advisor}}

\def\coprincipaladvisor#1{\gdef\@coprincipaladviser{#1}\gdef\advis at r{Co-Advisor}}

\def\coprincipaladviser#1{\gdef\@coprincipaladviser{#1}\gdef\advis at r{Co-Adviser}}

\def\firstreader#1{\gdef\@firstreader{#1}}

\def\secondreader#1{\gdef\@secondreader{#1}}

\def\thirdreader#1{\gdef\@thirdreader{#1}}

\def\submitdate#1{\gdef\@submitdate{#1}}

\def\copyrightyear#1{\gdef\@copyrightyear{#1}} % \author, \title in report

% needed only for dual language departments

\def\language#1{\gdef\@language{#1}} \def\@language{babel}

\def\@title{}\def\@author{}\def\@dept{computer science}

\def\@principaladviser{}\def\@firstreader{*}\def\@secondreader{*}

\def\@coprincipaladviser{*}

\def\@thirdreader{*}

\def\@submitdate{\ifcase\the\month\or

  January\or February\or March\or April\or May\or June\or

  July\or August\or September\or October\or November\or December\fi

  \space \number\the\year}

% Stanford says that Fall quarter theses should have the next year as the

% copyright year

\ifnum\month>8

    \@tempcnta=\year \advance\@tempcnta by 1

    \edef\@copyrightyear{\number\the\@tempcnta}

\else

    \def\@copyrightyear{\number\the\year}

\fi

\newif\ifcopyright \newif\iffigurespage \newif\iftablespage

\newif\ifthesiscopyright

\copyrighttrue \figurespagetrue \tablespagetrue

\thesiscopyrighttrue



\def\@standardsub{submitted to the department of \uppercase\expandafter{\@dept}\\

                and the committee on graduate studies}

\def\@standardend{}



\def\committeethesis{\let\@whichsub=\@committeesub}

\def\programthesis{\let\@whichsub=\@programsub}

\def\educationthesis{\let\@whichsub=\@educationsub}

\def\businessthesis{\let\@whichsub=\@businesssub}

\def\lawthesis{\let\@whichsub=\@lawsub}

\def\humanitiesthesis{\let\@whichsub=\@humanitiessub%

\let\@whichend=\@humanitiesend}

\def\specialthesis{\let\@whichsub=\@specialsub%

\let\@whichend=\@specialend}

\def\industrialthesis{\let\@whichsub=\@industrialsub%

\let\@whichend=\@industrialend}

\def\dualthesis{\let\@whichsub=\@dualsub%

\let\@whichend=\@dualend}





\def\@committeesub{SUBMITTED TO THE COMMITTEE ON \uppercase\expandafter{\@dept}\\

                AND THE COMMITTEE ON GRADUATE STUDIES}

\def\@programsub{SUBMITTED TO THE PROGRAM IN \uppercase\expandafter{\@dept}\\

                AND THE COMMITTEE ON GRADUATE STUDIES}

\def\@educationsub{SUBMITTED TO THE SCHOOL OF EDUCATION\\

                AND THE COMMITTEE ON GRADUATE STUDIES}

\def\@businesssub{SUBMITTED TO THE GRADUATE SCHOOL OF BUSINESS\\ AND THE

  COMMITTEE ON GRADUATE STUDIES}

\def\@lawsub{SUBMITTED TO THE SCHOOL OF LAW\\

                AND THE COMMITTEE ON GRADUATE STUDIES}



\def\@humanitiessub{SUBMITTED TO THE DEPARTMENT OF \uppercase\expandafter{\@dept},\\

                THE GRADUATE PROGRAM IN HUMANITIES,\\

                AND THE COMMITTEE ON GRADUATE STUDIES}

\def\@humanitiesend{\\IN\\ \uppercase\expandafter{\@dept} AND HUMANITIES}



\def\@specialsub{SUBMITTED TO THE COMMITTEE ON GRADUATE STUDIES}

\def\@specialend{\\IN\\ \uppercase\expandafter{\@dept}}





\def\@dualsub{SUBMITTED TO THE DEPARTMENT OF \uppercase\expandafter{\@dept}\\

AND THE COMMITTEE ON GRADUATE STUDIES}

\def\@dualend{\\IN\\ \uppercase\expandafter{\@language}}





\let\@whichend=\@standardend

\let\@whichsub=\@standardsub





\def\titlep{%

        \thispagestyle{empty}%

        \null\vskip1in%

        \begin{center}

                \large\uppercase\expandafter{\@title}

        \end{center}

        \vfill

        \begin{center}

\large

%                \sc a dissertation\\

%                \lowercase\expandafter{\@whichsub}\\

%                of stanford university\\

%                in partial fulfillment of the requirements\\

%                for the degree of\\

%                doctor of philosophy \uppercase\expandafter{\@whichend}

                A DISSERTATION\\

                \uppercase\expandafter{\@whichsub}\\

                OF STANFORD UNIVERSITY\\

                IN PARTIAL FULFILLMENT OF THE REQUIREMENTS\\

                FOR THE DEGREE OF\\

                DOCTOR OF PHILOSOPHY \uppercase\expandafter{\@whichend}

        \end{center}

        \vfill

        \begin{center}

                \rm \@author\\

                \@submitdate\\

        \end{center}\vskip.5in\newpage}



\def\thesiscopyrightpage{%

        \null\vfill

        \begin{center}

                \large

                \copyright\ Copyright\ by \@author\ \@copyrightyear\\

                All Rights Reserved

        \end{center}

        \vfill\newpage}



\def\tradcopyrightpage{%

        \null\vfill

        \begin{center}

                \large

                Copyright\ \copyright\ \@copyrightyear\ by \@author\\

                All Rights Reserved

        \end{center}

        \vfill\newpage}





\long\def\signature#1{%

\begin{flushright}

\begin{minipage}{5.in}

\parindent=0pt

I certify that I have read this dissertation and that, in my opinion,

it is fully adequate in scope and quality as a dissertation for the degree

of Doctor of Philosophy.

\par

\vspace{.5in}

%\hbox to 4in{\hfil\shortstack{\vrule width 3in height 0.4pt\\ #1}}

\hbox to 5.in{\hfil\begin{tabular}{@{}l@{}}\vrule width 3in height

    0.4pt depth 0pt\\ #1\end{tabular}}

\end{minipage}

\end{flushright}}



\def\signaturepage{%

        \signature{\@principaladviser\quad (Principal \advis at r)}

        \vfill

% if second principal advisor

        \if*\@coprincipaladviser \else

        \signature{\@coprincipaladviser\quad Principal \advis at r}

        \vfill\fi

        \if*\@firstreader \else 

        \signature\@firstreader

        \vfill\fi

        \if*\@secondreader \else 

        \signature\@secondreader

        \vfill\fi

% if thirdreader then do \signature\@thirdreader \vfill

        \if*\@thirdreader \else 

        \signature\@thirdreader

        \vfill\fi

        \begin{flushright}

        \begin{minipage}{5in}

        Approved for the University Committee on Graduate Studies.

        \par

        \vspace{1.5in}

        %		\hbox to 5in{\hfil\begin{tabular}{@{}l@{}}\vrule width 3in height

%    		0.4pt depth 0pt \end{tabular}}

        \end{minipage}

        \end{flushright}}



\def\beforepreface{

        \pagenumbering{roman}

        \pagestyle{plain}

        \titlep

        \ifcopyright\ifthesiscopyright\thesiscopyrightpage\else\tradcopyrightpage\fi\fi

        \signaturepage

        \cleardoublepage}

        



\def\prefacesection#1{%

        \chapter*{#1}

        \addcontentsline{toc}{chapter}{#1}}



\def\afterpreface{\newpage

        \tableofcontents

        \iftablespage

                \listoftables

        \fi

        \iffigurespage

                \listoffigures

        \fi

        \cleardoublepage

        \pagenumbering{arabic}

        \pagestyle{headings}}



% Redefine \thebibliography to go to a new page and put an entry in the

% table of contents

\let\@ldthebibliography\thebibliography

\renewcommand{\thebibliography}[1]{\newpage

                \@ldthebibliography{#1}%

\addcontentsline{toc}{chapter}{\bibname}}



% Start out normal

\pagestyle{headings}





% MY CORRECTIONS TO THE STANFORD STYLE A. Kretchetov, May, 2005



\RequirePackage{harvard}



\newif\ifsingl at col\singl at coltrue                 % Single column setting?

\newif\ifFIG\FIGfalse

\newif\ifTAB\TABfalse





\newbox\b at x



\renewenvironment{figure}                        % FIGURE (not float)

{%                                               % Begin new environment

  \vskip 12pt plus 4pt minus 12pt

  \noindent

  \begin{minipage}{\textwidth}%

  \begin{center}

  \refstepcounter{figure}

  \FIGtrue

}

{%                                               % End environment

  \end{center}

  \vskip 6pt plus 2pt minus 2pt%

  \setbox\b at x=\hbox{\captionbox}

  \captionbox%                               % print deferred caption

  \end{minipage}%

  \vskip 10pt plus 4 pt minus 4pt%

  \FIGfalse

}



\renewenvironment{table}                         % TABLE (not float)

{%                                               % Begin new environment

  \def\hline{\noindent%

    \kern-6pt\hbox to 0pt{%

      \vbox to 0pt{%

        \hrule height .1 pt width \textwidth%

      }%

    }%

    \\%

  }%

  \vskip 12pt plus 2pt minus 12pt%

  \noindent%

  \begin{minipage}{\textwidth}%

  \refstepcounter{mpfootnote}                    % start footnotes with dagger

  \refstepcounter{table}%

  \TABtrue%

  \begin{small}%

}

{%                                               % End environment

  \end{small}%

  \hrule height .1pt        % end rule 

  \end{minipage}%

  \vskip 12pt plus 2 pt minus 6pt%

  \TABfalse

}



\renewcommand{\caption}[2][\relax]%

{

    \ifFIG

      \gdef\captionbox

      {%

        \par\noindent%

        \fontsize{8}{10pt}

        \usefont{OT1}{ptm}{m}{n}%

        \noindent%

        \fontsize{9}{10pt}\sffamily\bfseries Figure~\thefigure

        \par\noindent%

         #2%

      }%

    \fi

    \ifTAB

      fontsize{8}{10pt}

      \usefont{OT1}{ptm}{m}{n}%

      \fontsize{9}{10pt}\sffamily\bfseries Table~\thetable

      \par\noindent %

      {#2}\par%

      \smallskip\hrule height .1pt%

    \fi

}



% Disable multicolumns switching macros

\renewcommand{\onecolumn}

{%                      % set in single column

  \ifsingl at col\else\end{multicols}\singl at coltrue\fi%

}



\renewcommand{\twocolumn}

{%                      % set in one column again!!!

  \ifsingl at col\else\end{multicols}\singl at coltrue\fi%

  %\ifsingl at col\begin{multicols}{2}\singl at colfalse\fi%

}



\AtBeginDocument

{%

	\message{Beginning to process article (myBestClassTwo) }

  	\scrollmode

    \singl at coltrue

	\frenchspacing

}



\AtEndDocument{%

  	\ifsingl at col%

  	\else%

    	\end{multicols}\singl at coltrue%

  	\fi%

  	\errorstopmode

	\message{Finished processing article}

}





More information about the texhax mailing list