• No results found

Index of /CTAN/macros/latex/contrib/jmlr

N/A
N/A
Protected

Academic year: 2022

Share "Index of /CTAN/macros/latex/contrib/jmlr"

Copied!
129
0
0

Full text

(1)

Articles for Proceedings of Machine Learning Research (PMLR) formerly Journal of Machine Learning Research Workshop and Conference Proceedings

(JMLR W&CP)

Nicola L. C. Talbot

http://www.dickimaw-books.com/

2022-02-09 (version 1.30)

(2)

Contents

1 Introduction 4

1.1 Required Packages . . . 4

2 Guidelines for Article Authors 6 2.1 Title Information . . . 6

2.2 Font Changing Commands . . . 10

2.3 Structure . . . 10

2.4 Citations and Bibliography . . . 12

2.5 jmlrutilssupplementary package . . . 12

2.5.1 Package Options . . . 12

2.5.2 Figures and Tables . . . 13

2.5.3 Algorithms . . . 15

2.5.4 Description Lists . . . 17

2.5.5 Theorems, Lemmas etc . . . 17

2.5.6 Cross-Referencing . . . 19

2.5.7 Mathematics. . . 21

2.6 Color vs Grayscale . . . 23

2.7 Where To Go For Help . . . 24

3 Guidelines for Production Editors 25 3.1 jmlrbookClass Options. . . 25

3.2 The Preamble . . . 26

3.3 Main Book Commands. . . 28

3.3.1 Two Column Articles in a One Column Book . . . 32

3.3.2 Cross-Referencing . . . 32

3.4 Altering the Layout of the Main Title Page. . . 33

3.5 Potential Pitfalls. . . 34

4 The Code 36 4.1 jmlrutils.sty Code . . . 36

4.1.1 Cross-Referencing . . . 37

4.1.2 Figures, Tables and Algorithms . . . 40

4.1.3 General Markup. . . 46

4.1.4 Proofs and Theorems. . . 48

4.2 jmlr.cls Code. . . 53

4.2.1 Sections . . . 58

4.2.2 Footnotes . . . 59

4.2.3 Article abstract . . . 59

(3)

4.2.4 Keywords. . . 60

4.2.5 Title Page Information . . . 60

4.2.6 Pagestyles . . . 67

4.2.7 Miscellany . . . 70

4.2.8 Compatibility with combine.cls . . . 74

4.3 jmlrbook.cls Code. . . 84

Change History 117

Index 120

(4)

1 Introduction

The

jmlr

class was designed primarily for the Journal of Machine Learning Research Work- shop and Conference Proceedings (JMLR W&CP) based on the

jmlrwcp2e

package to make it easier for production editors to combine articles into a single book.

The

nowcp

option implements the

jmlr2e

style to make it easier to include reprints from JMLR articles. If you are an author wanting to submit an article to the JMLR, please see their guidelines and use their official package.

Since the creation of this class, the JMLR W&CP has changed its name to the Proceedings of Machine Learning Research (PMLR). Articles submitted to the PMLR should use the

pmlr

option. Reprints of old JMLR W&CP articles should use the

wcp

option.

The

jmlrbook

class was provided to combine articles that use the

jmlr

class into a book.

The

combine

class internally used by

jmlrbook

has stopped work following changes to the LATEX kernel in 2020. This means that the

jmlrbook

class is now deprecated. This only affects production editors not article authors.

As from v1.24, some non-class dependent commands and environments have been moved to a new package

jmlrutils

(see Section2.5). This package is automatically loaded by

jmlr

, but may be used with other classes. (Note that you will need to explicitly load

algorithm2e

if you want to use the

algorithm

environment.)

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 specified by defining the command

\jmlrprehyperref

\jmlrprehyperref

beforethe class is loaded. For example, to load the packages

foo

and

bar

before

hyperref

, you can do:

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

\documentclass{jmlr}

1.1 Required Packages

The

jmlr

class is based on the

article

class and loads the following packages:

jmlrutils

(see Sec- tion2.5),

amsmath

,

amssymb

,

natbib

,

url

,

graphicx

and

algorithm2e

,

hyperref

,

nameref

,

xcolor

(5)

and

xkeyval

. Note that unlike the

jmlr2e

and

jmlrwcp2e

packages, this class file does not load the obsolete

epsfig

package.

(6)

2 Guidelines for Article Authors

Article authors should use the

jmlr

class with the

pmlr

option. This class comes with the example file

pmlr-sample.tex

, which can be used as a template.

The following class options are available:

pmlr The article is for the Proceedings of Machine Learning Research (PMLR).

wcp The article is for JMLR Workshop and Conference Proceedings (JMLR W&CP).

nowcp The article is for the Journal of Machine Learning Research (default).

twocolumn Use two-column style. The title and author information will span both columns through the use of the optional argument of

\twocolumn

. This means that no page break can occur in the title and author list.

onecolumn Use one-column style (default).

color Color version (see Section2.6).

gray Grayscale version (see Section2.6).

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.

cleveref This option is passed to

jmlrutils

(see Section2.5).

nocleveref This option is passed to

jmlrutils

(see Section2.5).

2.1 Title Information

The

jmlr

class uses different syntax from

jmlr2e

and

jmlrwcp2e

to specify the title information.

In particular, it doesn’t define

\jmlrheading

and

\ShortHeading

. Instead, the following commands should be used:

\jmlrvolume{

〈number〉

}

\jmlrvolume

This specifies the volume number. For example:

\jmlrvolume{2}

(7)

\jmlryear{

year

}

\jmlryear

This specifies the year. For example:

\jmlryear{2010}

\jmlrsubmitted{

date

}

\jmlrsubmitted

This specifies the submission date.

\jmlrpublished{

date

}

\jmlrpublished

This specifies the publication date.

