%% %% This is file `jmlr.cls', %% generated with the docstrip utility. %% %% The original source files were: %% %% jmlr.dtx (with options: `jmlr.cls,package') %% %% jmlr.dtx %% Copyright 2013 Nicola Talbot %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 %% of this license of (at your option) any later version. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of LaTeX %% version 2005/12/01 or later. %% %% This work has the LPPL maintenance status `maintained'. %% %% The Current Maintainer of this work is Nicola Talbot. %% %% This work consists of the files jmlr.dtx and jmlr.ins and the derived files jmlr.cls, jmlrbook.cls. %% %% \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: \NeedsTeXFormat{LaTeX2e} \ProvidesClass{jmlr}[2013/10/17 v1.18 (NLCT) Journal of Machine Learning Research] \RequirePackage{xkeyval} \RequirePackage{calc} \RequirePackage{etoolbox} \providecommand*{\jmlrprehyperref}{} \newif\if@openright \newif\if@mainmatter \@mainmattertrue \@ifundefined{ifgrayscale}{ \newif\ifgrayscale \grayscalefalse }{} \DeclareOptionX{color}{\grayscalefalse \PassOptionsToPackage{color}{xcolor}} \DeclareOptionX{gray}{\grayscaletrue \PassOptionsToPackage{gray}{xcolor}} \DeclareOptionX{draft}{\setlength\overfullrule{5pt}} \DeclareOptionX{final}{\setlength\overfullrule{0pt}} \newif\iftablecaptiontop \tablecaptiontoptrue \DeclareOptionX{tablecaptiontop}{\tablecaptiontoptrue} \DeclareOptionX{tablecaptionbottom}{\tablecaptiontopfalse} \define@choicekey{jmlr.cls}{tablecaption}[\val\nr]{top,bottom}{% \ifcase\nr\relax \tablecaptiontoptrue \or \tablecaptiontopfalse \fi } \newif\ifjmlrhtml \jmlrhtmlfalse \DeclareOptionX{html}{\jmlrhtmltrue} \DeclareOptionX{nohtml}{\jmlrhtmlfalse} \def\pt@size{11pt} \DeclareOptionX{10pt}{\renewcommand{\pt@size}{10pt}} \DeclareOptionX{11pt}{\renewcommand{\pt@size}{11pt}} \DeclareOptionX{12pt}{\renewcommand{\pt@size}{12pt}} \newcommand*{\@jmlrproceedings}{Journal of Machine Learning Research} \newcommand*{\@jmlrabbrvproceedings}{JMLR} \newcommand*{\jmlrproceedings}[2]{% \renewcommand*{\@jmlrabbrvproceedings}{#1}% \renewcommand*{\@jmlrproceedings}{#2}% } \newcommand*{\jmlrnowcp}{% \jmlrproceedings{JMLR}{Journal of Machine Learning Research}% } \newcommand*{\jmlrwcp}{% \jmlrproceedings{JMLR W\&CP}{JMLR: Workshop and Conference Proceedings}% } \DeclareOptionX{nowcp}{\jmlrnowcp} \DeclareOptionX{wcp}{\jmlrwcp} \newif\ifviiXx \viiXxfalse \DeclareOptionX{7x10}{\viiXxtrue} \DeclareOptionX{letterpaper}{\PassOptionsToPackage{letterpaper}{typearea}} \DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{article}} \ExecuteOptions{twoside,letterpaper} \ProcessOptionsX \LoadClass[\pt@size]{article} \ifviiXx \setlength{\paperwidth}{7in} \setlength{\paperheight}{10in} \setlength{\textwidth}{5.25in} \setlength{\textheight}{8.2in} \setlength{\topmargin}{0.4in} \setlength{\headheight}{0.2in} \setlength{\headsep}{0.2in} \setlength{\hoffset}{-1in} \setlength{\voffset}{-1in} \setlength{\evensidemargin}{0.75in} \setlength{\oddsidemargin}{1.0in} \else \setlength{\oddsidemargin}{0.25in} \setlength{\evensidemargin}{0.25in} \setlength{\marginparwidth}{0.07 true in} \setlength{\topmargin}{-0.5in} \addtolength{\headsep}{0.25in} \setlength{\textheight}{8.5 true in} \setlength{\textwidth}{6.0 true in} \fi \AtEndDocument{\@jmlrenddoc} \RequirePackage{amsmath} \RequirePackage{amssymb} \RequirePackage{natbib} \RequirePackage{graphicx} \RequirePackage{url} \RequirePackage[x11names]{xcolor} \RequirePackage[algo2e,ruled]{algorithm2e} \jmlrprehyperref \@ifundefined{@pre@hyperref}{}{\@pre@hyperref} \usepackage{hyperref} \usepackage{nameref} \@ifundefined{@post@hyperref}{}{\@post@hyperref} \hypersetup{colorlinks, linkcolor=blue, citecolor=blue, urlcolor=magenta, linktocpage, plainpages=false} \ifgrayscale \hypersetup{draft} \fi \renewcommand{\topfraction}{0.95} % let figure take up nearly whole page \renewcommand{\textfraction}{0.05} % let figure take up nearly whole page \widowpenalty=10000\relax \clubpenalty=10000\relax \@twosidetrue \@mparswitchtrue \bibliographystyle{plainnat} \bibpunct{(}{)}{;}{a}{,}{,} \renewcommand{\section}{\@startsection{section}{1}{\z@}% {-0.24in \@plus -1ex \@minus -.2ex}% {0.10in \@plus.2ex}% {\normalfont\rmfamily\bfseries\large\raggedright}% } \renewcommand\subsection{\@startsection{subsection}{2}{\z@}% {-0.20in \@plus -1ex \@minus -.2ex}% {0.08in \@plus .2ex}% {\normalfont\rmfamily\bfseries\normalsize\raggedright}% } \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% {-0.18in \@plus -1ex \@minus -.2ex}% {0.08in \@plus .2ex}% {\normalfont\normalsize\rmfamily\mdseries\scshape\raggedright}% } \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% {1.5ex plus 0.5ex minus .2ex}% {-1em}% {\normalfont\normalsize\rmfamily\bfseries}% } \renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}% {1.5ex plus 0.5ex minus .2ex}% {-1em}% {\normalfont\normalsize\rmfamily\bfseries\itshape}} \renewcommand*\@seccntformat[1]{% \csname pre#1num\endcsname \csname the#1\endcsname.\enskip } \renewcommand*{\@makefntext}[1]{% \@setpar {% \@@par \@tempdima\hsize \advance \@tempdima -15pt\relax \parshape \@ne 15pt \@tempdima }% \par \parindent 2em\noindent \hbox to \z@ {\hss {\@thefnmark }\footnoteseptext\hfil }#1% } \newcommand*{\footnoteseptext}{. } \renewcommand*{\thanks}[1]{% \footnotemark \protected@xdef\@thanks{\@thanks \protect\footnotetext{#1}}% } \ifjmlrhtml \renewenvironment{abstract}{\HCode{

}Abstract\HCode{

}}{}% \else \renewenvironment{abstract} {{\centering\large\bfseries Abstract\par}\vspace{0.7ex}% \bgroup \leftskip 20pt\rightskip 20pt\small\noindent\ignorespaces}% {\par\egroup\vskip 0.25ex} \fi \newenvironment{keywords} {\bgroup\leftskip 20pt\rightskip 20pt \small\noindent{\bfseries Keywords:} \ignorespaces}% {\par\egroup\vskip 0.25ex} \newlength\aftertitskip \newlength\beforetitskip \newlength\interauthorskip \newlength\aftermaketitskip %% Changeable parameters. \setlength\aftertitskip{0.1in plus 0.2in minus 0.2in} \setlength\beforetitskip{0.05in plus 0.08in minus 0.08in} \setlength\interauthorskip{0.08in plus 0.1in minus 0.1in} \setlength\aftermaketitskip{0.3in plus 0.1in minus 0.1in} \newcommand*{\titlebreak}{\newline} \newcommand*{\titletag}[1]{} \renewcommand*{\title}[2][\@title]{% \def\@shorttitle{#1}% \def\@title{#2}% \jmlrtitlehook } \newcommand*{\@shorttitle}{\jobname} \newcommand*{\jmlrtitlehook}{} \renewcommand*{\author}[2][]{% \def\@author{#2}% \def\@sauthor{#1}% \ifx\@sauthor\@empty \else \let\@shortauthor\@sauthor \fi \jmlrauthorhook } \newcommand*{\jmlrauthorhook}{} \newcommand*{\@shortauthor}{} \newcommand*{\@firstauthor}{} \newcommand*{\@firstsurname}{} \newlength\jmlrlength \def\jmlrmaketitle{% \jmlrpremaketitlehook \def\@jmlr@authors@sep{, }% \par \begingroup \def\footnoteseptext{ }% \def\thempfn{\textsuperscript{\thefootnote}}% \def\thefootnote{\fnsymbol{footnote}}% \if@twocolumn \twocolumn[\@jmlrmaketitle]% \else \@jmlrmaketitle \fi \@thanks \endgroup \label{jmlrstart}% \ifx\@sauthor\@empty \settowidth{\jmlrlength}{\@evenhead}% \ifdim\jmlrlength>\textwidth \def\@shortauthor{\@firstsurname\space et al.}% \fi \fi \settowidth{\jmlrlength}{\@titlefoot}% \ifdim\jmlrlength>\textwidth \def\@jmlrauthors{\@firstauthor\space \emph{et al}}% \fi \jmlrmaketitlehook \thispagestyle{jmlrtps}% \setcounter{footnote}{0}% \let\maketitle\relax \let\@maketitle\relax \gdef\@thanks{}\gdef\@author{}\let\thanks\@gobble \def\@jmlr@authors@sep{ \& }% } \newcommand*{\jmlrmaketitlehook}{} \newcommand*{\jmlrpremaketitlehook}{} \newcommand{\jmlrhtmlmaketitle}{% \ifx\@jmlr@authors\@empty \sbox\jmlrbox{\let\addr\relax\@author}% \fi \noindent\HCode{

}\@title\HCode{

} \noindent\@jmlr@authors } %%\begin{macro}{\jmlrbox} \newsavebox\jmlrbox \ifjmlrhtml \let\maketitle\jmlrhtmlmaketitle \else \let\maketitle\jmlrmaketitle \fi \def\@startauthor{\noindent \normalsize\bfseries} \def\@endauthor{} \def\@starteditor{\noindent \small {\bfseries \@edname:~}} \def\@endeditor{\normalsize} \def\jmlrpretitle{\vskip\beforetitskip\begin{center}\Large\bfseries} \def\jmlrposttitle{\par\end{center}\vskip\aftertitskip} \newcommand*{\nametag}[1]{} \def\jmlrpreauthor{% \bgroup \def\nametag##1{##1}% \def\and{\unskip\enspace{\normalfont and}\enspace}% \def\addr{\mdseries\small\itshape}% \def\name{\ClassError{jmlr}{Use \string\Name{Author's Name} not \string\name}{}}% \def\email{\ClassError{jmlr}{Use \string\Email{address} not \string\email}{}}% \def\AND{\@endauthor\normalfont\hss \vskip \interauthorskip \@startauthor}% \@startauthor } \def\@email{\hfill\small\mdseries\scshape}% \def\@name{\normalsize\upshape\bfseries}% \def\@parsename#1 #2\end@parsename{% \def\@tmp{#2}% \ifx\@tmp\@nnil \def\@surname{#1}% \let\@nextparsename\@parsenamenoop \else \@getinitial#1-\relax\relax\end@getinitial \ifx\@forenames\@empty \def\@forenames{#1}% \protected@edef\@initials{\@initial}% \else \expandafter\toks@\expandafter{\@forenames}% \edef\@forenames{\space\the\toks@}% \expandafter\toks@\expandafter{\@initials}% \protected@edef\@initials{\the\toks@\@initial}% \fi \let\@nextparsename\@parsename \fi \@nextparsename#2\end@parsename } \def\@parsenamenoop#1\end@parsename{} \def\@getinitial#1#2-#3#4\end@getinitial{% \def\@jmlr@tmp{#3}% \if\@jmlr@tmp\relax \def\@initial{#1.}% \else \def\@initial{#1.-#3.}% \fi } \newcommand*{\Name}[2][]{% \def\@authorlist{#1}% \def\@forenames{}% \def\@surname{}% \def\nametag##1{}% \@parsename#2 \@nil\end@parsename \ifx\@shortauthor\@empty \ifx\@sauthor\@empty \global\let\@shortauthor\@surname \global\let\@firstsurname\@surname \fi \ifx\@authorlist\@empty \protected@xdef\@jmlrauthors{\@initials\space\@surname}% \else \protected@xdef\@jmlrauthors{\@authorlist}% \fi \global\let\@firstauthor\@jmlrauthors \else \ifx\@sauthor\@empty \expandafter\toks@\expandafter{\@shortauthor}% \protected@xdef\@shortauthor{\the\toks@\space\@surname}% \fi \ifx\@authorlist\@empty \ifx\@jmlrauthors\@empty \protected@xdef\@jmlrauthors{\@initials\space\@surname}% \else \protected@xdef\@jmlrauthors{\@jmlrauthors \noexpand\@jmlr@authors@sep \@initials\space\@surname}% \fi \else \ifx\@jmlrauthors\@empty \protected@xdef\@jmlrauthors{\@authorlist}% \else \protected@xdef\@jmlrauthors{\@jmlrauthors \noexpand\@jmlr@authors@sep \@authorlist }% \fi \fi \fi \def\nametag##1{##1}% \@name #2% } \newcommand*{\jmlrabbrnamelist}[1]{% \def\nametag##1{}% \def\@jmlr@authors@sep{, }% \def\@jmlr@namelist{}% \@for\@thisname:=#1\do{% \expandafter\@jmlrabbrname\expandafter{\@thisname}% \ifx\@jmlr@namelist\@empty \protected@edef\@jmlr@namelist{% \@initials\space\@surname }% \else \protected@edef\@jmlr@namelist{% \@jmlr@namelist \noexpand\@jmlr@authors@sep \@initials\space\@surname }% \fi }% \def\@jmlr@authors@sep{ \& }% \@jmlr@namelist } \newcommand*{\@jmlrabbrname}[1]{% \def\@initials{}% \def\@surname{}% \def\@forenames{}% \@parsename#1 \@nil\end@parsename } \newcommand*{\Email}[1]{{\@email #1}} \def\jmlrpostauthor{\@endauthor\egroup \par \vskip \aftermaketitskip \noindent \ifx\@editor\@empty \else \@starteditor \@editor \@endeditor \fi \vskip \aftermaketitskip } \def\@jmlrmaketitle{\vbox{\hsize\textwidth \linewidth\hsize \jmlrpretitle {% \def\titletag##1{##1}% \@title }% \jmlrposttitle \jmlrpreauthor \@author \jmlrpostauthor }} \newcommand*\kernelmachines{(for {\textsc{http://www.kernel-machines.org}})} \newcommand*{\editorname}{Editor} \newcommand*{\editorsname}{Editors} \let\@edname\editorname \def\@editor{} \def\editor#1{% \global\let\@edname\editorname \gdef\@editor{#1}% } \def\editors#1{% \global\let\@edname\editorsname \gdef\@editor{#1}% } \def\firstpageno#1{\setcounter{page}{#1}} \@ifundefined{startpage}{}{\firstpageno{\startpage}} \newcommand*{\@jmlrenddoc}{% \phantomsection \protected@edef\@currentlabelname{end of \@shorttitle}% \label{jmlrend}\null \global\let\@reprint\@empty } \newcommand*{\@titlefoot}{\scriptsize\copyright\space\@jmlryear \space\@jmlr@authors.\hfill \@reprint } \let\@reprint\@empty \newcommand{\reprint}[1]{% \gdef\@reprint{Reprinted with permission for JMLR#1}} \newcommand\ps@jmlrtps{% \let\@mkboth\@gobbletwo \def\@oddhead{\scriptsize \@jmlrproceedings \ifx\@jmlrvolume\@empty \else \space\@jmlrvolume \ifx\@jmlrissue\@empty\else(\@jmlrissue)\fi \ifx\@jmlrpages\@empty \ifx\@jmlryear\@empty \else \if\@jmlrissue\@empty,\fi \fi \else :% \fi \fi \ifx\@jmlrpages\@empty \else \ifx\@jmlrvolume\@empty\space\fi \@jmlrpages \ifx\@jmlryear\@empty\else,\fi \fi \ifx\@jmlryear\@empty\else\space\@jmlryear\fi \hfill \ifx\@jmlrworkshop\@empty \ifx\@jmlrsubmitted\@empty \else Submitted \@jmlrsubmitted \ifx\@jmlrpublished\@empty\else;\fi \fi \ifx\@jmlrpublished\@empty \else \space Published \@jmlrpublished \fi \else \space\@jmlrworkshop \fi }% \let\@evenhead\@oddhead \def\@oddfoot{\@titlefoot}% \let\@evenfoot\@oddfoot } \def\ps@jmlrps{% \let\@mkboth\@gobbletwo \def\@oddhead{\hfill {\small\scshape \@shorttitle} \hfill}% \def\@oddfoot{\hfill \small\rmfamily \thepage \hfill}% \def\@evenhead{\hfill {\small\scshape \@shortauthor} \hfill}% \def\@evenfoot{\hfill \small\rmfamily \thepage \hfill}% }% \pagestyle{jmlrps} \providecommand*{\@jmlrvolume}{} \newcommand*{\jmlrvolume}[1]{\renewcommand*{\@jmlrvolume}{#1}} \providecommand*{\@jmlrissue}{} \newcommand*{\jmlrissue}[1]{\renewcommand*{\@jmlrissue}{#1}} \providecommand*{\@jmlryear}{} \newcommand*{\jmlryear}[1]{\renewcommand*{\@jmlryear}{#1}} \providecommand*\@jmlrpages{\pageref{jmlrstart}--\pageref{jmlrend}} \newcommand*{\jmlrpages}[1]{\renewcommand*{\@jmlrpages}{#1}} \providecommand*\@jmlrsubmitted{} \newcommand*{\jmlrsubmitted}[1]{\renewcommand*{\@jmlrsubmitted}{#1}} \providecommand*\@jmlrpublished{} \newcommand*{\jmlrpublished}[1]{\renewcommand*{\@jmlrpublished}{#1}} \providecommand*\@jmlrworkshop{} \newcommand*{\jmlrworkshop}[1]{\renewcommand*{\@jmlrworkshop}{#1}} \newcommand*{\@jmlrauthors}{} \newcommand*{\@jmlr@authors}{\@jmlrauthors} \newcommand*{\jmlrauthors}[1]{\global\def\@jmlr@authors{#1}} \def\figurecaption#1#2{\noindent\hangindent 40pt \hbox to 36pt {\small\slshape #1 \hfil} \ignorespaces {\small #2}} \def\figurecenter#1#2{\centerline{{\slshape #1} #2}} \def\figurecenter#1#2{\centerline{{\small\slshape #1} {\small #2}}} \long\def\@makecaption#1#2{% \vskip 10pt \setbox\@tempboxa\hbox{#1: #2}% \ifdim \wd\@tempboxa >\hsize % IF longer than one line: \begin{list}{#1:}{% \settowidth{\labelwidth}{#1:} \setlength{\leftmargin}{\labelwidth} \addtolength{\leftmargin}{\labelsep} }\item #2 \end{list}\par % Output in quote mode \else % ELSE center. \hbox to\hsize{\hfil\box\@tempboxa\hfil} \fi} \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 } \providecommand{\ifprint}[2]{\ifgrayscale#1\else#2\fi} %% \begin{macrocode} \ifjmlrhtml \else \let\@org@Ginclude@graphics\Ginclude@graphics \def\Ginclude@graphics#1{% \begingroup \let\input@path\Ginput@path \ifprint{\filename@parse{#1-gray}}{\filename@parse{#1}}% \ifx\filename@ext\relax \@for\Gin@temp:=\Gin@extensions\do{% \ifx\Gin@ext\relax \Gin@getbase\Gin@temp \fi}% \else \ifprint{\filename@parse{#1}}{}% \Gin@getbase{\Gin@sepdefault\filename@ext}% \ifx\Gin@ext\relax \@warning{File `#1' not found}% \def\Gin@base{\filename@area\filename@base}% \edef\Gin@ext{\Gin@sepdefault\filename@ext}% \fi \fi \ifx\Gin@ext\relax \ifprint{\@org@Ginclude@graphics{#1}}% {% \@latex@error{File `#1' not found}% {I could not locate the file with any of these extensions:^^J% \Gin@extensions^^J\@ehc}% }% \else \@ifundefined{Gin@rule@\Gin@ext}% {\ifx\Gin@rule@*\@undefined \@latex@error{Unknown graphics extension: \Gin@ext}\@ehc \else \expandafter\Gin@setfile\Gin@rule@*{\Gin@base\Gin@ext}% \fi}% {\expandafter\expandafter\expandafter\Gin@setfile \csname Gin@rule@\Gin@ext\endcsname{\Gin@base\Gin@ext}}% \fi \endgroup} \fi \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} \def\thesection{\Alph{section}} \def\theHsection{\theHchapter.\Alph{section}} \def\presectionnum{Appendix~}% } \let\appendix\artappendix \newcommand{\booklinebreak}[1][]{} \newcommand{\BlackBox}{\rule{1.5ex}{1.5ex}} \newenvironment{proof}{\par\noindent{\bfseries\upshape Proof\ }}{\hfill\BlackBox\\[2mm]} \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} \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} \@addtoreset{section}{chapter} \newcommand*\chaptermark[1]{} \newcommand\bookchapter{% \if@openright\cleardoublepage\else\clearpage\fi \thispagestyle{plain}% \global\@topnum\z@ \@afterindentfalse \secdef\@chapter\@schapter} \newcommand\artchapter{% \ClassError{jmlr}{Chapters not permitted in articles}{}} \let\chapter\artchapter \def\@chaptoclabel{chapter} \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{chapter}% \if@mainmatter \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{\@chaptoclabel}% {\protect\numberline{\thechapter}#1}% \else \addcontentsline{toc}{\@chaptoclabel}{#1}% \fi \else \addcontentsline{toc}{\@chaptoclabel}{#1}% \fi \chaptermark{#1}% \addtocontents{lof}{\protect\addvspace{10\p@}}% \addtocontents{lot}{\protect\addvspace{10\p@}}% \if@twocolumn \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading \fi} \newcommand{\chaptertitleformat}[1]{% \Huge\bfseries#1% } \newcommand{\chapternumberformat}[1]{% \huge\bfseries \@chapapp\space#1\par\nobreak \vskip 20\p@ } \newcommand*{\chapterformat}{\raggedright} \newlength\postchapterskip \setlength\postchapterskip{40pt} \newlength\prechapterskip \setlength\prechapterskip{50pt} \def\@makechapterhead#1{% \null\vskip\prechapterskip {\parindent \z@ \normalfont\chapterformat \ifnum \c@secnumdepth >\m@ne \if@mainmatter \chapternumberformat{\thechapter}% \fi \fi \interlinepenalty\@M \chaptertitleformat{#1}\par\nobreak \vskip \postchapterskip }} \def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]% \else \@makeschapterhead{#1}% \@afterheading \fi} \def\@makeschapterhead#1{% \vspace*{\prechapterskip}% {\parindent \z@ \normalfont\chapterformat \interlinepenalty\@M \chaptertitleformat{#1}\par\nobreak \vskip \postchapterskip }} \newcommand*\l@chapter[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% \vskip 1.0em \@plus\p@ \setlength\@tempdima{1.5em}% \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \large\bfseries \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par \penalty\@highpenalty \endgroup \fi} \let\l@appendix\l@chapter \newcommand\chaptername{Chapter} \newcommand\frontmatter{% \cleardoublepage \@mainmatterfalse \renewcommand*{\theHchapter}{front-\thechapter}% \pagenumbering{roman}% \morefrontmatter } \newcommand\morefrontmatter{} \newcommand\mainmatter{% \cleardoublepage \@mainmattertrue \setcounter{chapter}{0}% \renewcommand*{\theHchapter}{\thechapter}% \pagenumbering{arabic}% \moremainmatter } \newcommand\moremainmatter{} \newcommand\backmatter{% \if@openright \cleardoublepage \else \clearpage \fi \@mainmatterfalse} \newcommand*{\booktocpreamble}{} \newcommand*{\booktocpostamble}{} \newcommand\booktableofcontents{% \if@twocolumn \@restonecoltrue\onecolumn \else \@restonecolfalse \fi \chapter*{\contentsname \@mkboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}% \booktocpreamble \@starttoc{toc}% \booktocpostamble \if@restonecol \twocolumn \else \clearpage \fi \@mkboth{}{}% } \let\arttableofcontents\tableofcontents \newcommand{\artpart}{% \def\toclevel@part{0}% \if@noskipsec \leavevmode\fi \par \addvspace{4ex}% \@afterindentfalse \secdef\@artpart\@sartpart } \let\@artpart\@part \let\@sartpart\@spart \newcommand\bookpart{% \def\toclevel@part{-1}% \if@openright \cleardoublepage \else \clearpage \fi \thispagestyle{plain}% \if@twocolumn \onecolumn \@tempswatrue \else \@tempswafalse \fi \preparthook \secdef\@bookpart\@sbookpart} \newcommand{\parttitleformat}[1]{% \Huge\bfseries#1% } \newcommand*{\@parttoclabel}{part} \def\@partapp{\partname} \newcommand{\partnumberformat}[1]{% \Huge\bfseries \@partapp\nobreakspace#1\par\nobreak \vskip 20\p@ } \newcommand{\preparthook}{\null\vfil} \newcommand*{\partformat}{\centering} \def\@bookpart[#1]#2{% \ifnum \c@secnumdepth >-2\relax \refstepcounter{part}% \addcontentsline{toc}{\@parttoclabel}{\protect\numberline{\thepart}#1}% \else \addcontentsline{toc}{\@parttoclabel}{#1}% \fi \markboth{}{}% {\interlinepenalty \@M \normalfont\partformat \ifnum \c@secnumdepth >-2\relax \partnumberformat{\thepart}% \fi \parttitleformat{#2}\par}% \postparthook} \def\@sbookpart#1{% {\interlinepenalty \@M \normalfont\partformat \parttitleformat{#1}\par}% \postparthook} \def\postparthook{\vfil\newpage \if@twoside \if@openright \null \thispagestyle{empty}% \newpage \fi \fi \if@tempswa \twocolumn \fi} \newcommand\bookappendix{\par \setcounter{table}{0}% \setcounter{figure}{0}% \zeroextracounters \par \gdef\theHchapter{\Alph {chapter}}% \xdef\Hy@chapapp{\Hy@appendixstring}% \setcounter{chapter}{0}% \setcounter{section}{0}% \gdef\@chapapp{\appendixname}% \gdef\thechapter{\@Alph\c@chapter}% \def\@write@jmlr@import{\@@write@jmlr@apdimport}% \csname appendixmore\endcsname } \newcommand*{\jmlrbookcommands}{% \let\part\bookpart \let\chapter\bookchapter \let\appendix\bookappendix \let\tableofcontents\booktableofcontents \def\thesection{\thechapter.\arabic{section}}% } \newcommand*{\jmlrarticlecommands}{% \let\part\artpart \let\chapter\artchapter \let\appendix\artappendix \let\tableofcontents\arttableofcontents \def\thesection{\arabic{section}}% } \newcommand*{\@jmlr@check@packages}{% \@ifpackageloaded{epsfig}{% \ClassError{jmlr}{Obsolete package `epsfig' detected. \MessageBreak Please use \string\includegraphics\space to include images instead}{}}{}% \@ifpackageloaded{psfig}{% \ClassError{jmlr}{Obsolete package `psfig' detected. \MessageBreak Please use \string\includegraphics\space to include images instead}{}}{}% \@ifpackageloaded{subfig}{% \ClassError{jmlr}{Package `subfig' detected.\MessageBreak This will cause a conflict if the article is incorporated \MessageBreak into a book using jmlbook.cls. \MessageBreak Please use \string\subfigure\space and \string\subtable\space instead}{}}{}% \@ifpackageloaded{theorem}{% \ClassError{jmlr}{Package `theorem' detected.\MessageBreak This can cause a conflict with other packages used by jmlr}{}}{}% \@ifpackageloaded{ntheorem}{% \ClassError{jmlr}{Package `ntheorem' detected.\MessageBreak This can cause a conflict with other packages used by jmlr}{}}{}% \@ifpackageloaded{amsthm}{% \ClassError{jmlr}{Package `amsthm' detected.\MessageBreak This package conflicts with the jmlr class}{}}{}% \@ifpackageloaded{pdfpages}{Package `pdfpages' detected.\MessageBreak This can cause a problem for jmlrbook.}{}% \@ifpackageloaded{geometry}{Package `geometry' detected.\MessageBreak This can cause a problem for jmlrbook.}{}% \@ifpackageloaded{tabularx}{% \ClassError{jmlr}{Package `tabularx' detected.\MessageBreak This will break footnote links.}{}}{}% } \AtBeginDocument{% \@jmlr@check@packages \let\@jmlr@check@packages\relax } \newcommand*{\jmlrSuppressPackageChecks}{% \let\@jmlr@check@packages\relax } \DeclareRobustCommand*{\obsoletefontcs}[1]{% \ClassWarning{jmlr}{Obsolete command \expandafter\string\csname#1\endcsname\space detected}% \csname #1 \endcsname } \renewcommand*{\bf}{% \obsoletefontcs{bf}% } \renewcommand*{\it}{% \obsoletefontcs{it}% } \renewcommand*{\sc}{% \obsoletefontcs{sc}% } \renewcommand*{\rm}{% \obsoletefontcs{rm}% } \renewcommand*{\sf}{% \obsoletefontcs{sf}% } \renewcommand*{\tt}{% \obsoletefontcs{tt}% } \endinput %% %% End of file `jmlr.cls'.