LaTeX 2"Classes for the Journal of Machine Learning Research

LATEX2" Classes for the Journal of Machine Learning Research

Nicola L. C. Talbot
http://theoval.cmp.uea.ac.uk/~nlct/

2012-01-05 (version 1.12)

Contents

1 Introduction
2 Required Packages
3 Guidelines for Article Authors
 3.1 Title Information
 3.2 Font Changing Commands
 3.3 Structure
 3.4 Citations and Bibliography
 3.5 Figures and Tables
  3.5.1 Sub-Figures and Sub-Tables
 3.6 Algorithms
 3.7 Description Lists
 3.8 Theorems, Lemmas etc
 3.9 Cross-Referencing
 3.10 Mathematics
 3.11 Color vs Grayscale
 3.12 Where To Go For Help
4 Guidelines for Production Editors
 4.1 jmlrbook Class Options
 4.2 The Preamble
 4.3 Main Book Commands
  4.3.1 Two Column Articles in a One Column Book
  4.3.2 Cross-Referencing
 4.4 Altering the Layout of the Main Title Page
 4.5 Potential Pitfalls
 4.6 Creating the Book Using makejmlrbook
Index

1 Introduction

The 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 jmlr2e and jmlrwcp2e packages but has been adapted to enable it to work better with the combine class to collate the articles into a book. 3 Guidelines for Article Authors describes how to use the jmlr class.

The jmlrbook class is for combining JMLR articles into a book. This class uses combine and hyperref, which are troublesome enough on their own but together are quite fragile. The jmlrbook class redenes some internals to get combine and hyperref to work together but some packages (e.g. subfig and pdfpages) are likely to mess everything up and cause errors. This is why the guidelines to authors are fairly stringent and why jmlr will give an error message if certain packages are loaded.1 The jmlrbook class works best with PDFLATEX so authors should ensure that their articles can compile with PDFLATEX. 4 Guidelines for Production Editors describes how to use the jmlrbook class.

Note that the jmlr (and therefore jmlrbook) class automatically loads the hyperref package, but some packages need to be loaded before hyperref.

Anything that needs to be done before hyperref is loaded can be specied by dening the command


\jmlrprehyperref  \jmlrprehyperref

before the class is loaded. For example, to load the packages foo and bar before hyperref, you can do:

\newcommand{\jmlrprehyperref}{\usepackage{foo,bar}}  
\documentclass{jmlr}

The makejmlrbook Perl script can be used to make a book that uses the jmlrbook class. In addition to creating the print and online versions of the book, it will compile the individual articles, running BibTEX where necessary, and create a set of HTML les containing a list of all the articles imported into the book along with links to the abstracts and PDFs of the individual articles. 4.6 Creating the Book Using makejmlrbook describes how to use the makejmlrbook application.

Top

2 Required Packages

The jmlr class is based on the scrartcl class and loads the following packages: amsmath, amssymb, natbib, url, graphicx and algorithm2e, hyperref, nameref and xkeyval. Note that unlike the jmlr2e and jmlrwcp2e packages, this class le does not load the obsolete epsfig package.

The jmlrbook class additionally loads the combine class and the following packages: combnat, setspace and fink.

The makejmlrbook script requires Perl, TEX and TEX4ht.

Top

3 Guidelines for Article Authors

Article authors should use the jmlr class. This class comes with example les jmlr-sample.tex and jmlrwcp-sample.tex, which can be used as templates.

The following class options are available:

nowcp
The article is for the Journal of Machine Learning Research (default).
wcp
The article is for JMLR Workshop and Conference Proceedings.
twocolumn
Use two-column style.
onecolumn
Use one-column style (default).
color
Color version (see 3.11 Color vs Grayscale).
gray
Grayscale version (see 3.11 Color vs Grayscale).
tablecaption=top
in a table environment, \floatconts puts the caption at the top.
tablecaption=bottom
in a table environment, \floatconts puts the caption at the bottom.

Top

3.1 Title Information

The jmlr class uses dierent syntax from jmlr2e and jmlrwcp2e to specify the title information. In particular, it doesn't dene \jmlrheading and \ShortHeading. Instead, the following commands should be used:


\jmlrvolume  \jmlrvolume{hnumberi}

This species the volume number. For example:

\jmlrvolume{2}


\jmlryear  \jmlryear{hyeari}

This species the year. For example:

\jmlryear{2010}


\jmlrsubmitted  \jmlrsubmitted{hdatei}

This species the submission date.


\jmlrpublished  \jmlrpublished{hdatei}

This species the publication date.


\jmlrworkshop  \jmlrworkshop{htitlei}

This species the workshop title (for use with the wcp class option).

The title information is specied using the commands described below. These commands should typically go in the preamble. As with most class les, The title itself is produced using


\maketitle  \maketitle

This command should go after \begin{document}. For example:

\begin{document}  
\maketitle

Before \maketitle, you must specify the title information using the following commands:


\title  \title[hshort titlei]{htitlei}

This species the article's title. A short title for the page header can be supplied via the optional argument hshort titlei. If you want to force a line break in the title, use


\titlebreak  \titlebreak

instead of \newline or \\ as this will ensure that the line break doesn't also end up in the table of contents or bookmarks when the article is included in a book.


\editor  \editor{hnamei}

This species the editor's name. If there is more than one editor, use:


\editors  \editors{hnamesi}


\author  \author{hauthor specsi}

This species the author. The specications hauthor specsi are a bit dierent to jmlr2e and jmlrwcp2e. Use


\Name  \Name[habbreviated namei]{hauthor's namei}

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. If the abbreviation of the name doesn't get parsed properly you can override the default using the optional argument. (See below for examples.)


\Email  \Email{hauthor's emaili}

This species the author's email address. It should only be used within the argument to \author.


\and  \and

This should be used to separate two authors with the same address.


\AND  \AND

This should be used to separate authors with dierent addresses.


\\  \\

This should be used before an author's address or between authors with the same address where there are more that two authors.


\addr  \addr

This should be used at the start of the address.

Example 1
Two authors with the same address:
\author{\Name{Jane Doe} \Email{abc@sample.com}\and  
   \Name{John {Basey Fisher}} \Email{xyz@sample.com}\\  
   \addr Address}

In this example, the second author has a space in his surname so the surname needs to be grouped.

Example 2
Three authors with the same address:
\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}

In this example, the third author has an accent on her forename initials so grouping is required.

Example 3
Authors with a dierent address:
\author{\Name{John Smith} \Email{abc@sample.com}\\  
  \addr Address 1  
  \AND  
  \Name{May Brown} \Email{xyz@sample.com}\\  
  \addr Address 2  
 }

Example 4
The author is actually a company so there's no rst name and surname:
\author{\Name[Some Company, Ltd]{Some Company, Ltd}\Email{xyz:some.com}\\  
  \addr Address  
}

Top

3.2 Font Changing Commands

Use the LATEX2" font changing commands, such as \bfseries or \textbf{htexti}, rather than the obsolete LATEX2.09 commands, such as \bf.


\url  \url{haddressi}

This will typeset haddressi in a typewriter font. Special characters, such as ~, are correctly displayed. Example:

\url{http://theoval.cmp.uea.ac.uk/~nlct/}


\mailto  \mailto{hemail addressi}

This will typeset the given email address in a typewriter font. Note that this is not the same as \Email, which should only be used in the argument of \author.

Top

3.3 Structure


abstract  \begin{abstract}
htexti
\end{abstract}

The abstract text should be displayed using the abstract environment.


keywords  \begin{keywords}hkeyword listi\end{keywords}

The keywords should be displayed using the keywords environment.


\acks  \acks{htexti}

This displays the acknowledgements.


\section  \section{htitlei}

Section titles are created using \section. The heading is automatically numbered and can be cross-referenced using \label and \ref. Unnumbered sections can be produced using:


\section*  \section*{htitlei}


\subsection  \subsection{htitlei}

Sub-section titles are created using \subsection. Unnumbered sub-sections can be produced using:


\subsection*  \subsection*{htitlei}


\subsubsection  \subsubsection{htitlei}

Sub-sub-section titles are created using \subsubsection. Unnumbered sub-sub-sections can be produced using:


\subsubsection*  \subsubsection*{htitlei}

Further sectioning levels can be obtained using \paragraph and \subparagraph, but these are unnumbered with running heads.


\appendix  \appendix

Use \appendix to switch to the appendices. This changes \section to produce an appendix. Example:

\appendix  
\section{Proof of Theorems}

Top

3.4 Citations and Bibliography

The jmlr class automatically loads natbib and sets the bibliography style to plainnat. References should be stored in a .bib le.


\bibliography  \bibliography{hbib lei}

This displays the bibliography.


\citep  \citep[hpre notei][hpost notei]{hlabeli}

Use \citep for a parenthetical citation.


\citet  \citet[hnotei]{hlabeli}

Use \citet for a textual citation.

See the natbib documentation for further details.

Top

3.5 Figures and Tables

Floats, such as gures, tables and algorithms, are moving objects and are supposed to oat to the nearest convenient location. Please don't force them to go in a particular place. In general it's best to use the htbp specier and don't put the oat in the middle of a paragraph (that is, make sure there's a paragraph break above and below the oat). 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 don't try changing the format of the caption by doing something like:

\caption{\textit{A Sample Caption.}}

or

\caption{\em A Sample Caption.}

You can, of course, change the font for individual words or phrases. For example:

\caption{A Sample Caption With Some \emph{Emphasized Words}.}

The jmlr class provides the following command for displaying the contents of a gure or table:


\floatconts  \floatconts{hlabeli}{hcaption commandi}{hcontentsi}

This ensures that the caption is correctly positioned and that the contents are centered. For example:

\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}