\jmlrworkshop{

〈title〉

}

\jmlrworkshop

This specifies the workshop title (for use with the

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

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

〈short title〉

]{

〈title〉

}

\title

This specifies the article’s title. A short title for the page header can be supplied via the op- tional argument〈short title〉. 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. If there is content within the title that should not appear in the page headings or table of contents (for example, a footnote) use

(8)

\titletag{

title only stuff

}

\titletag

For example:

\title{An Interesting Paper\titlebreak With a Line Break\titletag{\thanks{and an acknowledgement}}}

\editor{

name

}

\editor

This specifies the editor’s name. If there is more than one editor, use:

\editors{

〈names〉

}

\editors

\author{

〈author specs〉

}

\author

This specifies the author. The specifications〈author specs〉are a bit different to

jmlr2e

and

jmlrwcp2e

. Use

\Name[

〈abbreviated name〉

]{

〈author’s name〉

}

\Name

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

If there is any content within〈author’s name〉that shouldn’t get copied to the header, footer or table of contents, it should be enclosed within the argument of

\nametag{

title only stuff

}

\nametag

For example:

\Name{Ann Other\nametag{\thanks{formerly with some other institute}}}

Ensure no space occurs before

\nametag

otherwise the surname will be interpreted as an empty string because the space is used to separate the forenames from the surname.

(9)

\Email{

author’s email

}

\Email

This specifies 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 different 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{[email protected]}\and

\Name{John {Basey Fisher}} \Email{[email protected]}\\

\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{[email protected]}\\

\Name{Jack Jones} \Email{[email protected]}\\

\Name{{\'E}louise {\'E}abhla Finchley} \Email{[email protected]}\\

\addr Address}

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

(10)

Example 3 Authors with a different address:

\author{\Name{John Smith} \Email{[email protected]}\\

\addr Address 1

\AND\Name{May Brown} \Email{[email protected]}\\

\addr Address 2 }

Example 4 The author is actually a company so there’s no first name and surname:

\author{\Name[Some Company, Ltd]{Some Company, Ltd}\Email{xyz:some.com}\\

\addr Address }

2.2 Font Changing Commands

Use the LATEX 2ε font changing commands, such as

\bfseries

or

\textbf{

text

}

, rather than the obsolete LATEX2.09 commands, such as

\bf

. (The obsolete font changing commands will produce a warning if used.)

\url{

〈address〉

}

\url

This will typeset〈address〉in a typewriter font. Special characters, such as

~

, are correctly displayed. Example:

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

This command is provided by the

url

package which is automatically loaded.

\mailto{

〈email address〉

}

\mailto

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

. This command is provided by the supplementary package

jmlrutils

. Other commands are described in Section2.5.

2.3 Structure

\begin{abstract}

〈text〉

\end{abstract}

abstract

The abstract text should be displayed using the

abstract

environment.

(11)

\begin{keywords}

keyword list

\end{keywords}

keywords

The keywords should be displayed using the

keywords

environment.

\acks{

text

}

\acks

This displays the acknowledgements.

\section{

〈title〉

}

\section

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*{

title

}

\section*

\subsection{

〈title〉

}

\subsection

Sub-section titles are created using

\subsection

. Unnumbered sub-sections can be pro- duced using:

\subsection*{

〈title〉

}

\subsection*

\subsubsection{

〈title〉

}

\subsubsection

Sub-sub-section titles are created using

\subsubsection

. Unnumbered sub-sub-sections can be produced using:

\subsubsection*{

title

}

\subsubsection*

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

\chapter{Proof of Theorems}

(12)

2.4 Citations and Bibliography

The

jmlr

class automatically loads

natbib

and sets the bibliography style to

plainnat

. Refer- ences should be stored in a

.bib

file.

\bibliography{

bib file

}

\bibliography

This displays the bibliography.

\citep[

〈pre note〉

][

〈post note〉

]{

〈label〉

}

\citep

Use

\citep

for a parenthetical citation.

\citet[

note

]{

label

}

\citet

Use

\citet

for a textual citation.

See the

natbib

documentation1for further details.

2.5 jmlrutils supplementary package

The

jmlrutils

package is automatically loaded by the

jmlr

class but may be used with other classes.

2.5.1 Package Options

The following options may be passed to the

jmlrutils

package if it is to be used without the

jmlr

class.

maths Define the commands

\set

and

\oldvec

and redefine

\vec

. This will also automat- ically load the

amsmath

package. (Default.)

nomaths Don’t define

\set

and

\oldvec

and don’t redefine

\vec

.

theorems Define the theorem commands and environments listed in Section 2.5.5. (De- fault.)

notheorems Don’t define the theorem commands and environments.

cleveref Loads

aliascnt

and

cleveref

and defines the theorem environments with aliased counters. Note that this option is largely redundant with

notheorems

. When

jmlru- tils

is loaded implicitly by

jmlr

, this option will also ensure that

hyperref

is loaded be- fore

cleveref

. If

jmlrutils

is loaded without

jmlr

then

hyperref

won’t be loaded unless

\jmlrprehyperref

is defined.

1http://ctan.org/pkg/natbib

(13)

nocleveref Don’t load

aliascnt

and

cleveref

(default).

subfloats Define the sub-figure and sub-table commands listed in Section2.5.2. (Default.) nosubfloats Don’t define the sub-figure and sub-table commands.

The non-default options are provided when

jmlrutils

is loaded without the

jmlr

class. Don’t try passing the non-default options to

jmlrutils

if you are using the

jmlr

class as this could interfere with the build process for the proceedings or book.

The

jmlrutils

package doesn’t recognise any of the

jmlr

class options (such as

tablecaption

).

2.5.2 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

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, pleasedon’ttry changing the format of the caption by doing some- thing 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

jmlrutils

package provides the following command for displaying the contents of a fig- ure or table:

\floatconts{

〈label〉

}{

〈caption command〉

}{

〈contents〉

}

\floatconts

This ensures that the caption is correctly positioned and that the contents are centred. 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}}

