summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/jmlr/CHANGES6
-rw-r--r--Master/texmf-dist/doc/latex/jmlr/INSTALL9
-rw-r--r--Master/texmf-dist/doc/latex/jmlr/README22
-rw-r--r--Master/texmf-dist/doc/latex/jmlr/jmlr.pdfbin600434 -> 615617 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jmlr/sample-books/jmlrbook-sample.pdfbin319028 -> 319039 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jmlr/sample-books/proceedings-sample.pdfbin419207 -> 419217 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlr-sample.pdfbin308981 -> 308987 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlrwcp-sample.pdfbin297479 -> 297750 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlrwcp-sample.tex12
-rw-r--r--Master/texmf-dist/source/latex/jmlr/jmlr.dtx1986
-rw-r--r--Master/texmf-dist/source/latex/jmlr/jmlr.ins10
-rw-r--r--Master/texmf-dist/tex/latex/jmlr/jmlr.cls439
-rw-r--r--Master/texmf-dist/tex/latex/jmlr/jmlrbook.cls6
-rw-r--r--Master/texmf-dist/tex/latex/jmlr/jmlrutils.sty495
14 files changed, 1699 insertions, 1286 deletions
diff --git a/Master/texmf-dist/doc/latex/jmlr/CHANGES b/Master/texmf-dist/doc/latex/jmlr/CHANGES
index 724745bfcc0..27268561aba 100644
--- a/Master/texmf-dist/doc/latex/jmlr/CHANGES
+++ b/Master/texmf-dist/doc/latex/jmlr/CHANGES
@@ -1,3 +1,9 @@
+v1.24:
+
+ * moved non-class related code into new package jmlrutils.sty
+
+ * fixed bug in \includeteximage
+
v1.23:
* added pmlr class option
diff --git a/Master/texmf-dist/doc/latex/jmlr/INSTALL b/Master/texmf-dist/doc/latex/jmlr/INSTALL
index 805c257c5b3..0d207a9b8a0 100644
--- a/Master/texmf-dist/doc/latex/jmlr/INSTALL
+++ b/Master/texmf-dist/doc/latex/jmlr/INSTALL
@@ -31,10 +31,6 @@ Example (on UNIX like systems):
unzip jmlr.tds.zip -d ~/texmf/
texhash ~/texmf/
-Move the makejmlrbook Perl script from scripts/jmlr/ to somewhere
-on your path. If you are using Windows, you will also need to
-move makejmlrbook.bat to the same location.
-
INSTALLING FROM DTX AND INS
===========================
@@ -59,11 +55,8 @@ TEXMF/tex/latex/jmlr
Move the documentation to TEXMF/doc/latex/jmlr/
-Move jmlr.cls and jmlrbook.cls to TEXMF/tex/latex/jmlr/
+Move jmlrutils.sty, jmlr.cls and jmlrbook.cls to TEXMF/tex/latex/jmlr/
*Remember to refresh TeX's database*
-Move the makejmlrbook Perl script to somewhere on your path. If
-you are using Windows, you will also need to move makejmlrbook.bat
-to the same location.
diff --git a/Master/texmf-dist/doc/latex/jmlr/README b/Master/texmf-dist/doc/latex/jmlr/README
index 2a73bcc5443..92ce503fcfd 100644
--- a/Master/texmf-dist/doc/latex/jmlr/README
+++ b/Master/texmf-dist/doc/latex/jmlr/README
@@ -1,6 +1,6 @@
-LaTeX Class : jmlr bundle v1.23
+LaTeX Class : jmlr bundle v1.24
-Last Modified : 2017-03-09
+Last Modified : 2017-08-01
Author : Nicola L. C. Talbot
@@ -8,20 +8,27 @@ This bundle provides:
* jmlr class
* jmlrbook class
+ * jmlrutils package
-The jmlr class is a LaTeX2e class for articles for the Journal of
-Machine Learning Research (JMLR) or the JMLR Workshop and Conference
+The jmlr class is a LaTeX class for articles for the Journal of
+Machine Learning Research (JMLR) or the Proceedings of Machine
+Learning Research (PMLR) formerly JMLR Workshop and Conference
Proceedings (JMLR W&CP). It is designed as a replacement for both
jmlr2e.sty and jmlrwcp2e.sty.
-The jmlrbook class is a LaTeX2e class that can be used to combine
+The jmlrutils package is automatically loaded by the jmlr class, but
+may be used with other classes. (You may need to additionally load
+graphicx and algorithm2e, which jmlr.cls does automatically.)
+
+The jmlrbook class is a LaTeX class that can be used to combine
articles written using the jmlr class into a book. The jmlrbook
class uses the combine class and the hyperref package to produce
either a colour hyperlinked book for on-line viewing or a greyscale
nonhyperlinked book for printing. Production editors can use the
makejmlrbookgui application
(http://www.dickimaw-books.com/software/makejmlrbookgui/) to
-generate the proceedings.
+generate the proceedings. The makejmlrbook Perl script is deprecated
+and may be removed in future releases.
INSTALLATION
@@ -31,6 +38,7 @@ REQUIREMENTS
jmlr class requirements:
+ jmlrutils
xcolor
amsmath
amssymb
@@ -60,7 +68,7 @@ for the details of that license.
RELATED SOFTWARE:
-http://www.dickimaw-books.com/apps/makejmlrbookgui/
+http://www.dickimaw-books.com/software/makejmlrbookgui/
Author's home page: http://www.dickimaw-books.com/
diff --git a/Master/texmf-dist/doc/latex/jmlr/jmlr.pdf b/Master/texmf-dist/doc/latex/jmlr/jmlr.pdf
index 54d062c23fe..6a75b8d526e 100644
--- a/Master/texmf-dist/doc/latex/jmlr/jmlr.pdf
+++ b/Master/texmf-dist/doc/latex/jmlr/jmlr.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-books/jmlrbook-sample.pdf b/Master/texmf-dist/doc/latex/jmlr/sample-books/jmlrbook-sample.pdf
index 35d6c9ce609..4d2cabbda98 100644
--- a/Master/texmf-dist/doc/latex/jmlr/sample-books/jmlrbook-sample.pdf
+++ b/Master/texmf-dist/doc/latex/jmlr/sample-books/jmlrbook-sample.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-books/proceedings-sample.pdf b/Master/texmf-dist/doc/latex/jmlr/sample-books/proceedings-sample.pdf
index b8ae83aff41..e71265841b9 100644
--- a/Master/texmf-dist/doc/latex/jmlr/sample-books/proceedings-sample.pdf
+++ b/Master/texmf-dist/doc/latex/jmlr/sample-books/proceedings-sample.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlr-sample.pdf b/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlr-sample.pdf
index d1d1a82f665..4b6c39852fb 100644
--- a/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlr-sample.pdf
+++ b/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlr-sample.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlrwcp-sample.pdf b/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlrwcp-sample.pdf
index a7b6567ea37..6115f7cbf25 100644
--- a/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlrwcp-sample.pdf
+++ b/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlrwcp-sample.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlrwcp-sample.tex b/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlrwcp-sample.tex
index e64d2fcaf85..1e19ddd4369 100644
--- a/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlrwcp-sample.tex
+++ b/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlrwcp-sample.tex
@@ -552,13 +552,15 @@ both have \verb|[c]| as the second optional argument.
Enumerated textual algorithms can be displayed using the
\texttt{algorithm} environment. Within this environment, use
-\verb|\caption| to set the caption and you can use an
-\texttt{enumerate} or nested \texttt{enumerate} environments.
+use an \texttt{enumerate} or nested \texttt{enumerate} environments.
For example, see \algorithmref{alg:gauss}. Note that algorithms
float like figures and tables.
\begin{algorithm}[htbp]
-\caption{The Gauss-Seidel Algorithm}\label{alg:gauss}
+\floatconts
+{alg:gauss}% label
+{\caption{The Gauss-Seidel Algorithm}}
+{% contents
\begin{enumerate}
\item For $k=1$ to maximum number of iterations
\begin{enumerate}
@@ -572,8 +574,12 @@ float like figures and tables.
\end{enumerate}
\end{enumerate}
\end{enumerate}
+}
\end{algorithm}
+You can use \verb|\caption| and \verb|\label| without using
+\verb|\floatconts| (as in \algorithmref{alg:moore}).
+
If you'd rather have the same numbering throughout the algorithm
but still want the convenient indentation of nested
\texttt{enumerate} environments, you can use the
diff --git a/Master/texmf-dist/source/latex/jmlr/jmlr.dtx b/Master/texmf-dist/source/latex/jmlr/jmlr.dtx
index 59039a18f1e..57d9136911c 100644
--- a/Master/texmf-dist/source/latex/jmlr/jmlr.dtx
+++ b/Master/texmf-dist/source/latex/jmlr/jmlr.dtx
@@ -1,13 +1,14 @@
%\iffalse
-% jmlr.dtx generated using makedtx version 1.1 (c) Nicola Talbot
+% jmlr.dtx generated using makedtx version 1.2 (c) Nicola Talbot
% Command line args:
+% -doc "jmlr-manual.tex"
+% -src "jmlrutils.sty\Z=>jmlrutils.sty"
% -src "jmlr.cls\Z=>jmlr.cls"
% -src "jmlrbook.cls\Z=>jmlrbook.cls"
-% -section "chapter"
% -author "Nicola Talbot"
-% -doc "jmlr-manual.tex"
+% -section "chapter"
% jmlr
-% Created on 2017/3/9 9:50
+% Created on 2017/8/1 16:57
%\fi
%\iffalse
%<*package>
@@ -51,8 +52,7 @@ Research (PMLR)},
\doxitem{Option}{option}{package options}
-\CheckSum{4965}
-
+\CheckSum{5030}
\newcommand*{\appopt}[1]{\texttt{-{}-#1}}
@@ -70,7 +70,7 @@ Research (PMLR)},
% \author{Nicola L. C. Talbot\\[10pt]
%\url{http://www.dickimaw-books.com/}}
%
-% \date{2017-03-09 (version 1.23)}
+% \date{2017-08-01 (version 1.24)}
% \maketitle
%\tableofcontents
%
@@ -83,10 +83,9 @@ Research (PMLR)},
%\cls{combine} class to collate the articles into a book.
%\sectionref{sec:jmlr} describes how to use the \clsfmt{jmlr} class.
%Note that JMLR W\&CP (JMLR: Workshop and Conference Proceedings)
-%will soon be renamed PMLR (Proceedings of Machine Learning
-%Research). The new \clsopt{pmlr} class option has been added
-%in anticipation of this, but only use it once the official
-%name change has taken place.
+%has been renamed PMLR (Proceedings of Machine Learning
+%Research). Articles for new proceedings should use the \clsopt{pmlr}
+%class option.
%
%The \clsfmt{jmlrbook} class is for combining articles that use the
%\clsfmt{jmlr} class into a
@@ -107,6 +106,13 @@ Research (PMLR)},
%PDF\LaTeX. \sectionref{sec:jmlrbook} describes how to use the
%\clsfmt{jmlrbook} class.
%
+%As from v1.24, some non-class dependent commands and environments
+%have been moved to a new package \sty{jmlrutils} (see
+%\sectionref{sec:jmlrutils}). This package is automatically loaded by
+%\clsfmt{jmlr}, but may be used with other classes. (Note that you
+%will need to explicitly load \sty{algorithm2e} if you want to use
+%the \env{algorithm} environment.)
+%
%\begin{important}
%Note that the \clsfmt{jmlr} (and therefore \clsfmt{jmlrbook}) class automatically loads
%the \sty{hyperref} package, but some packages need to be loaded
@@ -131,23 +137,25 @@ Research (PMLR)},
%bib file for the proceedings (according to the PMLR specifications). It can also
%create a grey nonhyperlinked PDF/X compliant print version of the
%book. The application can be downloaded from
-%\url{http://www.dickimaw-books.com/apps/makejmlrbookgui/} where
+%\url{http://www.dickimaw-books.com/software/makejmlrbookgui/} where
%there is also a
-%\href{http://www.dickimaw-books.com/apps/makejmlrbookgui/manual/troubleshooting.html}{troubleshooting
+%\href{http://www.dickimaw-books.com/software/makejmlrbookgui/manual/troubleshooting.html}{troubleshooting
%section}.
%
%There is also a Perl script called \app{makejmlrbook}, which is
%distributed with the \clsfmt{jmlr} and \clsfmt{jmlrbook} bundle,
-%however it has been superseded by \app{makejmlrbookgui}. Note that
-%PMLR (formerly JMLR W\&CP) has new format guidelines that are
-%followed by new versions of \app{makejmlrbookgui} but not by the
-%Perl script \app{makejmlrbook}, so that script is no longer
-%documented and may be dropped from future versions of this bundle.
+%however it is now deprecated and has been superseded by
+%\app{makejmlrbookgui}. Note that PMLR (formerly JMLR W\&CP) has new
+%format guidelines that are followed by new versions of
+%\app{makejmlrbookgui} but not by the Perl script \app{makejmlrbook},
+%so that script is no longer documented or supported and may be
+%dropped from future versions of this bundle.
%
%\section{Required Packages}
%
%The \clsfmt{jmlr} class is based on the \cls{article} class and loads
-%the following packages: \sty{amsmath}, \sty{amssymb},
+%the following packages: \sty{jmlrutils} (see \sectionref{sec:jmlrutils}),
+%\sty{amsmath}, \sty{amssymb},
%\sty{natbib}, \sty{url}, \sty{graphicx} and \sty{algorithm2e},
%\sty{hyperref}, \sty{nameref}, \sty{xcolor} and \sty{xkeyval}.
%Note that unlike the \sty{jmlr2e} and \sty{jmlrwcp2e} packages,
@@ -386,13 +394,17 @@ Research (PMLR)},
%\begin{verbatim}
%\url{http://theoval.cmp.uea.ac.uk/~nlct/}
%\end{verbatim}
+%This command is provided by the \sty{url} package which is
+%automatically loaded.
%
%\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}.
+%used in the argument of \cs{author}. This command is provided by the
+%supplementary package \sty{jmlrutils}. Other commands are described
+%in \sectionref{sec:jmlrutils}.
%
%\section{Structure}
%
@@ -480,7 +492,42 @@ Research (PMLR)},
%
%See the \ctandoc{natbib} for further details.
%
-%\section{Figures and Tables}
+%\section{\styfmt{jmlrutils} supplementary package}
+%\label{sec:jmlrutils}
+%
+%The \sty{jmlrutils} package is automatically loaded by the
+%\clsfmt{jmlr} class but may be used with other classes.
+%
+%\subsection{Package Options}
+%
+%The following options may be passed to the \styfmt{jmlrutils}
+%package if it is to be used without the \clsfmt{jmlr} class.
+%\begin{description}
+%\item[\pkgopt{maths}] Define the commands \cs{set} and \cs{oldvec}
+%and redefine \cs{vec}. This will also automatically load the
+%\sty{amsmath} package. (Default.)
+%\item[\pkgopt{nomaths}] Don't define \cs{set} and \cs{oldvec}
+%and don't redefine \cs{vec}.
+%\item[\pkgopt{theorems}] Define the theorem commands and
+%environments listed in \sectionref{sec:theorems}. (Default.)
+%\item[\pkgopt{notheorems}] Don't define the theorem commands and
+%environments.
+%\item[\pkgopt{subfloats}] Define the sub-figure and sub-table
+%commands listed in \sectionref{sec:subfloats}. (Default.)
+%\item[\pkgopt{nosubfloats}] Don't define the sub-figure and
+%sub-table commands.
+%\end{description}
+%The non-default options are provided when \styfmt{jmlrutils} is
+%loaded without the \clsfmt{jmlr} class.
+%Don't try passing the non-default options to \styfmt{jmlrutils} if
+%you are using the \clsfmt{jmlr} class as this could interfere with
+%the build process for the proceedings or book.
+%
+%The \styfmt{jmlrutils} package doesn't recognise any of the
+%\clsfmt{jmlr} class options (such as \pkgopt{tablecaption}).
+%
+%\subsection{Figures and Tables}
+%\label{sec:floats}
%
%Floats, such as figures, tables and algorithms, are moving objects
%and are supposed to float to the nearest convenient location.
@@ -507,13 +554,13 @@ Research (PMLR)},
%\caption{A Sample Caption With Some \emph{Emphasized Words}.}
%\end{verbatim}
%
-%The \clsfmt{jmlr} class provides the following command for displaying
+%The \styfmt{jmlrutils} package 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:
+%the contents are centred. For example:
%\begin{verbatim}
%\begin{table}[htbp]
%\floatconts
@@ -527,6 +574,11 @@ Research (PMLR)},
% }
%\end{table}
%\end{verbatim}
+%If the \clsfmt{jmlr} class is used, the table caption (when used
+%with \cs{floatconts}) will obey the \clsopt{tablecaption} class option,
+%otherwise it will be placed above the table contents. Within the
+%\env{figure} environment, \cs{floatconts} will put the caption below
+%the contents. This command may be used within other floats.
%
%The \clsfmt{jmlr} class automatically loads \sty{graphicx} which
%defines:
@@ -534,6 +586,10 @@ Research (PMLR)},
%\cs{includegraphics}\oarg{options}\marg{file name}
%\end{definition}
%where \meta{options} is a comma-separated list of options.
+%If you are using \styfmt{jmlrutils} with another class you need to load
+%\sty{graphicx} in order to use this command. See the documentation
+%for the \sty{graphicx} package for further details of this command
+%and other provided commands.
%
%For example, suppose you have an image called
%\texttt{mypic.png} in a subdirectory called \texttt{images}:
@@ -547,14 +603,15 @@ Research (PMLR)},
%\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.
+%the image when using the \clsfmt{jmlr} class. It's helpful if you
+%can also provide a grayscale version of colour images. This should be
+%labelled as the colour image but with \texttt{-gray} immediately
+%before the extension. (The extension need not be the same as that
+%of the colour 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}
@@ -564,14 +621,19 @@ Research (PMLR)},
%The optional argument is a key=value comma-separated list
%where the keys are a subset of those provided by
%\linebreak\cs{includegraphics}. The main keys are: \texttt{width},
-%\texttt{height}, \texttt{scale} and \texttt{angle}.
+%\texttt{height}, \texttt{scale} and \texttt{angle}. Some
+%of the keys specific to image files (such as the bounding box
+%and type keys) do nothing with \cs{includeteximage}.
%
-%\subsection{Sub-Figures and Sub-Tables}
+%\subsubsection{Sub-Figures and Sub-Tables}
+%\label{sec:subfloats}
%
%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.
+%sub-figures and sub-tables. If you aren't using the \clsfmt{jmlr}
+%class, you can prevent \styfmt{jmlrutils} from defining these
+%commands with the \pkgopt{nosubfloats} package option.
%
%\begin{definition}[\DescribeMacro{\subfigure}]
%\cs{subfigure}\oarg{title}\oarg{valign}\marg{contents}
@@ -611,19 +673,23 @@ Research (PMLR)},
%This is an analogous command for sub-tables. The default value
%for \meta{valign} is \texttt{t}.
%
-%\section{Algorithms}
+%\subsection{Algorithms}
+%The \clsfmt{jmlr} class automatically loads the \sty{algorithm2e}
+%package. If you are using \styfmt{jmlrutils} with another class, you
+%will need to load \sty{algorithm2e} if you want to use the
+%\env{algorithm} and \env{algorithm2e} environments described below.
%
%\begin{definition}[\DescribeEnv{algorithm}]
-%\cs{begin}\{algorithm\}\\
+%\cs{begin}\{algorithm\}\oarg{placement}\\
%\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.
+%\envfmt{algorithm} environment.
+%The optional argument is as for \env{figure} and \env{table}.
%
+%Within the body of the
+%environment you can use the \env{enumerate} environment.
%\begin{definition}[\DescribeEnv{enumerate*}]
%\cs{begin}\{enumerate*\}\\
%\cs{item} \meta{text}\\
@@ -632,9 +698,13 @@ Research (PMLR)},
%\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:
+%\envfmt{enumerate*} environment, provided by the \styfmt{jmlrutils}
+%package. For example:
%\begin{verbatim}
+%\begin{algorithm}
+%\floatconts{alg:path}%label
+%{\caption{Shortest Path}}% caption
+%{% contents
%\begin{enumerate*}
% \item Set the label of vertex $s$ to 0
% \item Set $i=0$
@@ -652,6 +722,7 @@ Research (PMLR)},
% \end{enumerate*}
% \end{enumerate*}
%\end{enumerate*}
+%}
%\end{algorithm}
%\end{verbatim}
%
@@ -668,8 +739,8 @@ Research (PMLR)},
%\begin{algorithm2e}
%\caption{Computing Net Activation}
%\label{alg:net}
-%\dontprintsemicolon
-%\linesnumbered
+%\DontPrintSemicolon
+%\LinesNumbered
%\KwIn{$x_1, \ldots, x_n, w_1, \ldots, w_n$}
%\KwOut{$y$, the net activation}
%$y\leftarrow 0$\;
@@ -681,7 +752,7 @@ Research (PMLR)},
%
%See the \ctandoc{algorithm2e} for more details.
%
-%\section{Description Lists}
+%\subsection{Description Lists}
%
%\begin{definition}[\DescribeEnv{altdescription}]
%\cs{begin}\{altdescription\}\marg{widest label}\\
@@ -699,9 +770,16 @@ Research (PMLR)},
%\end{altdescription}
%\end{verbatim}
%
-%\section{Theorems, Lemmas etc}
+%\subsection{Theorems, Lemmas etc}
+%\label{sec:theorems}
+%
+%The \clsfmt{jmlrbook} class doesn't work well with common theorem
+%packages, so \styfmt{jmlrutils} provides theorem code that won't
+%conflict with \clsfmt{jmlrbook}. If you're using \styfmt{jmlrutils}
+%without the \clsfmt{jmlr} class, you can prevent the definition of
+%these commands with the \pkgopt{notheorems} package option.
%
-%The \clsfmt{jmlr} class provides the following theorem-like
+%The \styfmt{jmlrutils} package 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
@@ -778,11 +856,11 @@ Research (PMLR)},
%\end{note}
%\end{verbatim}
%
-%\section{Cross-Referencing}
+%\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
+%the number explicitly. The \styfmt{jmlrutils} package provides some
%convenience commands to assist referencing. These commands,
%described below, can all take a comma-separated list of labels.
%
@@ -880,22 +958,41 @@ Research (PMLR)},
%\end{definition}
%Used to refer to an example or multiple examples.
%
-%\section{Mathematics}
+%\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.
+%The \clsfmt{jmlr} class loads the \sty{amsmath} package so you can
+%use any of the commands and environments defined in that package.
+%The \styfmt{jmlrutils} package will load \sty{amsmath} if the
+%default \pkgopt{maths} package option is used but won't load
+%\sty{amsmath} if the \pkgopt{nomaths} option is used. 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}
+%\cs{set}\marg{maths}
%\end{definition}
%In addition to the commands provided by \sty{amsmath}, the
-%\clsfmt{jmlr} class also provides the \cs{set} command which can
+%\styfmt{jmlrutils} package 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}
+%This command won't be provided if the \pkgopt{nomaths} option is
+%used.
+%
+%\begin{definition}[\DescribeMacro{\vec}]
+%\cs{vec}\marg{maths}
+%\end{definition}
+%The \cs{vec} command is redefined by \styfmt{jmlrutils} to use
+%\cs{boldsymbol}, which is provided by \sty{amsmath}.
+%(This command won't be redefined if the \pkgopt{nomaths} option is
+%used.) If you require
+%the original \cs{vec}, you can access it with:
+%\begin{definition}[\DescribeMacro{\orgvec}]
+%\cs{orgvec}\marg{maths}
+%\end{definition}
+%This command won't be provided if the \pkgopt{nomaths} option is
+%used.
%
%Unnumbered single-line equations should be displayed using
%\cs{[} and \cs{]}. For example:
@@ -909,6 +1006,10 @@ Research (PMLR)},
%\cos^2\theta + \sin^2\theta \equiv 1
%\end{equation}
%\end{verbatim}
+%The above are provided by the \LaTeX\ kernel but may be adjusted by
+%packages such as \sty{amsmath}. The commands and environments below
+%are provided by \sty{amsmath}.
+%
%Multi-lined numbered equations should be displayed using the
%\env{align} environment. For example:
%\begin{verbatim}
@@ -1009,7 +1110,8 @@ Research (PMLR)},
%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).
+%specified the file extension). This check is performed by code
+%provided by the \clsfmt{jmlr} class not the \styfmt{jmlrutils} package.
%
%\begin{definition}[\DescribeMacro{\ifprint}]
%\cs{ifprint}\marg{true part}\marg{false part}
@@ -1041,8 +1143,10 @@ Research (PMLR)},
%\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:
+%a list of on-line introductions to \LaTeX\ at
%\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=man-latex}
+%or have a look at
+%\href{http://www.dickimaw-books.com/latex/novices}{\LaTeX\ for Complete Novices}.
%
%There are also forums, mailing lists and newsgroups. For example,
%\TeX\ on StackExchange (\url{http://tex.stackexchange.com/}),
@@ -1088,7 +1192,7 @@ Research (PMLR)},
%compile as stand-alone documents (and run Bib\TeX\ where
%necessary). You can use the \app{makejmlrbookgui} application to compile
%the book. See
-%\url{http://www.dickimaw-books.com/apps/makejmlrbookgui/} for details.
+%\url{http://www.dickimaw-books.com/software/makejmlrbookgui/} for details.
%
%\section{\clsfmt{jmlrbook} Class Options}
%\begin{description}
@@ -1626,7 +1730,7 @@ Research (PMLR)},
%The \app{makejmlrbookgui} application provides some diagnostic
%tools, which can help detect some common problems. It's manual also
%has a
-%\href{http://www.dickimaw-books.com/apps/makejmlrbookgui/manual/troubleshooting.html}{troubleshooting
+%\href{http://www.dickimaw-books.com/software/makejmlrbookgui/manual/troubleshooting.html}{troubleshooting
%section}.
%
%\StopEventually{\clearpage\phantomsection
@@ -1638,6 +1742,923 @@ Research (PMLR)},
%\chapter{The Code}
%\iffalse
% \begin{macrocode}
+%<*jmlrutils.sty>
+% \end{macrocode}
+%\fi
+%\section{jmlrutils.sty Code}
+%Non-class dependent code. This package is automatically loaded by
+%\cls{jmlr} but may be used with other classes.
+% \begin{macrocode}
+\ProvidesPackage{jmlrutils}[2017/08/01]
+% \end{macrocode}
+% Package options:
+%\begin{macro}{\ifjmlrutilsmaths}
+%Determine if the maths commands should be provided.
+% \begin{macrocode}
+\newif\ifjmlrutilsmaths
+\jmlrutilsmathstrue
+% \end{macrocode}
+%\end{macro}
+% \begin{macrocode}
+\DeclareOption{maths}{\jmlrutilsmathstrue}
+\DeclareOption{nomaths}{\jmlrutilsmathsfalse}
+% \end{macrocode}
+%
+%\begin{macro}{\ifjmlrutilstheorems}
+%Determine if the theorem environments should be provided.
+% \begin{macrocode}
+\newif\ifjmlrutilstheorems
+\jmlrutilstheoremstrue
+% \end{macrocode}
+%\end{macro}
+% \begin{macrocode}
+\DeclareOption{theorems}{\jmlrutilstheoremstrue}
+\DeclareOption{notheorems}{\jmlrutilstheoremsfalse}
+% \end{macrocode}
+%
+%\begin{macro}{\ifjmlrutilssubfloats}
+%Determine if the sub-floats should be provided.
+% \begin{macrocode}
+\newif\ifjmlrutilssubfloats
+\jmlrutilssubfloatstrue
+% \end{macrocode}
+%\end{macro}
+% \begin{macrocode}
+\DeclareOption{subfloats}{\jmlrutilssubfloatstrue}
+\DeclareOption{nosubfloats}{\jmlrutilssubfloatsfalse}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProcessOptions
+% \end{macrocode}
+% Requires \sty{etoolbox}:
+% \begin{macrocode}
+\RequirePackage{etoolbox}
+% \end{macrocode}
+%If the maths commands are needed, load \sty{amsmath}.
+% \begin{macrocode}
+\ifjmlrutilsmaths
+ \RequirePackage{amsmath}
+\fi
+% \end{macrocode}
+% The conditional \cs{iftablecaptiontop} will already have been
+% defined by the \cls{jmlr} class, so only needs to be defined
+% if not already done.
+%\begin{macro}{\iftablecaptiontop}
+% \begin{macrocode}
+\@ifundefined{iftablecaptiontop}
+{\newif\iftablecaptiontop
+\tablecaptiontoptrue}
+{}
+% \end{macrocode}
+%\end{macro}
+%
+%\subsection{Cross-Referencing}
+% 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.
+%\changes{1.24}{2017-08-01}{changed \cs{DeclareRobustCommand}
+%to \cs{newrobustcmd}}
+% \begin{macrocode}
+\newrobustcmd*{\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}
+%
+%\subsection{Figures, Tables and Algorithms}
+%
+%\begin{macro}{\floatconts}
+% The first argument is the label, the second argument contains the
+% caption (using \cs{caption}) and the third argument contains 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}
+%This will already have been defined if the \clsfmt{jmlr} class was
+%loaded.
+% \begin{macrocode}
+\providecommand{\tableconts}[3]{%
+ #2\label{#1}\vskip\baselineskip
+ {\centering #3\par}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\figureconts}
+% \begin{macrocode}
+\newcommand{\figureconts}[3]{%
+ {\centering #3\par}%
+ \vskip\baselineskip
+ #2\label{#1}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%The following macro and environment assume that \sty{algorithm2e}
+%has been loaded (which is done by the \cls{jmlr} class). If the
+%\styfmt{jmlrutils} package is loaded without the \cls{jmlr} class,
+%the \sty{algorithm2e} package will have to be explicitly loaded.
+%\begin{macro}{\algocfconts}
+%\changes{1.09}{2010/12/01}{new}
+%Command used by \cs{floatconts} to display the caption contents.
+% \begin{macrocode}
+\newcommand{\algocfconts}[3]{%
+ \@algocf@pre@ruled
+ #2\label{#1}\kern2pt\hrule height.8pt depth0pt\kern2pt%
+ #3\@algocf@pre@ruled
+}
+% \end{macrocode}
+%\end{macro}
+%
+% The \env{algorithm} environment should float like a figure or table.
+% It should use the same counter as the \env{algorithm2e} environment.
+%\changes{1.09}{2010/12/01}{caption set up so that it doesn't use a
+%box}
+% \begin{macrocode}
+\newenvironment{algorithm}[1][htbp]%
+{%
+ \ifundef{\algocf}%
+ {`algorithm2e' package is required if you want to
+ use the algorithm environment}%
+ {}%
+ \begin{algocf}[#1]%
+ \renewcommand\@makecaption[2]{%
+ \hskip\AlCapHSkip
+ \parbox[t]{\hsize}{\algocf@captiontext{##1}{##2}}%
+ }%
+}%
+{%
+ \end{algocf}%
+}
+% \end{macrocode}
+%
+%\begin{macro}{\@jmlr@ifgraphicxloaded}
+% \begin{macrocode}
+\AtBeginDocument{%
+ \@ifpackageloaded{graphicx}%
+ {\let\@jmlr@ifgraphicxloaded\@firstoftwo}%
+ {\let\@jmlr@ifgraphicxloaded\@secondoftwo}%
+}
+% \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][]{%
+ \@jmlr@ifgraphicxloaded
+ {%
+ \def\Gin@req@sizes{%
+ \Gin@req@height\Gin@nat@height
+ \Gin@req@width\Gin@nat@width}%
+ \begingroup
+ \let\input@path\Ginput@path
+ \IfFileExists{#2}%
+ {%
+ \toks@{\input{#2}}%
+ \ifstrempty{#1}
+ {}%
+ {%
+ \@tempswatrue
+ \setkeys{Gin}{#1}%
+ \Gin@esetsize
+ }%
+ \the\toks@
+ }%
+ {\@warning{File `#2' not found}}%
+ \endgroup
+ }%
+ {\PackageError{jmlrutils}{`graphicx' package is required
+ if you want to use \string\includeteximage}{}}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%Sub floats.
+% \begin{macrocode}
+\ifjmlrutilssubfloats
+% \end{macrocode}
+% 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}{\@subfloatcapbox}
+% Box to store subfloat caption.
+% \begin{macrocode}
+ \newsavebox\@subfloatcapbox
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@subfloatcontsbox}
+% Box to store subfloat contents.
+% \begin{macrocode}
+ \newsavebox\@subfloatcontsbox
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\subfigure}
+% \begin{macrocode}
+ \newcommand*{\subfigure}[1][]{%
+ \bgroup
+ \def\@subfigcap{#1}%
+ \@subfigure
+ }
+% \end{macrocode}
+%\changes{1.09}{2010/12/01}{Added check to determine whether the
+%subfigure caption is wider than the subfigure}
+% \begin{macrocode}
+ \newcommand*{\@subfigure}[2][b]{%
+ \advance\c@figure by 1\relax
+ \refstepcounter{subfigure}%
+ \sbox\@subfloatcapbox{\subfigurelabel{\thesubfigure}%
+ \ifx\@subfigcap\@empty
+ \else
+ \space\@subfigcap
+ \fi}%
+ \sbox\@subfloatcontsbox{#2}%
+ \settowidth{\@tempdima}{\usebox\@subfloatcontsbox}%
+ \settowidth{\@tempdimb}{\usebox\@subfloatcapbox}%
+ \ifdim\@tempdimb>\@tempdima
+ \settowidth\@tempdimb{\subfigurelabel{\thesubfigure}\space}%
+ \addtolength{\@tempdima}{-\@tempdimb}%
+ \sbox\@subfloatcapbox{\subfigurelabel{\thesubfigure}\space
+ \parbox[t]{\@tempdima}{\@subfigcap}}%
+ \fi
+ \begin{tabular}[#1]{@{}c@{}}%
+ \usebox\@subfloatcontsbox\\\usebox\@subfloatcapbox
+ \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
+ }
+% \end{macrocode}
+%\changes{1.09}{2010/12/01}{Added check to determine whether the
+%subtable caption is wider than the subtable}
+% \begin{macrocode}
+ \newcommand*{\@subtable}[2][t]{%
+ \refstepcounter{subtable}%
+ \sbox\@subfloatcapbox{\subtablelabel{\thesubtable}%
+ \ifx\@subtabcap\@empty
+ \else
+ \space\@subtabcap
+ \fi}%
+ \sbox\@subfloatcontsbox{#2}%
+ \settowidth{\@tempdima}{\usebox\@subfloatcontsbox}%
+ \settowidth{\@tempdimb}{\usebox\@subfloatcapbox}%
+ \ifdim\@tempdimb>\@tempdima
+ \settowidth\@tempdimb{\subtablelabel{\thesubtable}\space}%
+ \addtolength{\@tempdima}{-\@tempdimb}%
+ \sbox\@subfloatcapbox{\subtablelabel{\thesubtable}\space
+ \parbox[t]{\@tempdima}{\@subtabcap}}%
+ \fi
+ \begin{tabular}[#1]{@{}c@{}}%
+ \usebox\@subfloatcapbox\\\usebox\@subfloatcontsbox
+ \end{tabular}
+ }
+% \end{macrocode}
+%\end{macro}
+%End of sub-floats.
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+%\subsection{General Markup}
+%Provide maths command if required.
+% \begin{macrocode}
+\ifjmlrutilsmaths
+% \end{macrocode}
+%\begin{macro}{\set}
+% \begin{macrocode}
+ \newcommand*{\set}[1]{\ensuremath{\mathcal{#1}}}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\orgvec}
+%\changes{1.21}{2015-02-24}{new}
+%Keep a copy of original \cs{vec} in case it's wanted.
+% \begin{macrocode}
+ \let\orgvec\vec
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\vec}
+% Redefine \cs{vec} to produce a bold symbol. The \sty{amsmath}
+%package is required for this.
+% \begin{macrocode}
+ \renewcommand*{\vec}[1]{\boldsymbol{#1}}
+% \end{macrocode}
+%\end{macro}
+%End of maths commands.
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+%\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}
+%
+%\subsection{Proofs and Theorems}
+% \begin{macrocode}
+\ifjmlrutilstheorems
+% \end{macrocode}
+% This code is taken from jmlr2e.sty
+%\begin{macro}{\jmlrBlackBox}
+% End of proof marker.
+%\changes{1.24}{2017-08-01}{new}
+%This command was formerly called \cs{BlackBox} but has been renamed
+%in case of a clash with symbol packages.
+% \begin{macrocode}
+ \newcommand{\jmlrBlackBox}{\rule{1.5ex}{1.5ex}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\BlackBox}
+% Backward compatibility in case it was used explicitly.
+% \begin{macrocode}
+ \providecommand{\BlackBox}{\jmlrBlackBox}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\jmlrQED}
+%\changes{1.21}{2015-02-24}{new}
+%\changes{1.24}{2017-08-01}{changed to use \cs{par}}
+% \begin{macrocode}
+ \newcommand{\jmlrQED}{\hfill\jmlrBlackBox\par\bigskip}
+% \end{macrocode}
+%\end{macro}
+%\begin{environment}{proof}
+% Proof environment
+% \begin{macrocode}
+ \newenvironment{proof}%
+ {%
+ \par\noindent{\bfseries\upshape Proof\ }%
+ }%
+ {\jmlrQED}
+% \end{macrocode}
+%\end{environment}
+%
+% Since \sty{theorem}, \sty{ntheorem} and \sty{amsthm} all cause
+% problems with the \cls{jmlr} and \cls{jmlrbook} classes,
+% this package provides a simple alternative.
+%
+%\begin{macro}{\theorembodyfont}
+%\changes{1.18}{2013-10-17}{new}
+%\begin{definition}
+%\cs{theorembodyfont}\marg{font declarations}
+%\end{definition}
+% \begin{macrocode}
+ \newcommand*{\theorembodyfont}[1]{%
+ \renewcommand*{\@theorembodyfont}{#1}%
+ }
+ \newcommand*{\@theorembodyfont}{\normalfont\itshape}%
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\theoremheaderfont}
+%\changes{1.18}{2013-10-17}{new}
+%\begin{definition}
+%\cs{theoremheaderfont}\marg{font declarations}
+%\end{definition}
+% \begin{macrocode}
+ \newcommand*{\theoremheaderfont}[1]{%
+ \renewcommand*{\@theoremheaderfont}{#1}%
+ }
+ \newcommand*{\@theoremheaderfont}{\normalfont\bfseries }%
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\theoremsep}
+%\changes{1.18}{2013-10-17}{new}
+%\begin{definition}
+%\cs{theoremsep}\marg{separation code}
+%\end{definition}
+% \begin{macrocode}
+ \newcommand*{\theoremsep}[1]{%
+ \renewcommand*{\@theoremsep}{#1}%
+ }
+ \newcommand*{\@theoremsep}{}%
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\theorempostheader}
+%\changes{1.18}{2013-10-17}{new}
+%\begin{definition}
+%\cs{theorempostheader}\marg{text}
+%\end{definition}
+% \begin{macrocode}
+ \newcommand*{\theorempostheader}[1]{%
+ \renewcommand*{\@theorempostheader}{#1}%
+ }
+ \newcommand*{\@theorempostheader}{}%
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\newtheorem}
+%\changes{1.18}{2013-10-17}{new}
+% \begin{macrocode}
+ \let\jmlr@org@newtheorem\newtheorem
+ \renewcommand*{\newtheorem}{\@ifstar\jmlr@snewtheorem\jmlr@newtheorem}
+% \end{macrocode}
+% Define starred version:
+%\begin{definition}
+%\cs{newtheorem*}\marg{env-name}\marg{title tag}
+%\end{definition}
+% \begin{macrocode}
+ \newcommand*{\jmlr@snewtheorem}[2]{%
+ \cslet{jmlr@thm@#1@body@font}{\@theorembodyfont}%
+ \cslet{jmlr@thm@#1@header@font}{\@theoremheaderfont}%
+ \cslet{jmlr@thm@#1@sep}{\@theoremsep}%
+ \cslet{jmlr@thm@#1@postheader}{\@theorempostheader}%
+ \newenvironment{#1}%
+ {%
+ \trivlist
+ \item
+ [%
+ \hskip\labelsep{\csuse{jmlr@thm@#1@header@font}#2%
+ \csuse{jmlr@thm@#1@postheader}%
+ }%
+ ]%
+ \mbox{}\csuse{jmlr@thm@#1@sep}%
+ \csuse{jmlr@thm@#1@body@font}%
+ }%
+ {%
+ \endtrivlist
+ }%
+ }
+% \end{macrocode}
+%\end{macro}
+% Unstarred version needs adjusting to take the style into account:
+%\begin{macro}{\@othm}
+%\changes{1.18}{2013-10-17}{new}
+% \begin{macrocode}
+ \newcommand{\jmlr@newtheorem}[1]{%
+ \cslet{jmlr@thm@#1@body@font}{\@theorembodyfont}%
+ \cslet{jmlr@thm@#1@header@font}{\@theoremheaderfont}%
+ \cslet{jmlr@thm@#1@sep}{\@theoremsep}%
+ \cslet{jmlr@thm@#1@postheader}{\@theorempostheader}%
+ \jmlr@org@newtheorem{#1}%
+ }
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@xthm}
+%\changes{1.18}{2013-10-17}{new}
+% \begin{macrocode}
+ \renewcommand*{\@xthm}[2]{%
+ \def\@jmlr@currentthm{#1}%
+ \@begintheorem{#2}{\csname the#1\endcsname}%
+ \ignorespaces
+ }
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@ythm}
+%\changes{1.18}{2013-10-17}{new}
+% \begin{macrocode}
+ \def\@ythm#1#2[#3]{%
+ \def\@jmlr@currentthm{#1}%
+ \@opargbegintheorem{#2}{\csname the#1\endcsname}{#3}%
+ \ignorespaces
+ }
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@begintheorem}
+%\changes{1.18}{2013-10-17}{new}
+% \begin{macrocode}
+ \renewcommand*{\@begintheorem}[2]{%
+ \ifdef{\@jmlr@currentthm}%
+ {%
+ \letcs{\jmlr@this@theoremheader}{jmlr@thm@\@jmlr@currentthm @header@font}%
+ \letcs{\jmlr@this@theorembody}{jmlr@thm@\@jmlr@currentthm @body@font}%
+ \letcs{\jmlr@this@theoremsep}{jmlr@thm@\@jmlr@currentthm @sep}%
+ \letcs{\jmlr@this@theorempostheader}%
+ {jmlr@thm@\@jmlr@currentthm @postheader}%
+ }%
+ {%
+ \let\jmlr@this@theorembody\@theorembodyfont
+ \let\jmlr@this@theoremheader\@theoremheaderfont
+ \let\jmlr@this@theoremsep\@theoremsep
+ \let\jmlr@this@theorempostheader\@theorempostheader
+ }%
+ \trivlist
+ \item
+ [%
+ \hskip\labelsep{\jmlr@this@theoremheader #1\ #2%
+ \jmlr@this@theorempostheader}%
+ ]%
+ \mbox{}\jmlr@this@theoremsep
+ \jmlr@this@theorembody
+ }
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@opargbegintheorem}
+%\changes{1.18}{2013-10-17}{new}
+% \begin{macrocode}
+ \renewcommand*{\@opargbegintheorem}[3]{%
+ \ifdef{\@jmlr@currentthm}%
+ {%
+ \letcs{\jmlr@this@theoremheader}{jmlr@thm@\@jmlr@currentthm @header@font}%
+ \letcs{\jmlr@this@theorembody}{jmlr@thm@\@jmlr@currentthm @body@font}%
+ \letcs{\jmlr@this@theoremsep}{jmlr@thm@\@jmlr@currentthm @sep}%
+ \letcs{\jmlr@this@theorempostheader}%
+ {jmlr@thm@\@jmlr@currentthm @postheader}%
+ }%
+ {%
+ \let\jmlr@this@theorembody\@theorembodyfont
+ \let\jmlr@this@theoremheader\@theoremheaderfont
+ \let\jmlr@this@theoremsep\@theoremsep
+ \let\jmlr@this@theorempostheader\@theorempostheader
+ }%
+ \trivlist
+ \item[\hskip\labelsep{\jmlr@this@theoremheader #1\ #2\ (#3)%
+ \jmlr@this@theorempostheader}]%
+ \mbox{}\jmlr@this@theoremsep
+ \jmlr@this@theorembody
+ }
+% \end{macrocode}
+%\end{macro}
+%
+%\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}
+% End of theorem definitions.
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%\iffalse
+% \begin{macrocode}
+%</jmlrutils.sty>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
%<*jmlr.cls>
% \end{macrocode}
%\fi
@@ -1649,7 +2670,7 @@ Research (PMLR)},
% Declare class and required TeX format:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{jmlr}[2017/03/09 v1.23 (NLCT) Journal of Machine Learning Research]
+\ProvidesClass{jmlr}[2017/08/01 v1.24 (NLCT) Journal of Machine Learning Research]
% \end{macrocode}
%\changes{1.10}{2011-01-05}{hyperref now loaded by jmlr instead of
%jmlrbook}
@@ -1706,15 +2727,45 @@ Research (PMLR)},
\DeclareOptionX{final}{\setlength\overfullrule{0pt}}
% \end{macrocode}
%\end{option}
+% Can't load \sty{jmlrutils} here but need the \cs{iftablecaptiontop}
+% conditional for the class options.
%\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
+% \end{macrocode}
+%\end{macro}
+% Provide table contents command that uses this conditional.
+% (The \sty{jmlrutils} package doesn't use it.)
+%\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}
+% Determine if the table captions should go at the top.
+%\begin{option}{tablecaptiontop}
+% \begin{macrocode}
\DeclareOptionX{tablecaptiontop}{\tablecaptiontoptrue}
+% \end{macrocode}
+%\end{option}
+%\begin{option}{tablecaptiontop}
+% \begin{macrocode}
\DeclareOptionX{tablecaptionbottom}{\tablecaptiontopfalse}
-
+% \end{macrocode}
+%\end{option}
+%\begin{option}{tablecaption}
+%Key=value interface.
+% \begin{macrocode}
\define@choicekey{jmlr.cls}{tablecaption}[\val\nr]{top,bottom}{%
\ifcase\nr\relax
\tablecaptiontoptrue
@@ -1723,13 +2774,18 @@ Research (PMLR)},
\fi
}
% \end{macrocode}
-%\end{macro}
+%\end{option}
%\begin{macro}{\ifjmlrhtml}
% Determine if we are using \app{TeX4ht}. (Deprecated.)
+%This option should no longer be used. The PMLR have changed
+%the submission guidelines and the production editor should
+%no longer supply HTML files.
% \begin{macrocode}
\newif\ifjmlrhtml
\jmlrhtmlfalse
-\DeclareOptionX{html}{\jmlrhtmltrue}
+\DeclareOptionX{html}{%
+ \ClassWarning{jmlr}{html option is now deprecated}%
+ \jmlrhtmltrue}
\DeclareOptionX{nohtml}{\jmlrhtmlfalse}
% \end{macrocode}
%\end{macro}
@@ -1789,7 +2845,7 @@ Research (PMLR)},
}
% \end{macrocode}
%\end{macro}
-% This isn't an article for a workshop:
+% This is a journal (non JMLR W\&CP\slash PMLR) article:
% \begin{macrocode}
\DeclareOptionX{nowcp}{\jmlrnowcp}
% \end{macrocode}
@@ -1880,7 +2936,8 @@ Research (PMLR)},
\RequirePackage{natbib}
\RequirePackage{graphicx}
\RequirePackage{url}
-\RequirePackage[x11names]{xcolor}
+\PassOptionsToPackage{x11names}{xcolor}
+\RequirePackage{xcolor}
% \end{macrocode}
% Allow old command names in the event that the proceedings contains
% a mixture of papers that use old and new versions. (This means
@@ -1891,7 +2948,17 @@ Research (PMLR)},
%\end{verbatim}
% I don't know why, but it's outside the control of this class.
% \begin{macrocode}
-\RequirePackage[algo2e,ruled]{algorithm2e}
+\PassOptionsToPackage{algo2e,ruled}{algorithm2e}
+\RequirePackage{algorithm2e}
+% \end{macrocode}
+% Set the algorithm margin to zero.
+% \begin{macrocode}
+\setlength\algomargin{0pt}
+% \end{macrocode}
+%Load \sty{jmlrutils} before \sty{hyperref}.
+%\changes{1.24}{??}{added \styfmt{jmlrutils}}
+% \begin{macrocode}
+\RequirePackage{jmlrutils}
% \end{macrocode}
% Do all the stuff that needs to be done before \sty{hyperref} is
% loaded:
@@ -2864,245 +3931,19 @@ Keywords:} \ignorespaces}%
\def\belowstrut#1{\rule[-#1]{0in}{#1}\ignorespaces}
% \end{macrocode}
%\begin{macro}{\acks}
-% Acknowledgments
+% Acknowledgements
% \begin{macrocode}
-\long\def\acks#1{\section*{Acknowledgments}#1}
+\newcommand{\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}
-\DeclareRobustCommand*{\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}{\algocfconts}
-%\changes{1.09}{2010/12/01}{new}
-% \begin{macrocode}
-\newcommand{\algocfconts}[3]{%
- \@algocf@pre@ruled
- #2\label{#1}\kern2pt\hrule height.8pt depth0pt\kern2pt%
- #3\@algocf@pre@ruled
-}
+\newcommand{\researchnote}[1]{\noindent {\LARGE\itshape Research Note} #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}
+%Other macros now moved to \sty{jmlrutils}.
%
%\begin{macro}{\ifprint}
% Provide command to check if this is the printed greyscale
@@ -3157,29 +3998,6 @@ Keywords:} \ignorespaces}%
\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.
-%\changes{1.09}{2010/12/01}{caption set up so that it doesn't use a
-%box}
-% \begin{macrocode}
-\newenvironment{algorithm}[1][htbp]%
-{%
- \begin{algocf}[#1]%
- \renewcommand\@makecaption[2]{%
- \hskip\AlCapHSkip
- \parbox[t]{\hsize}{\algocf@captiontext{##1}{##2}}%
- }%
-}%
-{%
- \end{algocf}%
-}
-% \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}
@@ -3212,530 +4030,6 @@ Keywords:} \ignorespaces}%
% \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{macro}{\jmlrQED}
-%\changes{1.21}{2015-02-24}{new}
-% \begin{macrocode}
-\newcommand*{\jmlrQED}{\hfill\BlackBox\\[2mm]}
-% \end{macrocode}
-%\end{macro}
-%\begin{environment}{proof}
-% Proof environment
-% \begin{macrocode}
-\newenvironment{proof}%
-{%
- \par\noindent{\bfseries\upshape Proof\ }%
-}%
-{\jmlrQED}
-% \end{macrocode}
-%\end{environment}
-%
-% Since \sty{theorem}, \sty{ntheorem} and \sty{amsthm} all cause
-% problems with this class, provide a simple alternative.
-%
-%\begin{macro}{\theorembodyfont}
-%\changes{1.18}{2013-10-17}{new}
-%\begin{definition}
-%\cs{theorembodyfont}\marg{font declarations}
-%\end{definition}
-% \begin{macrocode}
-\newcommand*{\theorembodyfont}[1]{%
- \renewcommand*{\@theorembodyfont}{#1}%
-}
-\newcommand*{\@theorembodyfont}{\normalfont\itshape}%
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\theoremheaderfont}
-%\changes{1.18}{2013-10-17}{new}
-%\begin{definition}
-%\cs{theoremheaderfont}\marg{font declarations}
-%\end{definition}
-% \begin{macrocode}
-\newcommand*{\theoremheaderfont}[1]{%
- \renewcommand*{\@theoremheaderfont}{#1}%
-}
-\newcommand*{\@theoremheaderfont}{\normalfont\bfseries }%
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\theoremsep}
-%\changes{1.18}{2013-10-17}{new}
-%\begin{definition}
-%\cs{theoremsep}\marg{separation code}
-%\end{definition}
-% \begin{macrocode}
-\newcommand*{\theoremsep}[1]{%
- \renewcommand*{\@theoremsep}{#1}%
-}
-\newcommand*{\@theoremsep}{}%
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\theorempostheader}
-%\changes{1.18}{2013-10-17}{new}
-%\begin{definition}
-%\cs{theorempostheader}\marg{text}
-%\end{definition}
-% \begin{macrocode}
-\newcommand*{\theorempostheader}[1]{%
- \renewcommand*{\@theorempostheader}{#1}%
-}
-\newcommand*{\@theorempostheader}{}%
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\newtheorem}
-%\changes{1.18}{2013-10-17}{new}
-% \begin{macrocode}
-\let\jmlr@org@newtheorem\newtheorem
-\renewcommand*{\newtheorem}{\@ifstar\jmlr@snewtheorem\jmlr@newtheorem}
-% \end{macrocode}
-% Define starred version:
-%\begin{definition}
-%\cs{newtheorem*}\marg{env-name}\marg{title tag}
-%\end{definition}
-% \begin{macrocode}
-\newcommand*{\jmlr@snewtheorem}[2]{%
- \cslet{jmlr@thm@#1@body@font}{\@theorembodyfont}%
- \cslet{jmlr@thm@#1@header@font}{\@theoremheaderfont}%
- \cslet{jmlr@thm@#1@sep}{\@theoremsep}%
- \cslet{jmlr@thm@#1@postheader}{\@theorempostheader}%
- \newenvironment{#1}%
- {%
- \trivlist
- \item
- [%
- \hskip\labelsep{\csuse{jmlr@thm@#1@header@font}#2%
- \csuse{jmlr@thm@#1@postheader}%
- }%
- ]%
- \mbox{}\csuse{jmlr@thm@#1@sep}%
- \csuse{jmlr@thm@#1@body@font}%
- }%
- {%
- \endtrivlist
- }%
-}
-% \end{macrocode}
-%\end{macro}
-% Unstarred version needs adjusting to take the style into account:
-%\begin{macro}{\@othm}
-%\changes{1.18}{2013-10-17}{new}
-% \begin{macrocode}
-\newcommand{\jmlr@newtheorem}[1]{%
- \cslet{jmlr@thm@#1@body@font}{\@theorembodyfont}%
- \cslet{jmlr@thm@#1@header@font}{\@theoremheaderfont}%
- \cslet{jmlr@thm@#1@sep}{\@theoremsep}%
- \cslet{jmlr@thm@#1@postheader}{\@theorempostheader}%
- \jmlr@org@newtheorem{#1}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@xthm}
-%\changes{1.18}{2013-10-17}{new}
-% \begin{macrocode}
-\renewcommand*{\@xthm}[2]{%
- \def\@jmlr@currentthm{#1}%
- \@begintheorem{#2}{\csname the#1\endcsname}%
- \ignorespaces
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ythm}
-%\changes{1.18}{2013-10-17}{new}
-% \begin{macrocode}
-\def\@ythm#1#2[#3]{%
- \def\@jmlr@currentthm{#1}%
- \@opargbegintheorem{#2}{\csname the#1\endcsname}{#3}%
- \ignorespaces
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@begintheorem}
-%\changes{1.18}{2013-10-17}{new}
-% \begin{macrocode}
-\renewcommand*{\@begintheorem}[2]{%
- \ifdef{\@jmlr@currentthm}%
- {%
- \letcs{\jmlr@this@theoremheader}{jmlr@thm@\@jmlr@currentthm @header@font}%
- \letcs{\jmlr@this@theorembody}{jmlr@thm@\@jmlr@currentthm @body@font}%
- \letcs{\jmlr@this@theoremsep}{jmlr@thm@\@jmlr@currentthm @sep}%
- \letcs{\jmlr@this@theorempostheader}%
- {jmlr@thm@\@jmlr@currentthm @postheader}%
- }%
- {%
- \let\jmlr@this@theorembody\@theorembodyfont
- \let\jmlr@this@theoremheader\@theoremheaderfont
- \let\jmlr@this@theoremsep\@theoremsep
- \let\jmlr@this@theorempostheader\@theorempostheader
- }%
- \trivlist
- \item
- [%
- \hskip\labelsep{\jmlr@this@theoremheader #1\ #2%
- \jmlr@this@theorempostheader}%
- ]%
- \mbox{}\jmlr@this@theoremsep
- \jmlr@this@theorembody
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@opargbegintheorem}
-%\changes{1.18}{2013-10-17}{new}
-% \begin{macrocode}
-\renewcommand*{\@opargbegintheorem}[3]{%
- \ifdef{\@jmlr@currentthm}%
- {%
- \letcs{\jmlr@this@theoremheader}{jmlr@thm@\@jmlr@currentthm @header@font}%
- \letcs{\jmlr@this@theorembody}{jmlr@thm@\@jmlr@currentthm @body@font}%
- \letcs{\jmlr@this@theoremsep}{jmlr@thm@\@jmlr@currentthm @sep}%
- \letcs{\jmlr@this@theorempostheader}%
- {jmlr@thm@\@jmlr@currentthm @postheader}%
- }%
- {%
- \let\jmlr@this@theorembody\@theorembodyfont
- \let\jmlr@this@theoremheader\@theoremheaderfont
- \let\jmlr@this@theoremsep\@theoremsep
- \let\jmlr@this@theorempostheader\@theorempostheader
- }%
- \trivlist
- \item[\hskip\labelsep{\jmlr@this@theoremheader #1\ #2\ (#3)%
- \jmlr@this@theorempostheader}]%
- \mbox{}\jmlr@this@theoremsep
- \jmlr@this@theorembody
-}
-% \end{macrocode}
-%\end{macro}
-%
-%\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}{\orgvec}
-%\changes{1.21}{2015-02-24}{new}
-%Keep a copy of original \cs{vec} in case it's wanted.
-% \begin{macrocode}
-\let\orgvec\vec
-% \end{macrocode}
-%\end{macro}
-%\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}{\@subfloatcapbox}
-% Box to store subfloat caption.
-% \begin{macrocode}
-\newsavebox\@subfloatcapbox
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@subfloatcontsbox}
-% Box to store subfloat contents.
-% \begin{macrocode}
-\newsavebox\@subfloatcontsbox
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\subfigure}
-% \begin{macrocode}
-\newcommand*{\subfigure}[1][]{%
- \bgroup
- \def\@subfigcap{#1}%
- \@subfigure
-}
-% \end{macrocode}
-%\changes{1.09}{2010/12/01}{Added check to determine whether the
-%subfigure caption is wider than the subfigure}
-% \begin{macrocode}
-\newcommand*{\@subfigure}[2][b]{%
- \advance\c@figure by 1\relax
- \refstepcounter{subfigure}%
- \sbox\@subfloatcapbox{\subfigurelabel{\thesubfigure}%
- \ifx\@subfigcap\@empty
- \else
- \space\@subfigcap
- \fi}%
- \sbox\@subfloatcontsbox{#2}%
- \settowidth{\@tempdima}{\usebox\@subfloatcontsbox}%
- \settowidth{\@tempdimb}{\usebox\@subfloatcapbox}%
- \ifdim\@tempdimb>\@tempdima
- \settowidth\@tempdimb{\subfigurelabel{\thesubfigure}\space}%
- \addtolength{\@tempdima}{-\@tempdimb}%
- \sbox\@subfloatcapbox{\subfigurelabel{\thesubfigure}\space
- \parbox[t]{\@tempdima}{\@subfigcap}}%
- \fi
- \begin{tabular}[#1]{@{}c@{}}%
- \usebox\@subfloatcontsbox\\\usebox\@subfloatcapbox
- \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
-}
-% \end{macrocode}
-%\changes{1.09}{2010/12/01}{Added check to determine whether the
-%subtable caption is wider than the subtable}
-% \begin{macrocode}
-\newcommand*{\@subtable}[2][t]{%
- \refstepcounter{subtable}%
- \sbox\@subfloatcapbox{\subtablelabel{\thesubtable}%
- \ifx\@subtabcap\@empty
- \else
- \space\@subtabcap
- \fi}%
- \sbox\@subfloatcontsbox{#2}%
- \settowidth{\@tempdima}{\usebox\@subfloatcontsbox}%
- \settowidth{\@tempdimb}{\usebox\@subfloatcapbox}%
- \ifdim\@tempdimb>\@tempdima
- \settowidth\@tempdimb{\subtablelabel{\thesubtable}\space}%
- \addtolength{\@tempdima}{-\@tempdimb}%
- \sbox\@subfloatcapbox{\subtablelabel{\thesubtable}\space
- \parbox[t]{\@tempdima}{\@subtabcap}}%
- \fi
- \begin{tabular}[#1]{@{}c@{}}%
- \usebox\@subfloatcapbox\\\usebox\@subfloatcontsbox
- \end{tabular}
-}
-% \end{macrocode}
-%\end{macro}
-%
%\subsection{Compatibility with combine.cls}
%
% Define chapters to make this class play nicely with \cls{combine}.
@@ -4384,7 +4678,7 @@ Keywords:} \ignorespaces}%
% \end{macrocode}
% Declare class:
% \begin{macrocode}
-\ProvidesClass{jmlrbook}[2017/03/09 v1.23 (NLCT) JMLR Book Style]
+\ProvidesClass{jmlrbook}[2017/08/01 v1.24 (NLCT) JMLR Book Style]
% \end{macrocode}
% Need \sty{xkeyval} package to have key=value class options
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/jmlr/jmlr.ins b/Master/texmf-dist/source/latex/jmlr/jmlr.ins
index 4af6c73991a..0fff82ddfd0 100644
--- a/Master/texmf-dist/source/latex/jmlr/jmlr.ins
+++ b/Master/texmf-dist/source/latex/jmlr/jmlr.ins
@@ -1,4 +1,4 @@
-% jmlr.ins generated using makedtx version 1.1 2017/3/9 9:50
+% jmlr.ins generated using makedtx version 1.2 2017/8/1 16:57
\input docstrip
\preamble
@@ -8,7 +8,7 @@
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.
+ of this license or (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
@@ -18,13 +18,15 @@
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.
+ This work consists of the files jmlr.dtx and jmlr.ins and the derived files jmlrutils.sty, jmlr.cls, jmlrbook.cls.
\endpreamble
\askforoverwritefalse
-\generate{\file{jmlr.cls}{\usepreamble\defaultpreamble
+\generate{\file{jmlrutils.sty}{\usepreamble\defaultpreamble
+\usepostamble\defaultpostamble\from{jmlr.dtx}{jmlrutils.sty,package}}
+\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}}
diff --git a/Master/texmf-dist/tex/latex/jmlr/jmlr.cls b/Master/texmf-dist/tex/latex/jmlr/jmlr.cls
index 0576e3a24d3..9dab2b8fe3e 100644
--- a/Master/texmf-dist/tex/latex/jmlr/jmlr.cls
+++ b/Master/texmf-dist/tex/latex/jmlr/jmlr.cls
@@ -11,7 +11,7 @@
%%
%% 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.
+%% of this license or (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
@@ -21,7 +21,7 @@
%%
%% 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.
+%% This work consists of the files jmlr.dtx and jmlr.ins and the derived files jmlrutils.sty, jmlr.cls, jmlrbook.cls.
%%
%% \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
@@ -41,7 +41,7 @@
%% First editor:
%% Second editor:
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{jmlr}[2017/03/09 v1.23 (NLCT) Journal of Machine Learning Research]
+\ProvidesClass{jmlr}[2017/08/01 v1.24 (NLCT) Journal of Machine Learning Research]
\RequirePackage{xkeyval}
\RequirePackage{calc}
\RequirePackage{etoolbox}
@@ -60,9 +60,18 @@
\DeclareOptionX{final}{\setlength\overfullrule{0pt}}
\newif\iftablecaptiontop
\tablecaptiontoptrue
+\newcommand{\tableconts}[3]{%
+ \iftablecaptiontop
+ #2\label{#1}\vskip\baselineskip
+ {\centering #3\par}%
+ \else
+ {\centering #3\par}%
+ \vskip\baselineskip
+ #2\label{#1}%
+ \fi
+}
\DeclareOptionX{tablecaptiontop}{\tablecaptiontoptrue}
\DeclareOptionX{tablecaptionbottom}{\tablecaptiontopfalse}
-
\define@choicekey{jmlr.cls}{tablecaption}[\val\nr]{top,bottom}{%
\ifcase\nr\relax
\tablecaptiontoptrue
@@ -72,7 +81,9 @@
}
\newif\ifjmlrhtml
\jmlrhtmlfalse
-\DeclareOptionX{html}{\jmlrhtmltrue}
+\DeclareOptionX{html}{%
+ \ClassWarning{jmlr}{html option is now deprecated}%
+ \jmlrhtmltrue}
\DeclareOptionX{nohtml}{\jmlrhtmlfalse}
\def\pt@size{11pt}
\DeclareOptionX{10pt}{\renewcommand{\pt@size}{10pt}}
@@ -134,8 +145,12 @@
\RequirePackage{natbib}
\RequirePackage{graphicx}
\RequirePackage{url}
-\RequirePackage[x11names]{xcolor}
-\RequirePackage[algo2e,ruled]{algorithm2e}
+\PassOptionsToPackage{x11names}{xcolor}
+\RequirePackage{xcolor}
+\PassOptionsToPackage{algo2e,ruled}{algorithm2e}
+\RequirePackage{algorithm2e}
+\setlength\algomargin{0pt}
+\RequirePackage{jmlrutils}
\jmlrprehyperref
\@ifundefined{@pre@hyperref}{}{\@pre@hyperref}
\RequirePackage{hyperref}
@@ -570,128 +585,8 @@ Keywords:} \ignorespaces}%
\fi}
\def\abovestrut#1{\rule[0in]{0in}{#1}\ignorespaces}
\def\belowstrut#1{\rule[-#1]{0in}{#1}\ignorespaces}
-\long\def\acks#1{\section*{Acknowledgments}#1}
-\long\def\researchnote#1{\noindent {\LARGE\itshape Research Note} #1}
-\newcommand*{\set}[1]{\ensuremath{\mathcal{#1}}}
-\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}
-\DeclareRobustCommand*{\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
-}
-\newcommand*{\sectionref}[1]{%
- \objectref{#1}{\sectionrefname}{\sectionsrefname}{}{}}
-\newcommand*{\equationref}[1]{%
- \objectref{#1}{\equationrefname}{\equationsrefname}()}
-\newcommand*{\tableref}[1]{%
- \objectref{#1}{\tablerefname}{\tablesrefname}{}{}}
-\newcommand*{\figureref}[1]{%
- \objectref{#1}{\figurerefname}{\figuresrefname}{}{}}
-\newcommand*{\algorithmref}[1]{%
- \objectref{#1}{\algorithmrefname}{\algorithmsrefname}{}{}}
-\newcommand*{\theoremref}[1]{%
- \objectref{#1}{\theoremrefname}{\theoremsrefname}{}{}}
-\newcommand*{\lemmaref}[1]{%
- \objectref{#1}{\lemmarefname}{\lemmasrefname}{}{}}
-\newcommand*{\remarkref}[1]{%
- \objectref{#1}{\remarkrefname}{\remarksrefname}{}{}}
-\newcommand*{\corollaryref}[1]{%
- \objectref{#1}{\corollaryrefname}{\corollarysrefname}{}{}}
-\newcommand*{\definitionref}[1]{%
- \objectref{#1}{\definitionrefname}{\definitionsrefname}{}{}}
-\newcommand*{\conjectureref}[1]{%
- \objectref{#1}{\conjecturerefname}{\conjecturesrefname}{}{}}
-\newcommand*{\axiomref}[1]{%
- \objectref{#1}{\axiomrefname}{\axiomsrefname}{}{}}
-\newcommand*{\exampleref}[1]{%
- \objectref{#1}{\examplerefname}{\examplesrefname}{}{}}
-\newcommand*{\appendixref}[1]{%
- \objectref{#1}{\appendixrefname}{\appendixsrefname}{}{}}
-\newcommand*{\partref}[1]{%
- \objectref{#1}{\partrefname}{\partsrefname}{}{}}
-\newcommand{\floatconts}[3]{%
- \@ifundefined{\@captype conts}{\tableconts{#1}{#2}{#3}}%
- {\csname\@captype conts\endcsname{#1}{#2}{#3}}%
-}
-\newcommand{\tableconts}[3]{%
- \iftablecaptiontop
- #2\label{#1}\vskip\baselineskip
- {\centering #3\par}%
- \else
- {\centering #3\par}%
- \vskip\baselineskip
- #2\label{#1}%
- \fi
-}
-\newcommand{\figureconts}[3]{%
- {\centering #3\par}%
- \vskip\baselineskip
- #2\label{#1}%
-}
-\newcommand{\algocfconts}[3]{%
- \@algocf@pre@ruled
- #2\label{#1}\kern2pt\hrule height.8pt depth0pt\kern2pt%
- #3\@algocf@pre@ruled
-}
-\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
-}
+\newcommand{\acks}[1]{\section*{Acknowledgments}#1}
+\newcommand{\researchnote}[1]{\noindent {\LARGE\itshape Research Note} #1}
\providecommand{\ifprint}[2]{\ifgrayscale#1\else#2\fi}
%% \begin{macrocode}
\ifjmlrhtml
@@ -734,18 +629,6 @@ Keywords:} \ignorespaces}%
\fi
\endgroup}
\fi
-\newenvironment{algorithm}[1][htbp]%
-{%
- \begin{algocf}[#1]%
- \renewcommand\@makecaption[2]{%
- \hskip\AlCapHSkip
- \parbox[t]{\hsize}{\algocf@captiontext{##1}{##2}}%
- }%
-}%
-{%
- \end{algocf}%
-}
-\setlength\algomargin{0pt}
\newcommand{\artappendix}{\par
\setcounter{section}{0}
\setcounter{subsection}{0}
@@ -755,280 +638,6 @@ Keywords:} \ignorespaces}%
}
\let\appendix\artappendix
\newcommand{\booklinebreak}[1][]{}
-\newcommand{\BlackBox}{\rule{1.5ex}{1.5ex}}
-\newcommand*{\jmlrQED}{\hfill\BlackBox\\[2mm]}
-\newenvironment{proof}%
-{%
- \par\noindent{\bfseries\upshape Proof\ }%
-}%
-{\jmlrQED}
-\newcommand*{\theorembodyfont}[1]{%
- \renewcommand*{\@theorembodyfont}{#1}%
-}
-\newcommand*{\@theorembodyfont}{\normalfont\itshape}%
-\newcommand*{\theoremheaderfont}[1]{%
- \renewcommand*{\@theoremheaderfont}{#1}%
-}
-\newcommand*{\@theoremheaderfont}{\normalfont\bfseries }%
-\newcommand*{\theoremsep}[1]{%
- \renewcommand*{\@theoremsep}{#1}%
-}
-\newcommand*{\@theoremsep}{}%
-\newcommand*{\theorempostheader}[1]{%
- \renewcommand*{\@theorempostheader}{#1}%
-}
-\newcommand*{\@theorempostheader}{}%
-\let\jmlr@org@newtheorem\newtheorem
-\renewcommand*{\newtheorem}{\@ifstar\jmlr@snewtheorem\jmlr@newtheorem}
-\newcommand*{\jmlr@snewtheorem}[2]{%
- \cslet{jmlr@thm@#1@body@font}{\@theorembodyfont}%
- \cslet{jmlr@thm@#1@header@font}{\@theoremheaderfont}%
- \cslet{jmlr@thm@#1@sep}{\@theoremsep}%
- \cslet{jmlr@thm@#1@postheader}{\@theorempostheader}%
- \newenvironment{#1}%
- {%
- \trivlist
- \item
- [%
- \hskip\labelsep{\csuse{jmlr@thm@#1@header@font}#2%
- \csuse{jmlr@thm@#1@postheader}%
- }%
- ]%
- \mbox{}\csuse{jmlr@thm@#1@sep}%
- \csuse{jmlr@thm@#1@body@font}%
- }%
- {%
- \endtrivlist
- }%
-}
-\newcommand{\jmlr@newtheorem}[1]{%
- \cslet{jmlr@thm@#1@body@font}{\@theorembodyfont}%
- \cslet{jmlr@thm@#1@header@font}{\@theoremheaderfont}%
- \cslet{jmlr@thm@#1@sep}{\@theoremsep}%
- \cslet{jmlr@thm@#1@postheader}{\@theorempostheader}%
- \jmlr@org@newtheorem{#1}%
-}
-\renewcommand*{\@xthm}[2]{%
- \def\@jmlr@currentthm{#1}%
- \@begintheorem{#2}{\csname the#1\endcsname}%
- \ignorespaces
-}
-\def\@ythm#1#2[#3]{%
- \def\@jmlr@currentthm{#1}%
- \@opargbegintheorem{#2}{\csname the#1\endcsname}{#3}%
- \ignorespaces
-}
-\renewcommand*{\@begintheorem}[2]{%
- \ifdef{\@jmlr@currentthm}%
- {%
- \letcs{\jmlr@this@theoremheader}{jmlr@thm@\@jmlr@currentthm @header@font}%
- \letcs{\jmlr@this@theorembody}{jmlr@thm@\@jmlr@currentthm @body@font}%
- \letcs{\jmlr@this@theoremsep}{jmlr@thm@\@jmlr@currentthm @sep}%
- \letcs{\jmlr@this@theorempostheader}%
- {jmlr@thm@\@jmlr@currentthm @postheader}%
- }%
- {%
- \let\jmlr@this@theorembody\@theorembodyfont
- \let\jmlr@this@theoremheader\@theoremheaderfont
- \let\jmlr@this@theoremsep\@theoremsep
- \let\jmlr@this@theorempostheader\@theorempostheader
- }%
- \trivlist
- \item
- [%
- \hskip\labelsep{\jmlr@this@theoremheader #1\ #2%
- \jmlr@this@theorempostheader}%
- ]%
- \mbox{}\jmlr@this@theoremsep
- \jmlr@this@theorembody
-}
-\renewcommand*{\@opargbegintheorem}[3]{%
- \ifdef{\@jmlr@currentthm}%
- {%
- \letcs{\jmlr@this@theoremheader}{jmlr@thm@\@jmlr@currentthm @header@font}%
- \letcs{\jmlr@this@theorembody}{jmlr@thm@\@jmlr@currentthm @body@font}%
- \letcs{\jmlr@this@theoremsep}{jmlr@thm@\@jmlr@currentthm @sep}%
- \letcs{\jmlr@this@theorempostheader}%
- {jmlr@thm@\@jmlr@currentthm @postheader}%
- }%
- {%
- \let\jmlr@this@theorembody\@theorembodyfont
- \let\jmlr@this@theoremheader\@theoremheaderfont
- \let\jmlr@this@theoremsep\@theoremsep
- \let\jmlr@this@theorempostheader\@theorempostheader
- }%
- \trivlist
- \item[\hskip\labelsep{\jmlr@this@theoremheader #1\ #2\ (#3)%
- \jmlr@this@theorempostheader}]%
- \mbox{}\jmlr@this@theoremsep
- \jmlr@this@theorembody
-}
-\newtheorem{example}{Example}
-\newtheorem{theorem}{Theorem}
-\newtheorem{lemma}[theorem]{Lemma}
-\newtheorem{proposition}[theorem]{Proposition}
-\newtheorem{remark}[theorem]{Remark}
-\newtheorem{corollary}[theorem]{Corollary}
-\newtheorem{definition}[theorem]{Definition}
-\newtheorem{conjecture}[theorem]{Conjecture}
-\newtheorem{axiom}[theorem]{Axiom}
-\let\orgvec\vec
-\renewcommand*{\vec}[1]{\boldsymbol{#1}}
-\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}
-\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}
-\newcommand*{\mailto}[1]{\texttt{#1}}
-\newcounter{subfigure}
-\@addtoreset{subfigure}{figure}
-\renewcommand*{\thesubfigure}{\alph{subfigure}}
-\renewcommand*{\p@subfigure}{\expandafter\@p@subfigure}
-\newcommand*{\@p@subfigure}[1]{%
- \protect\@subfigurelabel{\thefigure}{\thesubfigure}%
-}
-\newcommand*\@subfigurelabel[2]{#1\subfigurelabel{#2}}
-\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
-}
-\newcommand*{\subfigurelabel}[1]{(\emph{#1})}
-\newsavebox\@subfloatcapbox
-\newsavebox\@subfloatcontsbox
-\newcommand*{\subfigure}[1][]{%
- \bgroup
- \def\@subfigcap{#1}%
- \@subfigure
-}
-\newcommand*{\@subfigure}[2][b]{%
- \advance\c@figure by 1\relax
- \refstepcounter{subfigure}%
- \sbox\@subfloatcapbox{\subfigurelabel{\thesubfigure}%
- \ifx\@subfigcap\@empty
- \else
- \space\@subfigcap
- \fi}%
- \sbox\@subfloatcontsbox{#2}%
- \settowidth{\@tempdima}{\usebox\@subfloatcontsbox}%
- \settowidth{\@tempdimb}{\usebox\@subfloatcapbox}%
- \ifdim\@tempdimb>\@tempdima
- \settowidth\@tempdimb{\subfigurelabel{\thesubfigure}\space}%
- \addtolength{\@tempdima}{-\@tempdimb}%
- \sbox\@subfloatcapbox{\subfigurelabel{\thesubfigure}\space
- \parbox[t]{\@tempdima}{\@subfigcap}}%
- \fi
- \begin{tabular}[#1]{@{}c@{}}%
- \usebox\@subfloatcontsbox\\\usebox\@subfloatcapbox
- \end{tabular}%
- \egroup
-}
-\newcounter{subtable}
-\@addtoreset{subtable}{table}
-\renewcommand*{\thesubtable}{\alph{subtable}}
-\renewcommand*{\p@subtable}{\expandafter\@p@subtable}
-\newcommand*{\@p@subtable}[1]{%
- \protect\@subtablelabel{\thetable}{\thesubtable}%
-}
-\newcommand*\@subtablelabel[2]{#1\subtablelabel{#2}}
-\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
-}
-\newcommand*{\subtablelabel}[1]{(\emph{#1})}
-\newcommand*{\subtable}[1][]{%
- \def\@subtabcap{#1}%
- \@subtable
-}
-\newcommand*{\@subtable}[2][t]{%
- \refstepcounter{subtable}%
- \sbox\@subfloatcapbox{\subtablelabel{\thesubtable}%
- \ifx\@subtabcap\@empty
- \else
- \space\@subtabcap
- \fi}%
- \sbox\@subfloatcontsbox{#2}%
- \settowidth{\@tempdima}{\usebox\@subfloatcontsbox}%
- \settowidth{\@tempdimb}{\usebox\@subfloatcapbox}%
- \ifdim\@tempdimb>\@tempdima
- \settowidth\@tempdimb{\subtablelabel{\thesubtable}\space}%
- \addtolength{\@tempdima}{-\@tempdimb}%
- \sbox\@subfloatcapbox{\subtablelabel{\thesubtable}\space
- \parbox[t]{\@tempdima}{\@subtabcap}}%
- \fi
- \begin{tabular}[#1]{@{}c@{}}%
- \usebox\@subfloatcapbox\\\usebox\@subfloatcontsbox
- \end{tabular}
-}
\newcounter{chapter}
\renewcommand\thechapter{\@arabic\c@chapter}
\newcommand\@chapapp{\chaptername}
diff --git a/Master/texmf-dist/tex/latex/jmlr/jmlrbook.cls b/Master/texmf-dist/tex/latex/jmlr/jmlrbook.cls
index b74c1ab12ff..71423d3b34a 100644
--- a/Master/texmf-dist/tex/latex/jmlr/jmlrbook.cls
+++ b/Master/texmf-dist/tex/latex/jmlr/jmlrbook.cls
@@ -11,7 +11,7 @@
%%
%% 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.
+%% of this license or (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
@@ -21,7 +21,7 @@
%%
%% 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.
+%% This work consists of the files jmlr.dtx and jmlr.ins and the derived files jmlrutils.sty, jmlr.cls, jmlrbook.cls.
%%
%% \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
@@ -41,7 +41,7 @@
%% First editor:
%% Second editor:
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{jmlrbook}[2017/03/09 v1.23 (NLCT) JMLR Book Style]
+\ProvidesClass{jmlrbook}[2017/08/01 v1.24 (NLCT) JMLR Book Style]
\RequirePackage{xkeyval}
\RequirePackage{setspace}
\newcommand*\jmlrprefacepath{}
diff --git a/Master/texmf-dist/tex/latex/jmlr/jmlrutils.sty b/Master/texmf-dist/tex/latex/jmlr/jmlrutils.sty
new file mode 100644
index 00000000000..8c6d6209bf2
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/jmlr/jmlrutils.sty
@@ -0,0 +1,495 @@
+%%
+%% This is file `jmlrutils.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% jmlr.dtx (with options: `jmlrutils.sty,package')
+%%
+%% jmlr.dtx
+%% Copyright 2017 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 or (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 jmlrutils.sty, jmlr.cls, jmlrbook.cls.
+%%
+%% \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 \~}
+%% First editor:
+%% Second editor:
+\ProvidesPackage{jmlrutils}[2017/08/01]
+\newif\ifjmlrutilsmaths
+\jmlrutilsmathstrue
+\DeclareOption{maths}{\jmlrutilsmathstrue}
+\DeclareOption{nomaths}{\jmlrutilsmathsfalse}
+\newif\ifjmlrutilstheorems
+\jmlrutilstheoremstrue
+\DeclareOption{theorems}{\jmlrutilstheoremstrue}
+\DeclareOption{notheorems}{\jmlrutilstheoremsfalse}
+\newif\ifjmlrutilssubfloats
+\jmlrutilssubfloatstrue
+\DeclareOption{subfloats}{\jmlrutilssubfloatstrue}
+\DeclareOption{nosubfloats}{\jmlrutilssubfloatsfalse}
+\ProcessOptions
+\RequirePackage{etoolbox}
+\ifjmlrutilsmaths
+ \RequirePackage{amsmath}
+\fi
+\@ifundefined{iftablecaptiontop}
+{\newif\iftablecaptiontop
+\tablecaptiontoptrue}
+{}
+\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}
+\newrobustcmd*{\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
+}
+\newcommand*{\sectionref}[1]{%
+ \objectref{#1}{\sectionrefname}{\sectionsrefname}{}{}}
+\newcommand*{\equationref}[1]{%
+ \objectref{#1}{\equationrefname}{\equationsrefname}()}
+\newcommand*{\tableref}[1]{%
+ \objectref{#1}{\tablerefname}{\tablesrefname}{}{}}
+\newcommand*{\figureref}[1]{%
+ \objectref{#1}{\figurerefname}{\figuresrefname}{}{}}
+\newcommand*{\algorithmref}[1]{%
+ \objectref{#1}{\algorithmrefname}{\algorithmsrefname}{}{}}
+\newcommand*{\theoremref}[1]{%
+ \objectref{#1}{\theoremrefname}{\theoremsrefname}{}{}}
+\newcommand*{\lemmaref}[1]{%
+ \objectref{#1}{\lemmarefname}{\lemmasrefname}{}{}}
+\newcommand*{\remarkref}[1]{%
+ \objectref{#1}{\remarkrefname}{\remarksrefname}{}{}}
+\newcommand*{\corollaryref}[1]{%
+ \objectref{#1}{\corollaryrefname}{\corollarysrefname}{}{}}
+\newcommand*{\definitionref}[1]{%
+ \objectref{#1}{\definitionrefname}{\definitionsrefname}{}{}}
+\newcommand*{\conjectureref}[1]{%
+ \objectref{#1}{\conjecturerefname}{\conjecturesrefname}{}{}}
+\newcommand*{\axiomref}[1]{%
+ \objectref{#1}{\axiomrefname}{\axiomsrefname}{}{}}
+\newcommand*{\exampleref}[1]{%
+ \objectref{#1}{\examplerefname}{\examplesrefname}{}{}}
+\newcommand*{\appendixref}[1]{%
+ \objectref{#1}{\appendixrefname}{\appendixsrefname}{}{}}
+\newcommand*{\partref}[1]{%
+ \objectref{#1}{\partrefname}{\partsrefname}{}{}}
+\newcommand{\floatconts}[3]{%
+ \@ifundefined{\@captype conts}{\tableconts{#1}{#2}{#3}}%
+ {\csname\@captype conts\endcsname{#1}{#2}{#3}}%
+}
+\providecommand{\tableconts}[3]{%
+ #2\label{#1}\vskip\baselineskip
+ {\centering #3\par}%
+}
+\newcommand{\figureconts}[3]{%
+ {\centering #3\par}%
+ \vskip\baselineskip
+ #2\label{#1}%
+}
+\newcommand{\algocfconts}[3]{%
+ \@algocf@pre@ruled
+ #2\label{#1}\kern2pt\hrule height.8pt depth0pt\kern2pt%
+ #3\@algocf@pre@ruled
+}
+\newenvironment{algorithm}[1][htbp]%
+{%
+ \ifundef{\algocf}%
+ {`algorithm2e' package is required if you want to
+ use the algorithm environment}%
+ {}%
+ \begin{algocf}[#1]%
+ \renewcommand\@makecaption[2]{%
+ \hskip\AlCapHSkip
+ \parbox[t]{\hsize}{\algocf@captiontext{##1}{##2}}%
+ }%
+}%
+{%
+ \end{algocf}%
+}
+\AtBeginDocument{%
+ \@ifpackageloaded{graphicx}%
+ {\let\@jmlr@ifgraphicxloaded\@firstoftwo}%
+ {\let\@jmlr@ifgraphicxloaded\@secondoftwo}%
+}
+\newcommand*{\includeteximage}[2][]{%
+ \@jmlr@ifgraphicxloaded
+ {%
+ \def\Gin@req@sizes{%
+ \Gin@req@height\Gin@nat@height
+ \Gin@req@width\Gin@nat@width}%
+ \begingroup
+ \let\input@path\Ginput@path
+ \IfFileExists{#2}%
+ {%
+ \toks@{\input{#2}}%
+ \ifstrempty{#1}
+ {}%
+ {%
+ \@tempswatrue
+ \setkeys{Gin}{#1}%
+ \Gin@esetsize
+ }%
+ \the\toks@
+ }%
+ {\@warning{File `#2' not found}}%
+ \endgroup
+ }%
+ {\PackageError{jmlrutils}{`graphicx' package is required
+ if you want to use \string\includeteximage}{}}%
+}
+\ifjmlrutilssubfloats
+ \newcounter{subfigure}
+ \@addtoreset{subfigure}{figure}
+ \renewcommand*{\thesubfigure}{\alph{subfigure}}
+ \renewcommand*{\p@subfigure}{\expandafter\@p@subfigure}
+ \newcommand*{\@p@subfigure}[1]{%
+ \protect\@subfigurelabel{\thefigure}{\thesubfigure}%
+ }
+ \newcommand*\@subfigurelabel[2]{#1\subfigurelabel{#2}}
+ \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
+ }
+ \newcommand*{\subfigurelabel}[1]{(\emph{#1})}
+ \newsavebox\@subfloatcapbox
+ \newsavebox\@subfloatcontsbox
+ \newcommand*{\subfigure}[1][]{%
+ \bgroup
+ \def\@subfigcap{#1}%
+ \@subfigure
+ }
+ \newcommand*{\@subfigure}[2][b]{%
+ \advance\c@figure by 1\relax
+ \refstepcounter{subfigure}%
+ \sbox\@subfloatcapbox{\subfigurelabel{\thesubfigure}%
+ \ifx\@subfigcap\@empty
+ \else
+ \space\@subfigcap
+ \fi}%
+ \sbox\@subfloatcontsbox{#2}%
+ \settowidth{\@tempdima}{\usebox\@subfloatcontsbox}%
+ \settowidth{\@tempdimb}{\usebox\@subfloatcapbox}%
+ \ifdim\@tempdimb>\@tempdima
+ \settowidth\@tempdimb{\subfigurelabel{\thesubfigure}\space}%
+ \addtolength{\@tempdima}{-\@tempdimb}%
+ \sbox\@subfloatcapbox{\subfigurelabel{\thesubfigure}\space
+ \parbox[t]{\@tempdima}{\@subfigcap}}%
+ \fi
+ \begin{tabular}[#1]{@{}c@{}}%
+ \usebox\@subfloatcontsbox\\\usebox\@subfloatcapbox
+ \end{tabular}%
+ \egroup
+ }
+ \newcounter{subtable}
+ \@addtoreset{subtable}{table}
+ \renewcommand*{\thesubtable}{\alph{subtable}}
+ \renewcommand*{\p@subtable}{\expandafter\@p@subtable}
+ \newcommand*{\@p@subtable}[1]{%
+ \protect\@subtablelabel{\thetable}{\thesubtable}%
+ }
+ \newcommand*\@subtablelabel[2]{#1\subtablelabel{#2}}
+ \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
+ }
+ \newcommand*{\subtablelabel}[1]{(\emph{#1})}
+ \newcommand*{\subtable}[1][]{%
+ \def\@subtabcap{#1}%
+ \@subtable
+ }
+ \newcommand*{\@subtable}[2][t]{%
+ \refstepcounter{subtable}%
+ \sbox\@subfloatcapbox{\subtablelabel{\thesubtable}%
+ \ifx\@subtabcap\@empty
+ \else
+ \space\@subtabcap
+ \fi}%
+ \sbox\@subfloatcontsbox{#2}%
+ \settowidth{\@tempdima}{\usebox\@subfloatcontsbox}%
+ \settowidth{\@tempdimb}{\usebox\@subfloatcapbox}%
+ \ifdim\@tempdimb>\@tempdima
+ \settowidth\@tempdimb{\subtablelabel{\thesubtable}\space}%
+ \addtolength{\@tempdima}{-\@tempdimb}%
+ \sbox\@subfloatcapbox{\subtablelabel{\thesubtable}\space
+ \parbox[t]{\@tempdima}{\@subtabcap}}%
+ \fi
+ \begin{tabular}[#1]{@{}c@{}}%
+ \usebox\@subfloatcapbox\\\usebox\@subfloatcontsbox
+ \end{tabular}
+ }
+\fi
+\ifjmlrutilsmaths
+ \newcommand*{\set}[1]{\ensuremath{\mathcal{#1}}}
+ \let\orgvec\vec
+ \renewcommand*{\vec}[1]{\boldsymbol{#1}}
+\fi
+\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}
+\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}
+\newcommand*{\mailto}[1]{\texttt{#1}}
+\ifjmlrutilstheorems
+ \newcommand{\jmlrBlackBox}{\rule{1.5ex}{1.5ex}}
+ \providecommand{\BlackBox}{\jmlrBlackBox}
+ \newcommand{\jmlrQED}{\hfill\jmlrBlackBox\par\bigskip}
+ \newenvironment{proof}%
+ {%
+ \par\noindent{\bfseries\upshape Proof\ }%
+ }%
+ {\jmlrQED}
+ \newcommand*{\theorembodyfont}[1]{%
+ \renewcommand*{\@theorembodyfont}{#1}%
+ }
+ \newcommand*{\@theorembodyfont}{\normalfont\itshape}%
+ \newcommand*{\theoremheaderfont}[1]{%
+ \renewcommand*{\@theoremheaderfont}{#1}%
+ }
+ \newcommand*{\@theoremheaderfont}{\normalfont\bfseries }%
+ \newcommand*{\theoremsep}[1]{%
+ \renewcommand*{\@theoremsep}{#1}%
+ }
+ \newcommand*{\@theoremsep}{}%
+ \newcommand*{\theorempostheader}[1]{%
+ \renewcommand*{\@theorempostheader}{#1}%
+ }
+ \newcommand*{\@theorempostheader}{}%
+ \let\jmlr@org@newtheorem\newtheorem
+ \renewcommand*{\newtheorem}{\@ifstar\jmlr@snewtheorem\jmlr@newtheorem}
+ \newcommand*{\jmlr@snewtheorem}[2]{%
+ \cslet{jmlr@thm@#1@body@font}{\@theorembodyfont}%
+ \cslet{jmlr@thm@#1@header@font}{\@theoremheaderfont}%
+ \cslet{jmlr@thm@#1@sep}{\@theoremsep}%
+ \cslet{jmlr@thm@#1@postheader}{\@theorempostheader}%
+ \newenvironment{#1}%
+ {%
+ \trivlist
+ \item
+ [%
+ \hskip\labelsep{\csuse{jmlr@thm@#1@header@font}#2%
+ \csuse{jmlr@thm@#1@postheader}%
+ }%
+ ]%
+ \mbox{}\csuse{jmlr@thm@#1@sep}%
+ \csuse{jmlr@thm@#1@body@font}%
+ }%
+ {%
+ \endtrivlist
+ }%
+ }
+ \newcommand{\jmlr@newtheorem}[1]{%
+ \cslet{jmlr@thm@#1@body@font}{\@theorembodyfont}%
+ \cslet{jmlr@thm@#1@header@font}{\@theoremheaderfont}%
+ \cslet{jmlr@thm@#1@sep}{\@theoremsep}%
+ \cslet{jmlr@thm@#1@postheader}{\@theorempostheader}%
+ \jmlr@org@newtheorem{#1}%
+ }
+ \renewcommand*{\@xthm}[2]{%
+ \def\@jmlr@currentthm{#1}%
+ \@begintheorem{#2}{\csname the#1\endcsname}%
+ \ignorespaces
+ }
+ \def\@ythm#1#2[#3]{%
+ \def\@jmlr@currentthm{#1}%
+ \@opargbegintheorem{#2}{\csname the#1\endcsname}{#3}%
+ \ignorespaces
+ }
+ \renewcommand*{\@begintheorem}[2]{%
+ \ifdef{\@jmlr@currentthm}%
+ {%
+ \letcs{\jmlr@this@theoremheader}{jmlr@thm@\@jmlr@currentthm @header@font}%
+ \letcs{\jmlr@this@theorembody}{jmlr@thm@\@jmlr@currentthm @body@font}%
+ \letcs{\jmlr@this@theoremsep}{jmlr@thm@\@jmlr@currentthm @sep}%
+ \letcs{\jmlr@this@theorempostheader}%
+ {jmlr@thm@\@jmlr@currentthm @postheader}%
+ }%
+ {%
+ \let\jmlr@this@theorembody\@theorembodyfont
+ \let\jmlr@this@theoremheader\@theoremheaderfont
+ \let\jmlr@this@theoremsep\@theoremsep
+ \let\jmlr@this@theorempostheader\@theorempostheader
+ }%
+ \trivlist
+ \item
+ [%
+ \hskip\labelsep{\jmlr@this@theoremheader #1\ #2%
+ \jmlr@this@theorempostheader}%
+ ]%
+ \mbox{}\jmlr@this@theoremsep
+ \jmlr@this@theorembody
+ }
+ \renewcommand*{\@opargbegintheorem}[3]{%
+ \ifdef{\@jmlr@currentthm}%
+ {%
+ \letcs{\jmlr@this@theoremheader}{jmlr@thm@\@jmlr@currentthm @header@font}%
+ \letcs{\jmlr@this@theorembody}{jmlr@thm@\@jmlr@currentthm @body@font}%
+ \letcs{\jmlr@this@theoremsep}{jmlr@thm@\@jmlr@currentthm @sep}%
+ \letcs{\jmlr@this@theorempostheader}%
+ {jmlr@thm@\@jmlr@currentthm @postheader}%
+ }%
+ {%
+ \let\jmlr@this@theorembody\@theorembodyfont
+ \let\jmlr@this@theoremheader\@theoremheaderfont
+ \let\jmlr@this@theoremsep\@theoremsep
+ \let\jmlr@this@theorempostheader\@theorempostheader
+ }%
+ \trivlist
+ \item[\hskip\labelsep{\jmlr@this@theoremheader #1\ #2\ (#3)%
+ \jmlr@this@theorempostheader}]%
+ \mbox{}\jmlr@this@theoremsep
+ \jmlr@this@theorembody
+ }
+ \newtheorem{example}{Example}
+ \newtheorem{theorem}{Theorem}
+ \newtheorem{lemma}[theorem]{Lemma}
+ \newtheorem{proposition}[theorem]{Proposition}
+ \newtheorem{remark}[theorem]{Remark}
+ \newtheorem{corollary}[theorem]{Corollary}
+ \newtheorem{definition}[theorem]{Definition}
+ \newtheorem{conjecture}[theorem]{Conjecture}
+ \newtheorem{axiom}[theorem]{Axiom}
+\fi
+\endinput
+%%
+%% End of file `jmlrutils.sty'.