← All templates

Journal of Mathematical Logic (World Scientific)

World Scientific's own LaTeX kit for Journal of Mathematical Logic: the ws-jml class with its sample paper and bibliography style.

Create an account to use this
Category
Journal
Document class
ws-jml (ws-jml.cls) — ships with TeX Live
Workflow
Journal manuscript — submissions and revision rounds
Author
World Scientific Publishing
Source
World Scientific Publishing
Licence
No licence is stated in the files. World Scientific Publishing distributes them for authors preparing a submission.

These are the publisher’s own files. This project starts from World Scientific Publishing’s package for this publication — their manuscript, their ws-jml.cls, their bibliography style — so what compiles here is what they would have given you.

World Scientific Publishing serves this exact file to Journal of Mathematical Logic. Check World Scientific Publishing’s author pages for the current instructions.

What you get

  • jmlf1-eps-converted-to.pdf · 5 KB
  • jmlf1.eps · 15 KB
  • jmlf1.pdf · 2 KB
  • sample.bib · 6 KB
  • ws-jml-thm.sty · 8 KB
  • ws-jml.bst · 28 KB
  • ws-jml.cls · 34 KB
  • ws-jml.tex — the file that is compiled · 12 KB
  • ws-jml_bib.tex · 2 KB

These become your files. Editing them afterwards changes your project and nothing else — a project owns its files from the moment it is made.

Journals using this template

Source

jmlf1-eps-converted-to.pdf — binary, 5 KB

jmlf1.eps — binary, 15 KB

jmlf1.pdf — binary, 2 KB

sample.bib · 6 KB
@manual{lamp87,
  author    =   "L. Lamport",
  title     =   "Make Index: An Index Processor For LaTeX",
  year      =   "1987"}

@book{jarl88,
  author    =   "C. Jarlskog" ,
  title     =   "CP Violation",
  publisher =   "World Scientific",
  address   =   "Singapore",
  year      =   "1988"}

@book{lamp94,
  author    =   "L. Lamport",
  title     =   "\LaTeX, A Document Preparation System",
  publisher =   "Addison-Wesley",
  address   =   "Reading, MA",
  year      =   "1994",
  edition   =   "2nd"}

@book{ams04,
  author    =   "\AmS",
  title     =   "\AmS-\LaTeX{} Version 2 User's Guide",
  publisher =   "American Mathematical Society",
  address   =   "Providence",
  year      =   "2004",
  note      =   "\url{http://www.ams.org/tex/amslatex.html}."}

@book{benh93,
  editor    =   "Fr\'ed\'eric Benhamou and Alain Colmerauer" ,
  title     =   "Constraint Logic Programming, Selected Research",
  publisher =   "MIT Press",
  year      =   "1993"}

@book{rich60,
  author    =   "L. F. Richardson",
  title     =   "Arms and Insecurity",
  publisher =   "Boxwood",
  address   =   "Pittsburg",
  pages     =   "200--253",
  year      =   "1960"}

@book{chur90,
  author    =   "R. V. Churchill and J. W. Brown",
  title     =   "Complex Variables and Applications",
  publisher =   "McGraw-Hill",
  pages     =   "215--253",
  year      =   "1990",
  edition   =   "5th"}

