source: Selma/PARISROC/JINST.cls @ 468

Last change on this file since 468 was 466, checked in by campagne, 15 years ago

Instruction and example For JINST (JEC)

File size: 62.5 KB
Line 
1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2%%%%%%%%%%%%%%%%%%%%%%%%% JINST.cls 1.0.1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4%%
5%% This file is Copyright JINST 2006:  it can be freely distributed  but
6%% NOT modified preserving its name, even in similar forms.
7%%
8%% JINST.cls is a LaTeX2e class file used to typeset manuscripts in
9%% Journal of Instrumentation (http://jinst.sissa.it) style. It was
10%% written by P. Dall'Aglio as a modification of the class JHEP3.cls
11%%
12%% JINST.cls is only for internal use of the JINST typesetting office.
13%%
14%% For bugs, comments, suggestions email to jinst-eo@jhep.sissa.it
15%%
16%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17%% \CharacterTable
18%%  {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
19%%   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
20%%   Digits        \0\1\2\3\4\5\6\7\8\9
21%%   Exclamation   \!     Double quote  \"     Hash (number) \#
22%%   Dollar        \$     Percent       \%     Ampersand     \&
23%%   Acute accent  \'     Left paren    \(     Right paren   \)
24%%   Asterisk      \*     Plus          \+     Comma         \,
25%%   Minus         \-     Point         \.     Solidus       \/
26%%   Colon         \:     Semicolon     \;     Less than     \<
27%%   Equals        \=     Greater than  \>     Question mark \?
28%%   Commercial at \@     Left bracket  \[     Backslash     \\
29%%   Right bracket \]     Circumflex    \^     Underscore    \_
30%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
31%%   Right brace   \}     Tilde         \~}
32%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
33\NeedsTeXFormat{LaTeX2e}[1995/12/01]
34\ProvidesClass{JINST} [2006/07/11 v1.0.1 LaTeX document class - P.D.]
35
36%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
37\def\logo{\raisebox{-10.5\p@}{\hb@xt@85\p@{\includegraphics{JINSTlogo}\hfil}}}
38
39%%%%%%%%%%%%%%%%%%%%%%%%%%%% NEW SWITCHES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
40\newif\if@preprint\@preprinttrue                % DEFAULT IS PREPRINT!
41\newif\if@draft   \@draftfalse                  % DEFAULT IS NOT DRAFT
42\newif\if@hyper   \@hypertrue                   % DEFAULT IS HYPER
43\newif\if@proc    \@procfalse                   % DEFAULT IS NOT PROC
44
45\newif\if@author\@authorfalse                   %
46\newif\if@abstract\@abstractfalse               % FOR FRONTMATTER DECLARATIONS
47\newif\if@keywords\@keywordsfalse               %
48\newif\if@todotoc\@todotocfalse                 %
49\newif\if@rece\@recefalse                       %
50\newif\if@revi\@revifalse                       %
51\newif\if@acce\@accefalse                       %
52\newif\if@publi\@publifalse                     %
53\newif\if@Jcopy\@Jcopyfalse                     %
54\newif\if@conf\@conffalse                       %
55\newif\if@Jspecialurl\@Jspecialurlfalse
56\newif\if@Jcits\@Jcitsfalse
57\newif\ifpdf
58\ifx\pdfoutput\undefined
59\else
60  \ifx\pdfoutput\relax
61  \else
62    \ifcase\pdfoutput
63    \else
64      \pdftrue
65    \fi
66  \fi
67\fi
68
69
70\if@compatibility
71    \setlength\paperheight {297mm}%             % DEFAULT FOR LATEX209 IS a4
72    \setlength\paperwidth  {210mm}%
73\else                                           % CHOSE PAPER:
74\DeclareOption{a4paper}
75   {\setlength\paperheight {297mm}%
76    \setlength\paperwidth  {210mm}}
77\DeclareOption{a5paper}{\@OImess{}}             % IGNORED a5
78\DeclareOption{b5paper}{\@OImess{}}             % IGNORED b5
79\DeclareOption{letterpaper}
80   {\setlength\paperheight {11in}%
81    \setlength\paperwidth  {8.5in}}
82\DeclareOption{legalpaper}
83   {\setlength\paperheight {14in}%
84    \setlength\paperwidth  {8.5in}}
85\DeclareOption{executivepaper}
86   {\setlength\paperheight {10.5in}%
87    \setlength\paperwidth  {7.25in}}
88\DeclareOption{landscape}{\@OImess{}}           % IGNORED landscape
89\fi
90
91\newcommand\@ptsize{1}                          % DEFAULT SIZE IS 11 PT
92
93\DeclareOption{published}{%
94\ifpdf
95%\JINST@warnl{Option 'published' incompatible with
96%pdf output, turning to dvi output}\pdffalse\pdfoutput=0
97\@preprintfalse
98\else
99\@preprintfalse%
100\fi}
101\DeclareOption{nocits}{\if@preprint\@OImess{ is default for preprints}\else
102                       \@Jcitsfalse
103                       \fi}
104
105\DeclareOption{cits}{%\if@preprint
106                     \@Jcitstrue %\else
107                     %\@OImess{ is automatic for published papers}\fi
108                     } 
109
110\DeclareOption{hyper}{\@hypertrue}      % HYPER IS 11 PT
111\DeclareOption{nohyper}{\@hyperfalse}   % PAPER IS ALSO 11 PT (v1.3)
112\DeclareOption{paper}{\@hyperfalse}     % PAPER IS ALSO 11 PT
113\DeclareOption{11pt}{\renewcommand\@ptsize{1}\ExecuteOptions{@FONT}}
114\DeclareOption{12pt}{\renewcommand\@ptsize{2}\ExecuteOptions{@FONT}}
115\if@compatibility\else                          % LATEX2.09 HAS NO 10PT
116\DeclareOption{10pt}{\renewcommand\@ptsize{0}\ExecuteOptions{@FONT}}% v1.4
117\fi                                     % CHOSEN TO FREE MEMORY LATER:
118\DeclareOption{@FONT}{\if@preprint              % IF PREPRINT ALLOW ANY,
119                        \else                                 % IF PUBLISHED:
120                        \renewcommand\@ptsize{1}\@NFmess{11pt}% ALWAYS 11PT
121                        \fi
122                        }
123                       
124\if@compatibility\else
125\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}\fi
126\DeclareOption{twoside}{\if@preprint\if@hyper\@OImess{ in hyper-mode}
127                                    \else\@twosidetrue\@mparswitchtrue\fi
128                        \else                   % FOR PUBLISHED
129                        \@OImess{ in published papers}
130                        \fi}
131\DeclareOption{notoc}{\if@preprint              % to disable TOC
132                        \AtBeginDocument{\@todotocfalse}
133                        \else
134                        \@OImess{ in JINST papers}
135                        \fi}
136\DeclareOption{draft}{\setlength\overfullrule{5pt}% EXTENDED DRAFT
137        \newcount\hour\newcount\minute
138        \hour=\time \divide\hour by60 \minute=\time
139        {\multiply\hour by60 \global\advance\minute by-\hour}
140        \edef\militarytime{\number\hour:\ifnum\minute<10 0\fi\number\minute}
141        \let\old@eqnnum\@eqnnum
142        \def\@eqnnum{\old@eqnnum\rlap{\kern\marginparsep
143                                \if@twocolumn\if@firstcolumn
144                                  \kern-2\marginparsep\kern-\columnwidth\
145                                  \llap\bgroup\else\bgroup\fi
146                                \else
147                                \if@twoside\ifodd\c@page
148                                  \kern-2\marginparsep\kern-\textwidth
149                                  \llap\bgroup\else\bgroup\fi
150                                \else\bgroup\fi                         
151                                \fi
152                                \sf\scriptsize\@eqnlabel\egroup}%
153                                \gdef\@eqnlabel{}}
154        \let\@eqnlabel\relax
155        \def\math@note#1{\gdef\@eqnlabel{LAB: #1}}
156        \def\norm@note#1#2{\special{}% SORRY AGAIN.
157                         \ifinner{\ifdim\baselineskip=\z@% IN ARRAY..
158                                        \baselineskip18\p@\fi%%
159                                \ifhmode%   ATTENTION TO RESTRICTED VMODE!
160                                \raisebox{.5\baselineskip}[\z@][\z@]{%
161                                        \rlap{\sf\scriptsize #2}}%
162                                \else\vskip-\baselineskip%
163                                \raisebox{-.6\baselineskip}[\z@][\z@]{%
164                                                \rlap{\sf\scriptsize #2}}%
165                                \fi}%
166                         \else\marginpar{\raggedright\if@twoside\ifodd\c@page%
167                                        \raggedleft\fi\fi\sf\scriptsize #1#2}%
168                         \fi}%
169        \AtBeginDocument{\newbox\drft@box\setbox\drft@box=\hbox{%
170                        \framebox[\textwidth]{\sf\small JINST DRAFT
171                        \ttfamily(\cur@opt)\hfill\sf\bfseries\jobname\sf,
172                        \today, \militarytime}}}
173        \@drafttrue}
174
175\DeclareOption{titlepage}{\@OImess{}}           % IGNORED
176\if@compatibility\else
177\DeclareOption{notitlepage}{\@OImess{}}         % IGNORED
178\fi
179\if@compatibility\else
180\DeclareOption{onecolumn}{\@OImess{}}           % IGNORED
181\fi
182\DeclareOption{twocolumn}{\@OImess{}}           % IGNORED
183\DeclareOption{leqno}{\@OImess{}}       %\input{leqno.clo}} IGNORED ...
184\DeclareOption{fleqn}{\@OImess{}}       %\input{fleqn.clo}} IGNORED ...
185\DeclareOption{openbib}{\@OImess{}}             % IGNORED
186
187
188%%%%%%%%%%%%%%%%%%%%%%%%%%%%% MESSAGES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
189\newcommand\JINST@mess[1]{\typeout{Class JINST Message: \protect#1.}}%
190\newcommand\JINST@warn[1]{\ClassWarning{JINST}{#1}}
191\newcommand\JINST@warnl[1]{\ClassWarningNoLine{JINST}{#1}}
192\newcommand\JINST@igno[1]{\JINST@warn{IGNORED \protect#1}}
193\newcommand\JINST@ignol[1]{\JINST@warnl{IGNORED \protect#1}}
194\newcommand\@OImess[1]{\JINST@ignol{OPTION '\CurrentOption'#1}}
195\newcommand\@NFmess[1]{\JINST@mess{Normalsize set to #1}}
196\newcommand\@ENVwarn[1]{\JINST@warn{Please use \protect#1 in place
197                                                of LaTeX environment}}
198%%%%%%%%%%%%%%%%%%%%%%%%%% PROCESS OPTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%
199\ExecuteOptions{a4paper,oneside,hyper} %WERE ALSO 10pt,onecolumn
200\ProcessOptions
201
202%%%%%%%%%%%%%%%%%%%%%%%%%% REQUIRED PACKAGES %%%%%%%%%%%%%%%%%%%%%%%%%%
203\RequirePackage{amssymb}
204\RequirePackage[T1]{fontenc}
205\RequirePackage{times}
206\RequirePackage{mathptmx}
207\ifpdf
208      \RequirePackage[pdftex]{graphicx}
209      \DeclareGraphicsExtensions{.pdf,.jpg,.jpeg}
210\else
211      \RequirePackage{graphicx}
212      \DeclareGraphicsExtensions{.ps,.eps,.pstex}
213\fi
214%%%%%%%%%%%%%%%%%%%%%%%% TRICKS FOR DOTLESS J %%%%%%%%%%%%%%%%%%%%%%%%%
215%\j and \jmath are missing in font Times. So I use the ones from
216% Computer Modern. Works acceptably, but in sf
217\DeclareSymbolFont{forjmath}{OT1}{cmr}{m}{sl}
218\DeclareMathSymbol{\Jmath}{\mathord}{forjmath}{'021}
219\def\jmath{\Jmath}
220\DeclareFontFamily{OT1}{cmr}{}
221\DeclareFontFamily{OT1}{cmss}{}
222\def\j{\ifmmode\Jmath\else{\fontencoding{OT1}\fontfamily{cmr}\selectfont\char'021}\fi}
223%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END DOTLESS J %%%%%%%%%%%%%%%%%%%%%%%%%%%%
224
225
226
227%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
228%%%%%%%%%%%%%%%%%%%%%%%%%%%% START CODE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
229\input{size1\@ptsize.clo}
230\renewcommand{\baselinestretch}{1.1}\normalsize
231\setlength\lineskip{1\p@}
232\setlength\parindent{1.2\parindent}     % AT 12pt 1.5em BECOMES 1.8em=tocindent
233\setlength\normallineskip{1\p@}
234\setlength\parskip{0\p@ \@plus \p@}
235\@lowpenalty   51
236\@medpenalty  151
237\@highpenalty 301
238\widowpenalty 1000
239\clubpenalty 1000
240
241\setcounter{topnumber}{4}
242\renewcommand\topfraction{1} % default .7
243\setcounter{bottomnumber}{1}
244\renewcommand\bottomfraction{.6} %.2            % .6 ???***
245\setcounter{totalnumber}{5}
246\renewcommand\textfraction{0}
247\renewcommand\floatpagefraction{1}
248\setcounter{dbltopnumber}{3}
249\renewcommand\dbltopfraction{.7}
250\renewcommand\dblfloatpagefraction{1}
251
252\textwidth  .72\paperwidth      % WIDTH OF TEXT, REMAINS .28% FOR MARGINS
253%
254\setlength\@tempdima{.76\paperheight}   % HEIGHT OF TEXT WITH FOOTNOTES
255\divide\@tempdima\baselineskip          % EXCLUDING HEAD (AND FOOT)
256\@tempcnta=\@tempdima                   % rounded to integer (#lines-1)
257\setlength\textheight{\@tempcnta\baselineskip}
258\addtolength\textheight{\topskip}
259
260\voffset -1in
261\topmargin   .05\paperheight    % FROM TOP OF PAGE TO TOP OF HEADING (0=1inch)
262\headheight  .02\paperheight    % HEIGHT OF HEADING BOX.
263\headsep     .03\paperheight    % VERT. SPACE BETWEEN HEAD AND TEXT.
264\footskip    .07\paperheight    % FROM END OF TEX TO BASE OF FOOTER. (40pt)
265
266\marginparsep 9\p@              % HOR. SPACE BETWEEN TEXT AND MARGINAL NOTE
267\marginparpush 6\p@             % MIN. VERT. SPACE BETWEEN MARGINAL NOTES
268
269\hoffset -1in                           % TO ADJUST WITH PAPER:
270\if@twoside                             % IF TWO-SIDED:
271        \oddsidemargin .13\paperwidth   % LEFT MARGIN FOR ODD PAGES (10)
272        \evensidemargin .15\paperwidth  % LEFT MARGIN FOR EVEN PAGES (30)
273        \marginparwidth .10\paperwidth  % TEXTWIDTH OF MARGINALNOTES
274        \reversemarginpar               % BECAUSE OF TITLEPAGE.
275\else                                   % IF ONE-SIDED:
276        \oddsidemargin .14\paperwidth   % LEFT MARGIN FOR ODD PAGES (20)
277        \evensidemargin .14\paperwidth  % LEFT MARGIN FOR EVEN PAGES (20)
278        \marginparwidth .11\paperwidth  % TEXTWIDTH OF MARGINALNOTES
279\fi                                     %
280%%%%%%%%%%%%%%%%%%%%%%% HYPER (AND DRAFT) STUFF %%%%%%%%%%%%%%%%%%%%%%%
281\ifpdf
282      \input pdfcolor.tex
283\else
284\fi
285
286\bgroup\catcode`\#=12\gdef\hash{#}\egroup       % DEFINED \hash=#.
287\def\H@tilde{\string~}
288\newcommand{\href}[2]{\rule{0pt}{0pt}\bgroup\let~\H@tilde
289                      \if@hyper\ifpdf
290                                    \def\hash{}%
291                                    \pdfstartlink attr{/Border [1 1 1] /C [0 0 1]}
292                                    user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
293                                        \pdfsetcolor{0 0 0 1}%
294                                \else
295                                    \noexpand\special{html:<A href="#1">}%
296                                \fi
297                      \fi
298                      \rule{.2ex}{0pt}\rule[-.5ex]{0pt}{2.2ex}{#2}\rule[-.5ex]{0pt}{2.2ex}\rule{.1ex}{0pt}\egroup
299                      \if@hyper\ifpdf
300                                    \Black\pdfendlink
301                               \else
302                                    \special{html:</A>}%
303                               \fi
304                      \fi
305                      }
306% \intPlink was added because in pdflatex you need two different commands
307% for internal and external links. For latex they are the same.
308\newcommand{\intJlink}[2]{\rule{0pt}{0pt}\bgroup\let~\H@tilde
309                        \if@hyper\ifpdf
310                                       \def\hash{}%
311                                       \pdfstartlink attr{/Border [1 1 1] /C [0 0 1]}
312                                          goto name{#1}%
313                                       \pdfsetcolor{0 0 0 1}%
314                                  \else
315                                       \noexpand\special{html:<A href="#1">}%
316                                  \fi
317                        \fi
318                        \rule[-.2ex]{0pt}{1.8ex}{#2}\rule[-.2ex]{0pt}{1.8ex}\egroup
319                        \if@hyper\ifpdf
320                                      \Black\pdfendlink
321                                 \else
322                                      \special{html:</A>}%
323                                 \fi
324                        \fi
325                        }
326
327
328\newcommand{\name}[1]{{\if@hyper\ifpdf
329                                    \pdfdest name{#1} fith%
330                               \else
331                                    \noexpand\special% NAME HAS NO TAGGED TEXT HERE.
332                                        {html:<A name="#1">}\special{html:</A>}%
333                               \fi
334                      \fi}%
335                      }
336\newcommand{\base}[1]{\if@hyper\ifpdf
337                        \relax\JINST@warn{Command base undefined for pdf output}
338                        %\pdfdest baseurl{#1} fith%
339                       \else
340                        \bgroup\let~\H@tilde
341                        \noexpand\special       % BASE HAS NO TAGGED TEXT.
342                        {html:<base href="#1">}\egroup
343                       \fi\fi}
344%------------------------------------------------------------------%
345% SECTION TAGS and  THEIR REFERENCE IN TOC \d@t will be '.' for sections only
346\if@hyper
347\renewcommand{\@seccntformat}[1]{\name{sec\csname the#1\endcsname}%
348                                 \csname the#1\endcsname\d@t\hspace{1ex}}
349\renewcommand{\numberline}[1]{\hb@xt@\@tempdima{\intJlink
350                              {\hash\hyp@typ#1}{#1}\d@t\hfil}}
351\else
352\renewcommand{\@seccntformat}[1]{\csname the#1\endcsname\d@t\hspace{1ex}}
353\renewcommand{\numberline}[1]{\hb@xt@\@tempdima{#1\d@t\hfil}}
354\fi
355%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
356%%%%%%%%%%%% this is to obtain collapsing citations %%%%%%%%%%%%%%%%%%
357\if@Jcits                             % only if 'cits' option is chosen
358\newcount\@tempcntc
359\def\@citex[#1]#2{%
360  \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}%
361  \@cite{\@for\@citeb:=#2\do%                                               for aech citation...
362         {\edef\@citeb{\expandafter\@firstofone\@citeb}%                    eat trailing space
363          \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi% write to aux
364          \@ifundefined{b@\@citeb}%                                         if label undefined..
365                       {\@citeo\@tempcntb\m@ne\@citea%                      ... then ...
366                        \def\@citea{,\penalty\@m\ }{\reset@font\bf ?}%
367                        \G@refundefinedtrue\@latex@warning%
368                        {Citation `\@citeb' on page \thepage \space undefined}}%
369                       {\setbox\z@\hbox{\global\@tempcntc0\csname %         ... else
370                                        b@\@citeb\endcsname}%
371                        \advance\@tempcntb\@ne%
372                        \ifnum\@tempcntb=\@tempcntc%
373                        \else\advance\@tempcntb\m@ne\@citeo%
374                             \@tempcnta\@tempcntc\@tempcntb\@tempcntc
375                        \fi%
376                        }%
377         }\@citeo}{#1}%
378         \if@draft\norm@note{CIT: }{#2}\fi                      % **DRAFT**
379    }% end definition of \@citex
380%This really prints out the cit-numbers
381\def\@citeo{\ifnum\@tempcnta>\@tempcntb%   
382            \else\@citea\def\@citea{,\penalty\@m\ }%
383                  \ifnum\@tempcnta=\@tempcntb%
384                  \intJlink{\hash bib\the\@tempcnta}{\the\@tempcnta}% if there is no range
385                  \else{\advance\@tempcnta\@ne%                 % if there is a range
386                       \ifnum\@tempcnta=\@tempcntb%
387                       \else\def\@citea{\,--\,}%
388                       \fi%
389                       \advance\@tempcnta\m@ne%
390                       \intJlink{\hash bib\the\@tempcnta}{\the\@tempcnta}\@citea%first
391                       \intJlink{\hash bib\the\@tempcntb}{\the\@tempcntb}}%last
392                  \fi%
393             \fi}
394%%%%%%%%%%%%%%% until here %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
395%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
396%------------------------------------------------------------------%
397% CITATION TAGS ARE TOGETHER WITH BIB STUFF.
398% CITATION HREF
399\else             % w.r.t. \if@Jcits above
400\def\@citex[#1]#2{%                     % UNFORTUNATELY REDEFINED!!!!
401  \let\@citea\@empty
402  \@cite{\@for\@citeb:=#2\do
403    {\@citea\def\@citea{,\penalty\@m\ }%
404     \edef\@citeb{\expandafter\@firstofone\@citeb}%
405     \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
406     \@ifundefined{b@\@citeb}{\mbox{\reset@font\bf ?}%
407        \G@refundefinedtrue
408        \@latex@warning
409          {Citation `\@citeb' on page \thepage \space undefined}}%
410        {\edef\tmp@bn{\csname b@\@citeb\endcsname}%
411         \hbox{\intJlink{\hash bib\tmp@bn}{\tmp@bn}}}}}{#1}%            % **HYPER**
412         \if@draft\norm@note{CIT: }{#2}\fi                      % **DRAFT**
413         }
414\fi             % w.r.t. \if@Jcits above
415
416%-----------------------------------------------------------------%
417% LABEL, REF AND PAGEREF, TEXTREF, ~ COMPATIBLE:
418\let\old@label\label                                            % OLD LATEX COMMAND.
419\def\label{\bgroup\catcode`\>=15\catcode`\"=15 \catcode`\==15\@@label}         
420\newcommand{\@@label}[1]{\egroup\name{ref-#1}%          % LABEL IN HYPER TAG.
421                         \old@label{#1}%                %
422                         \if@draft%                     % DRAFT:
423                         \ifmmode\math@note{#1}%
424                         \else\norm@note{}{LAB: #1}\fi%
425                         \fi%
426                         }
427\if@hyper
428\let\old@ref\ref \let\old@pageref\pageref               % OLD LATEX COMMANDS.
429\renewcommand{\ref}[1]{\@ifundefined{r@#1}{}{\intJlink{\hash ref-#1}}%
430                       {\old@ref{#1}}} % LABEL INSIDE HREF.
431\renewcommand{\pageref}[1]{\@ifundefined{r@#1}{}{%      % UNDEFINED => NO HREF
432              \edef\tmp@ref{\noexpand\@secondoftwo\csname r@#1\endcsname}%
433              \intJlink{\hash pag\tmp@ref}}{\old@pageref{#1}}}
434\fi
435\newcommand{\textref}[2]{\@ifundefined{r@#1}
436                        {%
437                        \protect\G@refundefinedtrue
438                        \nfss@text{\reset@font\bf ?#2?}%
439                        \@latex@warning{Reference `#1' on page \thepage \space
440                                             undefined}}
441                        {\vrule height \z@ width \z@\intJlink{\hash ref-#1}{#2}}}
442%------------------------------------------------------------------%
443%%%%%%%%%%%%%%%%%%%%%%%%%% END HYPER-STUFF %%%%%%%%%%%%%%%%%%%%%%%%%%%%
444
445%%%%%%%%%%%%%%%%%%%%%%%%%%% JINST HEADINGS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
446\def\ps@JINST{%                         
447    \def\@oddfoot{\ifnum\thepage=0\if@preprint\else
448                \Jcopyright@box\fi\hfill % copyright only on front page of published papers
449                \if@Jspecialurl\copy\Jspecial@url\else\if@preprint\else\copy\Jpaper@url\fi\fi %possible url
450                \else\reset@font\hfil-- \thepage\ --\hfil\fi} % page numbers on other pages
451    \if@draft\edef\cur@opt{\@curroptions}\fi
452    \def\@oddhead{\name{pag\thepage}\hfil\if@draft\copy\drft@box\fi}
453    \if@twoside\let\@evenhead\@oddhead\let\@evenfoot\@oddfoot\fi
454    \let\@mkboth\@gobbletwo
455    \let\sectionmark\@gobble
456    \let\subsectionmark\@gobble
457    }
458%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TITLE PAGE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
459\def\maketitle{\JINST@ignol{\maketitle}}
460\newcommand\auto@maketitle{\begingroup
461    \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
462    \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
463    \long\def\@makefntext##1{\parindent 1em\noindent
464            \hb@xt@1.8em{\hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
465    \let\footnote\thanks%
466         \newpage                               %
467         \@maketitle                            % CALL ACTUAL FORMATTING
468         \@thanks                               % TITLE THANKS
469         \thispagestyle{JINST}
470         \setcounter{page}\z@
471         \newpage                               % FINE PAGINA
472  \endgroup
473  \setcounter{footnote}{0}%                     
474  \if@todotoc                                   % IF THERE IS A SECTION
475      \noindent\rule\textwidth{.1pt}            % THEN MAKE TOC...
476      \vskip 2em \@plus 3ex \@minus 3ex
477      \tableofcontents
478      \vskip 2em \@plus 3ex \@minus 3ex
479      \noindent\rule\textwidth{.1pt}
480      \vskip 2em \@plus 3ex \@minus 3ex
481  \fi
482  \if@preprint\else
483      \gdef\tableofcontents{\JINST@igno{\tableofcontents\space is automatic}}
484  \fi
485  \global\let\thanks\@gobble
486  \global\let\@maketitle\relax                  %
487  \global\let\@thanks\@empty                    %
488  \global\let\@author\@empty                    % KILL ALL
489  \global\let\@date\@empty                      %
490  \global\let\@title\@empty                     %
491  \global\let\@abstract\@empty                  %
492  \global\let\title\relax                       %
493  \global\let\author\relax                      %
494  \global\let\date\relax                        %
495  \global\let\and\relax                         %
496  \global\let\email\@gobble
497  \global\let\received\relax
498  \global\let\revised\relax
499  \global\let\accepted\relax
500  \global\let\published\relax
501  \global\let\JINSTcopydate\relax
502  \global\let\Jspecialurl\relax
503  \global\let\keywords\relax
504  \global\let\endkeywords\relax
505}
506%%%%%%%%%%%%%%%%%%%%%%%%%% ACTUAL TITLEPAGE %%%%%%%%%%%%%%%%%%%%%%%%%%%
507\newskip\titlesk@ja             % Skips for titlepage
508\newskip\titlesk@jb             %
509\newskip\titlesk@jc             %
510\titlesk@ja= 1.6em plus .4fil%                  % Before title
511\titlesk@jb= 2em   plus .06fil minus  .5ex%     % Between title/rule
512\titlesk@jc= 2em   plus .05fil minus 1.2ex%     % Before authors
513
514\def\@maketitle{%                               % PAGE IS FLUSHED LEFT
515\begin{flushleft}%                              % PAY ATTENTION TO \par'S
516% page with queries for authors in proof
517\if@Jqueries
518    \setcounter{page}{0}
519\noindent{\let\thanks\@gobble\let\footnote\@gobble%
520          \large\sffamily\@title\par}                     % title
521\vskip.4\titlesk@jb
522\noindent{\Large\sffamily\bfseries\queriesname\hfill\par} % queriesname
523\vskip.7\titlesk@jb
524    \hrule height 1\p@%            otherwise = 1.5pt.     % rule
525\vskip.7\titlesk@jb
526{\noindent\footnotesize Please reply to the following queries using
527the appropriate tool ``{\sc send proofs}'' at the bottom of the
528preprint page on \href{http://jinst.sissa.it}{\tt http://jinst.sissa.it}}
529\vskip\titlesk@jc
530\Jqueries@auth                                            % queries
531    \newpage
532    \setcounter{page}{0}
533\fi
534%header for preprints
535\if@preprint                                    %%% PREPRINT HEADER:
536    \vskip-7em                                  %
537    \underline{\tiny Preprint typeset           %
538                in JINST style -                        %
539                \if@hyper{HYPER VERSION}        %
540                \else{PAPER VERSION}\fi }       %
541    \normalsize\hfill%                          %
542    \begin{tabular}[t]{r}\@preprint\end{tabular}%   % PREPRINT NUMBERS
543\else                                           %
544% header for published papers
545    \vskip-7em\hfill
546    {\small\scshape Published by Institute of Physics
547                       Publishing and SISSA}
548    \vskip-1.35\baselineskip\logo\hrulefill
549    \vskip-1.5\baselineskip\hskip21.73\p@%     
550    \hfill{\parbox[t]{30em}{\begin{flushright}\setlength\baselineskip{11pt}\footnotesize
551                                \Jrece@cs\\
552                                \if@revi\Jrevi@cs\\\fi
553                                \Jacce@cs\\
554                                \Jpubli@cs
555                              \end{flushright}}}%
556\fi\null
557% end headers
558\vskip \titlesk@ja                 % vspace before title
559% TITLE large sans-serif bf
560{\LARGE \sffamily\bfseries\@title\par} 
561%
562\vskip \titlesk@jb                 % vspace between title and rule
563% RULE
564\hrule height 1.5\p@%
565%
566\vskip \titlesk@jb                 % vspace between rule and authors
567% AUTHORS\\ADDRESSES
568\vskip-\auth@skip
569{\normalsize \bfseries \sffamily \@author \par}
570%
571\vskip \titlesk@jc                 % vspace between authors and abstract
572% ABSTRACT
573\parbox\textwidth{\abstract@cs}%       
574\normalsize                        % why reset size?
575% KEYWORDS IF PRESENT
576\if@keywords   
577\vskip .9\titlesk@jc       % vspace between abstract and keywords
578\par
579\@keywords                             
580\fi
581% DEDICATION, IF PRESENT
582\dedic@box                             
583\end{flushleft}%                        % FINISHED.
584}
585%%%%%%%%%%%%%%%%%%%%%%%%%%% STANDARD STUFF %%%%%%%%%%%%%%%%%%%%%%%%%%%%
586\setcounter{secnumdepth}{3}
587\newcounter {part}
588\newcounter {section}
589\newcounter {subsection}[section]
590\newcounter {subsubsection}[subsection]
591\newcounter {paragraph}[subsubsection]
592\newcounter {subparagraph}[paragraph]
593\renewcommand\thepart         {\@Roman\c@part}
594\renewcommand\thesection      {\@arabic\c@section}
595\renewcommand\thesubsection   {\thesection.\@arabic\c@subsection}
596\renewcommand\thesubsubsection{\thesubsection.\@arabic\c@subsubsection}
597\renewcommand\theparagraph    {\thesubsubsection.\@arabic\c@paragraph}
598\renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph}
599%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION FORMATS %%%%%%%%%%%%%%%%%%%%%%%%%%%
600\newcommand\secstyle{\bfseries}
601\def\ts@flag{\let\d@t.%                                 % Sections get ``.''
602             \immediate\write\@auxout                   % IF THERE IS A SECTION
603             {\string\global\string\@todotoctrue}}      % THEN SIGNAL IN AUX.
604
605\newcommand\part{\par
606   \addvspace{4ex}%
607   \@afterindentfalse
608   \secdef\@part\@spart}
609
610\def\@part[#1]#2{\ts@flag
611    \ifnum \c@secnumdepth >\m@ne
612      \refstepcounter{part}%                    % DAMN LATEX !!! BELOW,
613      \addcontentsline{toc}{part}{\string\intJlink      % UNFORTUNATELY, NO NUMBERLINE:
614                                  {\string\hash\space part\the\c@part}%
615                                  {\thepart}\hspace{1em}#1}%
616    \else
617      \addcontentsline{toc}{part}{#1}%
618    \fi
619    {\parindent \z@ \raggedright
620     \interlinepenalty \@M
621     \normalfont
622     \ifnum \c@secnumdepth >\m@ne
623       \name{part\the\c@part}\Large\bfseries \partname~\thepart
624       \par\nobreak
625     \fi
626     \huge \bfseries #2%
627     \markboth{}{}\par}%
628    \nobreak
629    \vskip 3ex
630    \@afterheading\let\d@t\relax}
631\def\@spart#1{%
632    {\parindent \z@ \raggedright
633     \interlinepenalty \@M
634     \normalfont
635     \huge \bfseries #1\par}%
636     \nobreak
637     \vskip 3ex
638     \@afterheading}
639
640\newcommand\section{\@startsection{section}{1}{\z@}%
641                                   {-3.5ex \@plus -1.3ex \@minus -.7ex}%
642                                   {2.3ex \@plus.4ex \@minus .4ex}%
643                                   {\normalfont\large\secstyle}}
644\newcommand\subsection{\@startsection{subsection}{2}{\z@}%
645                                   {-2.3ex\@plus -1ex \@minus -.5ex}%
646                                   {1.2ex \@plus .3ex \@minus .3ex}%
647                                   {\normalfont\normalsize\secstyle}}
648\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
649                                   {-2.3ex\@plus -1ex \@minus -.5ex}%
650                                   {1ex \@plus .2ex \@minus .2ex}%
651                                   {\normalfont\normalsize\secstyle}}
652\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
653                                   {1.75ex \@plus1ex \@minus.2ex}%
654                                   {-1em}%
655                                   {\normalfont\normalsize\bfseries}}
656\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
657                                   {1.75ex \@plus1ex \@minus .2ex}%
658                                   {-1em}%
659                                   {\normalfont\normalsize\bfseries}}
660
661% ---- turnaround for sections with figures ------ %
662\def\bef@sec{\iffigprocessing\JINST@warnl{Floating figure \the\ffigcount\space
663                                                and startsection colliding}\fi
664             \iftabprocessing\JINST@warnl{Floating table \the\ftabcount\space
665                                                and startsection colliding}\fi
666             \edef\bef@everypar{\the\everypar}} % HACK FOR FLOATS AND \everypar
667\def\aft@sec{\let\d@t\relax                     % RESTORE: NO DOTTED SUBSECS..
668             \edef\tmp@everypar{\the\everypar}% % DELETED CLUBPENALTY, BELOW.
669             \everypar\expandafter{\bef@everypar{\tmp@everypar}}}% RESTORE.
670\let\old@sec\section                            %
671\let\old@ssec\subsection                        %
672\let\old@sssec\subsubsection                    % OLD SECTIONING COMMANDS.
673\let\old@par\paragraph                          %
674\let\old@spar\subparagraph                      %
675% ------- new forms ------- %
676\renewcommand{\section}{\secdef\JINST@sec\JINST@secs}
677\renewcommand{\subsection}{\secdef\JINST@ssec\JINST@ssecs}
678\renewcommand{\subsubsection}{\secdef\JINST@sssec\JINST@sssecs}
679\renewcommand{\paragraph}{\secdef\JINST@par\JINST@pars}
680\renewcommand{\subparagraph}{\secdef\JINST@spar\JINST@spars}
681% ---- unstarred forms ---- %
682\def\JINST@sec[#1]#2{\ts@flag\bef@sec\old@sec[#1]{#2}\aft@sec}
683\def\JINST@ssec[#1]#2{\bef@sec\old@ssec[#1]{#2}\aft@sec}
684\def\JINST@sssec[#1]#2{\bef@sec\old@sssec[#1]{#2}\aft@sec}
685\def\JINST@par[#1]#2{\bef@sec\old@par[#1]{#2}\aft@sec}
686\def\JINST@spar[#1]#2{\bef@sec\old@spar[#1]{#2}\aft@sec}
687% ----- starred forms ----- %
688\def\JINST@secs#1{\bef@sec\old@sec*{#1}\aft@sec}
689\def\JINST@ssecs#1{\bef@sec\old@ssec*{#1}\aft@sec}
690\def\JINST@sssecs#1{\bef@sec\old@sssec*{#1}\aft@sec}
691\def\JINST@pars#1{\bef@sec\old@par*{#1}\aft@sec}
692\def\JINST@spars#1{\bef@sec\old@spar*{#1}\aft@sec}
693% ----- end hack for sections with floats --------%
694
695\if@twocolumn
696  \setlength\leftmargini  {2em}
697\else
698  \setlength\leftmargini  {2.5em}
699\fi
700\leftmargin  \leftmargini
701\setlength\leftmarginii  {2.2em}
702\setlength\leftmarginiii {1.87em}
703\setlength\leftmarginiv  {1.7em}
704  \setlength\leftmarginv  {1em}
705  \setlength\leftmarginvi {1em}
706\setlength  \labelsep  {.5em}
707\setlength  \labelwidth{\leftmargini}
708\addtolength\labelwidth{-\labelsep}
709\@beginparpenalty -\@lowpenalty
710\@endparpenalty   -\@lowpenalty
711\@itempenalty     -\@lowpenalty
712\renewcommand\theenumi{\@arabic\c@enumi}
713\renewcommand\theenumii{\@alph\c@enumii}
714\renewcommand\theenumiii{\@roman\c@enumiii}
715\renewcommand\theenumiv{\@Alph\c@enumiv}
716\newcommand\labelenumi{\theenumi.}
717\newcommand\labelenumii{(\theenumii)}
718\newcommand\labelenumiii{\theenumiii.}
719\newcommand\labelenumiv{\theenumiv.}
720\renewcommand\p@enumii{\theenumi}
721\renewcommand\p@enumiii{\theenumi(\theenumii)}
722\renewcommand\p@enumiv{\p@enumiii\theenumiii}
723\newcommand\labelitemi{$\m@th\bullet$}
724\newcommand\labelitemii{\normalfont\bfseries --}
725\newcommand\labelitemiii{$\m@th\ast$}
726\newcommand\labelitemiv{$\m@th\cdot$}
727\newenvironment{description}
728               {\list{}{\labelwidth\z@ \itemindent-\leftmargin
729                        \let\makelabel\descriptionlabel}}
730               {\endlist}
731\newcommand*\descriptionlabel[1]{\hspace\labelsep
732                                \normalfont\bfseries #1}
733%%%%%%%%%%%%%%%%%%%%%%%%%% AUTHORS/ADDRESSES %%%%%%%%%%%%%%%%%%%%%%%%%%
734% *** After proceedings, the authors go in a hbox. => \break does not work!!
735% *** if no address nobody closes the box!
736\newif\if@speaker\@speakerfalse
737\newif\if@dblspeak\@dblspeakfalse
738\newtoks\prev@t
739\newtoks\cur@t
740\newbox\@firstaubox
741\newskip\addr@skip\addr@skip=.6em\@plus.02fil\@minus.3ex %\fi
742\newskip\auth@skip\auth@skip=.6em\@plus.03fil\@minus.2ex %\fi
743\renewcommand\@author{\parskip\z@
744                      \def\\{\egroup                    % CLOSE & aftergroup!
745                        \par                            % FIRST TIME \\=>ADDR.
746                        \vskip\addr@skip                % GLUE UNDER AUTHOR
747                        \hskip1em%                      % ADDRESS INDENT
748                        \vbox\bgroup\hsize=.9\textwidth %
749                        \small\it\raggedright           % STYLE FOR ADDRESSES
750                        \def\\{\par\leavevmode\ignorespaces}%\let\\\relax%
751                        \leavevmode\ignorespaces}%
752                        }
753\renewcommand\author[1]{%
754                \global\@authortrue                     %
755                \prev@t=\expandafter{\@author}%         % TWO TOKEN LISTS.
756                \cur@t={\vskip\auth@skip                % glue before auth.
757                        \vtop\bgroup #1\egroup          % ACTUAL AUTH.\\ADD.
758                        \par}%                          %
759                \long\xdef\@author{\the\prev@t\the\cur@t}%STORE ALL IN \@AUTHOR
760                }
761%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% RECEIVED %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
762\newcommand\received[1]{\gdef\Jrece@cs{{\scshape\receivedname}
763                                       {\itshape #1}}\@recetrue\let\received\gobble}
764%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% REVISED %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
765\newcommand\revised[1]{\gdef\Jrevi@cs{{\scshape\revisedname}
766                                      {\itshape #1}}\@revitrue\let\revised\gobble}
767%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ACCEPTED %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
768\newcommand\accepted[1]{\gdef\Jacce@cs{{\scshape\acceptedname}
769                                       {\itshape #1}}\@accetrue\let\accepted\gobble}
770%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PUBLISHED %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
771\newcommand\published[1]{\gdef\Jpubli@cs{{\scshape\publishedname}
772                                       {\itshape #1$\vphantom{,}$}}\@publitrue\let\published\gobble}
773%%%%%%%%%%%%%%%%%%%%%%%%%% COPYRIGHT DATE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
774\newbox\Jcopy@date
775\newcommand\JINSTcopydate[1]{\global\setbox\Jcopy@date
776                        \hbox{\scriptsize #1}\global\@Jcopytrue}
777%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DEDICATED %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
778\gdef\dedic@box{\relax}
779\newcommand\dedicated[1]{\gdef\dedic@box{\vskip2em minus 1.2ex
780                              \vbox{\small\it\raggedleft #1}}}
781%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% QUERIES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
782\newif\if@Jqueries\@Jqueriesfalse
783\gdef\Jqueries@auth{\relax}
784\newcommand\QueriesForAuth[1]{\@Jqueriestrue\gdef\Jqueries@auth{%
785                              {\raggedright #1}}}
786%%%%%%%%%%%%%%%%%%%%%%%%%%% ACKNOWELEDGMENTS %%%%%%%%%%%%%%%%%%%%%%%%%%
787\newcommand\acknowledgments{\section*{\acknowlname}}
788%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EMAIL %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
789\newcommand\email[1]{{\tt\href{mailto:#1}{#1}}}
790%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PREPRINT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
791\let\@preprint\relax
792\newcommand\preprint[1]{\long\gdef\@preprint{#1}}
793%%%%%%%%%%%%%%%%% SPECIAL URL overrides paper@url %%%%%%%%%%%%%%%%%%%%%
794\newbox\Jspecial@url
795\newcommand\Jspecialurl[1]{\global\setbox\Jspecial@url\hbox{\tiny\ttfamily
796                        #1}\@Jspecialurltrue}
797%%%%%%%%%%%%%%%%%%%%%%%%% FILE NAME AND URL %%%%%%%%%%%%%%%%%%%%%%%%%%%
798%\global\newbox\Jacce@month
799%\global\newcount\Jacce@year
800%\global\newbox\Jacce@number
801%\def\Jsplit@ident#1(#2)#3.{\global\setbox\Jacce@month\hbox{\tiny\ttfamily #1}
802%                         \global\Jacce@year= #2
803%                         \global\setbox\Jacce@number\hbox{\tiny\ttfamily #3}
804
805%\gdef\Jfile@name{\hbox{\tiny\ttfamily
806%               jinst\unhcopy\Jacce@month\the\Jacce@year\unhcopy\Jacce@number}}
807
808\newbox\Jpaper@url
809\global\setbox\Jpaper@url\hbox{\tiny\ttfamily http://www.iop.org/EJ/jinst/}
810                              %\Jfile@name/\Jfile@name.pdf}}
811%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% COPYRIGHT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
812\gdef\Jcopyright@box{\hbox{\if@preprint\else{\scriptsize $\copyright$
813                \if@Jcopy\unhbox\Jcopy@date\else\the\year\fi\ IOP Publishing Ltd\ and SISSA}\fi}}
814%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ABSTRACT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
815%% *** For beton! We need a cs, not a box. Maybe also for refs.. %%%%%%
816
817\newcommand{\abstract}[1]%              % ABSTR. IN NORMALSIZE
818        {\gdef\abstract@cs{             % cs FOR WHOLE ABSTRACT
819        {\noindent{\scshape\abstractname}\ \ignorespaces #1}}
820         \normalsize
821         \global\@abstracttrue\let\abstract\gobble}
822%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% KEYWORDS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
823\def\@keywords{\relax}%                   % CS FOR WHOLE KEYWORDS
824\def\keywords{\bgroup\gdef\@comma{,}\catcode`\ =\active\catcode`,=\active
825                \@@keywords}
826\begingroup
827\catcode`\ =\active\catcode`,=\active\global
828\def\@@keywords#1{\gdef\@keywords{\noindent{\scshape\keywordsname}
829                \bgroup\def, {+}\def {_}%       %ATTENTION: NO EXPANSION.
830                %\href{http://jinst.sissa.it/stdsearch}%
831                                                {\let,\@comma\let \ #1}.
832                \egroup}\egroup\global\@keywordstrue\let\keywords\gobble}%
833\endgroup
834%%%%%%%%%%%%%%%%%%%%%%%%%% OTHER ENVIRONMENTS %%%%%%%%%%%%%%%%%%%%%%%%%
835\newenvironment{verse}
836               {\let\\\@centercr
837                \list{}{\itemsep      \z@
838                        \itemindent   -1.5em%
839                        \listparindent\itemindent
840                        \rightmargin  \leftmargin
841                        \advance\leftmargin 1.5em}%
842                \item\relax}
843               {\endlist}
844\newenvironment{quotation}
845               {\list{}{\listparindent 1.5em%
846                        \itemindent    \listparindent
847                        \rightmargin   \leftmargin
848                        \parsep        \z@ \@plus\p@}%
849                \item\relax}
850               {\endlist}
851\newenvironment{quote}
852               {\list{}{\rightmargin\leftmargin}%
853                \item\relax}
854               {\endlist}
855
856%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% THEOREMS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
857\newif\if@twothms\@twothmsfalse
858
859\if@preprint%\ifx\@thmcountersep\@undefined
860%\def\@xthm#1#2{\@begintheorem{#2}{\csname the#1\endcsname.}\ignorespaces}% after thm number
861\else                                                                    % if published
862\def\@xthm#1#2{\@begintheorem{#2\if@twothms\else.\fi}                    % theorems are numbered
863                {\if@twothms\csname the#1\endcsname.\fi}                 % only if more than one
864                \ifnum \csname the#1\endcsname>1 \immediate\write\@auxout% and not within sections
865                                {\string\global\string\@twothmstrue}\fi
866                \ignorespaces}
867\fi
868
869\newcommand\Proof{\noindent\emph{Proof.}\ }
870
871%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% APPENDIX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
872\newcommand\appendix{\par
873  \setcounter{section}{0}%
874  \setcounter{subsection}{0}%
875  \renewcommand\thesection{\@Alph\c@section}}
876
877%%%%%%%%%%%%%%%%%%%%%%%%%%% SOME MORE LENGHTS %%%%%%%%%%%%%%%%%%%%%%%%%
878\setlength\arraycolsep{2\p@}            % TO MATCH eqnarrays<->equations
879\setlength\tabcolsep{6\p@}
880\setlength\arrayrulewidth{.4\p@}
881\setlength\doublerulesep{2\p@}
882\setlength\tabbingsep{\labelsep}
883\skip\@mpfootins = \skip\footins
884\setlength\fboxsep{3\p@}
885\setlength\fboxrule{.4\p@}
886%%%%%%%%%%%%%%%%%%%%%%%%%%%%% THE EQUATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%
887\renewcommand\theequation{\ifnum\c@section=0\else\thesection.\fi
888                          \@arabic\c@equation}
889
890%%%%%%%%%%%%%%%%%%%%%%%%%%%% FIGURES, TABLES %%%%%%%%%%%%%%%%%%%%%%%%%%
891\newcounter{figure}
892\renewcommand\thefigure{\@arabic\c@figure}
893\def\fps@figure{Htbp}
894\def\ftype@figure{1}
895\def\ext@figure{lof}
896\def\fnum@figure{\figurename~\thefigure}
897\newenvironment{figure}
898               {\@float{figure}}
899               {\end@float}
900\newenvironment{figure*}
901               {\@dblfloat{figure}}
902               {\end@dblfloat}
903\newcounter{table}
904\renewcommand\thetable{\@arabic\c@table}
905\def\fps@table{tbp}
906\def\ftype@table{2}
907\def\ext@table{lot}
908\def\fnum@table{\tablename~\thetable}
909\newenvironment{table}
910               {\@float{table}}
911               {\end@float}
912\newenvironment{table*}
913               {\@dblfloat{table}}
914               {\end@dblfloat}
915%%-----------------------------------------------------------------%%
916\newcommand{\FIGURE}[2][v]{\begin{floatingfigure}[#1]#2
917                                        \end{floatingfigure}}
918\newcommand{\TABLE}[2][v]{\begin{floatingtable}[#1]{#2}
919                                        \end{floatingtable}}
920\newcommand{\EPSFIGURE}[3][v]{\begin{floatingfigure}[#1]\epsfig{file=#2}
921                                        \caption{#3}\end{floatingfigure}}
922\newcommand{\TABULAR}[4][v]{\begin{floatingtable}[#1]{\begin{tabular}{#2}
923                                        #3\end{tabular}}\caption{#4}
924                                        \end{floatingtable}}
925%Check below, and put automatic width ***
926\newcommand{\DOUBLEFIGURE}[5][ht]{\@dblfloat{figure}[#1]\centerline{%
927                \parbox{.45\textwidth}{\centerline{\epsfig{file=#2}}}~~~~
928                \parbox{.45\textwidth}{\centerline{\epsfig{file=#3}}}}
929                \centerline{\parbox[t]{.45\textwidth}{\caption{#4}}~~~~
930                \parbox[t]{.45\textwidth}{\caption{#5}}}\end@dblfloat}
931\newcommand{\DOUBLETABLE}[5][ht]{\@dblfloat{table}[#1]\centerline{%
932                \parbox{.45\textwidth}{\centerline{#2}}~~~~
933                \parbox{.45\textwidth}{\centerline{#3}}}
934                \centerline{\parbox[t]{.45\textwidth}{\caption{#4}}~~~~
935                \parbox[t]{.45\textwidth}{\caption{#5}}}\end@dblfloat}
936%%%%%%---------------- FROM FLOATFLT PACKAGE ------------------%%%%%%%%
937%% Original file `floatflt.sty', modified by F.Nesti <nesti@sissa.it> to:
938%% be inserted in JINST.cls;
939%% correct float placement when shifting past pages;
940%% correct incompatibility with \marginpar;
941%% correct incompatibility with \@startsection;
942%% correct persisting indentation in following pars;
943%% let float also at beginning of pages;
944%% avoid the widht specification.
945%%
946%% Original was 1994-1996 by Mats Dahlgren <matsd@physchem.kth.se>.
947%%
948%%%%%%%%\NeedsTeXFormat{LaTeX2e}[1994/06/01]            %LEFT THIS STUFF TO
949%%%%%%%%\ProvidesPackage{floatflt}[1996/02/27 v. 1.3]   %RECONVERT TO PACKAGE.
950\newcounter{OptionTest}
951\if@twoside
952 \setcounter{OptionTest}{0}
953\else                                                   % POS: 2side=p/1side=r
954 \setcounter{OptionTest}{1}
955\fi
956%%%%%%%%\DeclareOption{rflt}{\setcounter{OptionTest}{1}}
957%%%%%%%%\DeclareOption{lflt}{\setcounter{OptionTest}{2}} % CHOSEN.
958%%%%%%%%\DeclareOption{vflt}{\setcounter{OptionTest}{0}}
959%%%%%%%%\DeclareOption*{\OptionNotUsed}
960%%%%%%%%\ProcessOptions
961\newbox\@tmpbox
962\newbox\figbox
963\newbox\tabbox
964\newbox\pagebox
965\newcount\ffigcount
966\newcount\ftabcount
967\newcount\hangcount
968\newcount\nosuccesstryfig
969\newcount\nosuccesstrytab
970\newdimen\figgutter   \figgutter=1truepc
971\newdimen\tabgutter   \tabgutter=1truepc
972\newdimen\fl@wd
973\newdimen\fl@ht
974\newdimen\htdone      \htdone=\z@
975\newdimen\pageht
976\newdimen\startpageht
977\newdimen\floatfltwidth
978\newdimen\fltitemwidth
979\newif\iftryingfig     \tryingfigfalse
980\newif\iftryingtab     \tryingtabfalse
981\newif\ifdoingfig      \doingfigfalse
982\newif\ifdoingtab      \doingtabfalse
983\newif\iffigprocessing \figprocessingfalse
984\newif\iftabprocessing \tabprocessingfalse
985\newif\ifpageafterfig  \pageafterfigfalse
986\newif\ifpageaftertab  \pageaftertabfalse
987\newif\ifoddpages
988\newif\ifoutput
989\newtoks\outputpretest
990\def\@captype{}
991%%---------------- ORRIBLE HACKS, SORRY -------------------------%%
992\let\old@marginpar\marginpar                            %
993\renewcommand\marginpar[1]{{\outputpretest={\outputtrue}% REDEF \marginpar.
994                            \old@marginpar{#1}}}        %
995\def\g@addto#1#2{{\toks@\expandafter{#1#2}%
996                  \xdef#1{\the\toks@}}}%
997\def\postpone@captions{%                        %
998        \global\let\tmp@caption\caption         % \label, LATER.
999        \global\let\later@capt\relax            % UN PO' PESANTI
1000        \gdef\later@label{}%                    % MA D'ALTRONDE...
1001        \let\J@ref\ref\def\ref{\protect\J@ref}% % protect ref in captions..
1002        \renewcommand\caption{\@ifnextchar[\J@@caption\J@caption}%
1003        \newcommand\J@caption[1]{\gdef\later@capt{\tmp@caption{##1}}}% LOCAL!!
1004        \newcommand\J@@caption[2][v]%
1005                                {\gdef\later@capt{\tmp@caption[##1]{##2}}}% LOCAL!!
1006        \renewcommand\@@label[1]{\egroup\name{ref-##1}% % TAG WHERE CALLED, AT LEAST,
1007                               \if@draft\norm@note{}{LAB: ##1}\fi% & DRAFTNOTE.
1008                               \g@addto\later@label{\old@label{##1}}}%
1009                        }
1010\AtEndDocument{\iftryingfig\JINST@warnl{Floating figure \the\ffigcount\space
1011                                        remains undone}\fi
1012                \iftryingtab\JINST@warnl{Floating table \the\ftabcount\space
1013                                        remains undone}\fi}
1014%%----------------- FIGURE ---------------------------------------%%
1015\newenvironment{floatingfigure}[1][v]%
1016{\@tfor \@tempa :=#1\do {\xdef\@fside{\@tempa}}%
1017 \global\advance\ffigcount by 1%
1018 \iffigprocessing {\count0=\ffigcount\advance\count0 by -1%
1019                   \JINST@warnl{Floating figures \the\count0\space\space and
1020                        \the\ffigcount\space colliding}}\fi
1021 \iftabprocessing  \JINST@warnl{Floating table \the\ftabcount\space and
1022                        floating figure \the\ffigcount\space colliding}\fi
1023 \postpone@captions
1024 \global\setbox\@tmpbox=\hbox\bgroup% begin of figbox %HBOX FOR AUTO WIDTH!
1025}
1026{%
1027\egroup%                                % CALCULATE WIDTH (NO CAPTION FOR NOW)
1028\global\setlength{\floatfltwidth}{\the\wd\@tmpbox}%
1029% New behavior: wd < .6 columnwidth => floatflt.
1030%               wd < columnwidth    => float{figure}
1031%               wd > columnwidth    => dblfloat{figure}
1032\ifdim\floatfltwidth<.6\columnwidth%    % IF NOT TOO WIDE OK:
1033 \global\setbox\figbox=\vbox{\hsize=\floatfltwidth
1034                             \def\@captype{figure}%
1035                             \noindent\unhbox\@tmpbox
1036                             \later@capt\later@label}%
1037 \global\figprocessingtrue
1038 \global\everypar={\tryfig\oldeverypar}% must be set globally!
1039 \figinsert\par
1040\else%                                  % ELSE NORMAL LATEX FIGURE, SIGH.
1041% \JINST@mess{Floating figure \the\ffigcount\space is
1042%                       wide becomes a LaTeX float}%
1043 \if\@fside v \def\@fside{ht}\fi
1044 \ifdim\floatfltwidth<\columnwidth
1045    \def\@@tempa{\@float{figure}[}\let\@@tempb\end@float
1046 \else
1047    \def\@@tempa{\@dblfloat{figure}[}\let\@@tempb\end@dblfloat
1048 \fi
1049 \expandafter\@@tempa\@fside]\center\unhbox\@tmpbox\later@capt\later@label\@@tempb
1050\fi
1051}
1052%%------------ TABLE ----------------------------------------------%%
1053\newenvironment{floatingtable}[1][v]%
1054{\@tfor \@tempa :=#1\do {\global\edef\@tside{\@tempa}}%
1055 \global\advance\ftabcount by 1%
1056 \iftabprocessing {\count0=\ftabcount\advance\count0 by -1%
1057                   \JINST@warnl{Floating tables \the\count0\space
1058                        \space and \the\ftabcount \space colliding}}\fi
1059 \iffigprocessing  \JINST@warnl{Floating figure \the\ffigcount\space and
1060                        floating table \the\ftabcount\space colliding}\fi
1061 \postpone@captions
1062 \global\setbox\@tmpbox=\hbox\bgroup% begin of tabbox, ACTUALLY AN HBOX.
1063}
1064{%
1065\egroup% end of \tabbox,                % ACTUALLY \@tmpbox
1066\global\setlength{\floatfltwidth}{\the\wd\@tmpbox}%
1067\ifdim\floatfltwidth<.6\columnwidth%    % IF NOT TOO WIDE OK:
1068  \global\setbox\tabbox=\vbox{\hsize=\floatfltwidth
1069                             \def\@captype{table}%
1070                             \noindent\unhbox\@tmpbox
1071                             \later@capt\later@label}%
1072  \global\tabprocessingtrue
1073  \global\everypar={\trytab\oldeverypar}%
1074  \tabinsert\par%
1075\else%                                  % ELSE NORMAL LATEX TABLE.
1076%  \JINST@mess{Floating table \the\ftabcount\space is
1077%                       wide becomes a LaTeX float}%
1078  \ifdim\floatfltwidth<1.1\columnwidth
1079    \if\@tside v \def\@tside{ht}\fi
1080    \def\@@tempa{\@float{table}[}\let\@@tempb\end@float
1081  \else
1082    \if\@tside v \def\@tside{t}\fi
1083    \def\@@tempa{\@dblfloat{table}[}\let\@@tempb\end@dblfloat
1084  \fi
1085  \expandafter\@@tempa\@tside]%         % ACTUALLY CALL THE LATEX FLOAT
1086  \center\unhbox\@tmpbox\later@capt\later@label
1087  \@@tempb
1088\fi%
1089}
1090%----------- prepare for tries ----------------------------%
1091\def\figinsert{%
1092   \global\nosuccesstryfig=0%
1093   \global\outputpretest={\do@test}%
1094   \global\tryingfigtrue \global\doingfigfalse%
1095   \global\pageafterfigfalse}%
1096\def\tabinsert{%
1097   \global\nosuccesstrytab=0%
1098   \global\outputpretest={\do@test}%
1099   \global\tryingtabtrue \global\doingtabfalse%
1100   \global\pageaftertabfalse}%
1101%----------- init -----------------------------------------%
1102\AtBeginDocument{%
1103 \edef\oldoutput{\the\output}
1104 \output={\the\outputpretest\ifoutput\oldoutput\fi}%
1105 \outputpretest={\outputtrue}%
1106 \edef\oldeverypar{\the\everypar}% PERCHE' NESSUNO LO RIMETTE PIU' A POSTO?***
1107}
1108%---- tests during \outputpretest -------------------------%
1109\def\do@test{%
1110   \ifnum\outputpenalty=-10005
1111%       \output
1112     \setbox\pagebox=\vbox{\unvbox255}%
1113     \global\pageht=\ht\pagebox
1114     \global\outputfalse
1115     \unvbox\pagebox
1116     \dimen0=\pageht\advance\dimen0 by 2 \baselineskip
1117     \ifdim\dimen0>\vsize\pagebreak[4]\global\pageht\z@\fi
1118   \else
1119     \global\outputtrue
1120     \ifnum\outputpenalty>-\@Mi                 %ie \marginpar's give penalty.
1121        \ifdoingtab\global\pageaftertabtrue\fi
1122        \ifdoingfig\global\pageafterfigtrue\fi
1123     \fi
1124   \fi}%
1125%-------- check for side ----------------------------------%
1126\def\chk@side#1{% DEFINED \fl@sid, BUT IF CHOSEN A DEFAULT, ELIMINATE ALL ***
1127        {\edef\fl@sid{#1}%
1128          \if\fl@sid r\global\oddpagestrue\fi
1129          \if\fl@sid l\global\oddpagesfalse\fi
1130          \if\fl@sid p%
1131              \ifodd\c@page\global\oddpagesfalse
1132                \else\global\oddpagestrue\fi
1133          \fi
1134          \if\fl@sid v%
1135             \ifnum\theOptionTest=0%
1136                 \ifodd\c@page\global\oddpagesfalse
1137                   \else\global\oddpagestrue\fi
1138             \else
1139                  \ifodd\theOptionTest\global\oddpagestrue
1140                    \else\global\oddpagesfalse\fi
1141             \fi
1142          \fi
1143         }}%
1144%-------- get point in page -------------------------------%
1145\def\get@pageht{{\everypar={\relax}\setbox0=\lastbox
1146                \parindent=\wd0 \parskip=\z@ \par
1147                \penalty-10005 \leavevmode}}%
1148%-------- try at everypar ---------------------------------%
1149\def\tryfig{%
1150        \global\fl@ht\ht\figbox
1151        \global\fl@wd\wd\figbox
1152        \global\let\fl@gut\figgutter
1153      \iftryingfig
1154        \get@pageht
1155        \dimen0=\vsize
1156        \advance\dimen0 by -\pageht
1157        \advance\dimen0 by -2\baselineskip
1158        \ifdim\dimen0>\fl@ht
1159          \chk@side\@fside
1160          \dimen0=0.3\baselineskip
1161          \vrule depth \dimen0 width \z@%height 1.5\baselineskip
1162          \vadjust{\kern -\dimen0
1163          \vtop to \dimen0{%
1164             \baselineskip=\dimen0
1165             \vss \vbox to 1ex{%
1166             \ifoddpages
1167               \hb@xt@\hsize{\hss\copy\figbox}%
1168             \else% leftsetting
1169               \hb@xt@\hsize{\copy\figbox\hss}%
1170             \fi
1171             \vss}\null}}%
1172          \global\tryingfigfalse
1173          \global\doingfigtrue
1174          \global\startpageht=\pageht
1175          \global\htdone=\z@
1176          \dohang
1177          \ifnum\nosuccesstryfig>0%
1178           \JINST@mess{Flt. fig. \the\ffigcount\space set on page \the\count0,
1179                        shifted \the\nosuccesstryfig\space par(s) forward}%
1180%         \else
1181%          \JINST@mess{Floating figure \the\ffigcount\space
1182%                       set on page \the\count0}%
1183          \fi
1184        \else
1185          \global\advance\nosuccesstryfig by 1
1186        \fi
1187      \else%                            % IF NOT TRYING
1188        \ifdoingfig
1189          \get@pageht
1190          \global\htdone=\pageht
1191          \global\advance\htdone by -\startpageht
1192          \ifpageafterfig
1193            \global\doingfigfalse% IN CASE A PAGEBREAK JUST BELOW?
1194          \else
1195            \dimen0=\fl@ht
1196            \advance\dimen0 by .85\baselineskip % .85 ENOUGH: WE ARE AT NEW PAR
1197%           \typeout{FLOAT HT: \the\dimen0, HTDONE: \the\htdone}
1198            \ifdim\htdone<\dimen0%
1199                \dohang
1200            \else
1201                \global\doingfigfalse
1202            \fi
1203          \fi
1204          \ifdoingfig\else\global\figprocessingfalse\fi% IF NO MORE DOING.
1205        \else
1206          \global\outputpretest={\outputtrue}% NOT RESTORE EVPAR IF NOT DOING?
1207        \fi%                    % END IF DOING
1208      \fi%                      % END IF TRYING
1209}
1210\def\trytab{%
1211        \global\fl@ht\ht\tabbox
1212        \global\fl@wd\wd\tabbox
1213        \global\let\fl@gut\tabgutter
1214       \iftryingtab
1215        \get@pageht
1216       \dimen0=\vsize
1217       \advance\dimen0 by -\pageht
1218       \advance\dimen0 by -2\baselineskip
1219       \ifdim\dimen0>\fl@ht
1220         \chk@side\@tside
1221         \dimen0=0.3\baselineskip
1222         \vrule depth \dimen0 width \z@
1223         \vadjust{\kern -\dimen0
1224         \vtop to \dimen0{%
1225             \baselineskip=\dimen0
1226             \vss \vbox to 1ex{%
1227             \ifoddpages
1228               \hb@xt@\hsize{\hss\copy\tabbox}%
1229             \else% leftsetting
1230               \hb@xt@\hsize{\copy\tabbox\hss}%
1231             \fi
1232             \vss}\null}}%
1233       \global\tryingtabfalse
1234       \global\doingtabtrue
1235       \global\startpageht=\pageht
1236       \global\htdone=\z@
1237       \dohang
1238       \ifnum\nosuccesstrytab>0%
1239        \JINST@mess{Flt. tab. \the\ftabcount\space set on page \the\count0,
1240                        shifted \the\nosuccesstrytab\space par(s) forward}%
1241%       \else
1242%       \JINST@mess{Floating table \the\ftabcount\space
1243%                       set on page \the\count0}%
1244       \fi
1245     \else
1246       \global\advance\nosuccesstrytab by 1
1247     \fi
1248     \else
1249     \ifdoingtab
1250       \get@pageht
1251    \global\htdone=\pageht
1252    \global\advance\htdone by -\startpageht
1253    \ifpageaftertab
1254      \global\doingtabfalse
1255    \else
1256      \dimen0=\fl@ht
1257      \advance\dimen0 by .85\baselineskip       % .85 ENOUGH: WE ARE AT NEW PAR
1258      \ifdim\htdone<\dimen0%
1259         \dohang
1260      \else
1261         \global\doingtabfalse
1262      \fi
1263    \fi
1264    \ifdoingtab\relax\else\global\tabprocessingfalse\fi
1265  \else
1266    \global\outputpretest={\outputtrue}%
1267  \fi
1268\fi
1269}
1270%----- hanging lord -----------------------------%
1271\def\dohang{%
1272   \dimen0=\fl@ht
1273   \advance\dimen0 by -\htdone
1274   \advance\dimen0 by 1.999\baselineskip        % (16/12/98) WAS 1.49 BUT
1275   \hangcount=\dimen0                           % TEX ROUNDS ON STRICT INTEGERS
1276   \divide\hangcount by \baselineskip           % IN THIS DIVISION!
1277%       \typeout{HANGCOUNT: \the\hangcount.}
1278%   \ifnum\hangcount > 0        % IF ZERO ALSO INDENT MUST BE NULL. (7/6/97)
1279     \dimen0=\fl@wd
1280     \advance\dimen0 by \fl@gut
1281     \ifoddpages
1282       \global\hangindent=-\dimen0% placing right
1283     \else
1284       \global\hangindent=\dimen0% placing left
1285     \fi
1286   \global\hangafter=-\hangcount
1287%   \fi
1288}
1289%----------------------- TWO NEWITEMS ---------------------%
1290\newcommand{\fltitem}[2][\z@]{\setlength{\fltitemwidth}{\linewidth}%
1291  \addtolength{\fltitemwidth}{-\floatfltwidth}%
1292  \addtolength{\fltitemwidth}{-0.5em}%
1293  \item \parbox[t]{\fltitemwidth}{#2}\\[#1]}
1294\newcommand{\fltditem}[3][\z@]{\setlength{\fltitemwidth}{\linewidth}%
1295  \addtolength{\fltitemwidth}{-\floatfltwidth}%
1296  \addtolength{\fltitemwidth}{-0.5em}%
1297  \item[#2] \parbox[t]{\fltitemwidth}{#3}\\[#1]}
1298%%%%%%\endinput
1299%%%
1300%%% End of ex-file `floatflt.sty'.
1301
1302%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CAPTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1303\newlength\abovecaptionskip
1304\newlength\belowcaptionskip
1305\setlength\abovecaptionskip{8\p@}
1306\setlength\belowcaptionskip{0\p@}
1307\long\def\@makecaption#1#2{%
1308  \if@hyper{\edef\@pippo{the\@captype}
1309            \name{\@captype\expandafter\csname\@pippo\endcsname}}\fi%
1310  \vskip\abovecaptionskip
1311 {\let\label\@gobble%                           % FN 10.2.97 REMOVED LATEX BUG:
1312  \let\index\@gobble%                           % LARGE CAPTIONS PROCESS LABEL
1313  \let\glossary\@gobble%                        % TWO TIMES.
1314  \sbox\@tempboxa{\small {\bfseries #1.} #2}%   %
1315  \global\dimen0\wd\@tempboxa}%                 %
1316  \ifdim \dimen0 >\hsize
1317    \small {\bfseries #1.} #2\par
1318  \else
1319    \global\@minipagefalse \sbox\@tempboxa{\small {\bfseries #1.} #2}%
1320    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
1321  \fi
1322  \vskip\belowcaptionskip}
1323%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FONTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1324\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
1325\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
1326\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
1327\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
1328\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
1329\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
1330\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
1331\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal}
1332\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal}
1333%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TOC %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1334\newcommand\tocsecs{}
1335\newcommand\@pnumwidth{1.55em}
1336\newcommand\@tocrmarg{2.55em}
1337\newcommand\@dotsep{4.5}
1338\setcounter{tocdepth}{3}
1339\newcommand\tableofcontents{%
1340    \section*{\contentsname\label{-TOC-}}
1341    \@starttoc{toc}%
1342    \gdef\tableofcontents{\JINST@igno{\tableofcontents\space already done}}}
1343\newcommand*\l@part[2]{\def\hyp@typ{part}%     
1344  \ifnum \c@tocdepth >-2\relax
1345    \addpenalty\@secpenalty
1346    \addvspace{2.25em \@plus\p@}%
1347    \begingroup
1348      \setlength\@tempdima{3em}%
1349      \parindent \z@ \rightskip \@pnumwidth
1350      \parfillskip -\@pnumwidth
1351      {\leavevmode
1352       \large \bfseries \tocsecs#1\hfil \hb@xt@\@pnumwidth{\hss
1353                \intJlink{\hash pag#2}{#2}}}\par
1354       \nobreak
1355       \if@compatibility
1356         \global\@nobreaktrue
1357         \everypar{\global\@nobreakfalse\everypar{}}%
1358      \fi
1359    \endgroup
1360  \fi}
1361\newcommand*\l@section[2]{\def\hyp@typ{sec}%
1362  \ifnum \c@tocdepth >\z@
1363    \addpenalty\@secpenalty
1364    \addvspace{1.0em \@plus\p@}%
1365    \setlength\@tempdima{1.8em}%        %WIDTH OF SECT. N.
1366    \begingroup
1367      \let\d@t.%
1368      \parindent \z@ \rightskip \@pnumwidth
1369      \parfillskip -\@pnumwidth
1370      \leavevmode \bfseries
1371      \advance\leftskip\@tempdima
1372      \hskip -\leftskip
1373        \tocsecs#1\nobreak\hfil %HREF HERE WOULD GET ALSO THE TITLE(...)
1374        \nobreak\hb@xt@\@pnumwidth{\hss \intJlink{\hash pag#2}{#2}}\par
1375    \endgroup
1376  \fi}
1377
1378\newcommand*\l@subsection{\def\hyp@typ{sec}\@tocline{2}{1.8em}{2.3em}}
1379\newcommand*\l@subsubsection{\def\hyp@typ{sec}\@tocline{3}{4.1em}{3.1em}}
1380\newcommand*\l@paragraph{\def\hyp@typ{sec}\@tocline{4}{7.2em}{4.3em}}
1381\newcommand*\l@subparagraph{\def\hyp@typ{sec}\@tocline{5}{10.5em}{5em}}
1382
1383\if@hyper
1384  \let\old@dtl\@dottedtocline
1385  \def\@dottedtocline#1#2#3#4#5{\old@dtl{#1}{#2}{#3}{#4}{%
1386                                                \intJlink{\hash pag#5}{#5}}}
1387\fi
1388
1389\def\@tocline#1#2#3#4#5{%
1390  \ifnum #1>\c@tocdepth \else
1391    \vskip \z@ \@plus.2\p@
1392    {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
1393     \parindent #2\relax\@afterindenttrue
1394     \interlinepenalty\@M
1395     \leavevmode
1396     \@tempdima #3\relax
1397     \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
1398     {#4}\nobreak
1399     \hfill
1400     \nobreak
1401     \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor \intJlink{\hash pag#5}{#5}}%
1402     \par}%
1403  \fi}
1404
1405
1406%%%%%%%%%%%%%%%%%%%%%% LIST OF FIGURES AND TABLES %%%%%%%%%%%%%%%%%%%%%
1407\if@draft                       % ONLY IF DRAFT! ...
1408 \newcommand\listoffigures{%
1409     \section*{\listfigurename
1410       \@mkboth{\MakeUppercase\listfigurename}%
1411               {\MakeUppercase\listfigurename}}%
1412     \@starttoc{lof}%
1413     }
1414 \newcommand*\l@figure{\def\hyp@typ{figure}\@dottedtocline{1}{1.5em}{2.3em}}
1415 \newcommand\listoftables{%
1416     \section*{\listtablename
1417       \@mkboth{%
1418           \MakeUppercase\listtablename}{\MakeUppercase\listtablename}}%
1419     \@starttoc{lot}%
1420     }
1421 \newcommand*\l@table{\def\hyp@typ{table}\@dottedtocline{1}{1.5em}{2.3em}}
1422\else
1423 \newcommand\listoffigures{\JINST@ignol{List of figures (draft mode only)}}
1424 \newcommand\listoftables{\JINST@ignol{List of tables (draft mode only)}}
1425\fi
1426%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BIBLIOGRAPHY %%%%%%%%%%%%%%%%%%%%%%%%%%%%***
1427\newdimen\bibindent
1428\setlength\bibindent{1.5em}
1429\newenvironment{thebibliography}[1]%    %UNFORTUNATELY MODIFIED..
1430     {\bgroup\raggedright\small\section*{\refname
1431        \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}}%
1432      \list{\name{bib\@arabic\c@enumiv}% HOPE!
1433            \@biblabel{\@arabic\c@enumiv}}%
1434           {\settowidth\labelwidth{\@biblabel{#1}}%
1435            \leftmargin\labelwidth
1436            \advance\leftmargin\labelsep
1437            \@openbib@code
1438            \usecounter{enumiv}%
1439            \let\p@enumiv\@empty
1440            \renewcommand\theenumiv{\@arabic\c@enumiv}}%
1441      \sloppy\clubpenalty4000\widowpenalty4000%
1442      \sfcode`\.\@m}
1443     {\def\@noitemerr
1444       {\@latex@warning{Empty `thebibliography' environment}}%
1445      \endlist\egroup}
1446\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
1447\if@draft
1448 \let\old@bbt\@bibitem\let\old@lbbt\@lbibitem% LOOK THE DISASTER HERE BELOW.
1449 \def\@lbibitem[#1]#2{\old@lbbt[#1]{#2}\reversemarginpar{\sf\bfseries\small#2}}
1450 \def\@bibitem#1{\old@bbt{#1}\reversemarginpar{\sf\bfseries\small#1}}
1451\fi
1452\let\@openbib@code\@empty
1453%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% JOURNALS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1454\def\@spires#1{\href{http://www-spires.slac.stanford.edu/spires/find/hep/www?j=#1}}
1455%                                       %PITY THAT target IS NOT IMPLEMENTED.
1456\catcode`\%=12
1457\catcode`\|=14
1458|%%%% SM publications
1459\newcommand\jcap[3]  {\href{http://www.iop.org/EJ/abstract/1475-7516/#2/#1/#3}
1460                {{\it JCAP }{\bf #1} (#2) #3}}
1461\newcommand\jhep[3]  {\href{http://www.iop.org/EJ/abstract/1126-6708/#2/#1/#3}
1462                {{\it JHEP }{\bf #1} (#2) #3}}
1463\def\splitJINST#120#2#3#4#5#6#7#8#9{\href{http://www.iop.org/EJ/abstract/1748-0221/#1/#5#6/#4#5#6#7#8#9}
1464                {20#2#3 {\it JINST }{\bf #1} #4#5#6#7#8#9}}
1465\newcommand\jinst[3]   {\splitJINST#1#2#3}
1466                 
1467\def\splitJSTAT 20#1#2#3#4#5#6#7#8{\href{http://www.iop.org/EJ/abstract/1742-5468/20#1#2/#4#5/#3#4#5#6#7#8}
1468                {{\it J. Stat. Mech.\ }(20#1#2) #3#4#5#6#7#8}}
1469\newcommand\jstat[2]{\splitJSTAT#1#2}
1470\newcommand\pos[1]{\href{http://pos.sissa.it/cgi-bin/reader/contribution.cgi?id=#1}{\tt #1}}
1471|%%%% APS journals
1472\newcommand\pr[3]{\href{http://dx.doi.org/10.1103/PhysRev.#1.#3}
1473  {\emph{Phys.\ Rev.} {\bf #1} (#2) #3}}
1474\newcommand\pra[3]{\href{http://dx.doi.org/10.1103/PhysRevA.#1.#3}
1475  {\emph{Phys.\ Rev.} {\bf A #1} (#2) #3}}
1476\newcommand\prb[3]{\href{http://dx.doi.org/10.1103/PhysRevB.#1.#3}
1477  {\emph{Phys.\ Rev.} {\bf B #1} (#2) #3}}
1478\newcommand\prc[3]{\href{http://dx.doi.org/10.1103/PhysRevC.#1.#3}
1479  {\emph{Phys.\ Rev.} {\bf C #1} (#2) #3}}
1480\newcommand\prd[3]{\href{http://dx.doi.org/10.1103/PhysRevD.#1.#3}
1481  {\emph{Phys.\ Rev.} {\bf D #1} (#2) #3}}
1482\newcommand\prl[3]{\href{http://dx.doi.org/10.1103/PhysRevLett.#1.#3}
1483  {\emph{Phys.\ Rev.\ Lett.} {\bf #1} (#2) #3}}
1484|%%%% Others
1485\newcommand\econf[3]  {\@spires{ECONF%2C#1%2C#3}
1486                {{\it eConf\ }{\bf #1} (#2) #3}}
1487\newcommand\rsi[3]{\href{http://scitation.aip.org/getabs/servlet/GetabsServlet?prog=normal&id=RSINAK0000#1000001#3000001}
1488{\emph{Rev.\ Sci.\ Instrum.} {\bf #1} (#2) #3}}
1489| }}}}}}}}}}}}}}}}}}}}}} "|" is here a comment (catcode defined above) to
1490| }}}}}}}}}}}}}}}}}}}}}} include parenthesis for emacs to parse properly.
1491\newcommand\ibid[3]{{\it ibid.\ }{\bf #1} (#2) #3}
1492\catcode`\%=14
1493\catcode`\|=12
1494% HEPTH's: \hepth{9912999} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1495\newcommand{\hepth}[1]{\href{http://www.arxiv.org/abs/hep-th/#1}{\tt hep-th/#1}}
1496\newcommand{\hepph}[1]{\href{http://www.arxiv.org/abs/hep-ph/#1}{\tt hep-ph/#1}}
1497\newcommand{\heplat}[1]{\href{http://www.arxiv.org/abs/hep-lat/#1}{\tt hep-lat/#1}}
1498\newcommand{\hepex}[1]{\href{http://www.arxiv.org/abs/hep-ex/#1}{\tt hep-ex/#1}}
1499\newcommand{\nuclth}[1]{\href{http://www.arxiv.org/abs/nucl-th/#1}{\tt nucl-th/#1}}
1500\newcommand{\nuclex}[1]{\href{http://www.arxiv.org/abs/nucl-ex/#1}{\tt nucl-ex/#1}}
1501\newcommand{\grqc}[1]{\href{http://www.arxiv.org/abs/gr-qc/#1}{\tt gr-qc/#1}}
1502\newcommand{\qalg}[1]{\href{http://www.arxiv.org/abs/q-alg/#1}{\tt q-alg/#1}}
1503\newcommand{\dgga}[1]{\href{http://www.arxiv.org/abs/dg-ga/#1}{\tt dg-ga/#1}}
1504\newcommand{\accphys}[1]{\href{http://www.arxiv.org/abs/accphys/#1}{\tt accphys/#1}}
1505\newcommand{\alggeom}[1]{\href{http://www.arxiv.org/abs/alg-geom/#1}{\tt alg-geom/#1}}
1506\newcommand{\astroph}[1]{\href{http://www.arxiv.org/abs/astro-ph/#1}{\tt astro-ph/#1}}
1507\newcommand{\chaodyn}[1]{\href{http://www.arxiv.org/abs/chao-dyn/#1}{\tt chao-dyn/#1}}
1508\newcommand{\condmat}[1]{\href{http://www.arxiv.org/abs/cond-mat/#1}{\tt cond-mat/#1}}
1509\newcommand{\nlinsys}[1]{\href{http://www.arxiv.org/abs/nlin-sys/#1}{\tt nlin-sys/#1}}
1510\newcommand{\quantph}[1]{\href{http://www.arxiv.org/abs/quant-ph/#1}{\tt quant-ph/#1}}
1511\newcommand{\solvint}[1]{\href{http://www.arxiv.org/abs/solv-int/#1}{\tt solv-int/#1}}
1512\newcommand{\suprcon}[1]{\href{http://www.arxiv.org/abs/supr-con/#1}{\tt supr-con/#1}}
1513\newcommand{\mathph}[1]{\href{http://www.arxiv.org/abs/math-ph/#1}{\tt math-ph/#1}}
1514\newcommand{\physics}[1]{\href{http://www.arxiv.org/abs/physics/#1}{\tt physics/#1}}
1515\newcommand{\Math}[2]{\href{http://www.arxiv.org/abs/math.#1/#2}{\tt math.#1/#2}}
1516%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BopHook %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1517\ifpdf
1518\newcommand\Jwatermark[1]{\relax}
1519\JINST@warnl{ATTENTION!!! watermark disabled. Add it with pdftk
1520(use compilaJINSTpdflatex for instance)}
1521\else
1522\newcommand\Jwatermark[1]{\special{!userdict begin
1523/iseven {dup dup 2 idiv 2 mul eq} bind def
1524/BHend {
1525  translate rotate
1526/Courier findfont 30 scalefont setfont
15270 0  moveto 0.80 setgray (#1) show grestore}
1528 bind def
1529statusdict /duplexmode known
1530  {statusdict begin duplexmode end}
1531  {false}
1532ifelse
1533  {/bop-hook {gsave iseven {-90 550 570} {+90 50 300} ifelse BHend} def}
1534  {/bop-hook {gsave         -90 550 570                      BHend} def}
1535ifelse
1536end
1537}\let\JHEP\gobble}
1538\fi
1539%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FOOTNOTES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1540\skip\footins = 1\bigskipamount plus 2pt minus 4pt
1541
1542\addtolength{\footnotesep}{1pt}
1543\renewcommand\footnoterule{%    % NO HYPER...
1544  \kern-3\p@
1545  \hrule\@width.4\columnwidth
1546  \kern2.6\p@}
1547\newcommand\@makefntext[1]{%
1548    \parindent 1em%
1549    \noindent
1550    \hb@xt@1.8em{\hss\@makefnmark}#1}
1551%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% NAMES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1552\newcommand\contentsname{Contents}
1553\if@draft\newcommand\listfigurename{List of figures}
1554         \newcommand\listtablename{List of tables}\fi
1555\newcommand\refname{References}
1556\newcommand\indexname{Index}
1557\newcommand\figurename{Figure}
1558\newcommand\tablename{Table}
1559\newcommand\partname{Part}
1560\newcommand\appendixname{Appendix}
1561\newcommand\abstractname{Abstract:}
1562\newcommand\keywordsname{Keywords:}
1563\newcommand\receivedname{Received:}
1564\newcommand\revisedname{Revised:}
1565\newcommand\acceptedname{Accepted:}
1566\newcommand\publishedname{Published:}
1567\newcommand\acknowlname{Acknowledgments}
1568\newcommand\queriesname{Queries for the author}
1569\newcommand\today{}
1570\edef\today{\ifcase\month\or
1571  January\or February\or March\or April\or May\or June\or
1572  July\or August\or September\or October\or November\or December\fi
1573  \space\number\day, \number\year}
1574
1575\setlength\columnsep{20\p@}
1576\setlength\columnseprule{0\p@}
1577%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DEFAULTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1578\pagestyle{JINST}
1579\pagenumbering{arabic}
1580\@addtoreset{equation}{section}
1581\if@preprint
1582\else
1583        \let\pagestyle\@gobble
1584        \let\thispagestyle\@gobble
1585        \let\pagenumbering\@gobble
1586\fi
1587\onecolumn
1588                                               
1589% FOR REQUESTED FRONTMATTER ...
1590\AtBeginDocument{\bgroup%               SOME NICE (LOCAL) MESSAGES...
1591        \def\@APPwarn#1{\JINST@warnl{\protect#1 should appear
1592                                        before \protect\begin{document}}}%
1593        \def\@APPerr#1{\ClassError{JINST}{\protect#1 should appear
1594                                        before \protect\begin{document}}}%
1595        \if@author\else\@APPerr{Some \protect\author{...}}\fi
1596        \if@abstract\else\@APPerr{\abstract{...}}\fi
1597        \if@preprint
1598        \else
1599                \if@rece\else\@APPerr{\received{...}}\fi
1600                \if@acce\else\@APPerr{\accepted{...}}\fi
1601                \if@publi\else\@APPerr{\published{...}}\fi
1602                \if@keywords\else\@APPwarn{\keywords{...}}\fi
1603        \fi
1604        \egroup
1605        \auto@maketitle}%
1606\endinput
1607%%
1608%% End of file `JINST.cls'.
Note: See TracBrowser for help on using the repository browser.