%\iffalse % jmlr.dtx generated using makedtx version 0.94b (c) Nicola Talbot % Command line args: % -src "jmlr.cls\Z=>jmlr.cls" % -src "jmlrbook.cls\Z=>jmlrbook.cls" % -doc "jmlr-manual.tex" % -author "Nicola Talbot" % -codetitle "jmlr.cls Code" % jmlr % Created on 2010/7/27 11:45 %\fi %\iffalse %<*package> %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} % %\fi % \iffalse % Doc-Source file to use with LaTeX2e % Copyright (C) 2010 Nicola Talbot, all rights reserved. % \fi % \iffalse %<*driver> \documentclass{nlctdoc} \usepackage{amsmath} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{ifthen} \usepackage[colorlinks, bookmarks, hyperindex=false, pdfauthor={Nicola L.C. Talbot}, pdftitle={jmlr: LaTeX2e Classes for the Journal of Machine Learning Research}, pdfkeywords={LaTeX,jmlr}]{hyperref} \CheckSum{3348} \OnlyDescription \begin{document} \DocInput{jmlr.dtx} \end{document} % %\fi %\MakeShortVerb{"} %\DeleteShortVerb{\|} % % \title{\LaTeXe\ Classes for the Journal of Machine %Learning Research} % \author{Nicola L. C. Talbot\\[10pt] %\url{http://theoval.cmp.uea.ac.uk/~nlct/}} % % \date{2010-07-27 (version 1.08)} % \maketitle %\tableofcontents % %\section{Introduction} % %The \clsfmt{jmlr} class is for articles that need to be formatted %according to the Journal of Machine Learning Research style. This %class is based on the \sty{jmlr2e} and \sty{jmlrwcp2e} packages %but has been adapted to enable it to work better with the %\cls{combine} class to collate the articles into a book. %\sectionref{sec:jmlr} describes how to use the \clsfmt{jmlr} class. % %The \clsfmt{jmlrbook} class is for combining JMLR articles into a book. %This class uses \cls{combine} and \sty{hyperref}, which are %troublesome enough on their own but together are quite fragile. The %\clsfmt{jmlrbook} class redefines some internals to get \clsfmt{combine} %and \clsfmt{hyperref} to work together but some packages (e.g.\ %\sty{subfig} and \sty{pdfpages}) are likely to mess everything up %and cause errors. This is why the guidelines to authors are fairly %stringent and why \clsfmt{jmlr} will give an error message if certain %packages are loaded.\footnote{Currently \clsfmt{jmlr} will check if %\sty{subfig}, \sty{pdfpages}, \sty{geometry}, \sty{psfig}, %\sty{epsfig} and \sty{theorem} are loaded and will throw an error. %If other packages are found to be a problem, they will be added to %the list.} The \clsfmt{jmlrbook} class works best with PDF\LaTeX\ so %authors should ensure that their articles can compile with %PDF\LaTeX. \sectionref{sec:jmlrbook} describes how to use the %\clsfmt{jmlrbook} class. % %The \app{makejmlrbook} Perl script can be used to make a book that %uses the \clsfmt{jmlrbook} class. In addition to creating the print %and online versions of the book, it will compile the individual %articles, running Bib\TeX\ where necessary, and create a set of %HTML files containing a list of all the articles imported into the %book along with links to the abstracts and PDFs of the individual %articles. \sectionref{sec:makejmlrbook} describes how %to use the \app{makejmlrbook} application. % %\section{Required Packages} % %The \clsfmt{jmlr} class is based on the \cls{scrartcl} class and loads %the following packages: \sty{amsmath}, \sty{amssymb}, %\sty{natbib}, \sty{url}, \sty{graphicx} and \sty{algorithm2e}. %Note that unlike the \sty{jmlr2e} and \sty{jmlrwcp2e} packages, %this class file does not load the obsolete \sty{epsfig} package. % %The \clsfmt{jmlrbook} class additionally loads the \cls{combine} class %and the following packages: \sty{hyperref}, \sty{xkeyval}, %\sty{combnat} and \sty{setspace}. % %The \app{makejmlrbook} script requires Perl, \TeX\ and \TeX4ht. % %\section{Guidelines for Article Authors} %\label{sec:jmlr} % %Article authors should use the \clsfmt{jmlr} class. This class %comes with example files \texttt{jmlr-sample.tex} and %\texttt{jmlrwcp-sample.tex}, which can be used as templates. % %The following class options are available: %\begin{description} %\item[\clsopt{nowcp}]The article is for the Journal of Machine %Learning Research (default). %\item[\clsopt{wcp}] The article is for JMLR Workshop and Conference %Proceedings. % %\item[\clsopt{twocolumn}] Use two-column style. % %\item[\clsopt{onecolumn}] Use one-column style (default). % %\item[\clsopt{color}] Color version (see \sectionref{sec:color}). % %\item[\clsopt{gray}] Grayscale version (see \sectionref{sec:color}). % %\item[\clsopt{tablecaptiontop}] in a \env{table} environment, %\ics{floatconts} puts the caption at the top. % %\item[\clsopt{tablecaptionbottom}] in a \env{table} environment, %\ics{floatconts} puts the caption at the bottom. %\end{description} % %\subsection{Title Information} % %The \clsfmt{jmlr} class uses different syntax from \sty{jmlr2e} and %\sty{jmlrwcp2e} to specify the title information. In particular, it %doesn't define \cs{jmlrheading} and \cs{ShortHeading}. Instead, the %following commands should be used: % %\begin{definition}[\DescribeMacro{\jmlrvolume}] %\cs{jmlrvolume}\marg{number} %\end{definition} %This specifies the volume number. For example: %\begin{verbatim} %\jmlrvolume{2} %\end{verbatim} % %\begin{definition}[\DescribeMacro{\jmlryear}] %\cs{jmlryear}\marg{year} %\end{definition} %This specifies the year. For example: %\begin{verbatim} %\jmlryear{2010} %\end{verbatim} % %\begin{definition}[\DescribeMacro{\jmlrsubmitted}] %\cs{jmlrsubmitted}\marg{date} %\end{definition} %This specifies the submission date. % %\begin{definition}[\DescribeMacro{\jmlrpublished}] %\cs{jmlrpublished}\marg{date} %\end{definition} %This specifies the publication date. % %\begin{definition}[\DescribeMacro{\jmlrworkshop}] %\cs{jmlrworkshop}\marg{title} %\end{definition} %This specifies the workshop title (for use with the \clsopt{wcp} %class option). % %The title information is specified using the commands described %below. These commands should typically go in the preamble. As %with most class files, The title itself is produced using %\begin{definition}[\DescribeMacro{\maketitle}] %\cs{maketitle} %\end{definition} %This command should go after \verb|\begin{document}|. For example: %\begin{verbatim} %\begin{document} %\maketitle %\end{verbatim} %Before \cs{maketitle}, you must specify the title information %using the following commands: % %\begin{definition}[\DescribeMacro{\title}] %\cs{title}\oarg{short title}\marg{title} %\end{definition} %This specifies the article's title. A short title for the page %header can be supplied via the optional argument \meta{short title}. % %\begin{definition}[\DescribeMacro{\editor}] %\cs{editor}\marg{name} %\end{definition} %This specifies the editor's name. If there is more than one %editor, use: %\begin{definition}[\DescribeMacro{\editors}] %\cs{editors}\marg{names} %\end{definition} % %\begin{definition}[\DescribeMacro{\author}] %\cs{author}\marg{author specs} %\end{definition} %This specifies the author. The specifications \meta{author specs} %are a bit different to \sty{jmlr2e} and \sty{jmlrwcp2e}. Use %\begin{definition}[\DescribeMacro{\Name}] %\cs{Name}\marg{author's name} %\end{definition} %to specify the author's name. Note that if the surname contains a %space it must be grouped (enclosed in braces \{\}). Similarly if %the initial letter of each forename is a diacritic it must be %grouped. (See below for examples.) %\begin{definition}[\DescribeMacro{\Email}] %\cs{Email}\marg{author's email} %\end{definition} %This specifies the author's email address. It should only be used %within the argument to \cs{author}. % %\begin{definition}[\DescribeMacro{\and}] %\cs{and} %\end{definition} %This should be used to separate two authors with the same address. % %\begin{definition}[\DescribeMacro{\AND}] %\cs{AND} %\end{definition} %This should be used to separate authors with different addresses. % %\begin{definition}[\DescribeMacro{\\}] %\verb|\\| %\end{definition} %This should be used before an author's address or between authors %with the same address where there are more that two authors. % %\begin{definition}[\DescribeMacro{\addr}] %\cs{addr} %\end{definition} %This should be used at the start of the address. % %\begin{description} %\item[Example 1] Two authors with the same address: %\begin{verbatim} %\author{\Name{Jane Doe} \Email{abc@sample.com}\and % \Name{John {Basey Fisher}} \Email{xyz@sample.com}\\ % \addr Address} %\end{verbatim} %In this example, the second author has a space in his surname %so the surname needs to be grouped. % %\item[Example 2] Three authors with the same address: %\begin{verbatim} %\author{\Name{Fred Arnold {de la Cour}} \Email{an1@sample.com}\\ % \Name{Jack Jones} \Email{an3@sample.com}\\ % \Name{{\'E}louise {\'E}abhla Finchley} \Email{an2@sample.com}\\ % \addr Address} %\end{verbatim} %In this example, the third author has an accent on her %forename initials so grouping is required. % %\item[Example 3] Authors with a different address: %\begin{verbatim} %\author{\Name{John Smith} \Email{abc@sample.com}\\ % \addr Address 1 % \AND % \Name{May Brown} \Email{xyz@sample.com}\\ % \addr Address 2 % } %\end{verbatim} %\end{description} % %\subsection{Font Changing Commands} % %Use the \LaTeXe\ font changing commands, such as \cs{bfseries} or %\cs{textbf}\marg{text}, rather than the obsolete \LaTeX2.09 %commands, such as \cs{bf}. % %\begin{definition}[\DescribeMacro{\url}] %\cs{url}\marg{address} %\end{definition} %This will typeset \meta{address} in a typewriter font. Special %characters, such as \verb|~|, are correctly displayed. Example: %\begin{verbatim} %\url{http://theoval.cmp.uea.ac.uk/~nlct/} %\end{verbatim} % %\begin{definition}[\DescribeMacro{\mailto}] %\cs{mailto}\marg{email address} %\end{definition} %This will typeset the given email address in a typewriter font. %Note that this is not the same as \cs{Email}, which should only be %used in the argument of \cs{author}. % %\subsection{Structure} % %\begin{definition}[\DescribeEnv{abstract}] %\cs{begin}\{abstract\}\\ %\meta{text}\\ %\cs{end}\{abstract\} %\end{definition} %The abstract text should be displayed using the \envfmt{abstract} %environment. % %\begin{definition}[\DescribeEnv{keywords}] %\cs{begin}\{keywords\}\meta{keyword list}\cs{end}\{keywords\} %\end{definition} %The keywords should be displayed using the \envfmt{keywords} %environment. % %\begin{definition}[\DescribeMacro{\acks}] %\cs{acks}\marg{text} %\end{definition} %This displays the acknowledgements. % %\begin{definition}[\DescribeMacro{\section}] %\cs{section}\marg{title} %\end{definition} %Section titles are created using \cs{section}. The heading is %automatically numbered and can be cross-referenced using %\cs{label} and \cs{ref}. Unnumbered sections can be produced %using: %\begin{definition}[\DescribeMacro{\section*}] %\cs{section*}\marg{title} %\end{definition} % %\begin{definition}[\DescribeMacro{\subsection}] %\cs{subsection}\marg{title} %\end{definition} %Sub-section titles are created using \cs{subsection}. Unnumbered %sub-sections can be produced using: %\begin{definition}[\DescribeMacro{\subsection*}] %\cs{subsection*}\marg{title} %\end{definition} % %\begin{definition}[\DescribeMacro{\subsubsection}] %\cs{subsubsection}\marg{title} %\end{definition} %Sub-sub-section titles are created using \cs{subsubsection}. %Unnumbered sub-sub-sections can be produced using: %\begin{definition}[\DescribeMacro{\subsubsection*}] %\cs{subsubsection*}\marg{title} %\end{definition} % %Further sectioning levels can be obtained using \cs{paragraph} %and \cs{subparagraph}, but these are unnumbered with running heads. % %\begin{definition}[\DescribeMacro{\appendix}] %\cs{appendix} %\end{definition} %Use \cs{appendix} to switch to the appendices. This changes %\cs{section} to produce an appendix. Example: %\begin{verbatim} %\appendix %\section{Proof of Theorems} %\end{verbatim} % %\subsection{Citations and Bibliography} % %The \clsfmt{jmlr} class automatically loads \sty{natbib} and sets %the bibliography style to \texttt{plainnat}. References should %be stored in a \texttt{.bib} file. % %\begin{definition}[\DescribeMacro{\bibliography}] %\cs{bibliography}\marg{bib file} %\end{definition} %This displays the bibliography. % %\begin{definition}[\DescribeMacro{\citep}] %\cs{citep}\oarg{pre note}\oarg{post note}\marg{label} %\end{definition} %Use \cs{citep} for a parenthetical citation. % %\begin{definition}[\DescribeMacro{\citet}] %\cs{citet}\oarg{note}\marg{label} %\end{definition} %Use \cs{citet} for a textual citation. % %See the \ctandoc{natbib} for further details. % %\subsection{Figures and Tables} % %Floats, such as figures, tables and algorithms, are moving objects %and are supposed to float to the nearest convenient location. %Please don't force them to go in a particular place. In general %it's best to use the \texttt{htbp} specifier and don't put %the float in the middle of a paragraph (that is, make sure there's %a paragraph break above and below the float). Floats are supposed %to have a little extra space above and below them to make them %stand out from the rest of the text. This extra space is put in %automatically and shouldn't need modifying. % %To ensure consistency, please \emph{don't} try changing the %format of the caption by doing something like: %\begin{verbatim} %\caption{\textit{A Sample Caption.}} %\end{verbatim} %or %\begin{verbatim} %\caption{\em A Sample Caption.} %\end{verbatim} %You can, of course, change the font for individual words or %phrases. For example: %\begin{verbatim} %\caption{A Sample Caption With Some \emph{Emphasized Words}.} %\end{verbatim} % %The \clsfmt{jmlr} class provides the following command for displaying %the contents of a figure or table: %\begin{definition}[\DescribeMacro{\floatconts}] %\cs{floatconts}\marg{label}\marg{caption command}\marg{contents} %\end{definition} %This ensures that the caption is correctly positioned and that %the contents are centered. For example: %\begin{verbatim} %\begin{table}[htbp] %\floatconts % {tab:example}% label % {\caption{An Example Table}}% caption command % {% % \begin{tabular}{ll} % \bfseries Dataset & \bfseries Result\\ % Data1 & 0.123456 % \end{tabular} % } %\end{table} %\end{verbatim} % %The \clsfmt{jmlr} class automatically loads \sty{graphicx} which %defines: %\begin{definition}[\DescribeMacro{\includegraphics}] %\cs{includegraphics}\oarg{options}\marg{file name} %\end{definition} %where \meta{options} is a comma-separated list of options. % %For example, suppose you have an image called %\texttt{mypic.png} in a subdirectory called \texttt{images}: %\begin{verbatim} %\begin{figure}[htbp] %\floatconts % {fig:example}% label % {\caption{An Example Figure}}% caption command % {\includegraphics[width=0.5\textwidth]{images/mypic}} %\end{figure} %\end{verbatim} % %Note that you shouldn't specify the file extension when including %the image. It's helpful if you can also provide a grayscale %version of color images. This should be labeled as the color %image but with \texttt{-gray} immediately before the extension. %(The extension need not be the same as that of the color image.) %For example, if you have an image called \texttt{mypic.pdf}, the %grayscale can be called \texttt{mypic-gray.pdf}, %\texttt{mypic-gray.png} or \texttt{mypic-gray.jpg}. %See \sectionref{sec:color} for further details. % %\begin{definition}[\DescribeMacro{\includeteximage}] %\cs{includeteximage}\oarg{options}\marg{file name} %\end{definition} %If your image file is made up of \LaTeX\ code (e.g.\ \sty{tikz} %commands) the file can be included using \cs{includeteximage}. %The optional argument is a key=value comma-separated list %where the keys are a subset of those provided by %\cs{includegraphics}. The main keys are: \texttt{width}, %\texttt{height}, \texttt{scale} and \texttt{angle}. % %\subsubsection{Sub-Figures and Sub-Tables} % %The \sty{subfig} package causes a problem for \clsfmt{jmlrbook} so %the \clsfmt{jmlr} class will give an error if it is used. Therefore %the \clsfmt{jmlr} class provides its own commands for including %sub-figures and sub-tables. % %\begin{definition}[\DescribeMacro{\subfigure}] %\cs{subfigure}\oarg{title}\oarg{valign}\marg{contents} %\end{definition} %This makes a sub-figure where \meta{contents} denotes the contents %of the sub-figure. This should also include the \cs{label}. %The first optional argument \meta{title} indicates a caption for %the sub-figure. By default, the sub-figures are aligned at the %base. This can be changed with the second optional argument %\meta{valign}, which may be one of: \texttt{t} (top), \texttt{c} %(centred) or \texttt{b} (base). % %For example, suppose there are two images files, \texttt{mypic1.png} %and \texttt{mypic2.png}, in the subdirectory \texttt{images}. %Then they can be included as sub-figures as follows: %\begin{verbatim} %\begin{figure}[htbp] %\floatconts % {fig:example2}% label for whole figure % {\caption{An Example Figure.}}% caption for whole figure % {% % \subfigure{% % \label{fig:pic1}% label for this sub-figure % \includegraphics{images/mypic1} % }\qquad % space out the images a bit % \subfigure{% % \label{fig:pic2}% label for this sub-figure % \includegraphics{images/mypic2} % } % } %\end{figure} %\end{verbatim} % %\begin{definition}[\DescribeMacro{\subtable}] %\cs{subtable}\oarg{title}\oarg{valign}\marg{contents} %\end{definition} %This is an analogous command for sub-tables. The default value %for \meta{valign} is \texttt{t}. % %\subsection{Algorithms} % %\begin{definition}[\DescribeEnv{algorithm}] %\cs{begin}\{algorithm\}\\ %\meta{contents}\\ %\cs{end}\{algorithm\} %\end{definition} %Enumerated textual algorithms can be displayed using the %\envfmt{algorithm} environment. Within this environment, use %\ics{caption} to set the caption (and \ics{label} to cross-reference %it). Within the body of the environment you can use the %\env{enumerate} environment. % %\begin{definition}[\DescribeEnv{enumerate*}] %\cs{begin}\{enumerate*\}\\ %\cs{item} \meta{text}\\ %\ldots\\ %\cs{end}\{enumerate*\} %\end{definition} %If you want to have nested \env{enumerate} environments but you want %to keep the same numbering throughout the algorithm, you can use the %\envfmt{enumerate*} environment, provided by the \clsfmt{jmlr} %class. For example: %\begin{verbatim} %\begin{enumerate*} % \item Set the label of vertex $s$ to 0 % \item Set $i=0$ % \begin{enumerate*} % \item \label{step:locate}Locate all unlabelled vertices % adjacent to a vertex labelled $i$ and label them $i+1$ % \item If vertex $t$ has been labelled, % \begin{enumerate*} % \item[] the shortest path can be found by backtracking, and % the length is given by the label of $t$. % \end{enumerate*} % otherwise % \begin{enumerate*} % \item[] increment $i$ and return to step~\ref{step:locate} % \end{enumerate*} % \end{enumerate*} %\end{enumerate*} %\end{algorithm} %\end{verbatim} % % %\begin{definition}[\DescribeEnv{algorithm2e}] %\cs{begin}\{algorithm2e\}\\ %\meta{contents}\\ %\cs{end}\{algorithm2e\} %\end{definition} %Pseudo code can be displayed using the \envfmt{algorithm2e} environment, %provided by the \sty{algorithm2e} package, which is automatically %loaded. For example: %\begin{verbatim} %\begin{algorithm2e} %\caption{Computing Net Activation} %\label{alg:net} %\dontprintsemicolon %\linesnumbered %\KwIn{$x_1, \ldots, x_n, w_1, \ldots, w_n$} %\KwOut{$y$, the net activation} %$y\leftarrow 0$\; %\For{$i\leftarrow 1$ \KwTo $n$}{ % $y \leftarrow y + w_i*x_i$\; %} %\end{algorithm2e} %\end{verbatim} % %See the \ctandoc{algorithm2e} for more details. % %\subsection{Description Lists} % %\begin{definition}[\DescribeEnv{altdescription}] %\cs{begin}\{altdescription\}\marg{widest label}\\ %\cs{item}\oarg{label} \meta{item text}\\ %\cs{end}\{altdescription\} %\end{definition} %In addition to the standard \env{description} environment, the %\clsfmt{jmlr} class also provides the \envfmt{altdescription} environment. %This has an argument that should be the widest label used in the %list. For example: %\begin{verbatim} %\begin{altdescription}{differentiate} %\item[add] A method that adds two variables. %\item[differentiate] A method that differentiates a function. %\end{altdescription} %\end{verbatim} % %\subsection{Theorems, Lemmas etc} % %The \clsfmt{jmlr} class provides the following theorem-like %environments: \env{theorem}, \env{example}, \env{lemma}, %\env{proposition}, \env{remark}, \env{corollary}, \env{definition}, %\env{conjecture} and \env{axiom}. Within the body of those %environments, you can use the \env{proof} environment to display the %proof if need be. The theorem-like environments all take an %optional argument, which gives the environment a title. For example: % %\begin{verbatim} %\begin{theorem}[An Example Theorem] %\label{thm:example} %This is the theorem. %\begin{proof} %This is the proof. %\end{proof} %\end{theorem} %\end{verbatim} % %\subsection{Cross-Referencing} %\label{sec:crossref} % %Always use \ics{label} when cross-referencing, rather than writing %the number explicitly. The \clsfmt{jmlr} class provides some %convenience commands to assist referencing. These commands, %described below, can all take a comma-separated list of labels. % %\begin{definition}[\DescribeMacro{\sectionref}] %\cs{sectionref}\marg{label list} %\end{definition} %Used to refer to a section or sections. For example, if you defined %a section as follows: %\begin{verbatim} %\section{Results}\label{sec:results} %\end{verbatim} %you can refer to it as follows: %\begin{verbatim} %The results are detailed in \sectionref{sec:results}. %\end{verbatim} %This command may also be used for sub-sections and sub-sub-sections. % %\begin{definition}[\DescribeMacro{\appendixref}] %\cs{appendixref}\marg{label list} %\end{definition} %Used to refer to an appendix or multiple appendices. % %\begin{definition}[\DescribeMacro{\equationref}] %\cs{equationref}\marg{label list} %\end{definition} %Used to refer to an equation or multiple equations. % %\begin{definition}[\DescribeMacro{\tableref}] %\cs{tableref}\marg{label list} %\end{definition} %Used to refer to a table or multiple tables. This can also be %used for sub-tables where the main table number is also required. % %\begin{definition}[\DescribeMacro{\subtabref}] %\cs{subtabref}\marg{label list} %\end{definition} %Used to refer to sub-tables without the main table number, e.g. %(\emph{a}) or (\emph{b}). % %\begin{definition}[\DescribeMacro{\figureref}] %\cs{figureref}\marg{label list} %\end{definition} %Used to refer to a figure or multiple figures. This can also %be used for sub-figures where the main figure number is also %required, e.g.\ 2(\emph{a}) or 4(\emph{b}). % %\begin{definition}[\DescribeMacro{\subfigref}] %\cs{subfigref}\marg{label list} %\end{definition} %Used to refer to sub-figures without the main figure number, e.g. %(\emph{a}) or (\emph{b}). % %\begin{definition}[\DescribeMacro{\algorithmref}] %\cs{algorithmref}\marg{label list} %\end{definition} %Used to refer to an algorithm or multiple algorithms. % %\begin{definition}[\DescribeMacro{\theoremref}] %\cs{theoremref}\marg{label list} %\end{definition} %Used to refer to a theorem or multiple theorems. % %\begin{definition}[\DescribeMacro{\lemmaref}] %\cs{lemmaref}\marg{label list} %\end{definition} %Used to refer to a lemma or multiple lemmas. % %\begin{definition}[\DescribeMacro{\remarkref}] %\cs{remarkref}\marg{label list} %\end{definition} %Used to refer to a remark or multiple remarks. % %\begin{definition}[\DescribeMacro{\corollaryref}] %\cs{corollaryref}\marg{label list} %\end{definition} %Used to refer to a corollary or multiple corollaries. % %\begin{definition}[\DescribeMacro{\definitionref}] %\cs{definitionref}\marg{label list} %\end{definition} %Used to refer to a definition or multiple definitions. % %\begin{definition}[\DescribeMacro{\conjectureref}] %\cs{conjectureref}\marg{label list} %\end{definition} %Used to refer to a conjecture or multiple conjectures. % %\begin{definition}[\DescribeMacro{\axiomref}] %\cs{axiomref}\marg{label list} %\end{definition} %Used to refer to an axiom or multiple axioms. % %\begin{definition}[\DescribeMacro{\exampleref}] %\cs{exampleref}\marg{label list} %\end{definition} %Used to refer to an example or multiple examples. % %\subsection{Mathematics} % %The \clsfmt{jmlr} class loads the \sty{amsmath} package so you can use %any of the commands and environments defined in that package. A %brief summary of some of the more common commands and environments %is provided here. See the \ctandoc{amsmath} for further details. % %\begin{definition}[\DescribeMacro{\set}] %\cs{set}\marg{text} %\end{definition} %In addition to the commands provided by \sty{amsmath}, the %\clsfmt{jmlr} class also provides the \cs{set} command which can %be used to typeset a set. For example: %\begin{verbatim} %The universal set is denoted $\set{U}$ %\end{verbatim} % %Unnumbered single-line equations should be displayed using %\cs{[} and \cs{]}. For example: %\begin{verbatim} %\[E = m c^2\] %\end{verbatim} %Numbered single-line equations should be displayed using the %\env{equation} environment. For example: %\begin{verbatim} %\begin{equation}\label{eq:trigrule} %\cos^2\theta + \sin^2\theta \equiv 1 %\end{equation} %\end{verbatim} %Multi-lined numbered equations should be displayed using the %\env{align} environment. For example: %\begin{verbatim} %\begin{align} %f(x) &= x^2 + x\label{eq:f}\\ %f'(x) &= 2x + 1\label{eq:df} %\end{align} %\end{verbatim} %Unnumbered multi-lined equations should be displayed using the %\env{align*} environment. For example: %\begin{verbatim} %\begin{align*} %f(x) &= (x+1)(x-1)\\ %&= x^2 - 1 %\end{align*} %\end{verbatim} %If you want to mix numbered with unnumbered lines use the %\env{align} environment and suppress unwanted line numbers with %\cs{nonumber}. For example: %\begin{verbatim} %\begin{align} %y &= x^2 + 3x - 2x + 1\nonumber\\ %&= x^2 + x + 1\label{eq:y} %\end{align} %\end{verbatim} %An equation that is too long to fit on a single line can be %displayed using the \env{split} environment. % %Text can be embedded in an equation using \ics{text}\marg{text} or %you can use \ics{intertext}\marg{text} to interupt a multi-line %environment such as \env{align}. % %Predefined operator names are listed in \tableref{tab:operatornames}. %For additional operators, either use %\begin{definition}[\DescribeMacro{\operatorname}] %\cs{operatorname}\marg{name} %\end{definition} %for example %\begin{verbatim} %If $X$ and $Y$ are independent, %$\operatorname{var}(X+Y) = %\operatorname{var}(X) + \operatorname{var}(Y)$ %\end{verbatim} %or declare it with %\begin{definition}[\DescribeMacro{\DeclareMathOperator}] %\cs{DeclareMathOperator}\marg{command}\marg{name} %\end{definition} %for example %\begin{verbatim} %\DeclareMathOperator{\var}{var} %\end{verbatim} %and then use this new command: %\begin{verbatim} %If $X$ and $Y$ are independent, %$\var(X+Y) = \var(X)+\var(Y)$ %\end{verbatim} % %If you want limits that go above and %below the operator (like \ics{sum}) use the starred versions %(\ics{operatorname*} or \ics{DeclareMathOperator*}). % %\begin{table}[htbp] %\caption{Predefined Operator Names (taken from % \sty{amsmath} documentation)} %\label{tab:operatornames}% %\vskip\baselineskip %\centering %\begin{tabular}{rlrlrlrl} %\cs{arccos} & $\arccos$ & \cs{deg} & $\deg$ & \cs{lg} & $\lg$ & \cs{projlim} & $\projlim$ \\ %\cs{arcsin} & $\arcsin$ & \cs{det} & $\det$ & \cs{lim} & $\lim$ & \cs{sec} & $\sec$ \\ %\cs{arctan} & $\arctan$ & \cs{dim} & $\dim$ & \cs{liminf} & $\liminf$ & \cs{sin} & $\sin$ \\ %\cs{arg} & $\arg$ & \cs{exp} & $\exp$ & \cs{limsup} & $\limsup$ & \cs{sinh} & $\sinh$ \\ %\cs{cos} & $\cos$ & \cs{gcd} & $\gcd$ & \cs{ln} & $\ln$ & \cs{sup} & $\sup$ \\ %\cs{cosh} & $\cosh$ & \cs{hom} & $\hom$ & \cs{log} & $\log$ & \cs{tan} & $\tan$ \\ %\cs{cot} & $\cot$ & \cs{inf} & $\inf$ & \cs{max} & $\max$ & \cs{tanh} & $\tanh$ \\ %\cs{coth} & $\coth$ & \cs{injlim} & $\injlim$ & \cs{min} & $\min$ \\ %\cs{csc} & $\csc$ & \cs{ker} & $\ker$ & \cs{Pr} & $\Pr$ %\end{tabular}\par %\begin{tabular}{rlrl} %\cs{varlimsup} & $\varlimsup$ %& \cs{varinjlim} & $\varinjlim$\\ %\cs{varliminf} & $\varliminf$ %& \cs{varprojlim} & $\varprojlim$ %\end{tabular} % %\end{table} % %\subsection{Color vs Grayscale} %\label{sec:color} % %It's helpful if authors supply grayscale versions of their %articles in the event that the article is to be incorporated into %a black and white printed book. With external PDF, PNG or JPG %graphic files, you just need to supply a grayscale version of the %file. For example, if the file is called \texttt{myimage.png}, %then the gray version should be \texttt{myimage-gray.png} or %\texttt{myimage-gray.pdf} or \texttt{myimage-gray.jpg}. You don't %need to modify your code. The \clsfmt{jmlr} class checks for %the existence of the grayscale version if it is print mode %(provided you have used \ics{includegraphics} and haven't %specified the file extension). % %\begin{definition}[\DescribeMacro{\ifprint}] %\cs{ifprint}\marg{true part}\marg{false part} %\end{definition} %You can use \cs{ifprint} to determine which mode you are in. %For example: %\begin{verbatim} %in \figureref{fig:nodes}, the %\ifprint{dark gray}{purple} %ellipse represents an input and the %\ifprint{light gray}{yellow} ellipse %represents an output. %\end{verbatim} %Another example: %\begin{verbatim} %{\ifprint{\bfseries}{\color{red}}important text!} %\end{verbatim} % %You can use the class option \clsopt{gray} to see how the %document will appear in gray scale mode. % %The \sty{xcolor} class is loaded with the \pkgoptfmt{x11names} %option, so you can use any of the x11 predefined colors (listed %in the \ctandoc{xcolor}). % %\subsection{Where To Go For Help} % %If you have a \LaTeX\ query, the first place to go to is the %\urlfootref{http://www.tex.ac.uk/faq}{UK TUG FAQ}. % %If you are unfamiliar or just getting started with \LaTeX, there's %a list of on-line introductions to \LaTeX\ at: %\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=man-latex} % %There are also forums, mailing lists and newsgroups. For example, %the \LaTeX\ Community (\url{http://www.latex-community.org/}), %the \texttt{texhax} mailing list %(\url{http://tug.org/mailman/listinfo/texhax}) and %\texttt{comp.text.tex} (archives available at %\url{http://groups.google.com/group/comp.text.tex/}). % %Documentation for packages or classes can be found using the %\texttt{texdoc} application. For example: %\begin{verbatim} %texdoc natbib %\end{verbatim} %Alternatively, you can go to %\texttt{http://www.ctan.org/pkg/}\meta{name} where %\meta{name} is the name of the package. For example: %\url{http://www.ctan.org/pkg/natbib} % %For a general guide to preparing papers (regardless of whether you %are using \LaTeX\ or a word processor), see Kate L.~Turabian, \qt{A %manual for writers of term papers, theses, and dissertations}, The %University of Chicago Press, 1996. % %\section{Guidelines for Production Editors} %\label{sec:jmlrbook} % %The \clsfmt{jmlrbook} class can be used to combine articles that %use the \clsfmt{jmlr} document class into a book. The following sample %files are provided: \texttt{paper1/paper1.tex}, %\texttt{paper2/paper2.tex}, \texttt{paper3/paper3.tex}, %\texttt{jmlr-sample.tex}, \texttt{jmlrwcp-sample.tex} and %\texttt{jmlrbook-sample.tex}. All but the last named one are %articles using the \clsfmt{jmlr} class. The last one %(\texttt{jmlrbook-sample.tex}) uses the \clsfmt{jmlrbook} class file to %combine the articles into a book. Note that no modifications are %needed to the files using the \clsfmt{jmlr} class when they are %imported into the book. They can either be compiled as stand-alone %articles or with the entire book. % %Before you compile the book, make sure that all the articles %compile as stand-alone documents (and run Bib\TeX\ where %necessary). You can use the \app{makejmlrbook} Perl script to compile %the book and create associated HTML files. See %\sectionref{sec:makejmlrbook} for details. % %\subsection{\clsfmt{jmlrbook} Class Options} %\begin{description} %\item[\clsopt{nowcp}]The imported pre-published articles were %published in the Journal of Machine Learning Research (default). %\item[\clsopt{wcp}] The imported pre-published articles were %published in the JMLR Workshop and Conference Proceedings. % %If the book has a mixture of JMLR and JMLR WCP articles, you %can switch between them using %\begin{definition}[\DescribeMacro{\jmlrwcp}] %\cs{jmlrwcp} %\end{definition} %and %\begin{definition}[\DescribeMacro{\jmlrnowcp}] %\cs{jmlrnowcp} %\end{definition} %Alternatively, you can set the name of the journal or conference %proceedings using: %\begin{definition}[\DescribeMacro{\jmlrproceedings}] %\cs{jmlrproceedings}\marg{short title}\marg{long title} %\end{definition} % %\item[\clsopt{color}] Color version (see \sectionref{sec:color}). %Use this option for the on-line version with hyperlinks enabled %(default). % %\item[\clsopt{gray}] Grayscale version (see \sectionref{sec:color}). %Use this option for the print version without hyperlinks. % %\item[\clsopt{tablecaptiontop}] in a \env{table} environment, %\ics{floatconts} puts the caption at the top. % %\item[\clsopt{tablecaptionbottom}] in a \env{table} environment, %\ics{floatconts} puts the caption at the bottom. % %\item[\clsopt{letterpaper}] Set the paper size to letter (default). % %\item[\clsopt{7x10}] Set the paper size to $7\times10$ inches. % %\item[\clsopt{prehyperref}] The \clsfmt{jmlrbook} automatically loads %the \sty{hyperref} package, but some packages need to be loaded %before \sty{hyperref}. This information can be specified using %the \clsopt{prehyperref} option. This is a key=value option. For %example, to load the packages \styfmt{foo} and \styfmt{bar} before %\sty{hyperref}, you can do: %\begin{verbatim} %\documentclass[prehyperref={\usepackage{foo,bar}}]{jmlrbook} %\end{verbatim} %or: %\begin{verbatim} %\documentclass[prehyperref={\usepackage{foo}\usepackage{bar}}]{jmlrbook} %\end{verbatim} % %\item[\clsopt{10pt}] Use 10pt as the normal text size. %\item[\clsopt{11pt}] Use 11pt as the normal text size (default). %\item[\clsopt{12pt}] Use 12pt as the normal text size. % %\end{description} % %\subsection{The Preamble} % %Any packages that the imported articles load (which aren't %automatically loaded by \clsfmt{jmlr}) must be loaded in the book's %preamble. For example, if one or more of the articles load the %\sty{siunitx} package, this package must be loaded in the book. % %Commands that are defined in the imported articles will be local %to that article unless they have been globally defined using %\ics{gdef} or \ics{global}. Since most authors use \ics{newcommand} %and \ics{newenvironment} (or \ics{renewcommand} and %\ics{renewenvironment}) this shouldn't cause a conflict if more %that one article has defined the same command or environment. %For example, in the sample files supplied, both %\texttt{paper1/paper1.tex} and \texttt{paper2/paper2.tex} have %defined the command \cs{samplecommand} using \cs{newcommand}. As %long as this command isn't also defined in the book, there won't %be a conflict. % %\begin{definition}[\DescribeMacro{\title}] %\cs{title}\oarg{PDF title}\marg{book title} %\end{definition} %In the book preamble, \cs{title} sets the book title and the optional %argument is used for the PDF title, which will be displayed %when the reader views the PDF file's properties in their PDF viewer. %(Note that in the imported articles, \cs{title} sets the article's %title and the optional argument sets the short title for the %page header and table of contents.) % %\begin{definition}[\DescribeMacro{\author}] %\cs{author}\oarg{PDF author(s)}\marg{book author(s)} %\end{definition} %In the book preamble, \cs{author} sets the book's author (or editor) %and the optional argument is used for the PDF author, which will be %displayed when the reader views the PDF file's properties in their %PDF viewer. (Note that in the imported articles, \cs{author} sets %the article's author and the optional argument sets the short author %list for the page header.) % %\begin{definition}[\DescribeMacro{\volume}] %\cs{volume}\marg{number} %\end{definition} %This command sets the book's volume number. Omit if the book has no %volume number. % %\begin{definition}[\DescribeMacro{\subtitle}] %\cs{subtitle}\marg{sub-title} %\end{definition} %This command sets the book's subtitle. Omit if the book has no %sub-title. % %\begin{definition}[\DescribeMacro{\logo}] %\cs{logo}\marg{image command} %\end{definition} %This sets the book's title image. Use \ics{includegraphics} and %omit the file extension. If you provide a grayscale version as %well as a color version, the grayscale version will be used for %the print version of the book. (See \sectionref{sec:color} %for further details.) % %\begin{definition}[\DescribeMacro{\team}] %\cs{team}\marg{team title} %\end{definition} %This can be used to set the name of the editorial team. This %command may be omitted if not required. % %\begin{definition}[\DescribeMacro{\productioneditor}] %\cs{productioneditor}\marg{name} %\end{definition} %This command may be used to name the production editor. The command %may be omitted if not required. % %See \sectionref{sec:modifytitle} for details on how to modify the %layout of the title page. % %\subsection{Main Book Commands} % %All commands that are provided by the \clsfmt{jmlr} class are %also available with the \clsfmt{jmlrbook} class, but some commands %might behave differently depending on whether they are in the %main part of the book or within the imported articles. % %In the main part of the book you can use the following commands: %\begin{definition}[\DescribeMacro{\maketitle}] %\cs{maketitle} %\end{definition} %This displays the book's title page. Note that \cs{maketitle} has %a different effect when used in imported articles. % %\begin{definition}[\DescribeMacro{\frontmatter}] %\cs{frontmatter} %\end{definition} %Use this command at the start of the front matter (e.g.\ before the %foreword or preface). This will make chapters unnumbered even if you %use \cs{chapter} instead of \cs{chapter*}. It also sets the page %style and sets the page numbering to lower case Roman numerals. % %\begin{definition}[\DescribeEnv{authorsignoff}] %\cs{begin}\{authorsignoff\}\\ %\meta{author list}\\ %\cs{end}\{authorsignoff\} %\end{definition} %This environment may be used by the author signing off at the end of a chapter such as the %foreword. Within the environment use: %\begin{definition}[\DescribeMacro{\Author}] %\cs{author}\marg{details} %\end{definition} %for the author's details. More than one \cs{Author} should be used %if there is more than one author. Example: %\begin{verbatim} %\begin{authorsignoff} %\Author{Nicola Talbot\\ %University of East Anglia} %\Author{Anne Author\\ %University of No Where} %\end{authorsignoff} %\end{verbatim} % %\begin{definition}[\DescribeEnv{signoff}] %\cs{begin}\{signoff\}\oarg{team name}\marg{date}\\ %\meta{editor list}\\ %\cs{end}\{signoff\} %\end{definition} %This environment may be used by the editorial team when signing off %a chapter such as the preface. If the optional argument is omitted, %\qt{The Editorial Team} is used. % %Within the environment use: %\begin{definition}[\DescribeMacro{\Editor}] %\cs{Editor}\marg{details} %\end{definition} %for each editor. Example: %\begin{verbatim} %\begin{signoff}{March 2010} %% First editor: %\Editor{Nicola Talbot\\ %University of East Anglia\\ %\mailto{N.Talbot@uea.ac.uk}} %% Second editor: %\Editor{Anne Editor\\ %University of Nowhere\\ %\mailto{ae@sample.com}} %\end{signoff} %\end{verbatim} % %\begin{definition}[\DescribeMacro{\tableofcontents}] %\cs{tableofcontents} %\end{definition} %This command displays the book's table of contents. Note that it %has a different effect if used in an imported article. % %\begin{definition}[\DescribeMacro{\mainmatter}] %\cs{mainmatter} %\end{definition} %Use this command to switch to the book's main matter. This will %switch the chapter numbering back on, reset the page numbering to %Arabic and set up the main page style. % %\begin{definition}[\DescribeMacro{\part}] %\cs{part}\oarg{short title}\marg{title} %\end{definition} %If used in the main part of the book, this command will start a %new part and issue a clear double page. Note that this command %has a different effect if used in an imported article. % %\begin{definition}[\DescribeMacro{\addtocpart}] %\cs{addtocpart}\marg{title} %\end{definition} %This adds \meta{title} to the table of contents, issues a clear %double page, but doesn't display any text or affect the part %numbering. % %\begin{definition}[\DescribeMacro{\chapter}] %\cs{chapter}\oarg{short title}\marg{title} %\end{definition} %This command may be used in the main body of the book but will %cause an error if used within an imported article. % %\begin{definition}[\DescribeMacro{\section}] %\cs{section}\oarg{short title}\marg{title} %\end{definition} %\begin{definition}[\DescribeMacro{\subsection}] %\cs{subsection}\oarg{short title}\marg{title} %\end{definition} %\begin{definition}[\DescribeMacro{\subsubsection}] %\cs{subsubsection}\oarg{short title}\marg{title} %\end{definition} %\begin{definition}[\DescribeMacro{\paragraph}] %\cs{paragraph}\oarg{short title}\marg{title} %\end{definition} %\begin{definition}[\DescribeMacro{\subparagraph}] %\cs{subparagraph}\oarg{short title}\marg{title} %\end{definition} %These commands may be used in the main body of the book or within %imported articles. In the main body of the book they need to be %within a chapter and will be numbered according to the chapter. % %\begin{definition}[\DescribeMacro{\appendix}] %\cs{appendix} %\end{definition} %If used in the main body of the book, this will switch to the %book appendices. Subsequent \cs{chapter} commands will produce the %appendices. If used within an imported article, it will switch %to the article appendices and won't affect the main part of %the book. % %\begin{definition}[\DescribeEnv{jmlrpapers}] %\cs{begin}\{jmlrpapers\}\\ %\meta{imported papers}\\ %\cs{end}\{jmlrpapers\} %\end{definition} %This environment must be used when importing articles. Within this %environment, use the following commands to import articles: %\begin{definition}[\DescribeMacro{\importpubpaper}] %\cs{importpubpaper}\oarg{label}\marg{directory}\marg{file}\marg{pages} %\end{definition} %This imports an article that has already been published elsewhere. %The \meta{pages} argument should be the page range from the %\emph{previously published} version of this article. This may not %necessarily be the same as the page range of the article in the book. %The directory the imported file is contained in is is given by %\meta{directory}. If the file is in the same directory as the %book, use a dot. The file name is given by \meta{file}. The article %is also given a label, specified by the optional argument. This %is \meta{directory}/\meta{file} by default. The label is used %as a prefix to labels in the imported articles which ensures that %cross-references are unique. You can also use this label to reference %the article elsewhere in the book (see \sectionref{sec:bkcrossref}). % %\begin{definition}[\DescribeMacro{\importpaper}] %\cs{importpaper}\oarg{label}\marg{directory}\marg{file} %\end{definition} %Imports an article that is being published in the book. The %arguments are the same as above except that there is no page %range (the page range is computed automatically). % %\begin{definition}[\DescribeMacro{\importarticle}] %\cs{importarticle}\oarg{label}\marg{directory}\marg{file} %\end{definition} %This imports an article that hasn't been published elsewhere. There %is no page range, but the other arguments are the same as %those describe above for \cs{importpubpaper}. % %Example: to import a previously published paper %\texttt{paper1/paper1.tex} and an unpublished paper %\texttt{paper2/paper2.tex}: %\begin{verbatim} %\begin{jmlrpapers} %\importpubpaper{paper1}{paper1}{23--45} %\importarticle{paper2}{paper2} %\end{jmlrpapers} %\end{verbatim} % %\subsubsection{Two Column Articles in a One Column Book} % %The \clsfmt{jmlrbook} class column style will override the column style %of the imported articles. You can use the \clsopt{twocolumn} class %option to \clsfmt{jmlrbook}, but this will make the whole book with %two columns. If you only want the imported articles to be in two %columns, then put \ics{twocolumn} in the \env{jmlrpapers} %environment to switch on two column formatting. The effect will be %localised to the end of the environment. % %\subsubsection{Cross-Referencing} %\label{sec:bkcrossref} % %You can cross-reference other parts of the book using the %standard \cs{label}/\cs{ref} mechanism, but if you want to %reference something within an imported article, you must prefix %the label with the label given when importing the article (that %is, the optional argument to \ics{importpubpaper}, %\ics{importpaper} or \cs{importarticle}). For example, if you %want to reference a section labeled \texttt{sec:results} in the %imported paper \texttt{paper1/paper1.tex}, you would need to do: %\begin{verbatim} %see Section~\ref{paper1/paper1sec:results} %\end{verbatim} %or %\begin{verbatim} %see \sectionref{paper1/paper1sec:results} %\end{verbatim} % %In addition to the commands described in \sectionref{sec:crossref}, %the \clsfmt{jmlrbook} class also provides the following %cross-referencing commands: % %\begin{definition}[\DescribeMacro{\chapterref}] %\cs{chapterref}\marg{label list} %\end{definition} %Reference a chapter or chapters. The argument is a comma-separated %list of labels. % %\begin{definition}[\DescribeMacro{\articlepageref}] %\cs{articlepageref}\marg{label} %\end{definition} %This displays the starting page number of the article whose label %is given by \meta{label}. Note that this must a single label, not %a list. For example: %\begin{verbatim} %An interesting article starts on page~\articlepageref{paper1/paper1} %\end{verbatim} % %\begin{definition}[\DescribeMacro{\articlepagesref}] %\cs{articlepagesref}\marg{label} %\end{definition} %This displays the page range of the article whose label is %given by \meta{label}. Again, this must be a single label, not a %list. This page range is unrelated to the \meta{pages} argument of %\ics{importpubarticle}. % %\begin{definition}[\DescribeMacro{\articletitleref}] %\cs{articletitleref}\marg{label} %\end{definition} %This displays the short title for the article whose label is %given by \meta{label}. Again, this must be a single label, not a %list. % %\begin{definition}[\DescribeMacro{\articleauthorref}] %\cs{articleauthorref}\marg{label} %\end{definition} %This displays the author list for the article whose label is %given by \meta{label}. Again, this must be a single label, not a %list. % %\subsection{Altering the Layout of the Main Title Page} %\label{sec:modifytitle} % %\begin{definition}[\DescribeMacro{\titlebody}] %\cs{titlebody} %\end{definition} %The main body of the book's title page is given by the command %\cs{titlebody}. Within the definition of this command, you can %use: %\begin{definition}[\DescribeMacro{\SetTitleElement}] %\cs{SetTitleElement}\marg{element}\marg{pre}\marg{post} %\end{definition} %where \meta{element} can be: \texttt{title}, \texttt{volume}, %\texttt{issue}\footnote{The default title page layout doesn't use %\texttt{issue}, but if required it can be set with \ics{issue}\marg{number}}, %\texttt{subtitle}, \texttt{logo}, \texttt{team}, \texttt{author}, %\texttt{date}, \texttt{productioneditor}. The \meta{pre} and %\meta{post} arguments specify what to do before and after the %element. Note that \cs{SetTitleElement} does nothing if that %element hasn't been set. For example, if \cs{volume} has been %omitted or \verb|\volume{}| is used, then %\begin{verbatim} %\SetTitleElement{volume}{\mainvolumefont}{\postmainvolume} %\end{verbatim} %will do nothing (so you don't end up with \textbf{Volume :}). % %\begin{definition}[\DescribeMacro{\IfTitleElement}] %\cs{IfTitleElement}\marg{element}\marg{true part}\marg{false part} %\end{definition} %This does \meta{true part} if \meta{element} has been set %otherwise it does \meta{false part}. For example, %\cs{postmainvolume} is defined as: %\begin{verbatim} %\newcommand{\postmainvolume}{% % \IfTitleElement{subtitle}{}{:}\par\relax %} %\end{verbatim} %This means that it will only print a colon after the volume %number if the subtitle has been set. % %The default definition of \cs{titlebody} is: %\begin{verbatim} %\newcommand{\titlebody}{% % \SetTitleElement{title}{\maintitlefont}{\postmaintitle}% % \SetTitleElement{volume}{\mainvolumefont}{\postmainvolume}% % \SetTitleElement{subtitle}{\mainsubtitlefont}{\postmainsubtitle}% % \SetTitleElement{logo}{\mainlogofont}{\postmainlogo}% % \SetTitleElement{team}{\mainteamfont}{\postmainteam}% % \SetTitleElement{author}{\mainauthorfont}{\postmainauthor}% % \SetTitleElement{productioneditor}{\mainproductioneditorfont}% % {\postmainproductioneditor}% %} %\end{verbatim} % %\subsection{Potential Pitfalls} % %The \cls{combine} class and \sty{hyperref} package are %individually both easily broken by packages that change certain %internals and they don't ordinarily work together. The %\clsfmt{jmlrbook} class applies patches to the internal referencing %mechanism to make them work together, but it's a fairly fragile %alliance. Some packages are known to break it, for example %\sty{subfig}, \sty{pdfpages} and \sty{geometry}. This is why the %\clsfmt{jmlr} class checks for known problem packages and generates an %error message to dissuade authors from using them. It's likely that %there are other packages that may cause a problem and, as they are %found, they will be added to the check list. Also, it's possible for %an author to disable the package checking mechanism if they are %determined to use a particular package. % %In the event that an article has loaded a problem package, the %editors will have to decide whether to ask the author to change %the article so that it doesn't cause a problem or to make the changes %themselves or to find a way of fudging things to get it to work. It %depends on the level of \LaTeX\ expertise amongst the editors and %the time available. % %Another problem that can arise is when different articles use %packages that conflict. For example, one article uses package %\styfmt{foo} and another uses package \styfmt{bar}. Each article compiles %okay as a stand-alone article, but when combined \styfmt{foo} and %\styfmt{bar} conflict. Another problem may occur when articles load the %same package but with conflicting package options. To reduce the %chance of this occurring, the \clsfmt{jmlr} class loads some commonly %used packages. For example, it loads the \sty{algorithm2e} %package with the \pkgoptfmt{algo2e} and \pkgoptfmt{ruled} options and %provides the \env{algorithm} environment in addition to %\sty{algorithm2e}'s \env{algorithm2e} environment. % %Articles that use different input encodings can also cause a %problem. For example, if one article uses \texttt{utf8} and another %uses \texttt{latin1}. If the authors have directly entered a %diacritic or ligature, such as \'e or \ae, instead of using a %\LaTeX\ command, such as \cs{'e} or \cs{ae}, then %this will cause an error on compiling the book.\footnote{and may also %cause a problem for the editor's text editor.} The choice then is to %either change all non-keyboard characters with the appropriate %\LaTeX\ commands or to use the \cs{inputencoding} command, supplied %by the \sty{inputenc} package, to switch the encoding at the start %of each article. % %Authors who use \cs{nonumber} within an \env{equation} environment %can mess up the hyperlinks. Remove \cs{nonumber} and change the %equation environment to \cs{[} \ldots\ \cs{]} (or just make it a %numbered equation). % %If the article changes the graphics path using \cs{graphicspath}, %\clsfmt{jmlrbook} won't find the graphics if the imported articles %aren't in the same directory as the book. % %\subsection{Creating the Book Using \appfmt{makejmlrbook}} %\label{sec:makejmlrbook} % %The \app{makejmlrbook} Perl script is designed to make it %easier to produce the print and online versions of the book, as %well as producing an HTML index of all the imported articles with %links to the abstracts and PDFs of individual articles. Note that %for it to work properly, the articles must be imported using %\cs{importarticle}, \cs{importpaper} or \cs{importpubpaper}, and %the imported articles must use the \clsfmt{jmlr} class. % %On UNIX style systems, the script can be invoked from a terminal %using: %\begin{prompt} %makejmlrbook \oarg{options} \meta{filename} %\end{prompt} %If that doesn't work, or you aren't using a UNIX style operating %system, the script can be invoked from a terminal or command %prompt using: %\begin{prompt} %perl makejmlrbook \oarg{options} \meta{filename} %\end{prompt} %The mandatory argument \meta{filename} is the name of the master %\TeX\ file containing the book. It must use the \clsfmt{jmlrbook} %class. You may omit the \texttt{.tex} extension. For example, if %the file is called \texttt{proceedings.tex}, you can call %\app{makejmlrbook} as follows: %\begin{verbatim} %perl makejmlrbook proceedings %\end{verbatim} %This will create the files \texttt{proceedings-print.pdf} (the %print version) and \texttt{proceedings-online.pdf} (the online %version). It will also create a directory (folder) called %\texttt{html} in which the HTML files and individual article PDFs %will be placed. % %The options to \app{makejmlrbook} are as follows: %\begin{description} %\item[--online] Generate the color on-line version (default). %\item[--noonline] Don't generate the color on-line version. %\item[--print] Generate the grayscale print version (default). %\item[--noprint] Don't generate the grayscale print version. %\item[--html] Generate the HTML files and the individual article %PDFs (default). %\item[--nohtml] Don't generate the HTML files and the individual %article PDFs. %\item[--logourl \meta{url}] Make the logo on the HTML index page link %to \meta{url}. %\item[--batchtex] Run \TeX\ in batch mode. %\item[--nobatchtex] Don't run \TeX\ in batch mode (default). %\item[--quieter] Reduce chatter to STDOUT (doesn't eliminate %all messages). This also runs \TeX\ in batch mode. %\item[--noquieter] Don't reduce messages to STDOUT (default). %\item[--version] Display the version number and exit. %\item[--help] List all available options. %\end{description} % %There are also some more advanced options, but these haven't been %fully tested: %\begin{description} %\item[--latexapp \meta{name}] Application used to call \LaTeX. %Defaults to \qt{pdflatex}. %\item[--latexopt \meta{string}] Options to pass to \LaTeX. %\item[--format \meta{string}] Output format (defaults to \qt{pdf}). %This may need to be changed if you change the \LaTeX\ application. %\item[--bibtexapp \meta{name}] Application use to process the %bibliography. Defaults to \qt{bibtex}. %\item[--bibtexopt \meta{string}] Options to pass to Bib\TeX. %\end{description} % %\StopEventually{\clearpage\phantomsection % \addcontentsline{toc}{section}{Index}\PrintIndex %} % % % %\section{jmlr.cls Code} %\iffalse % \begin{macrocode} %<*jmlr.cls> % \end{macrocode} %\fi % This class is based on the \sty{jmlr2e} package but was updated to use % \cls{scrartcl} instead of \cls{article} and was modified to make sure % it works with \clsfmt{jmlrbook} which uses both \cls{combine} and % \sty{hyperref}. % % Declare class and required TeX format: % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{jmlr}[2010/07/27 v1.08 (NLCT) Journal of Machine Learning Research] % \end{macrocode} % The following conditionals are provided to make this class play nicely % with combine and aren't required for articles. % \begin{macrocode} \newif\if@openright \newif\if@mainmatter \@mainmattertrue % \end{macrocode} %\begin{macro}{\ifgrayscale} % Determine whether to select grayscale alternatives % \begin{macrocode} \@ifundefined{ifgrayscale}{ \newif\ifgrayscale \grayscalefalse }{} \DeclareOption{color}{\grayscalefalse \PassOptionsToPackage{color}{xcolor}} \DeclareOption{gray}{\grayscaletrue \PassOptionsToPackage{gray}{xcolor}} % \end{macrocode} %\end{macro} %\begin{macro}{\iftablecaptiontop} % Determine if the table captions should go at the top. %\changes{1.07}{2010-06-17}{new} % \begin{macrocode} \newif\iftablecaptiontop \tablecaptiontoptrue \DeclareOption{tablecaptiontop}{\tablecaptiontoptrue} \DeclareOption{tablecaptionbottom}{\tablecaptionbottomtrue} % \end{macrocode} %\end{macro} %\begin{macro}{\ifjmlrhtml} % Determine if we are using \app{TeX4ht}: % \begin{macrocode} \newif\ifjmlrhtml \jmlrhtmlfalse \DeclareOption{html}{\jmlrhtmltrue} \DeclareOption{nohtml}{\jmlrhtmlfalse} % \end{macrocode} %\end{macro} % Normal font size (default is 11pt) % \begin{macrocode} \def\pt@size{11pt} \DeclareOption{10pt}{\renewcommand{\pt@size}{10}% \PassOptionsToClass{\CurrentOption}{article}} \DeclareOption{11pt}{\renewcommand{\pt@size}{11}% \PassOptionsToClass{\CurrentOption}{article}} \DeclareOption{12pt}{\renewcommand{\pt@size}{12}% \PassOptionsToClass{\CurrentOption}{article}} % \end{macrocode} %\begin{macro}{\@jmlrproceedings} % The name of the proceedings. % \begin{macrocode} \newcommand*{\@jmlrproceedings}{Journal of Machine Learning Research} % \end{macrocode} %\end{macro} %\begin{macro}{\@jmlrabbrvproceedings} % The abbreviated name of the proceedings. % \begin{macrocode} \newcommand*{\@jmlrabbrvproceedings}{JMLR} % \end{macrocode} %\end{macro} %\begin{macro}{\jmlrproceedings} % Sets the title and abbreviation of the proceedings % \begin{macrocode} \newcommand*{\jmlrproceedings}[2]{% \renewcommand*{\@jmlrabbrvproceedings}{#1}% \renewcommand*{\@jmlrproceedings}{#2}% } % \end{macrocode} %\end{macro} %\begin{macro}{\nowcp} % \begin{macrocode} \newcommand*{\jmlrnowcp}{% \jmlrproceedings{JMLR}{Journal of Machine Learning Research}% } % \end{macrocode} %\end{macro} %\begin{macro}{\wcp} % \begin{macrocode} \newcommand*{\jmlrwcp}{% \jmlrproceedings{JMLR WC\&P}{JMLR: Workshop and Conference Proceedings}% } % \end{macrocode} %\end{macro} % This isn't an article for a workshop: % \begin{macrocode} \DeclareOption{nowcp}{\jmlrnowcp} % \end{macrocode} % This is an article for a workshop % \begin{macrocode} \DeclareOption{wcp}{\jmlrwcp} % \end{macrocode} % The default paper size is letter, but provide $7 \times 10$in % alternative: % \begin{macrocode} \newif\ifviiXx \viiXxfalse \DeclareOption{7x10}{\viiXxtrue} \DeclareOption{letterpaper}{\PassOptionsToPackage{letterpaper}{typearea}} % \end{macrocode} % Pass all remaining options to \cls{scrartcl} class: % \begin{macrocode} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} % \end{macrocode} % Execute required options: % \begin{macrocode} \ExecuteOptions{twoside,letterpaper} % \end{macrocode} % Process options: % \begin{macrocode} \ProcessOptions % \end{macrocode} % Load \cls{scrartcl} class % \begin{macrocode} \LoadClass[pointednumbers,normalheadings]{scrartcl} % \end{macrocode} % Can't use \sty{geometry} package because it doesn't play nicely % with the \cls{combine} class. % \begin{macrocode} \ifviiXx \setlength{\paperwidth}{7in} \setlength{\paperheight}{10in} \setlength{\textwidth}{5.25in} \setlength{\textheight}{8.2in} \setlength{\topmargin}{0.4in} \setlength{\headheight}{0.2in} \setlength{\headsep}{0.2in} \setlength{\hoffset}{-1in} \setlength{\voffset}{-1in} \setlength{\evensidemargin}{0.75in} \setlength{\oddsidemargin}{1.0in} \else \setlength{\oddsidemargin}{0.25in} \setlength{\evensidemargin}{0.25in} \setlength{\marginparwidth}{0.07 true in} \setlength{\topmargin}{-0.5in} \addtolength{\headsep}{0.25in} \setlength{\textheight}{8.5 true in} \setlength{\textwidth}{6.0 true in} \fi % \end{macrocode} % Required packages: % \begin{macrocode} \RequirePackage{amsmath} \RequirePackage{amssymb} \RequirePackage{natbib} \RequirePackage{graphicx} \RequirePackage{url} \RequirePackage[x11names]{xcolor} \RequirePackage[algo2e,ruled]{algorithm2e} % \end{macrocode} % Float parameters: the following settings were copied from jmlr2e.sty % \begin{macrocode} \renewcommand{\topfraction}{0.95} % let figure take up nearly whole page \renewcommand{\textfraction}{0.05} % let figure take up nearly whole page % \end{macrocode} % widows/orphans % \begin{macrocode} \widowpenalty=10000\relax \clubpenalty=10000\relax % \end{macrocode} % Set two-sided format % \begin{macrocode} \@twosidetrue % \end{macrocode} % Put marginal notes on the outside of the page % \begin{macrocode} \@mparswitchtrue % \end{macrocode} % \begin{macrocode} \def\ds@draft{\overfullrule 5pt} % \end{macrocode} % Use the plainnat bibliography style and set up the required % punctuation. % \begin{macrocode} \bibliographystyle{plainnat} \bibpunct{(}{)}{;}{a}{,}{,} % \end{macrocode} %\subsection{Sections} % \begin{macrocode} \addtokomafont{section}{\rmfamily\large} \addtokomafont{subsection}{\rmfamily\normalsize} \addtokomafont{subsubsection}{\rmfamily\mdseries\normalsize\scshape} \addtokomafont{paragraph}{\rmfamily\normalsize} \addtokomafont{subparagraph}{\rmfamily\itshape\normalsize} % \end{macrocode} % Insert possible prefix to section number. % \begin{macrocode} \renewcommand*{\othersectionlevelsformat}[1]{% \csname pre#1num\endcsname\csname the#1\endcsname\autodot\enskip} % \end{macrocode} %\subsection{Footnotes} % This code has been taken from jmlr2e.sty % \begin{macrocode} \long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize \advance\@tempdima-15pt\parshape \@ne 15pt \@tempdima}\par \parindent 2em\noindent \hbox to \z@{\hss{\@thefnmark}. \hfil}#1} % \end{macrocode} %\subsection{Article abstract} % This code has been taken from jmlr2e.sty but with \cs{bf} updated % to \cs{bfseries} %\begin{environment}{abstract} % \begin{macrocode} \ifjmlrhtml \renewenvironment{abstract}{\HCode{

}Abstract\HCode{

}}{}% \else \renewenvironment{abstract} {\centerline{\large\bfseries Abstract}\vspace{0.7ex}% \bgroup \leftskip 20pt\rightskip 20pt\small\noindent\ignorespaces}% {\par\egroup\vskip 0.25ex} \fi % \end{macrocode} %\end{environment} %\subsection{Keywords} % This code has been taken from jmlr2e.sty but with \cs{bf} updated % to \cs{bfseries}. %\begin{environment}{keywords} % \begin{macrocode} \newenvironment{keywords} {\bgroup\leftskip 20pt\rightskip 20pt \small\noindent{\bfseries Keywords:} \ignorespaces}% {\par\egroup\vskip 0.25ex} % \end{macrocode} %\end{environment} %\subsection{Title Page Information} % This code has been taken from jmlr2e.sty. % % Title stuff, borrowed in part from aaai92.sty % \begin{macrocode} \newlength\aftertitskip \newlength\beforetitskip \newlength\interauthorskip \newlength\aftermaketitskip % \end{macrocode} %% Changeable parameters. % \begin{macrocode} \setlength\aftertitskip{0.1in plus 0.2in minus 0.2in} \setlength\beforetitskip{0.05in plus 0.08in minus 0.08in} \setlength\interauthorskip{0.08in plus 0.1in minus 0.1in} \setlength\aftermaketitskip{0.3in plus 0.1in minus 0.1in} % \end{macrocode} % %\begin{macro}{\title} % Override definition of \cs{title} to allow for an optional % argument (short title) % \begin{macrocode} \renewcommand*{\title}[2][\@title]{% \def\@shorttitle{#1}% \def\@title{#2}% \jmlrtitlehook } % \end{macrocode} %\end{macro} %\begin{macro}{\jmlrtitlehook} % \begin{macrocode} \newcommand*{\jmlrtitlehook}{} % \end{macrocode} %\end{macro} % %\begin{macro}{\author} % Override definition of \cs{author} to allow for an optional % argument (list of authors for page heading) % \begin{macrocode} \renewcommand*{\author}[2][]{% \def\@author{#2}% \def\@sauthor{#1}% \ifx\@sauthor\@empty \else \let\@shortauthor\@sauthor \fi \jmlrauthorhook } % \end{macrocode} %\end{macro} %\begin{macro}{\jmlrauthorhook} % \begin{macrocode} \newcommand*{\jmlrauthorhook}{} % \end{macrocode} %\end{macro} % %\begin{macro}{\@shortauthor} % \begin{macrocode} \newcommand*{\@shortauthor}{} % \end{macrocode} %\end{macro} % %\begin{macro}{\@firstauthor} % \begin{macrocode} \newcommand*{\@firstauthor}{} % \end{macrocode} %\end{macro} %\begin{macro}{\@firstsurname} % \begin{macrocode} \newcommand*{\@firstsurname}{} % \end{macrocode} %\end{macro} % %\begin{macro}{\jmlrlength} % \begin{macrocode} \newlength\jmlrlength % \end{macrocode} %\end{macro} % %\begin{macro}{\@makefntext} %\changes{1.08}{2010-07-27}{new} % Redefine \cs{@makefntext} so that the text between the footnote % symbol and the footnote text can be redefined. (It looks odd % having a full stop after a symbol.) % \begin{macrocode} \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% } % \end{macrocode} %\end{macro} %\begin{macro}{\footnoteseptext} %\changes{1.08}{2010-07-27}{new} % The separation text between the footnote symbol and the footnote % text. % \begin{macrocode} \newcommand*{\footnoteseptext}{. } % \end{macrocode} %\end{macro} % %\begin{macro}{\jmlrmaketitle} % Make the title % \begin{macrocode} \def\jmlrmaketitle{% \jmlrpremaketitlehook \def\@jmlr@authors@sep{, }% \par \begingroup % \end{macrocode} %\changes{1.08}{2010-07-27}{modified footnote marker in the footnote %text so that it is raised and isn't followed by a full stop} % \begin{macrocode} \def\footnoteseptext{ }% \def\thempfn{\textsuperscript{\thefootnote}}% \def\thefootnote{\fnsymbol{footnote}}% % \end{macrocode} %\changes{1.07}{2010-06-30}{added check for two column mode} % \begin{macrocode} \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\relax \def\@jmlr@authors@sep{ \& }% } % \end{macrocode} %\end{macro} % %\begin{macro}{\jmlrmaketitlehook} % \begin{macrocode} \newcommand*{\jmlrmaketitlehook}{} % \end{macrocode} %\end{macro} %\begin{macro}{\jmlrpremaketitlehook} % \begin{macrocode} \newcommand*{\jmlrpremaketitlehook}{} % \end{macrocode} %\end{macro} % % Provide a different title layout for HTML %\begin{macro}{\jmlrhtmlmaketitle} % \begin{macrocode} \newcommand{\jmlrhtmlmaketitle}{% \ifx\@jmlrauthors\@empty \sbox\jmlrbox{\let\addr\relax\@author}% \fi \noindent\HCode{

}\@title\HCode{

} \noindent\@jmlrauthors } % \end{macrocode} %\end{macro} %%\begin{macro}{\jmlrbox} % Define a save box % \begin{macrocode} \newsavebox\jmlrbox % \end{macrocode} %\end{macro} %\begin{macro}{\maketitle} % If we're creating HTML, set \cs{maketitle} to % \cs{jmlrhtmlmaketitle}, otherwise set it to \cs{jmlrmaketitle} % \begin{macrocode} \ifjmlrhtml \let\maketitle\jmlrhtmlmaketitle \else \let\maketitle\jmlrmaketitle \fi % \end{macrocode} %\end{macro} % % Author and editor information. % \begin{macrocode} \def\@startauthor{\noindent \normalsize\bfseries} \def\@endauthor{} \def\@starteditor{\noindent \small {\bfseries \@edname:~}} \def\@endeditor{\normalsize} % \end{macrocode} % Provide hooks to make it easier to adapted with \cls{combine} % class. %\begin{macro}{\jmlrpretitle} % \begin{macrocode} \def\jmlrpretitle{\vskip\beforetitskip\begin{center}\Large\bfseries} % \end{macrocode} %\end{macro} %\begin{macro}{\jmlrposttitle} % \begin{macrocode} \def\jmlrposttitle{\par\end{center}\vskip\aftertitskip} % \end{macrocode} %\end{macro} %\begin{macro}{\jmlrpreauthor} % \begin{macrocode} \def\jmlrpreauthor{% \bgroup \def\and{\unskip\enspace{\normalfont and}\enspace}% \def\addr{\small\itshape}% \def\name{\ClassError{jmlr}{Use \string\Name{Author's Name} not \string\name}{}}% \def\email{\ClassError{jmlr}{Use \string\Email{address} not \string\email}{}}% \def\AND{\@endauthor\normalfont\hss \vskip \interauthorskip \@startauthor}% \@startauthor } % \end{macrocode} %\end{macro} %\begin{macro}{\@email} % \begin{macrocode} \def\@email{\hfill\small\mdseries\scshape}% % \end{macrocode} %\end{macro} %\begin{macro}{\@name} % \begin{macrocode} \def\@name{\normalsize\upshape\bfseries}% % \end{macrocode} %\end{macro} % %\begin{macro}{\@parsename} % Parse a name. Appends forename to \cs{@forenames} and stores % surname in \cs{@surname}. % \begin{macrocode} \def\@parsename#1 #2\@nil{% \def\@tmp{#2}% \ifx\@tmp\@empty \def\@surname{#1}% \let\@nextparsename\@parsenamenoop \else \@getinitial#1-\relax\relax\end \ifx\@forenames\@empty \def\@forenames{#1}% \protected@edef\@initials{\@initial}% \else \expandafter\toks@\expandafter{\@forenames}% \edef\@forenames{\space\the\toks@}% \expandafter\toks@\expandafter{\@initials}% \protected@edef\@initials{\the\toks@\@initial}% \fi \let\@nextparsename\@parsename \fi \@nextparsename#2\@nil } \def\@parsenamenoop#1\@nil{} % \end{macrocode} %\end{macro} % %\begin{macro}{\@getinitial} % \begin{macrocode} \def\@getinitial#1#2-#3#4\end{% \def\@jmlr@tmp{#3}% \if\@jmlr@tmp\relax \def\@initial{#1.}% \else \def\@initial{#1.-#3.}% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\Name} % Get the author's name and add surname to \cs{@shortauthors}. % (Surnames with \qt{von} parts or with spaces in should be % enclosed in braces) % \begin{macrocode} \newcommand*{\Name}[1]{% \def\@forenames{}% \def\@surname{}% \@parsename#1 \@nil \ifx\@shortauthor\@empty \ifx\@sauthor\@empty \global\let\@shortauthor\@surname \global\let\@firstsurname\@surname \fi \protected@xdef\@jmlrauthors{\@initials\space\@surname}% \global\let\@firstauthor\@jmlrauthors \else \ifx\@sauthor\@empty \expandafter\toks@\expandafter{\@shortauthor}% \protected@xdef\@shortauthor{\the\toks@\space\@surname}% \fi \protected@xdef\@jmlrauthors{\@jmlrauthors \noexpand\@jmlr@authors@sep \@initials\space\@surname}% \fi \@name #1% } % \end{macrocode} %\end{macro} % %\begin{macro}{\Email} % \begin{macrocode} \newcommand*{\Email}[1]{{\@email #1}} % \end{macrocode} %\end{macro} %\begin{macro}{\jmlrpostauthor} % \begin{macrocode} \def\jmlrpostauthor{\@endauthor\egroup \par \vskip \aftermaketitskip \noindent \ifx\@editor\@empty \else \@starteditor \@editor \@endeditor \fi \vskip \aftermaketitskip } % \end{macrocode} %\end{macro} %\begin{macro}{\@jmlrmaketitle} % \begin{macrocode} \def\@jmlrmaketitle{\vbox{\hsize\textwidth \linewidth\hsize \jmlrpretitle \@title \jmlrposttitle \jmlrpreauthor \@author \jmlrpostauthor }} % \end{macrocode} %\end{macro} %\begin{macro}{\kernelmachines} % Convenience command % \begin{macrocode} \newcommand*\kernelmachines{(for {\textsc{http://www.kernel-machines.org}})} % \end{macrocode} %\end{macro} % %\begin{macro}{\editorname} % Label for the editor % \begin{macrocode} \newcommand*{\editorname}{Editor} % \end{macrocode} %\end{macro} %\begin{macro}{\editorsname} % Label for the editor % \begin{macrocode} \newcommand*{\editorsname}{Editors} % \end{macrocode} %\end{macro} %\begin{macro}{\@edname} % This will either be Editor or Editors depending on whether % \cs{editor} or \cs{editors} is used. Defaults to \cs{editorname} % \begin{macrocode} \let\@edname\editorname % \end{macrocode} %\end{macro} %\begin{macro}{\@editor} % The editor or editors are stored in \cs{@editor} % \begin{macrocode} \def\@editor{} % \end{macrocode} %\end{macro} %\begin{macro}{\editor} % A single editor % \begin{macrocode} \def\editor#1{% \global\let\@edname\editorname \gdef\@editor{#1}% } % \end{macrocode} %\end{macro} %\begin{macro}{\editors} % Multiple editors % \begin{macrocode} \def\editors#1{% \global\let\@edname\editorsname \gdef\@editor{#1}% } % \end{macrocode} %\end{macro} % %\subsection{Pagestyles} % This is taken from jmlr2e.sty % %\begin{macro}{\firstpageno} % Set the page counter. % \begin{macrocode} \def\firstpageno#1{\setcounter{page}{#1}} % \end{macrocode} %\end{macro} % % Label end page. % \begin{macrocode} \AtEndDocument{% \@ifundefined{phantomsection}{}{\phantomsection}% \protected@edef\@currentlabelname{end of \@shorttitle}% \label{jmlrend}% } % \end{macrocode} % %\begin{macro}{\@titlefoot} % \begin{macrocode} \newcommand*{\@titlefoot}{\scriptsize\copyright\space\@jmlryear \space\@jmlrauthors.\hfill} % \end{macrocode} %\end{macro} % %\begin{macro}{\ps@jmlrtps} % Title page style % \begin{macrocode} \newcommand\ps@jmlrtps{% \let\@mkboth\@gobbletwo \def\@oddhead{\scriptsize \@jmlrproceedings \ifx\@jmlrvolume\@empty\else\space\@jmlrvolume\fi \ifx\@jmlryear\@empty\else\space(\@jmlryear)\fi \ifx\@jmlrpages\@empty\else\space\@jmlrpages\fi \hfill \ifx\@jmlrworkshop\@empty \ifx\@jmlrsubmitted\@empty \else Submitted \@jmlrsubmitted \ifx\@jmlrpublished\@empty\else;\fi \fi \ifx\@jmlrpublished\@empty \else \space Published \@jmlrpublished \fi \else \space\@jmlrworkshop \fi }% \let\@evenhead\@oddhead \def\@oddfoot{\@titlefoot}% \let\@evenfoot\@oddfoot } % \end{macrocode} %\end{macro} %\begin{macro}{\ps@jmlrps} % Page style for subsequent pages % \begin{macrocode} \def\ps@jmlrps{% \let\@mkboth\@gobbletwo \def\@oddhead{\hfill {\small\scshape \@shorttitle} \hfill}% \def\@oddfoot{\hfill \small\rmfamily \thepage \hfill}% \def\@evenhead{\hfill {\small\scshape \@shortauthor} \hfill}% \def\@evenfoot{\hfill \small\rmfamily \thepage \hfill}% }% % \end{macrocode} % Set the page style: % \begin{macrocode} \pagestyle{jmlrps} % \end{macrocode} %\end{macro} % Set the heading information: %\begin{macro}{\@jmlrvolume} % The volume number: % \begin{macrocode} \let\@jmlrvolume\@empty % \end{macrocode} %\end{macro} %\begin{macro}{\jmlrvolume} % \begin{macrocode} \newcommand*{\jmlrvolume}[1]{\renewcommand*{\@jmlrvolume}{#1}} % \end{macrocode} %\end{macro} %\begin{macro}{\@jmlrissue} % The issue number: % \begin{macrocode} \let\@jmlrissue\@empty % \end{macrocode} %\end{macro} %\begin{macro}{\jmlrissue} % \begin{macrocode} \newcommand*{\jmlrissue}[1]{\renewcommand*{\@jmlrissue}{#1}} % \end{macrocode} %\end{macro} %\begin{macro}{\@jmlryear} % The year of publication: % \begin{macrocode} \let\@jmlryear\@empty % \end{macrocode} %\end{macro} %\begin{macro}{\jmlryear} % \begin{macrocode} \newcommand*{\jmlryear}[1]{\renewcommand*{\@jmlryear}{#1}} % \end{macrocode} %\end{macro} %\begin{macro}{\@jmlrpages} % The page range: % \begin{macrocode} \newcommand*\@jmlrpages{\pageref{jmlrstart}--\pageref{jmlrend}} % \end{macrocode} %\end{macro} %\begin{macro}{\jmlrpages} % \begin{macrocode} \newcommand*{\jmlrpages}[1]{\renewcommand*{\@jmlrpages}{#1}} % \end{macrocode} %\end{macro} %\begin{macro}{\@jmlrsubmitted} % The date the article was submitted: % \begin{macrocode} \let\@jmlrsubmitted\@empty % \end{macrocode} %\end{macro} %\begin{macro}{\jmlrsubmitted} % \begin{macrocode} \newcommand*{\jmlrsubmitted}[1]{\renewcommand*{\@jmlrsubmitted}{#1}} % \end{macrocode} %\end{macro} %\begin{macro}{\@jmlrpublished} % The date the article was published: % \begin{macrocode} \let\@jmlrpublished\@empty % \end{macrocode} %\end{macro} %\begin{macro}{\jmlrpublished} % \begin{macrocode} \newcommand*{\jmlrpublished}[1]{\renewcommand*{\@jmlrpublished}{#1}} % \end{macrocode} %\end{macro} %\begin{macro}{\@jmlrworkshop} % The name of the workshop: % \begin{macrocode} \let\@jmlrworkshop\@empty % \end{macrocode} %\end{macro} %\begin{macro}{\jmlrworkshop} % \begin{macrocode} \newcommand*{\jmlrworkshop}[1]{\renewcommand*{\@jmlrworkshop}{#1}} % \end{macrocode} %\end{macro} %\begin{macro}{\@jmlrauthors} % \begin{macrocode} \newcommand*{\@jmlrauthors}{} % \end{macrocode} %\end{macro} %\begin{macro}{\jmlrauthors} % This is provided in case \cs{Name} doesn't set \cs{@jmlrauthors} % correctly. % \begin{macrocode} \newcommand*{\jmlrauthors}[1]{\renewcommand*{\@jmlrauthors}{#1}} % \end{macrocode} %\end{macro} % % %\subsection{Miscellany} % This code was taken from jmlr2e.sty. % Define macros for figure captions and table titles % \begin{macrocode} \def\figurecaption#1#2{\noindent\hangindent 40pt \hbox to 36pt {\small\slshape #1 \hfil} \ignorespaces {\small #2}} % \end{macrocode} % Figurecenter prints the caption title centered. % \begin{macrocode} \def\figurecenter#1#2{\centerline{{\slshape #1} #2}} \def\figurecenter#1#2{\centerline{{\small\slshape #1} {\small #2}}} % \end{macrocode} % % Allow ``hanging indents'' in long captions % %\begin{macro}{\@makecaption} % \begin{macrocode} \long\def\@makecaption#1#2{% \vskip 10pt \setbox\@tempboxa\hbox{#1: #2}% \ifdim \wd\@tempboxa >\hsize % IF longer than one line: \begin{list}{#1:}{% \settowidth{\labelwidth}{#1:} \setlength{\leftmargin}{\labelwidth} \addtolength{\leftmargin}{\labelsep} }\item #2 \end{list}\par % Output in quote mode \else % ELSE center. \hbox to\hsize{\hfil\box\@tempboxa\hfil} \fi} % \end{macrocode} %\end{macro} % Define strut macros for skipping spaces above and below text in a % tabular environment. % \begin{macrocode} \def\abovestrut#1{\rule[0in]{0in}{#1}\ignorespaces} \def\belowstrut#1{\rule[-#1]{0in}{#1}\ignorespaces} % \end{macrocode} %\begin{macro}{\acks} % Acknowledgments % \begin{macrocode} \long\def\acks#1{\section*{Acknowledgments}#1} % \end{macrocode} %\end{macro} % Research Note %\begin{macro}{\researchnote} % \begin{macrocode} \long\def\researchnote#1{\noindent {\LARGE\itshape Research Note} #1} % \end{macrocode} %\end{macro} % %\begin{macro}{\set} % \begin{macrocode} \newcommand*{\set}[1]{\ensuremath{\mathcal{#1}}} % \end{macrocode} %\end{macro} % Convenient macros for cross-referencing. % \begin{macrocode} \newcommand*{\@jmlr@reflistsep}{, } \newcommand*{\@jmlr@reflistlastsep}{ and } \newcommand*{\sectionrefname}{Section} \newcommand*{\sectionsrefname}{Sections} \newcommand*{\equationrefname}{Equation} \newcommand*{\equationsrefname}{Equations} \newcommand*{\tablerefname}{Table} \newcommand*{\tablesrefname}{Tables} \newcommand*{\figurerefname}{Figure} \newcommand*{\figuresrefname}{Figures} \newcommand*{\algorithmrefname}{Algorithm} \newcommand*{\algorithmsrefname}{Algorithms} \newcommand*{\theoremrefname}{Theorem} \newcommand*{\theoremsrefname}{Theorems} \newcommand*{\lemmarefname}{Lemma} \newcommand*{\lemmasrefname}{Lemmas} \newcommand*{\remarkrefname}{Remark} \newcommand*{\remarksrefname}{Remarks} \newcommand*{\corollaryrefname}{Corollary} \newcommand*{\corollarysrefname}{Corollaries} \newcommand*{\definitionrefname}{Definition} \newcommand*{\definitionsrefname}{Definitions} \newcommand*{\conjecturerefname}{Conjecture} \newcommand*{\conjecturesrefname}{Conjectures} \newcommand*{\axiomrefname}{Axiom} \newcommand*{\axiomsrefname}{Axioms} \newcommand*{\examplerefname}{Example} \newcommand*{\examplesrefname}{Examples} \newcommand*{\appendixrefname}{Appendix} \newcommand*{\appendixsrefname}{Appendices} \newcommand*{\partrefname}{Part} \newcommand*{\partsrefname}{Parts} % \end{macrocode} %\begin{macro}{\objectref} % Cross-reference a particular structural element. The first % argument is the list of labels, the second argument is a % control sequence containing the singular tag, the third % argument a control sequence containing the plural tag, % the fourth argument is text to go before the reference number, % e.g.\ an opening bracket, and the fifth argument is text % to go after the reference number, e.g.\ a closing bracket. % \begin{macrocode} \newcommand*{\objectref}[5]{% \let\@objectname\@empty \def\@objectref{}% \let\@prevsep\@empty \@for\@thislabel:=#1\do{% \toks@{\@prevsep}% \protected@edef\@objectref{\@objectref\the\toks@ #4\ref{\@thislabel}#5}% \ifx\@objectname\@empty \let\@objectname#2% singular tag \else \let\@objectname#3% plural tag \let\@prevsep\@jmlr@reflistsep \fi }% \ifx\@objectname#3% plural tag \let\@prevsep\@jmlr@reflistlastsep \fi \@objectname~\@objectref } % \end{macrocode} %\end{macro} %\begin{macro}{\sectionref} % \begin{macrocode} \newcommand*{\sectionref}[1]{% \objectref{#1}{\sectionrefname}{\sectionsrefname}{}{}} % \end{macrocode} %\end{macro} %\begin{macro}{\equationref} % \begin{macrocode} \newcommand*{\equationref}[1]{% \objectref{#1}{\equationrefname}{\equationsrefname}()} % \end{macrocode} %\end{macro} %\begin{macro}{\tableref} % \begin{macrocode} \newcommand*{\tableref}[1]{% \objectref{#1}{\tablerefname}{\tablesrefname}{}{}} % \end{macrocode} %\end{macro} %\begin{macro}{\figureref} % \begin{macrocode} \newcommand*{\figureref}[1]{% \objectref{#1}{\figurerefname}{\figuresrefname}{}{}} % \end{macrocode} %\end{macro} %\begin{macro}{\algorithmref} % \begin{macrocode} \newcommand*{\algorithmref}[1]{% \objectref{#1}{\algorithmrefname}{\algorithmsrefname}{}{}} % \end{macrocode} %\end{macro} %\begin{macro}{\theoremmref} % \begin{macrocode} \newcommand*{\theoremref}[1]{% \objectref{#1}{\theoremrefname}{\theoremsrefname}{}{}} % \end{macrocode} %\end{macro} %\begin{macro}{\lemmaref} % \begin{macrocode} \newcommand*{\lemmaref}[1]{% \objectref{#1}{\lemmarefname}{\lemmasrefname}{}{}} % \end{macrocode} %\end{macro} %\begin{macro}{\remarkref} % \begin{macrocode} \newcommand*{\remarkref}[1]{% \objectref{#1}{\remarkrefname}{\remarksrefname}{}{}} % \end{macrocode} %\end{macro} %\begin{macro}{\corollaryref} % \begin{macrocode} \newcommand*{\corollaryref}[1]{% \objectref{#1}{\corollaryrefname}{\corollarysrefname}{}{}} % \end{macrocode} %\end{macro} %\begin{macro}{\definitionref} % \begin{macrocode} \newcommand*{\definitionref}[1]{% \objectref{#1}{\definitionrefname}{\definitionsrefname}{}{}} % \end{macrocode} %\end{macro} %\begin{macro}{\conjectureref} % \begin{macrocode} \newcommand*{\conjectureref}[1]{% \objectref{#1}{\conjecturerefname}{\conjecturesrefname}{}{}} % \end{macrocode} %\end{macro} %\begin{macro}{\axiomref} % \begin{macrocode} \newcommand*{\axiomref}[1]{% \objectref{#1}{\axiomrefname}{\axiomsrefname}{}{}} % \end{macrocode} %\end{macro} %\begin{macro}{\exampleref} % \begin{macrocode} \newcommand*{\exampleref}[1]{% \objectref{#1}{\examplerefname}{\examplesrefname}{}{}} % \end{macrocode} %\end{macro} %\begin{macro}{\appendixref} % \begin{macrocode} \newcommand*{\appendixref}[1]{% \objectref{#1}{\appendixrefname}{\appendixsrefname}{}{}} % \end{macrocode} %\end{macro} %\begin{macro}{\partref} % \begin{macrocode} \newcommand*{\partref}[1]{% \objectref{#1}{\partrefname}{\partsrefname}{}{}} % \end{macrocode} %\end{macro} % %\begin{macro}{\floatconts} % The first argument is the label, the second argument contains the % caption (using \cs{caption}) and the third argument is the % contents of the float % \begin{macrocode} \newcommand{\floatconts}[3]{% \@ifundefined{\@captype conts}{\tableconts{#1}{#2}{#3}}% {\csname\@captype conts\endcsname{#1}{#2}{#3}}% } % \end{macrocode} %\end{macro} %\begin{macro}{\tableconts} % \begin{macrocode} \newcommand{\tableconts}[3]{% \iftablecaptiontop #2\label{#1}\vskip\baselineskip {\centering #3\par}% \else {\centering #3\par}% \vskip\baselineskip #2\label{#1}% \fi } % \end{macrocode} %\end{macro} %\begin{macro}{\figureconts} % \begin{macrocode} \newcommand{\figureconts}[3]{% {\centering #3\par}% \vskip\baselineskip #2\label{#1}% } % \end{macrocode} %\end{macro} % %\begin{macro}{\includeteximage} % Provide a command like \cs{includegraphics} that includes a % file containing \LaTeX\ picture code (e.g.\ \sty{pgf}). % \begin{macrocode} \newcommand*{\includeteximage}[2][]{% \def\Gin@req@sizes{% \Gin@req@height\Gin@nat@height \Gin@req@width\Gin@nat@width}% \begingroup \@tempswafalse \let\input@path\Ginput@path \toks@{\InputIfFileExists{#2}{}{\@warning{File `#1' not found}}}% \setkeys{Gin}{#1}% \Gin@esetsize \the\toks@ \endgroup } % \end{macrocode} %\end{macro} % %\begin{macro}{\ifprint} % Provide command to check if this is the printed greyscale % version or the online colour version. % \begin{macrocode} \providecommand{\ifprint}[2]{\ifgrayscale#1\else#2\fi} % \end{macrocode} %\end{macro} % % Modify \cs{includegraphics} so that it can pick up the greyscale % version of images if this is the print version. %% \begin{macrocode} \ifjmlrhtml \else \let\@org@Ginclude@graphics\Ginclude@graphics \def\Ginclude@graphics#1{% \begingroup \let\input@path\Ginput@path \ifprint{\filename@parse{#1-gray}}{\filename@parse{#1}}% \ifx\filename@ext\relax \@for\Gin@temp:=\Gin@extensions\do{% \ifx\Gin@ext\relax \Gin@getbase\Gin@temp \fi}% \else \ifprint{\filename@parse{#1}}{}% \Gin@getbase{\Gin@sepdefault\filename@ext}% \ifx\Gin@ext\relax \@warning{File `#1' not found}% \def\Gin@base{\filename@area\filename@base}% \edef\Gin@ext{\Gin@sepdefault\filename@ext}% \fi \fi \ifx\Gin@ext\relax \ifprint{\@org@Ginclude@graphics{#1}}% {% \@latex@error{File `#1' not found}% {I could not locate the file with any of these extensions:^^J% \Gin@extensions^^J\@ehc}% }% \else \@ifundefined{Gin@rule@\Gin@ext}% {\ifx\Gin@rule@*\@undefined \@latex@error{Unknown graphics extension: \Gin@ext}\@ehc \else \expandafter\Gin@setfile\Gin@rule@*{\Gin@base\Gin@ext}% \fi}% {\expandafter\expandafter\expandafter\Gin@setfile \csname Gin@rule@\Gin@ext\endcsname{\Gin@base\Gin@ext}}% \fi \endgroup} \fi % \end{macrocode} % % The \env{algorithm} environment should float like a figure or table. % It should use the same counter as the \env{algorithm2e} environment. % \begin{macrocode} \newenvironment{algorithm}[1][htbp]% {% \@algocf@init% \@algocf@init@caption \begin{algocf}[#1]% \@algocf@start% }% {% \@algocf@finish% \@algocf@term@caption \end{algocf}% \@algocf@term } % \end{macrocode} % % Set the algorithm margin to zero. % \begin{macrocode} \setlength\algomargin{0pt} % \end{macrocode} % %\begin{macro}{\artappendix} % Switch to appendices in an article % \begin{macrocode} \newcommand{\artappendix}{\par \setcounter{section}{0} \setcounter{subsection}{0} \def\thesection{\Alph{section}} \def\presectionnum{Appendix~}% } % \end{macrocode} %\end{macro} % The default assumes a stand-alone article. %\begin{macro}{\appendix} % \begin{macrocode} \let\appendix\artappendix % \end{macrocode} %\end{macro} % %\subsection{Proofs and Theorems} % This code is taken from jmlr2e.sty %\begin{macro}{\BlackBox} % End of proof marker % \begin{macrocode} \newcommand{\BlackBox}{\rule{1.5ex}{1.5ex}} % \end{macrocode} %\end{macro} %\begin{environment}{proof} % Proof environment % \begin{macrocode} \newenvironment{proof}{\par\noindent{\bfseries\upshape Proof\ }}{\hfill\BlackBox\\[2mm]} % \end{macrocode} %\end{environment} %\begin{environment}{example} % \begin{macrocode} \newtheorem{example}{Example} % \end{macrocode} %\end{environment} %\begin{environment}{theorem} % \begin{macrocode} \newtheorem{theorem}{Theorem} % \end{macrocode} %\end{environment} %\begin{environment}{lemma} % \begin{macrocode} \newtheorem{lemma}[theorem]{Lemma} % \end{macrocode} %\end{environment} %\begin{environment}{proposition} % \begin{macrocode} \newtheorem{proposition}[theorem]{Proposition} % \end{macrocode} %\end{environment} %\begin{environment}{remark} % \begin{macrocode} \newtheorem{remark}[theorem]{Remark} % \end{macrocode} %\end{environment} %\begin{environment}{corollary} % \begin{macrocode} \newtheorem{corollary}[theorem]{Corollary} % \end{macrocode} %\end{environment} %\begin{environment}{definition} % \begin{macrocode} \newtheorem{definition}[theorem]{Definition} % \end{macrocode} %\end{environment} %\begin{environment}{conjecture} % \begin{macrocode} \newtheorem{conjecture}[theorem]{Conjecture} % \end{macrocode} %\end{environment} %\begin{environment}{axiom} % \begin{macrocode} \newtheorem{axiom}[theorem]{Axiom} % \end{macrocode} %\end{environment} % %\begin{macro}{\vec} % Redefine \cs{vec} to produce a bold symbol % \begin{macrocode} \renewcommand*{\vec}[1]{\boldsymbol{#1}} % \end{macrocode} %\end{macro} % %\begin{environment}{enumerate*} % Define an enumerate style environment where the nested environments % all use the same counter. It uses the enumi counter. % \begin{macrocode} \newenvironment{enumerate*}% {% \ifnum\@enumdepth=0\relax \setcounter{enumi}{0}% \fi \ifnum\@enumdepth>\thr@@ \@toodeep \else \advance\@enumdepth\@ne \def\@enumctr{enumi}% \list {\labelenumi}% {\@nmbrlisttrue\def\@listctr{enumi}% \def\makelabel##1{\hss\llap{##1}}}% \fi }% {\endlist} % \end{macrocode} %\end{environment} % %\begin{environment}{altdescription} % Define a description like environment where the indent is % computed from the widest label. The optional argument is % the widest label. % \begin{macrocode} \newenvironment{altdescription}[1]% {\list{}% {% \settowidth{\labelwidth}{\altdescriptionlabel{#1}}% \setlength{\labelsep}{15pt}% \setlength{\leftmargin}{2\labelsep}% \addtolength{\leftmargin}{\labelwidth}% \setlength{\rightmargin}{\labelsep}% \let\makelabel\altdescriptionlabel }% }% {\endlist} \newcommand*{\altdescriptionlabel}[1]{\normalfont\bfseries #1\hfill} % \end{macrocode} %\end{environment} % %\begin{macro}{\mailto} % Syntax: \cs{mailto}\marg{address} % \begin{macrocode} \newcommand*{\mailto}[1]{\texttt{#1}} % \end{macrocode} %\end{macro} % % The \sty{subfig} package breaks jmlrbook.cls, so define \ics{subfig} % here. (This is fairly primitive.) %\begin{macro}{\c@subfigure} % Define subfigure counter: % \begin{macrocode} \newcounter{subfigure} \@addtoreset{subfigure}{figure} % \end{macrocode} %\end{macro} %\begin{macro}{\thesubfigure} % \begin{macrocode} \renewcommand*{\thesubfigure}{\alph{subfigure}} % \end{macrocode} %\end{macro} %\begin{macro}{\p@subfigure} % \begin{macrocode} \renewcommand*{\p@subfigure}{\expandafter\@p@subfigure} \newcommand*{\@p@subfigure}[1]{% \protect\@subfigurelabel{\thefigure}{\thesubfigure}% } % \end{macrocode} %\end{macro} %\begin{macro}{\@subfigurelabel} % Define how label appears. % \begin{macrocode} \newcommand*\@subfigurelabel[2]{#1\subfigurelabel{#2}} % \end{macrocode} %\end{macro} %\begin{macro}{\subfigref} % Reference the sub-figure without including the figure number. % \begin{macrocode} \newcommand*\@subfigref[1]{% {% \def\@subfigurelabel##1##2{\subfigurelabel{##2}}% \ref{#1}% }% } \newcommand*{\subfigref}[1]{% \let\@objectname\@empty \def\@objectref{}% \let\@prevsep\@empty \@for\@thislabel:=#1\do{% \toks@{\@prevsep}% \protected@edef\@objectref{\@objectref\the\toks@ \protect\@subfigref{\@thislabel}}% \ifx\@objectname\@empty \let\@objectname\@nil \else \let\@objectname\relax \let\@prevsep\@jmlr@reflistsep \fi }% \ifx\@objectname\relax \let\@prevsep\@jmlr@reflistlastsep \fi \@objectref } % \end{macrocode} %\end{macro} %\begin{macro}{\subfigurelabel} % \begin{macrocode} \newcommand*{\subfigurelabel}[1]{(\emph{#1})} % \end{macrocode} %\end{macro} %\begin{macro}{\subfigure} % \begin{macrocode} \newcommand*{\subfigure}[1][]{% \bgroup \def\@subfigcap{#1}% \@subfigure } \newcommand*{\@subfigure}[2][b]{% \advance\c@figure by 1\relax \refstepcounter{subfigure}% \begin{tabular}[#1]{@{}c@{}}% #2\\ \subfigurelabel{\thesubfigure}% \ifx\@subfigcap\@empty \else \space\@subfigcap \fi \end{tabular} \egroup } % \end{macrocode} %\end{macro} % % Sub-tables: %\begin{macro}{\c@subtable} % Define subtable counter: % \begin{macrocode} \newcounter{subtable} \@addtoreset{subtable}{table} % \end{macrocode} %\end{macro} %\begin{macro}{\thesubtable} % \begin{macrocode} \renewcommand*{\thesubtable}{\alph{subtable}} % \end{macrocode} %\end{macro} %\begin{macro}{\p@subtable} % \begin{macrocode} \renewcommand*{\p@subtable}{\expandafter\@p@subtable} \newcommand*{\@p@subtable}[1]{% \protect\@subtablelabel{\thetable}{\thesubtable}% } % \end{macrocode} %\end{macro} %\begin{macro}{\@subtablelabel} % Define how label appears. % \begin{macrocode} \newcommand*\@subtablelabel[2]{#1\subtablelabel{#2}} % \end{macrocode} %\end{macro} %\begin{macro}{\subtabref} % Reference the sub-table without including the table number. % \begin{macrocode} \newcommand*\@subtabref[1]{% {% \def\@subtablelabel##1##2{\subtablelabel{##2}}% \ref{#1}% }% } \newcommand*{\subtabref}[1]{% \let\@objectname\@empty \def\@objectref{}% \let\@prevsep\@empty \@for\@thislabel:=#1\do{% \toks@{\@prevsep}% \protected@edef\@objectref{\@objectref\the\toks@ \protect\@subtabref{\@thislabel}}% \ifx\@objectname\@empty \let\@objectname\@nil \else \let\@objectname\relax \let\@prevsep\@jmlr@reflistsep \fi }% \ifx\@objectname\relax \let\@prevsep\@jmlr@reflistlastsep \fi \@objectref } % \end{macrocode} %\end{macro} %\begin{macro}{\subtablelabel} % \begin{macrocode} \newcommand*{\subtablelabel}[1]{(\emph{#1})} % \end{macrocode} %\end{macro} %\begin{macro}{\subtable} % \begin{macrocode} \newcommand*{\subtable}[1][]{% \def\@subtabcap{#1}% \@subtable } \newcommand*{\@subtable}[2][t]{% \refstepcounter{subtable}% \begin{tabular}[#1]{@{}c@{}}% \subtablelabel{\thesubtable}% \ifx\@subtabcap\@empty \else \space\@subtabcap \fi \\#2% \end{tabular} } % \end{macrocode} %\end{macro} % %\subsection{Compatibility with combine.cls} % % Define chapters to make this class play nicely with \cls{combine}. % These definitions are just copied from book.cls % \begin{macrocode} \newcounter{chapter} \renewcommand\thechapter{\@arabic\c@chapter} \newcommand\@chapapp{\chaptername} % \end{macrocode} % Add sections to the chapter reset. % \begin{macrocode} \@addtoreset{section}{chapter} % \end{macrocode} %\begin{macro}{\chaptermark} % \begin{macrocode} \newcommand*\chaptermark[1]{} % \end{macrocode} %\end{macro} % Chapters should only be defined when we're combining documents % into a book. %\begin{macro}{\bookchapter} % \begin{macrocode} \newcommand\bookchapter{% \if@openright\cleardoublepage\else\clearpage\fi \thispagestyle{plain}% \global\@topnum\z@ \@afterindentfalse \secdef\@chapter\@schapter} % \end{macrocode} %\end{macro} %\begin{macro}{\artchapter} % Disable chapters for articles. % \begin{macrocode} \newcommand\artchapter{% \ClassError{jmlrwcp}{Chapters not permitted in articles}{}} % \end{macrocode} %\end{macro} %\begin{macro}{\chapter} % The default assumes a stand-alone document. % \begin{macrocode} \let\chapter\artchapter % \end{macrocode} %\end{macro} % Label for the chapter entries in the toc. % \begin{macrocode} \def\@chaptoclabel{chapter} % \end{macrocode} %\begin{macro}{\@chapter} % Numbered chapters % \begin{macrocode} \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne \if@mainmatter \refstepcounter{chapter}% \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{\@chaptoclabel}% {\protect\numberline{\thechapter}#1}% \else \addcontentsline{toc}{\@chaptoclabel}{#1}% \fi \else \addcontentsline{toc}{\@chaptoclabel}{#1}% \fi \chaptermark{#1}% \addtocontents{lof}{\protect\addvspace{10\p@}}% \addtocontents{lot}{\protect\addvspace{10\p@}}% \if@twocolumn \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading \fi} % \end{macrocode} %\end{macro} %\begin{macro}{\chaptertitleformat} % Formats the chapter title % \begin{macrocode} \newcommand{\chaptertitleformat}[1]{% \Huge\bfseries#1% } % \end{macrocode} %\end{macro} %\begin{macro}{\chapternumberformat} % Formats the chapter number % \begin{macrocode} \newcommand{\chapternumberformat}[1]{% \huge\bfseries \@chapapp\space#1\par\nobreak \vskip 20\p@ } % \end{macrocode} %\end{macro} %\begin{macro}{\chapterformat} % Overall format for chapter headings % \begin{macrocode} \newcommand*{\chapterformat}{\raggedright} % \end{macrocode} %\end{macro} %\begin{macro}{\postchapterskip} % Vertical gap after chapter heading % \begin{macrocode} \newlength\postchapterskip \setlength\postchapterskip{40pt} % \end{macrocode} %\end{macro} %\begin{macro}{\prechapterskip} % Vertical gap before chapter heading % \begin{macrocode} \newlength\prechapterskip \setlength\prechapterskip{50pt} % \end{macrocode} %\end{macro} %\begin{macro}{\@makechapterhead} % Chapter heading for numbered chapters % \begin{macrocode} \def\@makechapterhead#1{% \null\vskip\prechapterskip {\parindent \z@ \normalfont\chapterformat \ifnum \c@secnumdepth >\m@ne \if@mainmatter \chapternumberformat{\thechapter}% \fi \fi \interlinepenalty\@M \chaptertitleformat{#1}\par\nobreak \vskip \postchapterskip }} % \end{macrocode} %\end{macro} %\begin{macro}{\@schapter} % Unnumbered chapters. % \begin{macrocode} \def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]% \else \@makeschapterhead{#1}% \@afterheading \fi} % \end{macrocode} %\end{macro} %\begin{macro}{\@makeschapterhead} % Layout for unnumbered chapter headings % \begin{macrocode} \def\@makeschapterhead#1{% \vspace*{\prechapterskip}% {\parindent \z@ \normalfont\chapterformat \interlinepenalty\@M \chaptertitleformat{#1}\par\nobreak \vskip \postchapterskip }} % \end{macrocode} %\end{macro} %\begin{macro}{\l@chapter} % Format for chapter entry in toc % \begin{macrocode} \newcommand*\l@chapter[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% \vskip 1.0em \@plus\p@ \setlength\@tempdima{1.5em}% \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \large\bfseries \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par \penalty\@highpenalty \endgroup \fi} % \end{macrocode} %\end{macro} %\begin{macro}{\l@appendix} % Make appendix entries in the toc the same as that for chapters % by default % \begin{macrocode} \let\l@appendix\l@chapter % \end{macrocode} %\end{macro} %\begin{macro}{\chaptername} % \begin{macrocode} \newcommand\chaptername{Chapter} % \end{macrocode} %\end{macro} %\begin{macro}{\frontmatter} % Start the front matter (in book) % \begin{macrocode} \newcommand\frontmatter{% \cleardoublepage \@mainmatterfalse \pagenumbering{roman}% \morefrontmatter } \newcommand\morefrontmatter{} % \end{macrocode} %\end{macro} %\begin{macro}{\mainmatter} % Start the main matter (in book) % \begin{macrocode} \newcommand\mainmatter{% \cleardoublepage \@mainmattertrue \pagenumbering{arabic}% \moremainmatter } \newcommand\moremainmatter{} % \end{macrocode} %\end{macro} %\begin{macro}{\backmatter} % Start the back matter (in book) % \begin{macrocode} \newcommand\backmatter{% \if@openright \cleardoublepage \else \clearpage \fi \@mainmatterfalse} % \end{macrocode} %\end{macro} %\begin{macro}{\booktableofcontents} % This is for the main table of contents when using % the combine class file, and is not for use in individual % articles. % \begin{macrocode} \let\booktableofcontents\tableofcontents % \end{macrocode} %\end{macro} %\begin{macro}{\arttableofcontents} % Table of contents for individual articles. % \begin{macrocode} \let\arttableofcontents\tableofcontents % \end{macrocode} %\end{macro} %\begin{macro}{\artpart} % A part in an article % \begin{macrocode} \newcommand{\artpart}{% \if@noskipsec \leavevmode\fi \par \addvspace{4ex}% \@afterindentfalse \secdef\@artpart\@sartpart } \let\@artpart\@part \let\@sartpart\@spart % \end{macrocode} %\end{macro} %\begin{macro}{\bookpart} % A part in a book forming a collection of articles % \begin{macrocode} \newcommand\bookpart{% \if@openright \cleardoublepage \else \clearpage \fi \thispagestyle{plain}% \if@twocolumn \onecolumn \@tempswatrue \else \@tempswafalse \fi \preparthook \secdef\@bookpart\@sbookpart} % \end{macrocode} %\end{macro} %\begin{macro}{\parttitleformat} % Format of the title for a part (in a book) % \begin{macrocode} \newcommand{\parttitleformat}[1]{% \Huge\bfseries#1% } % \end{macrocode} %\end{macro} %\begin{macro}{\partnumberformat} % Format of the part number (in a book) % \begin{macrocode} \newcommand{\partnumberformat}[1]{% \Huge\bfseries \partname\nobreakspace#1\par\nobreak \vskip 20\p@ } % \end{macrocode} %\end{macro} %\begin{macro}{\preparthook} % Hook at the start of a part (in a book) % \begin{macrocode} \newcommand{\preparthook}{\null\vfil} % \end{macrocode} %\end{macro} %\begin{macro}{\partformat} % Overall format of part % \begin{macrocode} \renewcommand*{\partformat}{\centering} % \end{macrocode} %\end{macro} %\begin{macro}{\@bookpart} % Numbered book part format % \begin{macrocode} \def\@bookpart[#1]#2{% \ifnum \c@secnumdepth >-2\relax \refstepcounter{part}% \addcontentsline{toc}{part}{\protect\numberline{\thepart}#1}% \else \addcontentsline{toc}{part}{#1}% \fi \markboth{}{}% {\interlinepenalty \@M \normalfont\partformat \ifnum \c@secnumdepth >-2\relax \partnumberformat{\thepart}% \fi \parttitleformat{#2}\par}% \postparthook} % \end{macrocode} %\end{macro} %\begin{macro}{\@sbookpart} % Unnumbered book part format % \begin{macrocode} \def\@sbookpart#1{% {\interlinepenalty \@M \normalfont\partformat \parttitleformat{#1}\par}% \postparthook} % \end{macrocode} %\end{macro} %\begin{macro}{\postparthook} % Hook after part heading % \begin{macrocode} \def\postparthook{\vfil\newpage \if@twoside \if@openright \null \thispagestyle{empty}% \newpage \fi \fi \if@tempswa \twocolumn \fi} % \end{macrocode} %\end{macro} %\begin{macro}{\bookappendix} % Switch to appendices in book % \begin{macrocode} \newcommand\bookappendix{\par \setcounter{table}{0}% \setcounter{figure}{0}% \zeroextracounters \par \gdef\theHchapter{\Alph {chapter}}% \xdef\Hy@chapapp{\Hy@appendixstring}% \setcounter{chapter}{0}% \setcounter{section}{0}% \gdef\@chapapp{\appendixname}% \gdef\thechapter{\@Alph\c@chapter}% \csname appendixmore\endcsname } % \end{macrocode} %\end{macro} % Define commands to switch between book/article modes %\begin{macro}{\jmlrbookcommands} % Switch to book commands % \begin{macrocode} \newcommand*{\jmlrbookcommands}{% \let\part\bookpart \let\chapter\bookchapter \let\appendix\bookappendix \let\tableofcontents\booktableofcontents \def\thesection{\thechapter.\arabic{section}}% } % \end{macrocode} %\end{macro} %\begin{macro}{\jmlarticlecommands} % Switch to article commands % \begin{macrocode} \newcommand*{\jmlrarticlecommands}{% \let\part\artpart \let\chapter\artchapter \let\appendix\artappendix \let\tableofcontents\arttableofcontents \def\thesection{\arabic{section}}% } % \end{macrocode} %\end{macro} % Check for packages that are known to cause problems when % combining articles into a book. %\begin{macro}{\@jmlr@check@packages} % \begin{macrocode} \newcommand*{\@jmlr@check@packages}{% \@ifpackageloaded{epsfig}{% \ClassError{jmlr}{Obsolete package `epsfig' detected. \MessageBreak Please use \string\includegraphics\space to include images instead}{}}{}% \@ifpackageloaded{psfig}{% \ClassError{jmlr}{Obsolete package `psfig' detected. \MessageBreak Please use \string\includegraphics\space to include images instead}{}}{}% \@ifpackageloaded{subfig}{% \ClassError{jmlr}{Package `subfig' detected.\MessageBreak This will cause a conflict if the article is incorporated \MessageBreak into a book using jmlbook.cls. \MessageBreak Please use \string\subfigure\space and \string\subtable\space instead}{}}{}% \@ifpackageloaded{theorem}{% \ClassError{jmlr}{Package `theorem' detected.\MessageBreak This can cause a conflict with other packages used by jmlr}{}}{}% \@ifpackageloaded{pdfpages}{Package `pdfpages' detected.\MessageBreak This can cause a problem for jmlrbook.}{}% \@ifpackageloaded{geometry}{Package `geometry' detected.\MessageBreak This can cause a problem for jmlrbook.}{}% } \AtBeginDocument{% \@jmlr@check@packages \let\@jmlr@check@packages\relax } % \end{macrocode} %\end{macro} %\begin{macro}{\jmlrSuppressPackageChecks} % Don't check for potentially problematic packages. % \begin{macrocode} \newcommand*{\jmlrSuppressPackageChecks}{% \let\@jmlr@check@packages\relax } % \end{macrocode} %\end{macro} %\iffalse % \begin{macrocode} % % \end{macrocode} %\fi %\iffalse % \begin{macrocode} %<*jmlrbook.cls> % \end{macrocode} %\fi %\section{jmlrbook.cls Code} % Class file for books composed of articles using the \clsfmt{jmlr} class. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} % \end{macrocode} % Declare class: % \begin{macrocode} \ProvidesClass{jmlrbook}[2010/07/27 v1.07 (NLCT) JMLR Book Style] % \end{macrocode} % Need \sty{xkeyval} package to have key=value class options % \begin{macrocode} \RequirePackage{xkeyval} % \end{macrocode} % Some packages need to be loaded before \sty{hyperref} so provide a % hook to do this: % \begin{macrocode} \newcommand*{\@prehyperref}{} % \end{macrocode} % Option to add stuff before \sty{hyperref} is loaded: % \begin{macrocode} \define@key{jmlrbook.cls}{prehyperref}{% \renewcommand*{\@prehyperref}{#1}} % \end{macrocode} % Determine whether to select color or grayscale % \begin{macrocode} \newif\ifgrayscale \grayscalefalse \DeclareOptionX{color}{\grayscalefalse} \DeclareOptionX{gray}{\grayscaletrue} % \end{macrocode} % Pass \clsopt{html} and \clsopt{nohtml} to \clsfmt{jmlr}. % \begin{macrocode} \DeclareOptionX{html}{\PassOptionsToClass{\CurrentOption}{jmlr}} \DeclareOptionX{nohtml}{\PassOptionsToClass{\CurrentOption}{jmlr}} % \end{macrocode} % Pass \clsopt{wcp} and \clsopt{nowcp} options to \clsfmt{jmlr}. % \begin{macrocode} \DeclareOptionX{wcp}{\PassOptionsToClass{\CurrentOption}{jmlr}} \DeclareOptionX{nowcp}{\PassOptionsToClass{\CurrentOption}{jmlr}} % \end{macrocode} % Pass \clsopt{tablecaptiontop} and \clsopt{tablecaptionbottom} options % to \clsfmt{jmlr}. % \begin{macrocode} \DeclareOptionX{tablecaptiontop}{\PassOptionsToClass{\CurrentOption}{jmlr}} \DeclareOptionX{tablecaptionbottom}{\PassOptionsToClass{\CurrentOption}{jmlr}} % \end{macrocode} % Process options % \begin{macrocode} \ProcessOptionsX % \end{macrocode} % If \ics{jmlrgrayscale} has been defined, let it override the % class options. If it is defined, it should be set to 0 for the % online version and any other number for the grayscale print % version. % \begin{macrocode} \@ifundefined{jmlrgrayscale}{}% {% \ifnum\jmlrgrayscale=0\relax \grayscalefalse \else \grayscaletrue \fi } % \end{macrocode} % Load \cls{combine} class. This requires a little bit of trickery. % \begin{macrocode} \let\@org@LoadClass\LoadClass \def\LoadClass#1{\let\LoadClass\@org@LoadClass\@org@LoadClass{jmlr}} \@org@LoadClass{combine} % \end{macrocode} % Requires \sty{combnat} to work with \sty{natbib}: % \begin{macrocode} \RequirePackage{combnat} % \end{macrocode} % Need to apply a patch to \sty{combnat} (this has now been fixed % in \sty{combnat}, but user might be using an old version): % \begin{macrocode} \renewcommand\c@laNAT@parse[1]{{% \let\protect=\@unexpandable@protect\let~\relax \let\active@prefix=\@gobble \xdef\NAT@temp{\csname b@#1\@extra@b@citeb\endcsname}}% \expandafter\NAT@split\NAT@temp?????@@% \expandafter\NAT@parse@date\NAT@date??????@@% \ifciteindex\NAT@index\fi} \renewcommand\c@lbNAT@parse[1]{{% \let\protect=\@unexpandable@protect\let~\relax \let\active@prefix=\@gobble \xdef\NAT@temp{\csname B?\jobname?@#1\@extra@b@citeb\endcsname}}% \expandafter\NAT@split\NAT@temp?????@@% \expandafter\NAT@parse@date\NAT@date??????@@% \ifciteindex\NAT@index\fi} % \end{macrocode} % Requires double spacing for the title page % \begin{macrocode} \RequirePackage{setspace} % \end{macrocode} % Do all the stuff that needs to be done before \sty{hyperref} is % loaded: % \begin{macrocode} \@prehyperref % \end{macrocode} % Load \sty{hyperref}: % \begin{macrocode} \usepackage[colorlinks, linkcolor=blue, citecolor=blue, urlcolor=magenta, linktocpage, plainpages=false]{hyperref} \usepackage{nameref} % \end{macrocode} % If this is the print version, need to disable the hyperlinks % \begin{macrocode} \ifgrayscale \hypersetup{draft} \fi % \end{macrocode} % Switch on two-side mode % \begin{macrocode} \@twosidetrue % \end{macrocode} % Start new chapters on the right hand page: % \begin{macrocode} \newif\if@openright \@openrighttrue \newif\if@mainmatter % \end{macrocode} % Define commands that affect the formatting: %\begin{macro}{\pagerule} % Draw line across the text block. % \begin{macrocode} \newcommand*{\pagerule}[1][0pt]{\par\noindent \rule[#1]{\linewidth}{2pt}\par} % \end{macrocode} %\end{macro} % Cross-reference chapters: % \begin{macrocode} \newcommand*{\chapterrefname}{Chapter} \newcommand*{\chaptersrefname}{Chapters} % \end{macrocode} %\begin{macro}{\chapterref} % \begin{macrocode} \newcommand*{\chapterref}[1]{% \objectref{#1}{\chapterrefname}{\chaptersrefname}{}{}} % \end{macrocode} %\end{macro} % % Cross-referencing imported articles: %\begin{macro}{\articlepageref} % Page number of start of article % \begin{macrocode} \newcommand*{\articlepageref}[1]{% \pageref{#1jmlrstart}% } % \end{macrocode} %\end{macro} %\begin{macro}{\articlepagesref} % Page range of article % \begin{macrocode} \newcommand*{\articlepagesref}[1]{% \pageref{#1jmlrstart}--\pageref{#1jmlrend}% } % \end{macrocode} %\end{macro} %\begin{macro}{\@articlepagesref} % Page range of article for use within the article % \begin{macrocode} \newcommand*{\@articlepagesref}{% \pageref{jmlrstart}--\pageref{jmlrend}% } % \end{macrocode} %\end{macro} %\begin{macro}{\articletitleref} % Reference the short title of an imported article % \begin{macrocode} \newcommand*{\articletitleref}[1]{\nameref{#1jmlrstart}} % \end{macrocode} %\end{macro} %\begin{macro}{\articleauthorref} % Reference the authors of an imported article % \begin{macrocode} \newcommand*{\articleauthorref}[1]{% \@ifundefined{@jmlr@author@#1}% {% \ClassWarning{jmlrbook}{Label `#1' undefined}% }% {% \@nameuse{@jmlr@author@#1}% }% } % \end{macrocode} %\end{macro} % % Part labels % \begin{macrocode} \newcommand*{\@parttoclabel}{part} \newcommand*{\@partapp}{\partname} % \end{macrocode} % % Extra title information % \begin{macrocode} \renewcommand*\jmlrtitlehook{% \hypersetup{pdftitle={\@shorttitle}}% \let\jmlrtitlehook\relax } \renewcommand*\jmlrauthorhook{% \ifx\@sauthor\@empty \hypersetup{pdfauthor={\@author}}% \else \hypersetup{pdfauthor={\@sauthor}}% \fi \let\jmlrauthorhook\relax \let\@shortauthor\@empty } % \end{macrocode} %\begin{macro}{\volume} % \begin{macrocode} \newcommand*{\@volume}{\@jmlrvolume} \newcommand*{\volume}[1]{\renewcommand*{\@volume}{#1}} % \end{macrocode} %\end{macro} %\begin{macro}{\issue} % \begin{macrocode} \newcommand*{\@issue}{\@jmlrissue} \newcommand*{\issue}[1]{\renewcommand*{\@issue}{#1}} % \end{macrocode} %\end{macro} %\begin{macro}{\thejmlrworkshop} % Provided in the event that it's required for the title page. % \begin{macrocode} \newcommand*{\thejmlrworkshop}{\@jmlrworkshop} % \end{macrocode} %\end{macro} %\begin{macro}{\team} % \begin{macrocode} \newcommand*{\@team}{} \newcommand*{\team}[1]{\renewcommand*{\@team}{#1}} % \end{macrocode} %\end{macro} %\begin{macro}{\@productioneditorname} % \begin{macrocode} \newcommand*{\@productioneditorname}{Production Editor} % \end{macrocode} %\end{macro} %\begin{macro}{\productioneditor} % \begin{macrocode} \newcommand*{\@productioneditor}{} \newcommand*{\productioneditor}[1]{% \renewcommand*{\@productioneditor}{#1}% \renewcommand*{\@productioneditorname}{Production Editor}% } % \end{macrocode} %\end{macro} %\begin{macro}{\productioneditors} % \begin{macrocode} \newcommand*{\productioneditors}[1]{% \renewcommand*{\@productioneditor}{#1}% \renewcommand*{\@productioneditorname}{Production Editors}% } % \end{macrocode} %\end{macro} %\begin{macro}{\logo} % Title page image % \begin{macrocode} \newcommand*{\@logo}{} \newcommand*{\logo}[1]{\renewcommand*{\@logo}{#1}} % \end{macrocode} %\end{macro} % % Set article title % \begin{macrocode} \def\c@lbmaketitle{\jmlrmaketitle} % \end{macrocode} % The book's title: %\begin{macro}{\maintitle} % \begin{macrocode} \newcommand*{\maintitle}{} % \end{macrocode} %\end{macro} % % Make it easier to modify the book's title page: %\begin{macro}{\SetTitleElement} % \begin{macrocode} \newcommand*{\SetTitleElement}[3]{% {% \expandafter\ifx\csname @#1\endcsname\@empty \else #2\csname @#1\endcsname#3% \fi }% } % \end{macrocode} %\end{macro} % %\begin{macro}{\IfTitleElement} % Determine if the given element has been set: % \begin{macrocode} \newcommand{\IfTitleElement}[3]{% \expandafter\ifx\csname @#1\endcsname\@empty #2% \else #3% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\titlebody} % \begin{macrocode} \newcommand{\titlebody}{% \SetTitleElement{title}{\maintitlefont}{\postmaintitle}% \SetTitleElement{volume}{\mainvolumefont}{\postmainvolume}% \SetTitleElement{subtitle}{\mainsubtitlefont}{\postmainsubtitle}% \SetTitleElement{logo}{\mainlogofont}{\postmainlogo}% \SetTitleElement{team}{\mainteamfont}{\postmainteam}% \SetTitleElement{author}{\mainauthorfont}{\postmainauthor}% \SetTitleElement{productioneditor}{\mainproductioneditorfont}% {\postmainproductioneditor}% } % \end{macrocode} %\end{macro} %\begin{macro}{\c@lamaketitle} % \begin{macrocode} \ifjmlrhtml \renewcommand{\c@lamaketitle}{% \HCode{}% \HCode{
}% \HCode{

}% \@title\newline \ifx\@volume\@empty \else Volume \@volume \ifx\@subtitle\@empty\else: \fi \fi \@subtitle \HCode{

}% \newline \textbf{Editors: \@author} \HCode{
}% \@logo \HCode{
}% \let\maintitle\@title } \else \renewcommand{\c@lamaketitle}{% \pagenumbering{alph}% \pagestyle{empty}% \begin{titlepage}% \let\footnotesize\small \let\footnoterule\relax \let\footnote\thanks \titlebody \par \@thanks \end{titlepage}% \setcounter{footnote}{0}% \let\maintitle\@title \c@lmtitlempty } \fi % \end{macrocode} %\end{macro} %\begin{macro}{\maintitlefont} % \begin{macrocode} \renewcommand{\maintitlefont}{% \null\vskip15pt\relax\par \flushleft\Huge\bfseries\noindent} % \end{macrocode} %\end{macro} %\begin{macro}{\postmaintitle} % \begin{macrocode} \renewcommand{\postmaintitle}{% \par\relax } % \end{macrocode} %\end{macro} %\begin{macro}{\mainvolumefont} % \begin{macrocode} \newcommand{\mainvolumefont}{% \flushleft\noindent\LARGE\bfseries Volume } % \end{macrocode} %\end{macro} %\begin{macro}{\postmainvolume} % \begin{macrocode} \newcommand{\postmainvolume}{% \IfTitleElement{subtitle}{}{:}\par\relax } % \end{macrocode} %\end{macro} % %\begin{macro}{\mainissuefont} % \begin{macrocode} \newcommand{\mainissuefont}{% \flushleft\noindent\LARGE\bfseries Issue } % \end{macrocode} %\end{macro} %\begin{macro}{\postmainissue} % \begin{macrocode} \newcommand{\postmainissue}{% \par\relax } % \end{macrocode} %\end{macro} % %\begin{macro}{\mainsubtitlefont} % \begin{macrocode} \newcommand{\mainsubtitlefont}{% \flushleft\LARGE\bfseries\noindent} % \end{macrocode} %\end{macro} %\begin{macro}{\postmainsubtitle} % \begin{macrocode} \newcommand{\postmainsubtitle}{\par} % \end{macrocode} %\end{macro} % %\begin{macro}{\mainlogofont} % \begin{macrocode} \newcommand{\mainlogofont}{% \vfill \begin{center}} % \end{macrocode} %\end{macro} %\begin{macro}{\postmainlogo} % \begin{macrocode} \newcommand{\postmainlogo}{\end{center}\vfill\par} % \end{macrocode} %\end{macro} % %\begin{macro}{\mainteamfont} % \begin{macrocode} \newcommand{\mainteamfont}{\flushleft\bfseries\Large\noindent} % \end{macrocode} %\end{macro} %\begin{macro}{\postmainteam} % \begin{macrocode} \newcommand{\postmainteam}{\par} % \end{macrocode} %\end{macro} %\begin{macro}{\mainauthorfont} % \begin{macrocode} \renewcommand{\mainauthorfont}{% \flushleft\Large\itshape\doublespacing\noindent} % \end{macrocode} %\end{macro} %\begin{macro}{\postmainauthor} % \begin{macrocode} \renewcommand{\postmainauthor}{% \par} % \end{macrocode} %\end{macro} % %\begin{macro}{\mainproductioneditorfont} % \begin{macrocode} \newcommand{\mainproductioneditorfont}{% \flushleft\Large\noindent \@productioneditorname: \itshape} % \end{macrocode} %\end{macro} %\begin{macro}{\postmainproductioneditor} % \begin{macrocode} \newcommand{\postmainproductioneditor}{\par} % \end{macrocode} %\end{macro} % %\begin{macro}{\maindatefont} % \begin{macrocode} \renewcommand{\maindatefont}{} % \end{macrocode} %\end{macro} %\begin{macro}{\postmaindate} % \begin{macrocode} \renewcommand{\postmaindate}{} % \end{macrocode} %\end{macro} % %\begin{environment}{signoff} % Editorial team listed at the end of a preface etc. The mandatory % argument is the date, the optional argument is the team title. % Each editor should be separated with \ics{Editor}. % \begin{macrocode} \newenvironment{signoff}[2][The Editorial Team]{% \def\Editor##1{\begin{tabular}{@{}l@{}}% ##1% \end{tabular}% \par\vskip\baselineskip\noindent\ignorespaces }% \def\@editorialteam{#1}% \def\@signoffdate{#2}% \par\vskip\baselineskip\noindent \ifx\@signoffdate\@empty \else \emph{\@signoffdate}\par \vskip\baselineskip\noindent \fi \ifx\@editorialteam\@empty \else \@editorialteam:\par\vskip\baselineskip \fi \noindent\ignorespaces }{% } % \end{macrocode} %\end{environment} %\begin{environment}{authorsignoff} % An author can sign off at the end of a chapter (such as a % foreword). % Each author should be separated with \ics{Author}. % \begin{macrocode} \newenvironment{authorsignoff}{% \def\Author##1{\begin{tabular}{@{}l@{}}% ##1% \end{tabular}% \par\vskip\baselineskip\noindent\ignorespaces }% \par\vskip\baselineskip\noindent\ignorespaces }{% } % \end{macrocode} %\end{environment} % %\begin{macro}{\seroextracounters} % Reset counters at the start of each imported article % \begin{macrocode} \renewcommand{\zeroextracounters}{% \@ifundefined{c@theorem}{}{\setcounter{theorem}{0}}% \@ifundefined{c@algorithm}{}{\setcounter{algorithm}{0}}% \@ifundefined{c@example}{}{\setcounter{example}{0}}% } % \end{macrocode} %\end{macro} %\begin{macro}{\contentsname} % Redcfine title of the table of contents % \begin{macrocode} \renewcommand*{\contentsname}{Table of Contents} % \end{macrocode} %\end{macro} %\begin{macro}{\theHalgorithm} % \begin{macrocode} \def\theHalgorithm{\thechapter.\thealgorithm} % \end{macrocode} %\end{macro} \def\theHexample{\thechapter.\theexample} \def\theHtheorem{\thechapter.\thetheorem} %\begin{macro}{\theHsection} % \begin{macrocode} \def\theHsection{\thechapter.\thesection} \def\theHsubsection{\thechapter.\thesubsection} \def\theHsubsubsection{\thechapter.\thesubsubsection} \def\theHparagraph{\thechapter.\theparagraph} % \end{macrocode} %\end{macro} %\begin{macro}{\theHsubfigure} % \begin{macrocode} \def\theHsubfigure{\thechapter.\thefigure.\thesubfigure} \def\theHsubtable{\thechapter.\thetable.\thesubtable} % \end{macrocode} %\end{macro} %\begin{macro}{\mailto} % \begin{macrocode} \renewcommand*{\mailto}[1]{% \href{mailto:#1}{\nolinkurl{#1}}% } % \end{macrocode} %\end{macro} % \begin{macrocode} \c@lhaschapterfalse \let\c@lthesec\thesection % \end{macrocode} % Make sure the hyperlinks work %\begin{macro}{\doimportchapterHref} % \begin{macrocode} \newcommand\doimportchapterHref{% \edef\@currentHref{chapter.\thechapter}% } % \end{macrocode} %\end{macro} %\begin{macro}{\toclevel@appendix} % Set the toc level for the main appendices % \begin{macrocode} \def\toclevel@appendix{-1} % \end{macrocode} %\end{macro} % % \sty{hyperref} and \cls{combine} don't play nicely % need to fudge the cross-referencing a bit. %\begin{macro}{\Xprefix} % \begin{macrocode} \def\Xprefix{} % \end{macrocode} %\end{macro} %\begin{macro}{\Xref} % \begin{macrocode} \DeclareRobustCommand\Xref{\@ifstar\@Xrefstar\T@Xref}% % \end{macrocode} %\end{macro} %\begin{macro}{\Xpageref} % \begin{macrocode} \DeclareRobustCommand\Xpageref{% \@ifstar\@Xpagerefstar\T@Xpageref }% % \end{macrocode} %\end{macro} %\begin{macro}{\HyRef@StarSetXRef} % \begin{macrocode} \def\HyRef@StarSetXRef#1{% \begingroup \Hy@safe@activestrue \edef\x{#1}% \@onelevel@sanitize\x \edef\x{\endgroup \noexpand\HyRef@@StarSetRef \expandafter\noexpand\csname r@\Xprefix\x\endcsname{\x}% }% \x } % \end{macocode} %\end{macro} % %\begin{macro}{\@Xrefstar} % \begin{macrocode} \def\@Xrefstar#1{% \HyRef@StarSetXRef{#1}\@firstoffive } % \end{macrocode} %\end{macro} %\begin{macro}{\@Xpagerefstar} % \begin{macrocode} \def\@Xpagerefstar#1{% \HyRef@StarSetXRef{#1}\@secondoffive } % \end{macrocode} %\end{macro} %\begin{macro}{\T@Xref} % \begin{macrocode} \def\T@Xref#1{% \Hy@safe@activestrue \expandafter\@setXref\csname r@\Xprefix#1\endcsname\@firstoffive{#1}% \Hy@safe@activesfalse }% % \end{macrocode} %\end{macro} % %\begin{macro}{\T@Xpageref} % \begin{macrocode} \def\T@Xpageref#1{% \Hy@safe@activestrue \expandafter\@setXref\csname r@\Xprefix#1\endcsname\@secondoffive{#1}% \Hy@safe@activesfalse }% % \end{macrocode} %\end{macro} % %\begin{macro}{\Xlabel} % \begin{macrocode} \def\Xlabel#1{% \@bsphack \begingroup \@onelevel@sanitize\@currentlabelname \edef\@currentlabelname{% \expandafter\strip@period\@currentlabelname\relax.\relax\@@@ }% \protected@write\@mainauxout{}{% \string\newlabel{\Xprefix#1}{{\@currentlabel}{\thepage}% {\@currentlabelname}{\@currentHref}{}}% }% \endgroup \@esphack } \let\ltx@label\Xlabel % \end{macrocode} %\end{macro} %\begin{macro}{\@setXref} % \begin{macrocode} \def\@setXref#1#2#3{% csname, extract group, refname \ifx#1\relax \protect\G@refundefinedtrue \nfss@text{\reset@font\bfseries ??}% \@latex@warning{% Reference `#3' on page \thepage \space undefined% }% \else \expandafter\Hy@setref@link#1\@empty\@empty\@nil{#2}% \fi } % \end{macrocode} %\end{macro} %\begin{macro}{\@secondoffive} % Something's redefining \cs{@secondoffive} incorrectly at the % start of the document when hyperref's draft mode is on. Need % to fix it. % \begin{macrocode} \AtBeginDocument{\renewcommand\@secondoffive[5]{#2}} % \end{macrocode} %\end{macro} % % Need to write imported chapter label to main auxfile. %\begin{macro}{\@setimportlabel} % \begin{macrocode} \def\@setimportlabel{% \let\@mainauxout\@auxout \let\HRlabel\label } % \end{macrocode} %\end{macro} % \begin{macrocode} \AtBeginDocument{% \@setimportlabel \gdef\@setimportlabel{\let\ref\Xref \let\pageref\Xpageref}% \let\ReadBookmarks\relax } % \end{macrocode} % Imported papers modify \ics{InputIfFileExists} so save original % definition. % \begin{macrocode} \let\@org@InputIfFileExists\InputIfFileExists % \end{macrocode} % %\begin{environment}{jmlrpapers} % \begin{macrocode} \newenvironment{jmlrpapers}{% \begin{papers}[] % \end{macrocode} %\changes{1.07}{2010-07-30}{Added check for two column style} % \begin{macrocode} \if@twocolumn \def\@jmlr@restore{\twocolumn}% \else \def\@jmlr@restore{\onecolumn}% \fi \jmlrarticlecommands \let\importpubpaper\@importpubpaper \let\importpaper\@importpaper \let\importarticle\@importarticle \let\label\Xlabel \let\ref\Xref \pagestyle{article}% }{% \@jmlr@restore \end{papers} } % \end{macrocode} %\end{environment} % %\begin{macro}{\addtomaincontents} % \begin{macrocode} \newcommand{\addtomaincontents}[2]{% \protected@write\@mainauxout{\let\label\@gobble\let\index\@gobble \let\glossary\@gobble}{\string\@writefile{#1}{#2}}% } % \end{macrocode} %\end{macro} %\begin{macro}{\@write@author} % \begin{macrocode} \newcommand*{\@write@author}[2]{% \def\@jmlr@authors@sep{ and }% \protected@write\@mainauxout{}{% \string\@new@articleauthor{#1}{#2}% }% } % \end{macrocode} %\end{macro} %\begin{macro}{\@new@articleauthor} % \begin{macrocode} \newcommand*{\@new@articleauthor}[2]{% \expandafter\gdef\csname @jmlr@author@#1\endcsname{% \hyperref[#1jmlrstart]{#2}}% } % \end{macrocode} %\end{macro} % %\begin{macro}{\@write@jmlr@import} % The accompanying \app{makejmlrbook} Perl script scans the aux file % for information. Any articles imported using \ics{importpubpaper}, % \ics{importpaper} or \ics{importarticle} need to write the % relevant information to the aux file. % \begin{macrocode} \newcommand*{\@write@jmlr@import}[3]{% \protected@write\@mainauxout{}{\string\@jmlr@import{#1}{#2}{#3}}% } % \end{macrocode} %\end{macro} %\begin{macro}{\@jmlr@import} % \LaTeX\ should ignore \cs{@jmlr@import} as it's only needed for % \app{makejmlrbook}: % \begin{macrocode} \newcommand*{\@jmlr@import}[3]{} % \end{macrocode} %\end{macro} % %\begin{macro}{\importpubpaper} % Import a document that has already been published. % Syntax: \cs{importpubpaper}\oarg{label}\marg{dir}\marg{file}\marg{pages} % where \meta{dir} is the directory in which the paper is located, % \meta{file} is the name of the file and \meta{pages} indicates % the page range \emph{for the original version}. The optional % argument is a label. This is used to prefix the labels and % citations in the document so they don't clash with other imported % articles. If omitted, \meta{dir}/\meta{file} is used instead. % \begin{macrocode} \newcommand*{\@importpubpaper}[4][\@importdir\@importfile]{% \bgroup \def\@importdir{#2/}% \def\@importfile{#3}% \@write@jmlr@import{#1}{#2}{#3}% \def\@extra@b@citeb{#1}% \def\@extra@binfo{#1}% \jmlrpages{#4}% \graphicspath{{\@importdir}}% \def\jmlrmaketitlehook{% \refstepcounter{chapter}% \addtomaincontents{toc}% {\protect\contentsline{papertitle}{\@shorttitle}{\thepage}% {page.\thepage}}% \pdfbookmark{\@shorttitle}{chapter.\thechapter}% \def\@jmlr@authors@sep{ \& }% \tocchapterpubauthor{\@jmlrauthors}% {% \@jmlrabbrvproceedings \ifx\@jmlrvolume\@empty \ifx\@jmlrpages\@empty\else\space\fi \else \space\@jmlrvolume \ifx\@jmlrpages\@empty\else:\fi \fi \ifx\@jmlrpages\@empty \else \@jmlrpages \ifx\@jmlryear\@empty\else,\fi \fi \space\@jmlryear }% \@write@author{#1}{\@jmlrauthors}% }% \def\jmlrpremaketitlehook{% \cleardoublepage \phantomsection \let\@currentlabelname\@shorttitle }% \def\InputIfFileExists##1##2##3{% \IfFileExists{##1}{% \@org@InputIfFileExists{##1}{##2}{##3}% }% {% \@org@InputIfFileExists{\@importdir##1}{##2}{##3}% }% }% \def\Xprefix{#1}% \import{\@importdir\@importfile}% \def\Xprefix{}% \egroup \gdef\@shortauthor{}% \gdef\@shorttitle{}% \gdef\@firstauthor{}% \gdef\@jmlrauthors{}% \gdef\@firstsurname{}% } \newcommand{\importpubpaper}[4][]{% \ClassError{jmlrbook}{\string\importpubpaper\space not permitted outside `jmlrpapers' environment}{}% } % \end{macrocode} %\end{macro} % %\begin{macro}{\importpaper} % Like \cs{importpubpaper} but sets the pages to the page-range for % this book. % \begin{macrocode} \newcommand{\@importpaper}[3][\@importdir\@importfile]{% \bgroup \def\@importdir{#2/}% \def\@importfile{#3}% \@write@jmlr@import{#1}{#2}{#3}% \def\@extra@b@citeb{#1}% \def\@extra@binfo{#1}% \jmlrpages{\protect\@articlepagesref}% \graphicspath{{\@importdir}}% \def\jmlrmaketitlehook{% \refstepcounter{chapter}% \addtomaincontents{toc}% {\protect\contentsline{papertitle}{\@shorttitle}{\thepage}% {page.\thepage}}% \pdfbookmark{\@shorttitle}{chapter.\thechapter}% \def\@jmlr@authors@sep{ \& }% \tocchapterpubauthor{\@jmlrauthors}% {% \@jmlrabbrvproceedings \ifx\@jmlrvolume\@empty \space \else \space\@jmlrvolume:% \fi \protect\articlepagesref{#1}% \ifx\@jmlryear\@empty\else,\fi \space\@jmlryear }% \@write@author{#1}{\@jmlrauthors}% }% \def\jmlrpremaketitlehook{% \cleardoublepage \phantomsection \let\@currentlabelname\@shorttitle }% \def\InputIfFileExists##1##2##3{% \IfFileExists{##1}{% \@org@InputIfFileExists{##1}{##2}{##3}% }% {% \@org@InputIfFileExists{\@importdir##1}{##2}{##3}% }% }% \def\Xprefix{#1}% \import{\@importdir\@importfile}% \def\Xprefix{}% \egroup \gdef\@shortauthor{}% \gdef\@shorttitle{}% \gdef\@firstauthor{}% \gdef\@jmlrauthors{}% \gdef\@firstsurname{}% } \newcommand{\importpaper}[3][]{% \ClassError{jmlrbook}{\string\importpaper\space not permitted outside `jmlrpapers' environment}{}% } % \end{macrocode} %\end{macro} % %\begin{macro}{\importarticle} % Import a document that hasn't been published. % Syntax: \cs{importarticle}\oarg{label}\marg{dir}\marg{file} % where \meta{dir} is the directory in which the paper is located and % \meta{file} is the name of the file. The optional % argument is a label. This is used to prefix the labels and % citations in the document so they don't clash with other imported % articles. If omitted, \meta{file} is used instead. % \begin{macrocode} \newcommand{\@importarticle}[3][\@importdir\@importfile]{% \bgroup \def\@importdir{#2/}% \def\@importfile{#3}% \@write@jmlr@import{#1}{#2}{#3}% \def\@extra@b@citeb{#1}% \def\@extra@binfo{#1}% \def\jmlrmaketitlehook{% \addtomaincontents{toc}% {\protect\contentsline{papertitle}{\@shorttitle}{\thepage}% {page.\thepage}}% \refstepcounter{chapter}% \pdfbookmark{\@shorttitle}{chapter.\thechapter}% \def\@jmlr@authors@sep{ \& }% \tocchapterauthor{\@jmlrauthors}% \@write@author{#1}{\@jmlrauthors}% \jmlrpages{}% \jmlrvolume{}% \jmlryear{}% \jmlrsubmitted{}% \jmlrpublished{}% \jmlrproceedings{}{}% }% \def\jmlrpremaketitlehook{% \cleardoublepage \phantomsection \let\@currentlabelname\@shorttitle }% \graphicspath{{\@importdir}}% \def\InputIfFileExists##1##2##3{% \IfFileExists{##1}{% \@org@InputIfFileExists{##1}{##2}{##3}% }% {% \@org@InputIfFileExists{\@importdir##1}{##2}{##3}% }% }% \def\Xprefix{#1}% \import{\@importdir\@importfile}% \def\Xprefix{}% \egroup \gdef\@shortauthor{}% \gdef\@shorttitle{}% \gdef\@firstauthor{}% \gdef\@jmlrauthors{}% \gdef\@firstsurname{}% } \newcommand{\importarticle}[3][]{% \ClassError{jmlrbook}{\string\importarticle\space not permitted outside `jmlrpapers' environment}{}% } % \end{macrocode} %\end{macro} % %\begin{macro}{\addtocpart} % Add a part to the TOC without printing anything in the text % (but does a \cs{cleardoublepage}). % \begin{macrocode} \newcommand{\addtocpart}[1]{% \cleardoublepage \refstepcounter{tocpart}% \addtocontents{toc}{\protect\tocpart{#1}}% \pdfbookmark[-1]{#1}{part.\thetocpart}% } \newcounter{tocpart} % \end{macrocode} %\end{macro} % %\begin{macro}{\tocpart} % Define the appearance of a part in the TOC. % \begin{macrocode} \newcommand{\tocpart}[1]{% \addpenalty{-\@highpenalty}% \vskip 1.0ex \@plus\p@ \setlength\@tempdima{2.25em}% \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \large\bfseries \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss \null}\par \penalty\@highpenalty \endgroup } % \end{macrocode} %\end{macro} % % Set up the layout of the chapter headings % \begin{macrocode} \setlength{\prechapterskip}{3em} \setlength{\postchapterskip}{20pt} % \end{macrocode} % %\begin{macro}{\chapternumberformat} % \begin{macrocode} \renewcommand{\chapternumberformat}[1]{% \Large\bfseries \@chapapp\space#1\par } % \end{macrocode} %\end{macro} % %\begin{macro}{\chaptertitleformat} % \begin{macrocode} \renewcommand{\chaptertitleformat}[1]{% \Large\bfseries #1} % \end{macrocode} %\end{macro} %\begin{macro}{\chapterformat} % \begin{macrocode} \renewcommand*{\chapterformat}{% \raggedright } % \end{macrocode} %\end{macro} % Set up the format of a part in the book (not a part in an % article). %\begin{macro}{\preparthook} % \begin{macrocode} \renewcommand{\preparthook}{\cleardoublepage\null\vfil} % \end{macrocode} %\end{macro} %\begin{macro}{\partnumberformat} % \begin{macrocode} \renewcommand{\partnumberformat}[1]{% \Huge\bfseries \@partapp\nobreakspace#1\par\nobreak \vskip 20\p@ } % \end{macrocode} %\end{macro} %\begin{macro}{\postparthook} % \begin{macrocode} \def\postparthook{% \thispagestyle{empty}% \vfil\newpage \null \thispagestyle{empty}% \newpage } % \end{macrocode} %\end{macro} % %\begin{macro}{\@curparthead} % The heading of the current part % \begin{macrocode} \newcommand{\@curparthead}{} % \end{macrocode} %\end{macro} % %\begin{macro}{\parttitleformat} % \begin{macrocode} \renewcommand{\parttitleformat}[1]{#1% \gdef\@curparthead{\@partapp\space \thepart. #1}% \@mkboth{\@curparthead}{\@curparthead}% } % \end{macrocode} %\end{macro} % %\begin{macro}{\firstpageno} % Change \cs{firstpageno} to do nothing as the page number will % be determined by the book. % \begin{macrocode} \renewcommand{\firstpageno}[1]{} % \end{macrocode} %\end{macro} % %\begin{macro}{\tocchapterauthor} % Add the author of the current chapter to the table of contents. % \begin{macrocode} \newcommand{\tocchapterauthor}[1]{% \addtomaincontents{toc}{\protect\contentsline{chapterauthor}{% #1}{}{}}% } % \end{macrocode} %\end{macro} % %\begin{macro}{\tocchapterpubauthor} % Add the author of an imported prepublished paper to the % table of contents. The first argument is the author (or list % of authors). The second argument is the reference to the % published article. % \begin{macrocode} \newcommand{\tocchapterpubauthor}[2]{% \addtomaincontents{toc}{\protect\contentsline{chapterauthor}{% #1; #2.}{}{}}% } % \end{macrocode} %\end{macro} % % Set up the formatting in the TOC % \begin{macrocode} \renewcommand*\@pnumwidth{2em} % \end{macrocode} % %\begin{macro}{\l@part} % Format for book parts % \begin{macrocode} \renewcommand*\l@part[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% \vskip 1.0em \@plus\p@ \setlength\@tempdima{5em}% \vbox{% \pagerule \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \large\bfseries \advance\leftskip\@tempdima \hskip -\leftskip \renewcommand*\numberline[1]{\hb@xt@ \@tempdima {\partname\space ##1\hfil }}% #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss }\par \penalty\@highpenalty \endgroup \pagerule }% \fi} % \end{macrocode} %\end{macro} % %\begin{macro}{\l@papertitle} % \begin{macrocode} \newcommand*{\l@papertitle}[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% \vskip 1.0em \@plus\p@ \setlength\@tempdima{3em}% \begingroup \leavevmode \raggedright\itshape #1\nobreak\hfill \nobreak\hb@xt@\@pnumwidth{\hss \normalfont#2}% \par \penalty\@highpenalty \endgroup \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\l@chapterauthor} % \begin{macrocode} \newcommand*\l@chapterauthor[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \raggedright #1% \par \endgroup \fi} % \end{macrocode} %\end{macro} % %\begin{macro}{\l@section} % \begin{macrocode} \renewcommand*\l@section[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% \vskip 1.0em \@plus\p@ \setlength\@tempdima{3em}% \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \normalsize\mdseries \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par \penalty\@highpenalty \endgroup \fi} % \end{macrocode} %\end{macro} % %\begin{macro}{\l@subsection} % \begin{macrocode} \renewcommand*\l@subsection[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% \vskip 1.0em \@plus\p@ \setlength\@tempdima{3.5em}% \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \normalsize\mdseries \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par \penalty\@highpenalty \endgroup \fi} % \end{macrocode} %\end{macro} % %\begin{macro}{\chaptermark} % \begin{macrocode} \renewcommand*{\chaptermark}[1]{% \@mkboth{\@curparthead}{\protect\thechapter. #1}% } % \end{macrocode} %\end{macro} % % Set up page styles %\begin{macro}{\firstpagehead} % \begin{macrocode} \newcommand{\firstpagehead}{} % \end{macrocode} %\end{macro} %\begin{macro}{\firstpagefoot} % \begin{macrocode} \newcommand{\firstpagefoot}{\hfill\thepage} % \end{macrocode} %\end{macro} % %\begin{macro}{\headfont} % Set the header font % \begin{macrocode} \renewcommand*{\headfont}{\reset@font\small\scshape}% % \end{macrocode} %\end{macro} %\begin{macro}{\footfont} % Set the footer font % \begin{macrocode} \renewcommand*{\footfont}{\reset@font\small\itshape}% % \end{macrocode} %\end{macro} % %\begin{macro}{\ps@chplain} % Page style for first page of a chapter % \begin{macrocode} \newcommand*{\ps@chplain}{% \let\@mkboth\@gobbletwo \renewcommand*{\@oddhead}{\headfont\firstpagehead}% \renewcommand*{\@evenhead}{}% \renewcommand*{\@oddfoot}{\footfont\firstpagefoot}% \renewcommand*{\@evenfoot}{\footfont\thepage\hfill }% } \let\ps@plain\ps@chplain % \end{macrocode} %\end{macro} %\begin{macro}{\ps@article} % Page style for the imported articles. % \begin{macrocode} \newcommand*{\ps@article}{% \let\@mkboth\@gobbletwo \renewcommand*{\@oddhead}{\headfont\hfill\@shorttitle}% \renewcommand*{\@evenhead}{\headfont\@shortauthor\hfill}% \renewcommand*{\@oddfoot}{\footfont\hfill\thepage} \renewcommand*{\@evenfoot}{\footfont\thepage\hfill} } % \end{macrocode} %\end{macro} % %\begin{macro}{\ps@jmlrbook} % Page style for book % \begin{macrocode} \newcommand*{\ps@jmlrbook}{% \ps@headings \renewcommand*{\sectionmark}[1]{}% } % \end{macrocode} %\end{macro} % %\begin{macro}{\morefrontmatter} % \begin{macrocode} \renewcommand*{\morefrontmatter}{\pagestyle{jmlrbook}% \def\chaptermark##1{% \@mkboth{##1\hfill}{\hfill##1}}% } % \end{macrocode} %\end{macro} % %\begin{macro}{\moremainmatter} % \begin{macrocode} \renewcommand*{\moremainmatter}{\pagestyle{jmlrbook}% \def\chaptermark##1{% \@mkboth{\@curparthead}{\protect\thechapter. ##1}% }% } % \end{macrocode} %\end{macro} % %\begin{macro}{\bibsection} % Set the bibliography headings in the articles % \begin{macrocode} \renewcommand*\bibsection{\section*{\refname}} % \end{macrocode} %\end{macro} % %\begin{macro}{\@bookpart} % Define the layout of a book part % \begin{macrocode} \def\@bookpart[#1]#2{% \ifnum \c@secnumdepth >-2\relax \refstepcounter{part}% \addcontentsline{toc}{\@parttoclabel}{% \protect\numberline{\thepart}#1}% \else \addcontentsline{toc}{\@parttoclabel}{#1}% \fi \markboth{}{}% {\interlinepenalty \@M \normalfont\partformat \ifnum \c@secnumdepth >-2\relax \partnumberformat{\thepart}% \fi \parttitleformat{#2}\par}% \postparthook} % \end{macrocode} %\end{macro} % % Set up the book commands: % \begin{macrocode} \jmlrbookcommands % \end{macrocode} %\iffalse % \begin{macrocode} % % \end{macrocode} %\fi %\Finale \endinput