The jmlr class automatically loads graphicx which denes:


\includegraphics  \includegraphics[hoptionsi]{hle namei}

where hoptionsi is a comma-separated list of options.

For example, suppose you have an image called mypic.png in a subdirectory called images:

\begin{figure}[htbp]  
\floatconts  
  {fig:example}% label  
  {\caption{An Example Figure}}% caption command  
  {\includegraphics[width=0.5\textwidth]{images/mypic}}  
\end{figure}

Note that you shouldn't specify the le 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 -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 mypic.pdf, the grayscale can be called mypic-gray.pdf, mypic-gray.png or mypic-gray.jpg. See 3.11 Color vs Grayscale for further details.


\includeteximage  \includeteximage[hoptionsi]{hle namei}

If your image le is made up of LATEX code (e.g. tikz commands) the le can be included using \includeteximage. The optional argument is a key=value comma-separated list where the keys are a subset of those provided by \includegraphics. The main keys are: width, height, scale and angle.

Top

3.5.1 Sub-Figures and Sub-Tables

The subfig package causes a problem for jmlrbook so the jmlr class will give an error if it is used. Therefore the jmlr class provides its own commands for including sub-gures and sub-tables.


\subfigure  \subfigure[htitlei][hvaligni]{hcontentsi}

This makes a sub-gure where hcontentsi denotes the contents of the sub-gure. This should also include the \label. The rst optional argument htitlei indicates a caption for the sub-gure. By default, the sub-gures are aligned at the base. This can be changed with the second optional argument hvaligni, which may be one of: t (top), c (centred) or b (base).

For example, suppose there are two images les, mypic1.png and mypic2.png, in the subdirectory images. Then they can be included as sub-gures as follows:

\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}


\subtable  \subtable[htitlei][hvaligni]{hcontentsi}

This is an analogous command for sub-tables. The default value for hvaligni is t.

Top

3.6 Algorithms


algorithm  \begin{algorithm}
hcontentsi
\end{algorithm}

Enumerated textual algorithms can be displayed using the algorithm environment. Within this environment, use \caption to set the caption (and \label to cross-reference it). Within the body of the environment you can use the enumerate environment.


enumerate*  \begin{enumerate*}
\item htexti

\end{enumerate*}

If you want to have nested enumerate environments but you want to keep the same numbering throughout the algorithm, you can use the enumerate* environment, provided by the jmlr class. For example:

\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}


algorithm2e  \begin{algorithm2e}
hcontentsi
\end{algorithm2e}

Pseudo code can be displayed using the algorithm2e environment, provided by the algorithm2e package, which is automatically loaded. For example:

\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}

See the algorithm2e documentation for more details.

Top

3.7 Description Lists


altdescription  \begin{altdescription}{hwidest labeli}
\item[hlabeli] hitem texti
\end{altdescription}

In addition to the standard description environment, the jmlr class also provides the altdescription environment. This has an argument that should be the widest label used in the list. For example:

\begin{altdescription}{differentiate}  
\item[add] A method that adds two variables.  
\item[differentiate] A method that differentiates a function.  
\end{altdescription}

Top

3.8 Theorems, Lemmas etc

The jmlr class provides the following theorem-like environments: theorem, example, lemma, proposition, remark, corollary, definition, conjecture and axiom. Within the body of those environments, you can use the 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{theorem}[An Example Theorem]  
\label{thm:example}  
This is the theorem.  
\begin{proof}  
This is the proof.  
\end{proof}  
\end{theorem}

Top

3.9 Cross-Referencing

Always use \label when cross-referencing, rather than writing the number explicitly. The jmlr class provides some convenience commands to assist referencing. These commands, described below, can all take a comma-separated list of labels.


\sectionref  \sectionref{hlabel listi}

Used to refer to a section or sections. For example, if you dened a section as follows:

\section{Results}\label{sec:results}

you can refer to it as follows:

The results are detailed in \sectionref{sec:results}.

This command may also be used for sub-sections and sub-sub-sections.


\appendixref  \appendixref{hlabel listi}

Used to refer to an appendix or multiple appendices.


\equationref  \equationref{hlabel listi}

Used to refer to an equation or multiple equations.


\tableref  \tableref{hlabel listi}

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.


\subtabref  \subtabref{hlabel listi}

Used to refer to sub-tables without the main table number, e.g. (a) or (b).


\figureref  \figureref{hlabel listi}

Used to refer to a gure or multiple gures. This can also be used for sub-gures where the main gure number is also required, e.g. 2(a) or 4(b).


\subfigref  \subfigref{hlabel listi}

Used to refer to sub-gures without the main gure number, e.g. (a) or (b).


\algorithmref  \algorithmref{hlabel listi}

Used to refer to an algorithm or multiple algorithms.


\theoremref  \theoremref{hlabel listi}

Used to refer to a theorem or multiple theorems.


