From 0dfdf5c49b160d464b74a9cae8882ea81cc47878 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 18 Jun 2010 23:21:28 +0000 Subject: new latex package jmlr 1.06 (18jun10) git-svn-id: svn://tug.org/texlive/trunk@19046 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/jmlr/CHANGES | 58 + Master/texmf-dist/doc/latex/jmlr/INSTALL | 69 + Master/texmf-dist/doc/latex/jmlr/README | 67 + Master/texmf-dist/doc/latex/jmlr/jmlr-manual.html | 4505 +++++++++++++++++++ Master/texmf-dist/doc/latex/jmlr/jmlr-manual.tex | 1455 ++++++ Master/texmf-dist/doc/latex/jmlr/jmlr-manual0x.png | Bin 0 -> 487 bytes Master/texmf-dist/doc/latex/jmlr/jmlr-manual1x.png | Bin 0 -> 573 bytes Master/texmf-dist/doc/latex/jmlr/jmlr-manual2x.png | Bin 0 -> 480 bytes Master/texmf-dist/doc/latex/jmlr/jmlr-manual3x.png | Bin 0 -> 576 bytes Master/texmf-dist/doc/latex/jmlr/jmlr.pdf | Bin 0 -> 683588 bytes .../doc/latex/jmlr/sample-books/bookLogo-gray.png | Bin 0 -> 2456 bytes .../doc/latex/jmlr/sample-books/bookLogo.png | Bin 0 -> 2241 bytes .../latex/jmlr/sample-books/jmlrbook-sample.tex | 233 + .../doc/latex/jmlr/sample-books/paper1/paper1.bib | 19 + .../doc/latex/jmlr/sample-books/paper1/paper1.tex | 83 + .../doc/latex/jmlr/sample-books/paper2/paper2.bib | 19 + .../doc/latex/jmlr/sample-books/paper2/paper2.tex | 60 + .../doc/latex/jmlr/sample-books/paper3/paper3.bib | 19 + .../doc/latex/jmlr/sample-books/paper3/paper3.tex | 51 + .../doc/latex/jmlr/sample-books/paper4/paper4.bib | 19 + .../doc/latex/jmlr/sample-books/paper4/paper4.tex | 51 + .../latex/jmlr/sample-books/proceedings-sample.tex | 67 + .../jmlr/sample-papers/images/circle-gray.png | Bin 0 -> 1416 bytes .../doc/latex/jmlr/sample-papers/images/circle.jpg | Bin 0 -> 6743 bytes .../latex/jmlr/sample-papers/images/nodes-gray.png | Bin 0 -> 3902 bytes .../doc/latex/jmlr/sample-papers/images/nodes.png | Bin 0 -> 6295 bytes .../jmlr/sample-papers/images/square-gray.png | Bin 0 -> 157 bytes .../doc/latex/jmlr/sample-papers/images/square.png | Bin 0 -> 157 bytes .../latex/jmlr/sample-papers/images/teximage.tex | 4 + .../doc/latex/jmlr/sample-papers/jmlr-sample.bib | 19 + .../doc/latex/jmlr/sample-papers/jmlr-sample.tex | 752 ++++ .../latex/jmlr/sample-papers/jmlrwcp-sample.tex | 752 ++++ Master/texmf-dist/scripts/jmlr/makejmlrbook | 840 ++++ Master/texmf-dist/scripts/jmlr/makejmlrbook.bat | 3 + Master/texmf-dist/source/latex/jmlr/jmlr.dtx | 4698 ++++++++++++++++++++ Master/texmf-dist/source/latex/jmlr/jmlr.ins | 33 + Master/texmf-dist/tex/latex/jmlr/jmlr.cls | 969 ++++ Master/texmf-dist/tex/latex/jmlr/jmlrbook.cls | 775 ++++ Master/tlpkg/bin/tlpkg-ctan-check | 2 +- Master/tlpkg/tlpsrc/collection-publishers.tlpsrc | 1 + Master/tlpkg/tlpsrc/jmlr.tlpsrc | 0 41 files changed, 15622 insertions(+), 1 deletion(-) create mode 100644 Master/texmf-dist/doc/latex/jmlr/CHANGES create mode 100644 Master/texmf-dist/doc/latex/jmlr/INSTALL create mode 100644 Master/texmf-dist/doc/latex/jmlr/README create mode 100644 Master/texmf-dist/doc/latex/jmlr/jmlr-manual.html create mode 100644 Master/texmf-dist/doc/latex/jmlr/jmlr-manual.tex create mode 100644 Master/texmf-dist/doc/latex/jmlr/jmlr-manual0x.png create mode 100644 Master/texmf-dist/doc/latex/jmlr/jmlr-manual1x.png create mode 100644 Master/texmf-dist/doc/latex/jmlr/jmlr-manual2x.png create mode 100644 Master/texmf-dist/doc/latex/jmlr/jmlr-manual3x.png create mode 100644 Master/texmf-dist/doc/latex/jmlr/jmlr.pdf create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-books/bookLogo-gray.png create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-books/bookLogo.png create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-books/jmlrbook-sample.tex create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-books/paper1/paper1.bib create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-books/paper1/paper1.tex create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-books/paper2/paper2.bib create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-books/paper2/paper2.tex create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-books/paper3/paper3.bib create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-books/paper3/paper3.tex create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-books/paper4/paper4.bib create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-books/paper4/paper4.tex create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-books/proceedings-sample.tex create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-papers/images/circle-gray.png create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-papers/images/circle.jpg create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-papers/images/nodes-gray.png create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-papers/images/nodes.png create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-papers/images/square-gray.png create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-papers/images/square.png create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-papers/images/teximage.tex create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlr-sample.bib create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlr-sample.tex create mode 100644 Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlrwcp-sample.tex create mode 100755 Master/texmf-dist/scripts/jmlr/makejmlrbook create mode 100755 Master/texmf-dist/scripts/jmlr/makejmlrbook.bat create mode 100644 Master/texmf-dist/source/latex/jmlr/jmlr.dtx create mode 100644 Master/texmf-dist/source/latex/jmlr/jmlr.ins create mode 100644 Master/texmf-dist/tex/latex/jmlr/jmlr.cls create mode 100644 Master/texmf-dist/tex/latex/jmlr/jmlrbook.cls create mode 100644 Master/tlpkg/tlpsrc/jmlr.tlpsrc diff --git a/Master/texmf-dist/doc/latex/jmlr/CHANGES b/Master/texmf-dist/doc/latex/jmlr/CHANGES new file mode 100644 index 00000000000..9a42b677437 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/CHANGES @@ -0,0 +1,58 @@ +v1.06: + + jmlr.cls + + * Added tablecaptiontop and tablecaptionbottom class options + +v1.05: + + jmlrbook.cls + + * Added \productioneditors + +v1.04: + + * Added Perl script makejmlrbook + + jmlrbook.cls + + * Added patch to fix references in print mode + + * Added code to work with makejmlrbook + + jmlr.cls + + * Added code to work with makejmlrbook + +v1.03: + jmlrbook.cls + + * Added patch to combnat + + jmlr.cls + + * Added \editors, \editorname and \editorsname + +v1.02: + jmlrbook.cls: + + * Added \issue + + jmlr.cls + + * Added \jmlrissue + +v1.01 : + + jmlrbook.cls: + + * added \importpaper + + * added \titlebody, \SetTitleElement and \IfTitleElement to + make it easier to customise the front page of the book. + + jmlr.cls: + + * fixed the last page anchor. + +v1.0 : Initial release diff --git a/Master/texmf-dist/doc/latex/jmlr/INSTALL b/Master/texmf-dist/doc/latex/jmlr/INSTALL new file mode 100644 index 00000000000..805c257c5b3 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/INSTALL @@ -0,0 +1,69 @@ +INSTALLATION + +If you have downloaded the jmlr bundle using the TeX Directory +Structure (TDS), that is you have downloaded the archive +jmlr.tds.zip containing doc, tex and source directories, you need to +follow the "Installing from TDS" instructions below. + +If you have downloaded the following files: + +jmlr.dtx +jmlr.ins + +You need to follow the "Installing from DTX and INS" instructions +below. + +For further information on installing LaTeX packages see: + +http://www.tex.ac.uk/cgi-bin/texfaq2html?label=installthings + +INSTALLING FROM TDS +=================== + +Files in tex and doc directories should go in the corresponding +TEXMF directories (for example, /usr/share/texmf-local/ or +C:\localtexmf\). + +*Remember to refresh TeX's database* + +Example (on UNIX like systems): + +unzip jmlr.tds.zip -d ~/texmf/ +texhash ~/texmf/ + +Move the makejmlrbook Perl script from scripts/jmlr/ to somewhere +on your path. If you are using Windows, you will also need to +move makejmlrbook.bat to the same location. + +INSTALLING FROM DTX AND INS +=========================== + +Run LaTeX on jmlr.ins to generate jmlr.cls and jmlrbook.cls: + +latex jmlr.ins + +To create the documentation (jmlr.pdf): + +pdflatex jmlr.dtx +makeindex -s gind.ist jmlr.idx +makeindex -s gglo.ist -o jmlr.gls jmlr.glo +pdflatex jmlr.dtx +pdflatex jmlr.dtx + +If TEXMF denotes the base directory of your local TeX installation (e.g. +/usr/share/texmf-local/ or C:\localtexmf\) then create the following +directories (if they don't already exist): + +TEXMF/doc/latex/jmlr +TEXMF/tex/latex/jmlr + +Move the documentation to TEXMF/doc/latex/jmlr/ + +Move jmlr.cls and jmlrbook.cls to TEXMF/tex/latex/jmlr/ + +*Remember to refresh TeX's database* + +Move the makejmlrbook Perl script to somewhere on your path. If +you are using Windows, you will also need to move makejmlrbook.bat +to the same location. + diff --git a/Master/texmf-dist/doc/latex/jmlr/README b/Master/texmf-dist/doc/latex/jmlr/README new file mode 100644 index 00000000000..2dce9e7f235 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/README @@ -0,0 +1,67 @@ +LaTeX Class : jmlr bundle v1.06 + +Last Modified : 2010-06-17 + +Author : Nicola L. C. Talbot + +This bundle provides: + + * jmlr class + * jmlrbook class + * makejmlrbook Perl script + +The jmlr class is a LaTeX2e class for articles for the Journal of +Machine Learning Research (JMLR) or for the JMLR Workshop and +Conference Proceedings (JMLR W&CP). It is designed as a replacement +for both jmlr2e.sty and jmlrwcp2e.sty. + +The jmlrbook class is a LaTeX2e class that can be used to combine +articles written using the jmlr class into a book. The jmlrbook +class uses the combine class and the hyperref package to produce +either a colour hyperlinked book for on-line viewing or a greyscale +nonhyperlinked book for printing. + +The makejmlrbook Perl script can be used to create the hyperlinked and +nonhyperlinked PDFs of a document using the jmlrbook class. It can also +create a set of HTML files that list the included papers with links +to their abstracts and the individual articles as PDFs. + +INSTALLATION + +See INSTALL file for installation instructions. + +REQUIREMENTS + +jmlr class requirements: + + KOMA-Script + xcolor + amsmath + amssymb + natbib + graphicx + url + algorithm2e + +jmlrbook class requirements: + + jmlr + combine + hyperref + xkeyval + combnat + setspace + +makejmlrbook Perl script requirements: + + Perl + TeX4ht + +LICENCE + +This material is subject to the LaTeX Project Public License. +See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html +for the details of that license. + +Author's home page: http://theoval.cmp.uea.ac.uk/~nlct/ + diff --git a/Master/texmf-dist/doc/latex/jmlr/jmlr-manual.html b/Master/texmf-dist/doc/latex/jmlr/jmlr-manual.html new file mode 100644 index 00000000000..31e5052a65e --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/jmlr-manual.html @@ -0,0 +1,4505 @@ + + + + +LaTeX2εClasses for the Journal of Machine Learning Research + + + + + + + + + +
+ + + + + + + +

LATEX2ε Classes for the Journal of Machine +Learning Research

+
+
2010-06-17 (version 1.06)
+
+

Contents

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

+

+

1 Introduction

+

The jmlr class is for articles that need to be formatted according to the Journal of +Machine Learning Research style. This class is based on the jmlr2e and jmlrwcp2e +packages but has been adapted to enable it to work better with the combine class to +collate the articles into a book. §3 Guidelines for Article Authors describes how to use +the jmlr class. +

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

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

+

+

Top

2 Required Packages

+

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

The jmlrbook class additionally loads the combine class and the following packages: +hyperref, xkeyval, combnat and setspace. +

The makejmlrbook script requires Perl, TEX and TEX4ht. + + + +

+

+

Top

3 Guidelines for Article Authors

+

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

The following class options are available: +

+nowcp
The article is for the Journal of Machine Learning Research (default). +
+wcp
The article is for JMLR Workshop and Conference Proceedings. +
+color
Color version (see §3.11 Color vs Grayscale). +
+gray
Grayscale version (see §3.11 Color vs Grayscale). +
+tablecaptiontop
in a table environment, \floatconts puts the caption at the top. +
+tablecaptionbottom
in a table environment, \floatconts puts the caption at the + bottom.
+

+

+

Top

3.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  \jmlrvolume{number}

+

+This specifies the volume number. For example: + + + +

+
+\jmlrvolume{2} +
+

+


\jmlryear  \jmlryear{year}

+

+This specifies the year. For example: + + + +

+
+\jmlryear{2010} +
+

+


\jmlrsubmitted  \jmlrsubmitted{date}

+

+This specifies the submission date. +


\jmlrpublished  \jmlrpublished{date}

+

+This specifies the publication date. +


\jmlrworkshop  \jmlrworkshop{title}

+

+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  \title[short title]{title}

+

+This specifies the article’s title. A short title for the page header can be supplied via the +optional argument short title. +


\editor  \editor{name}

+

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


\editors  \editors{names}

+

+


\author  \author{author specs}

+

+This specifies the author. The specifications author specsare a bit different to jmlr2e +and jmlrwcp2e. Use +


\Name  \Name{author’s 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. (See below for examples.) +


\Email  \Email{author’s 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{abc@sample.com}\and +  
   \Name{John {Basey Fisher}} \Email{xyz@sample.com}\\ +  
   \addr Address} +
+

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

+Example 2
Three authors with the same address: + + + +
+ \author{\Name{Fred Arnold {de la Cour}} \Email{an1@sample.com}\\ +  
   \Name{Jack Jones} \Email{an3@sample.com}\\ +  
   \Name{{\’E}louise {\’E}abhla Finchley} \Email{an2@sample.com}\\ +  
   \addr Address} +
+

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

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

+

+

+

Top

3.2 Font Changing Commands

+

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


\url  \url{address}

+

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

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

+


\mailto  \mailto{email address}

+

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

+

+

Top

3.3 Structure

+


abstract  \begin{abstract}
text
\end{abstract}

+

+The abstract text should be displayed using the abstract environment. +


keywords  \begin{keywords}keyword list\end{keywords}

+

+The keywords should be displayed using the keywords environment. +


\acks  \acks{text}

+

+This displays the acknowledgements. +


\section  \section{title}

+

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


\section*  \section*{title}

+

+


\subsection  \subsection{title}

+

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


\subsection*  \subsection*{title}

+

+


\subsubsection  \subsubsection{title}

+

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


\subsubsection*  \subsubsection*{title}

+

+

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


\appendix  \appendix

+

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

+
+\appendix + 
\section{Proof of Theorems} +
+

+

+

+

Top

3.4 Citations and Bibliography

+

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


\bibliography  \bibliography{bib file}

+

+This displays the bibliography. +


\citep  \citep[pre note][post note]{label}

+

+Use \citep for a parenthetical citation. +


\citet  \citet[note]{label}

+

+Use \citet for a textual citation. +

See the natbib documentation for further details. +

+

+

Top

3.5 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, please don’t try changing the format of the caption by doing +something like: + + + +

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

or + + + +

+
+\caption{\em A Sample Caption.} +
+

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

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

+

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


\floatconts  \floatconts{label}{caption command}{contents}

+

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

+
+\begin{table}[htbp] + 
\floatconts + 
  {tab:example}% label + 
  {\caption{An Example Table}}% caption command + 
  {% + 
    \begin{tabular}{ll} + 
    \bfseries Dataset & \bfseries Result\\ + 
    Data1 & 0.123456 + 
    \end{tabular} + 
  } + 
\end{table} +
+

+

The jmlr class automatically loads graphicx which defines: +


\includegraphics  \includegraphics[options]{file name}

+

+where optionsis a comma-separated list of options. +

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

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

+

Note that you shouldn’t specify the 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 -gray immediately before the extension. (The +extension need not be the same as that of the color image.) For example, if you +have an image called mypic.pdf, the grayscale can be called mypic-gray.pdf, +mypic-gray.png or mypic-gray.jpg. See §3.11 Color vs Grayscale for further +details. +


\includeteximage  \includeteximage[options]{file name}

+

+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 keys are a subset of those provided by \includegraphics. The main keys +are: width, height, scale and angle. +

+

+

Top

3.5.1 Sub-Figures and Sub-Tables
+

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


\subfigure  \subfigure[title][valign]{contents}

+

+This makes a sub-figure where contentsdenotes the contents of the sub-figure. This +should also include the \label. The first optional argument titleindicates 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 subdirectory 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  \subtable[title][valign]{contents}

+

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

+

+

Top

3.6 Algorithms

+


algorithm  \begin{algorithm}
contents
\end{algorithm}

+

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


enumerate*  \begin{enumerate*}
\item text

\end{enumerate*}

+

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

+
+\begin{enumerate*} + 
  \item Set the label of vertex $s$ to 0 + 
  \item Set $i=0$ + 
  \begin{enumerate*} + 
    \item \label{step:locate}Locate all unlabelled vertices + 
          adjacent to a vertex labelled $i$ and label them $i+1$ + 
    \item If vertex $t$ has been labelled, + 
    \begin{enumerate*} + 
      \item[] the shortest path can be found by backtracking, and + 
      the length is given by the label of $t$. + 
    \end{enumerate*} + 
    otherwise + 
    \begin{enumerate*} + 
      \item[] increment $i$ and return to step~\ref{step:locate} + 
    \end{enumerate*} + 
  \end{enumerate*} + 
\end{enumerate*} + 
\end{algorithm} +
+

+


algorithm2e  \begin{algorithm2e}
contents
\end{algorithm2e}

+

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

+
+\begin{algorithm2e} + 
\caption{Computing Net Activation} + 
\label{alg:net} + 
\dontprintsemicolon + 
\linesnumbered + 
\KwIn{$x_1, \ldots, x_n, w_1, \ldots, w_n$} + 
\KwOut{$y$, the net activation} + 
$y\leftarrow 0$\; + 
\For{$i\leftarrow 1$ \KwTo $n$}{ + 
  $y \leftarrow y + w_i*x_i$\; + 
} + 
\end{algorithm2e} +
+

+

See the algorithm2e documentation for more details. +

+

+

Top

3.7 Description Lists

+


altdescription  \begin{altdescription}{widest label}
\item[label] item text
\end{altdescription}

+

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

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

+

+

+

Top

3.8 Theorems, Lemmas etc

+

The jmlr class provides the following theorem-like environments: theorem, example, +lemma, proposition, remark, corollary, definition, conjecture and axiom. Within the body +of those environments, you can use the proof environment to display the proof if need +be. The theorem-like environments all take an optional argument, which gives the +environment a title. For example: + + + +

+
+\begin{theorem}[An Example Theorem] + 
\label{thm:example} + 
This is the theorem. + 
\begin{proof} + 
This is the proof. + 
\end{proof} + 
\end{theorem} +
+

+

+

+

Top

3.9 Cross-Referencing

+

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


\sectionref  \sectionref{label list}

+

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

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

you can refer to it as follows: + + + +

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

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


\appendixref  \appendixref{label list}

+

+Used to refer to an appendix or multiple appendices. +


\equationref  \equationref{label list}

+

+Used to refer to an equation or multiple equations. +


\tableref  \tableref{label list}

+

+Used to refer to a table or multiple tables. This can also be used for sub-tables where +the main table number is also required. +


\subtabref  \subtabref{label list}

+

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


\figureref  \figureref{label list}

+

+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  \subfigref{label list}

+

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


\algorithmref  \algorithmref{label list}

+

+Used to refer to an algorithm or multiple algorithms. +


\theoremref  \theoremref{label list}

+

+Used to refer to a theorem or multiple theorems. +


\lemmaref  \lemmaref{label list}

+

+Used to refer to a lemma or multiple lemmas. +


\remarkref  \remarkref{label list}

+

+Used to refer to a remark or multiple remarks. +


\corollaryref  \corollaryref{label list}

+

+Used to refer to a corollary or multiple corollaries. +


\definitionref  \definitionref{label list}

+

+Used to refer to a definition or multiple definitions. + + + +


\conjectureref  \conjectureref{label list}

+

+Used to refer to a conjecture or multiple conjectures. +


\axiomref  \axiomref{label list}

+

+Used to refer to an axiom or multiple axioms. +


\exampleref  \exampleref{label list}

+

+Used to refer to an example or multiple examples. +

+

+

Top

3.10 Mathematics

+

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


\set  \set{text}

+

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

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

+

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

+
+\[E = m c^2\] +
+

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

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

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

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

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

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

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

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

An equation that is too long to 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 in table 1. For additional operators, either +use +


\operatorname  \operatorname{name}

+

+for example + + + +

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

or declare it with +


\DeclareMathOperator  \DeclareMathOperator{command}{name} +

+

+for example + + + +

+
+\DeclareMathOperator{\var}{var} +
+

and then use this new command: + + + +

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

+

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

+
+ + + +


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

+
+

Top

3.11 Color vs Grayscale

+

It’s helpful if authors supply grayscale versions of their articles in the event that the +article is to be incorporated into a black and white printed book. With external PDF, +PNG or JPG graphic files, you just need to supply a grayscale version of the file. 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). +


\ifprint  \ifprint{true part}{false part}

+

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

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

Another example: + + + +

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

+

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

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

+

+

Top

3.12 Where To Go For Help

+

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

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

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

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

+
+texdoc natbib +
+

Alternatively, you can go to http://www.ctan.org/pkg/namewhere nameis the +name of the package. For example: http://www.ctan.org/pkg/natbib +

For a general guide to preparing papers (regardless of whether you are using +LATEX or a word processor), see Kate L. Turabian, “A manual for writers +of term papers, theses, and dissertations”, The University of Chicago Press, +1996. +

+

+

Top

4 Guidelines for Production Editors

+

The jmlrbook class can be used to combine articles that use the jmlr document class +into a book. The following sample files are provided: paper1/paper1.tex, +paper2/paper2.tex, paper3/paper3.tex, jmlr-sample.tex, jmlrwcp-sample.tex +and jmlrbook-sample.tex. All but the last named one are articles using the jmlr class. +The last one (jmlrbook-sample.tex) uses the jmlrbook class file to combine the articles +into a book. Note that no modifications are needed to the files using the jmlr class when +they are imported into the book. They can either be compiled as stand-alone articles or +with the entire book. +

Before you compile the book, make sure that all the articles compile as stand-alone +documents (and run BibTEX where necessary). You can use the makejmlrbook Perl +script to compile the book and create associated HTML files. See §4.6 Creating the +Book Using makejmlrbook for details. +

+

+

Top

4.1 jmlrbook Class Options

+

+

+nowcp
The imported pre-published articles were published in the Journal of + Machine Learning Research (default). +
+wcp
The imported pre-published articles were published in the JMLR Workshop + and Conference Proceedings. +

If the book has a mixture of JMLR and JMLR WCP articles, you can switch + between them using + + + +


\jmlrwcp  \jmlrwcp

+

+ and +


\jmlrnowcp  \jmlrnowcp

+

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


\jmlrproceedings  \jmlrproceedings{short title}{long title}

+

+

+color
Color version (see §3.11 Color vs Grayscale). Use this option for the on-line + version with hyperlinks enabled (default). +
+gray
Grayscale version (see §3.11 Color vs Grayscale). Use this option for the print + version without hyperlinks. +
+tablecaptiontop
in a table environment, \floatconts puts the caption at the + top. +
+tablecaptionbottom
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. +
+prehyperref
The jmlrbook automatically loads the hyperref package, but some packages + need to be loaded before hyperref. This information can be specified using the + prehyperref option. This is a key=value option. For example, to load the packages + foo and bar before hyperref, you can do: + + + +
+ \documentclass[prehyperref={\usepackage{foo,bar}}]{jmlrbook} +
+

or: + + + +

+
+ \documentclass[prehyperref={\usepackage{foo}\usepackage{bar}}]{jmlrbook} +
+

+

+10pt
Use 10pt as the normal text size. +
+11pt
Use 11pt as the normal text size (default). +
+12pt
Use 12pt as the normal text size. +
+

+

+

Top

4.2 The Preamble

+

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

Commands that are 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 example, 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  \title[PDF title]{book 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 viewer. (Note that in the imported articles, \title sets the article’s title +and the optional argument sets the short title for the page header and table of +contents.) +


\author  \author[PDF author(s)]{book author(s)}

+ + + +

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


\volume  \volume{number}

+

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


\subtitle  \subtitle{sub-title}

+

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


\logo  \logo{image command}

+

+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 §3.11 Color vs Grayscale for further +details.) +


\team  \team{team title}

+

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


\productioneditor  \productioneditor{name}

+

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

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

+

+

Top

4.3 Main Book Commands

+

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


authorsignoff  \begin{authorsignoff}
author list
\end{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  \author{details}

+

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

+


signoff  \begin{signoff}[team name]{date}
editor list
\end{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. +

Within the environment use: +


\Editor  \Editor{details}

+

+for each editor. Example: + + + +

+
+\begin{signoff}{March 2010} + 
 First editor: + 
\Editor{Nicola Talbot\\ + 
University of East Anglia\\ + 
\mailto{N.Talbot@uea.ac.uk}} + 
 Second editor: + 
\Editor{Anne Editor\\ + 
University of Nowhere\\ + 
\mailto{ae@sample.com}} + 
\end{signoff} +
+

+


\tableofcontents  \tableofcontents

+

+This command displays the book’s table of contents. Note that it has a 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 +numbering back on, reset the page numbering to Arabic and set up the main page +style. +


\part  \part[short title]{title}

+

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


\addtocpart  \addtocpart{title}

+

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


\chapter  \chapter[short title]{title}

+

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


\section  \section[short title]{title}

+

+


\subsection  \subsection[short title]{title}

+

+


\subsubsection  \subsubsection[short title]{title}

+

+ + + +


\paragraph  \paragraph[short title]{title}

+

+


\subparagraph  \subparagraph[short title]{title}

+

+These commands may be used in the main body of the book or within imported +articles. In the main body of the book they need to be within a chapter and will be +numbered according to the chapter. +


\appendix  \appendix

+

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


jmlrpapers  \begin{jmlrpapers}
imported papers
\end{jmlrpapers}

+

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


\importpubpaper  \importpubpaper[label]{directory}{file}{pages} +

+

+This imports an article that has already been published elsewhere. The pages +argument should be the page range from the previously published version of this article. +This may not necessarily be the same as the page range of the article in the book. The +directory the imported file is contained in is 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/fileby 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 §4.3.1 +Cross-Referencing). +


\importpaper  \importpaper[label]{directory}{file}

+

+Imports an article that is being published in the book. The arguments are the +same as above except that there is no page range (the page range is computed +automatically). +


\importarticle  \importarticle[label]{directory}{file}

+

+This imports an article that hasn’t been published elsewhere. There is no +page range, but the other arguments are the same as those describe above for +\importpubpaper. +

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

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

+

+

+

Top

4.3.1 Cross-Referencing
+

You can cross-reference other parts of the book using the standard \label/\ref +mechanism, but if you want to reference something within an imported article, you +must 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 reference a section labeled sec:results in the imported paper +paper1/paper1.tex, you would need to do: + + + +

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

or + + + +

+
+see \sectionref{paper1/paper1sec:results} +
+

+

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


\chapterref  \chapterref{label list}

+

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


\articlepageref  \articlepageref{label}

+

+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  \articlepagesref{label}

+

+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 pagesargument +of \importpubarticle. +


\articletitleref  \articletitleref{label}

+

+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  \articleauthorref{label}

+

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

+

+

Top

4.4 Altering the Layout of the Main Title Page

+


\titlebody  \titlebody

+

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


\SetTitleElement  \SetTitleElement{element}{pre}{post}

+

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

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

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


\IfTitleElement  \IfTitleElement{element}{true part}{false part} +

+

+This does true partif elementhas 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}% + 
  \SetTitleElement{subtitle}{\mainsubtitlefont}{\postmainsubtitle}% + 
  \SetTitleElement{logo}{\mainlogofont}{\postmainlogo}% + 
  \SetTitleElement{team}{\mainteamfont}{\postmainteam}% + 
  \SetTitleElement{author}{\mainauthorfont}{\postmainauthor}% + 
  \SetTitleElement{productioneditor}{\mainproductioneditorfont}% + 
    {\postmainproductioneditor}% + 
} +
+