(14)

If the

jmlr

class is used, the table caption (when used with

\floatconts

) will obey the

table- caption

class option, otherwise it will be placed above the table contents. Within the

figure

environment,

\floatconts

will put the caption below the contents. This command may be used within other floats.

The

jmlr

class automatically loads

graphicx

which defines:

\includegraphics[

options

]{

file name

}

\includegraphics

where〈options〉is a comma-separated list of options. If you are using

jmlrutils

with another class you need to load

graphicx

in order to use this command. See the documentation for the

graphicx

package for further details of this command and other provided commands.

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 file extension when including the image when using the

jmlr

class. It’s helpful if you can also provide a grayscale version of colour images. This should be labelled as the colour image but with

-gray

immediately before the extension.

(The extension need not be the same as that of the colour image.) For example, if you have an image called

mypic.pdf

, the grayscale can be called

mypic-gray.pdf

,

mypic-gray.png

or

mypic-gray.jpg

. See Section2.6for further details.

\includeteximage[

〈options〉

]{

〈file name〉

}

\includeteximage

If your image file is made up of LATEX code (e.g.

tikz

commands) the file can be included using

\includeteximage

. The optional argument is a key=value comma-separated list where the available keys are a subset of those provided by

graphicx

’s

\includegraphics

. The main keys are:

width

,

height

,

scale

and

angle

. Some of the keys specific to image files (such as the bounding box and type keys) do nothing with

\includeteximage

.

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-figures and sub- tables. If you aren’t using the

jmlr

class, you can prevent

jmlrutils

from defining these com- mands with the

nosubfloats

package option.

Sub-float captions that are wider than the corresponding sub-float content are placed in- side a

\parbox

set to the width of the sub-float content. This allows long captions to line

(15)

wrap in a mini-paragraph below the sub-float. However, if the sub-float is very narrow, this can lead to badly-broken sub-captions that generate overfull or underfull hbox warnings. You can specify a minimum width for sub-float captions by setting the following length:

\jmlrminsubcaptionwidth

\jmlrminsubcaptionwidth

The default value is 0pt. The value should be set with

\setlength

. The assignment can be localised by placing it within a group or environment.

\subfigure[

〈title〉

][

〈valign〉

]{

〈contents〉

}

\subfigure

This makes a sub-figure where〈contents〉denotes the contents of the sub-figure. This should also include the

\label

. The first optional argument〈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〈valign〉, which may be one of:

t

(top),

c

(centred) or

b

(base).

For example, suppose there are two images files,

mypic1.png

and

mypic2.png

, in the sub- directory

images

. Then they can be included as sub-figures 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[

〈title〉

][

〈valign〉

]{

〈contents〉

}

\subtable

This is an analogous command for sub-tables. The default value for〈valign〉is

t

.

2.5.3 Algorithms

The

jmlr

class automatically loads the

algorithm2e

package. If you are using

jmlrutils

with an- other class, you will need to load

algorithm2e

if you want to use the

algorithm

and

algorithm2e

environments described below.

(16)

\begin{algorithm}[

placement

]

〈contents〉

\end{algorithm}

algorithm

Enumerated textual algorithms can be displayed using the

algorithm

environment. The op- tional argument is as for

figure

and

table

.

Within the body of the environment you can use the

enumerate

environment.

\begin{enumerate*}

\item

text

...

\end{enumerate*}

enumerate*

If you want to have nested

enumerate

environments but you want to keep the same num- bering throughout the algorithm, you can use the

enumerate*

environment, provided by the

jmlrutils

package. For example:

\begin{algorithm}

\floatconts{alg:path}%label

{\caption{Shortest Path}}% caption {% contents

\begin{enumerate*}

\item Set the label of vertex $s$ to 0

\item Set $i=0$

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

\begin{algorithm2e}

〈contents〉

\end{algorithm2e}

algorithm2e

(17)

Pseudo code can be displayed using the

algorithm2e

environment, provided by the

algo- rithm2e

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

documentation2for more details.

2.5.4 Description Lists

\begin{altdescription}{

〈widest label〉

}

\item[

〈label〉

]

〈item text〉

\end{altdescription}

altdescription

In addition to the standard

description

environment, the

jmlr

class also provides the

altde- scription

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}

2.5.5 Theorems, Lemmas etc

The

jmlrbook

class doesn’t work well with common theorem packages, so

jmlrutils

provides theorem code that won’t conflict with

jmlrbook

. If you’re using

jmlrutils

without the

jmlr

class, you can prevent the definition of these commands with the

notheorems

package option.

The

jmlrutils

package 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:

2http://ctan.org/pkg/algorithm2e

(18)

\begin{theorem}[An Example Theorem]

\label{thm:example}

This is the theorem.

\begin{proof}

This is the proof.

\end{proof}

\end{theorem}

You can define your own numbered theorem-like environment using:

\newtheorem{

〈name〉

}[

〈counter〉

]{

〈title〉

}[

〈outer counter〉

]

\newtheorem

or you can define an unnumbered theorem-like environment using:

\newtheorem*{

〈name〉

}{

〈title〉

}

\newtheorem*

where〈name〉is the name of the new environment and〈title〉is the title tag at the start of the environment. In the case of the numbered theorems,〈counter〉is a predefined counter to use with this theorem. If omitted, a new counter called〈name〉will be defined. The final optional argument〈outer counter〉is the name of a parent counter which, when incremented, should reset the theorem counter.

Both

\newtheorem

and

\newtheorem*

set the new theorem’s style to the current defined style. The current style is set using the following commands:

\theorembodyfont{

〈declarations〉

}

\theorembodyfont

This sets the font declarations used in the body of the theorem. This defaults to

\itshape

.

\theoremheaderfont{

〈declarations〉

}

\theoremheaderfont

This sets the font declarations used for the theorem title. This defaults to

\bfseries

.

\theorempostheader{

〈text〉

}

\theorempostheader

This indicates what should occur at the end of the title. This defaults to nothing.

\theoremsep{

〈text〉

}

\theoremsep

This indicates what to put between the header and the body of the environment. This defaults to nothing.

(19)

For example, to define an unnumbered theorem-like environment called “note” with the title “Note” followed by a colon and a new line between the title and the body of the

note

environment:

\theorembodyfont{\upshape}

\theoremheaderfont{\scshape}

\theorempostheader{:}

\theoremsep{\newline}

\newtheorem*{note}{Note}

Now it can be used in the document environment:

\begin{note}

This is an numbered theorem-like environment.

\end{note}

2.5.6 Cross-Referencing

Always use

\label

when cross-referencing, rather than writing the number explicitly. The

jmlrutils

package provides some convenience commands to assist referencing. These com- mands, described below, can all take a comma-separated list of labels.

\sectionref{

〈label list〉

}

\sectionref

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

\chapter{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{

label list

}

\appendixref

Used to refer to an appendix or multiple appendices.

\equationref{

〈label list〉

}

\equationref

Used to refer to an equation or multiple equations.

\tableref{

label list

}

\tableref

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.

(20)

\subtabref{

label list

}

\subtabref

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

\figureref{

label list

}

\figureref

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(a) or 4(b).

\subfigref{

〈label list〉

}

\subfigref

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

\algorithmref{

〈label list〉

}

\algorithmref

Used to refer to an algorithm or multiple algorithms.

\theoremref{

〈label list〉

}

\theoremref

Used to refer to a theorem or multiple theorems.

\lemmaref{

label list

}

\lemmaref

Used to refer to a lemma or multiple lemmas.

\remarkref{

〈label list〉

}

\remarkref

Used to refer to a remark or multiple remarks.

\corollaryref{

〈label list〉

}

\corollaryref

Used to refer to a corollary or multiple corollaries.

\definitionref{

〈label list〉

}

\definitionref

Used to refer to a definition or multiple definitions.

\conjectureref{

label list

}

\conjectureref

(21)

Used to refer to a conjecture or multiple conjectures.

\axiomref{

〈label list〉

}

\axiomref

Used to refer to an axiom or multiple axioms.

\exampleref{

〈label list〉

}

\exampleref

Used to refer to an example or multiple examples.

2.5.7 Mathematics

The

jmlr

class loads the

amsmath

package so you can use any of the commands and environ- ments defined in that package. The

jmlrutils

package will load

amsmath

if the default

maths

package option is used but won’t load

amsmath

if the

nomaths

option is used. A brief sum- mary of some of the more common commands and environments is provided here. See the

amsmath

documentation3for further details.

\set{

〈maths〉

}

\set

In addition to the commands provided by

amsmath

, the

jmlrutils

package also provides the

\set

command which can be used to typeset a set. For example:

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

This command won’t be provided if the

nomaths

option is used.

\vec{

〈maths〉

}

\vec

The

\vec

command is redefined by

jmlrutils

to use

\boldsymbol

, which is provided by

ams- math

. (This command won’t be redefined if the

nomaths

option is used.) If you require the original

\vec

, you can access it with:

\orgvec{

maths

}

\orgvec

This command won’t be provided if the

nomaths

option is used.

Unnumbered single-line equations should be displayed using

\[

and

\]

. For example:

\[E = m c^2\]

3http://ctan.org/pkg/amsmath

(22)

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}

The above are provided by the LATEX kernel but may be adjusted by packages such as

amsmath

. The commands and environments below are provided by

amsmath

.

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 fit on a single line can be displayed using the

split

environment.

Text can be embedded in an equation using

\text{

〈text〉

}

or you can use

\intertext {

〈text〉

}

to interupt a multi-line environment such as

align

.

Predefined operator names are listed intable 2.1. For additional operators, either use

\operatorname{

〈name〉

}

\operatorname

for example

If $X$ and $Y$ are independent,

$\operatorname{var}(X+Y) =

\operatorname{var}(X) + \operatorname{var}(Y)$

or declare it with

\DeclareMathOperator{

command

}{

name

}

\DeclareMathOperator

(23)

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 2.1: Predefined Operator Names (taken from

amsmath

documentation)

\arccos

arccos

\deg

deg

\lg

lg

\projlim

proj lim

\arcsin

arcsin

\det

det

\lim

lim

\sec

sec

\arctan

arctan

\dim

dim

\liminf

lim inf

\sin

sin

\arg

arg

\exp

exp

\limsup

lim sup

\sinh

sinh

\cos

cos

\gcd

gcd

\ln

ln

\sup

sup

\cosh

cosh

\hom

hom

\log

log

\tan

tan

\cot

cot

\inf

inf

\max

max

\tanh

tanh

\coth

coth

\injlim

inj lim

\min

min

\csc

csc

\ker

ker

\Pr

Pr

\varlimsup

lim

\varinjlim

lim

\varliminf

lim

\varprojlim

−−→lim

←−−

2.6 Color vs Grayscale

If the proceedings are to be incorporated into a black and white printed book, it can be helpful if authors supply grayscale versions of their image files. This section can be ignored if your article will only be available online.

With external PDF, PNG or JPG graphic files, the grayscale version should be named with

-gray

added to the basename (before the image file extension).

For example, if the file 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 specified the file extension). This check is performed by code provided by the

jmlr

class not the

jmlrutils

package.

\ifprint{

true part

}{

false part

}