@inproceedings{gupt97,
  author    =   "R. K. Gupta and S. D. Senturia",
  title     =   "Pull-in Time Dynamics as a Measure of Absolute Pressure",
  booktitle =   "Proc {IEEE} Int Workshop on
                Microelectromechanical Systems ({MEMS}'97)",
  address   =   "Nagoya, Japan",
  month     =   jan,
  year      =   "1997",
  pages     =   "290-294"}

@proceedings{weis94,
  title     =   "Contemporary Problems in Statistical Physics",
  booktitle =   "Contemporary Problems in Statistical Physics",
  editor    =   "G. H. Weiss",
  publisher =   "SIAM, Philadelphia",
  year      =   "1994"}

@article{best03,
    author  =   "Bestbury, Bruce W.",
     title  =   "{$R$}-matrices and the magic square",
   journal  =   "J. Phys. A",
  fjournal  =   "Journal of Physics. A. Mathematical and General",
    volume  =   "36",
      year  =   "2003",
    number  =   "7",
     pages  =   "1947--1959",
      issn  =   "0305-4470",
     coden  =   "JPHAC5",
   mrclass  =   "17B10",
  mrnumber  =   "1 960 703"}

@article{pier02,
    author  =   "Deligne, Pierre X. and Gross, Benedict H.",
     title  =   "On the exceptional series, and its descendants",
   journal  =   "C. R. Math. Acad. Sci. Paris",
  fjournal  =   "Comptes Rendus Math\'ematique. Acad\'emie des Sciences. Paris",
    volume  =   "335",
      year  =   "2002",
    number  =   "11",
     pages  =   "877--881",
      issn  =   "1631-073X",
   mrclass  =   "20Gxx",
  mrnumber  =   "1 952 563"}

@article{jame02,
    author  =   "Landsberg, James. M. and Manivel, L.",
     title  =   "Triality, exceptional Lie algebras and Deligne dimension formulas",
   journal  =   "Adv. Math.",
  fjournal  =   "Advances in Mathematics",
    volume  =   "171",
      year  =   "2002",
    number  =   "1",
     pages  =   "59--85",
      issn  =   "0001-8708",
     coden  =   "ADMTA4",
   mrclass  =   "17B20 (17B25)",
  mrnumber  =   "1 933 384",
mrreviewer  =   "Dmitri I. Panyushev"}

@techreport{hobb92,
     author =   "John D. Hobby",
      title =   "{A User's Manual for MetaPost}",
       year =   "1992",
      month =   "apr",
   language =   "english",
institution =   "AT\&T Bell Laboratories",
    address =   "Murray Hill, New Jersey",
       date =   "April 1992",
     number =   "162",
     npages =   "ii+88~pages"}

@techreport{bria84,
     author =   "Kernighan, Brian W.",
      title =   "{PIC}---{A} Graphics Language for Typesetting",
       type =   "Computing Science Technical Report",
     number =   "116",
institution =   "AT\&T Bell Laboratories",
    address =   "Murray Hill, New Jersey",
       year =   "1984"}

@unpublished{hear94,
  author    =   "H. C. Heard and I. V. Borg and N. L. Carter and C. B. Raleigh",
  title     =   "{VoQS: Voice Quality Symbols}",
  note      =   "Revised to 1994",
  year      =   "1994"}

@phdthesis{brow88,
  author    =   "Marcus E. Brown",
  title     =   "An interactive environment for literate programming",
  school    =   "Texas A\&M University",
  address   =   "TX, USA",
  pages     =   "ix + 102",
  month     =   "aug",
  year      =   "1988"}

@inbook{hear72,
  editor    =   "H. C. Heard and I. V. Borg and N. L. Carter and C. B. Raleigh",
  year      =   "1972",
  title     =   "Seismic Velocity Anisotropy Calculated for Ultramafic Minerals
                and Aggregates",
  booktitle =   "Flow and Fracture of Rocks",
  publisher =   "Am Geophys Union",
  series    =   "Geophys Mono",
  volume    =   "16",
  pages     =   "157--166"}

@mastersthesis{lodh74,
  author    =   "Gunter Sergei Lodha",
  title     =   "Quantitative interpretation of ariborne
                electromagnetic response for a spherical model",
  school    =   "University of Toronto",
  address   =   "Canada",
  year      =   "1974"}

@incollection{dani73,
  author    =   "Jones, Daniel",
  title     =   "{The term ``phoneme''}",
  editor    =   "Jones, W. E. and Laver, J.",
  booktitle =   "Phonetics in Linguistics: A Book of Reading",
  publisher =   "Longman",
  address   =   "London",
  pages     =   "187--204",
  year      =   "1973"}

@misc{poly15,
	title = {Let {There} {Be} {Light} {Stabilizers}!},
	url = {https://www.polymersolutions.com/blog/let-there-be-light-stabilizers/},
	abstract = {How light stabilizers work to protect polymers and products from damage by ultra-violet radiation.},
	language = {en-US},
	urldate = {2021-01-23},
	author = {{Polymer Solutions Incorporated}},
	month = nov,
	year = {2015},
}

@misc{zhao18,
	title = {Purdue {University} {Meteorological} {Tool}},
	url = {https://nanohub.org/resources/27491?rev=24},
	urldate = {2021-01-25},
	publisher = {nanoHUB},
	author = {Zhao, Binglin and Sun, Xingshu and Khan, Mohammad and Alam, Muhammad},
	year = {2018},
	doi = {10.4231/D3PR7MW72},
}

@booklet{bill91,
  author       = "Bill Murrey",
  title        = "Kerning on the Fly",
  howpublished = "URW Non-Plus-Ultra Typography Series",
  address      = "Pittsburg",
  year         = "1991"}
ws-jml-thm.sty · 8 KB
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Theorem %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% D. Rajesh Babu, <[email protected]>
%
% plain:      italic text,  boldface title, extra space above and below
% definition: upright text, boldface title, extra space above and below
% remark:     upright text, boldface title, extra space above and below

% plain - Theorem, Lemma, Corollary, Proposition, Conjecture, Criterion, Assertion
% definition - Definition, Condition, Problem, Example, Assumption, Exercise, Algorithm, Question, Axiom, Property, Hypothesis
% remark - Remark, Note, Notation, Claim, Summary, Case, Acknowledgment, Conclusion
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{ws-jml-thm}[2018/01/10 Theorem Style]
%
\def\@xthm#1#2{\@begintheorem{#2}{\csname the#1\endcsname}{}\ignorespaces}
\def\@ythm#1#2[#3]{\@opargbegintheorem{#2}{\csname the#1\endcsname}{#3}\ignorespaces}
\def\@opargbegintheorem#1#2#3{\trivlist%
      \item[\hskip \labelsep{\bfseries #1\ #2\ (#3). }]\csname#1font\endcsname}
%
\let\Answerfont\upshape
\let\Assertionfont\itshape
\let\Assumptionfont\upshape
\let\Axiomfont\upshape
\let\Casefont\upshape
\let\Claimfont\upshape
\let\Conclusion\upshape
\let\Conditionfont\upshape
\let\Conjecturefont\itshape
\let\Conventionfont\upshape
\let\Corollaryfont\itshape
\let\Criterionfont\itshape
\let\Definitionfont\upshape
\let\Examplefont\upshape
\let\Hypothesisfont\upshape
\let\Lemmafont\itshape
\let\Notationfont\upshape
\let\Notefont\upshape
\let\Observationfont\upshape
\let\Problemfont\upshape
\let\Propertyfont\upshape
\let\Propositionfont\itshape
\let\Remarkfont\upshape
\let\Summaryfont\upshape
\let\Theoremfont\itshape
%\let\Algorithmfont\upshape
%\let\Questionfont\upshape
%\let\Solutionfont\upshape
%
\let\Answerheadfont\bfseries
\let\Assertionheadfont\bfseries
\let\Assumptionheadfont\bfseries
\let\Axiomheadfont\bfseries
\let\Caseheadfont\bfseries
\let\Claimheadfont\bfseries
\let\Conclusionheadfont\bfseries
\let\Conditionheadfont\bfseries
\let\Conjectureheadfont\bfseries
\let\Conventionheadfont\bfseries
\let\Corollaryheadfont\bfseries
\let\Criterionheadfont\bfseries
\let\Definitionheadfont\bfseries
\let\Exampleheadfont\bfseries
\let\Hypothesisheadfont\bfseries
\let\Lemmaheadfont\bfseries
\let\Notationheadfont\bfseries
\let\Noteheadfont\bfseries
\let\Observationheadfont\bfseries
\let\Problemheadfont\bfseries
\let\Propertyheadfont\bfseries
\let\Propositionheadfont\bfseries
\let\Remarkheadfont\bfseries
\let\Summaryheadfont\bfseries
\let\Theoremheadfont\bfseries
%\let\Algorithmheadfont\bfseries
%\let\Questionheadfont\bfseries
%\let\Solutionheadfont\bfseries
%
\def\@begintheorem#1#2#3{\par\addvspace{8pt plus3pt minus2pt}%
              \noindent{\csname#1headfont\endcsname#1\ \ignorespaces#3 #2.}%
              \csname#1font\endcsname\hskip.4em\ignorespaces}
\def\@endtheorem{\par\addvspace{8pt plus3pt minus2pt}\@endparenv}
%
\newtheorem{theorem}{Theorem}[section]
\newtheorem{answer}[theorem]{Answer}
\newtheorem{assertion}[theorem]{Assertion}
\newtheorem{assumption}[theorem]{Assumption}
\newtheorem{axiom}[theorem]{Axiom}
\newtheorem{case}[theorem]{Case}
\newtheorem{claim}[theorem]{Claim}
\newtheorem{condition}[theorem]{Condition}
\newtheorem{conjecture}[theorem]{Conjecture}
\newtheorem{convention}[theorem]{Convention}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{criterion}[theorem]{Criterion}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{example}[theorem]{Example}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{notation}[theorem]{Notation}
\newtheorem{note}[theorem]{Note}
\newtheorem{observation}[theorem]{Observation}
\newtheorem{problem}[theorem]{Problem}
\newtheorem{property}[theorem]{Property}
\newtheorem{hypothesis}[theorem]{Hypothesis}
\newtheorem{conclusion}[theorem]{Conclusion}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{remark}[theorem]{Remark}
\newtheorem{summary}[theorem]{Summary}
%\newtheorem{algorithm}{Algorithm}[section]
%\newtheorem{question}{Question}[section]
%\newtheorem{solution}{Solution}
%
\newenvironment{comment}[1][Comment]{\begin{trivlist}
\item[\hskip \labelsep {\bfseries #1:}]}{\end{trivlist}}
%
\DeclareRobustCommand{\qed}{%
  \ifmmode \mathqed
  \else
    \leavevmode\unskip\penalty9999 \hbox{}\nobreak\hfill
    \quad\hbox{\qedsymbol}%
  \fi
}
\let\QED@stack\@empty
\let\qed@elt\relax
\newcommand{\pushQED}[1]{%
  \toks@{\qed@elt{#1}}\@temptokena\expandafter{\QED@stack}%
  \xdef\QED@stack{\the\toks@\the\@temptokena}%
}
\newcommand{\popQED}{%
  \begingroup\let\qed@elt\popQED@elt \QED@stack\relax\relax\endgroup
}
\def\popQED@elt#1#2\relax{#1\gdef\QED@stack{#2}}
\newcommand{\qedhere}{%
  \begingroup \let\mathqed\math@qedhere
    \let\qed@elt\setQED@elt \QED@stack\relax\relax \endgroup
}
\newif\ifmeasuring@
\newif\iffirstchoice@ \firstchoice@true
\def\setQED@elt#1#2\relax{%
  \ifmeasuring@
  \else \iffirstchoice@ \gdef\QED@stack{\qed@elt{}#2}\fi
  \fi
  #1%
}
\def\qed@warning{%
  \PackageWarning{amsthm}{The \@nx\qedhere command may not work
    correctly here}%
}
\newcommand{\mathqed}{\quad\hbox{\qedsymbol}}
\def\linebox@qed{\hfil\hbox{\qedsymbol}\hfilneg}
\@ifpackageloaded{amsmath}{%
  \def\math@qedhere{%
    \@ifundefined{\@currenvir @qed}{%
      \qed@warning\quad\hbox{\qedsymbol}%
    }{%
      \@xp\aftergroup\csname\@currenvir @qed\endcsname
    }%
  }
  \def\displaymath@qed{%
    \relax
    \ifmmode
      \ifinner \aftergroup\linebox@qed
      \else
        \eqno
        \let\eqno\relax \let\leqno\relax \let\veqno\relax
        \hbox{\qedsymbol}%
      \fi
    \else
       \aftergroup\linebox@qed
    \fi
  }
  \@xp\let\csname equation*@qed\endcsname\displaymath@qed
  \def\equation@qed{%
    \iftagsleft@
      \hbox{\phantom{\quad\qedsymbol}}%
      \gdef\alt@tag{%
        \rlap{\hbox to\displaywidth{\hfil\qedsymbol}}%
        \global\let\alt@tag\@empty
      }%
    \else
      \gdef\alt@tag{%
        \global\let\alt@tag\@empty
        \vtop{\ialign{\hfil####\cr
                \tagform@\theequation\cr
                \qedsymbol\cr}}%
        \setbox\z@
      }%
    \fi
  }
  \def\qed@tag{%
    \global\tag@true \nonumber
    &\omit\setboxz@h {\strut@ \qedsymbol}\tagsleft@false
    \place@tag@gather
    \kern-\tabskip
    \ifst@rred \else \global\@eqnswtrue \fi \global\advance\row@\@ne \cr
  }
  \def\split@qed{%
    \def\endsplit{\crcr\egroup \egroup \ctagsplit@false \rendsplit@
      \aftergroup\align@qed
    }%
  }
  \def\align@qed{%
    \ifmeasuring@ \tag*{\qedsymbol}%
    \else \let\math@cr@@@\qed@tag
    \fi
  }
  \@xp\let\csname align*@qed\endcsname\align@qed
  \@xp\let\csname gather*@qed\endcsname\align@qed
%% Needs some patching up for amsmath 1.2
}{% end of amsmath branch, start plain LaTeX branch
  \def\math@qedhere{%
    \@ifundefined{\@currenvir @qed}{%
      \qed@warning \aftergroup\displaymath@qed
    }{%
      \@xp\aftergroup\csname\@currenvir @qed\endcsname
    }%
  }
  \def\displaymath@qed{%
    \relax
    \ifmmode
      \ifinner \aftergroup\aftergroup\aftergroup\linebox@qed
      \else
        \eqno \def\@badmath{$$}%
        \let\eqno\relax \let\leqno\relax \let\veqno\relax
        \hbox{\qedsymbol}%
      \fi
    \else
       \aftergroup\linebox@qed
    \fi
  }
  \@ifundefined{[email protected]}{%
    \def\equation@qed{\displaymath@qed \quad}%
  }{%
    \def\equation@qed{\displaymath@qed}%
  }
  \def\@tempa#1$#2#3\@nil{%
    \def\[{#1$#2\def\@currenvir{displaymath}#3}%
  }%
  \expandafter\@tempa\[\@nil
}
\@ifpackageloaded{amstex}{%
  \def\@tempa{TT}%
}{%
  \@ifpackageloaded{amsmath}{%
    \def\@tempb#1 v#2.#3\@nil{#2}%
    \ifnum\@xp\@xp\@xp\@tempb\csname [email protected]\endcsname v0.0\@nil
       <\tw@
      \def\@tempa{TT}%
    \else
      \def\@tempa{TF}%
    \fi
  }{%
    \def\@tempa{TF}
  }%
}
\if\@tempa
  \renewcommand{\math@qedhere}{\quad\hbox{\qedsymbol}}%
\fi
\newcommand{\openbox}{\leavevmode
  \hbox to.77778em{%
  \hfil\vrule
  \vbox to.675em{\hrule width.6em\vfil\hrule}%
  \vrule\hfil}}
\DeclareRobustCommand{\textsquare}{%
  \begingroup \usefont{U}{msa}{m}{n}\thr@@\endgroup
}
\providecommand{\qedsymbol}{\openbox}
\newenvironment{proof}[1][\proofname]{%\par
  \pushQED{\qed}%
  \normalfont \topsep6\p@\@plus6\p@\relax
  \trivlist
  \item[\hskip\labelsep
        \it
    #1\@addpunct{.} ]\ignorespaces
}{%
  \popQED\endtrivlist\@endpefalse
}
\providecommand{\proofname}{Proof}

\endinput

% not declared in this package
% algorithm - used in `algorithm` package
% exercise, question - used in `exsheets` package
ws-jml.bst · 28 KB
%% WSPC JML BibTeX Style File -- version 1.0
%% BibTeX version 0.99c, intended for LaTeX2e
%%
%% 2009/12/14 Rajesh <[email protected]>
%% World Scientific Publishing Co. Pte. Ltd.
%%
%% This is file `ws-jml.bst',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% merlin.mbs  (with options: `seq-no,nm-init,ed-au,tit-qq,qx,thtit-a,vol-bf,vnum-x,volp-blk,jdt-p,pp-last,num-xser,jnm-x,pub-date,pre-pub,edby,edbyx,blk-com,pp,ed,xedn,jabr,and-xcom,nfss')
%% ----------------------------------------
%% *** Int. J. of Uncertainty, Fuzziness and Knowledge-Based Systems ***
%% *** prepared by Przemyslaw Wesolek ***
%% 
%% Copyright 1994-2002 Patrick W Daly
 % ===============================================================
 % IMPORTANT NOTICE:
 % This bibliographic style (bst) file has been generated from one or
 % more master bibliographic style (mbs) files, listed above.
 %
 % This generated file can be redistributed and/or modified under the terms
 % of the LaTeX Project Public License Distributed from CTAN
 % archives in directory macros/latex/base/lppl.txt; either
 % version 1 of the License, or any later version.
 % ===============================================================
 % Name and version information of the main mbs file:
 % \ProvidesFile{merlin.mbs}[2002/10/21 4.05 (PWD, AO, DPC)]
 %   For use with BibTeX version 0.99a or later
 %-------------------------------------------------------------------
 % This bibliography style file is intended for texts in ENGLISH
 % This is a numerical citation style, and as such is standard LaTeX.
 % It requires no extra package to interface to the main text.
 % The form of the \bibitem entries is
 %   \bibitem{key}...
 % Usage of \cite is as follows:
 %   \cite{key} ==>>          [#]
 %   \cite[chap. 2]{key} ==>> [#, chap. 2]
 % where # is a number determined by the ordering in the reference list.
 % The order in the reference list is that by which the works were originally
 %   cited in the text, or that in the database.
 %---------------------------------------------------------------------

ENTRY
  { address
    author
    booktitle
    chapter
    edition
    editor
    howpublished
    institution
    journal
    key
    month
    note
    number
    organization
    pages
    publisher
    school
    series
    title
    type
    volume
    year
    url
  }
  {}
  { label extra.label sort.label short.list}
INTEGERS {output.state before.all mid.sentence after.sentence after.block }
FUNCTION {init.state.consts}
{ #0 'before.all :=
  #1 'mid.sentence :=
  #2 'after.sentence :=
  #3 'after.block :=
}
STRINGS {s t}
FUNCTION {output.nonnull}
{ 's :=
  output.state mid.sentence =
    { ", " * write$ }
    { output.state after.block =
        { add.period$ write$
          newline$
          "\newblock " write$
        }
        { output.state before.all =
            'write$
            { add.period$ " " * write$ }
          if$
        }
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}
FUNCTION {output}
{ duplicate$ empty$
    'pop$
    'output.nonnull
  if$
}
FUNCTION {output.check}
{ 't :=
  duplicate$ empty$
    { pop$ "empty " t * " in " * cite$ * warning$ }
    'output.nonnull
  if$
}
FUNCTION {fin.entry}
{ add.period$
  write$
  newline$
}
FUNCTION {new.block}
{ output.state before.all =
    'skip$
    { after.block 'output.state := }
  if$
}
FUNCTION {new.sentence}
{ output.state after.block =
    'skip$
    { output.state before.all =
        'skip$
        { after.sentence 'output.state := }
      if$
    }
  if$
}
FUNCTION {add.blank}
{  " " * before.all 'output.state :=
}
FUNCTION {date.block}
{
  skip$
}
FUNCTION {not}
{   { #0 }
    { #1 }
  if$
}
FUNCTION {and}
{   'skip$
    { pop$ #0 }
  if$
}
FUNCTION {or}
{   { pop$ #1 }
    'skip$
  if$
}
FUNCTION {non.stop}
{ duplicate$
   "}" * add.period$
   #-1 #1 substring$ "." =
}
FUNCTION {new.block.checka}
{ empty$
    'skip$
    'new.block
  if$
}
FUNCTION {new.block.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.block
  if$
}
FUNCTION {new.sentence.checka}
{ empty$
    'skip$
    'new.sentence
  if$
}
FUNCTION {new.sentence.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.sentence
  if$
}
FUNCTION {field.or.null}
{ duplicate$ empty$
    { pop$ "" }
    'skip$
  if$
}
FUNCTION {emphasize}
{ duplicate$ empty$
    { pop$ "" }
    { "\emph{" swap$ * "}" * }
  if$
}
FUNCTION {bolden}
{ duplicate$ empty$
    { pop$ "" }
    { "\textbf{" swap$ * "}" * }
  if$
}
FUNCTION {tie.or.space.prefix}
{ duplicate$ text.length$ #3 <
    { "~" }
    { " " }
  if$
  swap$
}
FUNCTION {capitalize}
{ "u" change.case$ "t" change.case$ }

FUNCTION {space.word}
{ " " swap$ * " " * }
 % Here are the language-specific definitions for explicit words.
 % Each function has a name bbl.xxx where xxx is the English word.
 % The language selected here is ENGLISH
FUNCTION {bbl.and}
{ "and"}

FUNCTION {bbl.etal}
{ "et~al." }

FUNCTION {bbl.editors}
{ "eds." }

FUNCTION {bbl.editor}
{ "ed." }

FUNCTION {bbl.edby}
{ "edited by" }

FUNCTION {bbl.edition}
{ "edition" }

FUNCTION {bbl.volume}
{ "volume" }

FUNCTION {bbl.of}
{ "of" }

FUNCTION {bbl.number}
{ "number" }

FUNCTION {bbl.nr}
{ "no." }

FUNCTION {bbl.in}
{ "in" }

FUNCTION {bbl.pages}
{ "pp." }

FUNCTION {bbl.page}
{ "p." }

FUNCTION {bbl.chapter}
{ "chapter" }

FUNCTION {bbl.techrep}
{ "Technical Report" }

FUNCTION {bbl.mthesis}
{ "Master's thesis" }

FUNCTION {bbl.phdthesis}
{ "Ph.D. thesis" }

MACRO {jan} {"January"}

MACRO {feb} {"February"}

MACRO {mar} {"March"}

MACRO {apr} {"April"}

MACRO {may} {"May"}

MACRO {jun} {"June"}

MACRO {jul} {"July"}

MACRO {aug} {"August"}

MACRO {sep} {"September"}

MACRO {oct} {"October"}

MACRO {nov} {"November"}

MACRO {dec} {"December"}

MACRO {acmcs} {"ACM Comput. Surv."}

MACRO {acta} {"Acta Inf."}

MACRO {cacm} {"Commun. ACM"}

MACRO {ibmjrd} {"IBM J. Res. Dev."}

MACRO {ibmsj} {"IBM Syst.~J."}

MACRO {ieeese} {"IEEE Trans. Software Eng."}

MACRO {ieeetc} {"IEEE Trans. Comput."}

MACRO {ieeetcad}
 {"IEEE Trans. Comput. Aid. Des."}

MACRO {ipl} {"Inf. Process. Lett."}

MACRO {jacm} {"J.~ACM"}

MACRO {jcss} {"J.~Comput. Syst. Sci."}

MACRO {scp} {"Sci. Comput. Program."}

MACRO {sicomp} {"SIAM J. Comput."}

MACRO {tocs} {"ACM Trans. Comput. Syst."}

MACRO {tods} {"ACM Trans. Database Syst."}

MACRO {tog} {"ACM Trans. Graphic."}

MACRO {toms} {"ACM Trans. Math. Software"}

MACRO {toois} {"ACM Trans. Office Inf. Syst."}

MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}

MACRO {tcs} {"Theor. Comput. Sci."}

FUNCTION {bibinfo.check}
{ swap$
  duplicate$ missing$
    {
      pop$ pop$
      ""
    }
    { duplicate$ empty$
        {
          swap$ pop$
        }
        { swap$
          pop$
        }
      if$
    }
  if$
}
FUNCTION {bibinfo.warn}
{ swap$
  duplicate$ missing$
    {
      swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
      ""
    }
    { duplicate$ empty$
        {
          swap$ "empty " swap$ * " in " * cite$ * warning$
        }
        { swap$
          pop$
        }
      if$
    }
  if$
}
STRINGS  { bibinfo}
INTEGERS { nameptr namesleft numnames }

FUNCTION {format.names}
{ 'bibinfo :=
  duplicate$ empty$ 'skip$ {
  's :=
  "" 't :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      "{f.~}{vv~}{ll}{, jj}"
      format.name$
      bibinfo bibinfo.check
      't :=
      nameptr #1 >
        {
          namesleft #1 >
            { ", " * t * }
            {
              s nameptr "{ll}" format.name$ duplicate$ "others" =
                { 't := }
                { pop$ }
              if$
              t "others" =
                {
                  " " * bbl.etal *
                }
                {
                  bbl.and
                  space.word * t *
                }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
  } if$
}
FUNCTION {format.names.ed}
{
  format.names
}
FUNCTION {format.authors}
{ author "author" format.names
}
FUNCTION {get.bbl.editor}
{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }

FUNCTION {format.editors}
{ editor "editor" format.names duplicate$ empty$ 'skip$
    {
      "," *
      " " *
      get.bbl.editor
      *
    }
  if$
}
FUNCTION {format.note}
{
 note empty$
    { "" }
    { note #1 #1 substring$
      duplicate$ "{" =
        'skip$
        { output.state mid.sentence =
          { "l" }
          { "u" }
        if$
        change.case$
        }
      if$
      note #2 global.max$ substring$ * "note" bibinfo.check
    }
  if$
}

FUNCTION {format.title}
{ title
  duplicate$ empty$ 'skip$
    { "t" change.case$ }
  if$
  "title" bibinfo.check
  duplicate$ empty$ 'skip$
    {
      "\enquote{" swap$ *
      "}, " *
    }
  if$
}
FUNCTION {end.quote.title}
{ title empty$
    'skip$
    { before.all 'output.state := }
  if$
}
FUNCTION {output.bibitem}
{ newline$
  "\bibitem{" write$
  cite$ write$
  "}" write$
  newline$
  ""
  before.all 'output.state :=
}

FUNCTION {n.dashify}
{
  't :=
  ""
    { t empty$ not }
    { t #1 #1 substring$ "-" =
        { t #1 #2 substring$ "--" = not
            { "--" *
              t #2 global.max$ substring$ 't :=
            }
            {   { t #1 #1 substring$ "-" = }
                { "-" *
                  t #2 global.max$ substring$ 't :=
                }
              while$
            }
          if$
        }
        { t #1 #1 substring$ *
          t #2 global.max$ substring$ 't :=
        }
      if$
    }
  while$
}

FUNCTION {word.in}
{ bbl.in
  " " * }

FUNCTION {format.url}
    { title emphasize }

FUNCTION {format.date}
{
  month "month" bibinfo.check
  duplicate$ empty$
  year  "year"  bibinfo.check duplicate$ empty$
    { swap$ 'skip$
        { "there's a month but no year in " cite$ * warning$ }
      if$
      *
    }
    { swap$ 'skip$
        {
          swap$
          " " * swap$
        }
      if$
      *
    }
  if$
}
FUNCTION{format.year}
{ year "year" bibinfo.check duplicate$ empty$
    {  "empty year in " cite$ *
       warning$
    }
    {
  "(" swap$ * ")" *
    }
  if$
}
FUNCTION {format.btitle}
{ title "title" bibinfo.check
  duplicate$ empty$ 'skip$
    {
      emphasize
    }
  if$
}
FUNCTION {either.or.check}
{ empty$
    'pop$
    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  if$
}
FUNCTION {format.bvolume}
{ volume empty$
    { "" }
    { bbl.volume volume tie.or.space.prefix
      "volume" bibinfo.check * *
      series "series" bibinfo.check
      duplicate$ empty$ 'pop$
        { swap$ bbl.of space.word * swap$
          emphasize * }
      if$
      "volume and number" number either.or.check
    }
  if$
}
FUNCTION {format.number.series}
{ volume empty$
    { number empty$
        { series field.or.null }
        { series empty$
            { number "number" bibinfo.check }
        { output.state mid.sentence =
            { bbl.number }
            { bbl.number capitalize }
          if$
          number tie.or.space.prefix "number" bibinfo.check * *
          bbl.in space.word *
          series "series" bibinfo.check *
        }
      if$
    }
      if$
    }
    { "" }
  if$
}

FUNCTION {format.edition}
{ edition duplicate$ empty$ 'skip$
    {
      output.state mid.sentence =
        { "l" }
        { "t" }
      if$ change.case$
      "edition" bibinfo.check
      " " * bbl.edition *
    }
  if$
}
INTEGERS { multiresult }
FUNCTION {multi.page.check}
{ 't :=
  #0 'multiresult :=
    { multiresult not
      t empty$ not
      and
    }
    { t #1 #1 substring$
      duplicate$ "-" =
      swap$ duplicate$ "," =
      swap$ "+" =
      or or
        { #1 'multiresult := }
        { t #2 global.max$ substring$ 't := }
      if$
    }
  while$
  multiresult
}
FUNCTION {format.pages}
{ pages duplicate$ empty$ 'skip$
    { duplicate$ multi.page.check
        {
          bbl.pages swap$
          n.dashify
        }
        {
          bbl.page swap$
        }
      if$
      tie.or.space.prefix
      "pages" bibinfo.check
      * *
    }
  if$
}
FUNCTION {format.journal.pages}
{ pages duplicate$ empty$ 'pop$
    { swap$ duplicate$ empty$
        { pop$ pop$ format.pages }
        {
          " " *
          format.year * " " *
          swap$
          n.dashify
          "pages" bibinfo.check
          *
        }
      if$
    }
  if$
}
FUNCTION {format.vol.num.pages}
{ volume field.or.null
  duplicate$ empty$ 'skip$
    {
      "volume" bibinfo.check
    }
  if$
  bolden
  number "number" bibinfo.check duplicate$ empty$ 'skip$
    {
      swap$ duplicate$ empty$
        { "there's a number but no volume in " cite$ * warning$ }
        'skip$
      if$
      swap$
      "(" swap$ * ")" *
    }
  if$ *
}

FUNCTION {format.chapter.pages}
{ chapter empty$
    'format.pages
    { type empty$
    { "ch.~" chapter * }
    { type "l" change.case$ chapter tie.or.space.prefix }
      if$
      pages empty$
    'skip$
    { ", " * format.pages * }
      if$
    }
  if$
}

FUNCTION {format.booktitle}
{
  booktitle "booktitle" bibinfo.check
  emphasize
}
FUNCTION {format.in.ed.booktitle}
{ format.booktitle duplicate$ empty$ 'skip$
    {
      editor "editor" format.names.ed duplicate$ empty$ 'pop$
        {
          get.bbl.editor
          " " * swap$ *
          swap$
          "," *
          " " * swap$
          * }
      if$
      word.in swap$ *
    }
  if$
}
FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
  month empty$ year empty$ note empty$
  and and and and and
    { "all relevant fields are empty in " cite$ * warning$ }
    'skip$
  if$
}
FUNCTION {format.thesis.type}
{ type duplicate$ empty$
    'pop$
    { swap$ pop$
      "t" change.case$ "type" bibinfo.check
    }
  if$
}
FUNCTION {format.tr.number}
{ number "number" bibinfo.check
  type duplicate$ empty$
    { pop$ bbl.techrep }
    'skip$
  if$
  "type" bibinfo.check
  swap$ duplicate$ empty$
    { pop$ "t" change.case$ }
    { tie.or.space.prefix * * }
  if$
}
FUNCTION {format.article.crossref}
{
  key duplicate$ empty$
    { pop$
      journal duplicate$ empty$
        { "need key or journal for " cite$ * " to crossref " * crossref * warning$ }
        { "journal" bibinfo.check emphasize word.in swap$ * }
      if$
    }
    { word.in swap$ * " " *}
  if$
  "\cite{" * crossref * "}" *
}
FUNCTION {format.crossref.editor}
{ editor #1 "{vv~}{ll}" format.name$
  "editor" bibinfo.check
  editor num.names$ duplicate$
  #2 >
    { pop$
      "editor" bibinfo.check
      " " * bbl.etal
      *
    }
    { #2 <
        'skip$
        { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
            {
              "editor" bibinfo.check
              " " * bbl.etal
              *
            }
            {
             bbl.and space.word
              * editor #2 "{vv~}{ll}" format.name$
              "editor" bibinfo.check
              *
            }
          if$
        }
      if$
    }
  if$
}
FUNCTION {format.book.crossref}
{ volume duplicate$ empty$
    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
      pop$ word.in
    }
    { bbl.volume
      swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
    }
  if$
  editor empty$
  editor field.or.null author field.or.null =
  or
    { key empty$
        { series empty$
            { "need editor, key, or series for " cite$ * " to crossref " *
              crossref * warning$
              "" *
            }
            { series emphasize * }
          if$
        }
        { key * }
      if$
    }
    { format.crossref.editor * }
  if$
  " \cite{" * crossref * "}" *
}
FUNCTION {format.incoll.inproc.crossref}
{
  editor empty$
  editor field.or.null author field.or.null =
  or
    { key empty$
        { format.booktitle duplicate$ empty$
            { "need editor, key, or booktitle for " cite$ * " to crossref " *
              crossref * warning$
            }
            { word.in swap$ * }
          if$
        }
        { word.in key * " " *}
      if$
    }
    { word.in format.crossref.editor * " " *}
  if$
  " \cite{" * crossref * "}" *
}
FUNCTION {format.org.or.pub}
{ 't :=
  ""
  year empty$
    { "empty year in " cite$ * warning$ }
    'skip$
  if$
  address empty$ t empty$ and
  year empty$ and
    'skip$
    {
      add.blank "(" *
      t empty$
        { address "address" bibinfo.check *
        }
        { t *
          address empty$
            'skip$
            { ", " * address "address" bibinfo.check * }
          if$
        }
      if$
      year empty$
        'skip$
        { t empty$ address empty$ and
            'skip$
            { ", " * }
          if$
          year "year" bibinfo.check
          *
        }
      if$
      ")" *
    }
  if$
}
FUNCTION {format.publisher.address}
{ publisher "publisher" bibinfo.warn format.org.or.pub
}

FUNCTION {format.organization.address}
{ organization "organization" bibinfo.check format.org.or.pub
}

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  format.title "title" output.check
  end.quote.title
  crossref missing$
    {
      journal
      "journal" bibinfo.check
      emphasize
      "journal" output.check
      add.blank
      format.vol.num.pages output
    }
    { format.article.crossref output.nonnull
    }
  if$
  format.journal.pages
  format.note output
  fin.entry
}
FUNCTION {book}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  format.btitle "title" output.check
  crossref missing$
    { format.bvolume output
      format.number.series output
      format.publisher.address output
    }
    {
      format.book.crossref output.nonnull
      format.date "year" output.check
    }
  if$
  format.edition output
  format.note output
  fin.entry
}
FUNCTION {booklet}
{ output.bibitem
  format.authors output
  format.title "title" output.check
  end.quote.title
  howpublished "howpublished" bibinfo.check output
  address "address" bibinfo.check output
  format.date output
  format.note output
  fin.entry
}

FUNCTION {inbook}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  format.btitle "title" output.check
  crossref missing$
    {
      format.publisher.address output
      format.bvolume output
      format.chapter.pages "chapter and pages" output.check
      format.number.series output
    }
    {
      format.chapter.pages "chapter and pages" output.check
      format.book.crossref output.nonnull
      format.date "year" output.check
    }
  if$
  format.edition output
  format.note output
  fin.entry
}

FUNCTION {incollection}
{ output.bibitem
  format.authors "author" output.check
  format.title "title" output.check
  end.quote.title
  crossref missing$
    { format.in.ed.booktitle "booktitle" output.check
      format.publisher.address output
      format.bvolume output
      format.number.series output
      format.chapter.pages output
      format.edition output
    }
    { format.incoll.inproc.crossref output.nonnull
      format.chapter.pages output
    }
  if$
  format.note output
  fin.entry
}
FUNCTION {inproceedings}
{ output.bibitem
  format.authors "author" output.check
  format.title "title" output.check
  end.quote.title
  crossref missing$
    { format.in.ed.booktitle "booktitle" output.check
      publisher empty$
        { format.organization.address output }
        { organization "organization" bibinfo.check output
          format.publisher.address output
        }
      if$
      format.bvolume output
      format.number.series output
    }
    { format.incoll.inproc.crossref output.nonnull
    }
  if$
  format.pages output
  format.note output
  fin.entry
}
FUNCTION {conference} { inproceedings }
FUNCTION {manual}
{ output.bibitem
  author empty$
    { organization "organization" bibinfo.check
      duplicate$ empty$ 'pop$
        { output
          address "address" bibinfo.check output
        }
      if$
    }
    { format.authors output.nonnull }
  if$
  format.btitle "title" output.check
  author empty$
    { organization empty$
        {
          address "address" bibinfo.check output
        }
        'skip$
      if$
    }
    {
      organization "organization" bibinfo.check output
      address "address" bibinfo.check output
    }
  if$
  format.edition output
  format.date output
  format.note output
  fin.entry
}

FUNCTION {mastersthesis}
{ output.bibitem
  format.authors "author" output.check
  format.title
  "title" output.check
  end.quote.title
  bbl.mthesis format.thesis.type output.nonnull
  school "school" bibinfo.warn output
  address "address" bibinfo.check output
  format.date "year" output.check
  format.note output
  fin.entry
}

FUNCTION {misc}
{ output.bibitem
  format.authors output
  format.title output
  end.quote.title
  howpublished "howpublished" bibinfo.check output
  format.date output
  format.note output
  fin.entry
  empty.misc.check
}
FUNCTION {phdthesis}
{ output.bibitem
  format.authors "author" output.check
  format.title
  "title" output.check
  end.quote.title
  bbl.phdthesis format.thesis.type output.nonnull
  school "school" bibinfo.warn output
  address "address" bibinfo.check output
  format.date "year" output.check
  format.note output
  fin.entry
}

FUNCTION {proceedings}
{ output.bibitem
  editor empty$
    { organization "organization" bibinfo.check output
    }
    { format.editors output.nonnull }
  if$
  format.btitle "title" output.check
  format.bvolume output
  format.number.series output
  editor empty$
    { publisher empty$
        'skip$
        {
          format.publisher.address output
        }
      if$
    }
    { publisher empty$
        {
          format.organization.address output }
        {
          organization "organization" bibinfo.check output
          format.publisher.address output
        }
      if$
     }
  if$
  format.note output
  fin.entry
}

FUNCTION {techreport}
{ output.bibitem
  format.authors "author" output.check
  format.title
  "title" output.check
  end.quote.title
  format.tr.number output.nonnull
  institution "institution" bibinfo.warn output
  address "address" bibinfo.check output
  format.date "year" output.check
  format.note output
  fin.entry
}

FUNCTION {unpublished}
{ output.bibitem
  format.authors "author" output.check
  format.title "title" output.check
  end.quote.title
  format.date output
  format.note "note" output.check
  fin.entry
}

FUNCTION {sortify}
{ purify$
  "l" change.case$
}

INTEGERS { len }
FUNCTION {chop.word}
{ 's :=
  'len :=
  s #1 len substring$ =
    { s len #1 + global.max$ substring$ }
    's
  if$
}

FUNCTION {format.lab.names}
{ 's :=
  "" 't :=
  s #1 "{vv~}{ll}" format.name$
  s num.names$ duplicate$
  #2 >
    { pop$
      " " * bbl.etal emphasize *
    }
    { #2 <
        'skip$
        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
            {
              " " * bbl.etal emphasize *
            }
            { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
              * }
          if$
        }
      if$
    }
  if$
}

FUNCTION {author.key.label}
{ author empty$
    { key empty$
        { cite$ #1 #3 substring$ }
        'key
      if$
    }
    { author format.lab.names }
  if$
}

FUNCTION {author.editor.key.label}
{ author empty$
    { editor empty$
        { key empty$
            { cite$ #1 #3 substring$ }
            'key
          if$
        }
        { editor format.lab.names }
      if$
    }
    { author format.lab.names }
  if$
}

FUNCTION {editor.key.label}
{ editor empty$
    { key empty$
        { cite$ #1 #3 substring$ }
        'key
      if$
    }
    { editor format.lab.names }
  if$
}

FUNCTION {calc.short.authors}
{ type$ "book" =
  type$ "inbook" =
  or
    'author.editor.key.label
    { type$ "proceedings" =
        'editor.key.label
        'author.key.label
      if$
    }
  if$
  'short.list :=
}

FUNCTION {sort.format.names}
{ 's :=
  #1 'nameptr :=
  ""
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}"
      format.name$ 't :=
      nameptr #1 >
        {
          "   "  *
          namesleft #1 = t "others" = and
            { "zzzzz" * }
            { t sortify * }
          if$
        }
        { t sortify * }
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {sort.format.title}
{ 't :=
  "A " #2
    "An " #3
      "The " #4 t chop.word
    chop.word
  chop.word
  sortify
  #1 global.max$ substring$
}

FUNCTION {calc.label}
{ calc.short.authors
  short.list
  "("
  *
  year duplicate$ empty$
  short.list key field.or.null = or
     { pop$ "" }
     'skip$
  if$
  *
  'label :=
}

FUNCTION {author.sort}
{ author empty$
    { key empty$
        { "to sort, need author or key in " cite$ * warning$
          ""
        }
        { key sortify }
      if$
    }
    { author sort.format.names }
  if$
}
FUNCTION {author.editor.sort}
{ author empty$
    { editor empty$
        { key empty$
            { "to sort, need author, editor, or key in " cite$ * warning$
              ""
            }
            { key sortify }
          if$
        }
        { editor sort.format.names }
      if$
    }
    { author sort.format.names }
  if$
}
FUNCTION {editor.sort}
{ editor empty$
    { key empty$
        { "to sort, need editor or key in " cite$ * warning$
          ""
        }
        { key sortify }
      if$
    }
    { editor sort.format.names }
  if$
}
FUNCTION {presort}
{ calc.label
  label sortify
  "    "
  *
  type$ "book" =
  type$ "inbook" =
  or
    'author.editor.sort
    { type$ "proceedings" =
        'editor.sort
        'author.sort
      if$
    }
  if$
  #1 entry.max$ substring$
  'sort.label :=
  sort.label
  *
  "    "
  *
  title field.or.null
  sort.format.title
  *
  #1 entry.max$ substring$
  'sort.key$ :=
}

FUNCTION {default.type} { misc }
READ
STRINGS { longest.label }
INTEGERS { number.label longest.label.width }
FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
  #1 'number.label :=
  #0 'longest.label.width :=
}
FUNCTION {longest.label.pass}
{ number.label int.to.str$ 'label :=
  number.label #1 + 'number.label :=
  label width$ longest.label.width >
    { label 'longest.label :=
      label width$ 'longest.label.width :=
    }
    'skip$
  if$
}
EXECUTE {initialize.longest.label}
ITERATE {longest.label.pass}
FUNCTION {begin.bib}
{ preamble$ empty$
    'skip$
    { preamble$ write$ newline$ }
  if$
  "\begin{thebibliography}{"  longest.label  * "}" *
  write$ newline$
%  "\newcommand{\enquote}[1]{``#1''}"
   "\newcommand{\enquote}[1]{#1}"
  write$ newline$
}
ITERATE {presort}
SORT
STRINGS { last.label next.extra }
INTEGERS { last.extra.num }
FUNCTION {initialize.extra.label.stuff}
{ #0 int.to.chr$ 'last.label :=
  "" 'next.extra :=
  #0 'last.extra.num :=
  #0 'number.label :=
}
FUNCTION {forward.pass}
{ last.label label =
    { last.extra.num #1 + 'last.extra.num :=
      last.extra.num int.to.chr$ 'extra.label :=
    }
    { "a" chr.to.int$ 'last.extra.num :=
      "" 'extra.label :=
      label 'last.label :=
    }
  if$
  number.label #1 + 'number.label :=
}
FUNCTION {reverse.pass}
{ next.extra "b" =
    { "a" 'extra.label := }
    'skip$
  if$
  extra.label 'next.extra :=
  extra.label
  duplicate$ empty$
    'skip$
    { "{\natexlab{" swap$ * "}}" * }
  if$
  'extra.label :=
  label extra.label * 'label :=
}
EXECUTE {initialize.extra.label.stuff}
ITERATE {forward.pass}
REVERSE {reverse.pass}
FUNCTION {bib.sort.order}
{ sort.label
  "    "
  *
  year field.or.null sortify
  *
  "    "
  *
  title field.or.null
  sort.format.title
  *
  #1 entry.max$ substring$
  'sort.key$ :=
}
ITERATE {bib.sort.order}
SORT
EXECUTE {begin.bib}
EXECUTE {init.state.consts}
ITERATE {call.type$}
FUNCTION {end.bib}
{ newline$
  "\end{thebibliography}" write$ newline$
}
EXECUTE {end.bib}
FUNCTION {disp.msg.screen} { #1 }
FUNCTION {type.msg}
{ disp.msg.screen
     { "<ws-jml.bst>"
       top$
       "BibTeX style file for JML"
       top$
       "version 1 (2010/03/03), numbered, superscript citation"
       top$
       "for support: Rajesh, [email protected]"
       top$
     }
     { skip$ }
   if$
}
EXECUTE {type.msg}
%% End of customized bst file
%%
%% End of file `ws-jml.bst'.

ws-jml.cls · 34 KB
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Trim Size: 9.61in x 6.69in.
%% Text Area: 8in (include Runningheads) x 5in
%% ws-jml.tex   :   17-03-2022
%% Tex file to use with ws-jml.cls written in Latex2E.
%% The content, structure, format and layout of this style file is the
%% property of World Scientific Publishing Co. Pte. Ltd.
%% Copyright 2022 by World Scientific Publishing Co.
%% All rights are reserved.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%

\NeedsTeXFormat{LaTeX2e}[1995/06/01]
\ProvidesClass{ws-jml}[1999/09/09 v1.0 Standardized LaTeX document class]
\@twosidetrue\@mparswitchtrue\@twocolumnfalse
\newif\if@openright
\@openrighttrue
\newif\if@restonecol
%
%
\newdimen\trimheight \trimheight9.61truein
\newdimen\trimwidth \trimwidth6.69truein
\newdimen\typeheight \typeheight8truein
\newdimen\typewidth \typewidth5truein
\newdimen\wsdraftrule \wsdraftrule=0pt
\newdimen\tempdimen
\newdimen\tablewidth
\newdimen\normaltextheight
\newbox\tempbox
\newdimen\tablewd
%

\DeclareOption{wsdraft}{\setlength\overfullrule{5pt}\wsdraftrule0.1pt}
\DeclareOption{final}{\setlength\overfullrule{0pt}}

\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final}
\ProcessOptions
%
\hoffset=-0.17in
\voffset=-0.17in
%

\newcommand\appendixname{Appendix}
\newcommand\abstractname{Abstract}
\newcommand\bibname{References}%
\newcommand\contentsname{Contents}
\newcommand\indexname{Index}
\newcommand\figurename{Fig.}
\newcommand\tablename{Table}
\newcommand\partname{Part}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Font Defs. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\def\foliofont{\fontsize{8}{10}\selectfont}
\def\bibfont{\fontsize{9}{11}\selectfont}
\def\rhfont{\footnotesize\itshape{}}
\def\catchlinefont{\footnotesize}
\def\titlefont{\fontsize{10}{13}\bfseries\boldmath\selectfont\centering{}}
\def\authorfont{\footnotesize}
\def\affiliationfont{\centering\footnotesize\it}
\def\abstractfont{\footnotesize}
\def\datefont{\footnotesize}
\def\sectionfont{\bfseries\boldmath\rightskip2pc plus1fill{}}
\def\subsectionfont{\bfseries\boldmath\itshape\rightskip2pc plus1fill{}}
\def\subsubsectionfont{\itshape\rightskip2pc plus1fill{}}
\def\paragraphfont{\bfseries\boldmath}
\def\subparagraphfont{\itshape}
\def\figurecaptionfont{\footnotesize}
\def\tablefont{\footnotesize}
\def\tablecaptionfont{\footnotesize}
\def\tabnotefont{\footnotesize}
\def\TCHfont{\bf}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fonts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\DeclareOldFontCommand{\rm}{\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\ttfamily}{\mathtt}
\DeclareOldFontCommand{\bf}{\bfseries}{\mathbf}
\DeclareOldFontCommand{\it}{\itshape}{\mathit}
\DeclareOldFontCommand{\sl}{\slshape}{\@nomath\sl}
\DeclareOldFontCommand{\sc}{\scshape}{\@nomath\sc}
\DeclareRobustCommand\cal{\@fontswitch\relax\mathcal}
\DeclareRobustCommand\mit{\@fontswitch\relax\mathnormal}
\DeclareOldFontCommand{\bi}{\bfseries\itshape}{\@nomath\bi}
\renewcommand{\rmdefault}{cmr}%
%
\renewcommand\normalsize{%
   \@setfontsize\normalsize\@xpt{13}%\@xiiipt
   \abovedisplayskip 6\p@\@plus4\p@\@minus2\p@
   \abovedisplayshortskip\abovedisplayskip
   \belowdisplayshortskip\abovedisplayshortskip
   \belowdisplayskip\abovedisplayskip
   \let\@listi\@listI}
\normalsize
%
\newcommand\small{%
   \@setfontsize\small\@ixpt{11}%
   \abovedisplayskip 8\p@ \@plus3\p@ \@minus4\p@
   \abovedisplayshortskip \z@ \@plus2\p@
   \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 4\p@ \@plus2\p@ \@minus2\p@
               \parsep 2\p@ \@plus\p@ \@minus\p@
               \itemsep \parsep}%
   \belowdisplayskip \abovedisplayskip}
%
\newcommand\footnotesize{%
   \@setfontsize\footnotesize\@viiipt{10}%
   \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
   \abovedisplayshortskip \z@ \@plus\p@
   \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 3\p@ \@plus\p@ \@minus\p@
               \parsep 2\p@ \@plus\p@ \@minus\p@
               \itemsep \parsep}%
   \belowdisplayskip \abovedisplayskip}
%
\newcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
\newcommand\tiny{\@setfontsize\tiny\@vpt\@vipt}
\newcommand\large{\@setfontsize\large\@xiipt{14}}%
\newcommand\Large{\@setfontsize\Large\@xivpt{16}}%%
\newcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}
\newcommand\huge{\@setfontsize\huge\@xxpt{25}}
\newcommand\Huge{\@setfontsize\Huge\@xxvpt{30}}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\setlength\parindent{1.5em}
%
\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@}
\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@}
%
\setlength\headheight{5\p@}
\setlength\headsep   {19pt}
\setlength\topskip   {7\p@}
\setlength\footskip{25pt}
\setlength\maxdepth{4\p@}
%
%\setlength\@maxdepth\maxdepth
%
\setlength\textwidth{\typewidth}
\@settopoint\textwidth
\setlength\textheight\typeheight
\advance\textheight-\headheight
\advance\textheight-\headsep
\setlength\normaltextheight{\textheight}
%
\setlength\oddsidemargin{.845in}%
\setlength\evensidemargin{.845in}%
%\addtolength\evensidemargin{-\textwidth}
%\addtolength\evensidemargin{-\oddsidemargin}

\setlength\topmargin{.65in}

%
\setlength\marginparwidth{.75in}
\setlength\marginparsep{7\p@}
\setlength\marginparpush{5\p@}
%
\setlength\footnotesep{6\p@}
\setlength{\skip\footins}{18\p@ \@plus 5\p@ \@minus 2\p@}
%
\setlength\floatsep    {18\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\textfloatsep{18\p@ \@plus 2\p@ \@minus 4\p@}
\setlength\intextsep   {18\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\dblfloatsep    {18\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\dbltextfloatsep{18\p@ \@plus 2\p@ \@minus 4\p@}
\setlength\@fptop{0\p@ \@plus 1fil}
\setlength\@fpsep{8\p@ \@plus 2fil}
\setlength\@fpbot{0\p@ \@plus 1fil}
\setlength\@dblfptop{0\p@ \@plus 1fil}
\setlength\@dblfpsep{8\p@ \@plus 2fil}
\setlength\@dblfpbot{0\p@ \@plus 1fil}
%
\setlength\partopsep{0\p@}
\setlength\lineskip{1\p@}
\setlength\normallineskip{1\p@}%
\renewcommand\baselinestretch{}%{}
\setlength\parskip{0\p@}
%
\@lowpenalty   51
\@medpenalty  151
\@highpenalty 301
%
\setcounter{topnumber}{3}
\renewcommand\topfraction{.98}
\setcounter{bottomnumber}{3}
\renewcommand\bottomfraction{.98}
\setcounter{totalnumber}{6}
\renewcommand\textfraction{.01}
\renewcommand\floatpagefraction{.98100}
\setcounter{dbltopnumber}{2}
\renewcommand\dbltopfraction{.981}
\renewcommand\dblfloatpagefraction{.99}
%
\setlength\arraycolsep{1.5\p@}
\setlength\tabcolsep{6\p@}
\setlength\arrayrulewidth{.4\p@}
\setlength\doublerulesep{2\p@}
\setlength\tabbingsep{\labelsep}
%\skip\@mpfootins = \skip\footins
%
\setlength\fboxsep{3\p@}
\setlength\fboxrule{.4\p@}
%
\setlength\columnsep{10\p@}
\setlength\columnseprule{0\p@}
%
%
\DeclareMathSizes{28}{28}{25}{20}
\DeclareMathSizes{24}{24}{21}{18}
\DeclareMathSizes{22}{22}{19}{17}
\DeclareMathSizes{20}{20}{17}{15}
\DeclareMathSizes{18}{18}{15}{10}
\DeclareMathSizes{12}{11}{8}{5}
\DeclareMathSizes{11}{11}{8}{5}
\DeclareMathSizes{10}{10}{7}{5}
\DeclareMathSizes{9.5}{9}{7}{5}
\DeclareMathSizes{9}{9}{7}{5}
\DeclareMathSizes{8}{8}{6}{5}
\DeclareMathSizes{7}{7}{5}{5}
\DeclareMathSizes{6}{6}{5}{5}
\DeclareMathSizes{5}{5}{5}{5}

\def\bm#1{\mathchoice
	{\mbox{\boldmath$#1$}}%
          {\mbox{\boldmath$#1$}}%
          {\mbox{\boldmath$\scriptstyle#1$}}%
          {\mbox{\boldmath$\scriptscriptstyle#1$}}}%

\def\cdash{$^{\raisebox{-0.5pt}{\hbox{--}}}$}		 
%
%%%%%%%%%%%%%%%%%%%%%%%%%%% Article FM %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\def\title#1{\gdef\@title{{{#1}}}}
\def\subtitle#1{\titlefont :~#1}
\newcommand\maketitle{\par
  \begingroup
   \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
    \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
    \long\def\@makefntext##1{\noindent
	\@textsuperscript{\normalfont\@thefnmark}{##1}}%
      \newpage
      \global\@topnum\z@
      \@maketitle
    \thispagestyle{plain}\@thanks
  \endgroup
  \setcounter{footnote}{0}%
  \global\let\thanks\relax
  \global\let\maketitle\relax
  \global\let\@maketitle\relax
  \global\let\@thanks\@empty
  \global\let\@author\@empty
  \global\let\@title\@empty
  \global\let\title\relax
  \global\let\author\relax
}
\def\@maketitle{%
  \newpage
  \null
  \vspace*{-10pt}
   \vspace*{-25pt}% to have the bylines on the beginning of the page
  \@clinebuf
  \vspace*{52pt}
  \begin{center}%
  \let\footnote \thanks
  {\titlefont\@title \par}%
  \vspace*{28pt}
  \@aabuffer\par
  \end{center}%
}
%
\def\thebepage{\thepage}
\def\theeepage{\pageref{eof}}
%
\newenvironment{history}{%
	\addvspace{-2pt plus-2pt minus-2pt}
   \authorfont\begin{center}\vskip-\lastskip
}{%
   \end{center}
	\addvspace{15pt plus2pt minus2pt}
}

\def\email#1{\it #1\par}
%\def\http#1{\it http://#1\par}
%\def\url#1{\it #1\par}
\def\received#1{Received~#1\par}
\def\revised#1{Revised~#1\par}
\def\accepted#1{Accepted~#1\par}
\def\comby#1{\par\addvspace{1\baselineskip}Communicated\ by~#1\par}
%
\def\@clinebuf{}
\def\catchline#1#2#3#4#5{\expandafter\def\expandafter\@clinebuf\expandafter
	{\@clinebuf\catchlinefont
	\noindent Journal of Mathematical Logic\par
%	\noindent Vol.\ {#1}, \No\ {#2} (#3)\ \thebepage--\theeepage\par
	\noindent \copyright\ World Scientific Publishing Company\par
	\noindent\vskip-\baselineskip \hphantom{#4 \hskip2em #5}
	}\relax\par
	}
%
\def\No{No.}
%
\def\@aabuffer{}
\def\author#1{\expandafter\def\expandafter\@aabuffer\expandafter
	{\@aabuffer{\authorfont{{{#1}}}}\relax\par
	\vspace*{3pt}}}
%
\def\address#1{\expandafter\def\expandafter\@aabuffer\expandafter
	{\@aabuffer{\affiliationfont{#1}}\relax\par
	\vspace*{13pt}}}
%
\def\keywords#1{\par
	\vspace*{8pt}
	{\authorfont{\leftskip18pt\rightskip\leftskip
	\noindent{\it Keywords}\/:\ #1\par}}\par}
%
\def\ccode#1{\par
	\vspace*{8pt}
	{\authorfont{\leftskip18pt\rightskip\leftskip
	\noindent #1\par}}\par}

%
\def\category#1#2{\par
	\vspace*{8pt}
	{\authorfont{\leftskip18pt\rightskip\leftskip
	\noindent{\it Categories}\/:\ #1:\ #2\par}}\par}
%
\newenvironment{abstract}{\par%
	\abstractfont
  	\noindent\leftskip18pt\rightskip18pt
}{%
  \par}
%
\newenvironment{otherinfo}{%
	\addvspace{-2pt plus-2pt minus-2pt}
   \authorfont\begin{center}%\vskip-\lastskip
}{%
   \end{center}
	\addvspace{15pt plus2pt minus2pt}
}
%
\newenvironment{dedication}{%
	\addvspace{-2pt plus-2pt minus-2pt}
   \authorfont\begin{center}%\vskip-\lastskip
}{%
   \end{center}
	\addvspace{15pt plus2pt minus2pt}
}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%% Sectioning %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\setcounter{secnumdepth}{3}
\newcounter {section}
\newcounter {subsection}[section]
\newcounter {subsubsection}[subsection]
\newcounter {paragraph}[subsubsection]
\newcounter {subparagraph}[paragraph]
\renewcommand\thesection      {\arabic{section}}
\renewcommand\thesubsection   {\thesection.\arabic{subsection}}
\renewcommand\thesubsubsection{\thesubsection .\arabic{subsubsection}}
\renewcommand\theparagraph    {\thesubsubsection.\arabic{paragraph}}
\renewcommand\thesubparagraph {\theparagraph.\arabic{subparagraph}}
%
\newcommand\section{\@startsection{section}{1}{\z@}{-18pt \@plus-3pt minus-6pt}{5pt}{\sectionfont}}
\newcommand\subsection{\@startsection{subsection}{2}{\z@}{-18pt \@plus-3pt minus-6pt}{5pt}{\subsectionfont}}
\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}{-18pt \@plus-3pt minus-3pt}{5pt}{\subsubsectionfont}}
\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}{12pt \@plus -3pt}{-.5em}{\paragraphfont}}
\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}{3.25ex \@plus1ex}{-1em}{\subparagraphfont}}
%
\def\@seccntformat#1{{\upshape{\csname the#1\endcsname.}}\hskip .5em}
%
%\gdef\@author{}
%
%%%%%%%%%%%%%%%%%%%%%%%% Table of Contents %%%%%%%%%%%%%%%%%%%%%%%
%
\newcommand\@pnumwidth{1.55em}
\newcommand\@tocrmarg{2.55em}
\newcommand\@dotsep{4.5}
\setcounter{tocdepth}{3}
\newcommand\tableofcontents{%
    \section*{\contentsname
        \@mkboth{%
           \contentsname}{\contentsname}}%
    \@starttoc{toc}%
    }
\newcommand\l@section[2]{%
  \ifnum \c@tocdepth >\z@
    \addpenalty\@secpenalty
    \addvspace{1.0em \@plus\p@}%
    \setlength\@tempdima{1.5em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode \bfseries
      \advance\leftskip\@tempdima
      \hskip -\leftskip
      #1\nobreak\hfil \nobreak\hbox to \@pnumwidth{\hss #2}\par
    \endgroup
  \fi}
\newcommand\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
\newcommand\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
\newcommand\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}
\newcommand\l@subparagraph{\@dottedtocline{5}{10em}{5em}}
\newcommand\listoffigures{%
    \section*{\listfigurename
      \@mkboth{\listfigurename}%
              {\listfigurename}}%
    \@starttoc{lof}%
    }
\newcommand\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
\newcommand\listoftables{%
    \section*{\listtablename
      \@mkboth{%
          \listtablename}{\listtablename}}%
    \@starttoc{lot}%
    }
\let\l@table\l@figure
%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Lists %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\setlength\leftmargini{3pc}
\setlength\leftmarginii{2.2em}
\setlength\leftmarginiii{1.87em}
\setlength\leftmarginiv{1.7em}
\setlength\leftmarginv{1em}
\setlength\leftmarginvi{1em}
\setlength\leftmargin{\leftmargini}
\setlength\listparindent{\parindent}
\setlength\labelsep{.5em}
\setlength\labelwidth{\leftmargini}
\addtolength\labelwidth{-\labelsep}
\@beginparpenalty -\@lowpenalty
\@endparpenalty   -\@lowpenalty
\@itempenalty     -\@lowpenalty
\renewcommand\theenumi{\arabic{enumi}}
\renewcommand\theenumii{\alph{enumii}}
\renewcommand\theenumiii{\roman{enumiii}}
\renewcommand\theenumiv{\Alph{enumiv}}
\newcommand\labelenumi{(\theenumi)}
\newcommand\labelenumii{(\theenumii)}
\newcommand\labelenumiii{\theenumiii.}
\newcommand\labelenumiv{\theenumiv.}
\renewcommand\p@enumii{\theenumi}
\renewcommand\p@enumiii{\theenumi(\theenumii)}
\renewcommand\p@enumiv{\p@enumiii\theenumiii}
\newcommand\labelitemi{$\m@th\bullet$}
\newcommand\labelitemii{\normalfont\bfseries --}
\newcommand\labelitemiii{$\m@th\ast$}
\newcommand\labelitemiv{$\m@th\cdot$}
%

\def\@listI{\leftmargin\leftmargini
            \listparindent\parindent
            \parsep \z@\labelsep.5em
            \topsep 6.5\p@ \@plus3\p@% \@minus2\p@
            \itemsep0\p@}
%
\let\@listi\@listI
\@listi
%
\def\@listii {\leftmargin\leftmarginii
              \labelwidth\leftmarginii
              \advance\labelwidth-\labelsep
              \topsep    3.5\p@ \@plus2\p@ \@minus\p@
              \parsep    \z@
              \itemsep\z@}
\def\@listiii{\leftmargin\leftmarginiii
              \labelwidth\leftmarginiii
              \advance\labelwidth-\labelsep
              \topsep 3.5\p@ \@plus\p@\@minus\p@
              \parsep \z@
             % \partopsep \p@ \@plus\z@ \@minus\p@
              \itemsep0\p@}%
\def\@listiv {\leftmargin\leftmarginiv
              \labelwidth\leftmarginiv
              \advance\labelwidth-\labelsep}
\def\@listv  {\leftmargin\leftmarginv
              \labelwidth\leftmarginv
              \advance\labelwidth-\labelsep}
\def\@listvi {\leftmargin\leftmarginvi
              \labelwidth\leftmarginvi
              \advance\labelwidth-\labelsep}
%
\def\enummax#1{\setbox\tempbox=\hbox{#1\hskip\labelsep}%
  \expandafter\global\csname leftmargin\romannumeral\the\@enumdepth\endcsname\wd\tempbox}
%
\def\enumerate{\@ifnextchar[{\@enumerate}{\@enumerate[\csname label\@enumctr\endcsname]}}
%
\def\@enumerate[#1]{\ifnum \@enumdepth >3 \@toodeep\else
      \advance\@enumdepth \@ne\edef\@enumctr{enum\romannumeral\the\@enumdepth}%
      \enummax{#1}\list
      {\csname label\@enumctr\endcsname}{\usecounter
        {\@enumctr}\def\makelabel##1{\hss\llap{##1}}}\fi}
%
\let\Item\item
\newenvironment{enumeroman}{%
  \def\theenumi{\roman{enumi}}\def\theenumii{\alph{enumii}}%
  \def\labelenumi{(\theenumi)}\def\labelenumii{(\theenumii)}%
		\let\item\Item
  \begin{enumerate}%
}{%
  \end{enumerate}}
%
\newenvironment{alphlist}{%
  \def\theenumi{\alph{enumi}}\def\theenumii{\alph{enumii}}%
  \def\labelenumi{(\theenumi)}\def\labelenumii{(\theenumii)}%
		\let\item\Item
  \begin{enumerate}%
}{%
  \end{enumerate}}
%
\newenvironment{arabiclist}{%
	\def\theenumi{\arabic{enumi}}\def\theenumii{\arabic{enumii}}
	\def\labelenumi{\theenumi.}\def\labelenumii{(\theenumii)}%
	\let\item\Item
	\begin{enumerate}
	}{%
	\end{enumerate}}
%
\newenvironment{romanlist}{%
	\def\theenumi{\roman{enumi}}\def\theenumii{\roman{enumii}}
	\def\labelenumi{(\theenumi)}\def\labelenumii{(\theenumii)}%
	\let\item\Item
	\begin{enumerate}
	}{%
	\end{enumerate}}
%
\newenvironment{itemlist}{%
	\def\labelenumi{\labelitemi}
	\let\item\Item
	\begin{enumerate}
	}{%
	\end{enumerate}}
%
\newenvironment{description}
               {\list{}{\labelwidth\z@ \itemindent-\leftmargin
                        \let\makelabel\descriptionlabel}}
               {\endlist}
\newcommand*\descriptionlabel[1]{\hspace\labelsep
                                \normalfont\bfseries #1}
%
\newenvironment{unnumlist}{%
	\let\item\Item
  	\leftmargini2pc
   	\ifnum \@enumdepth >3 \@toodeep\else
      	\advance\@enumdepth \@ne
      	\list{}{\itemindent-2pc\topsep6pt
              \def\makelabel##1{\hss\llap{##1}}}%
   \fi
}{%
  \endlist}
%
%%%%%%%%%%%%%%%%%%%%%%%%%% Poetry %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\newenvironment{verse}
               {\let\\\@centercr
                \list{}{\itemsep      \z@
                        \itemindent   -1.5em%
                        \listparindent\itemindent
                        \rightmargin  \leftmargin
                        \advance\leftmargin 1.5em}%
                \item\relax}
               {\endlist}
\let\poetry\verse
\let\endpoetry\endverse
%
%%%%%%%%%%%%%%%%%%%%%%%% Extract %%%%%%%%%%%%%%%%%%%%%%%
%
\newenvironment{quotation}
               {\list{}{\listparindent 1.5em%
                        \itemindent    \listparindent
                        \rightmargin   \leftmargin
                        \parsep        \z@ \@plus\p@}%
                \item\relax}
               {\endlist}
\newenvironment{quote}
               {\list{}{\rightmargin\leftmargin}%
                \item\relax}
               {\endlist}
%
\let\extract\quotation
\let\endextract\endquotation
%
\def\source#1{\par\hspace*{\fill}{\it#1}\par}
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Maths %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\renewcommand\theequation{\arabic{equation}}
%
\def\bstrut{\vrule width0pt depth5pt}
\def\tstrut{\vrule width0pt height10pt}
\jot=3pt
%
%
\renewcommand{\[}{\relax\ifmmode\@badmath\else\bgroup\let\eqnnum\relax\let\refstepeqcnt\relax\@equation\fi}
\renewcommand{\]}{\relax\ifmmode\end@equation\egroup\@endparenv\@doendpe\else\@badmath\fi}
%

\AtBeginDocument{%
\@namedef{equation*}{\let\eqnnum\relax\let\refstepeqncnt\relax\@equation}
\@namedef{endequation*}{\end@equation}
\renewenvironment{equation}{\@equation}{\end@equation}
}

%
\def\refstepeqcnt{\refstepcounter{equation}}
\def\eqnnum{\displaywidth\linewidth\hbox{\@eqnnum}}
%
\def\@equation{\let\topsep\abovedisplayskip\@beginparpenalty\predisplaypenalty\@endparpenalty\postdisplaypenalty
     \refstepeqcnt
     \trivlist \item[]\leavevmode
       \hbox to\linewidth\bgroup\hfill $\m@th% $
       \displaystyle}%
\def\end@equation{$\hfill\eqnnum\egroup\endtrivlist}
%
\renewenvironment{eqnarray}{%
   \stepcounter{equation}%
   \def\@currentlabel{\p@equation\theequation}%
   \global\@eqnswtrue
   \m@th
   \global\@eqcnt\z@
   \tabskip\@centering
   \let\\\@eqncr
   $$\everycr{}\halign to\displaywidth\bgroup
       \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel
      &\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${##}$\hfil
      &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep
         $\displaystyle{##}$\hfil\tabskip\@centering
      &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup
         \tabskip\z@skip
      \cr}
        {%
      \@@eqncr
      \egroup
      \global\advance\c@equation\m@ne
   $$\global\@ignoretrue
}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Floats %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\def\FigName{figure}%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\def\figurename{Fig.}
\newcounter{figure}
\renewcommand\thefigure{\@arabic\c@figure}
\def\fps@figure{tbp}
\def\ftype@figure{1}
\def\ext@figure{lof}
\def\fnum@figure{\figurename~\thefigure}
\newenvironment{figure}
               {\@float{figure}}
               {\end@float}
\newenvironment{figure*}
               {\@dblfloat{figure}}
               {\end@dblfloat}
%
\def\ArtDir{\jobname/}
%
\def\figurebox#1#2#3{%
        \def\arg{#3}%
        \ifx\arg\empty
        {\hfill\vbox{\hsize#2\hrule\hbox to #2{%
                \vrule\hfill\vbox to #1{\hsize#2\vfill}\vrule}\hrule}\hfill}%
        \else
        \hbox to \hsize{\hfill\includegraphics{\ArtDir#3}\hfill}
        \fi}
%
\def\PSFIG#1#2#3{\par
  {\hbox to \hsize{%
	\hfill{\includegraphics[width=#2,angle=#3]{\ArtDir#1}}\hfill}\par}}%
%
%%%%%%%%%%%%%%%%%%%%%%%%%% Tables %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\newcounter{table}
\def\tablename{Table}
\renewcommand\thetable{\@arabic\c@table}
\def\fps@table{tbp}
\def\ftype@table{2}
\def\ext@table{lot}
\def\fnum@table{\tablename~\thetable}
\newenvironment{table}
               {\@float{table}}
               {\end@float}
\newenvironment{table*}
               {\@dblfloat{table}}
               {\end@dblfloat}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\def\tableformat#1{\centerline{#1}}
\newdimen\tabledim
\long\def\tbl#1#2{%
\global\setbox\tempbox\hbox{\tablefont #2}%
 \global\tabledim\wd\tempbox
 \tableformat{\vbox{\hsize\tabledim
                   \caption{#1}
                   \box\tempbox}}%
}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%\long\def\ttbl#1#2#3{%
%	\parindent\z@
%	\noindent
%  	\tablecaptionfont
%	\caption{#2}%
%	\tablewd\hsize
%	\advance\tablewd-#1
%  	\global\divide\tablewd\tw@
%	\ifdim \wd\wscaptionbox<#1
%	\centerline{\unhbox\wscaptionbox}
%	\else
%  	{\leftskip\tablewd% plus1fill{}
%	\rightskip\tablewd% plus1fill{}
%  	\unhbox\wscaptionbox\par}
%	\fi
% 	\vskip-8pt
%	\centerline{#3}
%}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\newenvironment{InTextTable}{%
 	\par\addvspace{16pt plus6pt minus6pt}%
 	\begin{center}
	\tablecaptionfont\noindent\ignorespaces
}{%
   	\end{center}
	\par\addvspace{17pt plus6pt minus6pt}}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\def\tabnotehead{Note}
\def\tabsourcehead{Source}
\newenvironment{tabnote}{%
   \par\addvspace{2pt}
   \setbox\tempbox\vbox\bgroup\hsize\tabledim\parindent12pt
   \tabnotefont
   \@ifnextchar[{\@tabnote}{\@tabnote[\tabnotehead]}%
}{%
		\par\egroup
   \tableformat{\box\tempbox}}
%
\def\@tabnote[#1]{\vskip6pt\noindent\def\@Tempa{#1}\ifx\@Tempa\@empty\hskip0pt\else{\it#1}:\hskip5pt\ignorespaces\fi}
%
%%
\newenvironment{tabfootnote}{%
   \par\addvspace{2pt}
   \setbox\tempbox\vbox\bgroup\hsize\tabledim\parindent12pt
   \tabnotefont
}{%
		\par\egroup
   \tableformat{\box\tempbox}}
%
%%
\def\tabmark#1{\noindent\hbox{\normalsize$\m@th^{#1}$}\ignorespaces}
%
\newenvironment{tabsource}{%
   \let\tabnotehead\tabsourcehead
   \begin{tabnote}
}{%
   \end{tabnote}
}
%
\def\Hline{%
  \noalign{\ifnum0=`}\fi\hrule \@height 2\arrayrulewidth \futurelet
   \@tempa\@xhline}
%
\def\x{@{\extracolsep{\fill}}}
\def\toprule{\Hline\\[-7.5pt]}
\def\colrule{\\[-7.5pt]\hline\\[-7.5pt]}
\def\TMcolrule{\\[-9.5pt]\hline\\[-9.5pt]}
\def\botrule{\\[-9pt]\Hline}
\def\crule#1{\\[-10pt]#1\\[-6pt]}
%
%%%%%%%%%%%%%%%%%%%%%%%% Caption %%%%%%%%%%%%%%%%%%%%%%%
%
\newlength\abovecaptionskip
\newlength\belowcaptionskip
\setlength\abovecaptionskip{10\p@}
%\setlength\belowcaptionskip{0\p@}
\setlength\belowcaptionskip{4\p@}
\long\def\@makecaption#1#2{%
  \figurecaptionfont
  \vskip\abovecaptionskip
  \sbox\@tempboxa{#1. #2}%
  \ifdim \wd\@tempboxa >\hsize
    #1. #2\par
  \else
    \global \@minipagefalse
    \hbox to \hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip}
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Footnote %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\renewcommand\footnoterule{%
  \kern-3\p@
  \hrule depth0pt height0pt \@width.2\columnwidth
  \kern2.6\p@}
\newcommand\@makefntext[1]{%
    \parindent 1em%
    \noindent
     \@makefnmark#1}
%
\def\@fnsymbol#1{\ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or
   	\mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger
   	\or \ddagger\ddagger \else\@ctrerr\fi}}
%
\def\thefootnote{\alph{footnote}}
\def\@makefnmark{{$^{\rm \@thefnmark}$}}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Page Style %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\mark{{}{}}
%
\def\ps@plain{%
     \let\@mkboth\@gobbletwo
     \let\@oddhead\@empty
%    \def\@oddfoot{\hfill\mbox{\lower12pt\hbox{\foliofont\thepage}}\hfill}%
     \def\@oddfoot{\hfill\mbox{\hbox{\foliofont\thepage}}\hfill}%
     \let\@evenhead\@empty
     \let\@evenfoot\@oddfoot}
%
\def\RightMark{}
%
\def\ps@headings{%
    \let\@oddfoot\@empty
    \let\@evenfoot\@empty
    \def\@evenhead{\rhfont{\upshape{\thepage}}\hskip1em\leftmark\hfill}%
    \def\@oddhead{\hfill\rhfont\rightmark\hskip1em{\upshape{\thepage}}}%
    \let\@mkboth\markboth
    \def\authormark##1{\markboth{##1}{\RightMark}}%
    \def\chaptermark##1{\gdef\RightMark{##1}\markright{##1}}}%
    %\def\sectionmark##1{\gdef\RightMark{##1}\markright{##1}}}%
%
\def\ps@myheadings{%
    \let\@oddfoot\@empty\let\@evenfoot\@empty
    \def\@evenhead{\rlap{\foliofont \thepage}\hfill{\rhfont\leftmark}\hfill}%
    \def\@oddhead{\hfill{\rhfont\rightmark}\hfill{\foliofont\thepage}}%
    \let\@mkboth\@gobbletwo
    \let\chaptermark\@gobble
    \let\sectionmark\@gobble}
%
\def\ps@pblind{%
	\let\@mkboth\@gobbletwo
	\def\@evenhead{}%
	\def\@oddhead{}
	\def\@oddfoot{\hfill\mbox{\lower8pc\hbox{}}\hfill}
   \let\@evenfoot\@oddfoot}
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Bibliography %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout
	{\string\citation{#2}}\fi	
\def\@citea{}\@cite{\@for\@citeb:=#2\do		
	{\@citea\def\@citea{,}\@ifundefined	
	{b@\@citeb}{{\bf ?}\@warning 
	{Citation `\@citeb' on page \thepage \space undefined}} 
	{\csname b@\@citeb\endcsname}}}{#1}} 
 \newif\if@cghi 
\def\cite{\@cghitrue\@ifnextchar [{\@tempswatrue 
	\@citex}{\@tempswafalse\@citex[]}} 
\def\citelow{\@cghifalse\@ifnextchar [{\@tempswatrue 
	\@citex}{\@tempswafalse\@citex[]}} 
\def\@cite#1#2{{$\null^{#1}$\if@tempswa\typeout 
	{WSPC warning: optional citation argument  
	ignored: `#2'} \fi}} 
\newcommand{\citeup}{\cite} 
% 
\def\@refcitex[#1]#2{\if@filesw\immediate\write\@auxout 
	{\string\citation{#2}}\fi 
\def\@citea{}\@refcite{\@for\@citeb:=#2\do 
	{\@citea\def\@citea{, }\@ifundefined 
	{b@\@citeb}{{\bf ?}\@warning 
	{Citation `\@citeb' on page \thepage \space undefined}} 
	\hbox{\csname b@\@citeb\endcsname}}}{#1}} 
 \def\@refcite#1#2{{#1\if@tempswa\typeout 
        {WSPC warning: optional citation argument 
	ignored: `#2'} \fi}} 
 \def\refcite{\@ifnextchar[{\@tempswatrue
	\@refcitex}{\@tempswafalse\@refcitex[]}}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newdimen\bibindent
\bibindent=2em
\def\@biblabel#1{#1.}
\newenvironment{thebibliography}[1]
     {%\vspace*{15pt}
      \section*{\bibname}
      \bibfont%
      \list{\@biblabel{\arabic{enumiv}}}%
           {\settowidth\labelwidth{\@biblabel{#1}}%
            \leftmargin\labelwidth
	    \labelsep6pt%.33em
            \advance\leftmargin\labelsep
	    \itemsep0pt\parsep0pt
            \usecounter{enumiv}%
            \renewcommand\theenumiv{\arabic{enumiv}}}%
      \sloppy\clubpenalty4000\widowpenalty4000%
      \sfcode`\.=\@m}
     {\def\@noitemerr
       {\@latex@warning{Empty `thebibliography' environment}}%
      \endlist}
\newcommand\newblock{}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Appendix %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\newcounter{appendix}
\newcommand\appendix{\par
  	\refstepcounter{appendix}
	\setcounter{section}{0}%
    \setcounter{theorem}{0}
	\setcounter{equation}{0}
	\@addtoreset{equation}{section}
\renewcommand\thesection{\appendixname\ \Alph{section}}
\renewcommand\thesubsection{\Alph{section}.\arabic{subsection}}%
\renewcommand\theequation{\Alph{section}.\arabic{equation}}}%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%For contents pages %%%%%%%%%%%%%%%%%%%%%%%%
%
\def\journalname{\uppercase{Group 1 Journals}}
\def\No{No.}
\def\chead#1#2#3{\par
\thispagestyle{empty}
{\centering{%
{\titlefont\journalname}\par
{\sl Vol.~#1, \No~#2 (#3)}\par
\vspace*{34pt}
\noindent CONTENTS\par}}
\vspace*{14pt}}
\def\leaderfill{\leaders\hbox to 1em{\hss.\hss}\hfill}
\def\centry#1#2#3{\par
	{\foliofont
	\setbox\tempbox\hbox{#3}
	{\rightskip3.5pc plus1fil
	\noindent{\uppercase{#1}}\par}
	{\leftskip12pt{\rightskip1pc plus1fil
	\ignorespaces\noindent#2\leaderfill\hspace*{2pt}\hskip\wd\tempbox\par}\par}\par
	\vskip-\lastskip
	\vskip-\baselineskip
	\hbox to \hsize{\hfill#3}\par}
	\addvspace{8pt plus1pt minus1pt}\par}
%%
\def\cent#1#2#3{\par{\foliofont
	{\rightskip2pc plus1fil
	\noindent\par}
	{\noindent{\uppercase{#1}}\ignorespaces#2\leaderfill\hspace*{2pt}#3\par}}\par
	\addvspace{8pt plus1pt minus1pt}\par
	}
%
\def\ehead#1#2#3{\par
	\addvspace{12pt plus1pt minus1pt}
	{\foliofont\rightskip4pc plus1fil
	\noindent{\bf #1{#2}{#3}\par}
	\vspace*{4pt}}\par}
%
\def\eehead#1#2#3{\par
	\addvspace{12pt plus1pt minus1pt}
	{\foliofont\rightskip4pc plus1fil
	\noindent{\bf #1{#2}{#3}\par}
	\vspace*{4pt}}\par}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Trim Marks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\newcommand\today{\ifcase\month\or
  January\or February\or March\or April\or May\or June\or
  July\or August\or September\or October\or November\or December\fi
	\space\number\day, \number\year}
\newcount\minute
\newcount\hour
\def\currenttime{%
	\minute\time
	\hour\minute
	\divide\hour60
	\the\hour:\multiply\hour60\advance\minute-\hour\the\minute}
%
%
\def\wsdraftnote{\today\quad\currenttime\qquad\jobname}%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\def\cropmarks{\nointerlineskip%
     \vbox to 0pt{\vskip-8.6pt
	\parindent0pt\hspace*{6pt}\wsdraftnote
     \par\advance\trimheight by 2pc
     \vbox to \trimheight{\offinterlineskip\parindent0pt\vskip-2pc
     \hbox to \trimwidth{\raise2.6pc\hbox{\vrule height2pc width0.3pt}\raisebox{2pc}
   {\hspace*{-2.6pc}\vrule width2pc height0.3pt}\hfill\raisebox{2pc}
   {\vrule width2pc height0.3pt}\hspace*{-2.6pc}\raise2.6pc\hbox{\vrule height2pc width0.3pt}}\vfill
     \hbox to \trimwidth{\lower1.2pc\hbox{\vrule height2pc width0.3pt}\raisebox{1.4pc}
        {\hspace*{-2.6pc}\vrule width2pc height0.3pt}\hfill 
    \lower1.2pc\hbox{\vrule height2pc width0.3pt}\rlap{\hspace*{0.6pc}\raisebox{1.4pc}{\vrule width2pc height0.3pt}}}}}
     \vbox to 0pt{\offinterlineskip\parindent0pt\vskip\topmargin%\vskip1.3pt
     \tempdimen\normaltextheight
     \advance\tempdimen24pt
     \moveright\@themargin
     \vbox to \tempdimen{\hrule height\wsdraftrule 
     \vbox to 0pt{\vskip\headheight\vskip\headsep%\vskip3pt
                \vrule height\wsdraftrule width\textwidth}%
      \hbox to \textwidth{\vrule width\wsdraftrule \hfill\vrule height\tempdimen width\wsdraftrule}%
           \hrule height\wsdraftrule}}}%%
\def\xcropmarks{\nointerlineskip%
     \vbox to 0pt{\vskip-8.6pt
	\parindent0pt\hspace*{6pt}\wsdraftnote
     \par\advance\trimheight by 2pc
     \vbox to \trimheight{\offinterlineskip\parindent0pt\vskip-2pc
     \hbox to \trimwidth{\raise2.6pc\hbox{\vrule height2pc width0.3pt}\raisebox{2pc}
   {\hspace*{-2.6pc}\vrule width2pc height0.3pt}\hfill\raisebox{2pc}
   {\vrule width2pc height0.3pt}\hspace*{-2.6pc}\raise2.6pc\hbox{\vrule height2pc width0.3pt}}\vfill
     \hbox to \trimwidth{\lower1.2pc\hbox{\vrule height2pc width0.3pt}\raisebox{1.4pc}
        {\hspace*{-2.6pc}\vrule width2pc height0.3pt}\hfill 
    \lower1.2pc\hbox{\vrule height2pc width0.3pt}\rlap{\hspace*{0.6pc}\raisebox{1.4pc}{\vrule width2pc height0.3pt}}}}}
     \vbox to 0pt{\offinterlineskip\parindent0pt\vskip\topmargin%\vskip1.3pt
     \tempdimen\normaltextheight
     \advance\tempdimen27pt
     \moveright\@themargin
     \vbox to \tempdimen{\hrule height\wsdraftrule 
     \vbox to 0pt{\vskip\headheight\vskip\headsep%\vskip3pt
                \vrule height\wsdraftrule width\textwidth}%
      \hbox to \textwidth{\vrule width\wsdraftrule \hfill\vrule height\tempdimen width\wsdraftrule}%
           \hrule height\wsdraftrule}}}%%
%
\let\trimmarks\cropmarks
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%% Output Routine %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\def\@outputpage{%
\begingroup           % the \endgroup is put in by \aftergroup
  \let \protect \noexpand
  \@resetactivechars
  \let\-\@dischyph
  \let\'\@acci\let\`\@accii\let\=\@acciii
  \let\\\@normalcr
  \let\par\@@par          %% 15 Sep 87
  \shipout \vbox{%
    \set@typeset@protect
    \aftergroup \endgroup
    \aftergroup \set@typeset@protect
                                % correct? or just restore by ending
                                % the group?
  \if@specialpage
    \global\@specialpagefalse\@nameuse{ps@\@specialstyle}%
  \fi
  \if@twoside
    \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot
         \let\@themargin\oddsidemargin
    \else \let\@thehead\@evenhead
       \let\@thefoot\@evenfoot \let\@themargin\evensidemargin
    \fi
  \fi
  \reset@font
  \normalsize
  \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@
    \@begindvi\trimmarks
    \vskip \topmargin
    \moveright\@themargin \vbox {%
      \setbox\@tempboxa \vbox to\headheight{%
        \vfil
        \color@hbox
          \normalcolor
          \hb@xt@\textwidth {%
            \let \label \@gobble
            \let \index \@gobble
            \let \glossary \@gobble %% 21 Jun 91
            \@thehead
            }%
        \color@endbox
        }%                        %% 22 Feb 87
      \dp\@tempboxa \z@
      \box\@tempboxa
      \vskip \headsep
      \box\@outputbox
      \baselineskip \footskip
      \color@hbox
        \normalcolor
        \hb@xt@\textwidth{%
          \let \label \@gobble
          \let \index \@gobble      %% 22 Feb 87
          \let \glossary \@gobble   %% 21 Jun 91
          \@thefoot
          }%
      \color@endbox
      }%
    }%
\global \@colht \textheight
\stepcounter{page}%
\let\firstmark\botmark
}
%
%
%%%%%%%%%%%%%%%%%%%%% Local Defs. %%%%%%%%%%%%%%%%%%%%%%
%
\def\mtb{\fboxsep=0pt\fbox{\phantom{e}}}
\def\breakhere{\par\vskip-\lastskip
			\pagebreak}
\def\forcebreak{\vadjust{\pagebreak}}
%
\def\and{\hbox{\lowercase{and }}}
\def\aand{\\[10pt]{\upshape{and}}\\[-3pt]}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Process Options %%%%%%%%%%%%%%%%%%%%%%%%
%
\pagestyle{headings}
\pagenumbering{arabic} 
\onecolumn
\frenchspacing
\flushbottom
\def\sloppy{\tolerance=100000\hfuzz=\maxdimen \vfuzz=\maxdimen}
\sloppy
\vbadness=12000
\hbadness=12000
\RequirePackage{amsmath,amsfonts,amssymb}
\RequirePackage{graphicx}
\endinput
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%End of file%%%%%%%%%%%%%%%%%%%%%%%%%%%%


ws-jml.tex — the file that is compiled · 12 KB
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Trim Size: 9.61in x 6.69in.
%% Text Area: 8in (include Runningheads) x 5in
%% ws-jml.tex   :   17-03-2022
%% Tex file to use with ws-jml.cls written in Latex2E.
%% The content, structure, format and layout of this style file is the
%% property of World Scientific Publishing Co. Pte. Ltd.
%% Copyright 2022 by World Scientific Publishing Co.
%% All rights are reserved.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%

\documentclass{ws-jml}
\usepackage{hyperref}
\usepackage{ws-jml-thm}        % comment this line when `amsthm / theorem / ntheorem` package is used
\usepackage[numbers,square,comma]{natbib}
\begin{document}

\markboth{F. Author \& S. Author (authors' names)}{Instructions for typing manuscripts (paper's title)}

%%%%%%%%%%%%%%%%%%%%% Publisher's Area please ignore %%%%%%%%%%%%%%%
%
\catchline{}{}{}{}{}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\title{Your paper}

\author{First Author\footnote{Typeset names in 8~pt Times Roman, upper and lower case.
Use the footnote to indicate the present or permanent address of
the author.}}

\address{University Department, University Name, Address\\
City, State ZIP/Zone, Country\\
firstauthor\_id@domain\_name\\
www.university\_name.edu\footnote{State completely without
abbreviations the affiliation and mailing address, including
country. Typeset in 8~pt Times Italic.}}

\author{Second Author}

\address{Group, Laboratory, Address\\
City, State ZIP/Zone, Country\\
second\[email protected]}

\maketitle

\begin{history}
\received{Day Month Year}
\revised{Day Month Year}
\accepted{Day Month Year}
\end{history}

\begin{abstract}
The abstract should summarize the context, content and conclusions of
the paper in less than 250 words. It should not contain any references or displayed
equations. Typeset the abstract in 8~pt Times Roman with baselineskip
of 10 pt, making an indentation of 1.5 pica on the left and right
margins.
\end{abstract}

\keywords{Keyword1; keyword2; keyword3. (A list of at least 5 keywords would be ideal for optimal discoverability of the article.)}

\ccode{Mathematics Subject Classification 2000: 14N35, 14J45}

\section{The Main Text}
Contributions to {\it Journal of Mathematical Logic} are to be in English. Authors are encouraged to have
their contribution checked for grammar. American spelling should be
used. Abbreviations are allowed but should be spelt out in full when
first used. Integers ten and below are to be spelt out.  Italicize
foreign language phrases (e.g.~Latin, French).

The text should be in 10 pt Times Roman, single spaced with
baselineskip of 13~pt. Text area (excluding copyright block and folio)
is 6.9 inches high and 5 inches wide for the first page.
Text area (excluding running title) is 7.7 inches high and\break
5 inches wide for subsequent pages.  Final pagination and
insertion of running titles will be done by the publisher.

\section{Major Headings}
Major headings should be typeset in boldface with the first letter of
important words capitalized.

\subsection{Subheadings}
Subheadings should be typeset in boldface italic and capitalize
the first letter of the first word only. Section number to be in
boldface Roman.

\subsubsection{Subsubheadings}
Typeset in italics (section number to be in Roman) and capitalize
the first letter of the first word only.

\subsection{Numbering and spacing}
Sections, sub-sections and sub-subsections are numbered in
Arabic.  Use double spacing before all section headings, and
single spacing after section headings. Flush left all paragraphs
that follow after section headings.

\subsection{Lists of items}
Lists may be laid out with each item marked by a dot:
\begin{itemlist}
 \item item one,
 \item item two.
\end{itemlist}
Items may also be numbered in lowercase Roman numerals:
\begin{romanlist}[(ii)]
 \item item one
 \item item two
	\begin{alphlist}[(b)]
	\item Lists within lists can be numbered with lowercase
              Roman letters,
	\item second item.
	\end{alphlist}
\end{romanlist}

\section{Equations}
Displayed equations should be numbered consecutively in each
section, with the number set flush right and enclosed in
parentheses
\begin{equation}
\mu(n, t) = {\sum^\infty_{i=1} 1(d_i < t, N(d_i) = n)
\over \int^t_{\sigma=0}
1(N(\sigma) = n)d\sigma}\,.\label{this}
\end{equation}

Equations should be referred to in abbreviated form,
e.g.~``Eq.~(\ref{this})''. In multiple-line
equations, the number should be given on the last line.

Displayed equations are to be centered on the page width.
Standard English letters like x are to appear as $x$
(italicized) in the text if they are used as mathematical
symbols. Punctuation marks are used at the end of equations as
if they appeared directly in the text.

\section{Theorem Environments\label{sfive}}

\begin{theorem}
\label{th1}
Theorems$,$ lemmas$,$ definitions$,$ etc. are set on a separate
paragraph$,$ with extra 1 line space above and below. They are to be
numbered consecutively in the paper.
\begin{equation}
\mu(n, t) = \frac{\sum\limits^\infty_{i=1} 1(d_i < t,
N(d_i) = n)}{\int\limits^t_{\sigma=0} 1(N(\sigma) = n)d\sigma}\,.
\end{equation}
\end{theorem}

\begin{lemma}[Optional Head]
\label{lem1}
Theorems$,$ lemmas$,$ definitions$,$ etc. are set on a separate
paragraph$,$ with extra 1 line space above and below. They are to be
numbered consecutively in the paper.
\end{lemma}

\begin{proof}
Proofs should end with a box.
\end{proof}

\section{Illustrations and Photographs}
Figures are to be inserted in the text nearest their first reference. If the author requires the
publisher to reduce the figures, ensure that the figures (including
letterings and numbers) are large enough to be clearly seen after
reduction.

\begin{figure}[th]
\centerline{\includegraphics[width=2.1in]{jmlf1}}
\vspace*{8pt}
\caption{A schematic illustration of dissociative recombination. The
direct mechanism, 4m$^2_\pi$ is initiated when the
molecular ion S$_{\rm L}$ captures an electron with kinetic energy.}
\end{figure}

Figures are to be sequentially numbered in Arabic numerals. The
caption must be placed below the figure. Typeset in 8~pt Times Roman
with baselineskip of 10~pt. Use double spacing between a caption and
the text that follows immediately.

Previously published material must be accompanied by written
permission from the author and publisher.

\section{Tables}
Tables should be inserted in the text as close to the point of
reference as possible. Some space should be left above and below
the table.

Tables should be numbered sequentially in the text in Arabic
numerals. Captions are to be centralized above the tables.
Typeset tables and captions in 8~pt Times Roman with
baselineskip of 10~pt.

\begin{table}[th]
\tbl{Comparison of acoustic for frequencies for piston-cylinder problem.}
{\begin{tabular}{@{}cccc@{}} \toprule
Piston mass & Analytical frequency & TRIA6-$S_1$ model &
\% Error \\
& (Rad/s) & (Rad/s) \\ \colrule
1.0\hphantom{00} & \hphantom{0}281.0 & \hphantom{0}280.81 & 0.07 \\
0.1\hphantom{00} & \hphantom{0}876.0 & \hphantom{0}875.74 & 0.03 \\
0.01\hphantom{0} & 2441.0 & 2441.0\hphantom{0} & 0.0\hphantom{0} \\
0.001 & 4130.0 & 4129.3\hphantom{0} & 0.16\\ \botrule
\end{tabular}}
%\begin{tabnote}
%Table notes
%\end{tabnote}
%\begin{tabfootnote}
%\tabmark{a} Table footnote A\\
%\tabmark{b} Table footnote B
%\end{tabfootnote}
\end{table}

If tables need to extend over to a second page, the continuation of
the table should be preceded by a caption, e.g.~``{\it Table 1}
$(${\it Continued}$)$''

\section{Footnotes}
Footnotes should be numbered sequentially in superscript lowercase Roman letters.\footnote{Footnotes should be
typeset in 8 pt Times Roman at the bottom of the page.}

\section{References and their Formats}

References are to be listed in alphabetical order of the author's name and cited in the
text in Arabic numerals within square brackets.
They can be referred to indirectly,
e.g. ``... in the statement \cite{best03}.'' or used directly, e.g. ``... see \cite[Sec. 2]{best03} for examples.'' List
references using the style shown in the following examples. For journal names, use
the standard abbreviations.
They should be listed according to the style shown in the
References. Typeset references in 9 pt roman.

It is recommended that each cited publication is labeled with a unique reference number.

\section*{Note Added}
Additional notes can be added before Acknowledgment.

\section*{Acknowledgments}
This section should come before the Appendices. Funding
information may also be included here.

\appendix

\section{Appendices}
Appendices should be used only when absolutely necessary. They
should come before the References. If there is more than one
appendix, number them alphabetically. Equations number
occurring in the Appendix is a continuation from the last
equation number of the main text
\begin{equation}
\mu(n, t) = {\sum^\infty_{i=1} 1(d_i < t, N(d_i) = n)
\over \int^t_{\sigma=0} 1(N(\sigma)
= n)d\sigma}\,.\label{that}
\end{equation}

\markboth{F. Author \& S. Author (authors' names)}{Instructions for typing manuscripts (paper's title)}

\begin{thebibliography}{10}
\newcommand{\enquote}[1]{#1}

\bibitem{benh93}
F.~Benhamou and A.~Colmerauer, eds., \emph{Constraint Logic Programming,
  Selected Research} (MIT Press, 1993).

\bibitem{best03}
B.~W. Bestbury, \enquote{{$R$}-matrices and the magic square}, \emph{J. Phys.
  A} \textbf{36}(7) (2003) 1947--1959.

\bibitem{brow88}
M.~E. Brown, \enquote{An interactive environment for literate programming},
  Ph.D. thesis, Texas A\&M University, TX, USA, aug 1988.

\bibitem{chur90}
R.~V. Churchill and J.~W. Brown, \emph{Complex Variables and Applications}
  (McGraw-Hill, 1990), 5th edition.

\bibitem{pier02}
P.~X. Deligne and B.~H. Gross, \enquote{On the exceptional series, and its
  descendants}, \emph{C. R. Math. Acad. Sci. Paris} \textbf{335}(11) (2002)
  877--881.

\bibitem{gupt97}
R.~K. Gupta and S.~D. Senturia, \enquote{Pull-in time dynamics as a measure of
  absolute pressure}, in \emph{Proc {IEEE} Int Workshop on
  Microelectromechanical Systems ({MEMS}'97)} (Nagoya, Japan, 1997), pp.
  290--294.

\bibitem{hear72}
H.~C. Heard, I.~V. Borg, N.~L. Carter and C.~B. Raleigh, eds., \emph{Seismic
  Velocity Anisotropy Calculated for Ultramafic Minerals and Aggregates} (Am
  Geophys Union, 1972), volume~16 of \emph{Geophys Mono}, pp. 157--166.

\bibitem{hear94}
H.~C. Heard, I.~V. Borg, N.~L. Carter and C.~B. Raleigh, \enquote{{VoQS: Voice
  Quality Symbols}}, 1994, revised to 1994.

\bibitem{hobb92}
J.~D. Hobby, \enquote{{A User's Manual for MetaPost}}, Technical Report 162,
  AT\&T Bell Laboratories, Murray Hill, New Jersey, apr 1992.

\bibitem{jarl88}
C.~Jarlskog, \emph{CP Violation} (World Scientific, Singapore, 1988).

\bibitem{dani73}
D.~Jones, \enquote{{The term ``phoneme''}}, in \emph{Phonetics in Linguistics:
  A Book of Reading}, eds. W.~E. Jones and J.~Laver (Longman, London, 1973),
  pp. 187--204.

\bibitem{jame02}
J.~M. Landsberg and L.~Manivel, \enquote{Triality, exceptional lie algebras and
  deligne dimension formulas}, \emph{Adv. Math.} \textbf{171}(1) (2002) 59--85.

\bibitem{lodh74}
G.~S. Lodha, \enquote{Quantitative interpretation of ariborne electromagnetic
  response for a spherical model}, Master's thesis, University of Toronto,
  Canada, 1974.

\bibitem{bill91}
B.~Murrey, \enquote{Kerning on the fly}, URW Non-Plus-Ultra Typography Series,
  Pittsburg, 1991.

\bibitem{poly15}
{Polymer Solutions Incorporated}, \enquote{Let {There} {Be} {Light}
  {Stabilizers}!}, November 2015.

\bibitem{rich60}
L.~F. Richardson, \emph{Arms and Insecurity} (Boxwood, Pittsburg, 1960).

\bibitem{weis94}
G.~H. Weiss, ed., \emph{Contemporary Problems in Statistical Physics} (SIAM,
  Philadelphia, 1994).

\bibitem{zhao18}
B.~Zhao, X.~Sun, M.~Khan and M.~Alam, \enquote{Purdue {University}
  {Meteorological} {Tool}}, 2018.

\end{thebibliography}

\end{document} 
ws-jml_bib.tex · 2 KB
\documentclass{ws-jml}
\usepackage{hyperref}
\usepackage[numbers,square,comma]{natbib}
\begin{document}

\thispagestyle{plain}

\title{Bib\TeX ing in JML Style}

\markboth{WSPC}{Using World Scientific's Bib\TeX Style File}

\maketitle

\section{Usage}

\begin{verbatim}
\documentclass{ws-jml}
\usepackage{hyperref}
\usepackage[numbers,square,comma]{natbib}
\begin{document}
Sample output using ws-jml bibliography style file ...
...text.\cite{best,pier,jame} ...
\bibliographystyle{ws-jml}
\bibliography{sample}
\end{document}
\end{verbatim}

\section{Bib\TeX\/ Database Entries}

\begin{center}
\tablefont
\begin{tabular}{@{}ll@{}}\toprule
\multicolumn{1}{c}{Bib\TeX}\\
\multicolumn{1}{c}{Database}  & \multicolumn{1}{c}{Sample citation}\\
\multicolumn{1}{c}{entry type}\\\colrule

article & ...text\cite{best03,pier02,jame02}\\

proceedings & ...text\cite{weis94}\\

inproceedings & ...text\cite{gupt97}\\

book & ...text\cite{jarl88,rich60}\\

booklet & ...text\cite{bill91}\\

edition & ...text\cite{chur90}\\

editor & ...text\cite{benh93}\\

series & ...text\cite{hear72}\\

tech report & ...text\cite{hobb92}\\

unpublished & ...text\cite{hear94}\\

phd thesis & ...text\cite{brow88}\\

masters thesis & ...text\cite{lodh74}\\

incollection & ...text\cite{dani73}\\

misc & Refs.~\citenum{poly15}\\
\botrule
\end{tabular}
\end{center}

When the reference forms part of the sentence, it should not be
typed in superscripts, e.g.: ``One can show from
Ref.~\citenum{zhao18} that $\ldots$''

\bibliographystyle{ws-jml}
\bibliography{sample}
\markboth{WSPC}{Using World Scientific's Bib\TeX Style File}

\end{document} 

The first page, as this template compiles today. Click it to enlarge, and again to shrink. Open the file ↗