% Define \jmlrprehyperref to load packages before hyperref is % loaded \def\jmlrprehyperref{% % Packages used by imported articles: \usepackage{lipsum} \usepackage{booktabs} \usepackage{siunitx} } \documentclass[wcp,7x10]{jmlrbook}% on-line color version, 7inx10in %\documentclass[wcp,gray,7x10]{jmlrbook}% print version, 7inx10in % Load last \ifprint{}{\usepackage{bookmark}} % Title is added to the PDF properties. Optional argument % is used instead, if present. %\title[Short Title]{Big Long Title} \title{A Sample Book} \author[Anne Editor et al.]{Anne Editor, Anne Other Editor and Nicola Talbot} % change the arguments, as appropriate, in the following: \volume{1} \subtitle{Making a Book from JMLR Articles} \logo{\includegraphics{bookLogo}} \team{The Sample Book Team} \productioneditor{Nicola Talbot} \begin{document} \maketitle \frontmatter \chapter{Foreword} This is an example book that combines multiple articles. Each article uses the \textsf{jmlr} class file. \emph{The articles should not need to be edited in order to combine them using this class file.}\footnote{Unless the authors have done something weird or have used problematic packages.} In particular, you don't need to delete \verb|\documentclass|, \verb|\begin{document}| and \verb|\end{document}|. The articles should be able to compile on their own or as part of this book. In the preamble of the book, you need to include the packages that the articles include, but you don't need to include any packages that are automatically loaded by the \textsf{jmlr} class (\textsf{amsmath}, \textsf{amssymb}, \textsf{natbib}, \textsf{graphicx}, \textsf{url}, \textsf{xcolor} and \textsf{algorithm2e}). You also don't need to include the \textsf{hyperref} and \textsf{combnat} packages as they are automatically loaded by \textsf{jmlrbook}. For example, some of the articles imported in this book use the \textsf{lipsum} package, so that package needs to be included in the preamble of the book. Commands defined in the imported articles will be local to that article unless \verb|\gdef| or \verb|\global| has been used. This means that if more than one article has defined the same command, there shouldn't be a conflict unless the command has been defined globally. For example, \texttt{paper1/paper1.tex} and \texttt{paper2/paper2.tex} both define \verb|\samplecommand|, but since \verb|\newcommand| has been used, rather than \verb|\gdef|, there's no conflict. However, a problem will occur if the same command is also defined in this document before either of those files are imported. Many packages must be loaded before \textsf{hyperref}. If these packages haven't been loaded by \textsf{jmlr}, you will need to specify them using \textsf{jmlrbook}'s \verb|\jmlrprehyperref| hook. For example, to load the packages ``foo'' and ``bar'': \begin{verbatim} \def\jmlrprehyperref{\usepackage{foo}\usepackage{bar}} \documentclass{jmlrbook} \end{verbatim} or: \begin{verbatim} \def\jmlrprehyperref{\usepackage{foo,bar}} \documentclass{jmlrbook} \end{verbatim} The imported papers need to be placed inside the \texttt{jmlrpapers} environment. Papers that have already been published should be included using \verb|\importpubpaper| and papers that haven't been published elsewhere should be imported using \verb|\importarticle|. Both commands have an optional argument that specifies the prefix to use in the labels within the imported article. If omitted, the article's file name is used. Both articles and the book may have appendices and parts created. Parts are created using \verb|\part|\{\emph{title}\}. Switch to appendices using \verb|\appendix| and then use \verb|\chapter| (for the book) or \verb|\section| (in imported articles). Cross-referencing other parts of the book is done using the usual \verb|\label| and \verb|\ref| mechanism. The \textsf{jmlr} class additional provides convenience commands such as \verb|\sectionref| and \verb|\figureref|. Unlike \verb|\ref|, these commands may take a comma-separated list of labels as the argument. The \textsf{jmlrbook} additionally provides \verb|\chapterref| (which can take a comma-separated list of labels) and commands to reference imported articles (which take a single label as the argument): \verb|\articlepageref| (the starting page of the article), \verb|\articlepagesref| (the page range for the article), \verb|\articletitleref| (the short title for the article) and \verb|\articleauthorref| (the article's author). You may also cross-reference parts of the imported articles, but you need to prefix the label with the label supplied in the optional argument of \verb|\importpubpaper| or \verb|\importarticle|. (If omitted, this is given by directory/file name.) For example, the first appendix in this book is \appendixref{apd:first}, but the first appendix in ``\articletitleref{paper1/paper1}'' by \articleauthorref{paper1/paper1} (pp.~\articlepagesref{paper1/paper1}) is \appendixref{paper1/paper1apd:first}. Here's a reference to a couple of tables in \articletitleref{paper1/paper1}: \tableref{paper1/paper1tab:sample,paper1/paper1tab:sample2}. The author of a foreword (or other chapter) can sign off using the \texttt{authorsignoff} environment. Each author should be specified using \verb|\Author|. \begin{authorsignoff} \Author{Nicola Talbot\\ University of East Anglia} \end{authorsignoff} \begin{preface} The preface environment should be used for the preface if you want makejmlrbook to extract the preface and turn it into a standalone document. The editorial team can sign off at the end of the preface using the \texttt{signoff} environment. This has two arguments: the optional argument is a name for the editorial team (defaults to ``The Editorial Team'') and the mandatory argument is the date. Within the environment, use \verb|\Editor| for each editor. \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{preface} \tableofcontents \mainmatter \part{First Part of the Book} \chapter{Introduction} This is an introduction to the book. \section{Sample Section} This is a section in the introduction. \subsection{Sample Sub-Section} This is a sub-section. \subsubsection{Sample Sub-Sub-Section} This is a sub-sub-section. \paragraph{Sample Sub-Sub-Sub-Section} This is a sub-sub-sub-section. \subparagraph{Sample Sub-Sub-Sub-Sub-Section} This is a sub-sub-sub-sub-section. % Add a part to the TOC but don't print anything \addtocpart{Papers Published in JMLR W\&CP} \begin{jmlrpapers} % Prepublished papers are imported using: % \importpubpaper[label]{dir}{file}{pages} % pages refers to the page range in the original publication % which doesn't necessarily correspond to the page numbers in % this book. \importpubpaper{paper1}{paper1}{23--45} \importpubpaper{paper2}{paper2}{63--70} \end{jmlrpapers} % Add a part to the TOC but don't print anything \addtocpart{Unpublished Papers} \begin{jmlrpapers} % Unpublished papers are imported using: % \importarticle[label]{dir}{file} \importarticle{paper3}{paper3} \importarticle{paper4}{paper4} \end{jmlrpapers} \appendix \part{First Part of Appendices}\label{pt:apd1} \chapter*{Introduction} This is an introduction to \partref{pt:apd1}. \chapter{First Appendix} \label{apd:first} This is an appendix. \chapter{Second Appendix} \label{apd:second} This is another appendix. \lipsum \part{Second Part of Appendices} \chapter{An Appendix} \label{apd:third} This is an appendix in another part. \lipsum \end{document}