\ifprint

You can use

\ifprint

to determine which mode you are in. For example:

(24)

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 prede- fined colors (listed in the

xcolor

documentation4).

2.7 Where To Go For Help

If you have a general LATEX query, the first place to go to is the TEX FAQ5.

If you are unfamiliar or just getting started with LATEX, there’s a list of on-line introduc- tions to LATEX athttps://texfaq.org/FAQ-man-latexor have a look atLATEX for Complete Novices.

There are also forums, mailing lists and newsgroups. For example, TEX on StackEx- change (https://tex.stackexchange.com/), the LATEX Community (https://latex.org/

forum/), the

texhax

mailing list (http://tug.org/mailman/listinfo/texhax) and

comp.text.tex

(archives available athttp://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/

〈name〉where〈name〉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 disserta- tions”, The University of Chicago Press, 1996.

4http://ctan.org/pkg/xcolor

5https://texfaq.org/

(25)

3 Guidelines for Production Editors

The

jmlrbook

class is now obsolete as it has stopped working following changes to the LATEX kernel in 2020. The class is described here for archival purposes.

To prepare articles for PMLR, you will need to manually set the first page number using:

\firstpageno{

n

}

\firstpageno

Please follow thePMLR specifications.

3.1 jmlrbook Class Options

nowcp The imported pre-published articles were published in the Journal of Machine Learn- ing Research (default).

pmlr The imported pre-published articles were published in the Proceedings of Machine Learning Research (PMLR).

wcp The imported pre-published articles were published in the JMLR Workshop and Con- ference Proceedings (JMLR W&CP).

If the book has a mixture of JMLR, JMLR W&CP or PMLR articles, you can switch be- tween them using

\jmlrnowcp

\jmlrnowcp

(for JMLR) or

\jmlrwcp

\jmlrwcp

(for JMLR W&CP) or

\jmlrpmlr

\jmlrpmlr

(26)

(for PMLR). Alternatively, you can set the name of the journal or conference proceed- ings using:

\jmlrproceedings{

〈short title〉

}{

〈long title〉

}

\jmlrproceedings

color Color version (see Section2.6). Use this option for the on-line version with hyperlinks enabled (default).

gray Grayscale version (see Section2.6). Use this option for the print version without hyper- links.

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.

3.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 defined in the imported articles will be local to that article unless they have been globally defined using

\gdef

or

\global

. Since most authors use

\newcommand

and

\newenvironment

(or

\renewcommand

and

\renewenvironment

) this shouldn’t cause a conflict if more that one article has defined the same command or environment. For exam- ple, in the sample files supplied, both

paper1/paper1.tex

and

paper2/paper2.tex

have defined the command

\samplecommand

using

\newcommand

. As long as this command isn’t also defined in the book, there won’t be a conflict.

\title[

PDF title

]{

book title

}

\title

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 file’s properties in their PDF

(27)

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[

〈PDF author(s)〉

]{

〈book author(s)〉

}

\author

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 file’s proper- ties 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{

〈number〉

}

\volume

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

\subtitle{

sub-title

}

\subtitle

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

\logo[

〈url〉

]{

〈image command〉

}

\logo

This sets the book’s title image. Use

\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 Section2.6for further details.) The optional argument, if present, was formerly used by

makejmlrbookgui

to make the logo a link to〈url〉on the index HTML page. (The HTML pages are no longer generated by the application as PMLR now generate the HTML from the .bib file for the proceedings.)

\team{

〈team title〉

}

\team

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

\productioneditor{

name

}

\productioneditor

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

\jmlrlocation{

location

}

\jmlrlocation

This specifies the workshop location. By default this doesn’t appear on the title page. See Section3.4for details on how to modify the layout of the title page.

(28)

3.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 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:

\maketitle

\maketitle

This displays the book’s title page. Note that

\maketitle

has a different effect 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.

\begin{authorsignoff}

〈author list〉

\end{authorsignoff}

authorsignoff

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

\Author{

〈details〉

}

\Author

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}

\begin{preface}[

〈filename〉

]

preface

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

\chapter{\prefacename}

(29)

where

\prefacename

defaults to “Preface”. This environment should typically go in the front

\prefacename

matter and is provided to allow

makejmlrbookgui

create a standalone document for the preface. The optional argument is the filename (without any extension or path) that will be used by

makejmlrbookgui

. This defaults to

preface

but, to conform with PMLR guidelines, should be changed to the surname of the first author (editor) followed by the final two digits of the year. See the PMLR website for further details of the guidelines.

\begin{signoff}[

〈team name〉

]{

〈date〉

}

〈editor list〉

\end{signoff}

signoff

This environment may be used by the editorial team when signing off 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{

details

}

\Editor

for each editor. Example:

\begin{signoff}{March 2010}

% First editor:

\Editor{Nicola Talbot\\

University of East Anglia\\

\mailto{[email protected]}}

% Second editor:

\Editor{Anne Editor\\

University of Nowhere\\

\mailto{[email protected]}}

\end{signoff}

\tableofcontents

\tableofcontents

This command displays the book’s table of contents. Note that it has a different effect if used in an imported article.

\mainmatter

\mainmatter

Use this command to switch to the book’s main matter. This will switch the chapter number- ing back on, reset the page numbering to Arabic and set up the main page style.

(30)

\part[

short title

]{

title

}

\part

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 (or inside the

jmlrpapers

environment).

\addtocpart{

〈title〉

}

\addtocpart

This adds〈title〉to the table of contents, issues a clear double page, but doesn’t display any text or affect the part numbering.

\chapter[

〈short title〉

]{

〈title〉

}

\chapter

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

jmlrpapers

environment).

\section[

〈short title〉

]{

〈title〉

}

\section

\subsection[

〈short title〉

]{

〈title〉

}

