summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/latex/jmlr/jmlr.dtx4698
-rw-r--r--Master/texmf-dist/source/latex/jmlr/jmlr.ins33
2 files changed, 4731 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/jmlr/jmlr.dtx b/Master/texmf-dist/source/latex/jmlr/jmlr.dtx
new file mode 100644
index 00000000000..bf62a97e559
--- /dev/null
+++ b/Master/texmf-dist/source/latex/jmlr/jmlr.dtx
@@ -0,0 +1,4698 @@
+%\iffalse
+% jmlr.dtx generated using makedtx version 0.94b (c) Nicola Talbot
+% Command line args:
+% -src "jmlr.cls\Z=>jmlr.cls"
+% -src "jmlrbook.cls\Z=>jmlrbook.cls"
+% -doc "jmlr-manual.tex"
+% -author "Nicola Talbot"
+% -codetitle "jmlr.cls Code"
+% jmlr
+% Created on 2010/6/17 20:52
+%\fi
+%\iffalse
+%<*package>
+%% \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 \~}
+%</package>
+%\fi
+% \iffalse
+% Doc-Source file to use with LaTeX2e
+% Copyright (C) 2010 Nicola Talbot, all rights reserved.
+% \fi
+% \iffalse
+%<*driver>
+\documentclass{nlctdoc}
+
+\usepackage{amsmath}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{ifthen}
+\usepackage[colorlinks,
+ bookmarks,
+ hyperindex=false,
+ pdfauthor={Nicola L.C. Talbot},
+ pdftitle={jmlr: LaTeX2e Classes for the Journal of Machine Learning Research},
+ pdfkeywords={LaTeX,jmlr}]{hyperref}
+
+\CheckSum{3333}
+\OnlyDescription
+
+\begin{document}
+\DocInput{jmlr.dtx}
+\end{document}
+%</driver>
+%\fi
+%\MakeShortVerb{"}
+%\DeleteShortVerb{\|}
+%
+% \title{\LaTeXe\ Classes for the Journal of Machine
+%Learning Research}
+% \author{Nicola L. C. Talbot\\[10pt]
+%\url{http://theoval.cmp.uea.ac.uk/~nlct/}}
+%
+% \date{2010-06-17 (version 1.06)}
+% \maketitle
+%\tableofcontents
+%
+%\section{Introduction}
+%
+%The \clsfmt{jmlr} class is for articles that need to be formatted
+%according to the Journal of Machine Learning Research style. This
+%class is based on the \sty{jmlr2e} and \sty{jmlrwcp2e} packages
+%but has been adapted to enable it to work better with the
+%\cls{combine} class to collate the articles into a book.
+%\sectionref{sec:jmlr} describes how to use the \clsfmt{jmlr} class.
+%
+%The \clsfmt{jmlrbook} class is for combining JMLR articles into a book.
+%This class uses \cls{combine} and \sty{hyperref}, which are
+%troublesome enough on their own but together are quite fragile. The
+%\clsfmt{jmlrbook} class redefines some internals to get \clsfmt{combine}
+%and \clsfmt{hyperref} to work together but some packages (e.g.\
+%\sty{subfig} and \sty{pdfpages}) are likely to mess everything up
+%and cause errors. This is why the guidelines to authors are fairly
+%stringent and why \clsfmt{jmlr} will give an error message if certain
+%packages are loaded.\footnote{Currently \clsfmt{jmlr} will check if
+%\sty{subfig}, \sty{pdfpages}, \sty{geometry}, \sty{psfig},
+%\sty{epsfig} and \sty{theorem} are loaded and will throw an error.
+%If other packages are found to be a problem, they will be added to
+%the list.} The \clsfmt{jmlrbook} class works best with PDF\LaTeX\ so
+%authors should ensure that their articles can compile with
+%PDF\LaTeX. \sectionref{sec:jmlrbook} describes how to use the
+%\clsfmt{jmlrbook} class.
+%
+%The \app{makejmlrbook} Perl script can be used to make a book that
+%uses the \clsfmt{jmlrbook} class. In addition to creating the print
+%and online versions of the book, it will compile the individual
+%articles, running Bib\TeX\ where necessary, and create a set of
+%HTML files containing a list of all the articles imported into the
+%book along with links to the abstracts and PDFs of the individual
+%articles. \sectionref{sec:makejmlrbook} describes how
+%to use the \app{makejmlrbook} application.
+%
+%\section{Required Packages}
+%
+%The \clsfmt{jmlr} class is based on the \cls{scrartcl} class and loads
+%the following packages: \sty{amsmath}, \sty{amssymb},
+%\sty{natbib}, \sty{url}, \sty{graphicx} and \sty{algorithm2e}.
+%Note that unlike the \sty{jmlr2e} and \sty{jmlrwcp2e} packages,
+%this class file does not load the obsolete \sty{epsfig} package.
+%
+%The \clsfmt{jmlrbook} class additionally loads the \cls{combine} class
+%and the following packages: \sty{hyperref}, \sty{xkeyval},
+%\sty{combnat} and \sty{setspace}.
+%
+%The \app{makejmlrbook} script requires Perl, \TeX\ and \TeX4ht.
+%
+%\section{Guidelines for Article Authors}
+%\label{sec:jmlr}
+%
+%Article authors should use the \clsfmt{jmlr} class. This class
+%comes with example files \texttt{jmlr-sample.tex} and
+%\texttt{jmlrwcp-sample.tex}, which can be used as templates.
+%
+%The following class options are available:
+%\begin{description}
+%\item[\clsopt{nowcp}]The article is for the Journal of Machine
+%Learning Research (default).
+%\item[\clsopt{wcp}] The article is for JMLR Workshop and Conference
+%Proceedings.
+%\item[\clsopt{color}] Color version (see \sectionref{sec:color}).
+%
+%\item[\clsopt{gray}] Grayscale version (see \sectionref{sec:color}).
+%
+%\item[\clsopt{tablecaptiontop}] in a \env{table} environment,
+%\ics{floatconts} puts the caption at the top.
+%
+%\item[\clsopt{tablecaptionbottom}] in a \env{table} environment,
+%\ics{floatconts} puts the caption at the bottom.
+%\end{description}
+%
+%\subsection{Title Information}
+%
+%The \clsfmt{jmlr} class uses different syntax from \sty{jmlr2e} and
+%\sty{jmlrwcp2e} to specify the title information. In particular, it
+%doesn't define \cs{jmlrheading} and \cs{ShortHeading}. Instead, the
+%following commands should be used:
+%
+%\begin{definition}[\DescribeMacro{\jmlrvolume}]
+%\cs{jmlrvolume}\marg{number}
+%\end{definition}
+%This specifies the volume number. For example:
+%\begin{verbatim}
+%\jmlrvolume{2}
+%\end{verbatim}
+%
+%\begin{definition}[\DescribeMacro{\jmlryear}]
+%\cs{jmlryear}\marg{year}
+%\end{definition}
+%This specifies the year. For example:
+%\begin{verbatim}
+%\jmlryear{2010}
+%\end{verbatim}
+%
+%\begin{definition}[\DescribeMacro{\jmlrsubmitted}]
+%\cs{jmlrsubmitted}\marg{date}
+%\end{definition}
+%This specifies the submission date.
+%
+%\begin{definition}[\DescribeMacro{\jmlrpublished}]
+%\cs{jmlrpublished}\marg{date}
+%\end{definition}
+%This specifies the publication date.
+%
+%\begin{definition}[\DescribeMacro{\jmlrworkshop}]
+%\cs{jmlrworkshop}\marg{title}
+%\end{definition}
+%This specifies the workshop title (for use with the \clsopt{wcp}
+%class option).
+%
+%The title information is specified using the commands described
+%below. These commands should typically go in the preamble. As
+%with most class files, The title itself is produced using
+%\begin{definition}[\DescribeMacro{\maketitle}]
+%\cs{maketitle}
+%\end{definition}
+%This command should go after \verb|\begin{document}|. For example:
+%\begin{verbatim}
+%\begin{document}
+%\maketitle
+%\end{verbatim}
+%Before \cs{maketitle}, you must specify the title information
+%using the following commands:
+%
+%\begin{definition}[\DescribeMacro{\title}]
+%\cs{title}\oarg{short title}\marg{title}
+%\end{definition}
+%This specifies the article's title. A short title for the page
+%header can be supplied via the optional argument \meta{short title}.
+%
+%\begin{definition}[\DescribeMacro{\editor}]
+%\cs{editor}\marg{name}
+%\end{definition}
+%This specifies the editor's name. If there is more than one
+%editor, use:
+%\begin{definition}[\DescribeMacro{\editors}]
+%\cs{editors}\marg{names}
+%\end{definition}
+%
+%\begin{definition}[\DescribeMacro{\author}]
+%\cs{author}\marg{author specs}
+%\end{definition}
+%This specifies the author. The specifications \meta{author specs}
+%are a bit different to \sty{jmlr2e} and \sty{jmlrwcp2e}. Use
+%\begin{definition}[\DescribeMacro{\Name}]
+%\cs{Name}\marg{author's name}
+%\end{definition}
+%to specify the author's name. Note that if the surname contains a
+%space it must be grouped (enclosed in braces \{\}). Similarly if
+%the initial letter of each forename is a diacritic it must be
+%grouped. (See below for examples.)
+%\begin{definition}[\DescribeMacro{\Email}]
+%\cs{Email}\marg{author's email}
+%\end{definition}
+%This specifies the author's email address. It should only be used
+%within the argument to \cs{author}.
+%
+%\begin{definition}[\DescribeMacro{\and}]
+%\cs{and}
+%\end{definition}
+%This should be used to separate two authors with the same address.
+%
+%\begin{definition}[\DescribeMacro{\AND}]
+%\cs{AND}
+%\end{definition}
+%This should be used to separate authors with different addresses.
+%
+%\begin{definition}[\DescribeMacro{\\}]
+%\verb|\\|
+%\end{definition}
+%This should be used before an author's address or between authors
+%with the same address where there are more that two authors.
+%
+%\begin{definition}[\DescribeMacro{\addr}]
+%\cs{addr}
+%\end{definition}
+%This should be used at the start of the address.
+%
+%\begin{description}
+%\item[Example 1] Two authors with the same address:
+%\begin{verbatim}
+%\author{\Name{Jane Doe} \Email{abc@sample.com}\and
+% \Name{John {Basey Fisher}} \Email{xyz@sample.com}\\
+% \addr Address}
+%\end{verbatim}
+%In this example, the second author has a space in his surname
+%so the surname needs to be grouped.
+%
+%\item[Example 2] Three authors with the same address:
+%\begin{verbatim}
+%\author{\Name{Fred Arnold {de la Cour}} \Email{an1@sample.com}\\
+% \Name{Jack Jones} \Email{an3@sample.com}\\
+% \Name{{\'E}louise {\'E}abhla Finchley} \Email{an2@sample.com}\\
+% \addr Address}
+%\end{verbatim}
+%In this example, the third author has an accent on her
+%forename initials so grouping is required.
+%
+%\item[Example 3] Authors with a different address:
+%\begin{verbatim}
+%\author{\Name{John Smith} \Email{abc@sample.com}\\
+% \addr Address 1
+% \AND
+% \Name{May Brown} \Email{xyz@sample.com}\\
+% \addr Address 2
+% }
+%\end{verbatim}
+%\end{description}
+%
+%\subsection{Font Changing Commands}
+%
+%Use the \LaTeXe\ font changing commands, such as \cs{bfseries} or
+%\cs{textbf}\marg{text}, rather than the obsolete \LaTeX2.09
+%commands, such as \cs{bf}.
+%
+%\begin{definition}[\DescribeMacro{\url}]
+%\cs{url}\marg{address}
+%\end{definition}
+%This will typeset \meta{address} in a typewriter font. Special
+%characters, such as \verb|~|, are correctly displayed. Example:
+%\begin{verbatim}
+%\url{http://theoval.cmp.uea.ac.uk/~nlct/}
+%\end{verbatim}
+%
+%\begin{definition}[\DescribeMacro{\mailto}]
+%\cs{mailto}\marg{email address}
+%\end{definition}
+%This will typeset the given email address in a typewriter font.
+%Note that this is not the same as \cs{Email}, which should only be
+%used in the argument of \cs{author}.
+%
+%\subsection{Structure}
+%
+%\begin{definition}[\DescribeEnv{abstract}]
+%\cs{begin}\{abstract\}\\
+%\meta{text}\\
+%\cs{end}\{abstract\}
+%\end{definition}
+%The abstract text should be displayed using the \envfmt{abstract}
+%environment.
+%
+%\begin{definition}[\DescribeEnv{keywords}]
+%\cs{begin}\{keywords\}\meta{keyword list}\cs{end}\{keywords\}
+%\end{definition}
+%The keywords should be displayed using the \envfmt{keywords}
+%environment.
+%
+%\begin{definition}[\DescribeMacro{\acks}]
+%\cs{acks}\marg{text}
+%\end{definition}
+%This displays the acknowledgements.
+%
+%\begin{definition}[\DescribeMacro{\section}]
+%\cs{section}\marg{title}
+%\end{definition}
+%Section titles are created using \cs{section}. The heading is
+%automatically numbered and can be cross-referenced using
+%\cs{label} and \cs{ref}. Unnumbered sections can be produced
+%using:
+%\begin{definition}[\DescribeMacro{\section*}]
+%\cs{section*}\marg{title}
+%\end{definition}
+%
+%\begin{definition}[\DescribeMacro{\subsection}]
+%\cs{subsection}\marg{title}
+%\end{definition}
+%Sub-section titles are created using \cs{subsection}. Unnumbered
+%sub-sections can be produced using:
+%\begin{definition}[\DescribeMacro{\subsection*}]
+%\cs{subsection*}\marg{title}
+%\end{definition}
+%
+%\begin{definition}[\DescribeMacro{\subsubsection}]
+%\cs{subsubsection}\marg{title}
+%\end{definition}
+%Sub-sub-section titles are created using \cs{subsubsection}.
+%Unnumbered sub-sub-sections can be produced using:
+%\begin{definition}[\DescribeMacro{\subsubsection*}]
+%\cs{subsubsection*}\marg{title}
+%\end{definition}
+%
+%Further sectioning levels can be obtained using \cs{paragraph}
+%and \cs{subparagraph}, but these are unnumbered with running heads.
+%
+%\begin{definition}[\DescribeMacro{\appendix}]
+%\cs{appendix}
+%\end{definition}
+%Use \cs{appendix} to switch to the appendices. This changes
+%\cs{section} to produce an appendix. Example:
+%\begin{verbatim}
+%\appendix
+%\section{Proof of Theorems}
+%\end{verbatim}
+%
+%\subsection{Citations and Bibliography}
+%
+%The \clsfmt{jmlr} class automatically loads \sty{natbib} and sets
+%the bibliography style to \texttt{plainnat}. References should
+%be stored in a \texttt{.bib} file.
+%
+%\begin{definition}[\DescribeMacro{\bibliography}]
+%\cs{bibliography}\marg{bib file}
+%\end{definition}
+%This displays the bibliography.
+%
+%\begin{definition}[\DescribeMacro{\citep}]
+%\cs{citep}\oarg{pre note}\oarg{post note}\marg{label}
+%\end{definition}
+%Use \cs{citep} for a parenthetical citation.
+%
+%\begin{definition}[\DescribeMacro{\citet}]
+%\cs{citet}\oarg{note}\marg{label}
+%\end{definition}
+%Use \cs{citet} for a textual citation.
+%
+%See the \ctandoc{natbib} for further details.
+%
+%\subsection{Figures and Tables}
+%
+%Floats, such as figures, tables and algorithms, are moving objects
+%and are supposed to float to the nearest convenient location.
+%Please don't force them to go in a particular place. In general
+%it's best to use the \texttt{htbp} specifier and don't put
+%the float in the middle of a paragraph (that is, make sure there's
+%a paragraph break above and below the float). Floats are supposed
+%to have a little extra space above and below them to make them
+%stand out from the rest of the text. This extra space is put in
+%automatically and shouldn't need modifying.
+%
+%To ensure consistency, please \emph{don't} try changing the
+%format of the caption by doing something like:
+%\begin{verbatim}
+%\caption{\textit{A Sample Caption.}}
+%\end{verbatim}
+%or
+%\begin{verbatim}
+%\caption{\em A Sample Caption.}
+%\end{verbatim}
+%You can, of course, change the font for individual words or
+%phrases. For example:
+%\begin{verbatim}
+%\caption{A Sample Caption With Some \emph{Emphasized Words}.}
+%\end{verbatim}
+%
+%The \clsfmt{jmlr} class provides the following command for displaying
+%the contents of a figure or table:
+%\begin{definition}[\DescribeMacro{\floatconts}]
+%\cs{floatconts}\marg{label}\marg{caption command}\marg{contents}
+%\end{definition}
+%This ensures that the caption is correctly positioned and that
+%the contents are centered. For example:
+%\begin{verbatim}
+%\begin{table}[htbp]
+%\floatconts
+% {tab:example}% label
+% {\caption{An Example Table}}% caption command
+% {%
+% \begin{tabular}{ll}
+% \bfseries Dataset & \bfseries Result\\
+% Data1 & 0.123456
+% \end{tabular}
+% }
+%\end{table}
+%\end{verbatim}
+%
+%The \clsfmt{jmlr} class automatically loads \sty{graphicx} which
+%defines:
+%\begin{definition}[\DescribeMacro{\includegraphics}]
+%\cs{includegraphics}\oarg{options}\marg{file name}
+%\end{definition}
+%where \meta{options} is a comma-separated list of options.
+%
+%For example, suppose you have an image called
+%\texttt{mypic.png} in a subdirectory called \texttt{images}:
+%\begin{verbatim}
+%\begin{figure}[htbp]
+%\floatconts
+% {fig:example}% label
+% {\caption{An Example Figure}}% caption command
+% {\includegraphics[width=0.5\textwidth]{images/mypic}}
+%\end{figure}
+%\end{verbatim}
+%
+%Note that you shouldn't specify the file extension when including
+%the image. It's helpful if you can also provide a grayscale
+%version of color images. This should be labeled as the color
+%image but with \texttt{-gray} immediately before the extension.
+%(The extension need not be the same as that of the color image.)
+%For example, if you have an image called \texttt{mypic.pdf}, the
+%grayscale can be called \texttt{mypic-gray.pdf},
+%\texttt{mypic-gray.png} or \texttt{mypic-gray.jpg}.
+%See \sectionref{sec:color} for further details.
+%
+%\begin{definition}[\DescribeMacro{\includeteximage}]
+%\cs{includeteximage}\oarg{options}\marg{file name}
+%\end{definition}
+%If your image file is made up of \LaTeX\ code (e.g.\ \sty{tikz}
+%commands) the file can be included using \cs{includeteximage}.
+%The optional argument is a key=value comma-separated list
+%where the keys are a subset of those provided by
+%\cs{includegraphics}. The main keys are: \texttt{width},
+%\texttt{height}, \texttt{scale} and \texttt{angle}.
+%
+%\subsubsection{Sub-Figures and Sub-Tables}
+%
+%The \sty{subfig} package causes a problem for \clsfmt{jmlrbook} so
+%the \clsfmt{jmlr} class will give an error if it is used. Therefore
+%the \clsfmt{jmlr} class provides its own commands for including
+%sub-figures and sub-tables.
+%
+%\begin{definition}[\DescribeMacro{\subfigure}]
+%\cs{subfigure}\oarg{title}\oarg{valign}\marg{contents}
+%\end{definition}
+%This makes a sub-figure where \meta{contents} denotes the contents
+%of the sub-figure. This should also include the \cs{label}.
+%The first optional argument \meta{title} indicates a caption for
+%the sub-figure. By default, the sub-figures are aligned at the
+%base. This can be changed with the second optional argument
+%\meta{valign}, which may be one of: \texttt{t} (top), \texttt{c}
+%(centred) or \texttt{b} (base).
+%
+%For example, suppose there are two images files, \texttt{mypic1.png}
+%and \texttt{mypic2.png}, in the subdirectory \texttt{images}.
+%Then they can be included as sub-figures as follows:
+%\begin{verbatim}
+%\begin{figure}[htbp]
+%\floatconts
+% {fig:example2}% label for whole figure
+% {\caption{An Example Figure.}}% caption for whole figure
+% {%
+% \subfigure{%
+% \label{fig:pic1}% label for this sub-figure
+% \includegraphics{images/mypic1}
+% }\qquad % space out the images a bit
+% \subfigure{%
+% \label{fig:pic2}% label for this sub-figure
+% \includegraphics{images/mypic2}
+% }
+% }
+%\end{figure}
+%\end{verbatim}
+%
+%\begin{definition}[\DescribeMacro{\subtable}]
+%\cs{subtable}\oarg{title}\oarg{valign}\marg{contents}
+%\end{definition}
+%This is an analogous command for sub-tables. The default value
+%for \meta{valign} is \texttt{t}.
+%
+%\subsection{Algorithms}
+%
+%\begin{definition}[\DescribeEnv{algorithm}]
+%\cs{begin}\{algorithm\}\\
+%\meta{contents}\\
+%\cs{end}\{algorithm\}
+%\end{definition}
+%Enumerated textual algorithms can be displayed using the
+%\envfmt{algorithm} environment. Within this environment, use
+%\ics{caption} to set the caption (and \ics{label} to cross-reference
+%it). Within the body of the environment you can use the
+%\env{enumerate} environment.
+%
+%\begin{definition}[\DescribeEnv{enumerate*}]
+%\cs{begin}\{enumerate*\}\\
+%\cs{item} \meta{text}\\
+%\ldots\\
+%\cs{end}\{enumerate*\}
+%\end{definition}
+%If you want to have nested \env{enumerate} environments but you want
+%to keep the same numbering throughout the algorithm, you can use the
+%\envfmt{enumerate*} environment, provided by the \clsfmt{jmlr}
+%class. For example:
+%\begin{verbatim}
+%\begin{enumerate*}
+% \item Set the label of vertex $s$ to 0
+% \item Set $i=0$
+% \begin{enumerate*}
+% \item \label{step:locate}Locate all unlabelled vertices
+% adjacent to a vertex labelled $i$ and label them $i+1$
+% \item If vertex $t$ has been labelled,
+% \begin{enumerate*}
+% \item[] the shortest path can be found by backtracking, and
+% the length is given by the label of $t$.
+% \end{enumerate*}
+% otherwise
+% \begin{enumerate*}
+% \item[] increment $i$ and return to step~\ref{step:locate}
+% \end{enumerate*}
+% \end{enumerate*}
+%\end{enumerate*}
+%\end{algorithm}
+%\end{verbatim}
+%
+%
+%\begin{definition}[\DescribeEnv{algorithm2e}]
+%\cs{begin}\{algorithm2e\}\\
+%\meta{contents}\\
+%\cs{end}\{algorithm2e\}
+%\end{definition}
+%Pseudo code can be displayed using the \envfmt{algorithm2e} environment,
+%provided by the \sty{algorithm2e} package, which is automatically
+%loaded. For example:
+%\begin{verbatim}
+%\begin{algorithm2e}
+%\caption{Computing Net Activation}
+%\label{alg:net}
+%\dontprintsemicolon
+%\linesnumbered
+%\KwIn{$x_1, \ldots, x_n, w_1, \ldots, w_n$}
+%\KwOut{$y$, the net activation}
+%$y\leftarrow 0$\;
+%\For{$i\leftarrow 1$ \KwTo $n$}{
+% $y \leftarrow y + w_i*x_i$\;
+%}
+%\end{algorithm2e}
+%\end{verbatim}
+%
+%See the \ctandoc{algorithm2e} for more details.
+%
+%\subsection{Description Lists}
+%
+%\begin{definition}[\DescribeEnv{altdescription}]
+%\cs{begin}\{altdescription\}\marg{widest label}\\
+%\cs{item}\oarg{label} \meta{item text}\\
+%\cs{end}\{altdescription\}
+%\end{definition}
+%In addition to the standard \env{description} environment, the
+%\clsfmt{jmlr} class also provides the \envfmt{altdescription} environment.
+%This has an argument that should be the widest label used in the
+%list. For example:
+%\begin{verbatim}
+%\begin{altdescription}{differentiate}
+%\item[add] A method that adds two variables.
+%\item[differentiate] A method that differentiates a function.
+%\end{altdescription}
+%\end{verbatim}
+%
+%\subsection{Theorems, Lemmas etc}
+%
+%The \clsfmt{jmlr} class provides the following theorem-like
+%environments: \env{theorem}, \env{example}, \env{lemma},
+%\env{proposition}, \env{remark}, \env{corollary}, \env{definition},
+%\env{conjecture} and \env{axiom}. Within the body of those
+%environments, you can use the \env{proof} environment to display the
+%proof if need be. The theorem-like environments all take an
+%optional argument, which gives the environment a title. For example:
+%
+%\begin{verbatim}
+%\begin{theorem}[An Example Theorem]
+%\label{thm:example}
+%This is the theorem.
+%\begin{proof}
+%This is the proof.
+%\end{proof}
+%\end{theorem}
+%\end{verbatim}
+%
+%\subsection{Cross-Referencing}
+%\label{sec:crossref}
+%
+%Always use \ics{label} when cross-referencing, rather than writing
+%the number explicitly. The \clsfmt{jmlr} class provides some
+%convenience commands to assist referencing. These commands,
+%described below, can all take a comma-separated list of labels.
+%
+%\begin{definition}[\DescribeMacro{\sectionref}]
+%\cs{sectionref}\marg{label list}
+%\end{definition}
+%Used to refer to a section or sections. For example, if you defined
+%a section as follows:
+%\begin{verbatim}
+%\section{Results}\label{sec:results}
+%\end{verbatim}
+%you can refer to it as follows:
+%\begin{verbatim}
+%The results are detailed in \sectionref{sec:results}.
+%\end{verbatim}
+%This command may also be used for sub-sections and sub-sub-sections.
+%
+%\begin{definition}[\DescribeMacro{\appendixref}]
+%\cs{appendixref}\marg{label list}
+%\end{definition}
+%Used to refer to an appendix or multiple appendices.
+%
+%\begin{definition}[\DescribeMacro{\equationref}]
+%\cs{equationref}\marg{label list}
+%\end{definition}
+%Used to refer to an equation or multiple equations.
+%
+%\begin{definition}[\DescribeMacro{\tableref}]
+%\cs{tableref}\marg{label list}
+%\end{definition}
+%Used to refer to a table or multiple tables. This can also be
+%used for sub-tables where the main table number is also required.
+%
+%\begin{definition}[\DescribeMacro{\subtabref}]
+%\cs{subtabref}\marg{label list}
+%\end{definition}
+%Used to refer to sub-tables without the main table number, e.g.
+%(\emph{a}) or (\emph{b}).
+%
+%\begin{definition}[\DescribeMacro{\figureref}]
+%\cs{figureref}\marg{label list}
+%\end{definition}
+%Used to refer to a figure or multiple figures. This can also
+%be used for sub-figures where the main figure number is also
+%required, e.g.\ 2(\emph{a}) or 4(\emph{b}).
+%
+%\begin{definition}[\DescribeMacro{\subfigref}]
+%\cs{subfigref}\marg{label list}
+%\end{definition}
+%Used to refer to sub-figures without the main figure number, e.g.
+%(\emph{a}) or (\emph{b}).
+%
+%\begin{definition}[\DescribeMacro{\algorithmref}]
+%\cs{algorithmref}\marg{label list}
+%\end{definition}
+%Used to refer to an algorithm or multiple algorithms.
+%
+%\begin{definition}[\DescribeMacro{\theoremref}]
+%\cs{theoremref}\marg{label list}
+%\end{definition}
+%Used to refer to a theorem or multiple theorems.
+%
+%\begin{definition}[\DescribeMacro{\lemmaref}]
+%\cs{lemmaref}\marg{label list}
+%\end{definition}
+%Used to refer to a lemma or multiple lemmas.
+%
+%\begin{definition}[\DescribeMacro{\remarkref}]
+%\cs{remarkref}\marg{label list}
+%\end{definition}
+%Used to refer to a remark or multiple remarks.
+%
+%\begin{definition}[\DescribeMacro{\corollaryref}]
+%\cs{corollaryref}\marg{label list}
+%\end{definition}
+%Used to refer to a corollary or multiple corollaries.
+%
+%\begin{definition}[\DescribeMacro{\definitionref}]
+%\cs{definitionref}\marg{label list}
+%\end{definition}
+%Used to refer to a definition or multiple definitions.
+%
+%\begin{definition}[\DescribeMacro{\conjectureref}]
+%\cs{conjectureref}\marg{label list}
+%\end{definition}
+%Used to refer to a conjecture or multiple conjectures.
+%
+%\begin{definition}[\DescribeMacro{\axiomref}]
+%\cs{axiomref}\marg{label list}
+%\end{definition}
+%Used to refer to an axiom or multiple axioms.
+%
+%\begin{definition}[\DescribeMacro{\exampleref}]
+%\cs{exampleref}\marg{label list}
+%\end{definition}
+%Used to refer to an example or multiple examples.
+%
+%\subsection{Mathematics}
+%
+%The \clsfmt{jmlr} class loads the \sty{amsmath} package so you can use
+%any of the commands and environments defined in that package. A
+%brief summary of some of the more common commands and environments
+%is provided here. See the \ctandoc{amsmath} for further details.
+%
+%\begin{definition}[\DescribeMacro{\set}]
+%\cs{set}\marg{text}
+%\end{definition}
+%In addition to the commands provided by \sty{amsmath}, the
+%\clsfmt{jmlr} class also provides the \cs{set} command which can
+%be used to typeset a set. For example:
+%\begin{verbatim}
+%The universal set is denoted $\set{U}$
+%\end{verbatim}
+%
+%Unnumbered single-line equations should be displayed using
+%\cs{[} and \cs{]}. For example:
+%\begin{verbatim}
+%\[E = m c^2\]
+%\end{verbatim}
+%Numbered single-line equations should be displayed using the
+%\env{equation} environment. For example:
+%\begin{verbatim}
+%\begin{equation}\label{eq:trigrule}
+%\cos^2\theta + \sin^2\theta \equiv 1
+%\end{equation}
+%\end{verbatim}
+%Multi-lined numbered equations should be displayed using the
+%\env{align} environment. For example:
+%\begin{verbatim}
+%\begin{align}
+%f(x) &= x^2 + x\label{eq:f}\\
+%f'(x) &= 2x + 1\label{eq:df}
+%\end{align}
+%\end{verbatim}
+%Unnumbered multi-lined equations should be displayed using the
+%\env{align*} environment. For example:
+%\begin{verbatim}
+%\begin{align*}
+%f(x) &= (x+1)(x-1)\\
+%&= x^2 - 1
+%\end{align*}
+%\end{verbatim}
+%If you want to mix numbered with unnumbered lines use the
+%\env{align} environment and suppress unwanted line numbers with
+%\cs{nonumber}. For example:
+%\begin{verbatim}
+%\begin{align}
+%y &= x^2 + 3x - 2x + 1\nonumber\\
+%&= x^2 + x + 1\label{eq:y}
+%\end{align}
+%\end{verbatim}
+%An equation that is too long to fit on a single line can be
+%displayed using the \env{split} environment.
+%
+%Text can be embedded in an equation using \ics{text}\marg{text} or
+%you can use \ics{intertext}\marg{text} to interupt a multi-line
+%environment such as \env{align}.
+%
+%Predefined operator names are listed in \tableref{tab:operatornames}.
+%For additional operators, either use
+%\begin{definition}[\DescribeMacro{\operatorname}]
+%\cs{operatorname}\marg{name}
+%\end{definition}
+%for example
+%\begin{verbatim}
+%If $X$ and $Y$ are independent,
+%$\operatorname{var}(X+Y) =
+%\operatorname{var}(X) + \operatorname{var}(Y)$
+%\end{verbatim}
+%or declare it with
+%\begin{definition}[\DescribeMacro{\DeclareMathOperator}]
+%\cs{DeclareMathOperator}\marg{command}\marg{name}
+%\end{definition}
+%for example
+%\begin{verbatim}
+%\DeclareMathOperator{\var}{var}
+%\end{verbatim}
+%and then use this new command:
+%\begin{verbatim}
+%If $X$ and $Y$ are independent,
+%$\var(X+Y) = \var(X)+\var(Y)$
+%\end{verbatim}
+%
+%If you want limits that go above and
+%below the operator (like \ics{sum}) use the starred versions
+%(\ics{operatorname*} or \ics{DeclareMathOperator*}).
+%
+%\begin{table}[htbp]
+%\caption{Predefined Operator Names (taken from
+% \sty{amsmath} documentation)}
+%\label{tab:operatornames}%
+%\vskip\baselineskip
+%\centering
+%\begin{tabular}{rlrlrlrl}
+%\cs{arccos} & $\arccos$ & \cs{deg} & $\deg$ & \cs{lg} & $\lg$ & \cs{projlim} & $\projlim$ \\
+%\cs{arcsin} & $\arcsin$ & \cs{det} & $\det$ & \cs{lim} & $\lim$ & \cs{sec} & $\sec$ \\
+%\cs{arctan} & $\arctan$ & \cs{dim} & $\dim$ & \cs{liminf} & $\liminf$ & \cs{sin} & $\sin$ \\
+%\cs{arg} & $\arg$ & \cs{exp} & $\exp$ & \cs{limsup} & $\limsup$ & \cs{sinh} & $\sinh$ \\
+%\cs{cos} & $\cos$ & \cs{gcd} & $\gcd$ & \cs{ln} & $\ln$ & \cs{sup} & $\sup$ \\
+%\cs{cosh} & $\cosh$ & \cs{hom} & $\hom$ & \cs{log} & $\log$ & \cs{tan} & $\tan$ \\
+%\cs{cot} & $\cot$ & \cs{inf} & $\inf$ & \cs{max} & $\max$ & \cs{tanh} & $\tanh$ \\
+%\cs{coth} & $\coth$ & \cs{injlim} & $\injlim$ & \cs{min} & $\min$ \\
+%\cs{csc} & $\csc$ & \cs{ker} & $\ker$ & \cs{Pr} & $\Pr$
+%\end{tabular}\par
+%\begin{tabular}{rlrl}
+%\cs{varlimsup} & $\varlimsup$
+%& \cs{varinjlim} & $\varinjlim$\\
+%\cs{varliminf} & $\varliminf$
+%& \cs{varprojlim} & $\varprojlim$
+%\end{tabular}
+%
+%\end{table}
+%
+%\subsection{Color vs Grayscale}
+%\label{sec:color}
+%
+%It's helpful if authors supply grayscale versions of their
+%articles in the event that the article is to be incorporated into
+%a black and white printed book. With external PDF, PNG or JPG
+%graphic files, you just need to supply a grayscale version of the
+%file. For example, if the file is called \texttt{myimage.png},
+%then the gray version should be \texttt{myimage-gray.png} or
+%\texttt{myimage-gray.pdf} or \texttt{myimage-gray.jpg}. You don't
+%need to modify your code. The \clsfmt{jmlr} class checks for
+%the existence of the grayscale version if it is print mode
+%(provided you have used \ics{includegraphics} and haven't
+%specified the file extension).
+%
+%\begin{definition}[\DescribeMacro{\ifprint}]
+%\cs{ifprint}\marg{true part}\marg{false part}
+%\end{definition}
+%You can use \cs{ifprint} to determine which mode you are in.
+%For example:
+%\begin{verbatim}
+%in \figureref{fig:nodes}, the
+%\ifprint{dark gray}{purple}
+%ellipse represents an input and the
+%\ifprint{light gray}{yellow} ellipse
+%represents an output.
+%\end{verbatim}
+%Another example:
+%\begin{verbatim}
+%{\ifprint{\bfseries}{\color{red}}important text!}
+%\end{verbatim}
+%
+%You can use the class option \clsopt{gray} to see how the
+%document will appear in gray scale mode.
+%
+%The \sty{xcolor} class is loaded with the \pkgoptfmt{x11names}
+%option, so you can use any of the x11 predefined colors (listed
+%in the \ctandoc{xcolor}).
+%
+%\subsection{Where To Go For Help}
+%
+%If you have a \LaTeX\ query, the first place to go to is the
+%\urlfootref{http://www.tex.ac.uk/faq}{UK TUG FAQ}.
+%
+%If you are unfamiliar or just getting started with \LaTeX, there's
+%a list of on-line introductions to \LaTeX\ at:
+%\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=man-latex}
+%
+%There are also forums, mailing lists and newsgroups. For example,
+%the \LaTeX\ Community (\url{http://www.latex-community.org/}),
+%the \texttt{texhax} mailing list
+%(\url{http://tug.org/mailman/listinfo/texhax}) and
+%\texttt{comp.text.tex} (archives available at
+%\url{http://groups.google.com/group/comp.text.tex/}).
+%
+%Documentation for packages or classes can be found using the
+%\texttt{texdoc} application. For example:
+%\begin{verbatim}
+%texdoc natbib
+%\end{verbatim}
+%Alternatively, you can go to
+%\texttt{http://www.ctan.org/pkg/}\meta{name} where
+%\meta{name} is the name of the package. For example:
+%\url{http://www.ctan.org/pkg/natbib}
+%
+%For a general guide to preparing papers (regardless of whether you
+%are using \LaTeX\ or a word processor), see Kate L.~Turabian, \qt{A
+%manual for writers of term papers, theses, and dissertations}, The
+%University of Chicago Press, 1996.
+%
+%\section{Guidelines for Production Editors}
+%\label{sec:jmlrbook}
+%
+%The \clsfmt{jmlrbook} class can be used to combine articles that
+%use the \clsfmt{jmlr} document class into a book. The following sample
+%files are provided: \texttt{paper1/paper1.tex},
+%\texttt{paper2/paper2.tex}, \texttt{paper3/paper3.tex},
+%\texttt{jmlr-sample.tex}, \texttt{jmlrwcp-sample.tex} and
+%\texttt{jmlrbook-sample.tex}. All but the last named one are
+%articles using the \clsfmt{jmlr} class. The last one
+%(\texttt{jmlrbook-sample.tex}) uses the \clsfmt{jmlrbook} class file to
+%combine the articles into a book. Note that no modifications are
+%needed to the files using the \clsfmt{jmlr} class when they are
+%imported into the book. They can either be compiled as stand-alone
+%articles or with the entire book.
+%
+%Before you compile the book, make sure that all the articles
+%compile as stand-alone documents (and run Bib\TeX\ where
+%necessary). You can use the \app{makejmlrbook} Perl script to compile
+%the book and create associated HTML files. See
+%\sectionref{sec:makejmlrbook} for details.
+%
+%\subsection{\clsfmt{jmlrbook} Class Options}
+%\begin{description}
+%\item[\clsopt{nowcp}]The imported pre-published articles were
+%published in the Journal of Machine Learning Research (default).
+%\item[\clsopt{wcp}] The imported pre-published articles were
+%published in the JMLR Workshop and Conference Proceedings.
+%
+%If the book has a mixture of JMLR and JMLR WCP articles, you
+%can switch between them using
+%\begin{definition}[\DescribeMacro{\jmlrwcp}]
+%\cs{jmlrwcp}
+%\end{definition}
+%and
+%\begin{definition}[\DescribeMacro{\jmlrnowcp}]
+%\cs{jmlrnowcp}
+%\end{definition}
+%Alternatively, you can set the name of the journal or conference
+%proceedings using:
+%\begin{definition}[\DescribeMacro{\jmlrproceedings}]
+%\cs{jmlrproceedings}\marg{short title}\marg{long title}
+%\end{definition}
+%
+%\item[\clsopt{color}] Color version (see \sectionref{sec:color}).
+%Use this option for the on-line version with hyperlinks enabled
+%(default).
+%
+%\item[\clsopt{gray}] Grayscale version (see \sectionref{sec:color}).
+%Use this option for the print version without hyperlinks.
+%
+%\item[\clsopt{tablecaptiontop}] in a \env{table} environment,
+%\ics{floatconts} puts the caption at the top.
+%
+%\item[\clsopt{tablecaptionbottom}] in a \env{table} environment,
+%\ics{floatconts} puts the caption at the bottom.
+%
+%\item[\clsopt{letterpaper}] Set the paper size to letter (default).
+%
+%\item[\clsopt{7x10}] Set the paper size to $7\times10$ inches.
+%
+%\item[\clsopt{prehyperref}] The \clsfmt{jmlrbook} automatically loads
+%the \sty{hyperref} package, but some packages need to be loaded
+%before \sty{hyperref}. This information can be specified using
+%the \clsopt{prehyperref} option. This is a key=value option. For
+%example, to load the packages \styfmt{foo} and \styfmt{bar} before
+%\sty{hyperref}, you can do:
+%\begin{verbatim}
+%\documentclass[prehyperref={\usepackage{foo,bar}}]{jmlrbook}
+%\end{verbatim}
+%or:
+%\begin{verbatim}
+%\documentclass[prehyperref={\usepackage{foo}\usepackage{bar}}]{jmlrbook}
+%\end{verbatim}
+%
+%\item[\clsopt{10pt}] Use 10pt as the normal text size.
+%\item[\clsopt{11pt}] Use 11pt as the normal text size (default).
+%\item[\clsopt{12pt}] Use 12pt as the normal text size.
+%
+%\end{description}
+%
+%\subsection{The Preamble}
+%
+%Any packages that the imported articles load (which aren't
+%automatically loaded by \clsfmt{jmlr}) must be loaded in the book's
+%preamble. For example, if one or more of the articles load the
+%\sty{siunitx} package, this package must be loaded in the book.
+%
+%Commands that are defined in the imported articles will be local
+%to that article unless they have been globally defined using
+%\ics{gdef} or \ics{global}. Since most authors use \ics{newcommand}
+%and \ics{newenvironment} (or \ics{renewcommand} and
+%\ics{renewenvironment}) this shouldn't cause a conflict if more
+%that one article has defined the same command or environment.
+%For example, in the sample files supplied, both
+%\texttt{paper1/paper1.tex} and \texttt{paper2/paper2.tex} have
+%defined the command \cs{samplecommand} using \cs{newcommand}. As
+%long as this command isn't also defined in the book, there won't
+%be a conflict.
+%
+%\begin{definition}[\DescribeMacro{\title}]
+%\cs{title}\oarg{PDF title}\marg{book title}
+%\end{definition}
+%In the book preamble, \cs{title} sets the book title and the optional
+%argument is used for the PDF title, which will be displayed
+%when the reader views the PDF file's properties in their PDF viewer.
+%(Note that in the imported articles, \cs{title} sets the article's
+%title and the optional argument sets the short title for the
+%page header and table of contents.)
+%
+%\begin{definition}[\DescribeMacro{\author}]
+%\cs{author}\oarg{PDF author(s)}\marg{book author(s)}
+%\end{definition}
+%In the book preamble, \cs{author} sets the book's author (or editor)
+%and the optional argument is used for the PDF author, which will be
+%displayed when the reader views the PDF file's properties in their
+%PDF viewer. (Note that in the imported articles, \cs{author} sets
+%the article's author and the optional argument sets the short author
+%list for the page header.)
+%
+%\begin{definition}[\DescribeMacro{\volume}]
+%\cs{volume}\marg{number}
+%\end{definition}
+%This command sets the book's volume number. Omit if the book has no
+%volume number.
+%
+%\begin{definition}[\DescribeMacro{\subtitle}]
+%\cs{subtitle}\marg{sub-title}
+%\end{definition}
+%This command sets the book's subtitle. Omit if the book has no
+%sub-title.
+%
+%\begin{definition}[\DescribeMacro{\logo}]
+%\cs{logo}\marg{image command}
+%\end{definition}
+%This sets the book's title image. Use \ics{includegraphics} and
+%omit the file extension. If you provide a grayscale version as
+%well as a color version, the grayscale version will be used for
+%the print version of the book. (See \sectionref{sec:color}
+%for further details.)
+%
+%\begin{definition}[\DescribeMacro{\team}]
+%\cs{team}\marg{team title}
+%\end{definition}
+%This can be used to set the name of the editorial team. This
+%command may be omitted if not required.
+%
+%\begin{definition}[\DescribeMacro{\productioneditor}]
+%\cs{productioneditor}\marg{name}
+%\end{definition}
+%This command may be used to name the production editor. The command
+%may be omitted if not required.
+%
+%See \sectionref{sec:modifytitle} for details on how to modify the
+%layout of the title page.
+%
+%\subsection{Main Book Commands}
+%
+%All commands that are provided by the \clsfmt{jmlr} class are
+%also available with the \clsfmt{jmlrbook} class, but some commands
+%might behave differently depending on whether they are in the
+%main part of the book or within the imported articles.
+%
+%In the main part of the book you can use the following commands:
+%\begin{definition}[\DescribeMacro{\maketitle}]
+%\cs{maketitle}
+%\end{definition}
+%This displays the book's title page. Note that \cs{maketitle} has
+%a different effect when used in imported articles.
+%
+%\begin{definition}[\DescribeMacro{\frontmatter}]
+%\cs{frontmatter}
+%\end{definition}
+%Use this command at the start of the front matter (e.g.\ before the
+%foreword or preface). This will make chapters unnumbered even if you
+%use \cs{chapter} instead of \cs{chapter*}. It also sets the page
+%style and sets the page numbering to lower case Roman numerals.
+%
+%\begin{definition}[\DescribeEnv{authorsignoff}]
+%\cs{begin}\{authorsignoff\}\\
+%\meta{author list}\\
+%\cs{end}\{authorsignoff\}
+%\end{definition}
+%This environment may be used by the author signing off at the end of a chapter such as the
+%foreword. Within the environment use:
+%\begin{definition}[\DescribeMacro{\Author}]
+%\cs{author}\marg{details}
+%\end{definition}
+%for the author's details. More than one \cs{Author} should be used
+%if there is more than one author. Example:
+%\begin{verbatim}
+%\begin{authorsignoff}
+%\Author{Nicola Talbot\\
+%University of East Anglia}
+%\Author{Anne Author\\
+%University of No Where}
+%\end{authorsignoff}
+%\end{verbatim}
+%
+%\begin{definition}[\DescribeEnv{signoff}]
+%\cs{begin}\{signoff\}\oarg{team name}\marg{date}\\
+%\meta{editor list}\\
+%\cs{end}\{signoff\}
+%\end{definition}
+%This environment may be used by the editorial team when signing off
+%a chapter such as the preface. If the optional argument is omitted,
+%\qt{The Editorial Team} is used.
+%
+%Within the environment use:
+%\begin{definition}[\DescribeMacro{\Editor}]
+%\cs{Editor}\marg{details}
+%\end{definition}
+%for each editor. Example:
+%\begin{verbatim}
+%\begin{signoff}{March 2010}
+%% First editor:
+%\Editor{Nicola Talbot\\
+%University of East Anglia\\
+%\mailto{N.Talbot@uea.ac.uk}}
+%% Second editor:
+%\Editor{Anne Editor\\
+%University of Nowhere\\
+%\mailto{ae@sample.com}}
+%\end{signoff}
+%\end{verbatim}
+%
+%\begin{definition}[\DescribeMacro{\tableofcontents}]
+%\cs{tableofcontents}
+%\end{definition}
+%This command displays the book's table of contents. Note that it
+%has a different effect if used in an imported article.
+%
+%\begin{definition}[\DescribeMacro{\mainmatter}]
+%\cs{mainmatter}
+%\end{definition}
+%Use this command to switch to the book's main matter. This will
+%switch the chapter numbering back on, reset the page numbering to
+%Arabic and set up the main page style.
+%
+%\begin{definition}[\DescribeMacro{\part}]
+%\cs{part}\oarg{short title}\marg{title}
+%\end{definition}
+%If used in the main part of the book, this command will start a
+%new part and issue a clear double page. Note that this command
+%has a different effect if used in an imported article.
+%
+%\begin{definition}[\DescribeMacro{\addtocpart}]
+%\cs{addtocpart}\marg{title}
+%\end{definition}
+%This adds \meta{title} to the table of contents, issues a clear
+%double page, but doesn't display any text or affect the part
+%numbering.
+%
+%\begin{definition}[\DescribeMacro{\chapter}]
+%\cs{chapter}\oarg{short title}\marg{title}
+%\end{definition}
+%This command may be used in the main body of the book but will
+%cause an error if used within an imported article.
+%
+%\begin{definition}[\DescribeMacro{\section}]
+%\cs{section}\oarg{short title}\marg{title}
+%\end{definition}
+%\begin{definition}[\DescribeMacro{\subsection}]
+%\cs{subsection}\oarg{short title}\marg{title}
+%\end{definition}
+%\begin{definition}[\DescribeMacro{\subsubsection}]
+%\cs{subsubsection}\oarg{short title}\marg{title}
+%\end{definition}
+%\begin{definition}[\DescribeMacro{\paragraph}]
+%\cs{paragraph}\oarg{short title}\marg{title}
+%\end{definition}
+%\begin{definition}[\DescribeMacro{\subparagraph}]
+%\cs{subparagraph}\oarg{short title}\marg{title}
+%\end{definition}
+%These commands may be used in the main body of the book or within
+%imported articles. In the main body of the book they need to be
+%within a chapter and will be numbered according to the chapter.
+%
+%\begin{definition}[\DescribeMacro{\appendix}]
+%\cs{appendix}
+%\end{definition}
+%If used in the main body of the book, this will switch to the
+%book appendices. Subsequent \cs{chapter} commands will produce the
+%appendices. If used within an imported article, it will switch
+%to the article appendices and won't affect the main part of
+%the book.
+%
+%\begin{definition}[\DescribeEnv{jmlrpapers}]
+%\cs{begin}\{jmlrpapers\}\\
+%\meta{imported papers}\\
+%\cs{end}\{jmlrpapers\}
+%\end{definition}
+%This environment must be used when importing articles. Within this
+%environment, use the following commands to import articles:
+%\begin{definition}[\DescribeMacro{\importpubpaper}]
+%\cs{importpubpaper}\oarg{label}\marg{directory}\marg{file}\marg{pages}
+%\end{definition}
+%This imports an article that has already been published elsewhere.
+%The \meta{pages} argument should be the page range from the
+%\emph{previously published} version of this article. This may not
+%necessarily be the same as the page range of the article in the book.
+%The directory the imported file is contained in is is given by
+%\meta{directory}. If the file is in the same directory as the
+%book, use a dot. The file name is given by \meta{file}. The article
+%is also given a label, specified by the optional argument. This
+%is \meta{directory}/\meta{file} by default. The label is used
+%as a prefix to labels in the imported articles which ensures that
+%cross-references are unique. You can also use this label to reference
+%the article elsewhere in the book (see \sectionref{sec:bkcrossref}).
+%
+%\begin{definition}[\DescribeMacro{\importpaper}]
+%\cs{importpaper}\oarg{label}\marg{directory}\marg{file}
+%\end{definition}
+%Imports an article that is being published in the book. The
+%arguments are the same as above except that there is no page
+%range (the page range is computed automatically).
+%
+%\begin{definition}[\DescribeMacro{\importarticle}]
+%\cs{importarticle}\oarg{label}\marg{directory}\marg{file}
+%\end{definition}
+%This imports an article that hasn't been published elsewhere. There
+%is no page range, but the other arguments are the same as
+%those describe above for \cs{importpubpaper}.
+%
+%Example: to import a previously published paper
+%\texttt{paper1/paper1.tex} and an unpublished paper
+%\texttt{paper2/paper2.tex}:
+%\begin{verbatim}
+%\begin{jmlrpapers}
+%\importpubpaper{paper1}{paper1}{23--45}
+%\importarticle{paper2}{paper2}
+%\end{jmlrpapers}
+%\end{verbatim}
+%
+%\subsubsection{Cross-Referencing}
+%\label{sec:bkcrossref}
+%
+%You can cross-reference other parts of the book using the
+%standard \cs{label}/\cs{ref} mechanism, but if you want to
+%reference something within an imported article, you must prefix
+%the label with the label given when importing the article (that
+%is, the optional argument to \ics{importpubpaper},
+%\ics{importpaper} or \cs{importarticle}). For example, if you
+%want to reference a section labeled \texttt{sec:results} in the
+%imported paper \texttt{paper1/paper1.tex}, you would need to do:
+%\begin{verbatim}
+%see Section~\ref{paper1/paper1sec:results}
+%\end{verbatim}
+%or
+%\begin{verbatim}
+%see \sectionref{paper1/paper1sec:results}
+%\end{verbatim}
+%
+%In addition to the commands described in \sectionref{sec:crossref},
+%the \clsfmt{jmlrbook} class also provides the following
+%cross-referencing commands:
+%
+%\begin{definition}[\DescribeMacro{\chapterref}]
+%\cs{chapterref}\marg{label list}
+%\end{definition}
+%Reference a chapter or chapters. The argument is a comma-separated
+%list of labels.
+%
+%\begin{definition}[\DescribeMacro{\articlepageref}]
+%\cs{articlepageref}\marg{label}
+%\end{definition}
+%This displays the starting page number of the article whose label
+%is given by \meta{label}. Note that this must a single label, not
+%a list. For example:
+%\begin{verbatim}
+%An interesting article starts on page~\articlepageref{paper1/paper1}
+%\end{verbatim}
+%
+%\begin{definition}[\DescribeMacro{\articlepagesref}]
+%\cs{articlepagesref}\marg{label}
+%\end{definition}
+%This displays the page range of the article whose label is
+%given by \meta{label}. Again, this must be a single label, not a
+%list. This page range is unrelated to the \meta{pages} argument of
+%\ics{importpubarticle}.
+%
+%\begin{definition}[\DescribeMacro{\articletitleref}]
+%\cs{articletitleref}\marg{label}
+%\end{definition}
+%This displays the short title for the article whose label is
+%given by \meta{label}. Again, this must be a single label, not a
+%list.
+%
+%\begin{definition}[\DescribeMacro{\articleauthorref}]
+%\cs{articleauthorref}\marg{label}
+%\end{definition}
+%This displays the author list for the article whose label is
+%given by \meta{label}. Again, this must be a single label, not a
+%list.
+%
+%\subsection{Altering the Layout of the Main Title Page}
+%\label{sec:modifytitle}
+%
+%\begin{definition}[\DescribeMacro{\titlebody}]
+%\cs{titlebody}
+%\end{definition}
+%The main body of the book's title page is given by the command
+%\cs{titlebody}. Within the definition of this command, you can
+%use:
+%\begin{definition}[\DescribeMacro{\SetTitleElement}]
+%\cs{SetTitleElement}\marg{element}\marg{pre}\marg{post}
+%\end{definition}
+%where \meta{element} can be: \texttt{title}, \texttt{volume},
+%\texttt{issue}\footnote{The default title page layout doesn't use
+%\texttt{issue}, but if required it can be set with \ics{issue}\marg{number}},
+%\texttt{subtitle}, \texttt{logo}, \texttt{team}, \texttt{author},
+%\texttt{date}, \texttt{productioneditor}. The \meta{pre} and
+%\meta{post} arguments specify what to do before and after the
+%element. Note that \cs{SetTitleElement} does nothing if that
+%element hasn't been set. For example, if \cs{volume} has been
+%omitted or \verb|\volume{}| is used, then
+%\begin{verbatim}
+%\SetTitleElement{volume}{\mainvolumefont}{\postmainvolume}
+%\end{verbatim}
+%will do nothing (so you don't end up with \textbf{Volume :}).
+%
+%\begin{definition}[\DescribeMacro{\IfTitleElement}]
+%\cs{IfTitleElement}\marg{element}\marg{true part}\marg{false part}
+%\end{definition}
+%This does \meta{true part} if \meta{element} has been set
+%otherwise it does \meta{false part}. For example,
+%\cs{postmainvolume} is defined as:
+%\begin{verbatim}
+%\newcommand{\postmainvolume}{%
+% \IfTitleElement{subtitle}{}{:}\par\relax
+%}
+%\end{verbatim}
+%This means that it will only print a colon after the volume
+%number if the subtitle has been set.
+%
+%The default definition of \cs{titlebody} is:
+%\begin{verbatim}
+%\newcommand{\titlebody}{%
+% \SetTitleElement{title}{\maintitlefont}{\postmaintitle}%
+% \SetTitleElement{volume}{\mainvolumefont}{\postmainvolume}%
+% \SetTitleElement{subtitle}{\mainsubtitlefont}{\postmainsubtitle}%
+% \SetTitleElement{logo}{\mainlogofont}{\postmainlogo}%
+% \SetTitleElement{team}{\mainteamfont}{\postmainteam}%
+% \SetTitleElement{author}{\mainauthorfont}{\postmainauthor}%
+% \SetTitleElement{productioneditor}{\mainproductioneditorfont}%
+% {\postmainproductioneditor}%
+%}
+%\end{verbatim}
+%
+%\subsection{Potential Pitfalls}
+%
+%The \cls{combine} class and \sty{hyperref} package are
+%individually both easily broken by packages that change certain
+%internals and they don't ordinarily work together. The
+%\clsfmt{jmlrbook} class applies patches to the internal referencing
+%mechanism to make them work together, but it's a fairly fragile
+%alliance. Some packages are known to break it, for example
+%\sty{subfig}, \sty{pdfpages} and \sty{geometry}. This is why the
+%\clsfmt{jmlr} class checks for known problem packages and generates an
+%error message to dissuade authors from using them. It's likely that
+%there are other packages that may cause a problem and, as they are
+%found, they will be added to the check list. Also, it's possible for
+%an author to disable the package checking mechanism if they are
+%determined to use a particular package.
+%
+%In the event that an article has loaded a problem package, the
+%editors will have to decide whether to ask the author to change
+%the article so that it doesn't cause a problem or to make the changes
+%themselves or to find a way of fudging things to get it to work. It
+%depends on the level of \LaTeX\ expertise amongst the editors and
+%the time available.
+%
+%Another problem that can arise is when different articles use
+%packages that conflict. For example, one article uses package
+%\styfmt{foo} and another uses package \styfmt{bar}. Each article compiles
+%okay as a stand-alone article, but when combined \styfmt{foo} and
+%\styfmt{bar} conflict. Another problem may occur when articles load the
+%same package but with conflicting package options. To reduce the
+%chance of this occurring, the \clsfmt{jmlr} class loads some commonly
+%used packages. For example, it loads the \sty{algorithm2e}
+%package with the \pkgoptfmt{algo2e} and \pkgoptfmt{ruled} options and
+%provides the \env{algorithm} environment in addition to
+%\sty{algorithm2e}'s \env{algorithm2e} environment.
+%
+%Articles that use different input encodings can also cause a
+%problem. For example, if one article uses \texttt{utf8} and another
+%uses \texttt{latin1}. If the authors have directly entered a
+%diacritic or ligature, such as \'e or \ae, instead of using a
+%\LaTeX\ command, such as \cs{'e} or \cs{ae}, then
+%this will cause an error on compiling the book.\footnote{and may also
+%cause a problem for the editor's text editor.} The choice then is to
+%either change all non-keyboard characters with the appropriate
+%\LaTeX\ commands or to use the \cs{inputencoding} command, supplied
+%by the \sty{inputenc} package, to switch the encoding at the start
+%of each article.
+%
+%Authors who use \cs{nonumber} within an \env{equation} environment
+%can mess up the hyperlinks. Remove \cs{nonumber} and change the
+%equation environment to \cs{[} \ldots\ \cs{]} (or just make it a
+%numbered equation).
+%
+%If the article changes the graphics path using \cs{graphicspath},
+%\clsfmt{jmlrbook} won't find the graphics if the imported articles
+%aren't in the same directory as the book.
+%
+%\subsection{Creating the Book Using \appfmt{makejmlrbook}}
+%\label{sec:makejmlrbook}
+%
+%The \app{makejmlrbook} Perl script is designed to make it
+%easier to produce the print and online versions of the book, as
+%well as producing an HTML index of all the imported articles with
+%links to the abstracts and PDFs of individual articles. Note that
+%for it to work properly, the articles must be imported using
+%\cs{importarticle}, \cs{importpaper} or \cs{importpubpaper}, and
+%the imported articles must use the \clsfmt{jmlr} class.
+%
+%On UNIX style systems, the script can be invoked from a terminal
+%using:
+%\begin{prompt}
+%makejmlrbook \oarg{options} \meta{filename}
+%\end{prompt}
+%If that doesn't work, or you aren't using a UNIX style operating
+%system, the script can be invoked from a terminal or command
+%prompt using:
+%\begin{prompt}
+%perl makejmlrbook \oarg{options} \meta{filename}
+%\end{prompt}
+%The mandatory argument \meta{filename} is the name of the master
+%\TeX\ file containing the book. It must use the \clsfmt{jmlrbook}
+%class. You may omit the \texttt{.tex} extension. For example, if
+%the file is called \texttt{proceedings.tex}, you can call
+%\app{makejmlrbook} as follows:
+%\begin{verbatim}
+%perl makejmlrbook proceedings
+%\end{verbatim}
+%This will create the files \texttt{proceedings-print.pdf} (the
+%print version) and \texttt{proceedings-online.pdf} (the online
+%version). It will also create a directory (folder) called
+%\texttt{html} in which the HTML files and individual article PDFs
+%will be placed.
+%
+%The options to \app{makejmlrbook} are as follows:
+%\begin{description}
+%\item[--online] Generate the color on-line version (default).
+%\item[--noonline] Don't generate the color on-line version.
+%\item[--print] Generate the grayscale print version (default).
+%\item[--noprint] Don't generate the grayscale print version.
+%\item[--html] Generate the HTML files and the individual article
+%PDFs (default).
+%\item[--nohtml] Don't generate the HTML files and the individual
+%article PDFs.
+%\item[--logourl \meta{url}] Make the logo on the HTML index page link
+%to \meta{url}.
+%\item[--batchtex] Run \TeX\ in batch mode.
+%\item[--nobatchtex] Don't run \TeX\ in batch mode (default).
+%\item[--quieter] Reduce chatter to STDOUT (doesn't eliminate
+%all messages). This also runs \TeX\ in batch mode.
+%\item[--noquieter] Don't reduce messages to STDOUT (default).
+%\item[--version] Display the version number and exit.
+%\item[--help] List all available options.
+%\end{description}
+%
+%There are also some more advanced options, but these haven't been
+%fully tested:
+%\begin{description}
+%\item[--latexapp \meta{name}] Application used to call \LaTeX.
+%Defaults to \qt{pdflatex}.
+%\item[--latexopt \meta{string}] Options to pass to \LaTeX.
+%\item[--format \meta{string}] Output format (defaults to \qt{pdf}).
+%This may need to be changed if you change the \LaTeX\ application.
+%\item[--bibtexapp \meta{name}] Application use to process the
+%bibliography. Defaults to \qt{bibtex}.
+%\item[--bibtexopt \meta{string}] Options to pass to Bib\TeX.
+%\end{description}
+%
+%\StopEventually{\clearpage\phantomsection
+% \addcontentsline{toc}{section}{Index}\PrintIndex
+%}
+%
+%
+%
+%\section{jmlr.cls Code}
+%\iffalse
+% \begin{macrocode}
+%<*jmlr.cls>
+% \end{macrocode}
+%\fi
+% This class is based on the \sty{jmlr2e} package but was updated to use
+% \cls{scrartcl} instead of \cls{article} and was modified to make sure
+% it works with \clsfmt{jmlrbook} which uses both \cls{combine} and
+% \sty{hyperref}.
+%
+% Declare class and required TeX format:
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{jmlr}[2010/06/17 v1.06 (NLCT) Journal of Machine Learning Research]
+% \end{macrocode}
+% The following conditionals are provided to make this class play nicely
+% with combine and aren't required for articles.
+% \begin{macrocode}
+\newif\if@openright
+\newif\if@mainmatter \@mainmattertrue
+% \end{macrocode}
+%\begin{macro}{\ifgrayscale}
+% Determine whether to select grayscale alternatives
+% \begin{macrocode}
+\@ifundefined{ifgrayscale}{
+ \newif\ifgrayscale
+ \grayscalefalse
+}{}
+\DeclareOption{color}{\grayscalefalse
+ \PassOptionsToPackage{color}{xcolor}}
+\DeclareOption{gray}{\grayscaletrue
+ \PassOptionsToPackage{gray}{xcolor}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\iftablecaptiontop}
+% Determine if the table captions should go at the top.
+%\changes{1.07}{2010-06-17}{new}
+% \begin{macrocode}
+\newif\iftablecaptiontop
+\tablecaptiontoptrue
+\DeclareOption{tablecaptiontop}{\tablecaptiontoptrue}
+\DeclareOption{tablecaptionbottom}{\tablecaptionbottomtrue}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\ifjmlrhtml}
+% Determine if we are using \app{TeX4ht}:
+% \begin{macrocode}
+\newif\ifjmlrhtml
+\jmlrhtmlfalse
+\DeclareOption{html}{\jmlrhtmltrue}
+\DeclareOption{nohtml}{\jmlrhtmlfalse}
+% \end{macrocode}
+%\end{macro}
+% Normal font size (default is 11pt)
+% \begin{macrocode}
+\def\pt@size{11pt}
+\DeclareOption{10pt}{\renewcommand{\pt@size}{10}%
+ \PassOptionsToClass{\CurrentOption}{article}}
+\DeclareOption{11pt}{\renewcommand{\pt@size}{11}%
+ \PassOptionsToClass{\CurrentOption}{article}}
+\DeclareOption{12pt}{\renewcommand{\pt@size}{12}%
+ \PassOptionsToClass{\CurrentOption}{article}}
+% \end{macrocode}
+%\begin{macro}{\@jmlrproceedings}
+% The name of the proceedings.
+% \begin{macrocode}
+\newcommand*{\@jmlrproceedings}{Journal of Machine Learning Research}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@jmlrabbrvproceedings}
+% The abbreviated name of the proceedings.
+% \begin{macrocode}
+\newcommand*{\@jmlrabbrvproceedings}{JMLR}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlrproceedings}
+% Sets the title and abbreviation of the proceedings
+% \begin{macrocode}
+\newcommand*{\jmlrproceedings}[2]{%
+ \renewcommand*{\@jmlrabbrvproceedings}{#1}%
+ \renewcommand*{\@jmlrproceedings}{#2}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\nowcp}
+% \begin{macrocode}
+\newcommand*{\jmlrnowcp}{%
+ \jmlrproceedings{JMLR}{Journal of Machine Learning Research}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\wcp}
+% \begin{macrocode}
+\newcommand*{\jmlrwcp}{%
+ \jmlrproceedings{JMLR WC\&P}{JMLR: Workshop and Conference Proceedings}%
+}
+% \end{macrocode}
+%\end{macro}
+% This isn't an article for a workshop:
+% \begin{macrocode}
+\DeclareOption{nowcp}{\jmlrnowcp}
+% \end{macrocode}
+% This is an article for a workshop
+% \begin{macrocode}
+\DeclareOption{wcp}{\jmlrwcp}
+% \end{macrocode}
+% The default paper size is letter, but provide $7 \times 10$in
+% alternative:
+% \begin{macrocode}
+\newif\ifviiXx
+\viiXxfalse
+\DeclareOption{7x10}{\viiXxtrue}
+\DeclareOption{letterpaper}{\PassOptionsToPackage{letterpaper}{typearea}}
+% \end{macrocode}
+% Pass all remaining options to \cls{scrartcl} class:
+% \begin{macrocode}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
+% \end{macrocode}
+% Execute required options:
+% \begin{macrocode}
+\ExecuteOptions{twoside,letterpaper}
+% \end{macrocode}
+% Process options:
+% \begin{macrocode}
+\ProcessOptions
+% \end{macrocode}
+% Load \cls{scrartcl} class
+% \begin{macrocode}
+\LoadClass[pointednumbers,normalheadings]{scrartcl}
+% \end{macrocode}
+% Can't use \sty{geometry} package because it doesn't play nicely
+% with the \cls{combine} class.
+% \begin{macrocode}
+\ifviiXx
+ \setlength{\paperwidth}{7in}
+ \setlength{\paperheight}{10in}
+ \setlength{\textwidth}{5.25in}
+ \setlength{\textheight}{8.2in}
+ \setlength{\topmargin}{0.4in}
+ \setlength{\headheight}{0.2in}
+ \setlength{\headsep}{0.2in}
+ \setlength{\hoffset}{-1in}
+ \setlength{\voffset}{-1in}
+ \setlength{\evensidemargin}{0.75in}
+ \setlength{\oddsidemargin}{1.0in}
+\else
+ \setlength{\oddsidemargin}{0.25in}
+ \setlength{\evensidemargin}{0.25in}
+ \setlength{\marginparwidth}{0.07 true in}
+ \setlength{\topmargin}{-0.5in}
+ \addtolength{\headsep}{0.25in}
+ \setlength{\textheight}{8.5 true in}
+ \setlength{\textwidth}{6.0 true in}
+\fi
+% \end{macrocode}
+% Required packages:
+% \begin{macrocode}
+\RequirePackage{amsmath}
+\RequirePackage{amssymb}
+\RequirePackage{natbib}
+\RequirePackage{graphicx}
+\RequirePackage{url}
+\RequirePackage[x11names]{xcolor}
+\RequirePackage[algo2e,ruled]{algorithm2e}
+% \end{macrocode}
+% Float parameters: the following settings were copied from jmlr2e.sty
+% \begin{macrocode}
+\renewcommand{\topfraction}{0.95} % let figure take up nearly whole page
+\renewcommand{\textfraction}{0.05} % let figure take up nearly whole page
+% \end{macrocode}
+% widows/orphans
+% \begin{macrocode}
+\widowpenalty=10000\relax
+\clubpenalty=10000\relax
+% \end{macrocode}
+% Set two-sided format
+% \begin{macrocode}
+\@twosidetrue
+% \end{macrocode}
+% Put marginal notes on the outside of the page
+% \begin{macrocode}
+\@mparswitchtrue
+% \end{macrocode}
+% \begin{macrocode}
+\def\ds@draft{\overfullrule 5pt}
+% \end{macrocode}
+% Use the plainnat bibliography style and set up the required
+% punctuation.
+% \begin{macrocode}
+\bibliographystyle{plainnat}
+\bibpunct{(}{)}{;}{a}{,}{,}
+% \end{macrocode}
+%\subsection{Sections}
+% \begin{macrocode}
+\addtokomafont{section}{\rmfamily\large}
+\addtokomafont{subsection}{\rmfamily\normalsize}
+\addtokomafont{subsubsection}{\rmfamily\mdseries\normalsize\scshape}
+\addtokomafont{paragraph}{\rmfamily\normalsize}
+\addtokomafont{subparagraph}{\rmfamily\itshape\normalsize}
+% \end{macrocode}
+% Insert possible prefix to section number.
+% \begin{macrocode}
+\renewcommand*{\othersectionlevelsformat}[1]{%
+ \csname pre#1num\endcsname\csname the#1\endcsname\autodot\enskip}
+% \end{macrocode}
+%\subsection{Footnotes}
+% This code has been taken from jmlr2e.sty
+% \begin{macrocode}
+\long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize
+ \advance\@tempdima-15pt\parshape \@ne 15pt \@tempdima}\par
+ \parindent 2em\noindent \hbox to \z@{\hss{\@thefnmark}. \hfil}#1}
+% \end{macrocode}
+%\subsection{Article abstract}
+% This code has been taken from jmlr2e.sty but with \cs{bf} updated
+% to \cs{bfseries}
+%\begin{environment}{abstract}
+% \begin{macrocode}
+\ifjmlrhtml
+ \renewenvironment{abstract}{\HCode{<h3>}Abstract\HCode{</h3>}}{}%
+\else
+ \renewenvironment{abstract}
+ {\centerline{\large\bfseries Abstract}\vspace{0.7ex}%
+ \bgroup
+ \leftskip 20pt\rightskip 20pt\small\noindent\ignorespaces}%
+ {\par\egroup\vskip 0.25ex}
+\fi
+% \end{macrocode}
+%\end{environment}
+%\subsection{Keywords}
+% This code has been taken from jmlr2e.sty but with \cs{bf} updated
+% to \cs{bfseries}.
+%\begin{environment}{keywords}
+% \begin{macrocode}
+\newenvironment{keywords}
+{\bgroup\leftskip 20pt\rightskip 20pt \small\noindent{\bfseries
+Keywords:} \ignorespaces}%
+{\par\egroup\vskip 0.25ex}
+% \end{macrocode}
+%\end{environment}
+%\subsection{Title Page Information}
+% This code has been taken from jmlr2e.sty.
+%
+% Title stuff, borrowed in part from aaai92.sty
+% \begin{macrocode}
+\newlength\aftertitskip \newlength\beforetitskip
+\newlength\interauthorskip \newlength\aftermaketitskip
+% \end{macrocode}
+%% Changeable parameters.
+% \begin{macrocode}
+\setlength\aftertitskip{0.1in plus 0.2in minus 0.2in}
+\setlength\beforetitskip{0.05in plus 0.08in minus 0.08in}
+\setlength\interauthorskip{0.08in plus 0.1in minus 0.1in}
+\setlength\aftermaketitskip{0.3in plus 0.1in minus 0.1in}
+% \end{macrocode}
+%
+%\begin{macro}{\title}
+% Override definition of \cs{title} to allow for an optional
+% argument (short title)
+% \begin{macrocode}
+\renewcommand*{\title}[2][\@title]{%
+ \def\@shorttitle{#1}%
+ \def\@title{#2}%
+ \jmlrtitlehook
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlrtitlehook}
+% \begin{macrocode}
+\newcommand*{\jmlrtitlehook}{}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\author}
+% Override definition of \cs{author} to allow for an optional
+% argument (list of authors for page heading)
+% \begin{macrocode}
+\renewcommand*{\author}[2][]{%
+ \def\@author{#2}%
+ \def\@sauthor{#1}%
+ \ifx\@sauthor\@empty
+ \else
+ \let\@shortauthor\@sauthor
+ \fi
+ \jmlrauthorhook
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlrauthorhook}
+% \begin{macrocode}
+\newcommand*{\jmlrauthorhook}{}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@shortauthor}
+% \begin{macrocode}
+\newcommand*{\@shortauthor}{}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@firstauthor}
+% \begin{macrocode}
+\newcommand*{\@firstauthor}{}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@firstsurname}
+% \begin{macrocode}
+\newcommand*{\@firstsurname}{}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\jmlrlength}
+% \begin{macrocode}
+\newlength\jmlrlength
+% \end{macrocode}
+%\end{macro}
+%
+% overall definition of \cs{maketitle}, \cs{@maketitle} does the real work
+%\begin{macro}{\jmlrmaketitle}
+% \begin{macrocode}
+\def\jmlrmaketitle{%
+ \jmlrpremaketitlehook
+ \def\@jmlr@authors@sep{, }%
+ \par
+ \begingroup
+ \def\thefootnote{\fnsymbol{footnote}}%
+ \def\@makefnmark{\hbox to 0pt{$^{\@thefnmark}$\hss}}%
+ \@jmlrmaketitle \@thanks
+ \endgroup
+\label{jmlrstart}%
+\ifx\@sauthor\@empty
+ \settowidth{\jmlrlength}{\@evenhead}%
+ \ifdim\jmlrlength>\textwidth
+ \def\@shortauthor{\@firstsurname\space et al.}%
+ \fi
+\fi
+\settowidth{\jmlrlength}{\@titlefoot}%
+\ifdim\jmlrlength>\textwidth
+ \def\@jmlrauthors{\@firstauthor\space \emph{et al}}%
+\fi
+\jmlrmaketitlehook
+\thispagestyle{jmlrtps}%
+\setcounter{footnote}{0}%
+\let\maketitle\relax \let\@maketitle\relax
+\gdef\@thanks{}\gdef\@author{}\let\thanks\relax
+\def\@jmlr@authors@sep{ \& }%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\jmlrmaketitlehook}
+% \begin{macrocode}
+\newcommand*{\jmlrmaketitlehook}{}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlrpremaketitlehook}
+% \begin{macrocode}
+\newcommand*{\jmlrpremaketitlehook}{}
+% \end{macrocode}
+%\end{macro}
+%
+% Provide a different title layout for HTML
+%\begin{macro}{\jmlrhtmlmaketitle}
+% \begin{macrocode}
+\newcommand{\jmlrhtmlmaketitle}{%
+ \ifx\@jmlrauthors\@empty
+ \sbox\jmlrbox{\let\addr\relax\@author}%
+ \fi
+ \noindent\HCode{<h2>}\@title\HCode{</h2>}
+ \noindent\@jmlrauthors
+}
+% \end{macrocode}
+%\end{macro}
+%%\begin{macro}{\jmlrbox}
+% Define a save box
+% \begin{macrocode}
+\newsavebox\jmlrbox
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\maketitle}
+% If we're creating HTML, set \cs{maketitle} to
+% \cs{jmlrhtmlmaketitle}, otherwise set it to \cs{jmlrmaketitle}
+% \begin{macrocode}
+\ifjmlrhtml
+ \let\maketitle\jmlrhtmlmaketitle
+\else
+ \let\maketitle\jmlrmaketitle
+\fi
+% \end{macrocode}
+%\end{macro}
+%
+% Author and editor information.
+% \begin{macrocode}
+\def\@startauthor{\noindent \normalsize\bfseries}
+\def\@endauthor{}
+\def\@starteditor{\noindent \small {\bfseries \@edname:~}}
+\def\@endeditor{\normalsize}
+% \end{macrocode}
+% Provide hooks to make it easier to adapted with \cls{combine}
+% class.
+%\begin{macro}{\jmlrpretitle}
+% \begin{macrocode}
+\def\jmlrpretitle{\vskip\beforetitskip\begin{center}\Large\bfseries}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlrposttitle}
+% \begin{macrocode}
+\def\jmlrposttitle{\par\end{center}\vskip\aftertitskip}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlrpreauthor}
+% \begin{macrocode}
+\def\jmlrpreauthor{%
+\bgroup
+ \def\and{\unskip\enspace{\normalfont and}\enspace}%
+ \def\addr{\small\itshape}%
+ \def\name{\ClassError{jmlr}{Use \string\Name{Author's Name} not \string\name}{}}%
+ \def\email{\ClassError{jmlr}{Use \string\Email{address} not \string\email}{}}%
+ \def\AND{\@endauthor\normalfont\hss \vskip \interauthorskip
+ \@startauthor}%
+ \@startauthor
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@email}
+% \begin{macrocode}
+\def\@email{\hfill\small\mdseries\scshape}%
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@name}
+% \begin{macrocode}
+\def\@name{\normalsize\upshape\bfseries}%
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@parsename}
+% Parse a name. Appends forename to \cs{@forenames} and stores
+% surname in \cs{@surname}.
+% \begin{macrocode}
+\def\@parsename#1 #2\@nil{%
+ \def\@tmp{#2}%
+ \ifx\@tmp\@empty
+ \def\@surname{#1}%
+ \let\@nextparsename\@parsenamenoop
+ \else
+ \@getinitial#1-\relax\relax\end
+ \ifx\@forenames\@empty
+ \def\@forenames{#1}%
+ \protected@edef\@initials{\@initial}%
+ \else
+ \expandafter\toks@\expandafter{\@forenames}%
+ \edef\@forenames{\space\the\toks@}%
+ \expandafter\toks@\expandafter{\@initials}%
+ \protected@edef\@initials{\the\toks@\@initial}%
+ \fi
+ \let\@nextparsename\@parsename
+ \fi
+ \@nextparsename#2\@nil
+}
+\def\@parsenamenoop#1\@nil{}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@getinitial}
+% \begin{macrocode}
+\def\@getinitial#1#2-#3#4\end{%
+ \def\@jmlr@tmp{#3}%
+ \if\@jmlr@tmp\relax
+ \def\@initial{#1.}%
+ \else
+ \def\@initial{#1.-#3.}%
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\Name}
+% Get the author's name and add surname to \cs{@shortauthors}.
+% (Surnames with \qt{von} parts or with spaces in should be
+% enclosed in braces)
+% \begin{macrocode}
+\newcommand*{\Name}[1]{%
+ \def\@forenames{}%
+ \def\@surname{}%
+ \@parsename#1 \@nil
+ \ifx\@shortauthor\@empty
+ \ifx\@sauthor\@empty
+ \global\let\@shortauthor\@surname
+ \global\let\@firstsurname\@surname
+ \fi
+ \protected@xdef\@jmlrauthors{\@initials\space\@surname}%
+ \global\let\@firstauthor\@jmlrauthors
+ \else
+ \ifx\@sauthor\@empty
+ \expandafter\toks@\expandafter{\@shortauthor}%
+ \protected@xdef\@shortauthor{\the\toks@\space\@surname}%
+ \fi
+ \protected@xdef\@jmlrauthors{\@jmlrauthors
+ \noexpand\@jmlr@authors@sep
+ \@initials\space\@surname}%
+ \fi
+ \@name #1%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\Email}
+% \begin{macrocode}
+\newcommand*{\Email}[1]{{\@email #1}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlrpostauthor}
+% \begin{macrocode}
+\def\jmlrpostauthor{\@endauthor\egroup
+ \par
+ \vskip \aftermaketitskip
+ \noindent
+ \ifx\@editor\@empty
+ \else
+ \@starteditor \@editor \@endeditor
+ \fi
+ \vskip \aftermaketitskip
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@jmlrmaketitle}
+% \begin{macrocode}
+\def\@jmlrmaketitle{\vbox{\hsize\textwidth
+ \linewidth\hsize
+ \jmlrpretitle \@title \jmlrposttitle
+ \jmlrpreauthor \@author \jmlrpostauthor
+}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\kernelmachines}
+% Convenience command
+% \begin{macrocode}
+\newcommand*\kernelmachines{(for
+ {\textsc{http://www.kernel-machines.org}})}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\editorname}
+% Label for the editor
+% \begin{macrocode}
+\newcommand*{\editorname}{Editor}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\editorsname}
+% Label for the editor
+% \begin{macrocode}
+\newcommand*{\editorsname}{Editors}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@edname}
+% This will either be Editor or Editors depending on whether
+% \cs{editor} or \cs{editors} is used. Defaults to \cs{editorname}
+% \begin{macrocode}
+\let\@edname\editorname
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@editor}
+% The editor or editors are stored in \cs{@editor}
+% \begin{macrocode}
+\def\@editor{}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\editor}
+% A single editor
+% \begin{macrocode}
+\def\editor#1{%
+ \global\let\@edname\editorname
+ \gdef\@editor{#1}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\editors}
+% Multiple editors
+% \begin{macrocode}
+\def\editors#1{%
+ \global\let\@edname\editorsname
+ \gdef\@editor{#1}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\subsection{Pagestyles}
+% This is taken from jmlr2e.sty
+%
+%\begin{macro}{\firstpageno}
+% Set the page counter.
+% \begin{macrocode}
+\def\firstpageno#1{\setcounter{page}{#1}}
+% \end{macrocode}
+%\end{macro}
+%
+% Label end page.
+% \begin{macrocode}
+\AtEndDocument{%
+ \@ifundefined{phantomsection}{}{\phantomsection}%
+ \protected@edef\@currentlabelname{end of \@shorttitle}%
+ \label{jmlrend}%
+}
+% \end{macrocode}
+%
+%\begin{macro}{\@titlefoot}
+% \begin{macrocode}
+\newcommand*{\@titlefoot}{\scriptsize\copyright\space\@jmlryear
+ \space\@jmlrauthors.\hfill}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\ps@jmlrtps}
+% Title page style
+% \begin{macrocode}
+\newcommand\ps@jmlrtps{%
+ \let\@mkboth\@gobbletwo
+ \def\@oddhead{\scriptsize \@jmlrproceedings
+ \ifx\@jmlrvolume\@empty\else\space\@jmlrvolume\fi
+ \ifx\@jmlryear\@empty\else\space(\@jmlryear)\fi
+ \ifx\@jmlrpages\@empty\else\space\@jmlrpages\fi
+ \hfill
+ \ifx\@jmlrworkshop\@empty
+ \ifx\@jmlrsubmitted\@empty
+ \else
+ Submitted \@jmlrsubmitted
+ \ifx\@jmlrpublished\@empty\else;\fi
+ \fi
+ \ifx\@jmlrpublished\@empty
+ \else
+ \space Published \@jmlrpublished
+ \fi
+ \else
+ \space\@jmlrworkshop
+ \fi
+ }%
+ \let\@evenhead\@oddhead
+ \def\@oddfoot{\@titlefoot}%
+ \let\@evenfoot\@oddfoot
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\ps@jmlrps}
+% Page style for subsequent pages
+% \begin{macrocode}
+\def\ps@jmlrps{%
+ \let\@mkboth\@gobbletwo
+ \def\@oddhead{\hfill {\small\scshape \@shorttitle} \hfill}%
+ \def\@oddfoot{\hfill \small\rmfamily \thepage \hfill}%
+ \def\@evenhead{\hfill {\small\scshape \@shortauthor} \hfill}%
+ \def\@evenfoot{\hfill \small\rmfamily \thepage \hfill}%
+}%
+% \end{macrocode}
+% Set the page style:
+% \begin{macrocode}
+\pagestyle{jmlrps}
+% \end{macrocode}
+%\end{macro}
+% Set the heading information:
+%\begin{macro}{\@jmlrvolume}
+% The volume number:
+% \begin{macrocode}
+\let\@jmlrvolume\@empty
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlrvolume}
+% \begin{macrocode}
+\newcommand*{\jmlrvolume}[1]{\renewcommand*{\@jmlrvolume}{#1}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@jmlrissue}
+% The issue number:
+% \begin{macrocode}
+\let\@jmlrissue\@empty
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlrissue}
+% \begin{macrocode}
+\newcommand*{\jmlrissue}[1]{\renewcommand*{\@jmlrissue}{#1}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@jmlryear}
+% The year of publication:
+% \begin{macrocode}
+\let\@jmlryear\@empty
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlryear}
+% \begin{macrocode}
+\newcommand*{\jmlryear}[1]{\renewcommand*{\@jmlryear}{#1}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@jmlrpages}
+% The page range:
+% \begin{macrocode}
+\newcommand*\@jmlrpages{\pageref{jmlrstart}--\pageref{jmlrend}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlrpages}
+% \begin{macrocode}
+\newcommand*{\jmlrpages}[1]{\renewcommand*{\@jmlrpages}{#1}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@jmlrsubmitted}
+% The date the article was submitted:
+% \begin{macrocode}
+\let\@jmlrsubmitted\@empty
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlrsubmitted}
+% \begin{macrocode}
+\newcommand*{\jmlrsubmitted}[1]{\renewcommand*{\@jmlrsubmitted}{#1}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@jmlrpublished}
+% The date the article was published:
+% \begin{macrocode}
+\let\@jmlrpublished\@empty
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlrpublished}
+% \begin{macrocode}
+\newcommand*{\jmlrpublished}[1]{\renewcommand*{\@jmlrpublished}{#1}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@jmlrworkshop}
+% The name of the workshop:
+% \begin{macrocode}
+\let\@jmlrworkshop\@empty
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlrworkshop}
+% \begin{macrocode}
+\newcommand*{\jmlrworkshop}[1]{\renewcommand*{\@jmlrworkshop}{#1}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@jmlrauthors}
+% \begin{macrocode}
+\newcommand*{\@jmlrauthors}{}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlrauthors}
+% This is provided in case \cs{Name} doesn't set \cs{@jmlrauthors}
+% correctly.
+% \begin{macrocode}
+\newcommand*{\jmlrauthors}[1]{\renewcommand*{\@jmlrauthors}{#1}}
+% \end{macrocode}
+%\end{macro}
+%
+%
+%\subsection{Miscellany}
+% This code was taken from jmlr2e.sty.
+
+% Define macros for figure captions and table titles
+% \begin{macrocode}
+\def\figurecaption#1#2{\noindent\hangindent 40pt
+ \hbox to 36pt {\small\slshape #1 \hfil}
+ \ignorespaces {\small #2}}
+% \end{macrocode}
+% Figurecenter prints the caption title centered.
+% \begin{macrocode}
+\def\figurecenter#1#2{\centerline{{\slshape #1} #2}}
+\def\figurecenter#1#2{\centerline{{\small\slshape #1} {\small #2}}}
+% \end{macrocode}
+%
+% Allow ``hanging indents'' in long captions
+%
+%\begin{macro}{\@makecaption}
+% \begin{macrocode}
+\long\def\@makecaption#1#2{%
+ \vskip 10pt
+ \setbox\@tempboxa\hbox{#1: #2}%
+ \ifdim \wd\@tempboxa >\hsize % IF longer than one line:
+ \begin{list}{#1:}{%
+ \settowidth{\labelwidth}{#1:}
+ \setlength{\leftmargin}{\labelwidth}
+ \addtolength{\leftmargin}{\labelsep}
+ }\item #2 \end{list}\par % Output in quote mode
+ \else % ELSE center.
+ \hbox to\hsize{\hfil\box\@tempboxa\hfil}
+ \fi}
+% \end{macrocode}
+%\end{macro}
+% Define strut macros for skipping spaces above and below text in a
+% tabular environment.
+% \begin{macrocode}
+\def\abovestrut#1{\rule[0in]{0in}{#1}\ignorespaces}
+\def\belowstrut#1{\rule[-#1]{0in}{#1}\ignorespaces}
+% \end{macrocode}
+%\begin{macro}{\acks}
+% Acknowledgments
+% \begin{macrocode}
+\long\def\acks#1{\section*{Acknowledgments}#1}
+% \end{macrocode}
+%\end{macro}
+% Research Note
+%\begin{macro}{\researchnote}
+% \begin{macrocode}
+\long\def\researchnote#1{\noindent {\LARGE\itshape Research Note} #1}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\set}
+% \begin{macrocode}
+\newcommand*{\set}[1]{\ensuremath{\mathcal{#1}}}
+% \end{macrocode}
+%\end{macro}
+% Convenient macros for cross-referencing.
+% \begin{macrocode}
+\newcommand*{\@jmlr@reflistsep}{, }
+\newcommand*{\@jmlr@reflistlastsep}{ and }
+\newcommand*{\sectionrefname}{Section}
+\newcommand*{\sectionsrefname}{Sections}
+\newcommand*{\equationrefname}{Equation}
+\newcommand*{\equationsrefname}{Equations}
+\newcommand*{\tablerefname}{Table}
+\newcommand*{\tablesrefname}{Tables}
+\newcommand*{\figurerefname}{Figure}
+\newcommand*{\figuresrefname}{Figures}
+\newcommand*{\algorithmrefname}{Algorithm}
+\newcommand*{\algorithmsrefname}{Algorithms}
+\newcommand*{\theoremrefname}{Theorem}
+\newcommand*{\theoremsrefname}{Theorems}
+\newcommand*{\lemmarefname}{Lemma}
+\newcommand*{\lemmasrefname}{Lemmas}
+\newcommand*{\remarkrefname}{Remark}
+\newcommand*{\remarksrefname}{Remarks}
+\newcommand*{\corollaryrefname}{Corollary}
+\newcommand*{\corollarysrefname}{Corollaries}
+\newcommand*{\definitionrefname}{Definition}
+\newcommand*{\definitionsrefname}{Definitions}
+\newcommand*{\conjecturerefname}{Conjecture}
+\newcommand*{\conjecturesrefname}{Conjectures}
+\newcommand*{\axiomrefname}{Axiom}
+\newcommand*{\axiomsrefname}{Axioms}
+\newcommand*{\examplerefname}{Example}
+\newcommand*{\examplesrefname}{Examples}
+\newcommand*{\appendixrefname}{Appendix}
+\newcommand*{\appendixsrefname}{Appendices}
+\newcommand*{\partrefname}{Part}
+\newcommand*{\partsrefname}{Parts}
+% \end{macrocode}
+%\begin{macro}{\objectref}
+% Cross-reference a particular structural element. The first
+% argument is the list of labels, the second argument is a
+% control sequence containing the singular tag, the third
+% argument a control sequence containing the plural tag,
+% the fourth argument is text to go before the reference number,
+% e.g.\ an opening bracket, and the fifth argument is text
+% to go after the reference number, e.g.\ a closing bracket.
+% \begin{macrocode}
+\newcommand*{\objectref}[5]{%
+ \let\@objectname\@empty
+ \def\@objectref{}%
+ \let\@prevsep\@empty
+ \@for\@thislabel:=#1\do{%
+ \toks@{\@prevsep}%
+ \protected@edef\@objectref{\@objectref\the\toks@
+ #4\ref{\@thislabel}#5}%
+ \ifx\@objectname\@empty
+ \let\@objectname#2% singular tag
+ \else
+ \let\@objectname#3% plural tag
+ \let\@prevsep\@jmlr@reflistsep
+ \fi
+ }%
+ \ifx\@objectname#3% plural tag
+ \let\@prevsep\@jmlr@reflistlastsep
+ \fi
+ \@objectname~\@objectref
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\sectionref}
+% \begin{macrocode}
+\newcommand*{\sectionref}[1]{%
+ \objectref{#1}{\sectionrefname}{\sectionsrefname}{}{}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\equationref}
+% \begin{macrocode}
+\newcommand*{\equationref}[1]{%
+ \objectref{#1}{\equationrefname}{\equationsrefname}()}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\tableref}
+% \begin{macrocode}
+\newcommand*{\tableref}[1]{%
+ \objectref{#1}{\tablerefname}{\tablesrefname}{}{}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\figureref}
+% \begin{macrocode}
+\newcommand*{\figureref}[1]{%
+ \objectref{#1}{\figurerefname}{\figuresrefname}{}{}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\algorithmref}
+% \begin{macrocode}
+\newcommand*{\algorithmref}[1]{%
+ \objectref{#1}{\algorithmrefname}{\algorithmsrefname}{}{}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\theoremmref}
+% \begin{macrocode}
+\newcommand*{\theoremref}[1]{%
+ \objectref{#1}{\theoremrefname}{\theoremsrefname}{}{}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\lemmaref}
+% \begin{macrocode}
+\newcommand*{\lemmaref}[1]{%
+ \objectref{#1}{\lemmarefname}{\lemmasrefname}{}{}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\remarkref}
+% \begin{macrocode}
+\newcommand*{\remarkref}[1]{%
+ \objectref{#1}{\remarkrefname}{\remarksrefname}{}{}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\corollaryref}
+% \begin{macrocode}
+\newcommand*{\corollaryref}[1]{%
+ \objectref{#1}{\corollaryrefname}{\corollarysrefname}{}{}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\definitionref}
+% \begin{macrocode}
+\newcommand*{\definitionref}[1]{%
+ \objectref{#1}{\definitionrefname}{\definitionsrefname}{}{}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\conjectureref}
+% \begin{macrocode}
+\newcommand*{\conjectureref}[1]{%
+ \objectref{#1}{\conjecturerefname}{\conjecturesrefname}{}{}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\axiomref}
+% \begin{macrocode}
+\newcommand*{\axiomref}[1]{%
+ \objectref{#1}{\axiomrefname}{\axiomsrefname}{}{}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\exampleref}
+% \begin{macrocode}
+\newcommand*{\exampleref}[1]{%
+ \objectref{#1}{\examplerefname}{\examplesrefname}{}{}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\appendixref}
+% \begin{macrocode}
+\newcommand*{\appendixref}[1]{%
+ \objectref{#1}{\appendixrefname}{\appendixsrefname}{}{}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\partref}
+% \begin{macrocode}
+\newcommand*{\partref}[1]{%
+ \objectref{#1}{\partrefname}{\partsrefname}{}{}}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\floatconts}
+% The first argument is the label, the second argument contains the
+% caption (using \cs{caption}) and the third argument is the
+% contents of the float
+% \begin{macrocode}
+\newcommand{\floatconts}[3]{%
+ \@ifundefined{\@captype conts}{\tableconts{#1}{#2}{#3}}%
+ {\csname\@captype conts\endcsname{#1}{#2}{#3}}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\tableconts}
+% \begin{macrocode}
+\newcommand{\tableconts}[3]{%
+ \iftablecaptiontop
+ #2\label{#1}\vskip\baselineskip
+ {\centering #3\par}%
+ \else
+ {\centering #3\par}%
+ \vskip\baselineskip
+ #2\label{#1}%
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\figureconts}
+% \begin{macrocode}
+\newcommand{\figureconts}[3]{%
+ {\centering #3\par}%
+ \vskip\baselineskip
+ #2\label{#1}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\includeteximage}
+% Provide a command like \cs{includegraphics} that includes a
+% file containing \LaTeX\ picture code (e.g.\ \sty{pgf}).
+% \begin{macrocode}
+\newcommand*{\includeteximage}[2][]{%
+ \def\Gin@req@sizes{%
+ \Gin@req@height\Gin@nat@height
+ \Gin@req@width\Gin@nat@width}%
+ \begingroup
+ \@tempswafalse
+ \let\input@path\Ginput@path
+ \toks@{\InputIfFileExists{#2}{}{\@warning{File `#1' not found}}}%
+ \setkeys{Gin}{#1}%
+ \Gin@esetsize
+ \the\toks@
+ \endgroup
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\ifprint}
+% Provide command to check if this is the printed greyscale
+% version or the online colour version.
+% \begin{macrocode}
+\providecommand{\ifprint}[2]{\ifgrayscale#1\else#2\fi}
+% \end{macrocode}
+%\end{macro}
+%
+% Modify \cs{includegraphics} so that it can pick up the greyscale
+% version of images if this is the print version.
+%% \begin{macrocode}
+\ifjmlrhtml
+\else
+ \let\@org@Ginclude@graphics\Ginclude@graphics
+ \def\Ginclude@graphics#1{%
+ \begingroup
+ \let\input@path\Ginput@path
+ \ifprint{\filename@parse{#1-gray}}{\filename@parse{#1}}%
+ \ifx\filename@ext\relax
+ \@for\Gin@temp:=\Gin@extensions\do{%
+ \ifx\Gin@ext\relax
+ \Gin@getbase\Gin@temp
+ \fi}%
+ \else
+ \ifprint{\filename@parse{#1}}{}%
+ \Gin@getbase{\Gin@sepdefault\filename@ext}%
+ \ifx\Gin@ext\relax
+ \@warning{File `#1' not found}%
+ \def\Gin@base{\filename@area\filename@base}%
+ \edef\Gin@ext{\Gin@sepdefault\filename@ext}%
+ \fi
+ \fi
+ \ifx\Gin@ext\relax
+ \ifprint{\@org@Ginclude@graphics{#1}}%
+ {%
+ \@latex@error{File `#1' not found}%
+ {I could not locate the file with any of these extensions:^^J%
+ \Gin@extensions^^J\@ehc}%
+ }%
+ \else
+ \@ifundefined{Gin@rule@\Gin@ext}%
+ {\ifx\Gin@rule@*\@undefined
+ \@latex@error{Unknown graphics extension: \Gin@ext}\@ehc
+ \else
+ \expandafter\Gin@setfile\Gin@rule@*{\Gin@base\Gin@ext}%
+ \fi}%
+ {\expandafter\expandafter\expandafter\Gin@setfile
+ \csname Gin@rule@\Gin@ext\endcsname{\Gin@base\Gin@ext}}%
+ \fi
+ \endgroup}
+\fi
+% \end{macrocode}
+%
+% The \env{algorithm} environment should float like a figure or table.
+% It should use the same counter as the \env{algorithm2e} environment.
+% \begin{macrocode}
+\newenvironment{algorithm}[1][htbp]%
+{%
+ \@algocf@init%
+ \@algocf@init@caption
+ \begin{algocf}[#1]%
+ \@algocf@start%
+}%
+{%
+ \@algocf@finish%
+ \@algocf@term@caption
+ \end{algocf}%
+ \@algocf@term
+}
+% \end{macrocode}
+%
+% Set the algorithm margin to zero.
+% \begin{macrocode}
+\setlength\algomargin{0pt}
+% \end{macrocode}
+%
+%\begin{macro}{\artappendix}
+% Switch to appendices in an article
+% \begin{macrocode}
+\newcommand{\artappendix}{\par
+ \setcounter{section}{0}
+ \setcounter{subsection}{0}
+ \def\thesection{\Alph{section}}
+ \def\presectionnum{Appendix~}%
+}
+% \end{macrocode}
+%\end{macro}
+% The default assumes a stand-alone article.
+%\begin{macro}{\appendix}
+% \begin{macrocode}
+\let\appendix\artappendix
+% \end{macrocode}
+%\end{macro}
+%
+%\subsection{Proofs and Theorems}
+% This code is taken from jmlr2e.sty
+%\begin{macro}{\BlackBox}
+% End of proof marker
+% \begin{macrocode}
+\newcommand{\BlackBox}{\rule{1.5ex}{1.5ex}}
+% \end{macrocode}
+%\end{macro}
+%\begin{environment}{proof}
+% Proof environment
+% \begin{macrocode}
+\newenvironment{proof}{\par\noindent{\bfseries\upshape
+ Proof\ }}{\hfill\BlackBox\\[2mm]}
+% \end{macrocode}
+%\end{environment}
+%\begin{environment}{example}
+% \begin{macrocode}
+\newtheorem{example}{Example}
+% \end{macrocode}
+%\end{environment}
+%\begin{environment}{theorem}
+% \begin{macrocode}
+\newtheorem{theorem}{Theorem}
+% \end{macrocode}
+%\end{environment}
+%\begin{environment}{lemma}
+% \begin{macrocode}
+\newtheorem{lemma}[theorem]{Lemma}
+% \end{macrocode}
+%\end{environment}
+%\begin{environment}{proposition}
+% \begin{macrocode}
+\newtheorem{proposition}[theorem]{Proposition}
+% \end{macrocode}
+%\end{environment}
+%\begin{environment}{remark}
+% \begin{macrocode}
+\newtheorem{remark}[theorem]{Remark}
+% \end{macrocode}
+%\end{environment}
+%\begin{environment}{corollary}
+% \begin{macrocode}
+\newtheorem{corollary}[theorem]{Corollary}
+% \end{macrocode}
+%\end{environment}
+%\begin{environment}{definition}
+% \begin{macrocode}
+\newtheorem{definition}[theorem]{Definition}
+% \end{macrocode}
+%\end{environment}
+%\begin{environment}{conjecture}
+% \begin{macrocode}
+\newtheorem{conjecture}[theorem]{Conjecture}
+% \end{macrocode}
+%\end{environment}
+%\begin{environment}{axiom}
+% \begin{macrocode}
+\newtheorem{axiom}[theorem]{Axiom}
+% \end{macrocode}
+%\end{environment}
+%
+%\begin{macro}{\vec}
+% Redefine \cs{vec} to produce a bold symbol
+% \begin{macrocode}
+\renewcommand*{\vec}[1]{\boldsymbol{#1}}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{environment}{enumerate*}
+% Define an enumerate style environment where the nested environments
+% all use the same counter. It uses the enumi counter.
+% \begin{macrocode}
+\newenvironment{enumerate*}%
+{%
+ \ifnum\@enumdepth=0\relax
+ \setcounter{enumi}{0}%
+ \fi
+ \ifnum\@enumdepth>\thr@@
+ \@toodeep
+ \else
+ \advance\@enumdepth\@ne
+ \def\@enumctr{enumi}%
+ \list
+ {\labelenumi}%
+ {\@nmbrlisttrue\def\@listctr{enumi}%
+ \def\makelabel##1{\hss\llap{##1}}}%
+ \fi
+}%
+{\endlist}
+% \end{macrocode}
+%\end{environment}
+%
+%\begin{environment}{altdescription}
+% Define a description like environment where the indent is
+% computed from the widest label. The optional argument is
+% the widest label.
+% \begin{macrocode}
+\newenvironment{altdescription}[1]%
+ {\list{}%
+ {%
+ \settowidth{\labelwidth}{\altdescriptionlabel{#1}}%
+ \setlength{\labelsep}{15pt}%
+ \setlength{\leftmargin}{2\labelsep}%
+ \addtolength{\leftmargin}{\labelwidth}%
+ \setlength{\rightmargin}{\labelsep}%
+ \let\makelabel\altdescriptionlabel
+ }%
+ }%
+ {\endlist}
+
+\newcommand*{\altdescriptionlabel}[1]{\normalfont\bfseries #1\hfill}
+% \end{macrocode}
+%\end{environment}
+%
+%\begin{macro}{\mailto}
+% Syntax: \cs{mailto}\marg{address}
+% \begin{macrocode}
+\newcommand*{\mailto}[1]{\texttt{#1}}
+% \end{macrocode}
+%\end{macro}
+%
+% The \sty{subfig} package breaks jmlrbook.cls, so define \ics{subfig}
+% here. (This is fairly primitive.)
+%\begin{macro}{\c@subfigure}
+% Define subfigure counter:
+% \begin{macrocode}
+\newcounter{subfigure}
+\@addtoreset{subfigure}{figure}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\thesubfigure}
+% \begin{macrocode}
+\renewcommand*{\thesubfigure}{\alph{subfigure}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\p@subfigure}
+% \begin{macrocode}
+\renewcommand*{\p@subfigure}{\expandafter\@p@subfigure}
+\newcommand*{\@p@subfigure}[1]{%
+ \protect\@subfigurelabel{\thefigure}{\thesubfigure}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@subfigurelabel}
+% Define how label appears.
+% \begin{macrocode}
+\newcommand*\@subfigurelabel[2]{#1\subfigurelabel{#2}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\subfigref}
+% Reference the sub-figure without including the figure number.
+% \begin{macrocode}
+\newcommand*\@subfigref[1]{%
+ {%
+ \def\@subfigurelabel##1##2{\subfigurelabel{##2}}%
+ \ref{#1}%
+ }%
+}
+\newcommand*{\subfigref}[1]{%
+ \let\@objectname\@empty
+ \def\@objectref{}%
+ \let\@prevsep\@empty
+ \@for\@thislabel:=#1\do{%
+ \toks@{\@prevsep}%
+ \protected@edef\@objectref{\@objectref\the\toks@
+ \protect\@subfigref{\@thislabel}}%
+ \ifx\@objectname\@empty
+ \let\@objectname\@nil
+ \else
+ \let\@objectname\relax
+ \let\@prevsep\@jmlr@reflistsep
+ \fi
+ }%
+ \ifx\@objectname\relax
+ \let\@prevsep\@jmlr@reflistlastsep
+ \fi
+ \@objectref
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\subfigurelabel}
+% \begin{macrocode}
+\newcommand*{\subfigurelabel}[1]{(\emph{#1})}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\subfigure}
+% \begin{macrocode}
+\newcommand*{\subfigure}[1][]{%
+ \bgroup
+ \def\@subfigcap{#1}%
+ \@subfigure
+}
+
+\newcommand*{\@subfigure}[2][b]{%
+ \advance\c@figure by 1\relax
+ \refstepcounter{subfigure}%
+ \begin{tabular}[#1]{@{}c@{}}%
+ #2\\
+ \subfigurelabel{\thesubfigure}%
+ \ifx\@subfigcap\@empty
+ \else
+ \space\@subfigcap
+ \fi
+ \end{tabular}
+ \egroup
+}
+% \end{macrocode}
+%\end{macro}
+%
+% Sub-tables:
+%\begin{macro}{\c@subtable}
+% Define subtable counter:
+% \begin{macrocode}
+\newcounter{subtable}
+\@addtoreset{subtable}{table}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\thesubtable}
+% \begin{macrocode}
+\renewcommand*{\thesubtable}{\alph{subtable}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\p@subtable}
+% \begin{macrocode}
+\renewcommand*{\p@subtable}{\expandafter\@p@subtable}
+\newcommand*{\@p@subtable}[1]{%
+ \protect\@subtablelabel{\thetable}{\thesubtable}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@subtablelabel}
+% Define how label appears.
+% \begin{macrocode}
+\newcommand*\@subtablelabel[2]{#1\subtablelabel{#2}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\subtabref}
+% Reference the sub-table without including the table number.
+% \begin{macrocode}
+\newcommand*\@subtabref[1]{%
+ {%
+ \def\@subtablelabel##1##2{\subtablelabel{##2}}%
+ \ref{#1}%
+ }%
+}
+\newcommand*{\subtabref}[1]{%
+ \let\@objectname\@empty
+ \def\@objectref{}%
+ \let\@prevsep\@empty
+ \@for\@thislabel:=#1\do{%
+ \toks@{\@prevsep}%
+ \protected@edef\@objectref{\@objectref\the\toks@
+ \protect\@subtabref{\@thislabel}}%
+ \ifx\@objectname\@empty
+ \let\@objectname\@nil
+ \else
+ \let\@objectname\relax
+ \let\@prevsep\@jmlr@reflistsep
+ \fi
+ }%
+ \ifx\@objectname\relax
+ \let\@prevsep\@jmlr@reflistlastsep
+ \fi
+ \@objectref
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\subtablelabel}
+% \begin{macrocode}
+\newcommand*{\subtablelabel}[1]{(\emph{#1})}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\subtable}
+% \begin{macrocode}
+\newcommand*{\subtable}[1][]{%
+ \def\@subtabcap{#1}%
+ \@subtable
+}
+
+\newcommand*{\@subtable}[2][t]{%
+ \refstepcounter{subtable}%
+ \begin{tabular}[#1]{@{}c@{}}%
+ \subtablelabel{\thesubtable}%
+ \ifx\@subtabcap\@empty
+ \else
+ \space\@subtabcap
+ \fi
+ \\#2%
+ \end{tabular}
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\subsection{Compatibility with combine.cls}
+%
+% Define chapters to make this class play nicely with \cls{combine}.
+% These definitions are just copied from book.cls
+% \begin{macrocode}
+\newcounter{chapter}
+\renewcommand\thechapter{\@arabic\c@chapter}
+\newcommand\@chapapp{\chaptername}
+% \end{macrocode}
+% Add sections to the chapter reset.
+% \begin{macrocode}
+\@addtoreset{section}{chapter}
+% \end{macrocode}
+%\begin{macro}{\chaptermark}
+% \begin{macrocode}
+\newcommand*\chaptermark[1]{}
+% \end{macrocode}
+%\end{macro}
+% Chapters should only be defined when we're combining documents
+% into a book.
+%\begin{macro}{\bookchapter}
+% \begin{macrocode}
+\newcommand\bookchapter{%
+ \if@openright\cleardoublepage\else\clearpage\fi
+ \thispagestyle{plain}%
+ \global\@topnum\z@
+ \@afterindentfalse
+ \secdef\@chapter\@schapter}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\artchapter}
+% Disable chapters for articles.
+% \begin{macrocode}
+\newcommand\artchapter{%
+ \ClassError{jmlrwcp}{Chapters not permitted in articles}{}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\chapter}
+% The default assumes a stand-alone document.
+% \begin{macrocode}
+\let\chapter\artchapter
+% \end{macrocode}
+%\end{macro}
+% Label for the chapter entries in the toc.
+% \begin{macrocode}
+\def\@chaptoclabel{chapter}
+% \end{macrocode}
+%\begin{macro}{\@chapter}
+% Numbered chapters
+% \begin{macrocode}
+\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \addcontentsline{toc}{\@chaptoclabel}%
+ {\protect\numberline{\thechapter}#1}%
+ \else
+ \addcontentsline{toc}{\@chaptoclabel}{#1}%
+ \fi
+ \else
+ \addcontentsline{toc}{\@chaptoclabel}{#1}%
+ \fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\chaptertitleformat}
+% Formats the chapter title
+% \begin{macrocode}
+\newcommand{\chaptertitleformat}[1]{%
+ \Huge\bfseries#1%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\chapternumberformat}
+% Formats the chapter number
+% \begin{macrocode}
+\newcommand{\chapternumberformat}[1]{%
+ \huge\bfseries \@chapapp\space#1\par\nobreak
+ \vskip 20\p@
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\chapterformat}
+% Overall format for chapter headings
+% \begin{macrocode}
+\newcommand*{\chapterformat}{\raggedright}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\postchapterskip}
+% Vertical gap after chapter heading
+% \begin{macrocode}
+\newlength\postchapterskip
+\setlength\postchapterskip{40pt}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\prechapterskip}
+% Vertical gap before chapter heading
+% \begin{macrocode}
+\newlength\prechapterskip
+\setlength\prechapterskip{50pt}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@makechapterhead}
+% Chapter heading for numbered chapters
+% \begin{macrocode}
+\def\@makechapterhead#1{%
+ \null\vskip\prechapterskip
+ {\parindent \z@ \normalfont\chapterformat
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \chapternumberformat{\thechapter}%
+ \fi
+ \fi
+ \interlinepenalty\@M
+ \chaptertitleformat{#1}\par\nobreak
+ \vskip \postchapterskip
+ }}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@schapter}
+% Unnumbered chapters.
+% \begin{macrocode}
+\def\@schapter#1{\if@twocolumn
+ \@topnewpage[\@makeschapterhead{#1}]%
+ \else
+ \@makeschapterhead{#1}%
+ \@afterheading
+ \fi}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@makeschapterhead}
+% Layout for unnumbered chapter headings
+% \begin{macrocode}
+\def\@makeschapterhead#1{%
+ \vspace*{\prechapterskip}%
+ {\parindent \z@
+ \normalfont\chapterformat
+ \interlinepenalty\@M
+ \chaptertitleformat{#1}\par\nobreak
+ \vskip \postchapterskip
+ }}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\l@chapter}
+% Format for chapter entry in toc
+% \begin{macrocode}
+\newcommand*\l@chapter[2]{%
+ \ifnum \c@tocdepth >\m@ne
+ \addpenalty{-\@highpenalty}%
+ \vskip 1.0em \@plus\p@
+ \setlength\@tempdima{1.5em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode \large\bfseries
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty
+ \endgroup
+ \fi}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\l@appendix}
+% Make appendix entries in the toc the same as that for chapters
+% by default
+% \begin{macrocode}
+\let\l@appendix\l@chapter
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\chaptername}
+% \begin{macrocode}
+\newcommand\chaptername{Chapter}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\frontmatter}
+% Start the front matter (in book)
+% \begin{macrocode}
+\newcommand\frontmatter{%
+ \cleardoublepage
+ \@mainmatterfalse
+ \pagenumbering{roman}%
+ \morefrontmatter
+}
+\newcommand\morefrontmatter{}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\mainmatter}
+% Start the main matter (in book)
+% \begin{macrocode}
+\newcommand\mainmatter{%
+ \cleardoublepage
+ \@mainmattertrue
+ \pagenumbering{arabic}%
+ \moremainmatter
+}
+\newcommand\moremainmatter{}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\backmatter}
+% Start the back matter (in book)
+% \begin{macrocode}
+\newcommand\backmatter{%
+ \if@openright
+ \cleardoublepage
+ \else
+ \clearpage
+ \fi
+ \@mainmatterfalse}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\booktableofcontents}
+% This is for the main table of contents when using
+% the combine class file, and is not for use in individual
+% articles.
+% \begin{macrocode}
+\let\booktableofcontents\tableofcontents
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\arttableofcontents}
+% Table of contents for individual articles.
+% \begin{macrocode}
+\let\arttableofcontents\tableofcontents
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\artpart}
+% A part in an article
+% \begin{macrocode}
+\newcommand{\artpart}{%
+ \if@noskipsec \leavevmode\fi
+ \par
+ \addvspace{4ex}%
+ \@afterindentfalse
+ \secdef\@artpart\@sartpart
+}
+\let\@artpart\@part
+\let\@sartpart\@spart
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\bookpart}
+% A part in a book forming a collection of articles
+% \begin{macrocode}
+\newcommand\bookpart{%
+ \if@openright
+ \cleardoublepage
+ \else
+ \clearpage
+ \fi
+ \thispagestyle{plain}%
+ \if@twocolumn
+ \onecolumn
+ \@tempswatrue
+ \else
+ \@tempswafalse
+ \fi
+ \preparthook
+ \secdef\@bookpart\@sbookpart}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\parttitleformat}
+% Format of the title for a part (in a book)
+% \begin{macrocode}
+\newcommand{\parttitleformat}[1]{%
+ \Huge\bfseries#1%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\partnumberformat}
+% Format of the part number (in a book)
+% \begin{macrocode}
+\newcommand{\partnumberformat}[1]{%
+ \Huge\bfseries \partname\nobreakspace#1\par\nobreak
+ \vskip 20\p@
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\preparthook}
+% Hook at the start of a part (in a book)
+% \begin{macrocode}
+\newcommand{\preparthook}{\null\vfil}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\partformat}
+% Overall format of part
+% \begin{macrocode}
+\renewcommand*{\partformat}{\centering}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@bookpart}
+% Numbered book part format
+% \begin{macrocode}
+\def\@bookpart[#1]#2{%
+ \ifnum \c@secnumdepth >-2\relax
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\protect\numberline{\thepart}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \fi
+ \markboth{}{}%
+ {\interlinepenalty \@M
+ \normalfont\partformat
+ \ifnum \c@secnumdepth >-2\relax
+ \partnumberformat{\thepart}%
+ \fi
+ \parttitleformat{#2}\par}%
+ \postparthook}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@sbookpart}
+% Unnumbered book part format
+% \begin{macrocode}
+\def\@sbookpart#1{%
+ {\interlinepenalty \@M
+ \normalfont\partformat
+ \parttitleformat{#1}\par}%
+ \postparthook}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\postparthook}
+% Hook after part heading
+% \begin{macrocode}
+\def\postparthook{\vfil\newpage
+ \if@twoside
+ \if@openright
+ \null
+ \thispagestyle{empty}%
+ \newpage
+ \fi
+ \fi
+ \if@tempswa
+ \twocolumn
+ \fi}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\bookappendix}
+% Switch to appendices in book
+% \begin{macrocode}
+\newcommand\bookappendix{\par
+ \setcounter{table}{0}%
+ \setcounter{figure}{0}%
+ \zeroextracounters
+ \par
+ \gdef\theHchapter{\Alph {chapter}}%
+ \xdef\Hy@chapapp{\Hy@appendixstring}%
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \gdef\@chapapp{\appendixname}%
+ \gdef\thechapter{\@Alph\c@chapter}%
+ \csname appendixmore\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+% Define commands to switch between book/article modes
+%\begin{macro}{\jmlrbookcommands}
+% Switch to book commands
+% \begin{macrocode}
+\newcommand*{\jmlrbookcommands}{%
+ \let\part\bookpart
+ \let\chapter\bookchapter
+ \let\appendix\bookappendix
+ \let\tableofcontents\booktableofcontents
+ \def\thesection{\thechapter.\arabic{section}}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlarticlecommands}
+% Switch to article commands
+% \begin{macrocode}
+\newcommand*{\jmlrarticlecommands}{%
+ \let\part\artpart
+ \let\chapter\artchapter
+ \let\appendix\artappendix
+ \let\tableofcontents\arttableofcontents
+ \def\thesection{\arabic{section}}%
+}
+% \end{macrocode}
+%\end{macro}
+% Check for packages that are known to cause problems when
+% combining articles into a book.
+%\begin{macro}{\@jmlr@check@packages}
+% \begin{macrocode}
+\newcommand*{\@jmlr@check@packages}{%
+ \@ifpackageloaded{epsfig}{%
+ \ClassError{jmlr}{Obsolete package `epsfig' detected.
+ \MessageBreak
+ Please use \string\includegraphics\space to include images
+ instead}{}}{}%
+ \@ifpackageloaded{psfig}{%
+ \ClassError{jmlr}{Obsolete package `psfig' detected.
+ \MessageBreak
+ Please use \string\includegraphics\space to include images
+ instead}{}}{}%
+ \@ifpackageloaded{subfig}{%
+ \ClassError{jmlr}{Package `subfig' detected.\MessageBreak
+ This will cause a conflict if the article is incorporated
+ \MessageBreak
+ into a book using jmlbook.cls.
+ \MessageBreak
+ Please use \string\subfigure\space and
+ \string\subtable\space instead}{}}{}%
+ \@ifpackageloaded{theorem}{%
+ \ClassError{jmlr}{Package `theorem' detected.\MessageBreak
+ This can cause a conflict with other packages used by jmlr}{}}{}%
+ \@ifpackageloaded{pdfpages}{Package `pdfpages' detected.\MessageBreak
+ This can cause a problem for jmlrbook.}{}%
+ \@ifpackageloaded{geometry}{Package `geometry' detected.\MessageBreak
+ This can cause a problem for jmlrbook.}{}%
+}
+\AtBeginDocument{%
+\@jmlr@check@packages
+\let\@jmlr@check@packages\relax
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlrSuppressPackageChecks}
+% Don't check for potentially problematic packages.
+% \begin{macrocode}
+\newcommand*{\jmlrSuppressPackageChecks}{%
+ \let\@jmlr@check@packages\relax
+}
+% \end{macrocode}
+%\end{macro}
+%\iffalse
+% \begin{macrocode}
+%</jmlr.cls>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+%<*jmlrbook.cls>
+% \end{macrocode}
+%\fi
+%\section{jmlrbook.cls Code}
+% Class file for books composed of articles using the \clsfmt{jmlr} class.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+% \end{macrocode}
+% Declare class:
+% \begin{macrocode}
+\ProvidesClass{jmlrbook}[2010/06/17 v1.06 (NLCT) JMLR Book Style]
+% \end{macrocode}
+% Need \sty{xkeyval} package to have key=value class options
+% \begin{macrocode}
+\RequirePackage{xkeyval}
+% \end{macrocode}
+% Some packages need to be loaded before \sty{hyperref} so provide a
+% hook to do this:
+% \begin{macrocode}
+\newcommand*{\@prehyperref}{}
+% \end{macrocode}
+% Option to add stuff before \sty{hyperref} is loaded:
+% \begin{macrocode}
+\define@key{jmlrbook.cls}{prehyperref}{%
+ \renewcommand*{\@prehyperref}{#1}}
+% \end{macrocode}
+% Determine whether to select color or grayscale
+% \begin{macrocode}
+\newif\ifgrayscale
+\grayscalefalse
+\DeclareOptionX{color}{\grayscalefalse}
+\DeclareOptionX{gray}{\grayscaletrue}
+% \end{macrocode}
+% Pass \clsopt{html} and \clsopt{nohtml} to \clsfmt{jmlr}.
+% \begin{macrocode}
+\DeclareOptionX{html}{\PassOptionsToClass{\CurrentOption}{jmlr}}
+\DeclareOptionX{nohtml}{\PassOptionsToClass{\CurrentOption}{jmlr}}
+% \end{macrocode}
+% Pass \clsopt{wcp} and \clsopt{nowcp} options to \clsfmt{jmlr}.
+% \begin{macrocode}
+\DeclareOptionX{wcp}{\PassOptionsToClass{\CurrentOption}{jmlr}}
+\DeclareOptionX{nowcp}{\PassOptionsToClass{\CurrentOption}{jmlr}}
+% \end{macrocode}
+% Pass \clsopt{tablecaptiontop} and \clsopt{tablecaptionbottom} options
+% to \clsfmt{jmlr}.
+% \begin{macrocode}
+\DeclareOptionX{tablecaptiontop}{\PassOptionsToClass{\CurrentOption}{jmlr}}
+\DeclareOptionX{tablecaptionbottom}{\PassOptionsToClass{\CurrentOption}{jmlr}}
+% \end{macrocode}
+% Process options
+% \begin{macrocode}
+\ProcessOptionsX
+% \end{macrocode}
+% If \ics{jmlrgrayscale} has been defined, let it override the
+% class options. If it is defined, it should be set to 0 for the
+% online version and any other number for the grayscale print
+% version.
+% \begin{macrocode}
+\@ifundefined{jmlrgrayscale}{}%
+{%
+ \ifnum\jmlrgrayscale=0\relax
+ \grayscalefalse
+ \else
+ \grayscaletrue
+ \fi
+}
+% \end{macrocode}
+% Load \cls{combine} class. This requires a little bit of trickery.
+% \begin{macrocode}
+\let\@org@LoadClass\LoadClass
+\def\LoadClass#1{\let\LoadClass\@org@LoadClass\@org@LoadClass{jmlr}}
+\@org@LoadClass{combine}
+% \end{macrocode}
+% Requires \sty{combnat} to work with \sty{natbib}:
+% \begin{macrocode}
+\RequirePackage{combnat}
+% \end{macrocode}
+% Need to apply a patch to \sty{combnat} (this has now been fixed
+% in \sty{combnat}, but user might be using an old version):
+% \begin{macrocode}
+\renewcommand\c@laNAT@parse[1]{{%
+ \let\protect=\@unexpandable@protect\let~\relax
+ \let\active@prefix=\@gobble
+ \xdef\NAT@temp{\csname b@#1\@extra@b@citeb\endcsname}}%
+ \expandafter\NAT@split\NAT@temp?????@@%
+ \expandafter\NAT@parse@date\NAT@date??????@@%
+ \ifciteindex\NAT@index\fi}
+
+\renewcommand\c@lbNAT@parse[1]{{%
+ \let\protect=\@unexpandable@protect\let~\relax
+ \let\active@prefix=\@gobble
+ \xdef\NAT@temp{\csname B?\jobname?@#1\@extra@b@citeb\endcsname}}%
+ \expandafter\NAT@split\NAT@temp?????@@%
+ \expandafter\NAT@parse@date\NAT@date??????@@%
+ \ifciteindex\NAT@index\fi}
+% \end{macrocode}
+% Requires double spacing for the title page
+% \begin{macrocode}
+\RequirePackage{setspace}
+% \end{macrocode}
+% Do all the stuff that needs to be done before \sty{hyperref} is
+% loaded:
+% \begin{macrocode}
+\@prehyperref
+% \end{macrocode}
+% Load \sty{hyperref}:
+% \begin{macrocode}
+\usepackage[colorlinks,
+ linkcolor=blue,
+ citecolor=blue,
+ urlcolor=magenta,
+ linktocpage,
+ plainpages=false]{hyperref}
+\usepackage{nameref}
+% \end{macrocode}
+% If this is the print version, need to disable the hyperlinks
+% \begin{macrocode}
+\ifgrayscale
+ \hypersetup{draft}
+\fi
+% \end{macrocode}
+% Switch on two-side mode
+% \begin{macrocode}
+\@twosidetrue
+% \end{macrocode}
+% Start new chapters on the right hand page:
+% \begin{macrocode}
+\newif\if@openright
+\@openrighttrue
+\newif\if@mainmatter
+% \end{macrocode}
+% Define commands that affect the formatting:
+%\begin{macro}{\pagerule}
+% Draw line across the text block.
+% \begin{macrocode}
+\newcommand*{\pagerule}[1][0pt]{\par\noindent
+ \rule[#1]{\linewidth}{2pt}\par}
+% \end{macrocode}
+%\end{macro}
+% Cross-reference chapters:
+% \begin{macrocode}
+\newcommand*{\chapterrefname}{Chapter}
+\newcommand*{\chaptersrefname}{Chapters}
+% \end{macrocode}
+%\begin{macro}{\chapterref}
+% \begin{macrocode}
+\newcommand*{\chapterref}[1]{%
+ \objectref{#1}{\chapterrefname}{\chaptersrefname}{}{}}
+% \end{macrocode}
+%\end{macro}
+%
+% Cross-referencing imported articles:
+%\begin{macro}{\articlepageref}
+% Page number of start of article
+% \begin{macrocode}
+\newcommand*{\articlepageref}[1]{%
+ \pageref{#1jmlrstart}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\articlepagesref}
+% Page range of article
+% \begin{macrocode}
+\newcommand*{\articlepagesref}[1]{%
+ \pageref{#1jmlrstart}--\pageref{#1jmlrend}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@articlepagesref}
+% Page range of article for use within the article
+% \begin{macrocode}
+\newcommand*{\@articlepagesref}{%
+ \pageref{jmlrstart}--\pageref{jmlrend}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\articletitleref}
+% Reference the short title of an imported article
+% \begin{macrocode}
+\newcommand*{\articletitleref}[1]{\nameref{#1jmlrstart}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\articleauthorref}
+% Reference the authors of an imported article
+% \begin{macrocode}
+\newcommand*{\articleauthorref}[1]{%
+ \@ifundefined{@jmlr@author@#1}%
+ {%
+ \ClassWarning{jmlrbook}{Label `#1' undefined}%
+ }%
+ {%
+ \@nameuse{@jmlr@author@#1}%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
+% Part labels
+% \begin{macrocode}
+\newcommand*{\@parttoclabel}{part}
+\newcommand*{\@partapp}{\partname}
+% \end{macrocode}
+%
+% Extra title information
+% \begin{macrocode}
+\renewcommand*\jmlrtitlehook{%
+ \hypersetup{pdftitle={\@shorttitle}}%
+ \let\jmlrtitlehook\relax
+}
+\renewcommand*\jmlrauthorhook{%
+ \ifx\@sauthor\@empty
+ \hypersetup{pdfauthor={\@author}}%
+ \else
+ \hypersetup{pdfauthor={\@sauthor}}%
+ \fi
+ \let\jmlrauthorhook\relax
+ \let\@shortauthor\@empty
+}
+% \end{macrocode}
+%\begin{macro}{\volume}
+% \begin{macrocode}
+\newcommand*{\@volume}{\@jmlrvolume}
+\newcommand*{\volume}[1]{\renewcommand*{\@volume}{#1}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\issue}
+% \begin{macrocode}
+\newcommand*{\@issue}{\@jmlrissue}
+\newcommand*{\issue}[1]{\renewcommand*{\@issue}{#1}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\thejmlrworkshop}
+% Provided in the event that it's required for the title page.
+% \begin{macrocode}
+\newcommand*{\thejmlrworkshop}{\@jmlrworkshop}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\team}
+% \begin{macrocode}
+\newcommand*{\@team}{}
+\newcommand*{\team}[1]{\renewcommand*{\@team}{#1}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@productioneditorname}
+% \begin{macrocode}
+\newcommand*{\@productioneditorname}{Production Editor}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\productioneditor}
+% \begin{macrocode}
+\newcommand*{\@productioneditor}{}
+\newcommand*{\productioneditor}[1]{%
+ \renewcommand*{\@productioneditor}{#1}%
+ \renewcommand*{\@productioneditorname}{Production Editor}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\productioneditors}
+% \begin{macrocode}
+\newcommand*{\productioneditors}[1]{%
+ \renewcommand*{\@productioneditor}{#1}%
+ \renewcommand*{\@productioneditorname}{Production Editors}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\logo}
+% Title page image
+% \begin{macrocode}
+\newcommand*{\@logo}{}
+\newcommand*{\logo}[1]{\renewcommand*{\@logo}{#1}}
+% \end{macrocode}
+%\end{macro}
+%
+% Set article title
+% \begin{macrocode}
+\def\c@lbmaketitle{\jmlrmaketitle}
+% \end{macrocode}
+% The book's title:
+%\begin{macro}{\maintitle}
+% \begin{macrocode}
+\newcommand*{\maintitle}{}
+% \end{macrocode}
+%\end{macro}
+%
+% Make it easier to modify the book's title page:
+%\begin{macro}{\SetTitleElement}
+% \begin{macrocode}
+\newcommand*{\SetTitleElement}[3]{%
+ {%
+ \expandafter\ifx\csname @#1\endcsname\@empty
+ \else
+ #2\csname @#1\endcsname#3%
+ \fi
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\IfTitleElement}
+% Determine if the given element has been set:
+% \begin{macrocode}
+\newcommand{\IfTitleElement}[3]{%
+ \expandafter\ifx\csname @#1\endcsname\@empty
+ #2%
+ \else
+ #3%
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\titlebody}
+% \begin{macrocode}
+\newcommand{\titlebody}{%
+ \SetTitleElement{title}{\maintitlefont}{\postmaintitle}%
+ \SetTitleElement{volume}{\mainvolumefont}{\postmainvolume}%
+ \SetTitleElement{subtitle}{\mainsubtitlefont}{\postmainsubtitle}%
+ \SetTitleElement{logo}{\mainlogofont}{\postmainlogo}%
+ \SetTitleElement{team}{\mainteamfont}{\postmainteam}%
+ \SetTitleElement{author}{\mainauthorfont}{\postmainauthor}%
+ \SetTitleElement{productioneditor}{\mainproductioneditorfont}%
+ {\postmainproductioneditor}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\c@lamaketitle}
+% \begin{macrocode}
+\ifjmlrhtml
+ \renewcommand{\c@lamaketitle}{%
+ \HCode{<table cellpadding="2" cellspacing="2" border="0" width="100\%">}%
+ \HCode{<tbody><tr><td valign="top">}%
+ \HCode{<h1>}%
+ \@title\newline
+ \ifx\@volume\@empty
+ \else
+ Volume \@volume
+ \ifx\@subtitle\@empty\else: \fi
+ \fi
+ \@subtitle
+ \HCode{</h1>}%
+ \newline
+ \textbf{Editors: \@author}
+ \HCode{</td><td valign="top">}%
+ \@logo
+ \HCode{</td></tr></tbody></table>}%
+ \let\maintitle\@title
+ }
+\else
+ \renewcommand{\c@lamaketitle}{%
+ \pagenumbering{alph}%
+ \pagestyle{empty}%
+ \begin{titlepage}%
+ \let\footnotesize\small
+ \let\footnoterule\relax
+ \let\footnote\thanks
+ \titlebody
+ \par
+ \@thanks
+ \end{titlepage}%
+ \setcounter{footnote}{0}%
+ \let\maintitle\@title
+ \c@lmtitlempty
+ }
+\fi
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\maintitlefont}
+% \begin{macrocode}
+\renewcommand{\maintitlefont}{%
+ \null\vskip15pt\relax\par
+ \flushleft\Huge\bfseries\noindent}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\postmaintitle}
+% \begin{macrocode}
+\renewcommand{\postmaintitle}{%
+ \par\relax
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\mainvolumefont}
+% \begin{macrocode}
+\newcommand{\mainvolumefont}{%
+ \flushleft\noindent\LARGE\bfseries Volume
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\postmainvolume}
+% \begin{macrocode}
+\newcommand{\postmainvolume}{%
+ \IfTitleElement{subtitle}{}{:}\par\relax
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\mainissuefont}
+% \begin{macrocode}
+\newcommand{\mainissuefont}{%
+ \flushleft\noindent\LARGE\bfseries Issue
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\postmainissue}
+% \begin{macrocode}
+\newcommand{\postmainissue}{%
+ \par\relax
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\mainsubtitlefont}
+% \begin{macrocode}
+\newcommand{\mainsubtitlefont}{%
+ \flushleft\LARGE\bfseries\noindent}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\postmainsubtitle}
+% \begin{macrocode}
+\newcommand{\postmainsubtitle}{\par}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\mainlogofont}
+% \begin{macrocode}
+\newcommand{\mainlogofont}{%
+ \vfill
+ \begin{center}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\postmainlogo}
+% \begin{macrocode}
+\newcommand{\postmainlogo}{\end{center}\vfill\par}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\mainteamfont}
+% \begin{macrocode}
+\newcommand{\mainteamfont}{\flushleft\bfseries\Large\noindent}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\postmainteam}
+% \begin{macrocode}
+\newcommand{\postmainteam}{\par}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\mainauthorfont}
+% \begin{macrocode}
+\renewcommand{\mainauthorfont}{%
+ \flushleft\Large\itshape\doublespacing\noindent}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\postmainauthor}
+% \begin{macrocode}
+\renewcommand{\postmainauthor}{%
+\par}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\mainproductioneditorfont}
+% \begin{macrocode}
+\newcommand{\mainproductioneditorfont}{%
+ \flushleft\Large\noindent \@productioneditorname: \itshape}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\postmainproductioneditor}
+% \begin{macrocode}
+\newcommand{\postmainproductioneditor}{\par}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\maindatefont}
+% \begin{macrocode}
+\renewcommand{\maindatefont}{}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\postmaindate}
+% \begin{macrocode}
+\renewcommand{\postmaindate}{}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{environment}{signoff}
+% Editorial team listed at the end of a preface etc. The mandatory
+% argument is the date, the optional argument is the team title.
+% Each editor should be separated with \ics{Editor}.
+% \begin{macrocode}
+\newenvironment{signoff}[2][The Editorial Team]{%
+ \def\Editor##1{\begin{tabular}{@{}l@{}}%
+ ##1%
+ \end{tabular}%
+ \par\vskip\baselineskip\noindent\ignorespaces
+ }%
+ \def\@editorialteam{#1}%
+ \def\@signoffdate{#2}%
+ \par\vskip\baselineskip\noindent
+ \ifx\@signoffdate\@empty
+ \else
+ \emph{\@signoffdate}\par
+ \vskip\baselineskip\noindent
+ \fi
+ \ifx\@editorialteam\@empty
+ \else
+ \@editorialteam:\par\vskip\baselineskip
+ \fi
+ \noindent\ignorespaces
+}{%
+}
+% \end{macrocode}
+%\end{environment}
+%\begin{environment}{authorsignoff}
+% An author can sign off at the end of a chapter (such as a
+% foreword).
+% Each author should be separated with \ics{Author}.
+% \begin{macrocode}
+\newenvironment{authorsignoff}{%
+ \def\Author##1{\begin{tabular}{@{}l@{}}%
+ ##1%
+ \end{tabular}%
+ \par\vskip\baselineskip\noindent\ignorespaces
+ }%
+ \par\vskip\baselineskip\noindent\ignorespaces
+}{%
+}
+% \end{macrocode}
+%\end{environment}
+%
+%\begin{macro}{\seroextracounters}
+% Reset counters at the start of each imported article
+% \begin{macrocode}
+\renewcommand{\zeroextracounters}{%
+ \@ifundefined{c@theorem}{}{\setcounter{theorem}{0}}%
+ \@ifundefined{c@algorithm}{}{\setcounter{algorithm}{0}}%
+ \@ifundefined{c@example}{}{\setcounter{example}{0}}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\contentsname}
+% Redcfine title of the table of contents
+% \begin{macrocode}
+\renewcommand*{\contentsname}{Table of Contents}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\theHalgorithm}
+% \begin{macrocode}
+\def\theHalgorithm{\thechapter.\thealgorithm}
+% \end{macrocode}
+%\end{macro}
+\def\theHexample{\thechapter.\theexample}
+\def\theHtheorem{\thechapter.\thetheorem}
+%\begin{macro}{\theHsection}
+% \begin{macrocode}
+\def\theHsection{\thechapter.\thesection}
+\def\theHsubsection{\thechapter.\thesubsection}
+\def\theHsubsubsection{\thechapter.\thesubsubsection}
+\def\theHparagraph{\thechapter.\theparagraph}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\theHsubfigure}
+% \begin{macrocode}
+\def\theHsubfigure{\thechapter.\thefigure.\thesubfigure}
+\def\theHsubtable{\thechapter.\thetable.\thesubtable}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\mailto}
+% \begin{macrocode}
+\renewcommand*{\mailto}[1]{%
+ \href{mailto:#1}{\nolinkurl{#1}}%
+}
+% \end{macrocode}
+%\end{macro}
+% \begin{macrocode}
+\c@lhaschapterfalse
+\let\c@lthesec\thesection
+% \end{macrocode}
+% Make sure the hyperlinks work
+%\begin{macro}{\doimportchapterHref}
+% \begin{macrocode}
+\newcommand\doimportchapterHref{%
+ \edef\@currentHref{chapter.\thechapter}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\toclevel@appendix}
+% Set the toc level for the main appendices
+% \begin{macrocode}
+\def\toclevel@appendix{-1}
+% \end{macrocode}
+%\end{macro}
+%
+% \sty{hyperref} and \cls{combine} don't play nicely
+% need to fudge the cross-referencing a bit.
+%\begin{macro}{\Xprefix}
+% \begin{macrocode}
+\def\Xprefix{}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\Xref}
+% \begin{macrocode}
+\DeclareRobustCommand\Xref{\@ifstar\@Xrefstar\T@Xref}%
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\Xpageref}
+% \begin{macrocode}
+\DeclareRobustCommand\Xpageref{%
+ \@ifstar\@Xpagerefstar\T@Xpageref
+}%
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\HyRef@StarSetXRef}
+% \begin{macrocode}
+\def\HyRef@StarSetXRef#1{%
+ \begingroup
+ \Hy@safe@activestrue
+ \edef\x{#1}%
+ \@onelevel@sanitize\x
+ \edef\x{\endgroup
+ \noexpand\HyRef@@StarSetRef
+ \expandafter\noexpand\csname r@\Xprefix\x\endcsname{\x}%
+ }%
+ \x
+}
+% \end{macocode}
+%\end{macro}
+%
+%\begin{macro}{\@Xrefstar}
+% \begin{macrocode}
+\def\@Xrefstar#1{%
+ \HyRef@StarSetXRef{#1}\@firstoffive
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@Xpagerefstar}
+% \begin{macrocode}
+\def\@Xpagerefstar#1{%
+ \HyRef@StarSetXRef{#1}\@secondoffive
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\T@Xref}
+% \begin{macrocode}
+\def\T@Xref#1{%
+ \Hy@safe@activestrue
+ \expandafter\@setXref\csname r@\Xprefix#1\endcsname\@firstoffive{#1}%
+ \Hy@safe@activesfalse
+}%
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\T@Xpageref}
+% \begin{macrocode}
+\def\T@Xpageref#1{%
+ \Hy@safe@activestrue
+ \expandafter\@setXref\csname r@\Xprefix#1\endcsname\@secondoffive{#1}%
+ \Hy@safe@activesfalse
+}%
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\Xlabel}
+% \begin{macrocode}
+\def\Xlabel#1{%
+ \@bsphack
+ \begingroup
+ \@onelevel@sanitize\@currentlabelname
+ \edef\@currentlabelname{%
+ \expandafter\strip@period\@currentlabelname\relax.\relax\@@@
+ }%
+ \protected@write\@mainauxout{}{%
+ \string\newlabel{\Xprefix#1}{{\@currentlabel}{\thepage}%
+ {\@currentlabelname}{\@currentHref}{}}%
+ }%
+ \endgroup
+ \@esphack
+}
+\let\ltx@label\Xlabel
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@setXref}
+% \begin{macrocode}
+\def\@setXref#1#2#3{% csname, extract group, refname
+ \ifx#1\relax
+ \protect\G@refundefinedtrue
+ \nfss@text{\reset@font\bfseries ??}%
+ \@latex@warning{%
+ Reference `#3' on page \thepage \space undefined%
+ }%
+ \else
+ \expandafter\Hy@setref@link#1\@empty\@empty\@nil{#2}%
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@secondoffive}
+% Something's redefining \cs{@secondoffive} incorrectly at the
+% start of the document when hyperref's draft mode is on. Need
+% to fix it.
+% \begin{macrocode}
+\AtBeginDocument{\renewcommand\@secondoffive[5]{#2}}
+% \end{macrocode}
+%\end{macro}
+%
+% Need to write imported chapter label to main auxfile.
+%\begin{macro}{\@setimportlabel}
+% \begin{macrocode}
+\def\@setimportlabel{%
+ \let\@mainauxout\@auxout
+ \let\HRlabel\label
+}
+% \end{macrocode}
+%\end{macro}
+% \begin{macrocode}
+\AtBeginDocument{%
+ \@setimportlabel
+ \gdef\@setimportlabel{\let\ref\Xref \let\pageref\Xpageref}%
+ \let\ReadBookmarks\relax
+}
+% \end{macrocode}
+% Imported papers modify \ics{InputIfFileExists} so save original
+% definition.
+% \begin{macrocode}
+\let\@org@InputIfFileExists\InputIfFileExists
+% \end{macrocode}
+%
+%\begin{environment}{jmlrpapers}
+% \begin{macrocode}
+\newenvironment{jmlrpapers}{%
+ \begin{papers}[]
+ \jmlrarticlecommands
+ \let\importpubpaper\@importpubpaper
+ \let\importpaper\@importpaper
+ \let\importarticle\@importarticle
+ \let\label\Xlabel
+ \let\ref\Xref
+ \pagestyle{article}%
+}{%
+ \end{papers}
+}
+% \end{macrocode}
+%\end{environment}
+%
+%\begin{macro}{\addtomaincontents}
+% \begin{macrocode}
+\newcommand{\addtomaincontents}[2]{%
+ \protected@write\@mainauxout{\let\label\@gobble\let\index\@gobble
+ \let\glossary\@gobble}{\string\@writefile{#1}{#2}}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@write@author}
+% \begin{macrocode}
+\newcommand*{\@write@author}[2]{%
+ \def\@jmlr@authors@sep{ and }%
+ \protected@write\@mainauxout{}{%
+ \string\@new@articleauthor{#1}{#2}%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@new@articleauthor}
+% \begin{macrocode}
+\newcommand*{\@new@articleauthor}[2]{%
+ \expandafter\gdef\csname @jmlr@author@#1\endcsname{%
+ \hyperref[#1jmlrstart]{#2}}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@write@jmlr@import}
+% The accompanying \app{makejmlrbook} Perl script scans the aux file
+% for information. Any articles imported using \ics{importpubpaper},
+% \ics{importpaper} or \ics{importarticle} need to write the
+% relevant information to the aux file.
+% \begin{macrocode}
+\newcommand*{\@write@jmlr@import}[3]{%
+ \protected@write\@mainauxout{}{\string\@jmlr@import{#1}{#2}{#3}}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@jmlr@import}
+% \LaTeX\ should ignore \cs{@jmlr@import} as it's only needed for
+% \app{makejmlrbook}:
+% \begin{macrocode}
+\newcommand*{\@jmlr@import}[3]{}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\importpubpaper}
+% Import a document that has already been published.
+% Syntax: \cs{importpubpaper}\oarg{label}\marg{dir}\marg{file}\marg{pages}
+% where \meta{dir} is the directory in which the paper is located,
+% \meta{file} is the name of the file and \meta{pages} indicates
+% the page range \emph{for the original version}. The optional
+% argument is a label. This is used to prefix the labels and
+% citations in the document so they don't clash with other imported
+% articles. If omitted, \meta{dir}/\meta{file} is used instead.
+% \begin{macrocode}
+\newcommand*{\@importpubpaper}[4][\@importdir\@importfile]{%
+ \bgroup
+ \def\@importdir{#2/}%
+ \def\@importfile{#3}%
+ \@write@jmlr@import{#1}{#2}{#3}%
+ \def\@extra@b@citeb{#1}%
+ \def\@extra@binfo{#1}%
+ \jmlrpages{#4}%
+ \graphicspath{{\@importdir}}%
+ \def\jmlrmaketitlehook{%
+ \refstepcounter{chapter}%
+ \addtomaincontents{toc}%
+ {\protect\contentsline{papertitle}{\@shorttitle}{\thepage}%
+ {page.\thepage}}%
+ \pdfbookmark{\@shorttitle}{chapter.\thechapter}%
+ \def\@jmlr@authors@sep{ \& }%
+ \tocchapterpubauthor{\@jmlrauthors}%
+ {%
+ \@jmlrabbrvproceedings
+ \ifx\@jmlrvolume\@empty
+ \ifx\@jmlrpages\@empty\else\space\fi
+ \else
+ \space\@jmlrvolume
+ \ifx\@jmlrpages\@empty\else:\fi
+ \fi
+ \ifx\@jmlrpages\@empty
+ \else
+ \@jmlrpages
+ \ifx\@jmlryear\@empty\else,\fi
+ \fi
+ \space\@jmlryear
+ }%
+ \@write@author{#1}{\@jmlrauthors}%
+ }%
+ \def\jmlrpremaketitlehook{%
+ \cleardoublepage
+ \phantomsection
+ \let\@currentlabelname\@shorttitle
+ }%
+ \def\InputIfFileExists##1##2##3{%
+ \IfFileExists{##1}{%
+ \@org@InputIfFileExists{##1}{##2}{##3}%
+ }%
+ {%
+ \@org@InputIfFileExists{\@importdir##1}{##2}{##3}%
+ }%
+ }%
+ \def\Xprefix{#1}%
+ \import{\@importdir\@importfile}%
+ \def\Xprefix{}%
+ \egroup
+ \gdef\@shortauthor{}%
+ \gdef\@shorttitle{}%
+ \gdef\@firstauthor{}%
+ \gdef\@jmlrauthors{}%
+ \gdef\@firstsurname{}%
+}
+\newcommand{\importpubpaper}[4][]{%
+ \ClassError{jmlrbook}{\string\importpubpaper\space
+not permitted outside `jmlrpapers' environment}{}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\importpaper}
+% Like \cs{importpubpaper} but sets the pages to the page-range for
+% this book.
+% \begin{macrocode}
+\newcommand{\@importpaper}[3][\@importdir\@importfile]{%
+ \bgroup
+ \def\@importdir{#2/}%
+ \def\@importfile{#3}%
+ \@write@jmlr@import{#1}{#2}{#3}%
+ \def\@extra@b@citeb{#1}%
+ \def\@extra@binfo{#1}%
+ \jmlrpages{\protect\@articlepagesref}%
+ \graphicspath{{\@importdir}}%
+ \def\jmlrmaketitlehook{%
+ \refstepcounter{chapter}%
+ \addtomaincontents{toc}%
+ {\protect\contentsline{papertitle}{\@shorttitle}{\thepage}%
+ {page.\thepage}}%
+ \pdfbookmark{\@shorttitle}{chapter.\thechapter}%
+ \def\@jmlr@authors@sep{ \& }%
+ \tocchapterpubauthor{\@jmlrauthors}%
+ {%
+ \@jmlrabbrvproceedings
+ \ifx\@jmlrvolume\@empty
+ \space
+ \else
+ \space\@jmlrvolume:%
+ \fi
+ \protect\articlepagesref{#1}%
+ \ifx\@jmlryear\@empty\else,\fi
+ \space\@jmlryear
+ }%
+ \@write@author{#1}{\@jmlrauthors}%
+ }%
+ \def\jmlrpremaketitlehook{%
+ \cleardoublepage
+ \phantomsection
+ \let\@currentlabelname\@shorttitle
+ }%
+ \def\InputIfFileExists##1##2##3{%
+ \IfFileExists{##1}{%
+ \@org@InputIfFileExists{##1}{##2}{##3}%
+ }%
+ {%
+ \@org@InputIfFileExists{\@importdir##1}{##2}{##3}%
+ }%
+ }%
+ \def\Xprefix{#1}%
+ \import{\@importdir\@importfile}%
+ \def\Xprefix{}%
+ \egroup
+ \gdef\@shortauthor{}%
+ \gdef\@shorttitle{}%
+ \gdef\@firstauthor{}%
+ \gdef\@jmlrauthors{}%
+ \gdef\@firstsurname{}%
+}
+
+\newcommand{\importpaper}[3][]{%
+ \ClassError{jmlrbook}{\string\importpaper\space
+not permitted outside `jmlrpapers' environment}{}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\importarticle}
+% Import a document that hasn't been published.
+% Syntax: \cs{importarticle}\oarg{label}\marg{dir}\marg{file}
+% where \meta{dir} is the directory in which the paper is located and
+% \meta{file} is the name of the file. The optional
+% argument is a label. This is used to prefix the labels and
+% citations in the document so they don't clash with other imported
+% articles. If omitted, \meta{file} is used instead.
+% \begin{macrocode}
+\newcommand{\@importarticle}[3][\@importdir\@importfile]{%
+ \bgroup
+ \def\@importdir{#2/}%
+ \def\@importfile{#3}%
+ \@write@jmlr@import{#1}{#2}{#3}%
+ \def\@extra@b@citeb{#1}%
+ \def\@extra@binfo{#1}%
+ \def\jmlrmaketitlehook{%
+ \addtomaincontents{toc}%
+ {\protect\contentsline{papertitle}{\@shorttitle}{\thepage}%
+ {page.\thepage}}%
+ \refstepcounter{chapter}%
+ \pdfbookmark{\@shorttitle}{chapter.\thechapter}%
+ \def\@jmlr@authors@sep{ \& }%
+ \tocchapterauthor{\@jmlrauthors}%
+ \@write@author{#1}{\@jmlrauthors}%
+ \jmlrpages{}%
+ \jmlrvolume{}%
+ \jmlryear{}%
+ \jmlrsubmitted{}%
+ \jmlrpublished{}%
+ \jmlrproceedings{}{}%
+ }%
+ \def\jmlrpremaketitlehook{%
+ \cleardoublepage
+ \phantomsection
+ \let\@currentlabelname\@shorttitle
+ }%
+ \graphicspath{{\@importdir}}%
+ \def\InputIfFileExists##1##2##3{%
+ \IfFileExists{##1}{%
+ \@org@InputIfFileExists{##1}{##2}{##3}%
+ }%
+ {%
+ \@org@InputIfFileExists{\@importdir##1}{##2}{##3}%
+ }%
+ }%
+ \def\Xprefix{#1}%
+ \import{\@importdir\@importfile}%
+ \def\Xprefix{}%
+ \egroup
+ \gdef\@shortauthor{}%
+ \gdef\@shorttitle{}%
+ \gdef\@firstauthor{}%
+ \gdef\@jmlrauthors{}%
+ \gdef\@firstsurname{}%
+}
+\newcommand{\importarticle}[3][]{%
+ \ClassError{jmlrbook}{\string\importarticle\space
+not permitted outside `jmlrpapers' environment}{}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\addtocpart}
+% Add a part to the TOC without printing anything in the text
+% (but does a \cs{cleardoublepage}).
+% \begin{macrocode}
+\newcommand{\addtocpart}[1]{%
+ \cleardoublepage
+ \refstepcounter{tocpart}%
+ \addtocontents{toc}{\protect\tocpart{#1}}%
+ \pdfbookmark[-1]{#1}{part.\thetocpart}%
+}
+\newcounter{tocpart}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\tocpart}
+% Define the appearance of a part in the TOC.
+% \begin{macrocode}
+\newcommand{\tocpart}[1]{%
+ \addpenalty{-\@highpenalty}%
+ \vskip 1.0ex \@plus\p@
+ \setlength\@tempdima{2.25em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode \large\bfseries
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss \null}\par
+ \penalty\@highpenalty
+ \endgroup
+}
+% \end{macrocode}
+%\end{macro}
+%
+% Set up the layout of the chapter headings
+% \begin{macrocode}
+\setlength{\prechapterskip}{3em}
+\setlength{\postchapterskip}{20pt}
+% \end{macrocode}
+%
+%\begin{macro}{\chapternumberformat}
+% \begin{macrocode}
+\renewcommand{\chapternumberformat}[1]{%
+ \Large\bfseries \@chapapp\space#1\par
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\chaptertitleformat}
+% \begin{macrocode}
+\renewcommand{\chaptertitleformat}[1]{%
+ \Large\bfseries #1}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\chapterformat}
+% \begin{macrocode}
+\renewcommand*{\chapterformat}{%
+ \raggedright
+}
+% \end{macrocode}
+%\end{macro}
+% Set up the format of a part in the book (not a part in an
+% article).
+%\begin{macro}{\preparthook}
+% \begin{macrocode}
+\renewcommand{\preparthook}{\cleardoublepage\null\vfil}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\partnumberformat}
+% \begin{macrocode}
+\renewcommand{\partnumberformat}[1]{%
+ \Huge\bfseries \@partapp\nobreakspace#1\par\nobreak
+ \vskip 20\p@
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\postparthook}
+% \begin{macrocode}
+\def\postparthook{%
+ \thispagestyle{empty}%
+ \vfil\newpage
+ \null
+ \thispagestyle{empty}%
+ \newpage
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@curparthead}
+% The heading of the current part
+% \begin{macrocode}
+\newcommand{\@curparthead}{}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\parttitleformat}
+% \begin{macrocode}
+\renewcommand{\parttitleformat}[1]{#1%
+ \gdef\@curparthead{\@partapp\space \thepart. #1}%
+ \@mkboth{\@curparthead}{\@curparthead}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\firstpageno}
+% Change \cs{firstpageno} to do nothing as the page number will
+% be determined by the book.
+% \begin{macrocode}
+\renewcommand{\firstpageno}[1]{}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\tocchapterauthor}
+% Add the author of the current chapter to the table of contents.
+% \begin{macrocode}
+\newcommand{\tocchapterauthor}[1]{%
+ \addtomaincontents{toc}{\protect\contentsline{chapterauthor}{%
+ #1}{}{}}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\tocchapterpubauthor}
+% Add the author of an imported prepublished paper to the
+% table of contents. The first argument is the author (or list
+% of authors). The second argument is the reference to the
+% published article.
+% \begin{macrocode}
+\newcommand{\tocchapterpubauthor}[2]{%
+ \addtomaincontents{toc}{\protect\contentsline{chapterauthor}{%
+ #1; #2.}{}{}}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+% Set up the formatting in the TOC
+% \begin{macrocode}
+\renewcommand*\@pnumwidth{2em}
+% \end{macrocode}
+%
+%\begin{macro}{\l@part}
+% Format for book parts
+% \begin{macrocode}
+\renewcommand*\l@part[2]{%
+ \ifnum \c@tocdepth >\m@ne
+ \addpenalty{-\@highpenalty}%
+ \vskip 1.0em \@plus\p@
+ \setlength\@tempdima{5em}%
+ \vbox{%
+ \pagerule
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode \large\bfseries
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ \renewcommand*\numberline[1]{\hb@xt@ \@tempdima
+ {\partname\space ##1\hfil }}%
+ #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss }\par
+ \penalty\@highpenalty
+ \endgroup
+ \pagerule
+ }%
+ \fi}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\l@papertitle}
+% \begin{macrocode}
+\newcommand*{\l@papertitle}[2]{%
+ \ifnum \c@tocdepth >\m@ne
+ \addpenalty{-\@highpenalty}%
+ \vskip 1.0em \@plus\p@
+ \setlength\@tempdima{3em}%
+ \begingroup
+ \leavevmode \raggedright\itshape
+ #1\nobreak\hfill \nobreak\hb@xt@\@pnumwidth{\hss
+ \normalfont#2}%
+ \par
+ \penalty\@highpenalty
+ \endgroup
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\l@chapterauthor}
+% \begin{macrocode}
+\newcommand*\l@chapterauthor[2]{%
+ \ifnum \c@tocdepth >\m@ne
+ \addpenalty{-\@highpenalty}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode \raggedright
+ #1%
+ \par
+ \endgroup
+ \fi}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\l@section}
+% \begin{macrocode}
+\renewcommand*\l@section[2]{%
+ \ifnum \c@tocdepth >\m@ne
+ \addpenalty{-\@highpenalty}%
+ \vskip 1.0em \@plus\p@
+ \setlength\@tempdima{3em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode \normalsize\mdseries
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty
+ \endgroup
+ \fi}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\l@subsection}
+% \begin{macrocode}
+\renewcommand*\l@subsection[2]{%
+ \ifnum \c@tocdepth >\m@ne
+ \addpenalty{-\@highpenalty}%
+ \vskip 1.0em \@plus\p@
+ \setlength\@tempdima{3.5em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode \normalsize\mdseries
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty
+ \endgroup
+ \fi}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\chaptermark}
+% \begin{macrocode}
+\renewcommand*{\chaptermark}[1]{%
+ \@mkboth{\@curparthead}{\protect\thechapter. #1}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+% Set up page styles
+%\begin{macro}{\firstpagehead}
+% \begin{macrocode}
+\newcommand{\firstpagehead}{}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\firstpagefoot}
+% \begin{macrocode}
+\newcommand{\firstpagefoot}{\hfill\thepage}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\headfont}
+% Set the header font
+% \begin{macrocode}
+\renewcommand*{\headfont}{\reset@font\small\scshape}%
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\footfont}
+% Set the footer font
+% \begin{macrocode}
+\renewcommand*{\footfont}{\reset@font\small\itshape}%
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\ps@chplain}
+% Page style for first page of a chapter
+% \begin{macrocode}
+\newcommand*{\ps@chplain}{%
+ \let\@mkboth\@gobbletwo
+ \renewcommand*{\@oddhead}{\headfont\firstpagehead}%
+ \renewcommand*{\@evenhead}{}%
+ \renewcommand*{\@oddfoot}{\footfont\firstpagefoot}%
+ \renewcommand*{\@evenfoot}{\footfont\thepage\hfill
+ }%
+}
+\let\ps@plain\ps@chplain
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\ps@article}
+% Page style for the imported articles.
+% \begin{macrocode}
+\newcommand*{\ps@article}{%
+ \let\@mkboth\@gobbletwo
+ \renewcommand*{\@oddhead}{\headfont\hfill\@shorttitle}%
+ \renewcommand*{\@evenhead}{\headfont\@shortauthor\hfill}%
+ \renewcommand*{\@oddfoot}{\footfont\hfill\thepage}
+ \renewcommand*{\@evenfoot}{\footfont\thepage\hfill}
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\ps@jmlrbook}
+% Page style for book
+% \begin{macrocode}
+\newcommand*{\ps@jmlrbook}{%
+ \ps@headings
+ \renewcommand*{\sectionmark}[1]{}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\morefrontmatter}
+% \begin{macrocode}
+\renewcommand*{\morefrontmatter}{\pagestyle{jmlrbook}%
+ \def\chaptermark##1{%
+ \@mkboth{##1\hfill}{\hfill##1}}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\moremainmatter}
+% \begin{macrocode}
+\renewcommand*{\moremainmatter}{\pagestyle{jmlrbook}%
+ \def\chaptermark##1{%
+ \@mkboth{\@curparthead}{\protect\thechapter. ##1}%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\bibsection}
+% Set the bibliography headings in the articles
+% \begin{macrocode}
+\renewcommand*\bibsection{\section*{\refname}}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@bookpart}
+% Define the layout of a book part
+% \begin{macrocode}
+\def\@bookpart[#1]#2{%
+ \ifnum \c@secnumdepth >-2\relax
+ \refstepcounter{part}%
+ \addcontentsline{toc}{\@parttoclabel}{%
+ \protect\numberline{\thepart}#1}%
+ \else
+ \addcontentsline{toc}{\@parttoclabel}{#1}%
+ \fi
+ \markboth{}{}%
+ {\interlinepenalty \@M
+ \normalfont\partformat
+ \ifnum \c@secnumdepth >-2\relax
+ \partnumberformat{\thepart}%
+ \fi
+ \parttitleformat{#2}\par}%
+ \postparthook}
+% \end{macrocode}
+%\end{macro}
+%
+% Set up the book commands:
+% \begin{macrocode}
+\jmlrbookcommands
+% \end{macrocode}
+%\iffalse
+% \begin{macrocode}
+%</jmlrbook.cls>
+% \end{macrocode}
+%\fi
+%\Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/jmlr/jmlr.ins b/Master/texmf-dist/source/latex/jmlr/jmlr.ins
new file mode 100644
index 00000000000..e8d06b7968a
--- /dev/null
+++ b/Master/texmf-dist/source/latex/jmlr/jmlr.ins
@@ -0,0 +1,33 @@
+% jmlr.ins generated using makedtx version 0.94b 2010/6/17 20:52
+\input docstrip
+
+\preamble
+
+ jmlr.dtx
+ Copyright 2010 Nicola Talbot
+
+ This work may be distributed and/or modified under the
+ conditions of the LaTeX Project Public License, either version 1.3
+ of this license of (at your option) any later version.
+ The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+ and version 1.3 or later is part of all distributions of LaTeX
+ version 2005/12/01 or later.
+
+ This work has the LPPL maintenance status `maintained'.
+
+ The Current Maintainer of this work is Nicola Talbot.
+
+ This work consists of the files jmlr.dtx and jmlr.ins and the derived files jmlr.cls, jmlrbook.cls.
+
+\endpreamble
+
+\askforoverwritefalse
+
+\generate{\file{jmlr.cls}{\usepreamble\defaultpreamble
+\usepostamble\defaultpostamble\from{jmlr.dtx}{jmlr.cls,package}}
+\file{jmlrbook.cls}{\usepreamble\defaultpreamble
+\usepostamble\defaultpostamble\from{jmlr.dtx}{jmlrbook.cls,package}}
+}
+
+\endbatchfile