+

+

+

Top

4.5 Potential Pitfalls

+

The combine class and hyperref package are individually both easily broken by packages +that change certain internals and they don’t ordinarily work together. The jmlrbook +class applies patches to the internal referencing mechanism to make them work +together, but it’s a fairly fragile alliance. Some packages are known to break it, for +example subfig, pdfpages and geometry. This is why the jmlr class checks for known +problem packages and generates an error message to dissuade authors from using them. +It’s likely that there are other packages that may cause a problem and, as they are +found, they will be added to the check list. Also, it’s possible for an author to disable +the package checking mechanism if they are determined to use a particular +package. +

In the event that an article has loaded a problem package, the editors will have to +decide whether to ask the author to change the article so that it doesn’t cause a +problem or to make the changes themselves or to 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. +

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.3 +The choice then is to either change all non-keyboard characters with the appropriate +LATEX commands or to use the \inputencoding command, supplied by the inputenc +package, to switch the encoding at the start of each article. +

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

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

+

+

Top

4.6 Creating the Book Using makejmlrbook

+

The makejmlrbook Perl script is designed to make it easier to produce the print and +online versions of the book, as well as producing an HTML index of all the imported +articles with links to the abstracts and PDFs of individual articles. Note that for +it to work properly, the articles must be imported using \importarticle, +\importpaper or \importpubpaper, and the imported articles must use the jmlr +class. +

On UNIX style systems, the script can be invoked from a terminal using: + +
makejmlrbook [options] filename
+

+If that doesn’t work, or you aren’t using a UNIX style operating system, the script can +be invoked from a terminal or command prompt using: +
perl makejmlrbook [options] filename
+

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

+
+perl makejmlrbook proceedings +
+

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

The options to makejmlrbook are as follows: +

+–online
Generate the color on-line version (default). +
+–noonline
Don’t generate the color on-line version. +
+–print
Generate the grayscale print version (default). +
+–noprint
Don’t generate the grayscale print version. +
+–html
Generate the HTML files and the individual article PDFs (default). +
+–nohtml
Don’t generate the HTML files and the individual article PDFs. +
+–logourl url
Make the logo on the HTML index page link to url. +
+–batchtex
Run TEX in batch mode. +
+–nobatchtex
Don’t run TEX in batch mode (default). +
+–quieter
Reduce chatter to STDOUT (doesn’t eliminate all messages). This also + runs TEX in batch mode. +
+–noquieter
Don’t reduce messages to STDOUT (default). +
+–version
Display the version number and exit. +
+–help
List all available options.
+ + + +

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

+–latexapp name
Application used to call LATEX. Defaults to “pdflatex”. +
+–latexopt string
Options to pass to LATEX. +
+–format string
Output format (defaults to “pdf”). This may need to be + changed if you change the LATEX application. +
+–bibtexapp name
Application use to process the bibliography. Defaults to + “bibtex”. +
+–bibtexopt string
Options to pass to BibTEX.
+ + + +

+

+

Top

Index

+

Symbols +

+
\\  1
+

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

B +\bibliography  42
+

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

D +\DeclareMathOperator  78
+\DeclareMathOperator*  79
+definition (environment)  80
+\definitionref  81
+description (environment)  82
+

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

F +\figureref  132
+\floatconts  133, 134, 135, 136, 137
+\frontmatter  138
+

G +\gdef  139
+geometry package  140, 141
+\global  142
+graphicx package  143, 144
+

H +hyperref package  145, 146, 147, 148, 149, 150
+

I + + + +\ifprint  151
+\IfTitleElement  152
+\importarticle  153
+\importpaper  154, 155
+\importpubarticle  156
+\importpubpaper  157, 158
+\includegraphics  159, 160, 161
+\includeteximage  162
+inputenc package  163
+\intertext  164
+\issue  165
+

J +jmlr2e package  166, 167, 168, 169
+\jmlrnowcp  170
+jmlrpapers (environment)  171
+\jmlrproceedings  172
+\jmlrpublished  173
+\jmlrsubmitted  174
+\jmlrvolume  175
+\jmlrwcp  176
+jmlrwcp2e package  177, 178, 179, 180
+\jmlrworkshop  181
+\jmlryear  182
+

K +keywords (environment)  183
+

L +\label  184, 185
+lemma (environment)  186
+\lemmaref  187
+\logo  188
+

M +\mailto  189
+\mainmatter  190
+makejmlrbook  191, 192, 193, 194, 195, 196, 197
+\maketitle  198, 199
+

N + + + +\Name  200
+natbib package  201, 202, 203
+\newcommand  204
+\newenvironment  205
+

O +\operatorname  206
+\operatorname*  207
+

P +\paragraph  208
+\part  209
+pdfpages package  210, 211, 212
+\productioneditor  213
+proof (environment)  214
+proposition (environment)  215
+psfig package  216
+

R +remark (environment)  217
+\remarkref  218
+\renewcommand  219
+\renewenvironment  220
+

S +scrartcl class  221
+\section  222, 223
+\section*  224
+\sectionref  225
+\set  226
+setspace package  227
+\SetTitleElement  228
+signoff (environment)  229
+siunitx package  230
+split (environment)  231
+subfig package  232, 233, 234, 235
+\subfigref  236
+\subfigure  237
+\subparagraph  238
+\subsection  239, 240
+ + + +\subsection*  241
+\subsubsection  242, 243
+\subsubsection*  244
+\subtable  245
+\subtabref  246
+\subtitle  247
+\sum  248
+

T +table (environment)  249, 250, 251, 252
+\tableofcontents  253
+\tableref  254
+\team  255
+\text  256
+theorem (environment)  257
+theorem package  258
+\theoremref  259
+tikz package  260
+\title  261, 262
+\titlebody  263
+

U +\url  264
+url package  265
+

V +\volume  266
+

X +xcolor package  267, 268
+xkeyval package  269
+

+

Top +

+

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

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

+

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