\lemmaref  \lemmaref{hlabel listi}

Used to refer to a lemma or multiple lemmas.


\remarkref  \remarkref{hlabel listi}

Used to refer to a remark or multiple remarks.


\corollaryref  \corollaryref{hlabel listi}

Used to refer to a corollary or multiple corollaries.


\definitionref  \definitionref{hlabel listi}

Used to refer to a denition or multiple denitions.


\conjectureref  \conjectureref{hlabel listi}

Used to refer to a conjecture or multiple conjectures.


\axiomref  \axiomref{hlabel listi}

Used to refer to an axiom or multiple axioms.


\exampleref  \exampleref{hlabel listi}

Used to refer to an example or multiple examples.

Top

3.10 Mathematics

The jmlr class loads the amsmath package so you can use any of the commands and environments dened in that package. A brief summary of some of the more common commands and environments is provided here. See the amsmath documentation for further details.


\set  \set{htexti}

In addition to the commands provided by amsmath, the jmlr class also provides the \set command which can be used to typeset a set. For example:

The universal set is denoted $\set{U}$

Unnumbered single-line equations should be displayed using \[ and \]. For example:

\[E = m c^2\]

Numbered single-line equations should be displayed using the equation environment. For example:

\begin{equation}\label{eq:trigrule}  
\cos^2\theta + \sin^2\theta \equiv 1  
\end{equation}

Multi-lined numbered equations should be displayed using the align environment. For example:

\begin{align}  
f(x) &= x^2 + x\label{eq:f}\\  
f’(x) &= 2x + 1\label{eq:df}  
\end{align}

Unnumbered multi-lined equations should be displayed using the align* environment. For example:

\begin{align*}  
f(x) &= (x+1)(x-1)\\  
&= x^2 - 1  
\end{align*}

If you want to mix numbered with unnumbered lines use the align environment and suppress unwanted line numbers with \nonumber. For example:

\begin{align}  
y &= x^2 + 3x - 2x + 1\nonumber\\  
&= x^2 + x + 1\label{eq:y}  
\end{align}

An equation that is too long to t on a single line can be displayed using the split environment.

Text can be embedded in an equation using \text{htexti} or you can use \intertext{htexti} to interupt a multi-line environment such as align.

Predened operator names are listed in table 1. For additional operators, either use


\operatorname  \operatorname{hnamei}

for example

If $X$ and $Y$ are independent,  
$\operatorname{var}(X+Y) =  
\operatorname{var}(X) + \operatorname{var}(Y)$

or declare it with


\DeclareMathOperator  \DeclareMathOperator{hcommandi}{hnamei}

for example

\DeclareMathOperator{\var}{var}

and then use this new command:

If $X$ and $Y$ are independent,  
$\var(X+Y) = \var(X)+\var(Y)$

If you want limits that go above and below the operator (like \sum) use the starred versions (\operatorname* or \DeclareMathOperator*).


Table 1: Predened Operator Names (taken from amsmath documentation)
\arccosarccos \degdeg \lglg \projlimprojlim
\arcsinarcsin \detdet \limlim \secsec
\arctanarctan \dimdim \liminfliminf \sinsin
\argarg \expexp \limsuplimsup \sinhsinh
\coscos \gcdgcd \lnln \supsup
\coshcosh \homhom \loglog \tantan
\cotcot \infinf \maxmax \tanhtanh
\cothcoth \injliminjlim \minmin
\csccsc \kerker \PrPr
\varlimsup---
lim \varinjliml im!
\varliminflim-\varprojlimlim

Top

3.11 Color vs Grayscale

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 les, you just need to supply a grayscale version of the le. For example, if the le is called myimage.png, then the gray version should be myimage-gray.png or myimage-gray.pdf or myimage-gray.jpg. You don't need to modify your code. The jmlr class checks for the existence of the grayscale version if it is print mode (provided you have used \includegraphics and haven't specied the le extension).


\ifprint  \ifprint{htrue parti}{hfalse parti}

You can use \ifprint to determine which mode you are in. For example:

in \figureref{fig:nodes}, the  
\ifprint{dark gray}{purple}  
ellipse represents an input and the  
\ifprint{light gray}{yellow} ellipse  
represents an output.

Another example:

{\ifprint{\bfseries}{\color{red}}important text!}

You can use the class option gray to see how the document will appear in gray scale mode.

The xcolor class is loaded with the x11names option, so you can use any of the x11 predened colors (listed in the xcolor documentation).

Top

3.12 Where To Go For Help

If you have a LATEX query, the rst place to go to is the UK TUG FAQ.

If you are unfamiliar or just getting started with LATEX, there's a list of on-line introductions to LATEX at: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=man-latex

