summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/jacow/jacow.cls
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/jacow/jacow.cls
Initial commit
Diffstat (limited to 'macros/latex/contrib/jacow/jacow.cls')
-rw-r--r--macros/latex/contrib/jacow/jacow.cls503
1 files changed, 503 insertions, 0 deletions
diff --git a/macros/latex/contrib/jacow/jacow.cls b/macros/latex/contrib/jacow/jacow.cls
new file mode 100644
index 0000000000..36df55ad00
--- /dev/null
+++ b/macros/latex/contrib/jacow/jacow.cls
@@ -0,0 +1,503 @@
+%%
+%% This file has been developed as a common template for papers
+%% destined for electronic production for Accelerator Conferences
+%%
+%% See the JACoW website for more information
+%%
+%% http://jacow.org/
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3c of this license or (at your option) any later
+%% version. This version of this license is in
+%% http://www.latex-project.org/lppl/lppl-1-3c.txt
+%% and 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".
+%%
+%% This Current Maintainer of this work is Volker RW Schaa.
+%%
+%% This work consists of the following files
+%% jacow.cls this class file
+%% JACoW_LaTeX_A4.tex A4/letter templates to demonstrate the
+%% JACoW_LaTeX_Letter.tex .. use and explain the various parameters
+%% .. and settings for a submission to
+%% .. a JACoW conference proceedings
+%% JACoW_LaTeX_A4.pdf template in format A4 and European
+%% settings (citation and hyphenation)
+%% JACoW_LaTeX_Letter.pdf template in format letter and American
+%% setting (citation and hyphenation)
+%% annexes-A4.tex Annexes A-C which are included in "JACoW_LaTeX_A4.tex"
+%% annexes-Letter.tex Annexes A-C which are included in "JACoW_LaTeX_Letter.tex"
+%%
+%% JACpic_mc.pdf a graphic showing the JACoW page format
+%% JACpic2.jpg a graphic for a full width figure and
+%% multiline caption
+%% jacow-collaboration.tex an example title page showing the
+%% jacow-collaboration.pdf JACoW Colloaboration, the responsible
+%% editors for the various platform
+%% dependent templates (LaTeX, Word on PC and
+%% Mac, ODF). The PDF is included in the template
+%%
+%
+% v0.1 to 1.3 : JAC2000.cls
+% Special thanks to John Jowett and Michel Goossens from CERN and
+% Martin Comyn at TRIUMF for their significant contributions to
+% this class file over the period 1996 to 2000.
+% John Poole
+% March 2000
+% v1.4 : JAC2001.cls
+% JAC2001.cls is a modified version of JAC2000.cls to produce indented
+% first paragraphs after section, subsection and subsubsection headings.
+% Martin Comyn April 2001
+%
+% v1.5 : JAC2003.cls
+% This is a modified version of JAC2003.cls to adjust space around
+% section and subsection headers to be more consistent with JACoW Word
+% templates. Todd Satogata March 2011
+%
+% v 1.6 : jacow.cls
+% This is a complectly rewritten version of JAC2003.cls which needs a current
+% TeX-System to run.
+% Ulrike Fischer, November 2013
+%
+% v 1.7
+% - small change to correct the text block inside JACoW's magic red borders for
+% a4paper (aca4); top has been set 18.5mm (19mm is defined in the template but
+% leaves descenders outside the lower y margin).
+% - duplicate {boxit} removed
+% Volker RW Schaa, 14 April 2014
+%
+% v1.8
+% - added setup for \micro sign which disappears when using XeTeX or LuaTeX
+% with unicode-math. Ulrike Fischer, 21 April 2014
+%
+% v1.9
+% - fixed the pdfLaTeX warnings for the text/math-micro hack
+% Ulrike Fischer, 22 April 2014
+%
+% v1.91
+% - Ligatures=TeX switch introduced to accommodate
+% Ulrike Fischer, 22 April 2014
+%
+% v1.92
+% - settings for top margin have to be different in A4 and letter to accommodate
+% JACoW's PitStop Action List. This was found after receiving Plamen Hopchev's
+% email about margins and testing the workflow with cropping the bounding box
+% which starts at the lower left edge and not at the top (see graphic JACpic_mc
+% in the template for measures).
+% Volker RW Schaa, 29 April 2014
+% v1.93
+% - setting the bottom margin (19mm) without top solves the problem for different
+% A4/Letter settings. This was already the default in v1.6. Pointed out by
+% Plamen Hopchev. To accommodate the descenders the bottom margin has been set
+% to 56pt now.
+% Volker RW Schaa, 01 May 2014
+%
+% v1.94
+% - the micro sign in UTF-8 prevents ASCII format of the cls file. Ulrike pointed
+% out a hack in http://tex.stackexchange.com/questions/172968/hide-notation-from-pdftex
+% which is now introduced.
+% Volker RW Schaa, 02 May 2014
+%
+% v1.95
+% - only change to the version 1.94 are the extended documenation and license
+% statement (lppl1.3c) as preparation for publication on CTAN.
+% Volker RW Schaa, 02 May 2014
+%
+% v1.96
+% - modification of bibatex style information. Since the JACoW template Feb-2016
+% the bibliography requires the IEEEtran style. Heine provided an adapted
+% version using the required values of the template:
+% + ieee biblatex style instead of numeric-compv
+% + doi field is cleared for all entries
+% + et al. is used when there are > 6 authors (maxnames=6). In that case,
+% only the first author is mentioned (minnames=1)
+% + url field is cleared for articles and inproceedings
+% + giveninits=true reduces all given names to initials
+% Heine Dølrath Thomsen, 30 June 2016
+%
+% v2.00
+% - after using v1.96 during conferences where DOIs/URLs were present in biblio-
+% graphic records, the following changes to Heine's version have been made:
+% + doi field allowed
+% + url field allowed
+% Volker RW Schaa, 02 May 2014
+% v2.1 new options introduced
+% flushend: new: keeplastbox
+% siunitx: new: binary-units=true
+% BibLaTeX: changed: style=ieee => bibstyle=ieee, citestyle=numeric-comp
+% new: dashed=false
+% removed: doi=false
+% Volker RW Schaa, 02 May 2014
+%
+% v2.2
+% - adapted to the changes of template version 2018-02
+% - made this one official
+% Volker RW Schaa, 23 Feb 2018
+%
+% v2.3
+% - font for tt switched to newtxtt with option zerostyle=d (dotted 0)
+% Volker RW Schaa, 15 Jan 2019
+%
+% v2.4
+% - version 2.3 did not work for XeTeX/LuaTeX, therefore font change using
+% \def\UrlFont and switching the fontencoding to T1 (suggested by Ulrike Fischer)
+% - package amsmath included to provide
+% Volker RW Schaa, 01 Apr 2019
+%
+\def\fileversion{2.4}
+\def\filedate{2019/04/01}
+\def\docdate {2019/04/01}
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{jacow}[\filedate\space Version \fileversion]
+
+\typeout{------------------------------------------------------------------------}
+\typeout{LaTeX2e Class file for Accelerator Conference publication for LaTeX2e users}
+\typeout{ }
+\typeout{Use the boxit option to draw a box on page showing the correct margins}
+\typeout{ }
+\typeout{Itemize, Enumerate and Description environments are compact versions}
+\typeout{------------------------------------------------------------------------}
+\typeout{ }
+
+\newif\ifjacowbiblatex
+\newif\ifjacowrefpage
+
+\DeclareOption{acus}{%
+ \PassOptionsToPackage{paper=letterpaper}{geometry}
+ \typeout{Setup for US LETTER PAPER}}
+
+\DeclareOption{letterpaper}{%
+ \PassOptionsToPackage{paper=letterpaper}{geometry}
+ \typeout{Setup for US LETTER PAPER}}
+
+\DeclareOption{a4paper}{%
+ \PassOptionsToPackage{paper=a4paper}{geometry}
+ \typeout{Setup for A4 PAPER}}
+
+\DeclareOption{aca4}{%
+ \PassOptionsToPackage{paper=a4paper}{geometry}
+ \typeout{Setup for A4 PAPER}}
+
+\DeclareOption{boxit}{\PassOptionsToPackage{showframe}{geometry}}
+
+\DeclareOption{biblatex}{\jacowbiblatextrue}
+
+\DeclareOption{refpage}{\jacowrefpagetrue}
+
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
+
+\ExecuteOptions{aca4}
+\ProcessOptions
+
+\RequirePackage{fix-cm}
+\LoadClass[10pt,twocolumn]{article}
+\RequirePackage[keeplastbox]{flushend} %% modified
+% Tools:
+\RequirePackage{etoolbox}
+\RequirePackage{ifxetex}
+\RequirePackage{ifluatex}
+\RequirePackage{textcase}
+%
+%Add thanks to the list of "\@nonchangecase"-commands from textcase:
+\def\@uclcnotmath#1#2#3#4{\begingroup
+ #1%
+ \def\({$}\let\)\(%
+ \def\NoCaseChange##1{\noexpand\NoCaseChange{\noexpand##1}}%
+ \@nonchangecase\label
+ \@nonchangecase\ref
+ \@nonchangecase\ensuremath
+ \@nonchangecase\thanks %new
+ \@nonchangecase\si %new
+ \@nonchangecase\SI %new
+ \def\cite##1##{\toks@{\noexpand\cite##1}\@citex}%
+ \def\@citex##1{\NoCaseChange{\the\toks@{##1}}}%
+ \def\reserved@a##1##2{\let#2\reserved@a}%
+ \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
+ \protected@edef\reserved@a{\endgroup
+ \noexpand\@skipmath#3#4$\valign$}%
+ \reserved@a}
+
+\RequirePackage[detect-mode,detect-weight, binary-units=true]{siunitx}
+\RequirePackage{graphicx}
+\RequirePackage{booktabs}
+\RequirePackage[figureposition=bottom,tableposition=top,skip=5pt]{caption}
+\RequirePackage{xcolor}
+\RequirePackage{amsmath}
+\AtEndPreamble{\RequirePackage[autostyle]{csquotes}}
+
+
+% Page layout:
+\RequirePackage[%
+ textwidth=170mm,
+ textheight=241mm,
+ heightrounded,
+ left=20mm,
+ bottom=56pt,
+ columnsep=5mm,
+ noheadfoot,
+ nomarginpar,
+ twocolumn]
+ {geometry}
+
+\columnseprule 0pt
+\usepackage[hang]{footmisc}
+\setlength{\footnotemargin}{.6em}
+
+
+\pagestyle{empty}
+
+\RequirePackage{url}
+%
+% redefine the default Typewriter Font to newtxtt with dotted zeros (v2.3)
+%
+\RequirePackage[zerostyle=d]{newtxtt}
+\newcommand\urlZDtxt{\fontencoding{T1}\fontfamily{newtxtt}\selectfont}
+\def\UrlFont{\urlZDtxt}
+
+\ifboolexpr{bool{xetex} or bool{luatex}}
+ {}
+ { \catcode`\^^^=9
+ }
+
+\ifboolexpr{bool{xetex} or bool{luatex}}
+ { \let\ori@vdots\vdots
+ \RequirePackage{unicode-math}
+ \AtBeginDocument{\let\vdots\ori@vdots}
+ \setmainfont[Ligatures=TeX]{TeX Gyre Termes}
+ \setmathfont{TeX Gyre Termes Math}
+ \sisetup{
+ math-micro = \text{^^^^03bc},
+ text-micro = ^^^^03bc
+ }
+ }
+ {
+ % Fonts: Times clones
+ \RequirePackage{textcomp}
+ \RequirePackage[T1]{fontenc}
+ \RequirePackage{lmodern}
+ \RequirePackage{tgtermes}
+ \RequirePackage{newtxmath}
+ \input{glyphtounicode}
+ \pdfgentounicode=1
+% \RequirePackage{cmap}
+ }
+
+\RequirePackage{microtype}
+
+%Lists
+
+\RequirePackage{enumitem}
+\newenvironment{Enumerate}{\begin{enumerate}[nosep]}{\end{enumerate}}
+\newenvironment{Itemize}{\begin{itemize}[nosep]}{\end{itemize}}
+\newenvironment{Description}{\begin{description}[nosep]}{\end{description}}
+
+
+%Floatparameter:
+\renewcommand{\topfraction}{.95}
+\renewcommand{\bottomfraction}{.95}
+\renewcommand{\textfraction}{0.1}
+\renewcommand{\floatpagefraction}{0.8}
+
+
+%headings:
+% section: Uppercase only for text
+\renewcommand{\section}
+ {%
+ \@startsection{section}{1}{0mm}
+ {2.0ex plus 0.8ex minus .1ex}{1.0ex plus .2ex}
+ {\normalfont\large\bfseries\mathversion{bold}\centering\MakeTextUppercase}%
+ }%
+
+\renewcommand\subsection
+ {%
+ \@startsection{subsection}{2}{\z@}
+ {1.4ex plus .8ex minus .17ex}{0.8ex plus .17ex}
+ {\normalfont\large\itshape}%
+ }
+
+\renewcommand\subsubsection
+ {%
+ \@startsection{subsubsection}{3}{\parindent}
+ {2.5ex plus .7ex minus .17ex}{-1em}
+ {\normalfont\normalsize\bfseries}%
+ }
+
+\renewcommand\paragraph
+ {%
+ \@startsection{paragraph}{4}{\z@}
+ {2.5ex plus .7ex minus .17ex}{-1em}
+ {\normalfont\normalsize\itshape}%
+ }
+
+\renewcommand\subparagraph
+ {%
+ \@startsection{subparagraph}{4}{\parindent}
+ {2.25ex plus .7ex minus .17ex}{-1em}
+ {\normalfont\normalsize\bfseries}%
+ }
+
+\setcounter{secnumdepth}{0}
+
+% This definition of \maketitle taken from article.sty, and has been
+% somewhat modified.
+
+\def\maketitle{\par
+ \begingroup
+ \def\thefootnote{\fnsymbol{footnote}}
+ \def\@makefnmark{\hbox
+ to 5pt{$^{\@thefnmark}$\hss}}
+ \twocolumn[\@maketitle]
+ \@thanks
+ \endgroup
+ \enlargethispage{\jac@copyrightspace}%
+ \setcounter{footnote}{0}
+ \let\maketitle\relax
+ \let\@maketitle\relax
+ \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax}
+
+\newlength{\titleblockheight} % so user can change it if need be
+\setlength{\titleblockheight}{3.5cm}
+
+\newlength\titleblockstartskip
+\setlength\titleblockstartskip{3pt}
+
+
+\newlength\titleblockmiddleskip
+\setlength\titleblockmiddleskip{1em}
+
+\newlength\titleblockendskip
+\setlength\titleblockendskip{1em}
+
+
+\def\@maketitle{%
+ \vskip \titleblockstartskip \centering
+ {\Large\bfseries \MakeTextUppercase{\@title} \par}
+ \vskip \titleblockmiddleskip % Vertical space after title.
+ {\large\begin{tabular}[t]{@{}c@{}}\@author \end{tabular}\par}
+ \vskip \titleblockendskip}
+
+
+% The \copyrightspace command is used to produce a blank space in the first
+% column where a copyright notice may go. It works by producing
+% with \enlargethispage and is inserted by \maketitle.
+% The command should be issued in the preamble.
+
+\newcommand\jac@copyrightspace{0pt}
+\newcommand\copyrightspace[1][1cm]{\renewcommand\jac@copyrightspace{-#1}}
+
+\ifboolexpr{bool{@titlepage}}
+{\renewenvironment{abstract}
+ {\list{}{%
+ \setlength{\leftmargin}{\dimexpr\textwidth/2-0.75\columnwidth}%
+ \setlength{\rightmargin}{\dimexpr-0.75\columnwidth-\columnsep}%
+ \setlength{\listparindent}{\parindent}%
+ \setlength{\itemsep}{\parskip}%
+ \setlength{\itemindent}{\z@}%
+ \setlength{\topsep}{\z@}%
+ \setlength{\parsep}{\parskip}%
+ \setlength{\partopsep}{\z@}%
+ \let\makelabel\@gobble
+ \setlength{\labelwidth}{\z@}%
+ \advance\@listdepth\m@ne }%
+ \item\relax\subsection*{Abstract}}
+ {\endlist\clearpage}
+}
+{%
+ \renewenvironment{abstract}
+ {\subsection*{Abstract}}
+ {\par}
+}
+\ifboolexpr{bool{jacowbiblatex}}
+%2.00 {\RequirePackage[style=ieee,sorting=none,giveninits=true,doi=false,maxnames=6,minnames=1]{biblatex}
+%2.1 {\RequirePackage[style=ieee,sorting=none,giveninits=true,maxnames=6,minnames=1]{biblatex}
+%2.2
+ {\RequirePackage[bibstyle=ieee,citestyle=numeric-comp,dashed=false,sorting=none,giveninits=true,maxnames=6,minnames=1]{biblatex}
+ \renewbibmacro*{url+urldate}{%
+ \iffieldundef{url}
+ {}
+ {\printfield{url}%
+ \nopunct}}%
+ \DeclareFieldFormat{url}{\url{#1}}
+ \DeclareFieldFormat{eprint}{#1}
+%% when to activate this? Paper format acus/letter
+% \DefineBibliographyExtras{american}{\stdpunctuation} % mod
+ % Drop urls for article and inproceedings entries
+%2.00 \DeclareFieldFormat
+%2.00 [article,inproceedings]
+%2.00 {url}{}
+ %
+ \setlength\bibitemsep{0pt}
+ \setlength\bibparsep{0pt}
+ \setlength\biblabelsep{5pt}
+ \ifjacowrefpage\preto\blx@bibliography{\clearpage}\fi
+ \AtBeginBibliography{\small\clubpenalty4000\widowpenalty4000}%
+ }
+ {\RequirePackage{cite}
+ % Redefine to use smaller fonts
+ \def\thebibliography#1{\setlength{\itemsep}{0pt}\setlength{\parsep}{0pt}%
+ \ifjacowrefpage\clearpage\fi
+ \section*{REFERENCES\@mkboth
+ {REFERENCES}{REFERENCES}}\small\list
+ {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \usecounter{enumi}}
+ \def\newblock{\hskip .11em plus .33em minus .07em}
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=1000\relax}
+ \let\endthebibliography=\endlist
+ }
+
+
+%\sloppy
+\clubpenalty10000\widowpenalty10000
+\flushbottom
+%-----------------------------------------------------------------------
+
+%avoid bug of fixltx2e:
+%http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/4023
+\RequirePackage{fixltx2e}%
+\def\@outputdblcol{%
+ \if@firstcolumn
+ \global\@firstcolumnfalse
+ \global\setbox\@leftcolumn\copy\@outputbox
+ \splitmaxdepth\maxdimen
+ \vbadness\maxdimen
+ \setbox\@outputbox\vbox{\unvbox\@outputbox\unskip}%new
+ \setbox\@outputbox\vsplit\@outputbox to\maxdimen
+ \toks@\expandafter{\topmark}%
+ \xdef\@firstcoltopmark{\the\toks@}%
+ \toks@\expandafter{\splitfirstmark}%
+ \xdef\@firstcolfirstmark{\the\toks@}%
+ \ifx\@firstcolfirstmark\@empty
+ \global\let\@setmarks\relax
+ \else
+ \gdef\@setmarks{%
+ \let\firstmark\@firstcolfirstmark
+ \let\topmark\@firstcoltopmark}%
+ \fi
+ \else
+ \global\@firstcolumntrue
+ \setbox\@outputbox\vbox{%
+ \hb@xt@\textwidth{%
+ \hb@xt@\columnwidth{\box\@leftcolumn \hss}%
+ \hfil
+ \vrule \@width\columnseprule
+ \hfil
+ \hb@xt@\columnwidth{\box\@outputbox \hss}}}%
+ \@combinedblfloats
+ \@setmarks
+ \@outputpage
+ \begingroup
+ \@dblfloatplacement
+ \@startdblcolumn
+ \@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}%
+ \endgroup
+ \fi}
+
+\endinput