\subsection

\subsubsection[

short title

]{

title

}

\subsubsection

\paragraph[

short title

]{

title

}

\paragraph

\subparagraph[

〈short title〉

]{

〈title〉

}

\subparagraph

These commands may be used in the main body of the book or within imported articles. In the main body of the book (outside of the

jmlrpapers

environment) 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 (outsideof the

jmlrpapers

environment) this will switch to the book appendices. Subsequent

\chapter

commands will produce the appendices.

(31)

(Any imported articles in the appendix will be identified by

makejmlrbookgui

as supple- mental material.) If used within an imported article (or within the

jmlrpapers

environment)

\appendix

will switch to the article appendices and won’t affect the main part of the book.

\begin{jmlrpapers}

〈imported papers〉

\end{jmlrpapers}

jmlrpapers

This environment must be used when importing articles and may be used as often as re- quired. Take care not to include book sectioning commands, such as

\chapter

, in this en- vironment. Within the

jmlrpapers

environment, use the following commands to import arti- cles:

\importpubpaper[

〈label〉

]{

〈directory〉

}{

〈file〉

}{

〈pages〉

}

\importpubpaper

This imports an article that has already been published elsewhere. The〈pages〉argument should be the page range from thepreviously publishedversion of this article. This may not necessarily be the same as the page range of the article in the book. The directory the im- ported file is contained in is given by〈directory〉. If the file is in the same directory as the book, use a dot. The file name is given by〈file〉. The article is also given a label, specified by the optional argument. This is〈directory〉/〈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 Section3.3.2).

\importpaper[

label

]{

directory

}{

file

}

\importpaper

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[

label

]{

directory

}{

file

}

\importarticle

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 unpub- lished paper

paper2/paper2.tex

:

\begin{jmlrpapers}

\importpubpaper{paper1}{paper1}{23--45}

\importarticle{paper2}{paper2}

\end{jmlrpapers}

(32)

3.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 effect will be lo- calised to the end of the environment.

3.3.2 Cross-Referencing

You can cross-reference other parts of the book using the standard

\label

/

\ref

mecha- nism, 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

\importpubpaper

,

\importpaper

or

\importarticle

). For example, if you want to refer- ence a section labelled

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 Section2.5.6, the

jmlrbook

class also provides the following cross-referencing commands:

\chapterref{

label list

}

\chapterref

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

\articlepageref{

label

}

\articlepageref

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

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

\articlepagesref{

label

}

\articlepagesref

This displays the page range of the article whose label is given by 〈label〉. Again, this must be a single label, not a list. This page range is unrelated to the〈pages〉argument of

\importpubarticle

.

\articletitleref{

〈label〉

}

\articletitleref

(33)

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

\articleauthorref{

〈label〉

}

\articleauthorref

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

3.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 definition of this command, you can use:

\SetTitleElement{

element

}{

pre

}{

post

}

\SetTitleElement

where 〈element〉 can be:

title

,

volume

,

issue

1,

subtitle

,

logo

,

team

,

author

,

date

,

productioneditor

. The〈pre〉and〈post〉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 withVolume :).

\IfTitleElement{

〈element〉

}{

〈true part〉

}{

〈false part〉

}

\IfTitleElement

This does〈true part〉if〈element〉has been set otherwise it does〈false part〉. For example,

\postmainvolume

is defined 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 definition of

\titlebody

is:

\newcommand{\titlebody}{%

\SetTitleElement{title}{\maintitlefont}{\postmaintitle}%

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

1The default title page layout doesn’t useissue, but if required it can be set with\issue{number}

(34)

\SetTitleElement{subtitle}{\mainsubtitlefont}{\postmainsubtitle}%

\SetTitleElement{logo}{\mainlogofont}{\postmainlogo}%

\SetTitleElement{team}{\mainteamfont}{\postmainteam}%

\SetTitleElement{author}{\mainauthorfont}{\postmainauthor}%

\SetTitleElement{productioneditor}{\mainproductioneditorfont}%

{\postmainproductioneditor}%

}

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

ge- ometry

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

foo

and another uses package

bar

. Each article compiles okay as a stand-alone article, but when combined

foo

and

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

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. Different versions of the same package can also be a problem. To help counteract the problem caused by different papers using different versions of the

algorithm2e

package,

jmlrbook

defines most of the old style commands if they don’t exist.

Articles that use different 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.2The 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. One thing to watch out for are bib files that contain a mixture of encodings caused by copying and pasting from different sources. Version 0.4.2b of

makejmlrbookgui

provides a function to search for characters outside the range 0x20 (space) and 0x7E (tilde).

2and may also cause a problem for the editor’s text editor.

(35)

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 find the graphics if the imported articles aren’t in the same directory as the book.

(36)

4 The Code

4.1 jmlrutils.sty Code

Non-class dependent code. This package is automatically loaded by

jmlr

but may be used with other classes.

1\ProvidesPackage{jmlrutils}[2022/02/09 v1.30 (NLCT)]

Package options:

\ifjmlrutilsmaths Determine if the maths commands should be provided.

2\newif\ifjmlrutilsmaths

3\jmlrutilsmathstrue

4\DeclareOption{maths}{\jmlrutilsmathstrue}

5\DeclareOption{nomaths}{\jmlrutilsmathsfalse}

Provide US synonyms

6\DeclareOption{math}{\jmlrutilsmathstrue}

7\DeclareOption{nomath}{\jmlrutilsmathsfalse}

\ifjmlrutilstheorems Determine if the theorem environments should be provided.

8\newif\ifjmlrutilstheorems

9\jmlrutilstheoremstrue

10\DeclareOption{theorems}{\jmlrutilstheoremstrue}

11\DeclareOption{notheorems}{\jmlrutilstheoremsfalse}