There are also forums, mailing lists and newsgroups. For example, the LATEX Community (http://www.latex-community.org/), the texhax mailing list (http://tug.org/mailman/listinfo/texhax) and comp.text.tex (archives available at http://groups.google.com/group/comp.text.tex/).

Documentation for packages or classes can be found using the texdoc application. For example:

texdoc natbib

Alternatively, you can go to http://www.ctan.org/pkg/hnamei where hnamei is the name of the package. For example: 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, A manual for writers of term papers, theses, and dissertations, The University of Chicago Press, 1996.

Top

4 Guidelines for Production Editors

The jmlrbook class can be used to combine articles that use the jmlr document class into a book. The following sample les are provided: paper1/paper1.tex, paper2/paper2.tex, paper3/paper3.tex, jmlr-sample.tex, jmlrwcp-sample.tex, jmlrbook-sample.tex and proceedings-sample.tex. All but the last two are articles using the jmlr class. The last two (jmlrbook-sample.tex and proceedings-sample.tex) uses the jmlrbook class le to combine the articles into a book. Note that no modications are needed to the les using the 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 BibTEX where necessary). You can use the makejmlrbook Perl script to compile the book and create associated HTML les. See 4.6 Creating the Book Using makejmlrbook for details.

Top

4.1 jmlrbook Class Options

nowcp
The imported pre-published articles were published in the Journal of Machine Learning Research (default).
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


\jmlrwcp  \jmlrwcp

and


\jmlrnowcp  \jmlrnowcp

Alternatively, you can set the name of the journal or conference proceedings using:


\jmlrproceedings  \jmlrproceedings{hshort titlei}{hlong titlei}

color
Color version (see 3.11 Color vs Grayscale). Use this option for the on-line version with hyperlinks enabled (default).
gray
Grayscale version (see 3.11 Color vs Grayscale). Use this option for the print version without hyperlinks.
tablecaption=top
in a table environment, \floatconts puts the caption at the top.
tablecaption=bottom
in a table environment, \floatconts puts the caption at the bottom.
letterpaper
Set the paper size to letter (default).
7x10
Set the paper size to 7 10 inches.
10pt
Use 10pt as the normal text size.
11pt
Use 11pt as the normal text size (default).
12pt
Use 12pt as the normal text size.

Top

4.2 The Preamble

Any packages that the imported articles load (which aren't automatically loaded by jmlr) must be loaded in the book's preamble. For example, if one or more of the articles load the siunitx package, this package must be loaded in the book.

Commands that are dened in the imported articles will be local to that article unless they have been globally dened using \gdef or \global. Since most authors use \newcommand and \newenvironment (or \renewcommand and \renewenvironment) this shouldn't cause a conict if more that one article has dened the same command or environment. For example, in the sample les supplied, both paper1/paper1.tex and paper2/paper2.tex have dened the command \samplecommand using \newcommand. As long as this command isn't also dened in the book, there won't be a conict.


\title  \title[hPDF titlei]{hbook titlei}

In the book preamble, \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 le's properties in their PDF viewer. (Note that in the imported articles, \title sets the article's title and the optional argument sets the short title for the page header and table of contents.)


\author  \author[hPDF author(s)i]{hbook author(s)i}

In the book preamble, \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 le's properties in their PDF viewer. (Note that in the imported articles, \author sets the article's author and the optional argument sets the short author list for the page header.)


\volume  \volume{hnumberi}

This command sets the book's volume number. Omit if the book has no volume number.


\subtitle  \subtitle{hsub-titlei}

This command sets the book's subtitle. Omit if the book has no sub-title.


\logo  \logo{himage commandi}

This sets the book's title image. Use \includegraphics and omit the le 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 3.11 Color vs Grayscale for further details.)


\team  \team{hteam titlei}

This can be used to set the name of the editorial team. This command may be omitted if not required.


\productioneditor  \productioneditor{hnamei}

This command may be used to name the production editor. The command may be omitted if not required.

See 4.4 Altering the Layout of the Main Title Page for details on how to modify the layout of the title page.

Top

4.3 Main Book Commands

All commands that are provided by the jmlr class are also available with the jmlrbook class, but some commands might behave dierently 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:


\maketitle  \maketitle

This displays the book's title page. Note that \maketitle has a dierent eect when used in imported articles.


\frontmatter  \frontmatter

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 \chapter instead of \chapter*. It also sets the page style and sets the page numbering to lower case Roman numerals.


authorsignoff  \begin{authorsignoff}
hauthor listi
\end{authorsignoff}

This environment may be used by the author signing o at the end of a chapter such as the foreword. Within the environment use:


\Author  \Author{hdetailsi}

for the author's details. More than one \Author should be used if there is more than one author. Example:

\begin{authorsignoff}  
\Author{Nicola Talbot\\  
University of East Anglia}  
\Author{Anne Author\\  
University of No Where}  
\end{authorsignoff}


preface  \begin{preface}[hlenamei]

This environment may be used to typeset the preface. This starts a new chapter using

\chapter{\prefacename}

