summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/aiaa/aiaa.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/aiaa/aiaa.dtx
Initial commit
Diffstat (limited to 'macros/latex/contrib/aiaa/aiaa.dtx')
-rw-r--r--macros/latex/contrib/aiaa/aiaa.dtx2189
1 files changed, 2189 insertions, 0 deletions
diff --git a/macros/latex/contrib/aiaa/aiaa.dtx b/macros/latex/contrib/aiaa/aiaa.dtx
new file mode 100644
index 0000000000..ab606fb7b2
--- /dev/null
+++ b/macros/latex/contrib/aiaa/aiaa.dtx
@@ -0,0 +1,2189 @@
+%
+% \iffalse
+%% Description: LaTeX package for AIAA technical conference papers.
+%% Keywords: LaTeX, class, AIAA, BibTeX, bibliographic-style
+%% Author: Bil Kleb, Bill Wood, Erich Knausenberger
+%% Maintainer: same
+%% Version: 3.6 <23 May 2004>
+%%
+%% Run (PDF)LaTeX on `aiaa.dtx' to obtain a Users Manual and code
+%% documentation. Note: to get detailed code documentation you need to
+%% comment out the \OnlyDescription line in `aiaa.dtx'.
+%%
+%% See `aiaa.ins' and the Users Manual for installation instructions.
+%%
+% \fi
+%
+% \def\filename{aiaa.dtx}
+% \def\fileversion{3.6}
+% \def\filedate{2004/05/23}
+% \def\docdate{\filedate}
+% \date{\docdate}
+%
+% \newcommand*{\cls}[1]{\textsf{#1}}
+% \newcommand*{\pkg}[1]{\textsf{#1}}
+% \newcommand*{\file}[1]{\texttt{#1}}
+% \newcommand*{\kbd}[1]{\texttt{#1}}
+%
+% \MakeShortVerb{\|}
+%
+% \CheckSum{524}
+%
+%% \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 \~}
+%
+% \title{%
+% AIAA\thanks{American Institute of Aeronautics and Astronautics.}\ \
+% \LaTeX{} Package Users Manual\thanks{This document describes
+% \textsf{aiaa} version \fileversion\ that came of age on \docdate.}
+% }
+%
+% \author{%
+% Bil Kleb\thanks{Research Scientist}
+% \ and Bill Wood\textsuperscript{\ensuremath{\ddagger}}\\
+% {\normalsize\itshape NASA, Hampton, Viriginia}\\
+% \and
+% Erich Knausenberger\thanks{Business Developer}\\
+% {\normalsize\itshape AIAA, Reston, Virginia}
+% }
+%
+% \date{\vspace{-5ex}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This document describes the \textsf{aiaa} \LaTeX\ package that
+% provides a \LaTeX\ class (\file{aiaa-tc.cls}) and \BibTeX\
+% bibliography style file (\file{aiaa.bst}).
+% The files in this package are used to create AIAA technical conference
+% papers.
+% The package also contains a users manual (you are looking at it) and
+% two templates, a bare-bones sample and an advanced sample.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Introduction}
+%
+% The AIAA class works by loading the standard \LaTeX\ article class and
+% several LaTeX packages, and then making modifications and extensions
+% to suit the AIAA layout requirements.\footnote{%
+% The older, unofficial AIAA distribution that yields two-column layout
+% is available in the distribution's `pre2004' subdirectory.}
+% The AIAA \BibTeX\ style file was created with Daly's makebst program
+% and then tweaked according to AIAA conventions.
+% In addition, abbreviations for the AIAA journals and more common
+% aerospace journals were added.
+%
+% \subsection{Requirements}
+%
+% To make use of the AIAA technical conferenece paper class and process
+% the AIAA bare-bones template, you will need the following files:\\[3pt]
+% \begin{tabular}{llll}
+% \cls{article.cls} &\pkg{graphicx.sty}&\pkg{array.sty} &\pkg{setspace.sty}\\
+% \pkg{overcite.sty}&\pkg{lastpage.sty}&\pkg{fancyhdr.sty}
+% \end{tabular}\\[3pt]
+% These should be included as part of your \TeX\ distribution.
+% Note: \pkg{setspace} is only necessary if using the |submit| class
+% option described below.
+%
+% To explore some of \LaTeX's more advanced features such as imbedded
+% figures, tables with footnotes, hyperlinks, subfigures, dropped
+% capitals at the beginning of paragraphs, automatic nomenclature
+% collection and sorting, and bibliography generation that are
+% demonstrated in the advanced template, you will need the following
+% \LaTeX\ packages,\\[3pt]
+% \begin{tabular}{rl}
+% \pkg{ifthen} & plain text conditionals \\
+% \pkg{dcolumn} & decimal-aligned tabular math columns \\
+% \pkg{fancyvrb} & extended verbatim environments \\
+% \pkg{subfigure} & subcaptions for subfigures \\
+% \pkg{nomencl} & nomenclature generation via Makeindex \\
+% \pkg{hyperref} & hyperlinks such as email or URLs \\
+% \pkg{threeparttable} & tables with footnotes \\
+% \pkg{wrapfig} & integrate figures and tables in text
+% (i.e., DiVinci style) \\
+%
+% \pkg{lettrine} & dropped capital letter at beginning of paragraph \\
+% \pkg{subfigmat} & matrices of similar subfigures, aka small multiples \\
+% \pkg{dropping} & an alternative dropped capital letter package
+% \end{tabular}\\[3pt]
+% \noindent The above packages are ordered according to the likelihood
+% that they are included with any given \TeX\ distribution.
+% The last three you will most likely have to download from CTAN
+% (\href{http://www.ctan.org}{www.ctan.org}) and add to your \TeX\
+% distribution according to its instructions for adding new packages, or
+% just place them in your local working directory.
+% Please see the Known Problems section before exploring the advanced example.
+%
+% \subsection{User's Manual}
+%
+% A PDF version of this Users Manual is provided as part of the distribution.
+% It was created by processing \file{aiaa.dtx} with \kbd{pdflatex}.
+% Of course a PostScript version can be made by using \kbd{latex}.
+%
+% If you are new to LaTeX, you should first read {\it A (not so) Short
+% Introduction to \LaTeX, or \LaTeX\ in 131 minutes}, which is
+% available in a variety of languages from the Comprehensive \TeX\
+% Archive Network (CTAN) website,
+% \href{http://www.ctan.org/tex-archive/info/lshort/}%
+% {www.ctan.org/tex-archive/info/lshort/}.
+%
+% \subsection{Installation and Setup}
+%
+% If you have not already run \file{aiaa.ins} through \LaTeX{}, do so.
+% The \pkg{docscript} utility (part of \LaTeX{}) will rip the code
+% segments out of \file{aiaa.dtx} and save them in several files.
+% If you encounter an error on installation like:\\[5pt]
+% | ! Undefined control sequence|\\
+% | \batchLine -> generate|\\
+% | {\file {aiaa-tc.cls}{\from{aiaa.dtx}{class}}}|\\
+% | 1.728 \processbatchFile|\\[5pt]
+% it means that your \pkg{docstrip} is very old and that you will need
+% to update your \TeX\ distribution to take advantage of the AIAA package.
+%
+% Move \file{aiaa-tc.cls} to a directory searched by \TeX\footnote{%
+% For a Unix te\TeX{} installation, a privileged user could
+% put these files in a directory named something like
+% \kbd{/usr/local/share/texmf/tex/latex/aiaa}\ for the entire site to
+% use, remembering to run \kbd{texhash} to reconfigure te\TeX{} to
+% search the new directory; or, a lowly user could make their own
+% directory, e.g., \kbd{$\sim$/tex/inputs}, put the files in
+% there, and set the environment variable \kbd{TEXINPUTS} via
+% `\kbd{setenv TEXINPUTS $\sim$/tex/inputs:}'.
+% The colon represents the system search path so, in this case, the user
+% files take precedence.
+% On a Mac or PC installation put these files in a folder named
+% something like \file{TeX-inputs}.}
+% and the file \file{aiaa.bst} to a directory searched by
+% \BibTeX.\footnote{%
+% Similar to preceding footnote, only on Unix, use the
+% environment variable \kbd{BSTINPUTS} for the bibliographic style file
+% and \kbd{BIBINPUTS} for the bibliographic database; for Mac's, use the
+% \file{BibTeX-inputs} folder, failing that try using the
+% \file{TeX-inputs} folder.}
+% Once things are installed, try to \LaTeX\ the bare-bones template.
+% It should produce something similar to the existing PDF copy.
+%
+% \section{Usage}
+%
+% The AIAA class is envoked by including\\[5pt]
+% | \documentclass[|{\itshape options}|]{aiaa-tc}|\\[5pt]
+% at the beginning of your document.
+% The AIAA class recognizes a |handcarry| option that places paper
+% number, conference information, and copyright information in the paper
+% when hand carrying papers to a ``loose papers'' conference, and a
+% `submit' option that increases font size and line spacing.
+% Other cptions are passed on to \LaTeX's \cls{article} class that is
+% subsequently loaded by the AIAA class.\footnote{%
+% For example, the \kbd{draft} option replaces figures with a
+% labeled box of the appropriate size and graphically depicts lines that
+% overrun the right margin (overfull boxes).}
+% The document is written just like one were using the standard \LaTeX{}
+% \cls{article} document class; and thus, usage is well documented by
+% others in various \LaTeX{} books~\cite{companion,guide,latex}.
+% However, some of the stock commands have slightly different behaviors
+% and there are a few new commands designed to make life a little brighter;
+% these are discussed in the following sections.
+%
+% \subsection{General Commands}
+%
+% Several standard \LaTeX{} commands have been modified to behave
+% slightly differently in the \cls{aiaa-tc} class.
+% In addition, several new commands have been introduced to ease
+% document preparation.
+% Both types are discussed in the following subsections.
+%
+% \subsubsection{New Behavior from Standard Commands}
+%
+% \DescribeMacro{\date}
+% \DescribeMacro{\maketitle}
+% The \cls{aiaa-tc} class does not typeset the |\date| command as part of
+% |\maketitle|.
+% Standard \LaTeX{} behavior of |\maketitle| is to typeset the current
+% date as part of the title section.
+% one would have to issue a command like, |\date{\vspace{-5ex}}|,
+% to eliminate the date and removed the space created for it.
+%
+% \DescribeEnv{abstract}
+% The |abstract| environment has been redefined within the \cls{aiaa-tc}
+% class to produce slightly different typesetting.
+% It now produces an indented block of text set in a smaller, bold font.
+% This environment should be placed after your |\maketitle|.
+%
+% \DescribeMacro{\section}
+% \DescribeMacro{\subsection}
+% \DescribeMacro{\subsubsection}
+% \DescribeMacro{\paragraph}
+% \DescribeMacro{\subparagraph}
+% The counters, fonts, sizes, and positions normally produced by
+% these commands have been modified to produce AIAA layout guidelines.
+%
+% \subsubsection{New Command}
+%
+% \DescribeMacro{\thanksibid}
+% The command |\thanksibid| is very similar to the standard
+% |\thanks| command which is used when footnoting
+% the author affliations within the |\author| field.
+% The distinction is that the |\thanksibid| command allows one
+% to repeat a given footnote symbol without repeating the associated
+% footnote text. For example,\\[3pt]
+% | \author{%|\\
+% | Peter Gnoffo,%|\\
+% | \thanks{Title, department, address, and member grade.}|\\
+% | Bil Kleb,%|\\
+% | \thanks{Title, department B, address, and member grade.}|\\
+% | Bill Wood,%|\\
+% | \thanksibid{2}%| \textit{use the same footnote as the second author.}\\
+% | \ and|\\
+% | Marge Myth%|\\
+% | \thanks{Title, department C, address, and member grade.}|\\
+% | }|\\[3pt]
+% Thus, |\thanksibid{2}| would only produce a footnote symbol
+% at the end of Bill Wood's name and it would not generate
+% any footnote text.
+% Note that using the |\thanksibid| command does not increment the
+% footnote counter, so for the case given above, an argument of |4|
+% would not be a valid choice.
+%
+% \subsection{Hand Carry Information}
+%
+% \DescribeMacro{handcarry}
+% The following commands are used to load information that is
+% used by the |handcarry| class option.
+% For example,\\[3pt]
+% | \documentclass[handcarry]{aiaa-tc}|\\[3pt]
+% The following commands are used produce appropriate headers and footers
+% All of these commands are normally set in the preamble
+% of your document (similar to |\author| and |\title|).\footnote{%
+% The preamble is defined as anywhere between the
+% \cs{documentclass}\texttt{\string{\string}} and
+% \cs{begin}\texttt{\string{document\string}} commands.}
+%
+% \DescribeMacro{\AIAApapernumber}
+% \DescribeMacro{\AIAAconference}
+% \DescribeMacro{\AIAAcopyright}
+% The commands |\AIAApapernumber|, |\AIAAconference|, and |\AIAAcopyright|
+% are used to put appropriate items in the header and footer of each page.
+% The contents of |\AIAApapernumber| is placed in the footer while the
+% contents of |\AIAAconference| is placed in the header.
+% For example,\\[3pt]
+% | \AIAAapernumber{2004-3932}|\\
+% | \AIAAConference{16th AIAA Fluid Dynamics Conference,|\\
+% | June 6--8, Portland, Oregon}|\\[3pt]
+% A footnote describing the copyright conditions
+% and other information about the document are incorporated via the
+% |\AIAAcopyright|.
+% This command should be loaded with one of the the copyright series
+% of commands: |\CopyrightA|, |\CopyrightB|, |\CopyrightC|, or
+% |\CopyrightD|, described below.
+% To use, simply include something like the following in
+% the your document's preamble:\\[3pt]
+% | \AIAAcopyright{\CopyrightA{2004}}|\\[3pt]
+% \DescribeMacro{\CopyrightA}
+% \DescribeMacro{\CopyrightB}
+% \DescribeMacro{\CopyrightC}
+% \DescribeMacro{\CopyrightD}
+% \DescribeMacro{\CopyrightDAPL}
+% where the specific copyright commands will expand to one of the standard AIAA
+% forms: A, B, C, D, or D-APL.
+% Note: they each have different arguments, or no arguments, depending
+% on their requirements,\\[3pt]
+% | \CopyrightA{|\textit{year}|}|\\
+% | \CopyrightB{|\textit{year}|}{|\textit{full name or company}|}|\\
+% | \CopyrightC|\\
+% | \CopyrightD{|\textit{year}|}|\\
+% | \CopyrightDAPL{|\textit{year}|}|\\[3pt]
+% See AIAA copyright instructions for which form to use.
+%
+% \subsection{Journal Submission}
+%
+% \DescribeMacro{submit}
+% The |submit| option class option that is invoked as follows,\\[3pt]
+% | \documentclass[submit]{aiaa-tc}|\\[3pt]
+% \DescribeMacro{\AIAAsubmitinfo}
+% will increase the font size and line spacing as well as place a
+% running footer according to the contents of |\AIAAsubmitinfo|.
+% For example,\\[3pt]
+% | \AIAAsubmitinfo{Abbreviated Title, AuthorsLastName et al}|\\[3pt]
+% will place an abbreviated title and the authors last name at the
+% bottom of each page.
+%
+% \subsection{Making Modifications}
+%
+% If you feel the need to modify the behavior of items in
+% \cls{aiaa-tc.cls}, simply cut the section you want to change and save
+% it to a file named \file{myaiaamods.sty}.
+% Then modify the code in \file{myaiaamods.sty} to suit your needs and
+% include it in your document via |\usepackage{myaiaamods}| in the
+% preamble.
+%
+% \subsection{Getting Help}
+%
+% For general questions related to AIAA papers, procedures, and guidelines,
+% send email to
+% \href{mailto:Paper_Tech_Support@AIAA.Org}{Paper\_Tech\_Support@AIAA.Org}.
+% For help /specific/ to this AIAA \LaTeX\ distribution, send email to
+% \href{mailto:LaTeX_Support@AIAA.Org}{LaTeX\_Support@AIAA.Org}.
+%
+% For general \LaTeX\ help, see the {\it The (not so) Short Introduction
+% to \LaTeX} mentioned above, {\it \LaTeX: A Document Preparation
+% System} (2nd ed.) by Lamport, and {\it The LaTeX Companion} (2nd ed.)
+% by Mittelbach et al.~\cite{companion}
+% For more specific \LaTeX\ help, do a Google `groups' search on the
+% comp.text.tex USENET newsgroup and explore the \TeX\ User Group's frequently
+% asked questions site last seen at
+% \href{http://www.tex.ac.uk/cgi-bin/texfaq2html}%
+% {www.tex.ac.uk/cgi-bin/texfaq2html}.
+% If these avenues fail to answer your question, read
+% \href{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=askquestion}%
+% {www.tex.ac.uk/cgi-bin/texfaq2html?label=askquestion}
+% and post a question to the \href{news:comp.text.tex}{comp.text.tex}
+% USENET newsgroup.
+% (Posting is available through \href{http://www.google.com/}{Google}.)
+%
+% For an extensive guide to using Encapsulated PostScript in \LaTeX, see
+% Keith Reckdahl's \file{epslatex} document available from CTAN's \file{info}
+% directory,
+% \href{http://www.ctan.org/tex-archive/info/}{www.ctan.org/tex-archive/info/}
+% or various \LaTeX{} reference books.
+%
+% Especially helpful in locating various \LaTeX{} packages is
+% the \kbd{Catalogue.html} web page found in the \file{help/Catalogue}
+% directory of CTAN.
+%
+% \subsection{Known Problems}
+%
+% The bibliographic style sheet |aiaa.bst| isn't fully tested; and thus,
+% you may need to fiddle with your |.bbl| file for your final copy,
+% i.e., edit |file.bbl| after running a \LaTeX{}, \BibTeX, \LaTeX\
+% sequence, but before running \LaTeX{} the final time.
+% Note: If you run \BibTeX\ after modifying |file.bbl|, you will lose
+% your modifications when \LaTeX\ is run again.
+%
+% To typeset the advanced example, you will need a fairly complete \LaTeX{}
+% distribution, and even then you will probably need to download packages
+% like \pkg{dropping} or \pkg{lettine} as described in the Requirements
+% section.
+% Also, some packages will need to be newer than 2002 or so.
+% For example, older versions of the \pkg{nomenclature} package will
+% given an error like\\[3pt]
+% | ! Undefined control sequence.|
+% | <argument> \nomitemsep |
+% while older versions of the \pkg{geometry} package will give\\[3pt]
+% | ERROR: Package keyval Error: No value specified for paper.|
+%
+% \subsection{Sending a Bug Report}
+%
+% Reports of bugs in the AIAA package are most welcome.
+% Before filing a bug report, please take the following actions:
+% \begin{enumerate}
+% \item Verify your problem is not due to your own input file(s)
+% styles sheet(s), or package(s);
+% \item Check to see if your problem is documented in the preceeding
+% section;
+% \item Try to isolate the problem by writing a {\it minimal} \LaTeX\
+% input file which reproduces the unexpected behavior and then:
+% \begin{enumerate}
+% \item Include the command\\
+% | \setcounter{errorcontextlines}{50}|\\
+% in the preamble of your document to provide extra context when
+% things go awry;
+% \item Run your file through \LaTeX{};
+% \item Send a description of your problem, the input file and the
+% log file via e-mail to:
+% \href{mailto:LaTeX_Support@AIAA.Org?subject=bug}%
+% {LaTeX\_Support@AIAA.Org}.
+% \end{enumerate}
+% \end{enumerate}
+%
+% \section{Acknowledgments}
+%
+% Foremost, the authors would like to thank all of those that took the
+% time to ask questions, give comments, or provide suggestions:
+% Karen Bibb, Steve Alter, Meelan Choudhari, Donald Arseneau, Ed Kerschen,
+% Paolo Lisandrin, Mark Woodmansee, Dominique Pelletier, Manual Cruz,
+% Martin Sanchez, Chris Rumsey, Ray Chase,
+% and Tadashi Minowa.
+% Without their feedback, this package would wither.\footnote{%
+% Hint: If you want to be listed in future versions of this document,
+% send kudos, comments, and so on to
+% \href{mailto:LaTeX_Support@AIAA.Org}{LaTeX\_Support@AIAA.Org}.}
+%
+% Bundling and documenting this \pkg{aiaa} package in docstrip
+% format was done by using other packages as a model,
+% particularly, Mats Dahlgren's \pkg{dropping}~\cite{dropping}
+% and Jeff Goldberg et al.'s \pkg{endfloat}~\cite{endfloat}.
+%
+% Finally, the first author would like to thank the people of the
+% |comp.text.tex| newsgroup, the \TeX\ Users Group Frequently Asked
+% Questions maintainers, and various package authors for patiently
+% answering my inane questions, in particular, but in no particular order:
+% Donald Arsenau, Robin Fairbairns, Piet van Oostrum, Jeroen Nijhof,
+% Steven Douglas Cochran, Herbert Voss, Jeffrey Goldberg, Mark Wooding,
+% Paul Foley, David Kastrup, Jerry Leichter, Patrick Daly, David
+% Carlisle, Edward Sznyter, and Jim Hefferon.
+%
+% \begin{thebibliography}{1}
+%
+% \bibitem{companion}
+% Frank Mittelbach, Michel Goossens, Johannes Bramms, David Carlisle,
+% and Chris Rowley.
+% \newblock{\em The {\LaTeX} Companion}.
+% \newblock 2nd ed.
+% \newblock Addison-Wesley, Reading, Massachusetts, 2004.
+%
+% \bibitem{guide}
+% Helmut Kopka and Patrick W. Daly.
+% \newblock{\em A Guide to {\LaTeXe}: Tools and Techniques for Computer
+% Typesetting}.
+% \newblock 4th ed.
+% \newblock Addison-Wesley, Reading, Massachusetts, 2003.
+%
+% \bibitem{latex}
+% Leslie Lamport.
+% \newblock{\em {\LaTeX}: A Document Preparation System}.
+% \newblock 2nd ed.
+% \newblock Addison-Wesley, Reading, Massachusetts, 1994.
+%
+% \bibitem{dropping}
+% Mats Dahlgren.
+% \newblock \pkg{dropping}---A \LaTeX{} Macro for Dropping
+% the First Character(s) of a Paragraph.
+% \newblock June 1996. (version~0.1)
+% \newblock Electronic Documentation.
+%
+% \bibitem{graphicx}
+% David Carlisle.
+% \newblock Packages in the `graphics' bundle.
+% \newblock December 1995.
+% \newblock Electronic Documentation.
+%
+% \bibitem{endfloat}
+% James Darrell McCauley and Jeff Goldberg.
+% \newblock The \texttt{endfloat} Package.
+% \newblock October 1995. (version~2.4i)
+% \newblock Electronic Documentation.
+%
+% \end{thebibliography}
+%
+% \section{Code Documentation}
+%
+% For the interested reader, the following sections can be made to
+% contain a documented verion of the class code and bibliographic style file.
+% These detailed coding bits are not included in the Users Manual by
+% default.
+% If you want to see these in typeset form, you need to comment
+% out the |\OnlyDescription| line in the |<driver>| section of
+% \file{aiaa.dtx} and process \file{aiaa.dtx} with (PDF)\LaTeX.
+%
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+ \usepackage[colorlinks]{hyperref}
+ \OnlyDescription % comment out to typeset class and bibstyle code
+\begin{document}
+ \DocInput{aiaa.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% \StopEventually{\PrintChanges}
+%
+% \subsection{The Class}
+%
+% First, the opening header:
+% \begin{macrocode}
+%<*class>
+%%
+%% `aiaa-tc.cls' - A LaTeX class to create AIAA technical conference papers.
+%%
+%% The basic approach is to load the LaTeX article class and various
+%% standard LaTeX packages, and then make modifications and extensions to
+%% conform to AIAA's guidelines.
+%%
+%% To use, simply select this class file in your LaTeX document. For example,
+%%
+%% \documentclass{aiaa-tc}
+%%
+%% Class options:
+%%
+%% handcarry - used for hand carrying a paper to a 'loose papers'
+%% conference. It adds the conference name to the
+%% top of the first page, paper number to the bottom
+%% of each page, and a copyright notice on the bottom
+%% of the first
+%%
+%% submit - produces output typically required for journal submission,
+%% i.e., 12pt font and 'double spacing'.
+%%
+%% plus those accepted by the standard article class such as 'draft'.
+%%
+%% Class-specific commands:
+%%
+%% \thanksibid{} - Reuses \thanks footnote symbol from previous
+%% author specified by position in \author command.
+%% For example, `someone\thanksibid{2}' will reuse the
+%% footnote symbol from the second author for 'someone'
+%% without producing a repeated footnote at the bottom.
+%%
+%% \AIAApapernumber{} - For use with 'handcarry' option.
+%% \AIAAconference{} - Ditto.
+%% \AIAAcopyright{} - Ditto. Must be filled with one of the
+%% various copyright types: \AIAAcopyrightA{year},
+%% \AIAAcopyrightB{year}{holder}, \AIAAcopyrightC,
+%% \AIAAcopyrightD{year}, or \AIAAcopyrightDAPL{year}.
+%%
+%% \AIAAsubmitinfo{} - Footer information used by 'submit' option.
+%%
+%% For support, further details, and a documented version of this class,
+%% please read the Users Manual, aiaa.pdf, and the templates that come
+%% with the AIAA LaTeX distribution.
+%%
+%% Wish list:
+%%
+%% o fine tune hyperref behavior, especially footnote behavior
+%%
+%% o an \appendix command to switch section styles, counters, etc.
+%%
+%% o leave space for copyright notice so that handcarry option does
+%% not alter pagination.
+%%
+% \end{macrocode}
+% The class identifies itself:
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{aiaa-tc}[2004/04/03 v3.5 AIAA technical conference paper]
+% \end{macrocode}
+% \begin{macro}{handcarry}
+% \begin{macro}{submit}
+% Option and associated flag.
+% Note that the flag is set when an option is processes, so that it is
+% overrides the default.
+% \begin{macrocode}
+\newif\if@aiaa@handcarry
+\newif\if@aiaa@submit
+\@aiaa@handcarryfalse
+\@aiaa@submitfalse
+\DeclareOption{handcarry}{\@aiaa@handcarrytrue\@aiaa@submitfalse}
+\DeclareOption{submit}{\@aiaa@submittrue\@aiaa@handcarryfalse}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% Pass all unknown options on to the \LaTeX\ article class
+% and process them.
+% Note: Options are processed in order of the |\DeclareOption|
+% commands in this file, so if you want one to take precedence
+% over all the other options, process it last.
+% \begin{macrocode}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}%
+ \typeout{Unknown option: passing ``\CurrentOption"
+ option on to the standard LaTeX article class.}}
+\ProcessOptions
+% \end{macrocode}
+% Unless this is a journal submisssion, load the \LaTeX{} standard
+% article class with |letterpaper| and |10pt| options.
+% \begin{macrocode}
+\if@aiaa@submit
+ \LoadClass[letterpaper,12pt]{article}
+\else
+ \LoadClass[letterpaper,10pt]{article}
+\fi
+% \end{macrocode}
+% Load packages used by this class.
+% \begin{macrocode}
+\RequirePackage[margin=1in,top=0.75in,headheight=\baselineskip]%
+ {geometry}% page layout
+\RequirePackage{graphicx}% images
+\RequirePackage{array}% extra row height
+\RequirePackage{overcite}% superscript, sorted, compressed citation commands
+\RequirePackage{lastpage}% to get reference for last page number
+\RequirePackage{fancyhdr}% simple control of headers and footers
+\if@aiaa@submit
+ \RequirePackage{setspace}% control line spacing
+\fi
+% \end{macrocode}
+% \begin{macro}{\AIAApapernumber}
+% \begin{macro}{\AIAAconference}
+% \begin{macro}{\AIAAcopyright}
+% \begin{macro}{\AIAAsubmitinfo}
+% Define AIAA specific fields:
+% \begin{macrocode}
+\newcommand*{\AIAApapernumber}[1]{\def\aiaa@papernumber{#1}}\AIAApapernumber{}
+\newcommand*{\AIAAconference}[1]{\def\aiaa@conference{#1}}\AIAAconference{}
+\newcommand*{\AIAAcopyright}[1]{\def\aiaa@copyright{#1}}\AIAAcopyright{}
+\newcommand*{\AIAAsubmitinfo}[1]{\def\aiaa@submitinfo{#1}}\AIAAsubmitinfo{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% Tie |\intextsep| to |\baselineskip| to more tightly integrate layout
+% \begin{macrocode}
+\setlength{\intextsep}{0.7\baselineskip \@plus 2\p@ \@minus 1\p@}
+% \end{macrocode}
+% Change floating defaults to include `here' to promote text/float integration
+% \begin{macrocode}
+\def\fps@figure{htbp}
+\def\fps@table{htbp}
+% \end{macrocode}
+% \begin{macro}{\AIAAcopyrightA}
+% \begin{macro}{\AIAAcopyrightB}
+% \begin{macro}{\AIAAcopyrightC}
+% \begin{macro}{\AIAAcopyrightD}
+% \begin{macro}{\AIAAcopyrightDAPL}
+% Define AIAA copyright clauses for use when hand carrying
+% \begin{macrocode}
+\newcommand{\AIAAcopyrightA}[1]{Copyright \copyright\ #1 by the
+ American Institute of Aeronautics and Astronautics, Inc. All
+ rights reserved.}% rev 01/01/2002
+\newcommand{\AIAAcopyrightB}[2]{Copyright \copyright\ #1 by
+ #2. Published by the American Institute of Aeronautics
+ and Astronautics, Inc.\ with permission.}% rev 01/01/2002
+\newcommand{\AIAAcopyrightC}{This material is declared a work of the U.S.
+ Government and is not subject to copyright protection in the
+ United States.}% rev 01/01/2002
+\newcommand{\AIAAcopyrightD}[1]{Copyright \copyright\ #1 by the American
+ Institute of Aeronautics and Astronautics, Inc. The U.S. Government
+ has a royalty-free license to exercise all rights under the copyright
+ claimed herein for Governmental purposes. All other rights are
+ reserved by the copyright owner.}% rev 01/01/2002
+\newcommand{\AIAAcopyrightDAPL}[1]{Copyright \copyright\ #1 by the American
+ Institute of Aeronautics and Astronautics, Inc. Under the copyright
+ claimed herein, the U.S. Government has a royalty-free license to
+ exercise all rights for Governmental purposes. All other rights are
+ reserved by the copyright owner.}% rev 01/01/2002
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\aiaa@makecopyright}
+% Typeset copyright notice as a footnote of the first page
+% \begin{macrocode}
+\newcommand\aiaa@makecopyright{%
+ \begingroup
+ \renewcommand\thefootnote{}
+ \if@aiaa@handcarry\footnotetext{\aiaa@copyright}\fi
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\thanksibid}
+% Define |\thanksibid| command to reuse \thanks footnote symbol of a
+% previous author
+% \begin{macrocode}
+\newcounter{aiaa@cthanks}
+\newcounter{aiaa@cfootnote}
+\newcommand{\thanksibid}[1]{%
+ \begingroup
+ \setcounter{aiaa@cfootnote}{\value{footnote}}% store original
+ \setcounter{aiaa@cthanks}{#1}%
+ \renewcommand\thefootnote{\fnsymbol{aiaa@cthanks}}%
+ \footnotemark%
+ \setcounter{footnote}{\value{aiaa@cfootnote}}% reset to original
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\maketitle}
+% Rework |\maketitle| a bit and remove its |\pagestyle{plain}| [article.cls]
+% \begin{macrocode}
+\renewcommand\maketitle{\par
+ \begingroup
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+ \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
+ \long\def\@makefntext##1{\parindent 1em\noindent
+ \hb@xt@1.8em{%
+ \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
+ \newpage
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@maketitle
+ \@thanks
+ \endgroup
+ \setcounter{footnote}{0}%
+ \renewcommand\thefootnote{\@alph\c@footnote}% change to alpha style footnote
+ \aiaa@makecopyright
+ \global\let\thanks\relax
+ \global\let\thanksibid\relax
+ \global\let\maketitle\relax
+ \global\let\@maketitle\relax
+ \global\let\@thanks\@empty
+ \global\let\@author\@empty
+ \global\let\@date\@empty
+ \global\let\@title\@empty
+ \global\let\title\relax
+ \global\let\author\relax
+ \global\let\date\relax
+ \global\let\and\relax
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@maketitle}
+% Add conference name at top and remove date [article.cls]
+% \begin{macrocode}
+\def\@maketitle{%
+ \newpage
+ \null
+ \begin{center}%
+ \if@aiaa@handcarry
+ {\sffamily\scriptsize\aiaa@conference}
+ \vskip1em
+ \else
+ \vskip\baselineskip
+ \vskip1em
+ \fi
+ \let \footnote \thanks
+ {\LARGE\bfseries \@title \par}%
+ \vskip 1.5em%
+ {\large
+ \lineskip .5em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \end{center}%
+ \par
+ \vskip 1.5ex}
+% \end{macrocode}
+% \end{macro}
+% Reduce the quantity of overfull warnings
+% \begin{macrocode}
+\setlength\hfuzz{2pt}
+% \end{macrocode}
+% Setup page headers and footers [fancyhdr.sty]
+% \begin{macrocode}
+\fancyhf{}% clear defaults
+\renewcommand{\headrulewidth}{0pt}% turn off default headrule
+\cfoot{\footnotesize\normalfont
+ \thepage\ of \pageref{LastPage}\\
+ \rule[.2\baselineskip]{0.5in}{0.2pt}\\
+ \if@aiaa@submit
+ \aiaa@submitinfo
+ \else
+ American Institute of Aeronautics and Astronautics
+ \ifx\aiaa@papernumber\@empty
+ \relax
+ \else
+ \if@aiaa@handcarry Paper \aiaa@papernumber\fi
+ \fi
+ \fi}
+\pagestyle{fancy}
+% \end{macrocode}
+% Set graphic defaults [graphicx.sty]
+% \begin{macrocode}
+\setkeys{Gin}{width=\linewidth,totalheight=\textheight,keepaspectratio}
+% \end{macrocode}
+% Add some extra space between tabular rows [array.sty]
+% \begin{macrocode}
+\setlength{\extrarowheight}{2pt}
+% \end{macrocode}
+% \begin{environment}{\abstract}
+% Remove abstract name and add bold font [article.cls]
+% \begin{macrocode}
+\renewenvironment{abstract}%
+ {\small\quotation\bfseries}%
+ {\normalfont\endquotation\normalsize}
+% \end{macrocode}
+% \end{environment}
+% \begin{macro}{\@makecaption}
+% Change font and delimeter for captions [article.cls]
+% \begin{macrocode}
+\long\def\@makecaption#1#2{%
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{\footnotesize\bfseries #1.~~#2}%
+ \ifdim \wd\@tempboxa >\hsize
+ \footnotesize\bfseries #1.~~#2\par
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}
+% \end{macrocode}
+% \end{macro}
+% Add some belowcaptionskip to make table captions look better [article.cls]
+% \begin{macrocode}
+\setlength\belowcaptionskip{5pt plus 1pt minus 1pt}
+% \end{macrocode}
+% Change style of section numbering [article.cls]
+% \begin{macrocode}
+\renewcommand\thesection {\@Roman\c@section}
+\renewcommand\thesubsection {\@Alph\c@subsection}
+\renewcommand\thesubsubsection{\@arabic\c@subsubsection}
+\renewcommand\theparagraph {\@alph\c@paragraph}
+\renewcommand\thesubparagraph {\@roman\c@subparagraph}
+\setcounter{secnumdepth}{3}% no counters \paragraph and below
+% \end{macrocode}
+% \begin{macro}{\@seccntformat}
+% Add period after the section counter [latex.ltx]
+% \begin{macrocode}
+\def\@seccntformat#1{\csname the#1\endcsname.\quad}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\section}
+% \begin{macro}{\subsection}
+% \begin{macro}{\subsubsection}
+% \begin{macro}{\paragraph}
+% \begin{macro}{\subparagraph}
+% Change style of sections [article.cls]
+% \begin{macrocode}
+\renewcommand\section{\@startsection {section}{1}{\z@}%
+ {3.5ex \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\center\normalfont\large\bfseries}}
+\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\normalsize\bfseries}}
+\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\normalsize\itshape}}
+\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
+ {2.25ex \@plus1ex \@minus.2ex}%
+ {-1em}%
+ {\normalfont\normalsize\scshape}}
+\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
+ {2.25ex \@plus1ex \@minus .2ex}%
+ {-1em}%
+ {\normalfont\normalfont}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\@biblabel}
+% \begin{environment}{thebibliography}
+% Redefine bibliography behavior for superscripts and smaller font [article.cls]
+% \begin{macrocode}
+\renewcommand{\@biblabel}[1]{$^{#1}$}
+\renewenvironment{thebibliography}[1]%
+ {\section*{\refname\@mkboth{\MakeUppercase\refname}%
+ {\MakeUppercase\refname}}%
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\setlength{\leftmargin}{0pt}%
+ \settowidth{\labelwidth}{\@biblabel{#1}}%
+ \setlength{\itemindent}{\parindent}%
+ \advance\itemindent by \labelwidth%
+ \setlength{\labelsep}{0.0em}%
+ \setlength{\itemsep}{-\smallskipamount}%
+ \@openbib@code%
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty%
+ \renewcommand\theenumiv{\@arabic\c@enumiv}%
+ \footnotesize%
+ }
+ \sloppy\clubpenalty4000\widowpenalty4000%
+ \sfcode`\.\@m}
+ {\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}
+% \end{macrocode}
+% \end{environment}
+% \end{macro}
+% Change line spacing if using |submit| option and modify package
+% behaviors slightly if they are loaded.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \if@aiaa@submit\onehalfspacing\fi
+% \end{macrocode}
+% \begin{macro}{\tablenotes}
+% |threeparttable.sty|---|\footnotesize| notes, reduce the space between
+% the superscript and the note, and increase some spacing (|\itemsep| and
+% |\topsep|) in the tablenotes environment
+% \begin{macrocode}
+ \@ifundefined{TPT@hsize}{}{%
+ \def\tablenotes{%
+ \TPT@hsize
+ \list{}%
+ {\footnotesize\topsep4pt \partopsep\z@skip
+ \itemsep2pt \parsep\z@ \itemindent\z@ \leftmargin1.5em
+ \def\makelabel##1{\tnote{##1}\hfil}\labelwidth0.5em\labelsep1pt%
+ \relax}}
+ }%
+% \end{macrocode}
+% \end{macro}
+% |nomencl.sty|
+% \begin{macrocode}
+ \@ifundefined{nomgroup}{}{%
+ \RequirePackage{ifthen}% for typesetting groups within nomenclature
+% \end{macrocode}
+% Single-space nomenclature
+% \begin{macrocode}
+ \setlength{\nomitemsep}{-\parsep}
+% \end{macrocode}
+% \begin{macro}{\nomgroup}
+% Sort nomenclature according to types
+% \begin{macrocode}
+ \renewcommand{\nomgroup}[1]{%
+ \medskip%
+ \ifthenelse{\equal{#1}{A}}%
+ {\relax}%
+ {\ifthenelse{\equal{#1}{G}}%
+ {\item []\hspace*{-\leftmargin}%
+ \emph{Symbols}\hfill\smallskip}%
+ {\ifthenelse{\equal{#1}{B}}%
+ {\item []\hspace*{-\leftmargin}%
+ \emph{Subscripts}\hfill\smallskip}%
+ {\ifthenelse{\equal{#1}{C}}%
+ {\item []\hspace*{-\leftmargin}%
+ \emph{Conventions}\hfill\smallskip}%
+ {\ifthenelse{\equal{#1}{T}}%
+ {\item []\hspace*{-\leftmargin}%
+ \emph{Superscripts}\hfill\smallskip}{}%
+ }%
+ }%
+ }%
+ }%
+ }% \nomgroup
+ }% @ifundefined
+}% \AtBeginDocument
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</class>
+% \end{macrocode}
+%
+% This concludes \cls{aiaa-tc.cls}.
+%
+%
+% \subsection{The Bibliography Style}
+%
+% \begin{macrocode}
+%<*bibstyle>
+%
+% Note: this file originally created with Daly's custom-bib software
+%
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ }
+ {}
+ { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {add.blank}
+{ " " * before.all 'output.state :=
+}
+
+FUNCTION {date.block}
+{
+ skip$
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {non.stop}
+{ duplicate$
+ "}" * add.period$
+ #-1 #1 substring$ "." =
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\em " swap$ * "\/}" * }
+ if$
+}
+
+FUNCTION {capitalize}
+{ "u" change.case$ "t" change.case$ }
+
+FUNCTION {space.word}
+{ " " swap$ * " " * }
+
+FUNCTION {bbl.and}
+{ "and"}
+
+FUNCTION {bbl.editors}
+{ "editors" }
+
+FUNCTION {bbl.editor}
+{ "editor" }
+
+FUNCTION {bbl.edby}
+{ "edited by" }
+
+FUNCTION {bbl.edition}
+{ "ed." }
+
+FUNCTION {bbl.volume}
+{ "Vol." }
+
+FUNCTION {bbl.of}
+{ "of" }
+
+FUNCTION {bbl.number}
+{ "No." }
+
+FUNCTION {bbl.nr}
+{ "No." }
+
+FUNCTION {bbl.in}
+{ "in" }
+
+FUNCTION {bbl.pages}
+{ "pp." }
+
+FUNCTION {bbl.page}
+{ "p." }
+
+FUNCTION {bbl.chapter}
+{ "chap." }
+
+FUNCTION {bbl.techrep}
+{ "Tech. Rep." }
+
+FUNCTION {bbl.mthesis}
+{ "Master's thesis" }
+
+FUNCTION {bbl.phdthesis}
+{ "Ph.D. thesis" }
+
+FUNCTION {bbl.first}
+{ "1st" }
+
+FUNCTION {bbl.second}
+{ "2nd" }
+
+FUNCTION {bbl.third}
+{ "3rd" }
+
+FUNCTION {bbl.fourth}
+{ "4th" }
+
+FUNCTION {bbl.fifth}
+{ "5th" }
+
+FUNCTION {bbl.st}
+{ "st" }
+
+FUNCTION {bbl.nd}
+{ "nd" }
+
+FUNCTION {bbl.rd}
+{ "rd" }
+
+FUNCTION {bbl.th}
+{ "th" }
+
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sept."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+MACRO {jan-feb} {"Jan.-Feb."}
+
+MACRO {mar-apr} {"Mar.-Apr."}
+
+MACRO {may-jun} {"May-Jun."}
+
+MACRO {jul-aug} {"Jul.-Aug."}
+
+MACRO {sep-oct} {"Sep.-Oct."}
+
+MACRO {nov-dec} {"Nov.-Dec."}
+
+FUNCTION {eng.ord}
+{ duplicate$ "1" swap$ *
+ #-2 #1 substring$ "1" =
+ { bbl.th * }
+ { duplicate$ #-1 #1 substring$
+ duplicate$ "1" =
+ { pop$ bbl.st * }
+ { duplicate$ "2" =
+ { pop$ bbl.nd * }
+ { "3" =
+ { bbl.rd * }
+ { bbl.th * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+MACRO {jsr} {"Journal of Spacecraft and Rockets"}
+
+MACRO {aa} {"Aerospace America"}
+
+MACRO {Sb} {"Space News"}
+
+MACRO {awst} {"Aviation Week \& Space Technology"}
+
+MACRO {jcp} {"Journal of Computational Physics"}
+
+MACRO {ijcfd} {"International Journal of Computational Fluid Dynamics"}
+
+MACRO {ijnme} {"International Journal for Numerical Methods in Engineering"}
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr
+ "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=
+ nameptr #1 >
+ {
+ namesleft #1 >
+ { ", " * t * }
+ {
+ numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { bbl.and space.word * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.names.ed}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr
+ "{f.~}{vv~}{ll}{, jj}"
+ format.name$ 't :=
+ nameptr #1 >
+ {
+ namesleft #1 >
+ { ", " * t * }
+ {
+ numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { bbl.and space.word * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ {
+ author format.names
+ }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ {
+ editor format.names
+ editor num.names$ #1 >
+ { ", " * bbl.editors * }
+ { ", " * bbl.editor * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.editors}
+{ editor empty$
+ { "" }
+ { editor format.names.ed
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { title
+ "\enquote{" swap$ *
+ non.stop
+ { ",} " * }
+ { "} " * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {end.quote.title}
+{ title empty$
+ 'skip$
+ { before.all 'output.state := }
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\bibitem{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION {word.in}
+{ "" }
+
+FUNCTION {format.date}
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { bbl.volume volume tie.or.space.connect
+ series empty$
+ 'skip$
+ { bbl.of space.word * series emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { bbl.number }
+ { bbl.number capitalize }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { bbl.in space.word * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {is.num}
+{ chr.to.int$
+ duplicate$ "0" chr.to.int$ < not
+ swap$ "9" chr.to.int$ > not and
+}
+
+FUNCTION {extract.num}
+{ duplicate$ 't :=
+ "" 's :=
+ { t empty$ not }
+ { t #1 #1 substring$
+ t #2 global.max$ substring$ 't :=
+ duplicate$ is.num
+ { s swap$ * 's := }
+ { pop$ "" 't := }
+ if$
+ }
+ while$
+ s empty$
+ 'skip$
+ { pop$ s }
+ if$
+}
+
+FUNCTION {convert.edition}
+{ edition extract.num "l" change.case$ 's :=
+ s "first" = s "1" = or
+ { bbl.first 't := }
+ { s "second" = s "2" = or
+ { bbl.second 't := }
+ { s "third" = s "3" = or
+ { bbl.third 't := }
+ { s "fourth" = s "4" = or
+ { bbl.fourth 't := }
+ { s "fifth" = s "5" = or
+ { bbl.fifth 't := }
+ { s #1 #1 substring$ is.num
+ { s eng.ord 't := }
+ { edition 't := }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ t
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { output.state mid.sentence =
+ { convert.edition "l" change.case$ " " * bbl.edition * }
+ { convert.edition "t" change.case$ " " * bbl.edition * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { bbl.pages pages n.dashify tie.or.space.connect }
+ { bbl.page pages tie.or.space.connect }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.journal.pages}
+{
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ", " * bbl.pages "~" * * pages n.dashify * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null
+ volume empty$
+ 'skip$
+ { bbl.volume "~" * swap$ * }
+ if$
+ number empty$
+ 'skip$
+ {
+ ", " bbl.nr * number tie.or.space.connect *
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ { "" }
+ { type empty$
+ { bbl.chapter }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { word.in booktitle emphasize * }
+ { word.in booktitle emphasize *
+ ", " *
+ bbl.edby
+ *
+ " " *
+ format.in.editors *
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { bbl.techrep }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{
+ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { word.in journal emphasize * }
+ if$
+ }
+ { word.in key * " " *}
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+ editor num.names$ duplicate$
+ #2 >
+ { pop$ " et~al." * }
+ { #2 <
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " et~al." * }
+ { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ word.in
+ }
+ { bbl.volume volume tie.or.space.connect
+ bbl.of space.word *
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { series emphasize * }
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { word.in booktitle emphasize * }
+ if$
+ }
+ { word.in key * " " *}
+ if$
+ }
+ { word.in format.crossref.editor * " " *}
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.publisher}
+{ publisher empty$
+ { "empty publisher in " cite$ * warning$ }
+ 'skip$
+ if$
+ ""
+ address empty$ publisher empty$ and
+ 'skip$
+ {
+ publisher empty$
+ { address empty$
+ 'skip$
+ { address * }
+ if$
+ }
+ { publisher *
+ address empty$
+ 'skip$
+ { ", " * address * }
+ if$
+ }
+ if$
+ }
+ if$
+ output
+}
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ format.title "title" output.check
+ end.quote.title
+ crossref missing$
+ { journal
+ emphasize
+ "journal" output.check
+ format.vol.num.pages output
+ format.date "year" output.check
+ }
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ format.journal.pages
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ format.number.series output
+ format.publisher
+ }
+ {
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ note output
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ format.title "title" output.check
+ end.quote.title
+ howpublished output
+ address output
+ format.date output
+ note output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ format.btitle "title" output.check
+ crossref missing$
+ {
+ format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ format.number.series output
+ format.publisher
+ }
+ {
+ format.chapter.pages "chapter and pages" output.check
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ format.pages "pages" output.check
+ note output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ format.title "title" output.check
+ end.quote.title
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.chapter.pages output
+ format.publisher
+ format.edition output
+ format.date "year" output.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ format.pages "pages" output.check
+ note output
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ format.title "title" output.check
+ end.quote.title
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ publisher empty$
+ { organization output
+ address output
+ }
+ { organization output
+ format.publisher
+ }
+ if$
+ format.date "year" output.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ format.pages "pages" output.check
+ note output
+ fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ {
+ address output
+ }
+ 'skip$
+ if$
+ }
+ {
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+ note output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ format.btitle "title" output.check
+ bbl.mthesis format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ note output
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ format.title output
+ end.quote.title
+ howpublished output
+ format.date output
+ note output
+ fin.entry
+ empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ format.btitle "title" output.check
+ bbl.phdthesis format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ note output
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ note output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ format.title "title" output.check
+ end.quote.title
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+ note output
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ format.title "title" output.check
+ end.quote.title
+ note "note" output.check
+ fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+READ
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" *
+ write$ newline$
+ "\newcommand{\enquote}[1]{``#1''}"
+ write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
+%
+%</bibstyle>
+% \end{macrocode}
+% This concludes \file{aiaa.bst}.
+%
+% \Finale
+%
+% $Id: aiaa.dtx,v 1.11 2004/05/23 12:49:43 kleb Exp $