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