\prefacename where \prefacename defaults to Preface. This environment should typically go in the front matter and is provided to allow makejmlrbook create a standalone document for the preface. The optional argument is the lename (without any extension or path) that will be used by makejmlrbook. This defaults to preface but, to conform with JMLR guidelines, should be changed to the surname of the rst author (editor) followed by the nal two digits of the year. See the JMLR website for further details of the guidelines.


signoff  \begin{signoff}[hteam namei]{hdatei}
heditor listi
\end{signoff}

This environment may be used by the editorial team when signing o a chapter such as the preface. If the optional argument is omitted, The Editorial Team is used. If you are using the preface environment described above, the signoff environment must go inside the preface environment.

Within the signoff environment use:


\Editor  \Editor{hdetailsi}

for each editor. Example:

\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}


\tableofcontents  \tableofcontents

This command displays the book's table of contents. Note that it has a dierent eect if used in an imported article.


\mainmatter  \mainmatter

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.


\part  \part[hshort titlei]{htitlei}

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 dierent eect if used in an imported article.


\addtocpart  \addtocpart{htitlei}

This adds htitlei to the table of contents, issues a clear double page, but doesn't display any text or aect the part numbering.


\chapter  \chapter[hshort titlei]{htitlei}

This command may be used in the main body of the book but will cause an error if used within an imported article.


\section  \section[hshort titlei]{htitlei}


\subsection  \subsection[hshort titlei]{htitlei}


\subsubsection  \subsubsection[hshort titlei]{htitlei}


\paragraph  \paragraph[hshort titlei]{htitlei}


\subparagraph  \subparagraph[hshort titlei]{htitlei}

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.


\appendix  \appendix

If used in the main body of the book, this will switch to the book appendices. Subsequent \chapter commands will produce the appendices. If used within an imported article, it will switch to the article appendices and won't aect the main part of the book.


jmlrpapers  \begin{jmlrpapers}
himported papersi
\end{jmlrpapers}

This environment must be used when importing articles. Within this environment, use the following commands to import articles:


\importpubpaper  \importpubpaper[hlabeli]{hdirectoryi}{hlei}{hpagesi}

This imports an article that has already been published elsewhere. The hpagesi argument should be the page range from the 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 le is contained in is is given by hdirectoryi. If the le is in the same directory as the book, use a dot. The le name is given by hlei. The article is also given a label, specied by the optional argument. This is hdirectoryi/hlei by default. The label is used as a prex 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 4.3.2 Cross-Referencing).


\importpaper  \importpaper[hlabeli]{hdirectoryi}{hlei}

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).


\importarticle  \importarticle[hlabeli]{hdirectoryi}{hlei}

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 \importpubpaper.

Example: to import a previously published paper paper1/paper1.tex and an unpublished paper paper2/paper2.tex:

\begin{jmlrpapers}  
\importpubpaper{paper1}{paper1}{23--45}  
\importarticle{paper2}{paper2}  
\end{jmlrpapers}

Top

4.3.1 Two Column Articles in a One Column Book

The jmlrbook class column style will override the column style of the imported articles. You can use the twocolumn class option to 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 \twocolumn in the jmlrpapers environment to switch on two column formatting. The eect will be localised to the end of the environment.

Top

4.3.2 Cross-Referencing

You can cross-reference other parts of the book using the standard \label/\ref mechanism, but if you want to reference something within an imported article, you must prex the label with the label given when importing the article (that is, the optional argument to \importpubpaper, \importpaper or \importarticle). For example, if you want to reference a section labeled sec:results in the imported paper paper1/paper1.tex, you would need to do:

see Section~\ref{paper1/paper1sec:results}

or

see \sectionref{paper1/paper1sec:results}

In addition to the commands described in 3.9 Cross-Referencing, the jmlrbook class also provides the following cross-referencing commands:


\chapterref  \chapterref{hlabel listi}

Reference a chapter or chapters. The argument is a comma-separated list of labels.


\articlepageref  \articlepageref{hlabeli}

This displays the starting page number of the article whose label is given by hlabeli. Note that this must a single label, not a list. For example:

An interesting article starts on page~\articlepageref{paper1/paper1}


\articlepagesref  \articlepagesref{hlabeli}

This displays the page range of the article whose label is given by hlabeli. Again, this must be a single label, not a list. This page range is unrelated to the hpagesi argument of \importpubarticle.


\articletitleref  \articletitleref{hlabeli}

This displays the short title for the article whose label is given by hlabeli. Again, this must be a single label, not a list.


\articleauthorref  \articleauthorref{hlabeli}

This displays the author list for the article whose label is given by hlabeli. Again, this must be a single label, not a list.

Top

4.4 Altering the Layout of the Main Title Page


\titlebody  \titlebody

The main body of the book's title page is given by the command \titlebody. Within the denition of this command, you can use:


\SetTitleElement  \SetTitleElement{helementi}{hprei}{hposti}