\ifjmlrcleveref Determine whether or not to load

cleveref

.

12\newif\ifjmlrcleveref

13\jmlrclevereffalse

14\DeclareOption{cleveref}{\jmlrclevereftrue}

15\DeclareOption{nocleveref}{\jmlrclevereffalse}

\ifjmlrutilssubfloats Determine if the sub-floats should be provided.

16\newif\ifjmlrutilssubfloats

17\jmlrutilssubfloatstrue

18\DeclareOption{subfloats}{\jmlrutilssubfloatstrue}

19\DeclareOption{nosubfloats}{\jmlrutilssubfloatsfalse}

20\ProcessOptions Requires

etoolbox

:

21\RequirePackage{etoolbox}

(37)

If the maths commands are needed, load

amsmath

.

22\ifjmlrutilsmaths

23 \RequirePackage{amsmath}

24\fi

Check if

cleveref

is required. If it is and

hyperref

is also required (which it is if

jmlrutils

is being loaded by

jmlr

) then

hyperref

needs to be loaded before

cleveref

.

25\ifjmlrcleveref

26 \ifdef\jmlrprehyperref

27 {

28 \jmlrprehyperref

29 \@ifundefined{@pre@hyperref}{}{\@pre@hyperref\undef\@pre@hyperref}

30 \RequirePackage{hyperref}

31 \let\jmlrprehyperref\relax

32 \@ifundefined{@post@hyperref}{}{\@post@hyperref\undef\@post@hyperref}

33 }

34 {}

35 \RequirePackage{aliascnt}

36 \RequirePackage{cleveref}

37\fi

The conditional

\iftablecaptiontop

will already have been defined by the

jmlr

class, so only needs to be defined if not already done.

\iftablecaptiontop

38\@ifundefined{iftablecaptiontop}

39{\newif\iftablecaptiontop

40\tablecaptiontoptrue}

41{}

4.1.1 Cross-Referencing

Convenient macros for cross-referencing.

42\newcommand*{\@jmlr@reflistsep}{, }

43\newcommand*{\@jmlr@reflistlastsep}{ and }

44\newcommand*{\sectionrefname}{Section}

45\newcommand*{\sectionsrefname}{Sections}

46\newcommand*{\equationrefname}{Equation}

47\newcommand*{\equationsrefname}{Equations}

48\newcommand*{\tablerefname}{Table}

49\newcommand*{\tablesrefname}{Tables}

50\newcommand*{\figurerefname}{Figure}

51\newcommand*{\figuresrefname}{Figures}

52\newcommand*{\algorithmrefname}{Algorithm}

53\newcommand*{\algorithmsrefname}{Algorithms}

54\newcommand*{\theoremrefname}{Theorem}

55\newcommand*{\theoremsrefname}{Theorems}

56\newcommand*{\lemmarefname}{Lemma}

57\newcommand*{\lemmasrefname}{Lemmas}

58\newcommand*{\remarkrefname}{Remark}

(38)

59\newcommand*{\remarksrefname}{Remarks}

60\newcommand*{\corollaryrefname}{Corollary}

61\newcommand*{\corollarysrefname}{Corollaries}

62\newcommand*{\definitionrefname}{Definition}

63\newcommand*{\definitionsrefname}{Definitions}

64\newcommand*{\conjecturerefname}{Conjecture}

65\newcommand*{\conjecturesrefname}{Conjectures}

66\newcommand*{\axiomrefname}{Axiom}

67\newcommand*{\axiomsrefname}{Axioms}

68\newcommand*{\examplerefname}{Example}

69\newcommand*{\examplesrefname}{Examples}

70\newcommand*{\appendixrefname}{Appendix}

71\newcommand*{\appendixsrefname}{Appendices}

72\newcommand*{\partrefname}{Part}

73\newcommand*{\partsrefname}{Parts}

\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 con- trol 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 num- ber, e.g. a closing bracket.

74\newrobustcmd*{\objectref}[5]{%

75 \let\@objectname\@empty

76 \def\@objectref{}%

77 \let\@prevsep\@empty

78 \@for\@thislabel:=#1\do{%

79 \toks@{\@prevsep}%

80 \protected@edef\@objectref{\@objectref\the\toks@

81 #4\ref{\@thislabel}#5}%

82 \ifx\@objectname\@empty

83 \let\@objectname#2% singular tag

84 \else

85 \let\@objectname#3% plural tag

86 \let\@prevsep\@jmlr@reflistsep

87 \fi

88 }%

89 \ifx\@objectname#3% plural tag

90 \let\@prevsep\@jmlr@reflistlastsep

91 \fi

92 \@objectname~\@objectref

93}

\sectionref