+ + + + + + 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} diff --git a/Master/texmf-dist/doc/latex/jmlr/jmlr-manual0x.png b/Master/texmf-dist/doc/latex/jmlr/jmlr-manual0x.png new file mode 100644 index 00000000000..33ca3b6ac84 Binary files /dev/null and b/Master/texmf-dist/doc/latex/jmlr/jmlr-manual0x.png differ diff --git a/Master/texmf-dist/doc/latex/jmlr/jmlr-manual1x.png b/Master/texmf-dist/doc/latex/jmlr/jmlr-manual1x.png new file mode 100644 index 00000000000..176ef49b60f Binary files /dev/null and b/Master/texmf-dist/doc/latex/jmlr/jmlr-manual1x.png differ diff --git a/Master/texmf-dist/doc/latex/jmlr/jmlr-manual2x.png b/Master/texmf-dist/doc/latex/jmlr/jmlr-manual2x.png new file mode 100644 index 00000000000..c180200b7f7 Binary files /dev/null and b/Master/texmf-dist/doc/latex/jmlr/jmlr-manual2x.png differ diff --git a/Master/texmf-dist/doc/latex/jmlr/jmlr-manual3x.png b/Master/texmf-dist/doc/latex/jmlr/jmlr-manual3x.png new file mode 100644 index 00000000000..d89cbb940a0 Binary files /dev/null and b/Master/texmf-dist/doc/latex/jmlr/jmlr-manual3x.png differ diff --git a/Master/texmf-dist/doc/latex/jmlr/jmlr.pdf b/Master/texmf-dist/doc/latex/jmlr/jmlr.pdf new file mode 100644 index 00000000000..2dc5d92d1df Binary files /dev/null and b/Master/texmf-dist/doc/latex/jmlr/jmlr.pdf differ diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-books/bookLogo-gray.png b/Master/texmf-dist/doc/latex/jmlr/sample-books/bookLogo-gray.png new file mode 100644 index 00000000000..3baf8157e9c Binary files /dev/null and b/Master/texmf-dist/doc/latex/jmlr/sample-books/bookLogo-gray.png differ diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-books/bookLogo.png b/Master/texmf-dist/doc/latex/jmlr/sample-books/bookLogo.png new file mode 100644 index 00000000000..e9ae63dacf4 Binary files /dev/null and b/Master/texmf-dist/doc/latex/jmlr/sample-books/bookLogo.png differ diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-books/jmlrbook-sample.tex b/Master/texmf-dist/doc/latex/jmlr/sample-books/jmlrbook-sample.tex new file mode 100644 index 00000000000..98a39dfdb05 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/sample-books/jmlrbook-sample.tex @@ -0,0 +1,233 @@ +\documentclass[wcp]{jmlrbook}% on-line color version +%\documentclass[wcp,gray]{jmlrbook}% print version + +% Packages used by imported articles: +\usepackage{lipsum} +\usepackage{booktabs} +\usepackage{siunitx} + +% 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} + +\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 \texttt{prehyperref} +option. For example, to load the packages ``foo'' and ``bar'': +\begin{verbatim} +\documentclass[ + prehyperref={\usepackage{foo}\usepackage{bar}} + ]{jmlrbook} +\end{verbatim} +or: +\begin{verbatim} +\documentclass[ + prehyperref={\usepackage{foo,bar}} + ]{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} + +\chapter{Preface} + +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} + +\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. + +\part{Second Part of Appendices} + +\chapter{An Appendix} +\label{apd:third} + +This is an appendix in another part. + +\end{document} diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-books/paper1/paper1.bib b/Master/texmf-dist/doc/latex/jmlr/sample-books/paper1/paper1.bib new file mode 100644 index 00000000000..ddc24c66628 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/sample-books/paper1/paper1.bib @@ -0,0 +1,19 @@ +@article{guyon-elisseeff-03, + title = "An Introduction to Variable and Feature Selection", + author = "I. Guyon and A. Elisseeff", + journal = "JMLR", + volume = "3", + month = MAR, + pages = "1157-1182", + year = 2003 +} + +@techreport{guyon2007causalreport, + author = {I. Guyon and C. Aliferis and A. Elisseeff}, + title = {Causal Feature Selection}, + institution = {Clopinet}, + year = 2007, + type = {Technical Report }, + source = {\url{http://clopinet.com/isabelle/Papers/causalFS.pdf}} +} + diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-books/paper1/paper1.tex b/Master/texmf-dist/doc/latex/jmlr/sample-books/paper1/paper1.tex new file mode 100644 index 00000000000..5d05fff2d55 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/sample-books/paper1/paper1.tex @@ -0,0 +1,83 @@ +\documentclass[wcp]{jmlr} + +\usepackage{lipsum}% Provides dummy text for this example + +\newcommand{\samplecommand}{\emph{A sample command}} + +\jmlrvolume{42} +\jmlryear{2010} +\jmlrworkshop{Workshop on Causality} + +\title[Article 1]{First Sample Article} + +\author{\Name{Jane Doe}\Email{jd@sample.com}\and +\Name{John {Smith Jones}}\Email{jsj@sample.com}\\ +\addr{University of No Where}} + +\editor{Anne Editor} + +\begin{document} +\maketitle + +\begin{abstract} +\lipsum[1] +\end{abstract} +\begin{keywords} +Sample +\end{keywords} + +\section{Introduction} + +This is a sample article. \sectionref{sec:method} discusses +the method used. \equationref{eq:emc2} is an interesting +equation. The results are discussed in \sectionref{sec:results} +and some other stuff is in \appendixref{apd:first}. +\samplecommand. + +\lipsum + +\section{Method}\label{sec:method} + +\lipsum + +\begin{equation}\label{eq:emc2} +E = mc^2 +\end{equation} + +\section{Results}\label{sec:results} + +\begin{table}[htbp] +\floatconts + {tab:sample} + {\caption{A Sample Table}} + {% + \begin{tabular}{cc} + A & B\\ + 1 & 2 + \end{tabular} + }% +\end{table} + +\begin{table}[htbp] +\floatconts + {tab:sample2} + {\caption{Another Sample Table}} + {% + \begin{tabular}{cc} + A & B\\ + 1 & 2 + \end{tabular} + }% +\end{table} + +\lipsum + +Here are some citations: \citet{guyon-elisseeff-03,guyon2007causalreport}. + +\bibliography{paper1} + +\appendix +\section{First Appendix}\label{apd:first} + +\lipsum +\end{document} diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-books/paper2/paper2.bib b/Master/texmf-dist/doc/latex/jmlr/sample-books/paper2/paper2.bib new file mode 100644 index 00000000000..ddc24c66628 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/sample-books/paper2/paper2.bib @@ -0,0 +1,19 @@ +@article{guyon-elisseeff-03, + title = "An Introduction to Variable and Feature Selection", + author = "I. Guyon and A. Elisseeff", + journal = "JMLR", + volume = "3", + month = MAR, + pages = "1157-1182", + year = 2003 +} + +@techreport{guyon2007causalreport, + author = {I. Guyon and C. Aliferis and A. Elisseeff}, + title = {Causal Feature Selection}, + institution = {Clopinet}, + year = 2007, + type = {Technical Report }, + source = {\url{http://clopinet.com/isabelle/Papers/causalFS.pdf}} +} + diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-books/paper2/paper2.tex b/Master/texmf-dist/doc/latex/jmlr/sample-books/paper2/paper2.tex new file mode 100644 index 00000000000..01471c1f04a --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/sample-books/paper2/paper2.tex @@ -0,0 +1,60 @@ +\documentclass[wcp]{jmlr} + +\usepackage{lipsum}% Provides dummy text for this example + +\newcommand{\samplecommand}{\textbf{A sample command}} + +\jmlrvolume{42} +\jmlryear{2010} +\jmlrworkshop{Workshop on Causality} + +\title[Article 2]{Second Sample Article} + +\author{\Name{Bob {de Winter}}\Email{bdw@sample.com}\\ +\Name{{\'E}louise Mary Finchley}\Email{emf@sample.com}\\ +\Name{Jack Mark Jones}\Email{jmj@sample.com}\\ +\addr{University of No Where}} + +\editor{Anne Other Editor} + +\begin{document} +\maketitle + +\begin{abstract} +\lipsum[1] +\end{abstract} +\begin{keywords} +Sample +\end{keywords} + +\section{Introduction} + +This is a sample article. \sectionref{sec:method} discusses +the method used. \equationref{eq:emc2} is an interesting +equation. The results are discussed in \sectionref{sec:results} +and some other stuff is in \appendixref{apd:first}. +\samplecommand. + +\lipsum + +\section{Method}\label{sec:method} + +\lipsum + +\begin{equation}\label{eq:emc2} +E = mc^2 +\end{equation} + +\section{Results}\label{sec:results} + +\lipsum + +Here are some citations: \citet{guyon-elisseeff-03,guyon2007causalreport}. + +\bibliography{paper2} + +\appendix +\section{First Appendix}\label{apd:first} + +\lipsum +\end{document} diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-books/paper3/paper3.bib b/Master/texmf-dist/doc/latex/jmlr/sample-books/paper3/paper3.bib new file mode 100644 index 00000000000..ddc24c66628 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/sample-books/paper3/paper3.bib @@ -0,0 +1,19 @@ +@article{guyon-elisseeff-03, + title = "An Introduction to Variable and Feature Selection", + author = "I. Guyon and A. Elisseeff", + journal = "JMLR", + volume = "3", + month = MAR, + pages = "1157-1182", + year = 2003 +} + +@techreport{guyon2007causalreport, + author = {I. Guyon and C. Aliferis and A. Elisseeff}, + title = {Causal Feature Selection}, + institution = {Clopinet}, + year = 2007, + type = {Technical Report }, + source = {\url{http://clopinet.com/isabelle/Papers/causalFS.pdf}} +} + diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-books/paper3/paper3.tex b/Master/texmf-dist/doc/latex/jmlr/sample-books/paper3/paper3.tex new file mode 100644 index 00000000000..03416f1e9bb --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/sample-books/paper3/paper3.tex @@ -0,0 +1,51 @@ +\documentclass[wcp]{jmlr} + +\usepackage{lipsum}% Provides dummy text for this example + +\title[Article 3]{Third Sample Article} + +\author{\Name{John Smith}\Email{js@sample.com}\\ +\addr{University of No Where}} + +\editor{Anne Editor} + +\begin{document} +\maketitle + +\begin{abstract} +\lipsum[1] +\end{abstract} +\begin{keywords} +Sample +\end{keywords} + +\section{Introduction} + +This is a sample article. \sectionref{sec:method} discusses +the method used. \equationref{eq:emc2} is an interesting +equation. The results are discussed in \sectionref{sec:results} +and some other stuff is in \appendixref{apd:first}. + +\lipsum + +\section{Method}\label{sec:method} + +\lipsum + +\begin{equation}\label{eq:emc2} +E = mc^2 +\end{equation} + +\section{Results}\label{sec:results} + +\lipsum + +Here are some citations: \citet{guyon-elisseeff-03,guyon2007causalreport}. + +\bibliography{paper3} + +\appendix +\section{First Appendix}\label{apd:first} + +\lipsum +\end{document} diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-books/paper4/paper4.bib b/Master/texmf-dist/doc/latex/jmlr/sample-books/paper4/paper4.bib new file mode 100644 index 00000000000..ddc24c66628 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/sample-books/paper4/paper4.bib @@ -0,0 +1,19 @@ +@article{guyon-elisseeff-03, + title = "An Introduction to Variable and Feature Selection", + author = "I. Guyon and A. Elisseeff", + journal = "JMLR", + volume = "3", + month = MAR, + pages = "1157-1182", + year = 2003 +} + +@techreport{guyon2007causalreport, + author = {I. Guyon and C. Aliferis and A. Elisseeff}, + title = {Causal Feature Selection}, + institution = {Clopinet}, + year = 2007, + type = {Technical Report }, + source = {\url{http://clopinet.com/isabelle/Papers/causalFS.pdf}} +} + diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-books/paper4/paper4.tex b/Master/texmf-dist/doc/latex/jmlr/sample-books/paper4/paper4.tex new file mode 100644 index 00000000000..06d866e2287 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/sample-books/paper4/paper4.tex @@ -0,0 +1,51 @@ +\documentclass[wcp]{jmlr} + +\usepackage{lipsum}% Provides dummy text for this example + +\title[Article 4]{Fourth Sample Article} + +\author{\Name{Mary-Jane {de Beer}}\Email{mjdb@sample.com}\\ +\addr{University of No Where}} + +\editor{Anne Editor} + +\begin{document} +\maketitle + +\begin{abstract} +\lipsum[1] +\end{abstract} +\begin{keywords} +Sample +\end{keywords} + +\section{Introduction} + +This is a sample article. \sectionref{sec:method} discusses +the method used. \equationref{eq:emc2} is an interesting +equation. The results are discussed in \sectionref{sec:results} +and some other stuff is in \appendixref{apd:first}. + +\lipsum + +\section{Method}\label{sec:method} + +\lipsum + +\begin{equation}\label{eq:emc2} +E = mc^2 +\end{equation} + +\section{Results}\label{sec:results} + +\lipsum + +Here are some citations: \citet{guyon-elisseeff-03,guyon2007causalreport}. + +\bibliography{paper4} + +\appendix +\section{First Appendix}\label{apd:first} + +\lipsum +\end{document} diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-books/proceedings-sample.tex b/Master/texmf-dist/doc/latex/jmlr/sample-books/proceedings-sample.tex new file mode 100644 index 00000000000..71e6518f453 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/sample-books/proceedings-sample.tex @@ -0,0 +1,67 @@ +\documentclass[wcp]{jmlrbook}% on-line color version +%\documentclass[wcp,gray]{jmlrbook}% print version + +\jmlrvolume{42} +\jmlryear{2010} +\jmlrworkshop{Workshop on Causality} + +% Packages used by imported articles: +\usepackage{lipsum} + +% Title is added to the PDF properties. Optional argument +% is used instead, if present. +%\title[Short Title]{Big Long Title} +\title{Sample Proceedings} + +\author[Anne Editor et al.]{Anne Editor, Anne Other Editor and Nicola Talbot} + +\subtitle{\thejmlrworkshop} + +\logo{\includegraphics{bookLogo}} + +\begin{document} +\maketitle + +\frontmatter + +\chapter{Foreword} + +This is the foreword. + +\begin{authorsignoff} +\Author{Nicola Talbot\\ +University of East Anglia} +\end{authorsignoff} + +\chapter{Preface} + +This is the preface + +\begin{signoff}{March 2010} +% First editor: +\Editor{Nicola Talbot\\ +University of East Anglia\\ +\mailto{N.Talbot@uea.ac.uk}} +% Second editor: +\Editor{Anne Editor\\ +University of Nowhere\\ +\mailto{ae@sample.com}} +\end{signoff} + +\tableofcontents + +\mainmatter + +\begin{jmlrpapers} + \addtocpart{Introduction} + % syntax: \importpaper[label]{directory}{filename} + \importpaper{paper1}{paper1} + \addtocpart{First Topic} + \importpaper{paper2}{paper2} + \importpaper{paper3}{paper3} + \addtocpart{Second Topic} + \importpaper{paper4}{paper4} +\end{jmlrpapers} + + +\end{document} diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/circle-gray.png b/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/circle-gray.png new file mode 100644 index 00000000000..e6366465387 Binary files /dev/null and b/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/circle-gray.png differ diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/circle.jpg b/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/circle.jpg new file mode 100644 index 00000000000..365deb2e1f3 Binary files /dev/null and b/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/circle.jpg differ diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/nodes-gray.png b/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/nodes-gray.png new file mode 100644 index 00000000000..e4af05acda2 Binary files /dev/null and b/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/nodes-gray.png differ diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/nodes.png b/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/nodes.png new file mode 100644 index 00000000000..a4e79c25064 Binary files /dev/null and b/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/nodes.png differ diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/square-gray.png b/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/square-gray.png new file mode 100644 index 00000000000..b150e663542 Binary files /dev/null and b/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/square-gray.png differ diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/square.png b/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/square.png new file mode 100644 index 00000000000..8844e858166 Binary files /dev/null and b/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/square.png differ diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/teximage.tex b/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/teximage.tex new file mode 100644 index 00000000000..9fdc0d13827 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/sample-papers/images/teximage.tex @@ -0,0 +1,4 @@ +\frame{\begin{picture}(100,100) +\put(25,50){\dashbox{.5}(10,10){$A$}} +\put(50,50){\dashbox{.5}(10,10){$B$}} +\end{picture}} diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlr-sample.bib b/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlr-sample.bib new file mode 100644 index 00000000000..ddc24c66628 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlr-sample.bib @@ -0,0 +1,19 @@ +@article{guyon-elisseeff-03, + title = "An Introduction to Variable and Feature Selection", + author = "I. Guyon and A. Elisseeff", + journal = "JMLR", + volume = "3", + month = MAR, + pages = "1157-1182", + year = 2003 +} + +@techreport{guyon2007causalreport, + author = {I. Guyon and C. Aliferis and A. Elisseeff}, + title = {Causal Feature Selection}, + institution = {Clopinet}, + year = 2007, + type = {Technical Report }, + source = {\url{http://clopinet.com/isabelle/Papers/causalFS.pdf}} +} + diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlr-sample.tex b/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlr-sample.tex new file mode 100644 index 00000000000..7668ec816b7 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlr-sample.tex @@ -0,0 +1,752 @@ +%\documentclass[gray]{jmlr} % test grayscale version +\documentclass{jmlr} + +% The following packages will be automatically loaded: +% amsmath, amssymb, natbib, graphicx, url, algorithm2e + +%\usepackage{rotating}% for sideways figures and tables +%\usepackage{longtable}% for long tables + +% The booktabs package is used by this sample document +% (it provides \toprule, \midrule and \bottomrule). +% Remove the next line if you don't require it. +\usepackage{booktabs} +% The siunitx package is used by this sample document +% to align numbers in a column by their decimal point. +% Remove the next line if you don't require it. +\usepackage{siunitx} + +% The following command is just for this sample document: +\newcommand{\cs}[1]{\texttt{\char`\\#1}} + +\jmlrvolume{vol} +\jmlryear{2010} +\jmlrsubmitted{submission date} +\jmlrpublished{publication date} + +\title[Short Title]{Full Title of Article} + + % Use \Name{Author Name} to specify the name. + % If the surname contains spaces, enclose the surname + % in braces, e.g. \Name{John {Smith Jones}} similarly + % if the name has a "von" part, e.g \Name{Jane {de Winter}}. + % If the first letter in the forenames is a diacritic + % enclose the diacritic in braces, e.g. \Name{{\'E}louise Smith} + + % Two authors with the same address + \author{\Name{Author Name1} \Email{abc@sample.com}\and + \Name{Author Name2} \Email{xyz@sample.com}\\ + \addr Address} + + % Three or more authors with the same address: + % \author{\Name{Author Name1} \Email{an1@sample.com}\\ + % \Name{Author Name2} \Email{an2@sample.com}\\ + % \Name{Author Name3} \Email{an3@sample.com}\\ + % \Name{Author Name4} \Email{an4@sample.com}\\ + % \Name{Author Name5} \Email{an5@sample.com}\\ + % \Name{Author Name6} \Email{an6@sample.com}\\ + % \Name{Author Name7} \Email{an7@sample.com}\\ + % \Name{Author Name8} \Email{an8@sample.com}\\ + % \Name{Author Name9} \Email{an9@sample.com}\\ + % \Name{Author Name10} \Email{an10@sample.com}\\ + % \Name{Author Name11} \Email{an11@sample.com}\\ + % \Name{Author Name12} \Email{an12@sample.com}\\ + % \Name{Author Name13} \Email{an13@sample.com}\\ + % \Name{Author Name14} \Email{an14@sample.com}\\ + % \addr Address} + + + % Authors with different addresses: + % \author{\Name{Author Name1} \Email{abc@sample.com}\\ + % \addr Address 1 + % \AND + % \Name{Author Name2} \Email{xyz@sample.com}\\ + % \addr Address 2 + %} + +\editor{Editor's name} + +\begin{document} + +\maketitle + +\begin{abstract} +This is the abstract for this article. +\end{abstract} +\begin{keywords} +List of keywords +\end{keywords} + +\section{Introduction} +\label{sec:intro} + +This is a sample article that uses the \textsf{jmlr} class with +the \texttt{wcp} class option. Please follow the guidelines in +this sample document as it can help to reduce complications when +combining the articles into a book. Please avoid using obsolete +commands, such as \verb|\rm|, and obsolete packages, such as +\textsf{epsfig}.\footnote{See +\url{http://www.ctan.org/pkg/l2tabu}} Please also ensure +that your document will compile with PDF\LaTeX. + +\subsection{Sub-sections} + +Sub-sections are produced using \verb|\subsection|. + +\subsubsection{Sub-sub-sections} + +Sub-sub-sections are produced using \verb|\subsubsection|. + +\paragraph{Sub-sub-sub-sections} + +Sub-sub-sub-sections are produced using \verb|\paragraph|. +These are unnumbered with a running head. + +\subparagraph{Sub-sub-sub-sub-sections} + +Sub-sub-sub-sub-sections are produced using \verb|\subparagraph|. +These are unnumbered with a running head. + +\section{Cross-Referencing} + +Always use \verb|\label| and \verb|\ref| (or one of the commands +described below) when cross-referencing. For example, the next +section is Section~\ref{sec:math}. The \textsf{jmlr} class +provides some convenient cross-referencing commands: +\verb|\sectionref|, \verb|\equationref|, \verb|\tableref|, +\verb|\figureref|, \verb|\algorithmref|, \verb|\theoremref|, +\verb|\lemmaref|, \verb|\remarkref|, \verb|\corollaryref|, +\verb|\definitionref|, \verb|\conjectureref|, \verb|\axiomref|, +\verb|\exampleref| and \verb|\appendixref|. The argument of these +commands may either be a single label or a comma-separated list +of labels. Examples: + +Referencing sections: \sectionref{sec:math} or +\sectionref{sec:intro,sec:math} or +\sectionref{sec:intro,sec:math,sec:tables,sec:figures}. + +Referencing equations: \equationref{eq:trigrule} or +\equationref{eq:trigrule,eq:df} or +\equationref{eq:trigrule,eq:f,eq:df,eq:y}. + +Referencing tables: \tableref{tab:operatornames} or +\tableref{tab:operatornames,tab:example} or +\tableref{tab:operatornames,tab:example,tab:example-booktabs}. + +Referencing figures: \figureref{fig:nodes} or +\figureref{fig:nodes,fig:teximage} or +\figureref{fig:nodes,fig:teximage,fig:subfigex} or +\figureref{fig:circle,fig:square}. + +Referencing algorithms: \algorithmref{alg:gauss} or +\algorithmref{alg:gauss,alg:moore} or +\algorithmref{alg:gauss,alg:moore,alg:net}. + +Referencing theorem-like environments: \theoremref{thm:eigenpow}, +\lemmaref{lem:sample}, \remarkref{rem:sample}, +\corollaryref{cor:sample}, \definitionref{def:sample}, +\conjectureref{con:sample}, \axiomref{ax:sample} and +\exampleref{ex:sample}. + +Referencing appendices: \appendixref{apd:first} or +\appendixref{apd:first,apd:second}. + +\section{Equations} +\label{sec:math} + +The \textsf{jmlr} class loads the \textsf{amsmath} package, so +you can use any of the commands and environments defined there. +(See the \textsf{amsmath} documentation for further +details.\footnote{Either \texttt{texdoc amsmath} or +\url{http://www.ctan.org/pkg/amsmath}}) + +Unnumbered single-lined equations should be displayed using +\verb|\[| and \verb|\]|. For example: +\[E = m c^2\] +Numbered single-line equations should be displayed using the +\texttt{equation} environment. For example: +\begin{equation}\label{eq:trigrule} +\cos^2\theta + \sin^2\theta \equiv 1 +\end{equation} +This can be referenced using \verb|\label| and \verb|\equationref|. +For example, \equationref{eq:trigrule}. + +Multi-lined numbered equations should be displayed using the +\texttt{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 +\texttt{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 +\verb|\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 \texttt{split} environment. +Text can be embedded in an equation using \verb|\text| or +\verb|\intertext| (as used in \theoremref{thm:eigenpow}). +See the \textsf{amsmath} documentation for further details. + +\subsection{Operator Names} +\label{sec:op} + +Predefined operator names are listed in \tableref{tab:operatornames}. +For additional operators, either use \verb|\operatorname|, +for example $\operatorname{var}(X)$ or declare it with +\verb|\DeclareMathOperator|, for example +\begin{verbatim} +\DeclareMathOperator{\var}{var} +\end{verbatim} +and then use this new command. If you want limits that go above and +below the operator (like \verb|\sum|) use the starred versions +(\verb|\operatorname*| or \verb|\DeclareMathOperator*|). + +\begin{table}[htbp] +\floatconts + {tab:operatornames}% + {\caption{Predefined Operator Names (taken from + \textsf{amsmath} documentation)}}% + {% +\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} + +\section{Vectors and Sets} +\label{sec:vec} + +Vectors should be typeset using \cs{vec}. For example $\vec{x}$. +The \textsf{jmlr} class also provides \cs{set} to typeset a +set. For example $\set{S}$. + +\section{Floats} +\label{sec:floats} + +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 figure or table 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 +spacing 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} + +\subsection{Tables} +\label{sec:tables} + +Tables should go in the \texttt{table} environment. Within this +environment use \verb|\floatconts| (defined by \textsf{jmlr}) +to set the caption correctly and center the table contents. + +\begin{table}[htbp] +% The first argument is the label. +% The caption goes in the second argument, and the table contents +% go in the third argument. +\floatconts + {tab:example}% + {\caption{An Example Table}}% + {\begin{tabular}{ll} + \bfseries Dataset & \bfseries Result\\ + Data1 & 0.12345\\ + Data2 & 0.67890\\ + Data3 & 0.54321\\ + Data4 & 0.09876 + \end{tabular}} +\end{table} + +If you want horizontal rules you can use the \textsf{booktabs} +package which provides the commands \verb|\toprule|, +\verb|\midrule| and \verb|\bottomrule|. For example, see +\tableref{tab:example-booktabs}. + +\begin{table}[hbtp] +\floatconts + {tab:example-booktabs} + {\caption{A Table With Horizontal Lines}} + {\begin{tabular}{ll} + \toprule + \bfseries Dataset & \bfseries Result\\ + \midrule + Data1 & 0.12345\\ + Data2 & 0.67890\\ + Data3 & 0.54321\\ + Data4 & 0.09876\\ + \bottomrule + \end{tabular}} +\end{table} + +If you want vertical lines as well, you can't use the +\textsf{booktabs} commands as there'll be some unwanted gaps. +Instead you can use \LaTeX's \verb|\hline|, but the rows may +appear a bit cramped. You can add extra space above or below a +row using \verb|\abovestrut| and \verb|\belowstrut|. For example, +see \tableref{tab:example-hline}. + +\begin{table}[htbp] +\floatconts + {tab:example-hline} + {\caption{A Table With Horizontal and Vertical Lines}}% + {% + \begin{tabular}{|l|l|} + \hline + \abovestrut{2.2ex}\bfseries Dataset & \bfseries Result\\\hline + \abovestrut{2.2ex}Data1 & 0.12345\\ + Data2 & 0.67890\\ + Data3 & 0.54321\\ + \belowstrut{0.2ex}Data4 & 0.09876\\\hline + \end{tabular} + } +\end{table} + +If you want to align numbers on their decimal point, you can +use the \textsf{siunitx} package. For example, see +\tableref{tab:example-siunitx}. For further details see the +\textsf{siunitx} documentation\footnote{Either \texttt{texdoc +siunitx} or \url{http://www.ctan.org/pkg/siunitx}}. + +\begin{table}[htbp] +\floatconts + {tab:example-siunitx} + {\caption{A Table With Numbers Aligned on the Decimal Point}} + {\begin{tabular}{lS[tabformat=3.5]} + \bfseries Dataset & {\bfseries Result}\\ + Data1 & 0.12345\\ + Data2 & 10.6789\\ + Data3 & 50.543\\ + Data4 & 200.09876 + \end{tabular}} +\end{table} + +If the table is too wide, you can adjust the inter-column +spacing by changing the value of \verb|\tabcolsep|. For +example: +\begin{verbatim} +\setlength{\tabcolsep}{3pt} +\end{verbatim} +If the table is very wide but not very long, you can use the +\texttt{sidewaystable} environment defined in the +\textsf{rotating} package (so use \verb|\usepackage{rotating}|). +If the table is too long to fit on a page, you should use the +\texttt{longtable} environment defined in the \textsf{longtable} +package (so use \verb|\usepackage{longtable}|). + +\subsection{Figures} +\label{sec:figures} + +Figures should go in the \texttt{figure} environment. Within this +environment, use \verb|\floatconts| to correctly position the +caption and center the image. Use \verb|\includegraphics| +for external graphics files but omit the file extension. Do not +use \verb|\epsfig| or \verb|\psfig|. If you want to scale the +image, it's better to use a fraction of the line width rather +than an explicit length. For example, see \figureref{fig:nodes}. + +\begin{figure}[htbp] +% Caption and label go in the first argument and the figure contents +% go in the second argument +\floatconts + {fig:nodes} + {\caption{Example Image}} + {\includegraphics[width=0.5\linewidth]{images/nodes}} +\end{figure} + +If your image is made up of \LaTeX\ code (for example, commands +provided by the \textsf{pgf} package) you can include it using +\cs{includeteximage} (defined by the \textsf{jmlr} class). This +can be scaled and rotated in the same way as \cs{includegraphics}. +For example, see \figureref{fig:teximage}. + +\begin{figure}[htbp] +\floatconts + {fig:teximage} + {\caption{Image Created Using \LaTeX\ Code}} + {\includeteximage[angle=45]{images/teximage}} +\end{figure} + +If the figure is too wide to fit on the page, you can use the +\texttt{sidewaysfigure} environment defined in the +\textsf{rotating} package. + +Don't use \verb|\graphicspath|. If the images are contained in +a subdirectory, specify this when you include the image, for +example \verb|\includegraphics{figures/mypic}|. + +\subsubsection{Sub-Figures} +\label{sec:subfigures} + +Sub-figures can be created using \verb|\subfigure|, which is +defined by the \textsf{jmlr} class. The optional argument allows +you to provide a subcaption. The label should be placed in the +mandatory argument of \verb|\subfigure|. You can reference the +entire figure, for example \figureref{fig:subfigex}, or you can +reference part of the figure using \verb|\figureref|, for example +\figureref{fig:circle}. Alternatively you can reference the +subfigure using \verb|\subfigref|, for example +\subfigref{fig:circle,fig:square} in \figureref{fig:subfigex}. + +\begin{figure}[htbp] +\floatconts + {fig:subfigex} + {\caption{An Example With Sub-Figures.}} + {% + \subfigure[A Circle]{\label{fig:circle}% + \includegraphics[width=0.2\linewidth]{images/circle}}% + \qquad + \subfigure[A Square]{\label{fig:square}% + \includegraphics[width=0.2\linewidth]{images/square}} + } +\end{figure} + +By default, the sub-figures are aligned on the baseline. +This can be changed using the second optional argument +of \verb|\subfigure|. This may be \texttt{t} (top), \texttt{c} +(centered) or \texttt{b} (bottom). For example, the subfigures +\subfigref{fig:circle2,fig:square2} in \figureref{fig:subfigex2} +both have \verb|[c]| as the second optional argument. + +\begin{figure}[htbp] +\floatconts + {fig:subfigex2} + {\caption{Another Example With Sub-Figures.}} + {% + \subfigure[A Small Circle][c]{\label{fig:circle2}% + \includegraphics[width=0.1\linewidth]{images/circle}}% + \qquad + \subfigure[A Square][c]{\label{fig:square2}% + \includegraphics[width=0.2\linewidth]{images/square}} + } +\end{figure} + +\subsection{Sub-Tables} +\label{sec:subtables} +There is an analogous command \verb|\subtable| for sub-tables. +It has the same syntax as \verb|\subfigure| described above. +You can reference the table using \verb|\tableref|, for example +\tableref{tab:subtabex} or you can reference part of the table, +for example \tableref{tab:ab}. Alternatively you can reference the +subtable using \verb|\subtabref|, for example +\subtabref{tab:ab,tab:cd} in \tableref{tab:subtabex}. + +\begin{table}[htbp] +\floatconts + {tab:subtabex} + {\caption{An Example With Sub-Tables}} + {% + \subtable{% + \label{tab:ab}% + \begin{tabular}{cc} + \bfseries A & \bfseries B\\ + 1 & 2 + \end{tabular} + }\qquad + \subtable{% + \label{tab:cd}% + \begin{tabular}{cc} + \bfseries C & \bfseries D\\ + 3 & 4\\ + 5 & 6 + \end{tabular} + } + } +\end{table} + +By default, the sub-tables are aligned on the top. +This can be changed using the second optional argument +of \verb|\subtable|. This may be \texttt{t} (top), \texttt{c} +(centered) or \texttt{b} (bottom). For example, the sub-tables +\subtabref{tab:ab2,tab:cd2} in \tableref{tab:subtabex2} +both have \verb|[c]| as the second optional argument. + +\begin{table}[htbp] +\floatconts + {tab:subtabex2} + {\caption{Another Example With Sub-Tables}} + {% + \subtable[][c]{% + \label{tab:ab2}% + \begin{tabular}{cc} + \bfseries A & \bfseries B\\ + 1 & 2 + \end{tabular} + }\qquad + \subtable[][c]{% + \label{tab:cd2}% + \begin{tabular}{cc} + \bfseries C & \bfseries D\\ + 3 & 4\\ + 5 & 6 + \end{tabular} + } + } +\end{table} + +\subsection{Algorithms} +\label{sec:algorithms} + +Enumerated textual algorithms can be displayed using the +\texttt{algorithm} environment. Within this environment, use +\verb|\caption| to set the caption and you can use an +\texttt{enumerate} or nested \texttt{enumerate} environments. +For example, see \algorithmref{alg:gauss}. Note that algorithms +float like figures and tables. + +\begin{algorithm}[htbp] +\caption{The Gauss-Seidel Algorithm}\label{alg:gauss} +\begin{enumerate} + \item For $k=1$ to maximum number of iterations + \begin{enumerate} + \item For $i=1$ to $n$ + \begin{enumerate} + \item $x_i^{(k)} = + \frac{b_i - \sum_{j=1}^{i-1}a_{ij}x_j^{(k)} + - \sum_{j=i+1}^{n}a_{ij}x_j^{(k-1)}}{a_{ii}}$ + \item If $\|\vec{x}^{(k)}-\vec{x}^{(k-1)} < \epsilon\|$, + where $\epsilon$ is a specified stopping criteria, stop. + \end{enumerate} + \end{enumerate} +\end{enumerate} +\end{algorithm} + +If you'd rather have the same numbering throughout the algorithm +but still want the convenient indentation of nested +\texttt{enumerate} environments, you can use the +\texttt{enumerate*} environment provided by the \textsf{jmlr} +class. For example, see \algorithmref{alg:moore}. + +\begin{algorithm} +\caption{Moore's Shortest Path}\label{alg:moore} +Given a connected graph $G$, where the length of each edge is 1: +\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} + +Pseudo code can be displayed using the \texttt{algorithm2e} +environment. This is defined by the \textsf{algorithm2e} package +(which is automatically loaded) so check the \textsf{algorithm2e} +documentation for further details.\footnote{Either \texttt{texdoc +algorithm2e} or \url{http://www.ctan.org/pkg/algorithm2e}} +For an example, see \algorithmref{alg:net}. + +\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} + +\section{Description Lists} + +The \textsf{jmlr} class also provides a description-like +environment called \texttt{altdescription}. This has an +argument that should be the widest label in the list. Compare: +\begin{description} +\item[add] A method that adds two variables. +\item[differentiate] A method that differentiates a function. +\end{description} +with +\begin{altdescription}{differentiate} +\item[add] A method that adds two variables. +\item[differentiate] A method that differentiates a function. +\end{altdescription} + +\section{Theorems, Lemmas etc} +\label{sec:theorems} + +The following theorem-like environments are predefined by +the \textsf{jmlr} class: \texttt{theorem}, \texttt{example}, +\texttt{lemma}, \texttt{proposition}, \texttt{remark}, +\texttt{corollary}, \texttt{definition}, \texttt{conjecture} +and \texttt{axiom}. You can use the \texttt{proof} environment +to display the proof if need be, as in \theoremref{thm:eigenpow}. + +\begin{theorem}[Eigenvalue Powers]\label{thm:eigenpow} +If $\lambda$ is an eigenvalue of $\vec{B}$ with eigenvector +$\vec{\xi}$, then $\lambda^n$ is an eigenvalue of $\vec{B}^n$ +with eigenvector $\vec{\xi}$. +\begin{proof} +Let $\lambda$ be an eigenvalue of $\vec{B}$ with eigenvector +$\xi$, then +\begin{align*} +\vec{B}\vec{\xi} &= \lambda\vec{\xi} +\intertext{premultiply by $\vec{B}$:} +\vec{B}\vec{B}\vec{\xi} &= \vec{B}\lambda\vec{\xi}\\ +\Rightarrow \vec{B}^2\vec{\xi} &= \lambda\vec{B}\vec{\xi}\\ +&= \lambda\lambda\vec{\xi}\qquad +\text{since }\vec{B}\vec{\xi}=\lambda\vec{\xi}\\ +&= \lambda^2\vec{\xi} +\end{align*} +Therefore true for $n=2$. Now assume true for $n=k$: +\begin{align*} +\vec{B}^k\vec{\xi} &= \lambda^k\vec{\xi} +\intertext{premultiply by $\vec{B}$:} +\vec{B}\vec{B}^k\vec{\xi} &= \vec{B}\lambda^k\vec{\xi}\\ +\Rightarrow \vec{B}^{k+1}\vec{\xi} &= \lambda^k\vec{B}\vec{\xi}\\ +&= \lambda^k\lambda\vec{\xi}\qquad +\text{since }\vec{B}\vec{\xi}=\lambda\vec{\xi}\\ +&= \lambda^{k+1}\vec{\xi} +\end{align*} +Therefore true for $n=k+1$. Therefore, by induction, true for all +$n$. +\end{proof} +\end{theorem} + +\begin{lemma}[A Sample Lemma]\label{lem:sample} +This is a lemma. +\end{lemma} + +\begin{remark}[A Sample Remark]\label{rem:sample} +This is a remark. +\end{remark} + +\begin{corollary}[A Sample Corollary]\label{cor:sample} +This is a corollary. +\end{corollary} + +\begin{definition}[A Sample Definition]\label{def:sample} +This is a definition. +\end{definition} + +\begin{conjecture}[A Sample Conjecture]\label{con:sample} +This is a conjecture. +\end{conjecture} + +\begin{axiom}[A Sample Axiom]\label{ax:sample} +This is an axiom. +\end{axiom} + +\begin{example}[An Example]\label{ex:sample} +This is an example. +\end{example} + +\section{Color vs Grayscale} +\label{sec:color} + +It's helpful if authors supply grayscale versions of their +images 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 \textsf{jmlr} class checks for +the existence of the grayscale version if it is print mode +(provided you have used \verb|\includegraphics| and haven't +specified the file extension). + +You can use \verb|\ifprint| to determine which mode you are in. +For example, in \figureref{fig:nodes}, the +\ifprint{dark gray}{purple} ellipse represents an input and the +\ifprint{light gray}{yellow} ellipse represents an output. +Another example: {\ifprint{\bfseries}{\color{red}}important text!} + +You can use the class option \texttt{gray} to see how the +document will appear in gray scale mode. \textcolor{blue}{Colored +text} will automatically be converted to gray scale. + +The \textsf{jmlr} class loads the \textsf{xcolor} +package, so you can also define your own colors. For example: +\ifprint + {\definecolor{myred}{gray}{0.5}}% + {\definecolor{myred}{rgb}{0.5,0,0}}% +\textcolor{myred}{XYZ}. + +The \textsf{xcolor} class is loaded with the \texttt{x11names} +option, so you can use any of the x11 predefined colors (listed +in the \textsf{xcolor} documentation\footnote{either +\texttt{texdoc xcolor} or \url{http://www.ctan.org/pkg/xcolor}}). + +\section{Citations and Bibliography} +\label{sec:cite} + +The \textsf{jmlr} class automatically loads \textsf{natbib}. +This sample file has the citations defined in the accompanying +BibTeX file \texttt{jmlr-sample.bib}. For a parenthetical +citation use \verb|\citep|. For example +\citep{guyon-elisseeff-03}. For a textual citation use +\verb|\citet|. For example \citet{guyon2007causalreport}. +Both commands may take a comma-separated list, for example +\citet{guyon-elisseeff-03,guyon2007causalreport}. + +These commands have optional arguments and have a starred +version. See the \textsf{natbib} documentation for further +details.\footnote{Either \texttt{texdoc natbib} or +\url{http://www.ctan.org/pkg/natbib}} + +The bibliography is displayed using \verb|\bibliography|. + +\acks{Acknowledgements go here.} + +\bibliography{jmlr-sample} + +\appendix + +\section{First Appendix}\label{apd:first} + +This is the first appendix. + +\section{Second Appendix}\label{apd:second} + +This is the second appendix. + +\end{document} diff --git a/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlrwcp-sample.tex b/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlrwcp-sample.tex new file mode 100644 index 00000000000..107d12061c3 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jmlr/sample-papers/jmlrwcp-sample.tex @@ -0,0 +1,752 @@ +%\documentclass[wcp,gray]{jmlr} % test grayscale version +\documentclass[wcp]{jmlr} + +% The following packages will be automatically loaded: +% amsmath, amssymb, natbib, graphicx, url, algorithm2e + +%\usepackage{rotating}% for sideways figures and tables +\usepackage{longtable}% for long tables + +% The booktabs package is used by this sample document +% (it provides \toprule, \midrule and \bottomrule). +% Remove the next line if you don't require it. +\usepackage{booktabs} +% The siunitx package is used by this sample document +% to align numbers in a column by their decimal point. +% Remove the next line if you don't require it. +\usepackage{siunitx} + +% The following command is just for this sample document: +\newcommand{\cs}[1]{\texttt{\char`\\#1}} + +\jmlrvolume{vol} +\jmlryear{2010} +\jmlrworkshop{Workshop Title} + +\title[Short Title]{Full Title of Article} + + % Use \Name{Author Name} to specify the name. + % If the surname contains spaces, enclose the surname + % in braces, e.g. \Name{John {Smith Jones}} similarly + % if the name has a "von" part, e.g \Name{Jane {de Winter}}. + % If the first letter in the forenames is a diacritic + % enclose the diacritic in braces, e.g. \Name{{\'E}louise Smith} + + % Two authors with the same address + \author{\Name{Author Name1} \Email{abc@sample.com}\and + \Name{Author Name2} \Email{xyz@sample.com}\\ + \addr Address} + + % Three or more authors with the same address: + % \author{\Name{Author Name1} \Email{an1@sample.com}\\ + % \Name{Author Name2} \Email{an2@sample.com}\\ + % \Name{Author Name3} \Email{an3@sample.com}\\ + % \Name{Author Name4} \Email{an4@sample.com}\\ + % \Name{Author Name5} \Email{an5@sample.com}\\ + % \Name{Author Name6} \Email{an6@sample.com}\\ + % \Name{Author Name7} \Email{an7@sample.com}\\ + % \Name{Author Name8} \Email{an8@sample.com}\\ + % \Name{Author Name9} \Email{an9@sample.com}\\ + % \Name{Author Name10} \Email{an10@sample.com}\\ + % \Name{Author Name11} \Email{an11@sample.com}\\ + % \Name{Author Name12} \Email{an12@sample.com}\\ + % \Name{Author Name13} \Email{an13@sample.com}\\ + % \Name{Author Name14} \Email{an14@sample.com}\\ + % \addr Address} + + + % Authors with different addresses: + % \author{\Name{Author Name1} \Email{abc@sample.com}\\ + % \addr Address 1 + % \AND + % \Name{Author Name2} \Email{xyz@sample.com}\\ + % \addr Address 2 + %} + +\editor{Editor's name} +% \editors{List of editors' names} + +\begin{document} + +\maketitle + +\begin{abstract} +This is the abstract for this article. +\end{abstract} +\begin{keywords} +List of keywords +\end{keywords} + +\section{Introduction} +\label{sec:intro} + +This is a sample article that uses the \textsf{jmlr} class with +the \texttt{wcp} class option. Please follow the guidelines in +this sample document as it can help to reduce complications when +combining the articles into a book. Please avoid using obsolete +commands, such as \verb|\rm|, and obsolete packages, such as +\textsf{epsfig}.\footnote{See +\url{http://www.ctan.org/pkg/l2tabu}} Please also ensure +that your document will compile with PDF\LaTeX. + +\subsection{Sub-sections} + +Sub-sections are produced using \verb|\subsection|. + +\subsubsection{Sub-sub-sections} + +Sub-sub-sections are produced using \verb|\subsubsection|. + +\paragraph{Sub-sub-sub-sections} + +Sub-sub-sub-sections are produced using \verb|\paragraph|. +These are unnumbered with a running head. + +\subparagraph{Sub-sub-sub-sub-sections} + +Sub-sub-sub-sub-sections are produced using \verb|\subparagraph|. +These are unnumbered with a running head. + +\section{Cross-Referencing} + +Always use \verb|\label| and \verb|\ref| (or one of the commands +described below) when cross-referencing. For example, the next +section is Section~\ref{sec:math}. The \textsf{jmlr} class +provides some convenient cross-referencing commands: +\verb|\sectionref|, \verb|\equationref|, \verb|\tableref|, +\verb|\figureref|, \verb|\algorithmref|, \verb|\theoremref|, +\verb|\lemmaref|, \verb|\remarkref|, \verb|\corollaryref|, +\verb|\definitionref|, \verb|\conjectureref|, \verb|\axiomref|, +\verb|\exampleref| and \verb|\appendixref|. The argument of these +commands may either be a single label or a comma-separated list +of labels. Examples: + +Referencing sections: \sectionref{sec:math} or +\sectionref{sec:intro,sec:math} or +\sectionref{sec:intro,sec:math,sec:tables,sec:figures}. + +Referencing equations: \equationref{eq:trigrule} or +\equationref{eq:trigrule,eq:df} or +\equationref{eq:trigrule,eq:f,eq:df,eq:y}. + +Referencing tables: \tableref{tab:operatornames} or +\tableref{tab:operatornames,tab:example} or +\tableref{tab:operatornames,tab:example,tab:example-booktabs}. + +Referencing figures: \figureref{fig:nodes} or +\figureref{fig:nodes,fig:teximage} or +\figureref{fig:nodes,fig:teximage,fig:subfigex} or +\figureref{fig:circle,fig:square}. + +Referencing algorithms: \algorithmref{alg:gauss} or +\algorithmref{alg:gauss,alg:moore} or +\algorithmref{alg:gauss,alg:moore,alg:net}. + +Referencing theorem-like environments: \theoremref{thm:eigenpow}, +\lemmaref{lem:sample}, \remarkref{rem:sample}, +\corollaryref{cor:sample}, \definitionref{def:sample}, +\conjectureref{con:sample}, \axiomref{ax:sample} and +\exampleref{ex:sample}. + +Referencing appendices: \appendixref{apd:first} or +\appendixref{apd:first,apd:second}. + +\section{Equations} +\label{sec:math} + +The \textsf{jmlr} class loads the \textsf{amsmath} package, so +you can use any of the commands and environments defined there. +(See the \textsf{amsmath} documentation for further +details.\footnote{Either \texttt{texdoc amsmath} or +\url{http://www.ctan.org/pkg/amsmath}}) + +Unnumbered single-lined equations should be displayed using +\verb|\[| and \verb|\]|. For example: +\[E = m c^2\] +Numbered single-line equations should be displayed using the +\texttt{equation} environment. For example: +\begin{equation}\label{eq:trigrule} +\cos^2\theta + \sin^2\theta \equiv 1 +\end{equation} +This can be referenced using \verb|\label| and \verb|\equationref|. +For example, \equationref{eq:trigrule}. + +Multi-lined numbered equations should be displayed using the +\texttt{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 +\texttt{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 +\verb|\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 \texttt{split} environment. +Text can be embedded in an equation using \verb|\text| or +\verb|\intertext| (as used in \theoremref{thm:eigenpow}). +See the \textsf{amsmath} documentation for further details. + +\subsection{Operator Names} +\label{sec:op} + +Predefined operator names are listed in \tableref{tab:operatornames}. +For additional operators, either use \verb|\operatorname|, +for example $\operatorname{var}(X)$ or declare it with +\verb|\DeclareMathOperator|, for example +\begin{verbatim} +\DeclareMathOperator{\var}{var} +\end{verbatim} +and then use this new command. If you want limits that go above and +below the operator (like \verb|\sum|) use the starred versions +(\verb|\operatorname*| or \verb|\DeclareMathOperator*|). + +\begin{table}[htbp] +\floatconts + {tab:operatornames}% + {\caption{Predefined Operator Names (taken from + \textsf{amsmath} documentation)}}% + {% +\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} + +\section{Vectors and Sets} +\label{sec:vec} + +Vectors should be typeset using \cs{vec}. For example $\vec{x}$. +The \textsf{jmlr} class also provides \cs{set} to typeset a +set. For example $\set{S}$. + +\section{Floats} +\label{sec:floats} + +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 figure or table 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 +spacing 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} + +\subsection{Tables} +\label{sec:tables} + +Tables should go in the \texttt{table} environment. Within this +environment use \verb|\floatconts| (defined by \textsf{jmlr}) +to set the caption correctly and center the table contents. + +\begin{table}[htbp] +% The first argument is the label. +% The caption goes in the second argument, and the table contents +% go in the third argument. +\floatconts + {tab:example}% + {\caption{An Example Table}}% + {\begin{tabular}{ll} + \bfseries Dataset & \bfseries Result\\ + Data1 & 0.12345\\ + Data2 & 0.67890\\ + Data3 & 0.54321\\ + Data4 & 0.09876 + \end{tabular}} +\end{table} + +If you want horizontal rules you can use the \textsf{booktabs} +package which provides the commands \verb|\toprule|, +\verb|\midrule| and \verb|\bottomrule|. For example, see +\tableref{tab:example-booktabs}. + +\begin{table}[hbtp] +\floatconts + {tab:example-booktabs} + {\caption{A Table With Horizontal Lines}} + {\begin{tabular}{ll} + \toprule + \bfseries Dataset & \bfseries Result\\ + \midrule + Data1 & 0.12345\\ + Data2 & 0.67890\\ + Data3 & 0.54321\\ + Data4 & 0.09876\\ + \bottomrule + \end{tabular}} +\end{table} + +If you want vertical lines as well, you can't use the +\textsf{booktabs} commands as there'll be some unwanted gaps. +Instead you can use \LaTeX's \verb|\hline|, but the rows may +appear a bit cramped. You can add extra space above or below a +row using \verb|\abovestrut| and \verb|\belowstrut|. For example, +see \tableref{tab:example-hline}. + +\begin{table}[htbp] +\floatconts + {tab:example-hline} + {\caption{A Table With Horizontal and Vertical Lines}}% + {% + \begin{tabular}{|l|l|} + \hline + \abovestrut{2.2ex}\bfseries Dataset & \bfseries Result\\\hline + \abovestrut{2.2ex}Data1 & 0.12345\\ + Data2 & 0.67890\\ + Data3 & 0.54321\\ + \belowstrut{0.2ex}Data4 & 0.09876\\\hline + \end{tabular} + } +\end{table} + +If you want to align numbers on their decimal point, you can +use the \textsf{siunitx} package. For example, see +\tableref{tab:example-siunitx}. For further details see the +\textsf{siunitx} documentation\footnote{Either \texttt{texdoc +siunitx} or \url{http://www.ctan.org/pkg/siunitx}}. + +\begin{table}[htbp] +\floatconts + {tab:example-siunitx} + {\caption{A Table With Numbers Aligned on the Decimal Point}} + {\begin{tabular}{lS[tabformat=3.5]} + \bfseries Dataset & {\bfseries Result}\\ + Data1 & 0.12345\\ + Data2 & 10.6789\\ + Data3 & 50.543\\ + Data4 & 200.09876 + \end{tabular}} +\end{table} + +If the table is too wide, you can adjust the inter-column +spacing by changing the value of \verb|\tabcolsep|. For +example: +\begin{verbatim} +\setlength{\tabcolsep}{3pt} +\end{verbatim} +If the table is very wide but not very long, you can use the +\texttt{sidewaystable} environment defined in the +\textsf{rotating} package (so use \verb|\usepackage{rotating}|). +If the table is too long to fit on a page, you should use the +\texttt{longtable} environment defined in the \textsf{longtable} +package (so use \verb|\usepackage{longtable}|). + +\subsection{Figures} +\label{sec:figures} + +Figures should go in the \texttt{figure} environment. Within this +environment, use \verb|\floatconts| to correctly position the +caption and center the image. Use \verb|\includegraphics| +for external graphics files but omit the file extension. Do not +use \verb|\epsfig| or \verb|\psfig|. If you want to scale the +image, it's better to use a fraction of the line width rather +than an explicit length. For example, see \figureref{fig:nodes}. + +\begin{figure}[htbp] +% Caption and label go in the first argument and the figure contents +% go in the second argument +\floatconts + {fig:nodes} + {\caption{Example Image}} + {\includegraphics[width=0.5\linewidth]{images/nodes}} +\end{figure} + +If your image is made up of \LaTeX\ code (for example, commands +provided by the \textsf{pgf} package) you can include it using +\cs{includeteximage} (defined by the \textsf{jmlr} class). This +can be scaled and rotated in the same way as \cs{includegraphics}. +For example, see \figureref{fig:teximage}. + +\begin{figure}[htbp] +\floatconts + {fig:teximage} + {\caption{Image Created Using \LaTeX\ Code}} + {\includeteximage[angle=45]{images/teximage}} +\end{figure} + +If the figure is too wide to fit on the page, you can use the +\texttt{sidewaysfigure} environment defined in the +\textsf{rotating} package. + +Don't use \verb|\graphicspath|. If the images are contained in +a subdirectory, specify this when you include the image, for +example \verb|\includegraphics{figures/mypic}|. + +\subsubsection{Sub-Figures} +\label{sec:subfigures} + +Sub-figures can be created using \verb|\subfigure|, which is +defined by the \textsf{jmlr} class. The optional argument allows +you to provide a subcaption. The label should be placed in the +mandatory argument of \verb|\subfigure|. You can reference the +entire figure, for example \figureref{fig:subfigex}, or you can +reference part of the figure using \verb|\figureref|, for example +\figureref{fig:circle}. Alternatively you can reference the +subfigure using \verb|\subfigref|, for example +\subfigref{fig:circle,fig:square} in \figureref{fig:subfigex}. + +\begin{figure}[htbp] +\floatconts + {fig:subfigex} + {\caption{An Example With Sub-Figures.}} + {% + \subfigure[A Circle]{\label{fig:circle}% + \includegraphics[width=0.2\linewidth]{images/circle}}% + \qquad + \subfigure[A Square]{\label{fig:square}% + \includegraphics[width=0.2\linewidth]{images/square}} + } +\end{figure} + +By default, the sub-figures are aligned on the baseline. +This can be changed using the second optional argument +of \verb|\subfigure|. This may be \texttt{t} (top), \texttt{c} +(centered) or \texttt{b} (bottom). For example, the subfigures +\subfigref{fig:circle2,fig:square2} in \figureref{fig:subfigex2} +both have \verb|[c]| as the second optional argument. + +\begin{figure}[htbp] +\floatconts + {fig:subfigex2} + {\caption{Another Example With Sub-Figures.}} + {% + \subfigure[A Small Circle][c]{\label{fig:circle2}% + \includegraphics[width=0.1\linewidth]{images/circle}}% + \qquad + \subfigure[A Square][c]{\label{fig:square2}% + \includegraphics[width=0.2\linewidth]{images/square}} + } +\end{figure} + +\subsection{Sub-Tables} +\label{sec:subtables} +There is an analogous command \verb|\subtable| for sub-tables. +It has the same syntax as \verb|\subfigure| described above. +You can reference the table using \verb|\tableref|, for example +\tableref{tab:subtabex} or you can reference part of the table, +for example \tableref{tab:ab}. Alternatively you can reference the +subtable using \verb|\subtabref|, for example +\subtabref{tab:ab,tab:cd} in \tableref{tab:subtabex}. + +\begin{table}[htbp] +\floatconts + {tab:subtabex} + {\caption{An Example With Sub-Tables}} + {% + \subtable{% + \label{tab:ab}% + \begin{tabular}{cc} + \bfseries A & \bfseries B\\ + 1 & 2 + \end{tabular} + }\qquad + \subtable{% + \label{tab:cd}% + \begin{tabular}{cc} + \bfseries C & \bfseries D\\ + 3 & 4\\ + 5 & 6 + \end{tabular} + } + } +\end{table} + +By default, the sub-tables are aligned on the top. +This can be changed using the second optional argument +of \verb|\subtable|. This may be \texttt{t} (top), \texttt{c} +(centered) or \texttt{b} (bottom). For example, the sub-tables +\subtabref{tab:ab2,tab:cd2} in \tableref{tab:subtabex2} +both have \verb|[c]| as the second optional argument. + +\begin{table}[htbp] +\floatconts + {tab:subtabex2} + {\caption{Another Example With Sub-Tables}} + {% + \subtable[][c]{% + \label{tab:ab2}% + \begin{tabular}{cc} + \bfseries A & \bfseries B\\ + 1 & 2 + \end{tabular} + }\qquad + \subtable[][c]{% + \label{tab:cd2}% + \begin{tabular}{cc} + \bfseries C & \bfseries D\\ + 3 & 4\\ + 5 & 6 + \end{tabular} + } + } +\end{table} + +\subsection{Algorithms} +\label{sec:algorithms} + +Enumerated textual algorithms can be displayed using the +\texttt{algorithm} environment. Within this environment, use +\verb|\caption| to set the caption and you can use an +\texttt{enumerate} or nested \texttt{enumerate} environments. +For example, see \algorithmref{alg:gauss}. Note that algorithms +float like figures and tables. + +\begin{algorithm}[htbp] +\caption{The Gauss-Seidel Algorithm}\label{alg:gauss} +\begin{enumerate} + \item For $k=1$ to maximum number of iterations + \begin{enumerate} + \item For $i=1$ to $n$ + \begin{enumerate} + \item $x_i^{(k)} = + \frac{b_i - \sum_{j=1}^{i-1}a_{ij}x_j^{(k)} + - \sum_{j=i+1}^{n}a_{ij}x_j^{(k-1)}}{a_{ii}}$ + \item If $\|\vec{x}^{(k)}-\vec{x}^{(k-1)} < \epsilon\|$, + where $\epsilon$ is a specified stopping criteria, stop. + \end{enumerate} + \end{enumerate} +\end{enumerate} +\end{algorithm} + +If you'd rather have the same numbering throughout the algorithm +but still want the convenient indentation of nested +\texttt{enumerate} environments, you can use the +\texttt{enumerate*} environment provided by the \textsf{jmlr} +class. For example, see \algorithmref{alg:moore}. + +\begin{algorithm} +\caption{Moore's Shortest Path}\label{alg:moore} +Given a connected graph $G$, where the length of each edge is 1: +\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} + +Pseudo code can be displayed using the \texttt{algorithm2e} +environment. This is defined by the \textsf{algorithm2e} package +(which is automatically loaded) so check the \textsf{algorithm2e} +documentation for further details.\footnote{Either \texttt{texdoc +algorithm2e} or \url{http://www.ctan.org/pkg/algorithm2e}} +For an example, see \algorithmref{alg:net}. + +\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} + +\section{Description Lists} + +The \textsf{jmlr} class also provides a description-like +environment called \texttt{altdescription}. This has an +argument that should be the widest label in the list. Compare: +\begin{description} +\item[add] A method that adds two variables. +\item[differentiate] A method that differentiates a function. +\end{description} +with +\begin{altdescription}{differentiate} +\item[add] A method that adds two variables. +\item[differentiate] A method that differentiates a function. +\end{altdescription} + +\section{Theorems, Lemmas etc} +\label{sec:theorems} + +The following theorem-like environments are predefined by +the \textsf{jmlr} class: \texttt{theorem}, \texttt{example}, +\texttt{lemma}, \texttt{proposition}, \texttt{remark}, +\texttt{corollary}, \texttt{definition}, \texttt{conjecture} +and \texttt{axiom}. You can use the \texttt{proof} environment +to display the proof if need be, as in \theoremref{thm:eigenpow}. + +\begin{theorem}[Eigenvalue Powers]\label{thm:eigenpow} +If $\lambda$ is an eigenvalue of $\vec{B}$ with eigenvector +$\vec{\xi}$, then $\lambda^n$ is an eigenvalue of $\vec{B}^n$ +with eigenvector $\vec{\xi}$. +\begin{proof} +Let $\lambda$ be an eigenvalue of $\vec{B}$ with eigenvector +$\xi$, then +\begin{align*} +\vec{B}\vec{\xi} &= \lambda\vec{\xi} +\intertext{premultiply by $\vec{B}$:} +\vec{B}\vec{B}\vec{\xi} &= \vec{B}\lambda\vec{\xi}\\ +\Rightarrow \vec{B}^2\vec{\xi} &= \lambda\vec{B}\vec{\xi}\\ +&= \lambda\lambda\vec{\xi}\qquad +\text{since }\vec{B}\vec{\xi}=\lambda\vec{\xi}\\ +&= \lambda^2\vec{\xi} +\end{align*} +Therefore true for $n=2$. Now assume true for $n=k$: +\begin{align*} +\vec{B}^k\vec{\xi} &= \lambda^k\vec{\xi} +\intertext{premultiply by $\vec{B}$:} +\vec{B}\vec{B}^k\vec{\xi} &= \vec{B}\lambda^k\vec{\xi}\\ +\Rightarrow \vec{B}^{k+1}\vec{\xi} &= \lambda^k\vec{B}\vec{\xi}\\ +&= \lambda^k\lambda\vec{\xi}\qquad +\text{since }\vec{B}\vec{\xi}=\lambda\vec{\xi}\\ +&= \lambda^{k+1}\vec{\xi} +\end{align*} +Therefore true for $n=k+1$. Therefore, by induction, true for all +$n$. +\end{proof} +\end{theorem} + +\begin{lemma}[A Sample Lemma]\label{lem:sample} +This is a lemma. +\end{lemma} + +\begin{remark}[A Sample Remark]\label{rem:sample} +This is a remark. +\end{remark} + +\begin{corollary}[A Sample Corollary]\label{cor:sample} +This is a corollary. +\end{corollary} + +\begin{definition}[A Sample Definition]\label{def:sample} +This is a definition. +\end{definition} + +\begin{conjecture}[A Sample Conjecture]\label{con:sample} +This is a conjecture. +\end{conjecture} + +\begin{axiom}[A Sample Axiom]\label{ax:sample} +This is an axiom. +\end{axiom} + +\begin{example}[An Example]\label{ex:sample} +This is an example. +\end{example} + +\section{Color vs Grayscale} +\label{sec:color} + +It's helpful if authors supply grayscale versions of their +images 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 \textsf{jmlr} class checks for +the existence of the grayscale version if it is print mode +(provided you have used \verb|\includegraphics| and haven't +specified the file extension). + +You can use \verb|\ifprint| to determine which mode you are in. +For example, in \figureref{fig:nodes}, the +\ifprint{dark gray}{purple} ellipse represents an input and the +\ifprint{light gray}{yellow} ellipse represents an output. +Another example: {\ifprint{\bfseries}{\color{red}}important text!} + +You can use the class option \texttt{gray} to see how the +document will appear in gray scale mode. \textcolor{blue}{Colored +text} will automatically be converted to gray scale. + +The \textsf{jmlr} class loads the \textsf{xcolor} +package, so you can also define your own colors. For example: +\ifprint + {\definecolor{myred}{gray}{0.5}}% + {\definecolor{myred}{rgb}{0.5,0,0}}% +\textcolor{myred}{XYZ}. + +The \textsf{xcolor} class is loaded with the \texttt{x11names} +option, so you can use any of the x11 predefined colors (listed +in the \textsf{xcolor} documentation\footnote{either +\texttt{texdoc xcolor} or \url{http://www.ctan.org/pkg/xcolor}}). + +\section{Citations and Bibliography} +\label{sec:cite} + +The \textsf{jmlr} class automatically loads \textsf{natbib}. +This sample file has the citations defined in the accompanying +BibTeX file \texttt{jmlr-sample.bib}. For a parenthetical +citation use \verb|\citep|. For example +\citep{guyon-elisseeff-03}. For a textual citation use +\verb|\citet|. For example \citet{guyon2007causalreport}. +Both commands may take a comma-separated list, for example +\citet{guyon-elisseeff-03,guyon2007causalreport}. + +These commands have optional arguments and have a starred +version. See the \textsf{natbib} documentation for further +details.\footnote{Either \texttt{texdoc natbib} or +\url{http://www.ctan.org/pkg/natbib}} + +The bibliography is displayed using \verb|\bibliography|. + +\acks{Acknowledgements go here.} + +\bibliography{jmlr-sample} + +\appendix + +\section{First Appendix}\label{apd:first} + +This is the first appendix. + +\section{Second Appendix}\label{apd:second} + +This is the second appendix. + +\end{document} diff --git a/Master/texmf-dist/scripts/jmlr/makejmlrbook b/Master/texmf-dist/scripts/jmlr/makejmlrbook new file mode 100755 index 00000000000..77669bbff3a --- /dev/null +++ b/Master/texmf-dist/scripts/jmlr/makejmlrbook @@ -0,0 +1,840 @@ +#!/usr/bin/env perl +# File : makejmlrbook +# Author : Nicola L C Talbot +# Date : 22nd March 2010 +# Last Modified : 24nd March 2010 +# Version : 0.1 +# Description : Given the name of a document using the +# jmlrbook class file, this script runs +# pdflatex (and possibly bibtex) on the +# imported articles and the main document. +# http://theoval.cmp.uea.ac.uk/~nlct/ +# +# This file is distributed as part of the jmlr LaTeX bundle. +# +# Copyright (c) 2006 Nicola L.C. Talbot +# This work may be distributed and/or modified under the +# conditions of the LaTeX Project Public License, either version 1.3 +# of this license or any later version. +# The latest version of this license is in +# http://www.latex-project.org/lppl.txt +# and version 1.3 or later is part of all distributions of LaTeX +# version 2005/12/01 or later. +# +# This work has the LPPL maintenance status `maintained'. +# +# The Current Maintainer of this work is Nicola Talbot. + +use Getopt::Long; +use File::Basename; +use File::Copy; +use Cwd; +use strict; + +my $version = "0.1 (2010-03-24)"; + +my $eol = "\n"; +my $dd = '/'; + +if ($^O eq 'MSWin32') +{ + $eol = "\r\n"; + $dd = "\\"; +} + +my $showversion = 0; +my $showhelp = 0; +my $quiet = 0; +my $batchtex = 0; +my $online = 1; +my $print = 1; +my $html = 1; +my $latexapp = 'pdflatex'; +my $bibtexapp = 'bibtex'; +my $latexopts = ''; +my $bibtexopts = ''; +my $format = 'pdf'; +my $logourl = ''; + +unless(&GetOptions( + "online!" => \$online, + "print!" => \$print, + "html!" => \$html, + "logourl=s" => \$logourl, + "format=s" => \$format, + "latexapp=s" => \$latexapp, + "bibtexapp=s" => \$bibtexapp, + "latexopts=s" => \$latexopts, + "bibtexopts=s" => \$bibtexopts, + "quieter!" => \$quiet, + "batchtex!" => \$batchtex, + "version" => \$showversion, + "help" => \$showhelp)) +{ + die "$!\n", "Use --help for help\n"; +} + +my $appname = basename($0); + +if ($showhelp) +{ + die "$appname version $version Copyright (c) 2010 Nicola L C Talbot\n", + "Distributed under the LaTeX Project Public License.\n\n", + "Syntax: $appname [options] \n\n", + " should be the name of the master document for a LaTeX \n", + "file that uses the jmlrbook class. The .tex extension may be\n", + "omitted.\n\n", + "Basic options:\n", + "--online\t\tGenerate the color on-line version (default)\n", + "--noonline\t\tDon't generate the color on-line version\n", + "--print\t\t\tGenerate the grayscale print version (default)\n", + "--noprint\t\tDon't generate the grayscale print version\n", + "--html\t\t\tGenerate the HTML version (default)\n", + "--nohtml\t\tDon't generate the HTML version\n", + "--logourl \tMake the logo on the HTML index page link to \n", + "--batchtex\t\tRun TeX in batch mode\n", + "--nobatchtex\t\tDon't run TeX in batch mode\n", + "--quieter\t\tReduce messages to stdout and run TeX in batch mode\n", + "--noquieter\t\tDon't reduce messages to stdout\n", + "--version\t\tDisplay version number and exit\n", + "--help\t\t\tDisplay help message and exit\n", + "\nAdvanced options:\n", + "--latexapp \tApplication used to call LaTeX\n", + "\t\t\t(Defaults to 'pdflatex')\n", + "--format \tOutput format (default: 'pdf')\n", + "--bibtexapp \tApplication used to call BibTeX\n", + "\t\t\t(Defaults to 'bibtex')\n", + "--latexopt \tOptions to pass to LaTeX\n", + "--bibtexopt \tOptions to pass to BibTeX\n"; +} + +if ($showversion) +{ + die "$appname version $version copyright (c) 2010 Nicola L C Talbot\n", + "Distributed under the LaTeX Project Public License.\n"; +} + +unless ($#ARGV == 0) +{ + die "$appname: missing filename\n", + "use --help for help\n"; +} + +if ($quiet or $batchtex) +{ + $latexopts = '-interaction batchmode '.$latexopts; +} + +if ($quiet) +{ + $bibtexopts = '-terse '.$bibtexopts; +} + +my ($main_name, $main_path, $main_suffix) + = fileparse($ARGV[0], '\.(tex|ltx)'); + +$main_suffix = '.tex' unless $main_suffix; + +my $org_dir = cwd(); + +chdir $main_path + or die "Can't change directory to '$main_path': $!\n"; + +my $mainaux = "$main_name.aux"; + +# If the aux file doesn't exist or the aux file is older than +# the main file, run latex + +if (not -e $mainaux or (-M $mainaux > -M "$main_name$main_suffix")) +{ + &latex($main_name); +} + +# Parse aux file + +open AUX, "$mainaux" or die "Can't open '$mainaux' $!\n"; + +&message("Reading '$mainaux'...\n"); + +my $main_bibdata = 0; +my @imports = (); +my %pagerefs = (); + +while () +{ + if (/\\bibdata\b/) + { + $main_bibdata = 1; + } + elsif (/\\\@jmlr\@import{(.*)}{(.*)}{(.*)}/) + { + my $import = + { + label => $1, + path => $2, + name => $3 + }; + + $import->{'name'} =~s/\.(tex|ltx)\Z//; + + push @imports, $import; + } + elsif (/\\contentsline\s*{chapterauthor}{(.*)}{}{}}\s*$/ + and $#imports > -1) + { + $imports[$#imports]->{'author'} = $1; + } + elsif (/^\\newlabel\s*{([^}]*)jmlrstart}{{([^}]*)}{([^}]*)}/) + { + my $label = $1; + + $pagerefs{$label}->{'start'} = $3; + } + elsif (/^\\newlabel\s*{([^}]*)jmlrend}{{([^}]*)}{([^}]*)}/) + { + my $label = $1; + + $pagerefs{$label}->{'end'} = $3; + } +} + +close AUX; + +# Replace any instances of \articlepagesref + +foreach my $import (@imports) +{ + my $label = $import->{'label'}; + + my $pages = $pagerefs{$label}->{'start'}.'--' + . $pagerefs{$label}->{'end'}; + + $import->{'author'}=~s/\\articlepagesref\s*{$label}/$pages/; +} + +if ($html) +{ + # If the html files need to be created, make the directory + # html-src, if it doesn't already exist + + unless (-d 'html-src') + { + mkdir 'html-src' + or die "Can't create directory 'html-src': $!\n"; + } + + unless (-d 'html') + { + mkdir 'html' + or die "Can't create directory 'html': $!\n"; + } +} + +# Iterate through each imported article + +foreach my $import (@imports) +{ + my $importbase = &fname($import->{'path'}, $import->{'name'}); + + # Check the aux file of this article + + my $aux = "$importbase.aux"; + + # The aux file should exist because running LaTeX on the + # main file will create the aux file. + + open AUX, $aux or die "Can't open '$aux' $!\n"; + + &message("Reading '$aux'...\n"); + + my $bibdata = 0; + + while () + { + if (/\\bibdata\b/) + { + $bibdata = 1; + } + } + + close AUX; + + # Do we need a bibtex run? + + if ($bibdata) + { + my $log = "$importbase.log"; + + # If the log file doesn't exist, run LaTeX + + unless (-e $log) + { + chdir $import->{'path'} + or die "Can't change directory to '$import->{path}': $!\n"; + + &latex($import->{'name'}); + + chdir "$org_dir/$main_path" or + die "Can't change directory to '$org_dir/$main_path': $!\n"; + } + + open LOGFD, $log or die "Can't open '$log' $!\n"; + + &message("Reading '$log'...\n"); + + my $runbibtex = 0; + + while () + { + if (/There were undefined citations\./) + { + # Run bibtex and latex + $runbibtex = 1; + + last; + } + } + + close LOGFD; + + if ($runbibtex) + { + chdir $import->{'path'} + or die "Can't change directory to '$import->{path}': $!\n"; + + &bibtex($import->{'name'}); + &latex($import->{'name'}); + + chdir "$org_dir/$main_path" or + die "Can't change directory to '$org_dir/$main_path': $!\n"; + } + } + + if ($html) + { + # If html is required, we also need pdf versions of the + # individual articles. + + # Does the pdf file exist? + + unless (-e "$importbase.$format") + { + chdir $import->{'path'} + or die "Can't change directory to '$import->{path}': $!\n"; + + &latex($import->{'name'}); + + chdir "$org_dir/$main_path" or + die "Can't change directory to '$org_dir/$main_path': $!\n"; + } + + # Do we need a rerun? + + if (&needs_rerun($importbase)) + { + chdir $import->{'path'} + or die "Can't change directory to '$import->{path}': $!\n"; + + &latex($import->{'name'}); + + chdir "$org_dir/$main_path" or + die "Can't change directory to '$org_dir/$main_path': $!\n"; + } + + my $importdir = $import->{'path'}; + + if ($importdir = '.') + { + $importdir = $import->{'name'}; + } + + # Check the appropriate subdirectory is in html-src + + my $name = &fname('html-src', $importdir); + + unless (-d $name) + { + mkdir $name + or die "Can't create directory '$name': $!\n"; + } + + my $text = ''; + + # Read the LaTeX file and store everything up to + # the end of the abstract + + my $tex = "$importbase.tex"; + + open TEX, $tex or die "Can't open '$tex': $!\n"; + + while () + { + # This doesn't handle complicated cases, such as + # the author using \abstract ... \endabstract + # or commenting out the abstract with conditionals + if (/^([^%]*)\\end{abstract}/) + { + $text .= $&; + last; + } + + $text .= $_; + } + + close TEX; + + # Add the 'html' class option: + unless ($text=~ + s/^([^%]*)\\documentclass\s*\[(.*)\]/$1\\documentclass[$2,html]/m) + { + $text=~s/^([^%]*)\\documentclass\s*/$1\\documentclass[html]/m; + } + + my $begindoc = ''; + + # Set the authors + if (defined($import->{'author'})) + { + my $author = $import->{'author'}; + + $author=~s/^([^;]*);/\\textbf{\\emph{$1};}/; + + $begindoc .= "\\jmlrauthors{$author}"; + } + + # Add content div + $text=~s/^([^%]*)\\begin{document}/$&$begindoc\\HCode{
}/m; + + # Create file containing the abstract + + my $absfile = "html-src/$importdir/".$import->{'name'}.'.tex'; + + open ABSFD,">$absfile" + or die "Can't create '$absfile': $!\n"; + + print ABSFD "\\batchmode", $eol if ($batchtex or $quiet); + + my $texpath = $import->{path}; + + $texpath=~s/\\/\//g if ($dd eq '\\'); + + print ABSFD + "\\makeatletter",$eol, + "\\def\\input\@path{{../../$texpath/}}$eol", + "\\makeatother",$eol, + $text, $eol, + "\\HCode{
}", $eol, + "\\end{document}",$eol; + + close ABSFD; + + # Create the cfg file + + my $cfg = "html-src/$importdir/jmlr.cfg"; + + open CFG, ">$cfg" or die "Can't create '$cfg': $!\n"; + +print CFG <{'name'}."\" \"jmlr\""); + + if ($code) + { + die "htlatex failed with exit code $code\n"; + } + + # Go back to main directory + chdir "$org_dir/$main_path" + or die "Can't change directory to '$org_dir/$main_path': $!\n"; + + # Copy the html file to the html directory, but rename + # the css file to jmlr.css + + my $infile = "html-src/$importdir/".$import->{'name'}.".html"; + + open INFD, $infile or die "Can't open '$infile': $!\n"; + + my $outfile = "html/".$import->{'name'}.".html"; + + open OUTFD, ">$outfile" or die "Can't open '$outfile': $!\n"; + + while () + { + s/href="$import->{name}\.css"/href="jmlr.css"/; + + print OUTFD; + } + + close OUTFD; + + close INFD; + + # Copy css file + + copy("html-src/$importdir/$import->{name}.css", + "html/jmlr.css") + or die "Can't copy 'html-src/$importdir/$import->{name}.css'", + " to 'html/jmlr.css': $!\n"; + + # Copy pdf file + + copy("$importbase.$format", + "html/$import->{name}.$format") + or die "Can't copy '$importdir/$import->{name}.$format'", + " to 'html/$import->{name}.$format': $!\n"; + } +} + +# do we need to run bibtex on the main document? + +if ($main_bibdata) +{ + &bibtex($main_name); +} + +if ($online) +{ + &latexonline($main_name); + + # do we need a rerun? + + if (&needs_rerun($main_name)) + { + &message("Rerun required\n"); + &latexonline($main_name); + + # check again + + if (&needs_rerun($main_name)) + { + &message("Rerun required\n"); + &latexonline($main_name); + } + } +} + +if ($print) +{ + &latexprint($main_name); + + # do we need a rerun? + + if (&needs_rerun($main_name)) + { + &message("Rerun required\n"); + &latexprint($main_name); + + # check again + + if (&needs_rerun($main_name)) + { + &message("Rerun required\n"); + &latexprint($main_name); + } + } +} + +if ($html) +{ + # Make the index file + + my $indexfile = &fname('html-src', "index"); + + my $preamble = ''; + + open OUTFD, ">$indexfile.tex" + or die "Can't open '$indexfile.tex': $!\n"; + + open INFD, "$main_name.tex" + or die "Can't open '$main_name.tex': $!\n"; + + print OUTFD "\\batchmode", $eol if ($batchtex or $quiet); + + print OUTFD + "\\makeatletter",$eol, + "\\def\\input\@path{{../}}$eol", + "\\makeatother",$eol, + "\\def\\jmlrgrayscale{0}",$eol; + + while () + { + unless + (s/^([^%]*)\\documentclass\[([^\]]*)\]/$1\\documentclass[$2,html]/) + { + s/^([^%]*)\\documentclass/$&\[html\]/; + } + + s/^([^%]*)\\begin{document}/$&\\HCode{
}/; + + if (/^([^%]*)\\maketitle/) + { + $preamble .= join('', $1, "\\maketitle", $eol); + last; + } + + $preamble .= $_; + } + + close INFD; + + # Find the book logo + if ($preamble=~/\\logo\s*{(%\s*\n)?\\includegraphics\s*(\[[^\]]*\])?{([^}]*)}}/m) + { + my $texpath = $3; + my $orgtexpath = $texpath; + $texpath=~s/\//\\/g if ($dd eq "\\"); + + my $ext = ''; + + if (-e $texpath) + { + copy($texpath, 'html') + or die "Can't copy '$texpath' to 'html': $!\n"; + copy($texpath, 'html-src') + or die "Can't copy '$texpath' to 'html-src': $!\n"; + } + elsif (-e "$texpath.png") + { + copy("$texpath.png", 'html') + or die "Can't copy '$texpath.png' to 'html': $!\n"; + copy("$texpath.png", 'html-src') + or die "Can't copy '$texpath.png' to 'html-src': $!\n"; + + $ext = '.png'; + } + elsif (-e "$texpath.jpg") + { + copy("$texpath.jpg", 'html') + or die "Can't copy '$texpath.jpg' to 'html': $!\n"; + copy("$texpath.jpg", 'html-src') + or die "Can't copy '$texpath.jpg' to 'html-src': $!\n"; + + $ext = '.jpg'; + } + elsif (-e "$texpath.gif") + { + copy("$texpath.gif", 'html') + or die "Can't copy '$texpath.gif' to 'html': $!\n"; + copy("$texpath.gif", 'html-src') + or die "Can't copy '$texpath.gif' to 'html-src': $!\n"; + + $ext = '.gif'; + } + + my $img = basename($texpath); + + if ($logourl) + { + $preamble=~s/\\includegraphics(\[[^\]]*\])?{$orgtexpath}/\\href{$logourl}{\\includegraphics${1}{$img$ext}}/mg; + } + else + { + $preamble=~s/\\includegraphics(\[[^\]]*\])?{$orgtexpath}/\\includegraphics${1}{$img$ext}/mg; + } + } + + print OUTFD $preamble, $eol; + + # Parse TOC + + my $toc = "$main_name.toc"; + + open TOC, $toc or die "Can't open '$toc': $!\n"; + + my $idx = 0; + + while () + { + if (/^\\tocpart\s*{(.*)}\s*$/) + { + print OUTFD "\\begin{center}\\bfseries $1\\end{center}$eol"; + } + elsif (/\\contentsline\s*{papertitle}{(.*)}{[^{}]*}{[^{}]*}\s*$/) + { + print OUTFD "\\par\\noindent $1$eol"; + } + elsif (/\\contentsline\s*{chapterauthor}{(.*)}{[^{}]*}{[^{}]*}\s*$/) + { + my $details = $1; + $details=~s/([^;]*);/\\textbf{\\emph{$1};}/; + + my $label = $imports[$idx]->{'label'}; + my $pages = $pagerefs{$label}->{'start'}.'--' + . $pagerefs{$label}->{'end'}; + + $details=~s/\\articlepagesref\s*{$label}/$pages/; + + print OUTFD "\\par $details$eol"; + + my $name = $imports[$idx]->{'name'}; + + print OUTFD "\\par [\\href{$name.html}{abs}] [\\href{$name.pdf}{pdf}]$eol$eol"; + + $idx++; + } + } + + close TOC; + + print OUTFD "\\HCode{
}\\end{document}$eol"; + + close OUTFD; + + # Go into html-src directory and run htlatex + + chdir('html-src') + or die "Can't change directory to 'html': $!\n"; + + my $code = system('htlatex index'); + + if ($code) + { + die "htlatex failed with error code $code\n"; + } + + chdir('..') + or die "Can't change directory to '..': $!\n"; + + # Copy to html directory + + my $inname = &fname('html-src', 'index.html'); + my $outname = &fname('html', 'index.html'); + + open INFD, $inname or die "Can't open '$inname': $!\n"; + + open OUTFD, ">$outname" or die "Can't open '$outname': $!\n"; + + while () + { + s/href="index.css"/href="jmlr.css"/; + + print OUTFD; + } + + close OUTFD; + + close INFD; +} + +# Return to original directory +chdir $org_dir; + +# Subroutines + +sub message{ print @_ unless ($quiet) } + +sub latex{ + my $file = shift; + + my $code; + + $code = system(join(' ', $latexapp, $latexopts, "\"$file\"")); + + if ($code) + { + die "**LaTeX run failed with exit code $code.**\n", + "Check '$file.log' for details\n"; + } +} + +sub latexonline{ + my $file = shift; + + my $code; + + $code = system(join(' ', $latexapp, $latexopts, + "\"\\def\\jmlrgrayscale{0}\\input{$file}\"")); + + if ($code) + { + die "**LaTeX run failed with exit code $code.**\n", + "Check '$file.log' for details\n"; + } + + &message("copying '$file.$format' to '$file-online.$format'\n"); + + copy("$file.$format", "$file-online.$format") + or die "Can't copy '$file.$format' to '$file-online.$format': $!\n"; +} + +sub latexprint{ + my $file = shift; + + my $code; + + $code = system(join(' ', $latexapp, $latexopts, + "\"\\def\\jmlrgrayscale{1}\\input{$file}\"")); + + if ($code) + { + die "**LaTeX run failed with exit code $code.**\n", + "Check '$file.log' for details\n"; + } + + &message("copying '$file.$format' to '$file-print.$format'\n"); + + copy("$file.$format", "$file-print.$format") + or die "Can't copy '$file.$format' to '$file-print.$format': $!\n"; +} + +sub bibtex{ + my $file = shift; + + my $code; + + $code = system(join(' ', $bibtexapp, $bibtexopts, "\"$file\"")); + + if ($code) + { + die "**BibTeX run failed with exit code $code.**\n", + "Check '$file.blg' for details\n"; + } +} + +sub needs_rerun{ + my $file = shift; + my $rerun = 0; + + # Scan log file for rerun message + + my $log = "$file.log"; + + # If there's no log file a run is needed + open LOGFD, $log or return 1; + + while () + { + if (/Rerun to get cross-references right\./) + { + $rerun = 1; + last; + } + } + + close LOGFD; + + return $rerun; +} + +sub fname{ join($dd, @_) } + +1; diff --git a/Master/texmf-dist/scripts/jmlr/makejmlrbook.bat b/Master/texmf-dist/scripts/jmlr/makejmlrbook.bat new file mode 100755 index 00000000000..e9a9fe3bce6 --- /dev/null +++ b/Master/texmf-dist/scripts/jmlr/makejmlrbook.bat @@ -0,0 +1,3 @@ +@rem = '-*- Perl -*- +@echo off +perl -S "%~dp0makejmlrbook" %* diff --git a/Master/texmf-dist/source/latex/jmlr/jmlr.dtx b/Master/texmf-dist/source/latex/jmlr/jmlr.dtx new file mode 100644 index 00000000000..bf62a97e559 --- /dev/null +++ b/Master/texmf-dist/source/latex/jmlr/jmlr.dtx @@ -0,0 +1,4698 @@ +%\iffalse +% jmlr.dtx generated using makedtx version 0.94b (c) Nicola Talbot +% Command line args: +% -src "jmlr.cls\Z=>jmlr.cls" +% -src "jmlrbook.cls\Z=>jmlrbook.cls" +% -doc "jmlr-manual.tex" +% -author "Nicola Talbot" +% -codetitle "jmlr.cls Code" +% jmlr +% Created on 2010/6/17 20:52 +%\fi +%\iffalse +%<*package> +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +% +%\fi +% \iffalse +% Doc-Source file to use with LaTeX2e +% Copyright (C) 2010 Nicola Talbot, all rights reserved. +% \fi +% \iffalse +%<*driver> +\documentclass{nlctdoc} + +\usepackage{amsmath} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{ifthen} +\usepackage[colorlinks, + bookmarks, + hyperindex=false, + pdfauthor={Nicola L.C. Talbot}, + pdftitle={jmlr: LaTeX2e Classes for the Journal of Machine Learning Research}, + pdfkeywords={LaTeX,jmlr}]{hyperref} + +\CheckSum{3333} +\OnlyDescription + +\begin{document} +\DocInput{jmlr.dtx} +\end{document} +% +%\fi +%\MakeShortVerb{"} +%\DeleteShortVerb{\|} +% +% \title{\LaTeXe\ Classes for the Journal of Machine +%Learning Research} +% \author{Nicola L. C. Talbot\\[10pt] +%\url{http://theoval.cmp.uea.ac.uk/~nlct/}} +% +% \date{2010-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 +%} +% +% +% +%\section{jmlr.cls Code} +%\iffalse +% \begin{macrocode} +%<*jmlr.cls> +% \end{macrocode} +%\fi +% This class is based on the \sty{jmlr2e} package but was updated to use +% \cls{scrartcl} instead of \cls{article} and was modified to make sure +% it works with \clsfmt{jmlrbook} which uses both \cls{combine} and +% \sty{hyperref}. +% +% Declare class and required TeX format: +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{jmlr}[2010/06/17 v1.06 (NLCT) Journal of Machine Learning Research] +% \end{macrocode} +% The following conditionals are provided to make this class play nicely +% with combine and aren't required for articles. +% \begin{macrocode} +\newif\if@openright +\newif\if@mainmatter \@mainmattertrue +% \end{macrocode} +%\begin{macro}{\ifgrayscale} +% Determine whether to select grayscale alternatives +% \begin{macrocode} +\@ifundefined{ifgrayscale}{ + \newif\ifgrayscale + \grayscalefalse +}{} +\DeclareOption{color}{\grayscalefalse + \PassOptionsToPackage{color}{xcolor}} +\DeclareOption{gray}{\grayscaletrue + \PassOptionsToPackage{gray}{xcolor}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\iftablecaptiontop} +% Determine if the table captions should go at the top. +%\changes{1.07}{2010-06-17}{new} +% \begin{macrocode} +\newif\iftablecaptiontop +\tablecaptiontoptrue +\DeclareOption{tablecaptiontop}{\tablecaptiontoptrue} +\DeclareOption{tablecaptionbottom}{\tablecaptionbottomtrue} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\ifjmlrhtml} +% Determine if we are using \app{TeX4ht}: +% \begin{macrocode} +\newif\ifjmlrhtml +\jmlrhtmlfalse +\DeclareOption{html}{\jmlrhtmltrue} +\DeclareOption{nohtml}{\jmlrhtmlfalse} +% \end{macrocode} +%\end{macro} +% Normal font size (default is 11pt) +% \begin{macrocode} +\def\pt@size{11pt} +\DeclareOption{10pt}{\renewcommand{\pt@size}{10}% + \PassOptionsToClass{\CurrentOption}{article}} +\DeclareOption{11pt}{\renewcommand{\pt@size}{11}% + \PassOptionsToClass{\CurrentOption}{article}} +\DeclareOption{12pt}{\renewcommand{\pt@size}{12}% + \PassOptionsToClass{\CurrentOption}{article}} +% \end{macrocode} +%\begin{macro}{\@jmlrproceedings} +% The name of the proceedings. +% \begin{macrocode} +\newcommand*{\@jmlrproceedings}{Journal of Machine Learning Research} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@jmlrabbrvproceedings} +% The abbreviated name of the proceedings. +% \begin{macrocode} +\newcommand*{\@jmlrabbrvproceedings}{JMLR} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\jmlrproceedings} +% Sets the title and abbreviation of the proceedings +% \begin{macrocode} +\newcommand*{\jmlrproceedings}[2]{% + \renewcommand*{\@jmlrabbrvproceedings}{#1}% + \renewcommand*{\@jmlrproceedings}{#2}% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\nowcp} +% \begin{macrocode} +\newcommand*{\jmlrnowcp}{% + \jmlrproceedings{JMLR}{Journal of Machine Learning Research}% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\wcp} +% \begin{macrocode} +\newcommand*{\jmlrwcp}{% + \jmlrproceedings{JMLR WC\&P}{JMLR: Workshop and Conference Proceedings}% +} +% \end{macrocode} +%\end{macro} +% This isn't an article for a workshop: +% \begin{macrocode} +\DeclareOption{nowcp}{\jmlrnowcp} +% \end{macrocode} +% This is an article for a workshop +% \begin{macrocode} +\DeclareOption{wcp}{\jmlrwcp} +% \end{macrocode} +% The default paper size is letter, but provide $7 \times 10$in +% alternative: +% \begin{macrocode} +\newif\ifviiXx +\viiXxfalse +\DeclareOption{7x10}{\viiXxtrue} +\DeclareOption{letterpaper}{\PassOptionsToPackage{letterpaper}{typearea}} +% \end{macrocode} +% Pass all remaining options to \cls{scrartcl} class: +% \begin{macrocode} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} +% \end{macrocode} +% Execute required options: +% \begin{macrocode} +\ExecuteOptions{twoside,letterpaper} +% \end{macrocode} +% Process options: +% \begin{macrocode} +\ProcessOptions +% \end{macrocode} +% Load \cls{scrartcl} class +% \begin{macrocode} +\LoadClass[pointednumbers,normalheadings]{scrartcl} +% \end{macrocode} +% Can't use \sty{geometry} package because it doesn't play nicely +% with the \cls{combine} class. +% \begin{macrocode} +\ifviiXx + \setlength{\paperwidth}{7in} + \setlength{\paperheight}{10in} + \setlength{\textwidth}{5.25in} + \setlength{\textheight}{8.2in} + \setlength{\topmargin}{0.4in} + \setlength{\headheight}{0.2in} + \setlength{\headsep}{0.2in} + \setlength{\hoffset}{-1in} + \setlength{\voffset}{-1in} + \setlength{\evensidemargin}{0.75in} + \setlength{\oddsidemargin}{1.0in} +\else + \setlength{\oddsidemargin}{0.25in} + \setlength{\evensidemargin}{0.25in} + \setlength{\marginparwidth}{0.07 true in} + \setlength{\topmargin}{-0.5in} + \addtolength{\headsep}{0.25in} + \setlength{\textheight}{8.5 true in} + \setlength{\textwidth}{6.0 true in} +\fi +% \end{macrocode} +% Required packages: +% \begin{macrocode} +\RequirePackage{amsmath} +\RequirePackage{amssymb} +\RequirePackage{natbib} +\RequirePackage{graphicx} +\RequirePackage{url} +\RequirePackage[x11names]{xcolor} +\RequirePackage[algo2e,ruled]{algorithm2e} +% \end{macrocode} +% Float parameters: the following settings were copied from jmlr2e.sty +% \begin{macrocode} +\renewcommand{\topfraction}{0.95} % let figure take up nearly whole page +\renewcommand{\textfraction}{0.05} % let figure take up nearly whole page +% \end{macrocode} +% widows/orphans +% \begin{macrocode} +\widowpenalty=10000\relax +\clubpenalty=10000\relax +% \end{macrocode} +% Set two-sided format +% \begin{macrocode} +\@twosidetrue +% \end{macrocode} +% Put marginal notes on the outside of the page +% \begin{macrocode} +\@mparswitchtrue +% \end{macrocode} +% \begin{macrocode} +\def\ds@draft{\overfullrule 5pt} +% \end{macrocode} +% Use the plainnat bibliography style and set up the required +% punctuation. +% \begin{macrocode} +\bibliographystyle{plainnat} +\bibpunct{(}{)}{;}{a}{,}{,} +% \end{macrocode} +%\subsection{Sections} +% \begin{macrocode} +\addtokomafont{section}{\rmfamily\large} +\addtokomafont{subsection}{\rmfamily\normalsize} +\addtokomafont{subsubsection}{\rmfamily\mdseries\normalsize\scshape} +\addtokomafont{paragraph}{\rmfamily\normalsize} +\addtokomafont{subparagraph}{\rmfamily\itshape\normalsize} +% \end{macrocode} +% Insert possible prefix to section number. +% \begin{macrocode} +\renewcommand*{\othersectionlevelsformat}[1]{% + \csname pre#1num\endcsname\csname the#1\endcsname\autodot\enskip} +% \end{macrocode} +%\subsection{Footnotes} +% This code has been taken from jmlr2e.sty +% \begin{macrocode} +\long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize + \advance\@tempdima-15pt\parshape \@ne 15pt \@tempdima}\par + \parindent 2em\noindent \hbox to \z@{\hss{\@thefnmark}. \hfil}#1} +% \end{macrocode} +%\subsection{Article abstract} +% This code has been taken from jmlr2e.sty but with \cs{bf} updated +% to \cs{bfseries} +%\begin{environment}{abstract} +% \begin{macrocode} +\ifjmlrhtml + \renewenvironment{abstract}{\HCode{

}Abstract\HCode{

}}{}% +\else + \renewenvironment{abstract} + {\centerline{\large\bfseries Abstract}\vspace{0.7ex}% + \bgroup + \leftskip 20pt\rightskip 20pt\small\noindent\ignorespaces}% + {\par\egroup\vskip 0.25ex} +\fi +% \end{macrocode} +%\end{environment} +%\subsection{Keywords} +% This code has been taken from jmlr2e.sty but with \cs{bf} updated +% to \cs{bfseries}. +%\begin{environment}{keywords} +% \begin{macrocode} +\newenvironment{keywords} +{\bgroup\leftskip 20pt\rightskip 20pt \small\noindent{\bfseries +Keywords:} \ignorespaces}% +{\par\egroup\vskip 0.25ex} +% \end{macrocode} +%\end{environment} +%\subsection{Title Page Information} +% This code has been taken from jmlr2e.sty. +% +% Title stuff, borrowed in part from aaai92.sty +% \begin{macrocode} +\newlength\aftertitskip \newlength\beforetitskip +\newlength\interauthorskip \newlength\aftermaketitskip +% \end{macrocode} +%% Changeable parameters. +% \begin{macrocode} +\setlength\aftertitskip{0.1in plus 0.2in minus 0.2in} +\setlength\beforetitskip{0.05in plus 0.08in minus 0.08in} +\setlength\interauthorskip{0.08in plus 0.1in minus 0.1in} +\setlength\aftermaketitskip{0.3in plus 0.1in minus 0.1in} +% \end{macrocode} +% +%\begin{macro}{\title} +% Override definition of \cs{title} to allow for an optional +% argument (short title) +% \begin{macrocode} +\renewcommand*{\title}[2][\@title]{% + \def\@shorttitle{#1}% + \def\@title{#2}% + \jmlrtitlehook +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\jmlrtitlehook} +% \begin{macrocode} +\newcommand*{\jmlrtitlehook}{} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\author} +% Override definition of \cs{author} to allow for an optional +% argument (list of authors for page heading) +% \begin{macrocode} +\renewcommand*{\author}[2][]{% + \def\@author{#2}% + \def\@sauthor{#1}% + \ifx\@sauthor\@empty + \else + \let\@shortauthor\@sauthor + \fi + \jmlrauthorhook +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\jmlrauthorhook} +% \begin{macrocode} +\newcommand*{\jmlrauthorhook}{} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@shortauthor} +% \begin{macrocode} +\newcommand*{\@shortauthor}{} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@firstauthor} +% \begin{macrocode} +\newcommand*{\@firstauthor}{} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@firstsurname} +% \begin{macrocode} +\newcommand*{\@firstsurname}{} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\jmlrlength} +% \begin{macrocode} +\newlength\jmlrlength +% \end{macrocode} +%\end{macro} +% +% overall definition of \cs{maketitle}, \cs{@maketitle} does the real work +%\begin{macro}{\jmlrmaketitle} +% \begin{macrocode} +\def\jmlrmaketitle{% + \jmlrpremaketitlehook + \def\@jmlr@authors@sep{, }% + \par + \begingroup + \def\thefootnote{\fnsymbol{footnote}}% + \def\@makefnmark{\hbox to 0pt{$^{\@thefnmark}$\hss}}% + \@jmlrmaketitle \@thanks + \endgroup +\label{jmlrstart}% +\ifx\@sauthor\@empty + \settowidth{\jmlrlength}{\@evenhead}% + \ifdim\jmlrlength>\textwidth + \def\@shortauthor{\@firstsurname\space et al.}% + \fi +\fi +\settowidth{\jmlrlength}{\@titlefoot}% +\ifdim\jmlrlength>\textwidth + \def\@jmlrauthors{\@firstauthor\space \emph{et al}}% +\fi +\jmlrmaketitlehook +\thispagestyle{jmlrtps}% +\setcounter{footnote}{0}% +\let\maketitle\relax \let\@maketitle\relax +\gdef\@thanks{}\gdef\@author{}\let\thanks\relax +\def\@jmlr@authors@sep{ \& }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\jmlrmaketitlehook} +% \begin{macrocode} +\newcommand*{\jmlrmaketitlehook}{} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\jmlrpremaketitlehook} +% \begin{macrocode} +\newcommand*{\jmlrpremaketitlehook}{} +% \end{macrocode} +%\end{macro} +% +% Provide a different title layout for HTML +%\begin{macro}{\jmlrhtmlmaketitle} +% \begin{macrocode} +\newcommand{\jmlrhtmlmaketitle}{% + \ifx\@jmlrauthors\@empty + \sbox\jmlrbox{\let\addr\relax\@author}% + \fi + \noindent\HCode{

}\@title\HCode{

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

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

}% + \newline + \textbf{Editors: \@author} + \HCode{
}% + \@logo + \HCode{
}% + \let\maintitle\@title + } +\else + \renewcommand{\c@lamaketitle}{% + \pagenumbering{alph}% + \pagestyle{empty}% + \begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax + \let\footnote\thanks + \titlebody + \par + \@thanks + \end{titlepage}% + \setcounter{footnote}{0}% + \let\maintitle\@title + \c@lmtitlempty + } +\fi +% \end{macrocode} +%\end{macro} +%\begin{macro}{\maintitlefont} +% \begin{macrocode} +\renewcommand{\maintitlefont}{% + \null\vskip15pt\relax\par + \flushleft\Huge\bfseries\noindent} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\postmaintitle} +% \begin{macrocode} +\renewcommand{\postmaintitle}{% + \par\relax +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\mainvolumefont} +% \begin{macrocode} +\newcommand{\mainvolumefont}{% + \flushleft\noindent\LARGE\bfseries Volume +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\postmainvolume} +% \begin{macrocode} +\newcommand{\postmainvolume}{% + \IfTitleElement{subtitle}{}{:}\par\relax +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\mainissuefont} +% \begin{macrocode} +\newcommand{\mainissuefont}{% + \flushleft\noindent\LARGE\bfseries Issue +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\postmainissue} +% \begin{macrocode} +\newcommand{\postmainissue}{% + \par\relax +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\mainsubtitlefont} +% \begin{macrocode} +\newcommand{\mainsubtitlefont}{% + \flushleft\LARGE\bfseries\noindent} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\postmainsubtitle} +% \begin{macrocode} +\newcommand{\postmainsubtitle}{\par} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\mainlogofont} +% \begin{macrocode} +\newcommand{\mainlogofont}{% + \vfill + \begin{center}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\postmainlogo} +% \begin{macrocode} +\newcommand{\postmainlogo}{\end{center}\vfill\par} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\mainteamfont} +% \begin{macrocode} +\newcommand{\mainteamfont}{\flushleft\bfseries\Large\noindent} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\postmainteam} +% \begin{macrocode} +\newcommand{\postmainteam}{\par} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\mainauthorfont} +% \begin{macrocode} +\renewcommand{\mainauthorfont}{% + \flushleft\Large\itshape\doublespacing\noindent} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\postmainauthor} +% \begin{macrocode} +\renewcommand{\postmainauthor}{% +\par} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\mainproductioneditorfont} +% \begin{macrocode} +\newcommand{\mainproductioneditorfont}{% + \flushleft\Large\noindent \@productioneditorname: \itshape} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\postmainproductioneditor} +% \begin{macrocode} +\newcommand{\postmainproductioneditor}{\par} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\maindatefont} +% \begin{macrocode} +\renewcommand{\maindatefont}{} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\postmaindate} +% \begin{macrocode} +\renewcommand{\postmaindate}{} +% \end{macrocode} +%\end{macro} +% +%\begin{environment}{signoff} +% Editorial team listed at the end of a preface etc. The mandatory +% argument is the date, the optional argument is the team title. +% Each editor should be separated with \ics{Editor}. +% \begin{macrocode} +\newenvironment{signoff}[2][The Editorial Team]{% + \def\Editor##1{\begin{tabular}{@{}l@{}}% + ##1% + \end{tabular}% + \par\vskip\baselineskip\noindent\ignorespaces + }% + \def\@editorialteam{#1}% + \def\@signoffdate{#2}% + \par\vskip\baselineskip\noindent + \ifx\@signoffdate\@empty + \else + \emph{\@signoffdate}\par + \vskip\baselineskip\noindent + \fi + \ifx\@editorialteam\@empty + \else + \@editorialteam:\par\vskip\baselineskip + \fi + \noindent\ignorespaces +}{% +} +% \end{macrocode} +%\end{environment} +%\begin{environment}{authorsignoff} +% An author can sign off at the end of a chapter (such as a +% foreword). +% Each author should be separated with \ics{Author}. +% \begin{macrocode} +\newenvironment{authorsignoff}{% + \def\Author##1{\begin{tabular}{@{}l@{}}% + ##1% + \end{tabular}% + \par\vskip\baselineskip\noindent\ignorespaces + }% + \par\vskip\baselineskip\noindent\ignorespaces +}{% +} +% \end{macrocode} +%\end{environment} +% +%\begin{macro}{\seroextracounters} +% Reset counters at the start of each imported article +% \begin{macrocode} +\renewcommand{\zeroextracounters}{% + \@ifundefined{c@theorem}{}{\setcounter{theorem}{0}}% + \@ifundefined{c@algorithm}{}{\setcounter{algorithm}{0}}% + \@ifundefined{c@example}{}{\setcounter{example}{0}}% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\contentsname} +% Redcfine title of the table of contents +% \begin{macrocode} +\renewcommand*{\contentsname}{Table of Contents} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\theHalgorithm} +% \begin{macrocode} +\def\theHalgorithm{\thechapter.\thealgorithm} +% \end{macrocode} +%\end{macro} +\def\theHexample{\thechapter.\theexample} +\def\theHtheorem{\thechapter.\thetheorem} +%\begin{macro}{\theHsection} +% \begin{macrocode} +\def\theHsection{\thechapter.\thesection} +\def\theHsubsection{\thechapter.\thesubsection} +\def\theHsubsubsection{\thechapter.\thesubsubsection} +\def\theHparagraph{\thechapter.\theparagraph} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\theHsubfigure} +% \begin{macrocode} +\def\theHsubfigure{\thechapter.\thefigure.\thesubfigure} +\def\theHsubtable{\thechapter.\thetable.\thesubtable} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\mailto} +% \begin{macrocode} +\renewcommand*{\mailto}[1]{% + \href{mailto:#1}{\nolinkurl{#1}}% +} +% \end{macrocode} +%\end{macro} +% \begin{macrocode} +\c@lhaschapterfalse +\let\c@lthesec\thesection +% \end{macrocode} +% Make sure the hyperlinks work +%\begin{macro}{\doimportchapterHref} +% \begin{macrocode} +\newcommand\doimportchapterHref{% + \edef\@currentHref{chapter.\thechapter}% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\toclevel@appendix} +% Set the toc level for the main appendices +% \begin{macrocode} +\def\toclevel@appendix{-1} +% \end{macrocode} +%\end{macro} +% +% \sty{hyperref} and \cls{combine} don't play nicely +% need to fudge the cross-referencing a bit. +%\begin{macro}{\Xprefix} +% \begin{macrocode} +\def\Xprefix{} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\Xref} +% \begin{macrocode} +\DeclareRobustCommand\Xref{\@ifstar\@Xrefstar\T@Xref}% +% \end{macrocode} +%\end{macro} +%\begin{macro}{\Xpageref} +% \begin{macrocode} +\DeclareRobustCommand\Xpageref{% + \@ifstar\@Xpagerefstar\T@Xpageref +}% +% \end{macrocode} +%\end{macro} +%\begin{macro}{\HyRef@StarSetXRef} +% \begin{macrocode} +\def\HyRef@StarSetXRef#1{% + \begingroup + \Hy@safe@activestrue + \edef\x{#1}% + \@onelevel@sanitize\x + \edef\x{\endgroup + \noexpand\HyRef@@StarSetRef + \expandafter\noexpand\csname r@\Xprefix\x\endcsname{\x}% + }% + \x +} +% \end{macocode} +%\end{macro} +% +%\begin{macro}{\@Xrefstar} +% \begin{macrocode} +\def\@Xrefstar#1{% + \HyRef@StarSetXRef{#1}\@firstoffive +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@Xpagerefstar} +% \begin{macrocode} +\def\@Xpagerefstar#1{% + \HyRef@StarSetXRef{#1}\@secondoffive +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\T@Xref} +% \begin{macrocode} +\def\T@Xref#1{% + \Hy@safe@activestrue + \expandafter\@setXref\csname r@\Xprefix#1\endcsname\@firstoffive{#1}% + \Hy@safe@activesfalse +}% +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\T@Xpageref} +% \begin{macrocode} +\def\T@Xpageref#1{% + \Hy@safe@activestrue + \expandafter\@setXref\csname r@\Xprefix#1\endcsname\@secondoffive{#1}% + \Hy@safe@activesfalse +}% +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\Xlabel} +% \begin{macrocode} +\def\Xlabel#1{% + \@bsphack + \begingroup + \@onelevel@sanitize\@currentlabelname + \edef\@currentlabelname{% + \expandafter\strip@period\@currentlabelname\relax.\relax\@@@ + }% + \protected@write\@mainauxout{}{% + \string\newlabel{\Xprefix#1}{{\@currentlabel}{\thepage}% + {\@currentlabelname}{\@currentHref}{}}% + }% + \endgroup + \@esphack +} +\let\ltx@label\Xlabel +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@setXref} +% \begin{macrocode} +\def\@setXref#1#2#3{% csname, extract group, refname + \ifx#1\relax + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{% + Reference `#3' on page \thepage \space undefined% + }% + \else + \expandafter\Hy@setref@link#1\@empty\@empty\@nil{#2}% + \fi +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@secondoffive} +% Something's redefining \cs{@secondoffive} incorrectly at the +% start of the document when hyperref's draft mode is on. Need +% to fix it. +% \begin{macrocode} +\AtBeginDocument{\renewcommand\@secondoffive[5]{#2}} +% \end{macrocode} +%\end{macro} +% +% Need to write imported chapter label to main auxfile. +%\begin{macro}{\@setimportlabel} +% \begin{macrocode} +\def\@setimportlabel{% + \let\@mainauxout\@auxout + \let\HRlabel\label +} +% \end{macrocode} +%\end{macro} +% \begin{macrocode} +\AtBeginDocument{% + \@setimportlabel + \gdef\@setimportlabel{\let\ref\Xref \let\pageref\Xpageref}% + \let\ReadBookmarks\relax +} +% \end{macrocode} +% Imported papers modify \ics{InputIfFileExists} so save original +% definition. +% \begin{macrocode} +\let\@org@InputIfFileExists\InputIfFileExists +% \end{macrocode} +% +%\begin{environment}{jmlrpapers} +% \begin{macrocode} +\newenvironment{jmlrpapers}{% + \begin{papers}[] + \jmlrarticlecommands + \let\importpubpaper\@importpubpaper + \let\importpaper\@importpaper + \let\importarticle\@importarticle + \let\label\Xlabel + \let\ref\Xref + \pagestyle{article}% +}{% + \end{papers} +} +% \end{macrocode} +%\end{environment} +% +%\begin{macro}{\addtomaincontents} +% \begin{macrocode} +\newcommand{\addtomaincontents}[2]{% + \protected@write\@mainauxout{\let\label\@gobble\let\index\@gobble + \let\glossary\@gobble}{\string\@writefile{#1}{#2}}% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@write@author} +% \begin{macrocode} +\newcommand*{\@write@author}[2]{% + \def\@jmlr@authors@sep{ and }% + \protected@write\@mainauxout{}{% + \string\@new@articleauthor{#1}{#2}% + }% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@new@articleauthor} +% \begin{macrocode} +\newcommand*{\@new@articleauthor}[2]{% + \expandafter\gdef\csname @jmlr@author@#1\endcsname{% + \hyperref[#1jmlrstart]{#2}}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@write@jmlr@import} +% The accompanying \app{makejmlrbook} Perl script scans the aux file +% for information. Any articles imported using \ics{importpubpaper}, +% \ics{importpaper} or \ics{importarticle} need to write the +% relevant information to the aux file. +% \begin{macrocode} +\newcommand*{\@write@jmlr@import}[3]{% + \protected@write\@mainauxout{}{\string\@jmlr@import{#1}{#2}{#3}}% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@jmlr@import} +% \LaTeX\ should ignore \cs{@jmlr@import} as it's only needed for +% \app{makejmlrbook}: +% \begin{macrocode} +\newcommand*{\@jmlr@import}[3]{} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\importpubpaper} +% Import a document that has already been published. +% Syntax: \cs{importpubpaper}\oarg{label}\marg{dir}\marg{file}\marg{pages} +% where \meta{dir} is the directory in which the paper is located, +% \meta{file} is the name of the file and \meta{pages} indicates +% the page range \emph{for the original version}. The optional +% argument is a label. This is used to prefix the labels and +% citations in the document so they don't clash with other imported +% articles. If omitted, \meta{dir}/\meta{file} is used instead. +% \begin{macrocode} +\newcommand*{\@importpubpaper}[4][\@importdir\@importfile]{% + \bgroup + \def\@importdir{#2/}% + \def\@importfile{#3}% + \@write@jmlr@import{#1}{#2}{#3}% + \def\@extra@b@citeb{#1}% + \def\@extra@binfo{#1}% + \jmlrpages{#4}% + \graphicspath{{\@importdir}}% + \def\jmlrmaketitlehook{% + \refstepcounter{chapter}% + \addtomaincontents{toc}% + {\protect\contentsline{papertitle}{\@shorttitle}{\thepage}% + {page.\thepage}}% + \pdfbookmark{\@shorttitle}{chapter.\thechapter}% + \def\@jmlr@authors@sep{ \& }% + \tocchapterpubauthor{\@jmlrauthors}% + {% + \@jmlrabbrvproceedings + \ifx\@jmlrvolume\@empty + \ifx\@jmlrpages\@empty\else\space\fi + \else + \space\@jmlrvolume + \ifx\@jmlrpages\@empty\else:\fi + \fi + \ifx\@jmlrpages\@empty + \else + \@jmlrpages + \ifx\@jmlryear\@empty\else,\fi + \fi + \space\@jmlryear + }% + \@write@author{#1}{\@jmlrauthors}% + }% + \def\jmlrpremaketitlehook{% + \cleardoublepage + \phantomsection + \let\@currentlabelname\@shorttitle + }% + \def\InputIfFileExists##1##2##3{% + \IfFileExists{##1}{% + \@org@InputIfFileExists{##1}{##2}{##3}% + }% + {% + \@org@InputIfFileExists{\@importdir##1}{##2}{##3}% + }% + }% + \def\Xprefix{#1}% + \import{\@importdir\@importfile}% + \def\Xprefix{}% + \egroup + \gdef\@shortauthor{}% + \gdef\@shorttitle{}% + \gdef\@firstauthor{}% + \gdef\@jmlrauthors{}% + \gdef\@firstsurname{}% +} +\newcommand{\importpubpaper}[4][]{% + \ClassError{jmlrbook}{\string\importpubpaper\space +not permitted outside `jmlrpapers' environment}{}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\importpaper} +% Like \cs{importpubpaper} but sets the pages to the page-range for +% this book. +% \begin{macrocode} +\newcommand{\@importpaper}[3][\@importdir\@importfile]{% + \bgroup + \def\@importdir{#2/}% + \def\@importfile{#3}% + \@write@jmlr@import{#1}{#2}{#3}% + \def\@extra@b@citeb{#1}% + \def\@extra@binfo{#1}% + \jmlrpages{\protect\@articlepagesref}% + \graphicspath{{\@importdir}}% + \def\jmlrmaketitlehook{% + \refstepcounter{chapter}% + \addtomaincontents{toc}% + {\protect\contentsline{papertitle}{\@shorttitle}{\thepage}% + {page.\thepage}}% + \pdfbookmark{\@shorttitle}{chapter.\thechapter}% + \def\@jmlr@authors@sep{ \& }% + \tocchapterpubauthor{\@jmlrauthors}% + {% + \@jmlrabbrvproceedings + \ifx\@jmlrvolume\@empty + \space + \else + \space\@jmlrvolume:% + \fi + \protect\articlepagesref{#1}% + \ifx\@jmlryear\@empty\else,\fi + \space\@jmlryear + }% + \@write@author{#1}{\@jmlrauthors}% + }% + \def\jmlrpremaketitlehook{% + \cleardoublepage + \phantomsection + \let\@currentlabelname\@shorttitle + }% + \def\InputIfFileExists##1##2##3{% + \IfFileExists{##1}{% + \@org@InputIfFileExists{##1}{##2}{##3}% + }% + {% + \@org@InputIfFileExists{\@importdir##1}{##2}{##3}% + }% + }% + \def\Xprefix{#1}% + \import{\@importdir\@importfile}% + \def\Xprefix{}% + \egroup + \gdef\@shortauthor{}% + \gdef\@shorttitle{}% + \gdef\@firstauthor{}% + \gdef\@jmlrauthors{}% + \gdef\@firstsurname{}% +} + +\newcommand{\importpaper}[3][]{% + \ClassError{jmlrbook}{\string\importpaper\space +not permitted outside `jmlrpapers' environment}{}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\importarticle} +% Import a document that hasn't been published. +% Syntax: \cs{importarticle}\oarg{label}\marg{dir}\marg{file} +% where \meta{dir} is the directory in which the paper is located and +% \meta{file} is the name of the file. The optional +% argument is a label. This is used to prefix the labels and +% citations in the document so they don't clash with other imported +% articles. If omitted, \meta{file} is used instead. +% \begin{macrocode} +\newcommand{\@importarticle}[3][\@importdir\@importfile]{% + \bgroup + \def\@importdir{#2/}% + \def\@importfile{#3}% + \@write@jmlr@import{#1}{#2}{#3}% + \def\@extra@b@citeb{#1}% + \def\@extra@binfo{#1}% + \def\jmlrmaketitlehook{% + \addtomaincontents{toc}% + {\protect\contentsline{papertitle}{\@shorttitle}{\thepage}% + {page.\thepage}}% + \refstepcounter{chapter}% + \pdfbookmark{\@shorttitle}{chapter.\thechapter}% + \def\@jmlr@authors@sep{ \& }% + \tocchapterauthor{\@jmlrauthors}% + \@write@author{#1}{\@jmlrauthors}% + \jmlrpages{}% + \jmlrvolume{}% + \jmlryear{}% + \jmlrsubmitted{}% + \jmlrpublished{}% + \jmlrproceedings{}{}% + }% + \def\jmlrpremaketitlehook{% + \cleardoublepage + \phantomsection + \let\@currentlabelname\@shorttitle + }% + \graphicspath{{\@importdir}}% + \def\InputIfFileExists##1##2##3{% + \IfFileExists{##1}{% + \@org@InputIfFileExists{##1}{##2}{##3}% + }% + {% + \@org@InputIfFileExists{\@importdir##1}{##2}{##3}% + }% + }% + \def\Xprefix{#1}% + \import{\@importdir\@importfile}% + \def\Xprefix{}% + \egroup + \gdef\@shortauthor{}% + \gdef\@shorttitle{}% + \gdef\@firstauthor{}% + \gdef\@jmlrauthors{}% + \gdef\@firstsurname{}% +} +\newcommand{\importarticle}[3][]{% + \ClassError{jmlrbook}{\string\importarticle\space +not permitted outside `jmlrpapers' environment}{}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\addtocpart} +% Add a part to the TOC without printing anything in the text +% (but does a \cs{cleardoublepage}). +% \begin{macrocode} +\newcommand{\addtocpart}[1]{% + \cleardoublepage + \refstepcounter{tocpart}% + \addtocontents{toc}{\protect\tocpart{#1}}% + \pdfbookmark[-1]{#1}{part.\thetocpart}% +} +\newcounter{tocpart} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\tocpart} +% Define the appearance of a part in the TOC. +% \begin{macrocode} +\newcommand{\tocpart}[1]{% + \addpenalty{-\@highpenalty}% + \vskip 1.0ex \@plus\p@ + \setlength\@tempdima{2.25em}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \large\bfseries + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss \null}\par + \penalty\@highpenalty + \endgroup +} +% \end{macrocode} +%\end{macro} +% +% Set up the layout of the chapter headings +% \begin{macrocode} +\setlength{\prechapterskip}{3em} +\setlength{\postchapterskip}{20pt} +% \end{macrocode} +% +%\begin{macro}{\chapternumberformat} +% \begin{macrocode} +\renewcommand{\chapternumberformat}[1]{% + \Large\bfseries \@chapapp\space#1\par +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\chaptertitleformat} +% \begin{macrocode} +\renewcommand{\chaptertitleformat}[1]{% + \Large\bfseries #1} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\chapterformat} +% \begin{macrocode} +\renewcommand*{\chapterformat}{% + \raggedright +} +% \end{macrocode} +%\end{macro} +% Set up the format of a part in the book (not a part in an +% article). +%\begin{macro}{\preparthook} +% \begin{macrocode} +\renewcommand{\preparthook}{\cleardoublepage\null\vfil} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\partnumberformat} +% \begin{macrocode} +\renewcommand{\partnumberformat}[1]{% + \Huge\bfseries \@partapp\nobreakspace#1\par\nobreak + \vskip 20\p@ +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\postparthook} +% \begin{macrocode} +\def\postparthook{% + \thispagestyle{empty}% + \vfil\newpage + \null + \thispagestyle{empty}% + \newpage +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@curparthead} +% The heading of the current part +% \begin{macrocode} +\newcommand{\@curparthead}{} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\parttitleformat} +% \begin{macrocode} +\renewcommand{\parttitleformat}[1]{#1% + \gdef\@curparthead{\@partapp\space \thepart. #1}% + \@mkboth{\@curparthead}{\@curparthead}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\firstpageno} +% Change \cs{firstpageno} to do nothing as the page number will +% be determined by the book. +% \begin{macrocode} +\renewcommand{\firstpageno}[1]{} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\tocchapterauthor} +% Add the author of the current chapter to the table of contents. +% \begin{macrocode} +\newcommand{\tocchapterauthor}[1]{% + \addtomaincontents{toc}{\protect\contentsline{chapterauthor}{% + #1}{}{}}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\tocchapterpubauthor} +% Add the author of an imported prepublished paper to the +% table of contents. The first argument is the author (or list +% of authors). The second argument is the reference to the +% published article. +% \begin{macrocode} +\newcommand{\tocchapterpubauthor}[2]{% + \addtomaincontents{toc}{\protect\contentsline{chapterauthor}{% + #1; #2.}{}{}}% +} +% \end{macrocode} +%\end{macro} +% +% Set up the formatting in the TOC +% \begin{macrocode} +\renewcommand*\@pnumwidth{2em} +% \end{macrocode} +% +%\begin{macro}{\l@part} +% Format for book parts +% \begin{macrocode} +\renewcommand*\l@part[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \vskip 1.0em \@plus\p@ + \setlength\@tempdima{5em}% + \vbox{% + \pagerule + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \large\bfseries + \advance\leftskip\@tempdima + \hskip -\leftskip + \renewcommand*\numberline[1]{\hb@xt@ \@tempdima + {\partname\space ##1\hfil }}% + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss }\par + \penalty\@highpenalty + \endgroup + \pagerule + }% + \fi} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\l@papertitle} +% \begin{macrocode} +\newcommand*{\l@papertitle}[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \vskip 1.0em \@plus\p@ + \setlength\@tempdima{3em}% + \begingroup + \leavevmode \raggedright\itshape + #1\nobreak\hfill \nobreak\hb@xt@\@pnumwidth{\hss + \normalfont#2}% + \par + \penalty\@highpenalty + \endgroup + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\l@chapterauthor} +% \begin{macrocode} +\newcommand*\l@chapterauthor[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \raggedright + #1% + \par + \endgroup + \fi} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\l@section} +% \begin{macrocode} +\renewcommand*\l@section[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \vskip 1.0em \@plus\p@ + \setlength\@tempdima{3em}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \normalsize\mdseries + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + \penalty\@highpenalty + \endgroup + \fi} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\l@subsection} +% \begin{macrocode} +\renewcommand*\l@subsection[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \vskip 1.0em \@plus\p@ + \setlength\@tempdima{3.5em}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \normalsize\mdseries + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + \penalty\@highpenalty + \endgroup + \fi} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\chaptermark} +% \begin{macrocode} +\renewcommand*{\chaptermark}[1]{% + \@mkboth{\@curparthead}{\protect\thechapter. #1}% +} +% \end{macrocode} +%\end{macro} +% +% Set up page styles +%\begin{macro}{\firstpagehead} +% \begin{macrocode} +\newcommand{\firstpagehead}{} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\firstpagefoot} +% \begin{macrocode} +\newcommand{\firstpagefoot}{\hfill\thepage} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\headfont} +% Set the header font +% \begin{macrocode} +\renewcommand*{\headfont}{\reset@font\small\scshape}% +% \end{macrocode} +%\end{macro} +%\begin{macro}{\footfont} +% Set the footer font +% \begin{macrocode} +\renewcommand*{\footfont}{\reset@font\small\itshape}% +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\ps@chplain} +% Page style for first page of a chapter +% \begin{macrocode} +\newcommand*{\ps@chplain}{% + \let\@mkboth\@gobbletwo + \renewcommand*{\@oddhead}{\headfont\firstpagehead}% + \renewcommand*{\@evenhead}{}% + \renewcommand*{\@oddfoot}{\footfont\firstpagefoot}% + \renewcommand*{\@evenfoot}{\footfont\thepage\hfill + }% +} +\let\ps@plain\ps@chplain +% \end{macrocode} +%\end{macro} +%\begin{macro}{\ps@article} +% Page style for the imported articles. +% \begin{macrocode} +\newcommand*{\ps@article}{% + \let\@mkboth\@gobbletwo + \renewcommand*{\@oddhead}{\headfont\hfill\@shorttitle}% + \renewcommand*{\@evenhead}{\headfont\@shortauthor\hfill}% + \renewcommand*{\@oddfoot}{\footfont\hfill\thepage} + \renewcommand*{\@evenfoot}{\footfont\thepage\hfill} +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\ps@jmlrbook} +% Page style for book +% \begin{macrocode} +\newcommand*{\ps@jmlrbook}{% + \ps@headings + \renewcommand*{\sectionmark}[1]{}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\morefrontmatter} +% \begin{macrocode} +\renewcommand*{\morefrontmatter}{\pagestyle{jmlrbook}% + \def\chaptermark##1{% + \@mkboth{##1\hfill}{\hfill##1}}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\moremainmatter} +% \begin{macrocode} +\renewcommand*{\moremainmatter}{\pagestyle{jmlrbook}% + \def\chaptermark##1{% + \@mkboth{\@curparthead}{\protect\thechapter. ##1}% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\bibsection} +% Set the bibliography headings in the articles +% \begin{macrocode} +\renewcommand*\bibsection{\section*{\refname}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@bookpart} +% Define the layout of a book part +% \begin{macrocode} +\def\@bookpart[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{\@parttoclabel}{% + \protect\numberline{\thepart}#1}% + \else + \addcontentsline{toc}{\@parttoclabel}{#1}% + \fi + \markboth{}{}% + {\interlinepenalty \@M + \normalfont\partformat + \ifnum \c@secnumdepth >-2\relax + \partnumberformat{\thepart}% + \fi + \parttitleformat{#2}\par}% + \postparthook} +% \end{macrocode} +%\end{macro} +% +% Set up the book commands: +% \begin{macrocode} +\jmlrbookcommands +% \end{macrocode} +%\iffalse +% \begin{macrocode} +% +% \end{macrocode} +%\fi +%\Finale +\endinput diff --git a/Master/texmf-dist/source/latex/jmlr/jmlr.ins b/Master/texmf-dist/source/latex/jmlr/jmlr.ins new file mode 100644 index 00000000000..e8d06b7968a --- /dev/null +++ b/Master/texmf-dist/source/latex/jmlr/jmlr.ins @@ -0,0 +1,33 @@ +% jmlr.ins generated using makedtx version 0.94b 2010/6/17 20:52 +\input docstrip + +\preamble + + jmlr.dtx + Copyright 2010 Nicola Talbot + + This work may be distributed and/or modified under the + conditions of the LaTeX Project Public License, either version 1.3 + of this license of (at your option) any later version. + The latest version of this license is in + http://www.latex-project.org/lppl.txt + and version 1.3 or later is part of all distributions of LaTeX + version 2005/12/01 or later. + + This work has the LPPL maintenance status `maintained'. + + The Current Maintainer of this work is Nicola Talbot. + + This work consists of the files jmlr.dtx and jmlr.ins and the derived files jmlr.cls, jmlrbook.cls. + +\endpreamble + +\askforoverwritefalse + +\generate{\file{jmlr.cls}{\usepreamble\defaultpreamble +\usepostamble\defaultpostamble\from{jmlr.dtx}{jmlr.cls,package}} +\file{jmlrbook.cls}{\usepreamble\defaultpreamble +\usepostamble\defaultpostamble\from{jmlr.dtx}{jmlrbook.cls,package}} +} + +\endbatchfile diff --git a/Master/texmf-dist/tex/latex/jmlr/jmlr.cls b/Master/texmf-dist/tex/latex/jmlr/jmlr.cls new file mode 100644 index 00000000000..eb9d45ebe6f --- /dev/null +++ b/Master/texmf-dist/tex/latex/jmlr/jmlr.cls @@ -0,0 +1,969 @@ +%% +%% This is file `jmlr.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% jmlr.dtx (with options: `jmlr.cls,package') +%% +%% jmlr.dtx +%% Copyright 2010 Nicola Talbot +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license of (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Nicola Talbot. +%% +%% This work consists of the files jmlr.dtx and jmlr.ins and the derived files jmlr.cls, jmlrbook.cls. +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% First editor: +%% Second editor: +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{jmlr}[2010/06/17 v1.06 (NLCT) Journal of Machine Learning Research] +\newif\if@openright +\newif\if@mainmatter \@mainmattertrue +\@ifundefined{ifgrayscale}{ + \newif\ifgrayscale + \grayscalefalse +}{} +\DeclareOption{color}{\grayscalefalse + \PassOptionsToPackage{color}{xcolor}} +\DeclareOption{gray}{\grayscaletrue + \PassOptionsToPackage{gray}{xcolor}} +\newif\iftablecaptiontop +\tablecaptiontoptrue +\DeclareOption{tablecaptiontop}{\tablecaptiontoptrue} +\DeclareOption{tablecaptionbottom}{\tablecaptionbottomtrue} +\newif\ifjmlrhtml +\jmlrhtmlfalse +\DeclareOption{html}{\jmlrhtmltrue} +\DeclareOption{nohtml}{\jmlrhtmlfalse} +\def\pt@size{11pt} +\DeclareOption{10pt}{\renewcommand{\pt@size}{10}% + \PassOptionsToClass{\CurrentOption}{article}} +\DeclareOption{11pt}{\renewcommand{\pt@size}{11}% + \PassOptionsToClass{\CurrentOption}{article}} +\DeclareOption{12pt}{\renewcommand{\pt@size}{12}% + \PassOptionsToClass{\CurrentOption}{article}} +\newcommand*{\@jmlrproceedings}{Journal of Machine Learning Research} +\newcommand*{\@jmlrabbrvproceedings}{JMLR} +\newcommand*{\jmlrproceedings}[2]{% + \renewcommand*{\@jmlrabbrvproceedings}{#1}% + \renewcommand*{\@jmlrproceedings}{#2}% +} +\newcommand*{\jmlrnowcp}{% + \jmlrproceedings{JMLR}{Journal of Machine Learning Research}% +} +\newcommand*{\jmlrwcp}{% + \jmlrproceedings{JMLR WC\&P}{JMLR: Workshop and Conference Proceedings}% +} +\DeclareOption{nowcp}{\jmlrnowcp} +\DeclareOption{wcp}{\jmlrwcp} +\newif\ifviiXx +\viiXxfalse +\DeclareOption{7x10}{\viiXxtrue} +\DeclareOption{letterpaper}{\PassOptionsToPackage{letterpaper}{typearea}} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} +\ExecuteOptions{twoside,letterpaper} +\ProcessOptions +\LoadClass[pointednumbers,normalheadings]{scrartcl} +\ifviiXx + \setlength{\paperwidth}{7in} + \setlength{\paperheight}{10in} + \setlength{\textwidth}{5.25in} + \setlength{\textheight}{8.2in} + \setlength{\topmargin}{0.4in} + \setlength{\headheight}{0.2in} + \setlength{\headsep}{0.2in} + \setlength{\hoffset}{-1in} + \setlength{\voffset}{-1in} + \setlength{\evensidemargin}{0.75in} + \setlength{\oddsidemargin}{1.0in} +\else + \setlength{\oddsidemargin}{0.25in} + \setlength{\evensidemargin}{0.25in} + \setlength{\marginparwidth}{0.07 true in} + \setlength{\topmargin}{-0.5in} + \addtolength{\headsep}{0.25in} + \setlength{\textheight}{8.5 true in} + \setlength{\textwidth}{6.0 true in} +\fi +\RequirePackage{amsmath} +\RequirePackage{amssymb} +\RequirePackage{natbib} +\RequirePackage{graphicx} +\RequirePackage{url} +\RequirePackage[x11names]{xcolor} +\RequirePackage[algo2e,ruled]{algorithm2e} +\renewcommand{\topfraction}{0.95} % let figure take up nearly whole page +\renewcommand{\textfraction}{0.05} % let figure take up nearly whole page +\widowpenalty=10000\relax +\clubpenalty=10000\relax +\@twosidetrue +\@mparswitchtrue +\def\ds@draft{\overfullrule 5pt} +\bibliographystyle{plainnat} +\bibpunct{(}{)}{;}{a}{,}{,} +\addtokomafont{section}{\rmfamily\large} +\addtokomafont{subsection}{\rmfamily\normalsize} +\addtokomafont{subsubsection}{\rmfamily\mdseries\normalsize\scshape} +\addtokomafont{paragraph}{\rmfamily\normalsize} +\addtokomafont{subparagraph}{\rmfamily\itshape\normalsize} +\renewcommand*{\othersectionlevelsformat}[1]{% + \csname pre#1num\endcsname\csname the#1\endcsname\autodot\enskip} +\long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize + \advance\@tempdima-15pt\parshape \@ne 15pt \@tempdima}\par + \parindent 2em\noindent \hbox to \z@{\hss{\@thefnmark}. \hfil}#1} +\ifjmlrhtml + \renewenvironment{abstract}{\HCode{

}Abstract\HCode{

}}{}% +\else + \renewenvironment{abstract} + {\centerline{\large\bfseries Abstract}\vspace{0.7ex}% + \bgroup + \leftskip 20pt\rightskip 20pt\small\noindent\ignorespaces}% + {\par\egroup\vskip 0.25ex} +\fi +\newenvironment{keywords} +{\bgroup\leftskip 20pt\rightskip 20pt \small\noindent{\bfseries +Keywords:} \ignorespaces}% +{\par\egroup\vskip 0.25ex} +\newlength\aftertitskip \newlength\beforetitskip +\newlength\interauthorskip \newlength\aftermaketitskip +%% Changeable parameters. +\setlength\aftertitskip{0.1in plus 0.2in minus 0.2in} +\setlength\beforetitskip{0.05in plus 0.08in minus 0.08in} +\setlength\interauthorskip{0.08in plus 0.1in minus 0.1in} +\setlength\aftermaketitskip{0.3in plus 0.1in minus 0.1in} +\renewcommand*{\title}[2][\@title]{% + \def\@shorttitle{#1}% + \def\@title{#2}% + \jmlrtitlehook +} +\newcommand*{\jmlrtitlehook}{} +\renewcommand*{\author}[2][]{% + \def\@author{#2}% + \def\@sauthor{#1}% + \ifx\@sauthor\@empty + \else + \let\@shortauthor\@sauthor + \fi + \jmlrauthorhook +} +\newcommand*{\jmlrauthorhook}{} +\newcommand*{\@shortauthor}{} +\newcommand*{\@firstauthor}{} +\newcommand*{\@firstsurname}{} +\newlength\jmlrlength +\def\jmlrmaketitle{% + \jmlrpremaketitlehook + \def\@jmlr@authors@sep{, }% + \par + \begingroup + \def\thefootnote{\fnsymbol{footnote}}% + \def\@makefnmark{\hbox to 0pt{$^{\@thefnmark}$\hss}}% + \@jmlrmaketitle \@thanks + \endgroup +\label{jmlrstart}% +\ifx\@sauthor\@empty + \settowidth{\jmlrlength}{\@evenhead}% + \ifdim\jmlrlength>\textwidth + \def\@shortauthor{\@firstsurname\space et al.}% + \fi +\fi +\settowidth{\jmlrlength}{\@titlefoot}% +\ifdim\jmlrlength>\textwidth + \def\@jmlrauthors{\@firstauthor\space \emph{et al}}% +\fi +\jmlrmaketitlehook +\thispagestyle{jmlrtps}% +\setcounter{footnote}{0}% +\let\maketitle\relax \let\@maketitle\relax +\gdef\@thanks{}\gdef\@author{}\let\thanks\relax +\def\@jmlr@authors@sep{ \& }% +} +\newcommand*{\jmlrmaketitlehook}{} +\newcommand*{\jmlrpremaketitlehook}{} +\newcommand{\jmlrhtmlmaketitle}{% + \ifx\@jmlrauthors\@empty + \sbox\jmlrbox{\let\addr\relax\@author}% + \fi + \noindent\HCode{

}\@title\HCode{

} + \noindent\@jmlrauthors +} +%%\begin{macro}{\jmlrbox} +\newsavebox\jmlrbox +\ifjmlrhtml + \let\maketitle\jmlrhtmlmaketitle +\else + \let\maketitle\jmlrmaketitle +\fi +\def\@startauthor{\noindent \normalsize\bfseries} +\def\@endauthor{} +\def\@starteditor{\noindent \small {\bfseries \@edname:~}} +\def\@endeditor{\normalsize} +\def\jmlrpretitle{\vskip\beforetitskip\begin{center}\Large\bfseries} +\def\jmlrposttitle{\par\end{center}\vskip\aftertitskip} +\def\jmlrpreauthor{% +\bgroup + \def\and{\unskip\enspace{\normalfont and}\enspace}% + \def\addr{\small\itshape}% + \def\name{\ClassError{jmlr}{Use \string\Name{Author's Name} not \string\name}{}}% + \def\email{\ClassError{jmlr}{Use \string\Email{address} not \string\email}{}}% + \def\AND{\@endauthor\normalfont\hss \vskip \interauthorskip + \@startauthor}% + \@startauthor +} +\def\@email{\hfill\small\mdseries\scshape}% +\def\@name{\normalsize\upshape\bfseries}% +\def\@parsename#1 #2\@nil{% + \def\@tmp{#2}% + \ifx\@tmp\@empty + \def\@surname{#1}% + \let\@nextparsename\@parsenamenoop + \else + \@getinitial#1-\relax\relax\end + \ifx\@forenames\@empty + \def\@forenames{#1}% + \protected@edef\@initials{\@initial}% + \else + \expandafter\toks@\expandafter{\@forenames}% + \edef\@forenames{\space\the\toks@}% + \expandafter\toks@\expandafter{\@initials}% + \protected@edef\@initials{\the\toks@\@initial}% + \fi + \let\@nextparsename\@parsename + \fi + \@nextparsename#2\@nil +} +\def\@parsenamenoop#1\@nil{} +\def\@getinitial#1#2-#3#4\end{% + \def\@jmlr@tmp{#3}% + \if\@jmlr@tmp\relax + \def\@initial{#1.}% + \else + \def\@initial{#1.-#3.}% + \fi +} +\newcommand*{\Name}[1]{% + \def\@forenames{}% + \def\@surname{}% + \@parsename#1 \@nil + \ifx\@shortauthor\@empty + \ifx\@sauthor\@empty + \global\let\@shortauthor\@surname + \global\let\@firstsurname\@surname + \fi + \protected@xdef\@jmlrauthors{\@initials\space\@surname}% + \global\let\@firstauthor\@jmlrauthors + \else + \ifx\@sauthor\@empty + \expandafter\toks@\expandafter{\@shortauthor}% + \protected@xdef\@shortauthor{\the\toks@\space\@surname}% + \fi + \protected@xdef\@jmlrauthors{\@jmlrauthors + \noexpand\@jmlr@authors@sep + \@initials\space\@surname}% + \fi + \@name #1% +} +\newcommand*{\Email}[1]{{\@email #1}} +\def\jmlrpostauthor{\@endauthor\egroup + \par + \vskip \aftermaketitskip + \noindent + \ifx\@editor\@empty + \else + \@starteditor \@editor \@endeditor + \fi + \vskip \aftermaketitskip +} +\def\@jmlrmaketitle{\vbox{\hsize\textwidth + \linewidth\hsize + \jmlrpretitle \@title \jmlrposttitle + \jmlrpreauthor \@author \jmlrpostauthor +}} +\newcommand*\kernelmachines{(for + {\textsc{http://www.kernel-machines.org}})} +\newcommand*{\editorname}{Editor} +\newcommand*{\editorsname}{Editors} +\let\@edname\editorname +\def\@editor{} +\def\editor#1{% + \global\let\@edname\editorname + \gdef\@editor{#1}% +} +\def\editors#1{% + \global\let\@edname\editorsname + \gdef\@editor{#1}% +} +\def\firstpageno#1{\setcounter{page}{#1}} +\AtEndDocument{% + \@ifundefined{phantomsection}{}{\phantomsection}% + \protected@edef\@currentlabelname{end of \@shorttitle}% + \label{jmlrend}% +} +\newcommand*{\@titlefoot}{\scriptsize\copyright\space\@jmlryear + \space\@jmlrauthors.\hfill} +\newcommand\ps@jmlrtps{% + \let\@mkboth\@gobbletwo + \def\@oddhead{\scriptsize \@jmlrproceedings + \ifx\@jmlrvolume\@empty\else\space\@jmlrvolume\fi + \ifx\@jmlryear\@empty\else\space(\@jmlryear)\fi + \ifx\@jmlrpages\@empty\else\space\@jmlrpages\fi + \hfill + \ifx\@jmlrworkshop\@empty + \ifx\@jmlrsubmitted\@empty + \else + Submitted \@jmlrsubmitted + \ifx\@jmlrpublished\@empty\else;\fi + \fi + \ifx\@jmlrpublished\@empty + \else + \space Published \@jmlrpublished + \fi + \else + \space\@jmlrworkshop + \fi + }% + \let\@evenhead\@oddhead + \def\@oddfoot{\@titlefoot}% + \let\@evenfoot\@oddfoot +} +\def\ps@jmlrps{% + \let\@mkboth\@gobbletwo + \def\@oddhead{\hfill {\small\scshape \@shorttitle} \hfill}% + \def\@oddfoot{\hfill \small\rmfamily \thepage \hfill}% + \def\@evenhead{\hfill {\small\scshape \@shortauthor} \hfill}% + \def\@evenfoot{\hfill \small\rmfamily \thepage \hfill}% +}% +\pagestyle{jmlrps} +\let\@jmlrvolume\@empty +\newcommand*{\jmlrvolume}[1]{\renewcommand*{\@jmlrvolume}{#1}} +\let\@jmlrissue\@empty +\newcommand*{\jmlrissue}[1]{\renewcommand*{\@jmlrissue}{#1}} +\let\@jmlryear\@empty +\newcommand*{\jmlryear}[1]{\renewcommand*{\@jmlryear}{#1}} +\newcommand*\@jmlrpages{\pageref{jmlrstart}--\pageref{jmlrend}} +\newcommand*{\jmlrpages}[1]{\renewcommand*{\@jmlrpages}{#1}} +\let\@jmlrsubmitted\@empty +\newcommand*{\jmlrsubmitted}[1]{\renewcommand*{\@jmlrsubmitted}{#1}} +\let\@jmlrpublished\@empty +\newcommand*{\jmlrpublished}[1]{\renewcommand*{\@jmlrpublished}{#1}} +\let\@jmlrworkshop\@empty +\newcommand*{\jmlrworkshop}[1]{\renewcommand*{\@jmlrworkshop}{#1}} +\newcommand*{\@jmlrauthors}{} +\newcommand*{\jmlrauthors}[1]{\renewcommand*{\@jmlrauthors}{#1}} + +\def\figurecaption#1#2{\noindent\hangindent 40pt + \hbox to 36pt {\small\slshape #1 \hfil} + \ignorespaces {\small #2}} +\def\figurecenter#1#2{\centerline{{\slshape #1} #2}} +\def\figurecenter#1#2{\centerline{{\small\slshape #1} {\small #2}}} +\long\def\@makecaption#1#2{% + \vskip 10pt + \setbox\@tempboxa\hbox{#1: #2}% + \ifdim \wd\@tempboxa >\hsize % IF longer than one line: + \begin{list}{#1:}{% + \settowidth{\labelwidth}{#1:} + \setlength{\leftmargin}{\labelwidth} + \addtolength{\leftmargin}{\labelsep} + }\item #2 \end{list}\par % Output in quote mode + \else % ELSE center. + \hbox to\hsize{\hfil\box\@tempboxa\hfil} + \fi} +\def\abovestrut#1{\rule[0in]{0in}{#1}\ignorespaces} +\def\belowstrut#1{\rule[-#1]{0in}{#1}\ignorespaces} +\long\def\acks#1{\section*{Acknowledgments}#1} +\long\def\researchnote#1{\noindent {\LARGE\itshape Research Note} #1} +\newcommand*{\set}[1]{\ensuremath{\mathcal{#1}}} +\newcommand*{\@jmlr@reflistsep}{, } +\newcommand*{\@jmlr@reflistlastsep}{ and } +\newcommand*{\sectionrefname}{Section} +\newcommand*{\sectionsrefname}{Sections} +\newcommand*{\equationrefname}{Equation} +\newcommand*{\equationsrefname}{Equations} +\newcommand*{\tablerefname}{Table} +\newcommand*{\tablesrefname}{Tables} +\newcommand*{\figurerefname}{Figure} +\newcommand*{\figuresrefname}{Figures} +\newcommand*{\algorithmrefname}{Algorithm} +\newcommand*{\algorithmsrefname}{Algorithms} +\newcommand*{\theoremrefname}{Theorem} +\newcommand*{\theoremsrefname}{Theorems} +\newcommand*{\lemmarefname}{Lemma} +\newcommand*{\lemmasrefname}{Lemmas} +\newcommand*{\remarkrefname}{Remark} +\newcommand*{\remarksrefname}{Remarks} +\newcommand*{\corollaryrefname}{Corollary} +\newcommand*{\corollarysrefname}{Corollaries} +\newcommand*{\definitionrefname}{Definition} +\newcommand*{\definitionsrefname}{Definitions} +\newcommand*{\conjecturerefname}{Conjecture} +\newcommand*{\conjecturesrefname}{Conjectures} +\newcommand*{\axiomrefname}{Axiom} +\newcommand*{\axiomsrefname}{Axioms} +\newcommand*{\examplerefname}{Example} +\newcommand*{\examplesrefname}{Examples} +\newcommand*{\appendixrefname}{Appendix} +\newcommand*{\appendixsrefname}{Appendices} +\newcommand*{\partrefname}{Part} +\newcommand*{\partsrefname}{Parts} +\newcommand*{\objectref}[5]{% + \let\@objectname\@empty + \def\@objectref{}% + \let\@prevsep\@empty + \@for\@thislabel:=#1\do{% + \toks@{\@prevsep}% + \protected@edef\@objectref{\@objectref\the\toks@ + #4\ref{\@thislabel}#5}% + \ifx\@objectname\@empty + \let\@objectname#2% singular tag + \else + \let\@objectname#3% plural tag + \let\@prevsep\@jmlr@reflistsep + \fi + }% + \ifx\@objectname#3% plural tag + \let\@prevsep\@jmlr@reflistlastsep + \fi + \@objectname~\@objectref +} +\newcommand*{\sectionref}[1]{% + \objectref{#1}{\sectionrefname}{\sectionsrefname}{}{}} +\newcommand*{\equationref}[1]{% + \objectref{#1}{\equationrefname}{\equationsrefname}()} +\newcommand*{\tableref}[1]{% + \objectref{#1}{\tablerefname}{\tablesrefname}{}{}} +\newcommand*{\figureref}[1]{% + \objectref{#1}{\figurerefname}{\figuresrefname}{}{}} +\newcommand*{\algorithmref}[1]{% + \objectref{#1}{\algorithmrefname}{\algorithmsrefname}{}{}} +\newcommand*{\theoremref}[1]{% + \objectref{#1}{\theoremrefname}{\theoremsrefname}{}{}} +\newcommand*{\lemmaref}[1]{% + \objectref{#1}{\lemmarefname}{\lemmasrefname}{}{}} +\newcommand*{\remarkref}[1]{% + \objectref{#1}{\remarkrefname}{\remarksrefname}{}{}} +\newcommand*{\corollaryref}[1]{% + \objectref{#1}{\corollaryrefname}{\corollarysrefname}{}{}} +\newcommand*{\definitionref}[1]{% + \objectref{#1}{\definitionrefname}{\definitionsrefname}{}{}} +\newcommand*{\conjectureref}[1]{% + \objectref{#1}{\conjecturerefname}{\conjecturesrefname}{}{}} +\newcommand*{\axiomref}[1]{% + \objectref{#1}{\axiomrefname}{\axiomsrefname}{}{}} +\newcommand*{\exampleref}[1]{% + \objectref{#1}{\examplerefname}{\examplesrefname}{}{}} +\newcommand*{\appendixref}[1]{% + \objectref{#1}{\appendixrefname}{\appendixsrefname}{}{}} +\newcommand*{\partref}[1]{% + \objectref{#1}{\partrefname}{\partsrefname}{}{}} +\newcommand{\floatconts}[3]{% + \@ifundefined{\@captype conts}{\tableconts{#1}{#2}{#3}}% + {\csname\@captype conts\endcsname{#1}{#2}{#3}}% +} +\newcommand{\tableconts}[3]{% + \iftablecaptiontop + #2\label{#1}\vskip\baselineskip + {\centering #3\par}% + \else + {\centering #3\par}% + \vskip\baselineskip + #2\label{#1}% + \fi +} +\newcommand{\figureconts}[3]{% + {\centering #3\par}% + \vskip\baselineskip + #2\label{#1}% +} +\newcommand*{\includeteximage}[2][]{% + \def\Gin@req@sizes{% + \Gin@req@height\Gin@nat@height + \Gin@req@width\Gin@nat@width}% + \begingroup + \@tempswafalse + \let\input@path\Ginput@path + \toks@{\InputIfFileExists{#2}{}{\@warning{File `#1' not found}}}% + \setkeys{Gin}{#1}% + \Gin@esetsize + \the\toks@ + \endgroup +} +\providecommand{\ifprint}[2]{\ifgrayscale#1\else#2\fi} +%% \begin{macrocode} +\ifjmlrhtml +\else + \let\@org@Ginclude@graphics\Ginclude@graphics + \def\Ginclude@graphics#1{% + \begingroup + \let\input@path\Ginput@path + \ifprint{\filename@parse{#1-gray}}{\filename@parse{#1}}% + \ifx\filename@ext\relax + \@for\Gin@temp:=\Gin@extensions\do{% + \ifx\Gin@ext\relax + \Gin@getbase\Gin@temp + \fi}% + \else + \ifprint{\filename@parse{#1}}{}% + \Gin@getbase{\Gin@sepdefault\filename@ext}% + \ifx\Gin@ext\relax + \@warning{File `#1' not found}% + \def\Gin@base{\filename@area\filename@base}% + \edef\Gin@ext{\Gin@sepdefault\filename@ext}% + \fi + \fi + \ifx\Gin@ext\relax + \ifprint{\@org@Ginclude@graphics{#1}}% + {% + \@latex@error{File `#1' not found}% + {I could not locate the file with any of these extensions:^^J% + \Gin@extensions^^J\@ehc}% + }% + \else + \@ifundefined{Gin@rule@\Gin@ext}% + {\ifx\Gin@rule@*\@undefined + \@latex@error{Unknown graphics extension: \Gin@ext}\@ehc + \else + \expandafter\Gin@setfile\Gin@rule@*{\Gin@base\Gin@ext}% + \fi}% + {\expandafter\expandafter\expandafter\Gin@setfile + \csname Gin@rule@\Gin@ext\endcsname{\Gin@base\Gin@ext}}% + \fi + \endgroup} +\fi +\newenvironment{algorithm}[1][htbp]% +{% + \@algocf@init% + \@algocf@init@caption + \begin{algocf}[#1]% + \@algocf@start% +}% +{% + \@algocf@finish% + \@algocf@term@caption + \end{algocf}% + \@algocf@term +} +\setlength\algomargin{0pt} +\newcommand{\artappendix}{\par + \setcounter{section}{0} + \setcounter{subsection}{0} + \def\thesection{\Alph{section}} + \def\presectionnum{Appendix~}% +} +\let\appendix\artappendix +\newcommand{\BlackBox}{\rule{1.5ex}{1.5ex}} +\newenvironment{proof}{\par\noindent{\bfseries\upshape + Proof\ }}{\hfill\BlackBox\\[2mm]} +\newtheorem{example}{Example} +\newtheorem{theorem}{Theorem} +\newtheorem{lemma}[theorem]{Lemma} +\newtheorem{proposition}[theorem]{Proposition} +\newtheorem{remark}[theorem]{Remark} +\newtheorem{corollary}[theorem]{Corollary} +\newtheorem{definition}[theorem]{Definition} +\newtheorem{conjecture}[theorem]{Conjecture} +\newtheorem{axiom}[theorem]{Axiom} +\renewcommand*{\vec}[1]{\boldsymbol{#1}} +\newenvironment{enumerate*}% +{% + \ifnum\@enumdepth=0\relax + \setcounter{enumi}{0}% + \fi + \ifnum\@enumdepth>\thr@@ + \@toodeep + \else + \advance\@enumdepth\@ne + \def\@enumctr{enumi}% + \list + {\labelenumi}% + {\@nmbrlisttrue\def\@listctr{enumi}% + \def\makelabel##1{\hss\llap{##1}}}% + \fi +}% +{\endlist} +\newenvironment{altdescription}[1]% + {\list{}% + {% + \settowidth{\labelwidth}{\altdescriptionlabel{#1}}% + \setlength{\labelsep}{15pt}% + \setlength{\leftmargin}{2\labelsep}% + \addtolength{\leftmargin}{\labelwidth}% + \setlength{\rightmargin}{\labelsep}% + \let\makelabel\altdescriptionlabel + }% + }% + {\endlist} + +\newcommand*{\altdescriptionlabel}[1]{\normalfont\bfseries #1\hfill} +\newcommand*{\mailto}[1]{\texttt{#1}} +\newcounter{subfigure} +\@addtoreset{subfigure}{figure} +\renewcommand*{\thesubfigure}{\alph{subfigure}} +\renewcommand*{\p@subfigure}{\expandafter\@p@subfigure} +\newcommand*{\@p@subfigure}[1]{% + \protect\@subfigurelabel{\thefigure}{\thesubfigure}% +} +\newcommand*\@subfigurelabel[2]{#1\subfigurelabel{#2}} +\newcommand*\@subfigref[1]{% + {% + \def\@subfigurelabel##1##2{\subfigurelabel{##2}}% + \ref{#1}% + }% +} +\newcommand*{\subfigref}[1]{% + \let\@objectname\@empty + \def\@objectref{}% + \let\@prevsep\@empty + \@for\@thislabel:=#1\do{% + \toks@{\@prevsep}% + \protected@edef\@objectref{\@objectref\the\toks@ + \protect\@subfigref{\@thislabel}}% + \ifx\@objectname\@empty +\let\@objectname\@nil + \else +\let\@objectname\relax + \let\@prevsep\@jmlr@reflistsep + \fi + }% + \ifx\@objectname\relax + \let\@prevsep\@jmlr@reflistlastsep + \fi + \@objectref +} +\newcommand*{\subfigurelabel}[1]{(\emph{#1})} +\newcommand*{\subfigure}[1][]{% + \bgroup + \def\@subfigcap{#1}% + \@subfigure +} + +\newcommand*{\@subfigure}[2][b]{% + \advance\c@figure by 1\relax + \refstepcounter{subfigure}% + \begin{tabular}[#1]{@{}c@{}}% + #2\\ + \subfigurelabel{\thesubfigure}% + \ifx\@subfigcap\@empty + \else + \space\@subfigcap + \fi + \end{tabular} + \egroup +} +\newcounter{subtable} +\@addtoreset{subtable}{table} +\renewcommand*{\thesubtable}{\alph{subtable}} +\renewcommand*{\p@subtable}{\expandafter\@p@subtable} +\newcommand*{\@p@subtable}[1]{% + \protect\@subtablelabel{\thetable}{\thesubtable}% +} +\newcommand*\@subtablelabel[2]{#1\subtablelabel{#2}} +\newcommand*\@subtabref[1]{% + {% + \def\@subtablelabel##1##2{\subtablelabel{##2}}% + \ref{#1}% + }% +} +\newcommand*{\subtabref}[1]{% + \let\@objectname\@empty + \def\@objectref{}% + \let\@prevsep\@empty + \@for\@thislabel:=#1\do{% + \toks@{\@prevsep}% + \protected@edef\@objectref{\@objectref\the\toks@ + \protect\@subtabref{\@thislabel}}% + \ifx\@objectname\@empty +\let\@objectname\@nil + \else +\let\@objectname\relax + \let\@prevsep\@jmlr@reflistsep + \fi + }% + \ifx\@objectname\relax + \let\@prevsep\@jmlr@reflistlastsep + \fi + \@objectref +} +\newcommand*{\subtablelabel}[1]{(\emph{#1})} +\newcommand*{\subtable}[1][]{% + \def\@subtabcap{#1}% + \@subtable +} + +\newcommand*{\@subtable}[2][t]{% + \refstepcounter{subtable}% + \begin{tabular}[#1]{@{}c@{}}% + \subtablelabel{\thesubtable}% + \ifx\@subtabcap\@empty + \else + \space\@subtabcap + \fi + \\#2% + \end{tabular} +} +\newcounter{chapter} +\renewcommand\thechapter{\@arabic\c@chapter} +\newcommand\@chapapp{\chaptername} +\@addtoreset{section}{chapter} +\newcommand*\chaptermark[1]{} +\newcommand\bookchapter{% + \if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{plain}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} +\newcommand\artchapter{% + \ClassError{jmlrwcp}{Chapters not permitted in articles}{}} +\let\chapter\artchapter +\def\@chaptoclabel{chapter} +\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thechapter.}% + \addcontentsline{toc}{\@chaptoclabel}% + {\protect\numberline{\thechapter}#1}% + \else + \addcontentsline{toc}{\@chaptoclabel}{#1}% + \fi + \else + \addcontentsline{toc}{\@chaptoclabel}{#1}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \@afterheading + \fi} +\newcommand{\chaptertitleformat}[1]{% + \Huge\bfseries#1% +} +\newcommand{\chapternumberformat}[1]{% + \huge\bfseries \@chapapp\space#1\par\nobreak + \vskip 20\p@ +} +\newcommand*{\chapterformat}{\raggedright} +\newlength\postchapterskip +\setlength\postchapterskip{40pt} +\newlength\prechapterskip +\setlength\prechapterskip{50pt} +\def\@makechapterhead#1{% + \null\vskip\prechapterskip + {\parindent \z@ \normalfont\chapterformat + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \chapternumberformat{\thechapter}% + \fi + \fi + \interlinepenalty\@M + \chaptertitleformat{#1}\par\nobreak + \vskip \postchapterskip + }} +\def\@schapter#1{\if@twocolumn + \@topnewpage[\@makeschapterhead{#1}]% + \else + \@makeschapterhead{#1}% + \@afterheading + \fi} +\def\@makeschapterhead#1{% + \vspace*{\prechapterskip}% + {\parindent \z@ + \normalfont\chapterformat + \interlinepenalty\@M + \chaptertitleformat{#1}\par\nobreak + \vskip \postchapterskip + }} +\newcommand*\l@chapter[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \vskip 1.0em \@plus\p@ + \setlength\@tempdima{1.5em}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \large\bfseries + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + \penalty\@highpenalty + \endgroup + \fi} +\let\l@appendix\l@chapter +\newcommand\chaptername{Chapter} +\newcommand\frontmatter{% + \cleardoublepage + \@mainmatterfalse + \pagenumbering{roman}% + \morefrontmatter +} +\newcommand\morefrontmatter{} +\newcommand\mainmatter{% + \cleardoublepage + \@mainmattertrue + \pagenumbering{arabic}% + \moremainmatter +} +\newcommand\moremainmatter{} +\newcommand\backmatter{% + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \@mainmatterfalse} +\let\booktableofcontents\tableofcontents +\let\arttableofcontents\tableofcontents +\newcommand{\artpart}{% + \if@noskipsec \leavevmode\fi + \par + \addvspace{4ex}% + \@afterindentfalse + \secdef\@artpart\@sartpart +} +\let\@artpart\@part +\let\@sartpart\@spart +\newcommand\bookpart{% + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \thispagestyle{plain}% + \if@twocolumn + \onecolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \preparthook + \secdef\@bookpart\@sbookpart} +\newcommand{\parttitleformat}[1]{% + \Huge\bfseries#1% +} +\newcommand{\partnumberformat}[1]{% + \Huge\bfseries \partname\nobreakspace#1\par\nobreak + \vskip 20\p@ +} +\newcommand{\preparthook}{\null\vfil} +\renewcommand*{\partformat}{\centering} +\def\@bookpart[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}{\protect\numberline{\thepart}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\interlinepenalty \@M + \normalfont\partformat + \ifnum \c@secnumdepth >-2\relax + \partnumberformat{\thepart}% + \fi + \parttitleformat{#2}\par}% + \postparthook} +\def\@sbookpart#1{% + {\interlinepenalty \@M + \normalfont\partformat + \parttitleformat{#1}\par}% + \postparthook} +\def\postparthook{\vfil\newpage + \if@twoside + \if@openright + \null + \thispagestyle{empty}% + \newpage + \fi + \fi + \if@tempswa + \twocolumn + \fi} +\newcommand\bookappendix{\par + \setcounter{table}{0}% + \setcounter{figure}{0}% + \zeroextracounters + \par + \gdef\theHchapter{\Alph {chapter}}% + \xdef\Hy@chapapp{\Hy@appendixstring}% + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \gdef\@chapapp{\appendixname}% + \gdef\thechapter{\@Alph\c@chapter}% + \csname appendixmore\endcsname +} +\newcommand*{\jmlrbookcommands}{% + \let\part\bookpart + \let\chapter\bookchapter + \let\appendix\bookappendix + \let\tableofcontents\booktableofcontents + \def\thesection{\thechapter.\arabic{section}}% +} +\newcommand*{\jmlrarticlecommands}{% + \let\part\artpart + \let\chapter\artchapter + \let\appendix\artappendix + \let\tableofcontents\arttableofcontents + \def\thesection{\arabic{section}}% +} +\newcommand*{\@jmlr@check@packages}{% + \@ifpackageloaded{epsfig}{% + \ClassError{jmlr}{Obsolete package `epsfig' detected. + \MessageBreak + Please use \string\includegraphics\space to include images + instead}{}}{}% + \@ifpackageloaded{psfig}{% + \ClassError{jmlr}{Obsolete package `psfig' detected. + \MessageBreak + Please use \string\includegraphics\space to include images + instead}{}}{}% + \@ifpackageloaded{subfig}{% + \ClassError{jmlr}{Package `subfig' detected.\MessageBreak + This will cause a conflict if the article is incorporated + \MessageBreak + into a book using jmlbook.cls. + \MessageBreak + Please use \string\subfigure\space and + \string\subtable\space instead}{}}{}% + \@ifpackageloaded{theorem}{% + \ClassError{jmlr}{Package `theorem' detected.\MessageBreak + This can cause a conflict with other packages used by jmlr}{}}{}% + \@ifpackageloaded{pdfpages}{Package `pdfpages' detected.\MessageBreak + This can cause a problem for jmlrbook.}{}% + \@ifpackageloaded{geometry}{Package `geometry' detected.\MessageBreak + This can cause a problem for jmlrbook.}{}% +} +\AtBeginDocument{% +\@jmlr@check@packages +\let\@jmlr@check@packages\relax +} +\newcommand*{\jmlrSuppressPackageChecks}{% + \let\@jmlr@check@packages\relax +} +\endinput +%% +%% End of file `jmlr.cls'. diff --git a/Master/texmf-dist/tex/latex/jmlr/jmlrbook.cls b/Master/texmf-dist/tex/latex/jmlr/jmlrbook.cls new file mode 100644 index 00000000000..38e051e4010 --- /dev/null +++ b/Master/texmf-dist/tex/latex/jmlr/jmlrbook.cls @@ -0,0 +1,775 @@ +%% +%% This is file `jmlrbook.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% jmlr.dtx (with options: `jmlrbook.cls,package') +%% +%% jmlr.dtx +%% Copyright 2010 Nicola Talbot +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license of (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Nicola Talbot. +%% +%% This work consists of the files jmlr.dtx and jmlr.ins and the derived files jmlr.cls, jmlrbook.cls. +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% First editor: +%% Second editor: +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{jmlrbook}[2010/06/17 v1.06 (NLCT) JMLR Book Style] +\RequirePackage{xkeyval} +\newcommand*{\@prehyperref}{} +\define@key{jmlrbook.cls}{prehyperref}{% + \renewcommand*{\@prehyperref}{#1}} +\newif\ifgrayscale +\grayscalefalse +\DeclareOptionX{color}{\grayscalefalse} +\DeclareOptionX{gray}{\grayscaletrue} +\DeclareOptionX{html}{\PassOptionsToClass{\CurrentOption}{jmlr}} +\DeclareOptionX{nohtml}{\PassOptionsToClass{\CurrentOption}{jmlr}} +\DeclareOptionX{wcp}{\PassOptionsToClass{\CurrentOption}{jmlr}} +\DeclareOptionX{nowcp}{\PassOptionsToClass{\CurrentOption}{jmlr}} +\DeclareOptionX{tablecaptiontop}{\PassOptionsToClass{\CurrentOption}{jmlr}} +\DeclareOptionX{tablecaptionbottom}{\PassOptionsToClass{\CurrentOption}{jmlr}} +\ProcessOptionsX +\@ifundefined{jmlrgrayscale}{}% +{% + \ifnum\jmlrgrayscale=0\relax + \grayscalefalse + \else + \grayscaletrue + \fi +} +\let\@org@LoadClass\LoadClass +\def\LoadClass#1{\let\LoadClass\@org@LoadClass\@org@LoadClass{jmlr}} +\@org@LoadClass{combine} +\RequirePackage{combnat} +\renewcommand\c@laNAT@parse[1]{{% + \let\protect=\@unexpandable@protect\let~\relax + \let\active@prefix=\@gobble + \xdef\NAT@temp{\csname b@#1\@extra@b@citeb\endcsname}}% + \expandafter\NAT@split\NAT@temp?????@@% + \expandafter\NAT@parse@date\NAT@date??????@@% + \ifciteindex\NAT@index\fi} + +\renewcommand\c@lbNAT@parse[1]{{% + \let\protect=\@unexpandable@protect\let~\relax + \let\active@prefix=\@gobble + \xdef\NAT@temp{\csname B?\jobname?@#1\@extra@b@citeb\endcsname}}% + \expandafter\NAT@split\NAT@temp?????@@% + \expandafter\NAT@parse@date\NAT@date??????@@% + \ifciteindex\NAT@index\fi} +\RequirePackage{setspace} +\@prehyperref +\usepackage[colorlinks, + linkcolor=blue, + citecolor=blue, + urlcolor=magenta, + linktocpage, + plainpages=false]{hyperref} +\usepackage{nameref} +\ifgrayscale + \hypersetup{draft} +\fi +\@twosidetrue +\newif\if@openright +\@openrighttrue +\newif\if@mainmatter +\newcommand*{\pagerule}[1][0pt]{\par\noindent + \rule[#1]{\linewidth}{2pt}\par} +\newcommand*{\chapterrefname}{Chapter} +\newcommand*{\chaptersrefname}{Chapters} +\newcommand*{\chapterref}[1]{% + \objectref{#1}{\chapterrefname}{\chaptersrefname}{}{}} +\newcommand*{\articlepageref}[1]{% + \pageref{#1jmlrstart}% +} +\newcommand*{\articlepagesref}[1]{% + \pageref{#1jmlrstart}--\pageref{#1jmlrend}% +} +\newcommand*{\@articlepagesref}{% + \pageref{jmlrstart}--\pageref{jmlrend}% +} +\newcommand*{\articletitleref}[1]{\nameref{#1jmlrstart}} +\newcommand*{\articleauthorref}[1]{% + \@ifundefined{@jmlr@author@#1}% + {% + \ClassWarning{jmlrbook}{Label `#1' undefined}% + }% + {% + \@nameuse{@jmlr@author@#1}% + }% +} +\newcommand*{\@parttoclabel}{part} +\newcommand*{\@partapp}{\partname} +\renewcommand*\jmlrtitlehook{% + \hypersetup{pdftitle={\@shorttitle}}% + \let\jmlrtitlehook\relax +} +\renewcommand*\jmlrauthorhook{% + \ifx\@sauthor\@empty + \hypersetup{pdfauthor={\@author}}% + \else + \hypersetup{pdfauthor={\@sauthor}}% + \fi + \let\jmlrauthorhook\relax + \let\@shortauthor\@empty +} +\newcommand*{\@volume}{\@jmlrvolume} +\newcommand*{\volume}[1]{\renewcommand*{\@volume}{#1}} +\newcommand*{\@issue}{\@jmlrissue} +\newcommand*{\issue}[1]{\renewcommand*{\@issue}{#1}} +\newcommand*{\thejmlrworkshop}{\@jmlrworkshop} +\newcommand*{\@team}{} +\newcommand*{\team}[1]{\renewcommand*{\@team}{#1}} +\newcommand*{\@productioneditorname}{Production Editor} +\newcommand*{\@productioneditor}{} +\newcommand*{\productioneditor}[1]{% + \renewcommand*{\@productioneditor}{#1}% + \renewcommand*{\@productioneditorname}{Production Editor}% +} +\newcommand*{\productioneditors}[1]{% + \renewcommand*{\@productioneditor}{#1}% + \renewcommand*{\@productioneditorname}{Production Editors}% +} +\newcommand*{\@logo}{} +\newcommand*{\logo}[1]{\renewcommand*{\@logo}{#1}} +\def\c@lbmaketitle{\jmlrmaketitle} +\newcommand*{\maintitle}{} +\newcommand*{\SetTitleElement}[3]{% + {% + \expandafter\ifx\csname @#1\endcsname\@empty + \else + #2\csname @#1\endcsname#3% + \fi + }% +} +\newcommand{\IfTitleElement}[3]{% + \expandafter\ifx\csname @#1\endcsname\@empty + #2% + \else + #3% + \fi +} +\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}% +} +\ifjmlrhtml + \renewcommand{\c@lamaketitle}{% + \HCode{}% + \HCode{
}% + \HCode{

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

}% + \newline + \textbf{Editors: \@author} + \HCode{
}% + \@logo + \HCode{
}% + \let\maintitle\@title + } +\else + \renewcommand{\c@lamaketitle}{% + \pagenumbering{alph}% + \pagestyle{empty}% + \begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax + \let\footnote\thanks + \titlebody + \par + \@thanks + \end{titlepage}% + \setcounter{footnote}{0}% + \let\maintitle\@title + \c@lmtitlempty + } +\fi +\renewcommand{\maintitlefont}{% + \null\vskip15pt\relax\par + \flushleft\Huge\bfseries\noindent} +\renewcommand{\postmaintitle}{% + \par\relax +} +\newcommand{\mainvolumefont}{% + \flushleft\noindent\LARGE\bfseries Volume +} +\newcommand{\postmainvolume}{% + \IfTitleElement{subtitle}{}{:}\par\relax +} +\newcommand{\mainissuefont}{% + \flushleft\noindent\LARGE\bfseries Issue +} +\newcommand{\postmainissue}{% + \par\relax +} +\newcommand{\mainsubtitlefont}{% + \flushleft\LARGE\bfseries\noindent} +\newcommand{\postmainsubtitle}{\par} +\newcommand{\mainlogofont}{% + \vfill + \begin{center}} +\newcommand{\postmainlogo}{\end{center}\vfill\par} +\newcommand{\mainteamfont}{\flushleft\bfseries\Large\noindent} +\newcommand{\postmainteam}{\par} +\renewcommand{\mainauthorfont}{% + \flushleft\Large\itshape\doublespacing\noindent} +\renewcommand{\postmainauthor}{% +\par} +\newcommand{\mainproductioneditorfont}{% + \flushleft\Large\noindent \@productioneditorname: \itshape} +\newcommand{\postmainproductioneditor}{\par} +\renewcommand{\maindatefont}{} +\renewcommand{\postmaindate}{} +\newenvironment{signoff}[2][The Editorial Team]{% + \def\Editor##1{\begin{tabular}{@{}l@{}}% + ##1% + \end{tabular}% + \par\vskip\baselineskip\noindent\ignorespaces + }% + \def\@editorialteam{#1}% + \def\@signoffdate{#2}% + \par\vskip\baselineskip\noindent + \ifx\@signoffdate\@empty + \else + \emph{\@signoffdate}\par + \vskip\baselineskip\noindent + \fi + \ifx\@editorialteam\@empty + \else + \@editorialteam:\par\vskip\baselineskip + \fi + \noindent\ignorespaces +}{% +} +\newenvironment{authorsignoff}{% + \def\Author##1{\begin{tabular}{@{}l@{}}% + ##1% + \end{tabular}% + \par\vskip\baselineskip\noindent\ignorespaces + }% + \par\vskip\baselineskip\noindent\ignorespaces +}{% +} +\renewcommand{\zeroextracounters}{% + \@ifundefined{c@theorem}{}{\setcounter{theorem}{0}}% + \@ifundefined{c@algorithm}{}{\setcounter{algorithm}{0}}% + \@ifundefined{c@example}{}{\setcounter{example}{0}}% +} +\renewcommand*{\contentsname}{Table of Contents} +\def\theHalgorithm{\thechapter.\thealgorithm} +\def\theHexample{\thechapter.\theexample} +\def\theHtheorem{\thechapter.\thetheorem} +\def\theHsection{\thechapter.\thesection} +\def\theHsubsection{\thechapter.\thesubsection} +\def\theHsubsubsection{\thechapter.\thesubsubsection} +\def\theHparagraph{\thechapter.\theparagraph} +\def\theHsubfigure{\thechapter.\thefigure.\thesubfigure} +\def\theHsubtable{\thechapter.\thetable.\thesubtable} +\renewcommand*{\mailto}[1]{% + \href{mailto:#1}{\nolinkurl{#1}}% +} +\c@lhaschapterfalse +\let\c@lthesec\thesection +\newcommand\doimportchapterHref{% + \edef\@currentHref{chapter.\thechapter}% +} +\def\toclevel@appendix{-1} +\def\Xprefix{} +\DeclareRobustCommand\Xref{\@ifstar\@Xrefstar\T@Xref}% +\DeclareRobustCommand\Xpageref{% + \@ifstar\@Xpagerefstar\T@Xpageref +}% +\def\HyRef@StarSetXRef#1{% + \begingroup + \Hy@safe@activestrue + \edef\x{#1}% + \@onelevel@sanitize\x + \edef\x{\endgroup + \noexpand\HyRef@@StarSetRef + \expandafter\noexpand\csname r@\Xprefix\x\endcsname{\x}% + }% + \x +} +\def\@Xrefstar#1{% + \HyRef@StarSetXRef{#1}\@firstoffive +} +\def\@Xpagerefstar#1{% + \HyRef@StarSetXRef{#1}\@secondoffive +} +\def\T@Xref#1{% + \Hy@safe@activestrue + \expandafter\@setXref\csname r@\Xprefix#1\endcsname\@firstoffive{#1}% + \Hy@safe@activesfalse +}% +\def\T@Xpageref#1{% + \Hy@safe@activestrue + \expandafter\@setXref\csname r@\Xprefix#1\endcsname\@secondoffive{#1}% + \Hy@safe@activesfalse +}% +\def\Xlabel#1{% + \@bsphack + \begingroup + \@onelevel@sanitize\@currentlabelname + \edef\@currentlabelname{% + \expandafter\strip@period\@currentlabelname\relax.\relax\@@@ + }% + \protected@write\@mainauxout{}{% + \string\newlabel{\Xprefix#1}{{\@currentlabel}{\thepage}% + {\@currentlabelname}{\@currentHref}{}}% + }% + \endgroup + \@esphack +} +\let\ltx@label\Xlabel +\def\@setXref#1#2#3{% csname, extract group, refname + \ifx#1\relax + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{% + Reference `#3' on page \thepage \space undefined% + }% + \else + \expandafter\Hy@setref@link#1\@empty\@empty\@nil{#2}% + \fi +} +\AtBeginDocument{\renewcommand\@secondoffive[5]{#2}} +\def\@setimportlabel{% + \let\@mainauxout\@auxout + \let\HRlabel\label +} +\AtBeginDocument{% + \@setimportlabel + \gdef\@setimportlabel{\let\ref\Xref \let\pageref\Xpageref}% + \let\ReadBookmarks\relax +} +\let\@org@InputIfFileExists\InputIfFileExists +\newenvironment{jmlrpapers}{% + \begin{papers}[] + \jmlrarticlecommands + \let\importpubpaper\@importpubpaper + \let\importpaper\@importpaper + \let\importarticle\@importarticle + \let\label\Xlabel + \let\ref\Xref + \pagestyle{article}% +}{% + \end{papers} +} +\newcommand{\addtomaincontents}[2]{% + \protected@write\@mainauxout{\let\label\@gobble\let\index\@gobble + \let\glossary\@gobble}{\string\@writefile{#1}{#2}}% +} +\newcommand*{\@write@author}[2]{% + \def\@jmlr@authors@sep{ and }% + \protected@write\@mainauxout{}{% + \string\@new@articleauthor{#1}{#2}% + }% +} +\newcommand*{\@new@articleauthor}[2]{% + \expandafter\gdef\csname @jmlr@author@#1\endcsname{% + \hyperref[#1jmlrstart]{#2}}% +} +\newcommand*{\@write@jmlr@import}[3]{% + \protected@write\@mainauxout{}{\string\@jmlr@import{#1}{#2}{#3}}% +} +\newcommand*{\@jmlr@import}[3]{} +\newcommand*{\@importpubpaper}[4][\@importdir\@importfile]{% + \bgroup + \def\@importdir{#2/}% + \def\@importfile{#3}% + \@write@jmlr@import{#1}{#2}{#3}% + \def\@extra@b@citeb{#1}% + \def\@extra@binfo{#1}% + \jmlrpages{#4}% + \graphicspath{{\@importdir}}% + \def\jmlrmaketitlehook{% + \refstepcounter{chapter}% + \addtomaincontents{toc}% + {\protect\contentsline{papertitle}{\@shorttitle}{\thepage}% + {page.\thepage}}% + \pdfbookmark{\@shorttitle}{chapter.\thechapter}% + \def\@jmlr@authors@sep{ \& }% + \tocchapterpubauthor{\@jmlrauthors}% + {% + \@jmlrabbrvproceedings + \ifx\@jmlrvolume\@empty + \ifx\@jmlrpages\@empty\else\space\fi + \else + \space\@jmlrvolume + \ifx\@jmlrpages\@empty\else:\fi + \fi + \ifx\@jmlrpages\@empty + \else + \@jmlrpages + \ifx\@jmlryear\@empty\else,\fi + \fi + \space\@jmlryear + }% + \@write@author{#1}{\@jmlrauthors}% + }% + \def\jmlrpremaketitlehook{% + \cleardoublepage + \phantomsection + \let\@currentlabelname\@shorttitle + }% + \def\InputIfFileExists##1##2##3{% + \IfFileExists{##1}{% + \@org@InputIfFileExists{##1}{##2}{##3}% + }% + {% + \@org@InputIfFileExists{\@importdir##1}{##2}{##3}% + }% + }% + \def\Xprefix{#1}% + \import{\@importdir\@importfile}% + \def\Xprefix{}% + \egroup + \gdef\@shortauthor{}% + \gdef\@shorttitle{}% + \gdef\@firstauthor{}% + \gdef\@jmlrauthors{}% + \gdef\@firstsurname{}% +} +\newcommand{\importpubpaper}[4][]{% + \ClassError{jmlrbook}{\string\importpubpaper\space +not permitted outside `jmlrpapers' environment}{}% +} +\newcommand{\@importpaper}[3][\@importdir\@importfile]{% + \bgroup + \def\@importdir{#2/}% + \def\@importfile{#3}% + \@write@jmlr@import{#1}{#2}{#3}% + \def\@extra@b@citeb{#1}% + \def\@extra@binfo{#1}% + \jmlrpages{\protect\@articlepagesref}% + \graphicspath{{\@importdir}}% + \def\jmlrmaketitlehook{% + \refstepcounter{chapter}% + \addtomaincontents{toc}% + {\protect\contentsline{papertitle}{\@shorttitle}{\thepage}% + {page.\thepage}}% + \pdfbookmark{\@shorttitle}{chapter.\thechapter}% + \def\@jmlr@authors@sep{ \& }% + \tocchapterpubauthor{\@jmlrauthors}% + {% + \@jmlrabbrvproceedings + \ifx\@jmlrvolume\@empty + \space + \else + \space\@jmlrvolume:% + \fi + \protect\articlepagesref{#1}% + \ifx\@jmlryear\@empty\else,\fi + \space\@jmlryear + }% + \@write@author{#1}{\@jmlrauthors}% + }% + \def\jmlrpremaketitlehook{% + \cleardoublepage + \phantomsection + \let\@currentlabelname\@shorttitle + }% + \def\InputIfFileExists##1##2##3{% + \IfFileExists{##1}{% + \@org@InputIfFileExists{##1}{##2}{##3}% + }% + {% + \@org@InputIfFileExists{\@importdir##1}{##2}{##3}% + }% + }% + \def\Xprefix{#1}% + \import{\@importdir\@importfile}% + \def\Xprefix{}% + \egroup + \gdef\@shortauthor{}% + \gdef\@shorttitle{}% + \gdef\@firstauthor{}% + \gdef\@jmlrauthors{}% + \gdef\@firstsurname{}% +} + +\newcommand{\importpaper}[3][]{% + \ClassError{jmlrbook}{\string\importpaper\space +not permitted outside `jmlrpapers' environment}{}% +} +\newcommand{\@importarticle}[3][\@importdir\@importfile]{% + \bgroup + \def\@importdir{#2/}% + \def\@importfile{#3}% + \@write@jmlr@import{#1}{#2}{#3}% + \def\@extra@b@citeb{#1}% + \def\@extra@binfo{#1}% + \def\jmlrmaketitlehook{% + \addtomaincontents{toc}% + {\protect\contentsline{papertitle}{\@shorttitle}{\thepage}% + {page.\thepage}}% + \refstepcounter{chapter}% + \pdfbookmark{\@shorttitle}{chapter.\thechapter}% + \def\@jmlr@authors@sep{ \& }% + \tocchapterauthor{\@jmlrauthors}% + \@write@author{#1}{\@jmlrauthors}% + \jmlrpages{}% + \jmlrvolume{}% + \jmlryear{}% + \jmlrsubmitted{}% + \jmlrpublished{}% + \jmlrproceedings{}{}% + }% + \def\jmlrpremaketitlehook{% + \cleardoublepage + \phantomsection + \let\@currentlabelname\@shorttitle + }% + \graphicspath{{\@importdir}}% + \def\InputIfFileExists##1##2##3{% + \IfFileExists{##1}{% + \@org@InputIfFileExists{##1}{##2}{##3}% + }% + {% + \@org@InputIfFileExists{\@importdir##1}{##2}{##3}% + }% + }% + \def\Xprefix{#1}% + \import{\@importdir\@importfile}% + \def\Xprefix{}% + \egroup + \gdef\@shortauthor{}% + \gdef\@shorttitle{}% + \gdef\@firstauthor{}% + \gdef\@jmlrauthors{}% + \gdef\@firstsurname{}% +} +\newcommand{\importarticle}[3][]{% + \ClassError{jmlrbook}{\string\importarticle\space +not permitted outside `jmlrpapers' environment}{}% +} +\newcommand{\addtocpart}[1]{% + \cleardoublepage + \refstepcounter{tocpart}% + \addtocontents{toc}{\protect\tocpart{#1}}% + \pdfbookmark[-1]{#1}{part.\thetocpart}% +} +\newcounter{tocpart} +\newcommand{\tocpart}[1]{% + \addpenalty{-\@highpenalty}% + \vskip 1.0ex \@plus\p@ + \setlength\@tempdima{2.25em}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \large\bfseries + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss \null}\par + \penalty\@highpenalty + \endgroup +} +\setlength{\prechapterskip}{3em} +\setlength{\postchapterskip}{20pt} +\renewcommand{\chapternumberformat}[1]{% + \Large\bfseries \@chapapp\space#1\par +} +\renewcommand{\chaptertitleformat}[1]{% + \Large\bfseries #1} +\renewcommand*{\chapterformat}{% + \raggedright +} +\renewcommand{\preparthook}{\cleardoublepage\null\vfil} +\renewcommand{\partnumberformat}[1]{% + \Huge\bfseries \@partapp\nobreakspace#1\par\nobreak + \vskip 20\p@ +} +\def\postparthook{% + \thispagestyle{empty}% + \vfil\newpage + \null + \thispagestyle{empty}% + \newpage +} +\newcommand{\@curparthead}{} +\renewcommand{\parttitleformat}[1]{#1% + \gdef\@curparthead{\@partapp\space \thepart. #1}% + \@mkboth{\@curparthead}{\@curparthead}% +} +\renewcommand{\firstpageno}[1]{} +\newcommand{\tocchapterauthor}[1]{% + \addtomaincontents{toc}{\protect\contentsline{chapterauthor}{% + #1}{}{}}% +} +\newcommand{\tocchapterpubauthor}[2]{% + \addtomaincontents{toc}{\protect\contentsline{chapterauthor}{% + #1; #2.}{}{}}% +} +\renewcommand*\@pnumwidth{2em} +\renewcommand*\l@part[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \vskip 1.0em \@plus\p@ + \setlength\@tempdima{5em}% + \vbox{% + \pagerule + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \large\bfseries + \advance\leftskip\@tempdima + \hskip -\leftskip + \renewcommand*\numberline[1]{\hb@xt@ \@tempdima + {\partname\space ##1\hfil }}% + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss }\par + \penalty\@highpenalty + \endgroup + \pagerule + }% + \fi} +\newcommand*{\l@papertitle}[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \vskip 1.0em \@plus\p@ + \setlength\@tempdima{3em}% + \begingroup + \leavevmode \raggedright\itshape + #1\nobreak\hfill \nobreak\hb@xt@\@pnumwidth{\hss + \normalfont#2}% + \par + \penalty\@highpenalty + \endgroup + \fi +} +\newcommand*\l@chapterauthor[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \raggedright + #1% + \par + \endgroup + \fi} +\renewcommand*\l@section[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \vskip 1.0em \@plus\p@ + \setlength\@tempdima{3em}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \normalsize\mdseries + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + \penalty\@highpenalty + \endgroup + \fi} +\renewcommand*\l@subsection[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \vskip 1.0em \@plus\p@ + \setlength\@tempdima{3.5em}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \normalsize\mdseries + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + \penalty\@highpenalty + \endgroup + \fi} +\renewcommand*{\chaptermark}[1]{% + \@mkboth{\@curparthead}{\protect\thechapter. #1}% +} +\newcommand{\firstpagehead}{} +\newcommand{\firstpagefoot}{\hfill\thepage} +\renewcommand*{\headfont}{\reset@font\small\scshape}% +\renewcommand*{\footfont}{\reset@font\small\itshape}% +\newcommand*{\ps@chplain}{% + \let\@mkboth\@gobbletwo + \renewcommand*{\@oddhead}{\headfont\firstpagehead}% + \renewcommand*{\@evenhead}{}% + \renewcommand*{\@oddfoot}{\footfont\firstpagefoot}% + \renewcommand*{\@evenfoot}{\footfont\thepage\hfill + }% +} +\let\ps@plain\ps@chplain +\newcommand*{\ps@article}{% + \let\@mkboth\@gobbletwo + \renewcommand*{\@oddhead}{\headfont\hfill\@shorttitle}% + \renewcommand*{\@evenhead}{\headfont\@shortauthor\hfill}% + \renewcommand*{\@oddfoot}{\footfont\hfill\thepage} + \renewcommand*{\@evenfoot}{\footfont\thepage\hfill} +} +\newcommand*{\ps@jmlrbook}{% + \ps@headings + \renewcommand*{\sectionmark}[1]{}% +} +\renewcommand*{\morefrontmatter}{\pagestyle{jmlrbook}% + \def\chaptermark##1{% + \@mkboth{##1\hfill}{\hfill##1}}% +} +\renewcommand*{\moremainmatter}{\pagestyle{jmlrbook}% + \def\chaptermark##1{% + \@mkboth{\@curparthead}{\protect\thechapter. ##1}% + }% +} +\renewcommand*\bibsection{\section*{\refname}} +\def\@bookpart[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{\@parttoclabel}{% + \protect\numberline{\thepart}#1}% + \else + \addcontentsline{toc}{\@parttoclabel}{#1}% + \fi + \markboth{}{}% + {\interlinepenalty \@M + \normalfont\partformat + \ifnum \c@secnumdepth >-2\relax + \partnumberformat{\thepart}% + \fi + \parttitleformat{#2}\par}% + \postparthook} +\jmlrbookcommands +\endinput +%% +%% End of file `jmlrbook.cls'. diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 0f8bf9069be..e8993409a08 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -171,7 +171,7 @@ my @TLP_working = qw( interactiveworkbook intro-scientific inversepath ionumbers iopart-num iso iso10303 isodate isodoc isomath isonums isorot isotope itnumpar iwona - jablantile jeopardy jknapltx jneurosci jpsj junicode + jablantile jeopardy jknapltx jmlr jneurosci jpsj junicode jura juraabbrev jurabib juramisc jurarsp js-misc kalender kastrup kerkis kerntest keycommand keystroke kix kixfont diff --git a/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc b/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc index 560434383d7..2a77c13c301 100644 --- a/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc @@ -35,6 +35,7 @@ depend ijmart depend imac depend imtekda depend jhep +depend jmlr depend jpsj depend kluwer depend lps diff --git a/Master/tlpkg/tlpsrc/jmlr.tlpsrc b/Master/tlpkg/tlpsrc/jmlr.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d -- cgit v1.2.3