where helementi can be: title, volume, issue2, subtitle, logo, team, author, date, productioneditor. The hprei and hposti arguments specify what to do before and after the element. Note that \SetTitleElement does nothing if that element hasn't been set. For example, if \volume has been omitted or \volume{} is used, then

\SetTitleElement{volume}{\mainvolumefont}{\postmainvolume}

will do nothing (so you don't end up with Volume :).


\IfTitleElement  \IfTitleElement{helementi}{htrue parti}{hfalse parti}

This does htrue parti if helementi has been set otherwise it does hfalse parti. For example, \postmainvolume is dened as:

\newcommand{\postmainvolume}{%  
  \IfTitleElement{subtitle}{}{:}\par\relax  
}

This means that it will only print a colon after the volume number if the subtitle has been set.

The default denition of \titlebody is:

\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}%  
}

Top

4.5 Potential Pitfalls

The combine class and hyperref package are individually both easily broken by packages that change certain internals and they don't ordinarily work together. The 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 subfig, pdfpages and geometry. This is why the 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 nd 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 dierent articles use packages that conict. For example, one article uses package foo and another uses package bar. Each article compiles okay as a stand-alone article, but when combined foo and bar conict. Another problem may occur when articles load the same package but with conicting package options. To reduce the chance of this occurring, the jmlr class loads some commonly used packages. For example, it loads the algorithm2e package with the algo2e and ruled options and provides the algorithm environment in addition to algorithm2e's algorithm2e environment. Dierent versions of the same package can also be a problem. To help counteract the problem caused by dierent papers using dierent versions of the algorithm2e package, jmlrbook denes most of the old style commands if they don't exist.

Articles that use dierent input encodings can also cause a problem. For example, if one article uses utf8 and another uses latin1. If the authors have directly entered a diacritic or ligature, such as é or , instead of using a LATEX command, such as \’e or \ae, then this will cause an error on compiling the book.3 The choice then is to either change all non-keyboard characters with the appropriate LATEX commands or to use the \inputencoding command, supplied by the inputenc package, to switch the encoding at the start of each article.

Authors who use \nonumber within an equation environment can mess up the hyperlinks. Remove \nonumber and change the equation environment to \[… \] (or just make it a numbered equation).

If the article changes the graphics path using \graphicspath, jmlrbook won't nd the graphics if the imported articles aren't in the same directory as the book.

Top

4.6 Creating the Book Using makejmlrbook

The 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 \importarticle, \importpaper or \importpubpaper, and the imported articles must use the jmlr class. Note that I have only tested makejmlrbook on Linux.

On UNIX style systems, the script can be invoked from a terminal using:
makejmlrbook [hoptionsi] hlenamei

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:
perl makejmlrbook [hoptionsi] hlenamei

The mandatory argument hlenamei is the name of the master TEX le containing the book. It must use the jmlrbook class. You may omit the .tex extension. For example, if the le is called proceedings.tex, you can call makejmlrbook as follows:

perl makejmlrbook proceedings

This will create the les proceedings-print.pdf (the print version) and proceedings-online.pdf (the online version). It will also create a directory (folder) called html in which the HTML les and individual article PDFs will be placed.

The options to makejmlrbook are as follows:

--online
Generate the color on-line version (default).
--noonline
Don't generate the color on-line version.
--print
Generate the grayscale print version (default).
--noprint
Don't generate the grayscale print version.
--html
Generate the HTML les and the individual article PDFs (default).
--nohtml
Don't generate the HTML les and the individual article PDFs.
--logourlhurli
Make the logo on the HTML index page link to hurli.
--extractpreface
Extract the preface as a standalone document with links in the HTML index. (Only has an eect if combined with --html option.) This will only work if the preface has been put inside the preface environment with the signoff environment that each editor with \Editor.
--noextractpreface
Don't try extracting the preface. (Default.)
--batchtex
Run TEX in batch mode.
--nobatchtex
Don't run TEX in batch mode (default).
--quieter
Reduce chatter to STDOUT (doesn't eliminate all messages). This also runs TEX in batch mode.
--noquieter
Don't reduce messages to STDOUT (default).
--version
Display the version number and exit.
--help
List all available options.

There are also some more advanced options, but these haven't been fully tested:

--latexapphnamei
Application used to call LATEX. Defaults to pdatex.
--latexopthstringi
Options to pass to LATEX.
--formathstringi
Output format (defaults to pdf). This may need to be changed if you change the LATEX application.
--bibtexapphnamei
Application use to process the bibliography. Defaults to bibtex.
--bibtexopthstringi
Options to pass to BibTEX.

Top

Index

Symbols

\\  1

A abstract (environment)  2
\acks  3
\addr  4
\addtocpart  5
algorithm (environment)  6, 7
algorithm2e (environment)  8, 9
algorithm2e package  10, 11, 12, 13, 14, 15
\algorithmref  16
align (environment)  17, 18, 19
align* (environment)  20
altdescription (environment)  21
amsmath package  22, 23, 24, 25, 26
amssymb package  27
\AND  28
\and  29
\appendix  30, 31
\appendixref  32
\articleauthorref  33
\articlepageref  34
\articlepagesref  35
\articletitleref  36
\Author  37
\author  38, 39
authorsignoff (environment)  40
axiom (environment)  41
\axiomref  42

B \bibliography  43

C \caption  44
\chapter  45
\chapterref  46
\citep  47
\citet  48
class options:
    10pt  49
    11pt  50
    12pt  51
    7x10  52
    color  53, 54
    gray  55, 56, 57
    letterpaper  58
    nowcp  59, 60
    onecolumn  61
    tablecaption
        bottom  62, 63
        top  64, 65
    twocolumn  66, 67
    wcp  68, 69, 70
combine class  71, 72, 73, 74
combnat package  75
conjecture (environment)  76
\conjectureref  77
corollary (environment)  78
\corollaryref  79

D \DeclareMathOperator  80
\DeclareMathOperator*  81
definition (environment)  82
\definitionref  83
description (environment)  84

E \Editor  85, 86
\editor  87
\editors  88
\Email  89
enumerate (environment)  90, 91
enumerate* (environment)  92
environments:
    abstract  93
    algorithm  94, 95
    algorithm2e  96, 97
    align  98, 99, 100
    align*  101
    altdescription  102
    authorsignoff  103
    axiom  104
    conjecture  105
    corollary  106
    definition  107
    description  108
    enumerate  109, 110
    enumerate*  111
    equation  112, 113
    example  114
    jmlrpapers  115, 116
    keywords  117
    lemma  118
    preface  119, 120, 121, 122
    proof  123
    proposition  124
    remark  125
    signoff  126, 127, 128, 129
    split  130
    table  131, 132, 133, 134
    theorem  135
epsfig package  136, 137
equation (environment)  138, 139
\equationref  140
example (environment)  141
\exampleref  142

F \figureref  143
fink package  144
\floatconts  145, 146, 147, 148, 149
\frontmatter  150

G \gdef  151
geometry package  152, 153
\global  154
graphicx package  155, 156

H hyperref package  157, 158, 159, 160, 161, 162, 163

I \ifprint  164
\IfTitleElement  165
\importarticle  166
\importpaper  167, 168
\importpubarticle  169
\importpubpaper  170, 171
\includegraphics  172, 173, 174
\includeteximage  175
inputenc package  176
\intertext  177
\issue  178

J jmlr2e package  179, 180, 181, 182
jmlrbook package  183
\jmlrnowcp  184
jmlrpapers (environment)  185, 186
\jmlrprehyperref  187
\jmlrproceedings  188
\jmlrpublished  189
\jmlrsubmitted  190
\jmlrvolume  191
\jmlrwcp  192
jmlrwcp2e package  193, 194, 195, 196
\jmlrworkshop  197
\jmlryear  198

K keywords (environment)  199

L \label  200, 201
lemma (environment)  202
\lemmaref  203
\logo  204

M \mailto  205
\mainmatter  206
makejmlrbook  207, 208, 209, 210, 211, 212, 213, 214, 215, 216
\maketitle  217, 218

N \Name  219
nameref package  220
natbib package  221, 222, 223
\newcommand  224
\newenvironment  225

O \operatorname  226
\operatorname*  227

P \paragraph  228
\part  229
pdfpages package  230, 231, 232
preface (environment)  233, 234, 235, 236
\prefacename  237
\productioneditor  238
proof (environment)  239
proposition (environment)  240
psfig package  241

R remark (environment)  242
\remarkref  243
\renewcommand  244
\renewenvironment  245

S scrartcl class  246
\section  247, 248
\section*  249
\sectionref  250
\set  251
setspace package  252
\SetTitleElement  253
signoff (environment)  254, 255, 256, 257
siunitx package  258
split (environment)  259
subfig package  260, 261, 262, 263
\subfigref  264
\subfigure  265
\subparagraph  266
\subsection  267, 268
\subsection*  269
\subsubsection  270, 271
\subsubsection*  272
\subtable  273
\subtabref  274
\subtitle  275
\sum  276

T table (environment)  277, 278, 279, 280
\tableofcontents  281
\tableref  282
\team  283
\text  284
theorem (environment)  285
theorem package  286
\theoremref  287
tikz package  288
\title  289, 290
\titlebody  291
\titlebreak  292
\twocolumn  293

U \url  294
url package  295

V \volume  296

X xcolor package  297, 298
xkeyval package  299

Top

1Currently jmlr will check if subfig, pdfpages, geometry, psfig, epsfig and theorem are loaded and will throw an error. If other packages are found to be a problem, they will be added to the list.

2The default title page layout doesn't use issue, but if required it can be set with \issue{hnumberi}

3and may also cause a problem for the editor's text editor.