94\newcommand*{\sectionref}[1]{%

95 \objectref{#1}{\sectionrefname}{\sectionsrefname}{}{}}

\equationref

96\newcommand*{\equationref}[1]{%

97 \objectref{#1}{\equationrefname}{\equationsrefname}()}

(39)

\tableref

98\newcommand*{\tableref}[1]{%

99 \objectref{#1}{\tablerefname}{\tablesrefname}{}{}}

\figureref

100\newcommand*{\figureref}[1]{%

101 \objectref{#1}{\figurerefname}{\figuresrefname}{}{}}

\algorithmref

102\newcommand*{\algorithmref}[1]{%

103 \objectref{#1}{\algorithmrefname}{\algorithmsrefname}{}{}}

\theoremmref

104\newcommand*{\theoremref}[1]{%

105 \objectref{#1}{\theoremrefname}{\theoremsrefname}{}{}}

\lemmaref

106\newcommand*{\lemmaref}[1]{%

107 \objectref{#1}{\lemmarefname}{\lemmasrefname}{}{}}

\remarkref

108\newcommand*{\remarkref}[1]{%

109 \objectref{#1}{\remarkrefname}{\remarksrefname}{}{}}

\corollaryref

110\newcommand*{\corollaryref}[1]{%

111 \objectref{#1}{\corollaryrefname}{\corollarysrefname}{}{}}

\definitionref

112\newcommand*{\definitionref}[1]{%

113 \objectref{#1}{\definitionrefname}{\definitionsrefname}{}{}}

\conjectureref

114\newcommand*{\conjectureref}[1]{%

115 \objectref{#1}{\conjecturerefname}{\conjecturesrefname}{}{}}

\axiomref

116\newcommand*{\axiomref}[1]{%

117 \objectref{#1}{\axiomrefname}{\axiomsrefname}{}{}}

\exampleref

118\newcommand*{\exampleref}[1]{%

119 \objectref{#1}{\examplerefname}{\examplesrefname}{}{}}

\appendixref

120\newcommand*{\appendixref}[1]{%

121 \objectref{#1}{\appendixrefname}{\appendixsrefname}{}{}}

(40)

\partref

122\newcommand*{\partref}[1]{%

123 \objectref{#1}{\partrefname}{\partsrefname}{}{}}

4.1.2 Figures, Tables and Algorithms

\floatconts The first argument is the label, the second argument contains the caption (using

\caption

) and the third argument contains the contents of the float

124\newcommand{\floatconts}[3]{%

125 \@ifundefined{\@captype conts}{\tableconts{#1}{#2}{#3}}%

126 {\csname\@captype conts\endcsname{#1}{#2}{#3}}%

127}

\tableconts This will already have been defined if the

jmlr

class was loaded.

128\providecommand{\tableconts}[3]{%

129 #2\label{#1}\vskip\baselineskip

130 {\centering #3\par}%

131}

\figureconts

132\newcommand{\figureconts}[3]{%

133 {\centering #3\par}%

134 \vskip\baselineskip

135 #2\label{#1}%

136}

The following macro and environment assume that

algorithm2e

has been loaded (which is done by the

jmlr

class). If the

jmlrutils

package is loaded without the

jmlr

class, the

algorithm2e

package will have to be explicitly loaded.

\algocfconts Command used by

\floatconts

to display the caption contents.

137\newcommand{\algocfconts}[3]{%

138 \jmlralgorule\par\smallskip

139 #2\label{#1}% caption and label

140 \jmlralgorule\par\smallskip

141 #3% algorithm content

142 \jmlralgorule

143}

\jmlralgorule

144\newcommand{\jmlralgorule}{\kern2pt\hrule height.8pt depth0pt\kern2pt}

The

algorithm

environment should float like a figure or table. It should use the same counter as the

algorithm2e

environment.

145\newenvironment{algorithm}[1][htbp]%

146{%

147 \ifundef{\algocf}%

148 {‘algorithm2e’ package is required if you want to

References

Related documents

disadvantage have special resonance for the Australian Aboriginal community, where the construct, the best interests of the child, has been applied and has resulted in an

INTRODUCTION: The Vulnerable Children (VC) Act 2014 amended section 13 (s13) of the Children, Young Persons and their Families (CYP&tF) Act 1989 to re-emphasise the principle

The Swedish school authorities have drawn attention to this work and designated the school ‘the best school in Sweden working for equal value 2008’. Student empowerment, child’s

\Author, \Address, \Phone, and \Email should be used only withing the standard \author-command, used to produce the title section of the paper The first given hAuthor i is printed

Is the heart warming, true story of an abandoned kitten who went on to live an extraordinary life, inspiring a struggling single mother, transforming a sleepy library and

The command \title, as in amsart class, has two arguments: one optional,

The total ABC contribution to Australian screen drama, combined with approximately $125 million in external funding, delivered up to $244 million in production value to

We were able to determine (1) the rate of infection and probability of success of infection upon oral ingestion of MAP, as a function of the dose ingested, (2) the probability

Sessional Com m ittee on the Environm ent 79.. A strong research and development effort, particularly into the integration of control methods, is essential to the

It pro- vides macros for counting exercise points, adding a grading table, a helpful doc- ument title block including several non-standard information, and page headers with

Phasellus ultricies, sapien sit amet ultricies placerat, velit purus viverra ligula, id consequat ipsum odio imperdiet enim:.. Maecenas eget

10.. We know that \ti@prev is going to be a question mark.. One sucks in a following period or comma, the other does not.. In the macros that close quotes, we want to keep

Presentation Title.. Author

The hep-title package extends the title macros of the standard classes with macros for a preprint, affiliation, editors, and endorsers.. To use the hep-title package include it

In the Elsevier document styles this command should be written inside the frontmatter environment, but outside the argument of \title, \author, \collab and \address; see also Examples

Unlike amsart, ijmart allows the command \thanks inside \title and \author commands.. However, the footnote belongs to the title typeset in the top matter, not to the running

• Additional High Conservation Value Vegetation (AHCVV) means areas of vegetation which were found during ground-truthing which would otherwise meet the definition of Existing

(3) The Committee shall examine only those accounts of receipts and expenditure of the Northern Territory and reports of the Auditor-General for financial years commencing after

Benzene (ppb) change in annual max 1-hour (MDA1) ground level concentrations from Scenario 2 due to future industry (S3-S2) for a subset of the CAMx 1.33 km domain centred over

5.15 At the time of Mr C’s requests for access to the NDIS, the NDIA did not have any policy or guideline dealing specifically with incarcerated individuals and access to the NDIS.

Xhtml source code uses the style as follows:.

If Pre-weaning mortality = Upper Action Range, AND Pigs wean ed per litter = Lower Action Range, AND Pigs weaned per sow per year = Lower Target Range, then

existence. In making such an estimate, the Government Printer was requested to take as understood that each author body would have its report printed by the