International Journal of Bifurcation and Chaos (World Scientific)
World Scientific's own LaTeX kit for International Journal of Bifurcation and Chaos: the ws-ijbc class with its sample paper and bibliography style.
- Category
- Journal
- Document class
ws-ijbc(ws-ijbc.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-ijbc.cls, their bibliography style — so what compiles here is what they would have given you.
World Scientific Publishing serves this exact file to International Journal of Bifurcation and Chaos. Check World Scientific Publishing’s author pages for the current instructions.
What you get
epsfsafe.tex· 8 KBijbcf1-eps-converted-to.pdf· 4 KBijbcf1.eps· 47 KBijbcf1.pdf· 4 KBijbcf2-eps-converted-to.pdf· 16 KBijbcf2.eps· 57 KBijbcf2.pdf· 16 KBsample.bib· 6 KBws-ijbc.bst· 32 KBws-ijbc.cls· 44 KBws-ijbc.tex— the file that is compiled · 18 KBws-ijbc_bib.tex· 2 KBws-rotating.sty· 6 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
epsfsafe.tex · 8 KB
% EPSF.TEX macro file (modified for EPSF images with TIFF preview)
%
% Written by Tomas Rokicki of Radical Eye Software, 29 Mar 1989.
% Revised by Don Knuth, 3 Jan 1990.
% Revised by Tomas Rokicki to accept bounding boxes with no
% space after the colon, 18 Jul 1990.
%-% Modified to deal with %%BoundingBox: (at end) as well as TIFF
%-% preview in EPSF format files, 1993 Jan 23 (see %-% comments).
%
% TeX macros to include an Encapsulated PostScript graphic.
% Works by finding the bounding box comment,
% calculating the correct scale values, and inserting a vbox
% of the appropriate size at the current position in the TeX document.
%
% To use with the center environment of LaTeX, preface the \epsffile
% call with a \leavevmode. (LaTeX should probably supply this itself
% for the center environment.)
%
% To use, simply say
% \input epsfsafe % somewhere early on in your TeX file
% \epsfbox{filename.ps} % where you want to insert a vbox for a figure
%
% Alternatively, you can type
%
% \epsfbox[0 0 30 50]{filename.ps} % to supply your own BB
%
% which will not read in the file, and will instead use the bounding
% box you specify.
%
% The effect will be to typeset the figure as a TeX box, at the
% point of your \epsfbox command. By default, the graphic will have its
% `natural' width (namely the width of its bounding box, as described
% in filename.ps). The TeX box will have depth zero.
%
% You can enlarge or reduce the figure by saying
% \epsfxsize=<dimen> \epsfbox{filename.ps}
% (or
% \epsfysize=<dimen> \epsfbox{filename.ps})
% instead. Then the width of the TeX box will be \epsfxsize and its
% height will be scaled proportionately (or the height will be
% \epsfysize and its width will be scaled proportiontally). The
% width (and height) is restored to zero after each use.
%
% A more general facility for sizing is available by defining the
% \epsfsize macro. Normally you can redefine this macro
% to do almost anything. The first parameter is the natural x size of
% the PostScript graphic, the second parameter is the natural y size
% of the PostScript graphic. It must return the xsize to use, or 0 if
% natural scaling is to be used. Common uses include:
%
% \epsfxsize % just leave the old value alone
% 0pt % use the natural sizes
% #1 % use the natural sizes
% \hsize % scale to full width
% 0.5#1 % scale to 50% of natural size
% \ifnum#1>\hsize\hsize\else#1\fi % smaller of natural, hsize
%
% If you want TeX to report the size of the figure (as a message
% on your terminal when it processes each figure), say `\epsfverbosetrue'.
%
\chardef\quoteleftcode=\catcode96 % remember catcode of `
\catcode96=12 % make sure ` is "ordinary"
\newread\epsffilein % file to \read
\newif\ifepsffileok % continue looking for the bounding box?
\newif\ifepsfbbfound % success?
\newif\ifepsfverbose % report what you're making?
\newdimen\epsfxsize % horizontal size after scaling
\newdimen\epsfysize % vertical size after scaling
\newdimen\epsftsize % horizontal size before scaling
\newdimen\epsfrsize % vertical size before scaling
\newdimen\epsftmp % register for arithmetic manipulation
\newdimen\pspoints % conversion factor
%
\pspoints=1bp % Adobe points are `big'
\epsfxsize=0pt % Default value, means `use natural size'
\epsfysize=0pt % ditto
%
\def\epsfbox#1{\global\def\epsfllx{72}\global\def\epsflly{72}%
\global\def\epsfurx{540}\global\def\epsfury{720}%
\def\lbracket{[}\def\testit{#1}\ifx\testit\lbracket
\let\next=\epsfgetlitbb\else\let\next=\epsfnormal\fi\next{#1}}%
%
\def\epsfgetlitbb#1#2 #3 #4 #5]#6{\epsfgrab #2 #3 #4 #5 .\\%
\epsfsetgraph{#6}}%
%
\def\epsfnormal#1{\epsfgetbb{#1}\epsfsetgraph{#1}}%
%
\def\epsfgetbb#1{%
%
% The first thing we need to do is to open the
% PostScript file, if possible.
%
\openin\epsffilein=#1
\ifeof\epsffilein\errmessage{I couldn't open #1, will ignore it}\else
%
% Okay, we got it. Now we'll scan lines until we find one that doesn't
% start with %. We're looking for the bounding box comment.
%
{\epsffileoktrue \chardef\other=12
\def\do##1{\catcode`##1=\other}\dospecials \catcode`\ =10
%-% Neuter some more nasty characters
\catcode`\^^L=9 \catcode`\^^?=9
\loop
\read\epsffilein to \epsffileline
\ifeof\epsffilein\epsffileokfalse\else
%
% We check to see if the first character is a % sign;
% if not, we stop reading (unless the line was entirely blank);
% if so, we look further and stop only if the line begins with
% `%%BoundingBox:'.
%
\expandafter\epsfaux\epsffileline:. \\%
\fi
\ifepsffileok\repeat
\ifepsfbbfound\else
\ifepsfverbose\message{No bounding box comment in #1; using defaults}\fi\fi
}\closein\epsffilein\fi}%
%
% Now we have to calculate the scale and offset values to use.
% First we compute the natural sizes.
%
\def\epsfclipstring{}% do we clip or not? If so,
\def\epsfclipon{\def\epsfclipstring{ clip}}%
\def\epsfclipoff{\def\epsfclipstring{}}%
%
\def\epsfsetgraph#1{%
\epsfrsize=\epsfury\pspoints
\advance\epsfrsize by-\epsflly\pspoints
\epsftsize=\epsfurx\pspoints
\advance\epsftsize by-\epsfllx\pspoints
%
% If `epsfxsize' is 0, we default to the natural size of the picture.
% Otherwise we scale the graph to be \epsfxsize wide.
%
\epsfxsize\epsfsize\epsftsize\epsfrsize
\ifnum\epsfxsize=0 \ifnum\epsfysize=0
\epsfxsize=\epsftsize \epsfysize=\epsfrsize
\epsfrsize=0pt
%
% We have a sticky problem here: TeX doesn't do floating point arithmetic!
% Our goal is to compute y = rx/t. The following loop does this reasonably
% fast, with an error of at most about 16 sp (about 1/4000 pt).
%
\else\epsftmp=\epsftsize \divide\epsftmp\epsfrsize
\epsfxsize=\epsfysize \multiply\epsfxsize\epsftmp
\multiply\epsftmp\epsfrsize \advance\epsftsize-\epsftmp
\epsftmp=\epsfysize
\loop \advance\epsftsize\epsftsize \divide\epsftmp 2
\ifnum\epsftmp>0
\ifnum\epsftsize<\epsfrsize\else
\advance\epsftsize-\epsfrsize \advance\epsfxsize\epsftmp \fi
\repeat
\epsfrsize=0pt
\fi
\else \ifnum\epsfysize=0
\epsftmp=\epsfrsize \divide\epsftmp\epsftsize
\epsfysize=\epsfxsize \multiply\epsfysize\epsftmp
\multiply\epsftmp\epsftsize \advance\epsfrsize-\epsftmp
\epsftmp=\epsfxsize
\loop \advance\epsfrsize\epsfrsize \divide\epsftmp 2
\ifnum\epsftmp>0
\ifnum\epsfrsize<\epsftsize\else
\advance\epsfrsize-\epsftsize \advance\epsfysize\epsftmp \fi
\repeat
\epsfrsize=0pt
\else
\epsfrsize=\epsfysize
\fi
\fi
%
% Finally, we make the vbox and stick in a \special that dvips can parse.
%
\ifepsfverbose\message{#1: width=\the\epsfxsize, height=\the\epsfysize}\fi
\epsftmp=10\epsfxsize \divide\epsftmp\pspoints
\vbox to\epsfysize{\vfil\hbox to\epsfxsize{%
\ifnum\epsfrsize=0\relax
\special{PSfile=#1 llx=\epsfllx\space lly=\epsflly\space
urx=\epsfurx\space ury=\epsfury\space rwi=\number\epsftmp
\epsfclipstring}%
\else
\epsfrsize=10\epsfysize \divide\epsfrsize\pspoints
\special{PSfile=#1 llx=\epsfllx\space lly=\epsflly\space
urx=\epsfurx\space ury=\epsfury\space rwi=\number\epsftmp\space
rhi=\number\epsfrsize \epsfclipstring}%
\fi
\hfil}}%
\global\epsfxsize=0pt\global\epsfysize=0pt}%
%
% We still need to define the tricky \epsfaux macro. This requires
% a couple of magic constants for comparison purposes.
%
{\catcode`\%=12 \global\let\epsfpercent=%\global\def\epsfbblit{%BoundingBox}}%
%
% So we're ready to check for `%BoundingBox:' and to grab the
% values if they are found.
%
\long\def\epsfaux#1#2:#3\\{\ifx#1\epsfpercent
\def\testit{#2}\ifx\testit\epsfbblit
\epsfgrab #3 . . . \\%
\epsffileokfalse
\global\epsfbbfoundtrue
%-% Don't stop if line does not start with %. May be (at end) or binary stuff
% \fi\else\ifx#1\par\else\epsffileokfalse\fi\fi}%
\fi\else\ifx#1\par\else\fi\fi}%
%
% Here we grab the values and stuff them in the appropriate definitions.
%
\def\epsfempty{}%
\def\epsfgrab #1 #2 #3 #4 #5\\{%
\global\def\epsfllx{#1}\ifx\epsfllx\epsfempty
\epsfgrab #2 #3 #4 #5 .\\\else
\global\def\epsflly{#2}%
\global\def\epsfurx{#3}\global\def\epsfury{#4}\fi}%
%
% We default the epsfsize macro.
%
\def\epsfsize#1#2{\epsfxsize}
%
% Finally, another definition for compatibility with older macros.
%
\let\epsffile=\epsfbox
\catcode`\`=\quoteleftcode % restore previous catcodeijbcf1-eps-converted-to.pdf — binary, 4 KB
ijbcf1.eps — binary, 47 KB
ijbcf1.pdf — binary, 4 KB
ijbcf2-eps-converted-to.pdf — binary, 16 KB
ijbcf2.eps — binary, 57 KB
ijbcf2.pdf — binary, 16 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",
note = "\url{https://doi.org/10.1109/MEMSYS.1997.581830}."}
@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 = "Westbury, 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",
note = "\url{https://doi.org/10.1088/0305-4470/36/11/501}."}
@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",
note = "\url{https://doi.org/10.1016/S1631-073X(02)02590-6}."}
@article{jame02,
author = "Landsberg, James. M. and Manivel, L.",
title = "Triality, exceptional {L}ie algebras and {D}eligne 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",
note = "\url{https://doi.org/10.1006/aima.2002.2071}."}
@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{bake72,
author = "D. W. Baker and N. L. Carter",
year = "1972",
editor = "H. C. Heard and I. Y. Borg and N. L. Carter and C. B. Raleigh",
title = "Seismic {V}elocity {A}nisotropy {C}alculated for {U}ltramafic {M}inerals
and {A}ggregates",
booktitle = "Flow and {F}racture of {R}ocks",
publisher = "Am. Geophys. Union",
series = "Geophysical Monograph",
volume = "16",
pages = "157--166",
note = "\url{https://doi.org/10.1029/GM016p0157}."}
@mastersthesis{lodh74,
author = "Gunter Sergei Lodha",
title = "Quantitative interpretation of airborne
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{davi93,
author = "Bill Davidsen",
title = "{NETPBM}",
year = "1993",
note = "{ftp}://ftp.wustl.edu/graphics/graphics/packages/{NetPBM}"
}
@misc{rene96,
author = "Ren{\'e} K. M{\"u}ller",
title = "{GIFMerge}, Version $1.33$",
year = "1996",
date = "July 1996",
note = "{https://www.iis.ee.ethz.ch/\~{}kiwi/GIFMerge/}."
}
@booklet{bill91,
author = "Bill Murrey",
title = "Kerning on the Fly",
howpublished = "{URW} Non-Plus-Ultra Typography Series",
address = "Pittsburg",
year = "1991"
}
ws-ijbc.bst · 32 KB
%%
%% This is file `pattern1.bst',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% merlin.mbs (with options: `ay,nat,nm-rev,jnrlst,keyxyr,dt-beg,yr-par,yrpp-xsp,note-yr,tit-qq,vol-bf,volp-com,jwdpg,pp-last,num-xser,numser,ser-vol,ser-ed,pub-par,pre-edn,isbn,doi,edpar,blk-com,pp,ed,abr,ednx,ord,jabr,and-xcom,etal-it,url,url-nt,nfss,')
%% ----------------------------------------
%% *** ws books n journals ***
%%
%% Copyright 1994-2003 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}[2003/09/8 4.12 (PWD, AO, DPC)]
% For use with BibTeX version 0.99a or later
%-------------------------------------------------------------------
% This bibliography style file is intended for texts in ENGLISH
% This is an author-year citation style bibliography. As such, it is
% non-standard LaTeX, and requires a special package file to function properly.
% Such a package is wsnatbib.sty
% The form of the \bibitem entries is
% \bibitem[Jones et al.(1990)]{key}...
% \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
% The essential feature is that the label (the part in brackets) consists
% of the author names, as they should appear in the citation, with the year
% in parentheses following. There must be no space before the opening
% parenthesis!
% With natbib v5.3, a full list of authors may also follow the year.
% In natbib.sty, it is possible to define the type of enclosures that is
% really wanted (brackets or parentheses), but in either case, there must
% be parentheses in the label.
% The \cite command functions as follows:
% \citet{key} ==>> Jones et al. (1990)
% \citet*{key} ==>> Jones, Baker, and Smith (1990)
% \citep{key} ==>> (Jones et al., 1990)
% \citep*{key} ==>> (Jones, Baker, and Smith, 1990)
% \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
% \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)
% \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32)
% \citeauthor{key} ==>> Jones et al.
% \citeauthor*{key} ==>> Jones, Baker, and Smith
% \citeyear{key} ==>> 1990
%---------------------------------------------------------------------
ENTRY
{ address
author
booktitle
chapter
doi
edition
editor
eid
howpublished
institution
isbn
journal
key
month
note
number
organization
pages
publisher
school
series
title
type
url
volume
year
}
{}
{ 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 :=
}
FUNCTION {disp.msg.screen} { #1 }
FUNCTION {type.msg}
{ disp.msg.screen
{ "<ws-ijbc.bst>"
top$
"World Scientific's Bibliography Style File for IJBC"
top$
"version 1.0 (2005/03/26), Sorted"
top$
"for support: Rajesh, [email protected]"
top$
}
{ skip$ }
if$
}
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 {no.blank.or.punct}
{ "\hspace{0pt}" * 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.checkb}
{ empty$
swap$ empty$
and
'skip$
'new.block
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 {tie.r.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}
{ "\&"}
FUNCTION {bbl.etal}
{ "et~al." }
FUNCTION {bbl.editors}
{ "eds." }
FUNCTION {bbl.editor}
{ "ed." }
FUNCTION {bbl.edby}
{ "edited by" }
FUNCTION {bbl.edition}
{ "ed." }
FUNCTION {bbl.volume}
{ "" }
FUNCTION {bbl.of}
{ "of" }
FUNCTION {bbl.number}
{ "no." }
FUNCTION {bbl.nr}
{ "no." }
FUNCTION {bbl.in}
{ "" }
FUNCTION {bbl.pages}
{ "pp." }
FUNCTION {bbl.page}
{ "p." }
FUNCTION {bbl.jpages}
{""}
FUNCTION {bbl.jpage}
{""}
FUNCTION {bbl.chapter}
{ "" }
FUNCTION {bbl.techrep}
{ "Tech. Rep." }
FUNCTION {bbl.mthesis}
{ "Master's thesis" }
FUNCTION {bbl.phdthesis}
{ "PhD thesis" }
FUNCTION {bbl.first}
{ "1st" }
FUNCTION {bbl.second}
{ "2nd" }
FUNCTION {bbl.third}
{ "3rd" }
FUNCTION {bbl.fourth}
{ "4th" }
FUNCTION {bbl.fifth}
{ "5th" }
FUNCTION {bbl.st}
{ "st" }
FUNCTION {bbl.nd}
{ "nd" }
FUNCTION {bbl.rd}
{ "rd" }
FUNCTION {bbl.th}
{ "th" }
MACRO {jan} {"Jan."}
MACRO {feb} {"Feb."}
MACRO {mar} {"Mar."}
MACRO {apr} {"Apr."}
MACRO {may} {"May"}
MACRO {jun} {"Jun."}
MACRO {jul} {"Jul."}
MACRO {aug} {"Aug."}
MACRO {sep} {"Sep."}
MACRO {oct} {"Oct."}
MACRO {nov} {"Nov."}
MACRO {dec} {"Dec."}
FUNCTION {eng.ord}
{ duplicate$ "1" swap$ *
#-2 #1 substring$ "1" =
{ bbl.th * }
{ duplicate$ #-1 #1 substring$
duplicate$ "1" =
{ pop$ bbl.st * }
{ duplicate$ "2" =
{ pop$ bbl.nd * }
{ "3" =
{ bbl.rd * }
{ bbl.th * }
if$
}
if$
}
if$
}
if$
}
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
"{vv~}{ll}{, f.}{, 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 emphasize *
}
{
"\&"
space.word * t *
}
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
} if$
}
FUNCTION {format.names.ed}
{ 'bibinfo :=
duplicate$ empty$ 'skip$ {
's :=
"" 't :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
"{vv~}{ll}{, f.}{, 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 emphasize *
}
{
"\&"
space.word * t *
}
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
} if$
}
FUNCTION {format.key}
{ empty$
{ key field.or.null }
{ "" }
if$
}
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
"(" swap$ * ")" *
*
}
if$
}
FUNCTION {format.isbn}
{ isbn "isbn" bibinfo.check
duplicate$ empty$ 'skip$
{
"ISBN " swap$ *
}
if$
}
FUNCTION {format.doi}
{ doi "doi" bibinfo.check
duplicate$ empty$ 'skip$
{
"\doi{" swap$ * "}" *
}
if$
}
FUNCTION {format.note}
{
url empty$
'skip$
{ "\urlprefix\url{" url * "}" * output }
if$
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$ *
non.stop
{ ",} " * }
{ "} " * }
if$
}
if$
}
FUNCTION {end.quote.title}
{ title empty$
'skip$
{ before.all 'output.state := }
if$
}
FUNCTION {format.full.names}
{'s :=
"" 't :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
"{vv~}{ll}" format.name$
't :=
nameptr #1 >
{
namesleft #1 >
{ ", " * t * }
{
s nameptr "{ll}" format.name$ duplicate$ "others" =
{ 't := }
{ pop$ }
if$
t "others" =
{
" " * bbl.etal emphasize *
}
{
bbl.and
space.word * t *
}
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
FUNCTION {author.editor.key.full}
{ author empty$
{ editor empty$
{ key empty$
{ cite$ #1 #3 substring$ }
'key
if$
}
{ editor format.full.names }
if$
}
{ author format.full.names }
if$
}
FUNCTION {author.key.full}
{ author empty$
{ key empty$
{ cite$ #1 #3 substring$ }
'key
if$
}
{ author format.full.names }
if$
}
FUNCTION {editor.key.full}
{ editor empty$
{ key empty$
{ cite$ #1 #3 substring$ }
'key
if$
}
{ editor format.full.names }
if$
}
FUNCTION {make.full.names}
{ type$ "book" =
type$ "inbook" =
or
'author.editor.key.full
{ type$ "proceedings" =
'editor.key.full
'author.key.full
if$
}
if$
}
FUNCTION {output.bibitem}
{ newline$
"\bibitem[{" write$
label write$
")" make.full.names duplicate$ short.list =
{ pop$ }
{ * }
if$
"}]{" * 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.date}
{ year "year" bibinfo.check duplicate$ empty$
{
"empty year in " cite$ * "; set to ????" * warning$
pop$ "????"
}
'skip$
if$
extra.label *
before.all 'output.state :=
" [" swap$ * "]" *
}
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$
{ "" }
{ series empty$
{"Vol.~" volume *}
{", " * series * "Vol.~" volume *}
if$
}
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 {is.num}
{ chr.to.int$
duplicate$ "0" chr.to.int$ < not
swap$ "9" chr.to.int$ > not and
}
FUNCTION {extract.num}
{ duplicate$ 't :=
"" 's :=
{ t empty$ not }
{ t #1 #1 substring$
t #2 global.max$ substring$ 't :=
duplicate$ is.num
{ s swap$ * 's := }
{ pop$ "" 't := }
if$
}
while$
s empty$
'skip$
{ pop$ s }
if$
}
FUNCTION {convert.edition}
{ extract.num "l" change.case$ 's :=
s "first" = s "1" = or
{ bbl.first 't := }
{ s "second" = s "2" = or
{ bbl.second 't := }
{ s "third" = s "3" = or
{ bbl.third 't := }
{ s "fourth" = s "4" = or
{ bbl.fourth 't := }
{ s "fifth" = s "5" = or
{ bbl.fifth 't := }
{ s #1 #1 substring$ is.num
{ s eng.ord 't := }
{ edition 't := }
if$
}
if$
}
if$
}
if$
}
if$
}
if$
t
}
FUNCTION {format.edition}
{ edition duplicate$ empty$ 'skip$
{
convert.edition
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 }
{
", " *
swap$
n.dashify
pages multi.page.check
'bbl.jpages
'bbl.jpage
if$
swap$ tie.or.space.prefix
"pages" bibinfo.check
* *
*
}
if$
}
if$
}
FUNCTION {format.journal.eid}
{ eid "eid" bibinfo.check
duplicate$ empty$ 'pop$
{ swap$ duplicate$ empty$ 'skip$
{
", " *
}
if$
swap$ *
}
if$
}
FUNCTION {format.vol.num.pages}
{ volume field.or.null
duplicate$ empty$ 'skip$
{
"volume" bibinfo.check
}
if$
bolden
}
FUNCTION {format.chapter.pages}
{ chapter empty$
{ "" }
{ type empty$
{ bbl.chapter }
{ type "l" change.case$
"type" bibinfo.check
}
if$
"``" chapter tie.r.space.prefix * ",''" *
"chapter" bibinfo.check
* *
}
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 {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}
{
word.in
" \cite{" * crossref * "}" *
}
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$
" \cite{" * crossref * "}" *
}
FUNCTION {format.incoll.inproc.crossref}
{
word.in
" \cite{" * crossref * "}" *
}
FUNCTION {format.org.or.pub}
{ 't :=
""
address empty$ t empty$ and
'skip$
{
add.blank "(" *
t empty$
{ address "address" bibinfo.check *
}
{ t *
address empty$
'skip$
{ ", " * address "address" bibinfo.check * }
if$
}
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
author format.key output
format.date "year" output.check
new.sentence
date.block
add.blank
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$
eid empty$
{ format.journal.pages }
{ format.journal.eid }
if$
format.doi output
format.note output
fin.entry
}
FUNCTION {book}
{ output.bibitem
author empty$
{ format.editors "author and editor" output.check
editor format.key output
}
{ format.authors output.nonnull
crossref missing$
{ "author and editor" editor either.or.check }
'skip$
if$
}
if$
format.date "year" output.check
new.sentence
date.block
add.blank
format.btitle "title" output.check
crossref missing$
{ format.bvolume output
format.edition output
format.number.series output
format.publisher.address output
}
{
format.book.crossref output.nonnull
}
if$
format.isbn output
format.doi output
format.note output
fin.entry
}
FUNCTION {booklet}
{ output.bibitem
format.authors output
author format.key output
format.date "year" output.check
new.sentence
date.block
add.blank
format.title "title" output.check
end.quote.title
howpublished "howpublished" bibinfo.check output
address "address" bibinfo.check output
format.isbn output
format.doi output
format.note output
fin.entry
}
FUNCTION {inbook}
{ output.bibitem
author empty$
{ format.editors "author and editor" output.check
editor format.key output
}
{ format.authors output.nonnull
}
if$
format.date "year" output.check
new.sentence
date.block
add.blank
format.chapter.pages "chapter and pages" output.check
add.blank
format.btitle "title" output.check
crossref missing$
{
format.edition output
format.number.series output
format.bvolume output
format.publisher.address output
}
{
format.chapter.pages "chapter and pages" output.check
add.blank
format.book.crossref output.nonnull
}
if$
crossref missing$
{ format.isbn output }
'skip$
if$
format.pages "pages" output.check
format.doi output
format.note output
fin.entry
}
FUNCTION {incollection}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
new.sentence
date.block
add.blank
format.title "title" output.check
end.quote.title
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
format.edition output
format.chapter.pages output
format.number.series output
format.publisher.address output
format.isbn output
}
{ format.incoll.inproc.crossref output.nonnull
format.chapter.pages output
}
if$
format.pages "pages" output.check
format.doi output
format.note output
fin.entry
}
FUNCTION {inproceedings}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
new.sentence
date.block
add.blank
format.title "title" output.check
end.quote.title
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
format.number.series output
publisher empty$
{ format.organization.address output }
{ organization "organization" bibinfo.check output
format.publisher.address output
}
if$
format.isbn output
}
{ format.incoll.inproc.crossref output.nonnull
}
if$
format.pages "pages" output.check
format.doi output
format.note output
fin.entry
}
FUNCTION {conference} { inproceedings }
FUNCTION {manual}
{ output.bibitem
format.authors output
author format.key output
format.date "year" output.check
new.sentence
date.block
add.blank
format.btitle "title" output.check
organization "organization" bibinfo.check output
address "address" bibinfo.check output
format.edition output
format.doi output
format.note output
fin.entry
}
FUNCTION {mastersthesis}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
new.sentence
date.block
add.blank
format.title "title" output.check
add.blank
bbl.mthesis format.thesis.type output.nonnull
school "school" bibinfo.warn output
address "address" bibinfo.check output
format.doi output
format.note output
fin.entry
}
FUNCTION {misc}
{ output.bibitem
format.authors output
author format.key output
format.date "year" output.check
new.sentence
date.block
add.blank
format.title output
end.quote.title
howpublished "howpublished" bibinfo.check output
format.doi output
format.note output
fin.entry
}
FUNCTION {phdthesis}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
new.sentence
date.block
add.blank
format.title "title" output.check
add.blank
bbl.phdthesis format.thesis.type output.nonnull
school "school" bibinfo.warn output
address "address" bibinfo.check output
format.doi output
format.note output
fin.entry
}
FUNCTION {proceedings}
{ output.bibitem
format.editors output
editor format.key output
format.date "year" output.check
new.sentence
date.block
add.blank
format.btitle "title" output.check
format.bvolume output
format.number.series output
publisher empty$
{ format.organization.address output }
{ organization "organization" bibinfo.check output
format.publisher.address output
}
if$
format.isbn output
format.doi output
format.note output
fin.entry
}
FUNCTION {techreport}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
new.sentence
date.block
add.blank
format.title
"title" output.check
end.quote.title
format.tr.number output.nonnull
institution "institution" bibinfo.warn output
address "address" bibinfo.check output
format.doi output
format.note output
fin.entry
}
FUNCTION {unpublished}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
new.sentence
date.block
add.blank
format.title "title" output.check
end.quote.title
format.doi output
format.note "note" output.check
fin.entry
}
FUNCTION {default.type} { misc }
READ
EXECUTE {type.msg}
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 {calc.label}
{ calc.short.authors
short.list
"("
*
year duplicate$ empty$
short.list key field.or.null = or
{ pop$ "" }
'skip$
if$
*
'label :=
}
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 {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$ :=
}
ITERATE {presort}
SORT
STRINGS { last.label next.extra }
INTEGERS { last.extra.num number.label }
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
FUNCTION {begin.bib}
{ preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
if$
"\begin{thebibliography}{" number.label int.to.str$ * "}" *
write$ newline$
"\newcommand{\enquote}[1]{``#1''}"
write$ newline$
"\providecommand{\natexlab}[1]{#1}"
write$ newline$
"\providecommand{\url}[1]{\texttt{#1}}"
write$ newline$
"\providecommand{\urlprefix}{URL }"
write$ newline$
"\expandafter\ifx\csname urlstyle\endcsname\relax"
write$ newline$
" \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else"
write$ newline$
" \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi"
write$ newline$
}
EXECUTE {begin.bib}
EXECUTE {init.state.consts}
ITERATE {call.type$}
FUNCTION {end.bib}
{ newline$
"\end{thebibliography}" write$ newline$
}
EXECUTE {end.bib}
%% End of customized bst file
%%
%% End of file `ws-ijbc.bst'.
ws-ijbc.cls · 44 KB
44 KB — too long to show here. It arrives with the project.
ws-ijbc.tex — the file that is compiled · 18 KB
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Text Area : 9.6in (include Runningheads) x 7in
%% ws-ijbc.tex : 01-07-2026
%% TeX file to use with ws-ijbc.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 2024 by World Scientific Publishing Co.
%% All rights are reserved.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%\documentclass[wsdraft]{ws-ijbc}
\documentclass{ws-ijbc}
\usepackage{ws-rotating} % used only when sideways tables/figures are used
\usepackage{xcolor}
\usepackage[verbose]{hyperref}
\hypersetup{colorlinks=false,allbordercolors=blue,pdfborderstyle={/S/U/W 1}}
% \label, \ref and \cite commands are highly recommended
\begin{document}
\catchline{}{}{}{}{} % Publisher's Area please ignore
\markboth{Authors' Names}{Paper Title}
\title{Your paper}
\author{First Author\footnote{Typeset names in 11 pt Times Roman.
Use the footnote to indicate the present or permanent address of
the author.}}
\address{University Department, University Name, Address\\
City, State ZIP/Zone, Country\\
[email protected]\footnote{State completely without
abbreviations the affiliation and mailing address, including
country. Typeset in 11~pt Times Italic.}}
\author{Second Author}
\address{Group, Company, Address\\
City, State ZIP/Zone, Country\\
[email protected]}
\maketitle
\begin{history}
\received{(Month Day Year)}; \accepted{(Month Day Year)}; \published{(Month Day Year)}
\end{history}
\begin{abstract}
The abstract should summarize the context, content and conclusions
of the paper. It should not contain any references or displayed
equations. Typeset the abstract in 10~pt Times Roman with
baselineskip of 12 pt, making an indentation of 1.6~cm on the left
and right margins.
\end{abstract}
\keywords{A list of 3--5 keywords are to be supplied.}
%\begin{multicols}{2}
\vspace*{-0.5in}
\section{The Main Text}
Contributions 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 spelled out in full when first used. Integers ten and below are to be spelled out. Italicize foreign language phrases (e.g.~Latin, French).
The text is to be typeset in 11~pt Times \hbox{Roman},
single-spaced with baselineskip of 13~pt. Text area is 17.8~cm (7~inches) across and
24.4~cm (9.6 inches) deep (including running title).
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 bold italics, with the first
letter of first word capitalized and the section numbers in
boldface.
\subsubsection{Sub-subheadings}
Typeset in italics (section number to be in roman) and capitalize
the first letter of the first word only.
\subsection{Numbering and spacing}
Sections, subsections and sub-subsections are numbered with Arabic
numerals. Use double spacing after major and subheadings, and
single spacing after sub-subheadings.
\section{Lists of Items}
Lists are broadly classified into four major categories that can
randomly be used as desired by the author:
\begin{alphlist}[(d)]
\item Numbered list.
\item Lettered list.
\item Unnumbered list.
\item Bulleted list.
\end{alphlist}
\subsection{Numbered and lettered list}
\begin{arabiclist}[(5)]
\item The \verb|\begin{arabiclist}[]| command is used for the arabic
number list (arabic numbers appearing within parenthesis), e.g.,
(1), (2), etc.
\smallskip
\item The \verb|\begin{romanlist}[]| command is used for the roman
number list (roman numbers appearing within parenthesis), e.g., (i),
(ii), etc.
\smallskip
\item The \verb|\begin{Romanlist}[]| command is used for the cap roman
\hbox{number list} (cap roman numbers appearing within parenthesis),
e.g., (I), (II), etc.
\smallskip
\item The \verb|\begin{alphlist}[]| command is used for the alphabetic
list (alphabets appearing within parenthesis), e.g., (a), (b), etc.
\smallskip
\item The \verb|\begin{Alphlist}[]| command is used for the cap
alphabetic list (cap alphabets appearing within parenthesis),
e.g., (A), (B), etc.
\end{arabiclist}
Note: For all the above mentioned lists (with the exception of
alphabetic list), it is obligatory to enter the last entry's number
in the list within the square bracket, to enable unit alignment.
\subsection{Bulleted and unnumbered list}
\begin{enumerate}
\item[] The \verb|\begin{itemlist}| command is used for the bulleted list.
\smallskip
\item[] The \verb|\begin{unnumlist}| command is used for creating the
unnumbered list with the turnovers hangindent by 1\,pica.
\end{enumerate}
Lists may be laid out with each item marked by a bullet:
\begin{itemlist}
\item item one
\item item two
\item item three.
\end{itemlist}
Items may also be numbered with lowercase Roman numerals:
\begin{romanlist}[(iii)]
\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}
\item item three
\item item four.
\end{romanlist}
\pagebreak
\section{Theorems and Definitions}
\noindent{\bf Input:}
\begin{verbatim}
\begin{theorem}
We have $\# H^2 (M \supset N) < \infty$ for an inclusion ...
\end{theorem}
\end{verbatim}
\noindent{\bf Output:}
\begin{theorem}\label{thm1}
We have $\# H^2 (M \supset N) < \infty$ for an inclusion $M \supset
N$ of factors of finite index.
\end{theorem}
\noindent{\bf Input:}
\begin{verbatim}
\begin{theorem}[Longo, 1998]
For a given $Q$-system...
\[
N = \{x \in N; T x = \gamma (x) T, T x^* = \gamma (x^*) T\},
\]
and $E_\Xi (\cdot) = T^* \gamma (\cdot) T$ gives ...
\end{theorem}
\end{verbatim}
\noindent{\bf Output:}
\begin{theorem}[Longo, 1998]\label{thm2}
For a given $Q$-system...
\[
N = \{x \in N; T x = \gamma (x) T, T x^* = \gamma (x^*) T\},
\]
and $E_\Xi (\cdot) = T^* \gamma (\cdot) T$ gives a conditional
expectation onto $N$.
\end{theorem}
\subsection{Proofs}
The WSPC document styles also provide a predefined proof environment
for proofs. The proof \hbox{environment} produces the heading
`Proof' with appropriate spacing and punctuation. It also appends a
`Q.E.D.' symbol, $\blacksquare$, at the end of a proof, e.g.
\begin{verbatim}
\begin{proof}
This is just an example.
\end{proof}
\end{verbatim}
\noindent to produce
\begin{proof}
This is just an example.
\end{proof}
The proof environment takes an argument in curly
braces, which allows you to substitute a different name for the standard
`Proof'. If you want to display, `Proof of Lemma', then write e.g.
\begin{verbatim}
\begin{proof}[Proof of Lemma]
This is just an example.
\end{proof}
\end{verbatim}
\noindent produces
\begin{proof}[Proof of Lemma]
This is just an example.
\end{proof}
\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) = \frac{\displaystyle\sum^\infty_{i=1} 1(d_i < t, N(d_i) = n)}
{\displaystyle\int^t_{\sigma=0} 1(N(\sigma) = n)d\sigma}\,\,
.\label{this}
\end{equation}
\noindent Equations should be referred to in abbreviated form,
e.g.~``Eq.~(\ref{this})'' or ``(2)''. In multiple-line equations,
the number should be given on the last line.
For multiline equations, prefer using \verb|align| or \verb|align*| instead of \verb|eqnarray|.
\begin{align}
g(x) & = \sum_{k=1}^{N} y_k g(x_k) \nonumber\\
& = \sum_{k=1}^{N} y_k \sum_{l=1}^{M} b_{kl} w_l \nonumber\\
& = \sum_{k=1}^{N} \sum_{l=1}^{M} b_{kl} y_k w_l
\end{align}
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.\footnote{Sample footnote}
\section{Illustrations and Photographs}
Figures are to be inserted in the text nearest their first reference.
If the publisher is required to reduce the figures, ensure that the
figures (including lettering and numbers) are large enough to be
clearly seen after reduction.
\begin{figure}[h]
\centerline{\includegraphics[width=1.5in]{ijbcf1}}
\caption{Labeled tree {\it T}.}
\label{fig2}
\alttext{Description of the figure}
%\vspace*{12pt}
\end{figure}
\begin{sidewaysfigure}
\centerline{\includegraphics[width=7in]{ijbcf2}}
\caption{The bifurcating response curves of system
$\alpha=0.5$, $\beta=1.8$; $\delta=0.2$, $\gamma=0$: (a)~$\mu=-1.3$; and (b)~$\mu=0.3$.}
\label{fig1}
\alttext{Description of the figure}
\end{sidewaysfigure}
Figures are to be sequentially numbered with Arabic
numerals. The caption must be placed below the figure. For those
figures with multiple parts which appear on different pages, it is
best to place the full caption below the first part, and have
e.g.~``Fig.~1 ({\it continued\/})'' below the last part. Typeset in
9 pt Times Roman with baselineskip of 11 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\break publisher.
Very large figures and tables should be placed on a separate page
by themselves. Landscape tables and figures can be typeset with the following environments:
\begin{itemlist}
\item \verb|sidewaystable| and
\item \verb|sidewaysfigure|.
\end{itemlist}
\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 with Arabic numerals. Captions are to be centered above the
tables. Typeset tables and captions in 9 pt Times Roman with
baselineskip of 11 pt.
If tables need to extend over to a second page, the continuation
of the table should be preceded by a caption, e.g.~``Table~1 ({\it
continued\/})''.
\begin{table}[h]
\tbl{Number of tests for WFF triple NA = 5, or NA = 8.}
{\tabcolsep13pt\begin{tabular}{l c c c c c}\\[-2pt]
\toprule
{} &{} &3 &4 &8 &10\\[6pt]
\hline\\[-2pt]
{} &\phantom03 &1200 &2000 &\phantom02500 &\phantom03000\\[1pt]
{\ninebf NC} &\phantom05 &2000 &2200 &\phantom02700 &\phantom03400\\[2pt]
{} &\phantom08 &2500 &2700 &16000 &22000\\[2pt]
{} &10 &3000 &3400 &22000 &28000\\[1pt]
\botrule
\end{tabular}}
\end{table}
By using \verb|\tbl| command in table environment, long captions will be justified to the table width while the short or single line captions are centered.
\verb|\tbl{table caption}{tabullar environment}|.
For most tables, the horizontal rules are obtained by:
\begin{tabular}{ll}
{\bf toprule} & one rule at the top\\
{\bf colrule}& one rule separating column heads from data cells\\
{\bf botrule}& one bottom rule\\
{\bf Hline} & one thick rule at the top and bottom of the tables with multiple column heads\\
\end{tabular}
\
To avoid the rules sticking out at either end
of the table, add \verb|@{}| before the first and after the last descriptors, e.g.
{@{}llll@{}}. Please avoid vertical rules in tables.
But if you think the vertical rule is a must,
you can use the standard \LaTeX{} \verb|tabular| environment.
Headings which span for more than one column should be set using
\verb|\multicolumn{#1}{#2}{#3}| where \verb|#1| is the number of
columns to be spanned, \verb|#2| is the argument for the alignment
of the column head which may be either {c} --- for center
alignment; {l} --- for left alignment; or {r} --- for right
alignment, as desired by the users. Use {c} for column heads as
this is the WS style and \verb|#3| is the heading.
\section{Cross-references}
Use \verb|\label| and \verb|\ref| for cross-references to
equations, figures, tables, sections, subsections, etc., instead
of plain numbers. Every numbered part to which one wants to refer,
should be labeled with the instruction \verb|\label|.
For example:
\begin{verbatim}
\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}.\label{aba:eq1}
\end{equation}
\end{verbatim}
\pagebreak
\noindent
With the instruction \verb|\ref| one can refer to a numbered part
that has been labeled:
\begin{verbatim}
..., see also Eq. (\ref{aba:eq1})
\end{verbatim}
The \verb|\label| instruction should be typed
\begin{itemlist}
\item immediately after (or one line below), but not inside the argument of
a number-generating instruction such as \verb|\section| or \verb|\caption|, e.g.:
\verb|\caption{ ... caption ... }\label{aba:fig1}|.
\item roughly in the position where the number appears, in environments
such as an equation,
\item labels should be unique, e.g., equation 1 can be labeled as
\verb|\label{aba:eq1}|, where `{\tt aba}' is author's initial and
`{\tt eq1}' the equation number.
\end{itemlist}
\section{References}
References cited in the text should be placed within square
brackets and stated as [surname of author(s), year of
publication], e.g., \cite{Golub89} and, with three
or more authors, \cite{Hall97}. If the reference reads as part of
the sentence, the square brackets enclose only the year of
publication, e.g., ``According to Golub and Van Loan [1989], \ldots''
\section*{Note Added}
A note can be added before Acknowledgments.
\section*{Acknowledgments}
This part should come before References. Funding information may also be included here.
\section*{ORCID}
You are encouraged to include in your user information the ORCID (\url{https://orcid.org/}) or register for one if you don't have it. This ID will help to identify you in the researcher community and make it easier to keep track of all your publications.
Please provide a valid ORCID here, e.g.,
\noindent Josiah Carberry - \url{https://orcid.org/0000-0002-1825-0097}
\noindent Rajesh Babu - \url{https://orcid.org/0009-0006-0415-6880}
\markboth{Authors' Names}{Paper Title}
\section*{Appendices}
Appendices should be used only when absolutely necessary. They should come immediately before References.
\appendix{}
If there is more than one appendix, number them alphabetically.
\begin{equation}
\mu(n, t) = \frac{\displaystyle\sum^\infty_{i=1} 1(d_i < t, N(d_i) = n)}
{\displaystyle\int^t_{\sigma=0} 1(N(\sigma) = n)d\sigma}\,\,
.\label{that}
\end{equation}
Number displayed equations occurring in the appendix as (A.1),
(A.2), etc.
\section*{References}
A complete list of references cited, arranged in
alphabetical order according to the surname of the first author,
should be provided. References by the same author will follow a
chronological sequence, i.e., \cite{Lie00} precedes \cite{Lie01}.
Article titles should be stated in full but standard abbreviations
should be used for journal names. Typeset reference in 10 pt Times
Roman, single spaced with baselineskip of 12 pt.
\subsection*{Examples}
\subsubsection*{Journal reference:}
\hangindent=1.12em P\"arssinen, A., Jussila, J., Ryyn\"anen, J.,
Sumanen, L. \& Halonen, K. A. I. [1999] ``A 2-GHz wide-band direct conversion receiver for WCDMA applications,'' {\it IEEE J. Solid-State Circuits} {\bf 34}, p. 1893, \url{https://doi.org/10.1109/4.808914}.
\noindent\hangindent=1.12em Zhu, Z. \& Leung, H. [1999] ``Optimal synchronization of chaotic systems in noise,'' {\it IEEE Trans. Circ. Syst.-I\/$:$ Fund. Th. Appl.} {\bf 46},
1320--1329, \url{https://doi.org/10.1109/81.802822}.
\subsubsection*{Book reference:}
\hangindent=1.12em Golub, G. H. \& Van Loan, C. F. [1989]
{\it Matrix Comptations}, 2nd Ed. (Johns Hopkins University Press, USA).
\noindent\hangindent=1.12em Lie, D. Y. C. \& Wang, K. L. [2001]
``Si/SiGe processing,''
{\it Semiconductors and Semimetals} {\bf 73}, eds.~Willardson, R. \& Weber, E.,
(Academic Press, San Diego), Chapter 4, pp.~151--197, \url{https://doi.org/10.1016/S0080-8784(01)80214-3}.
\subsubsection*{Proceedings reference:}
\hangindent=1.12em Haller, B., Streiff, M., Fleisch, U. \& Zimmermann, R. [1997]
``Hardware implementation of a systolic \hbox{antenna} array signal processor based on CORDIC arithmetic,'' {\it Proc. Int. Conf. Acoust. Speech \hbox{Signal} Proc.}
{\bf 5}, pp. 4141--4144, \url{https://doi.org/10.1109/ICASSP.1997.604858}.
\begin{thebibliography}{9}
\markboth{Authors' Names}{Paper Title}
\bibitem[Golub \& Van Loan(1989)]{Golub89}
Golub, G. H. \& Van Loan, C. F. [1989]
{\it Matrix Comptations}, 2nd Ed. (Johns Hopkins University Press, USA).
\bibitem[Haller {\it et al.}(1997)]{Hall97}
Haller, B., Streiff, M., Fleisch, U. \& Zimmermann, R. [1997]
``Hardware implementation of a systolic \hbox{antenna} array signal processor based on CORDIC arithmetic,''
{\it Proc. Int. Conf. Acoust. Speech \hbox{Signal} Proc.} {\bf 5}, pp. 4141--4144, \url{https://doi.org/10.1109/ICASSP.1997.604858}.
\bibitem[Lie \& Wang(2000)]{Lie00}
Lie, D. Y. C. \& Wang, K. L. [2000]
``Si/SiGe heterostructures for Si-based nanoelectronics,''
{\it Handbook of} \hbox{\it Advanced} {\it Electronic and Photonic Devices and Materials}, ed.~Nalwa, H. S. (\hbox{Academic} Press, San Diego), Chapter~1, pp.~1--69,
\url{https://doi.org/10.1016/B978-012513745-4/50021-4}.
\bibitem[Lie \& Wang(2001)]{Lie01}
Lie, D. Y. C. \& Wang, K. L. [2001]
``SiGe/Si processing,'' {\it Semiconductors and Semimetals} {\bf 73},
eds.~Willardson, R. \& Weber, E. (Academic Press, San Diego), Chapter 4, pp.~151--197,
\url{https://doi.org/10.1016/S0080-8784(01)80214-3}.
\bibitem[Parssinen {\it et al.}(1999)]{Par99}
P\"arssinen, A., Jussila, J., Ryyn\"anen, J., Sumanen, L. \& Halonen, K. A. I. [1999]
``A 2-GHz wide-band direct conversion receiver for WCDMA applications,''
{\it IEEE J. Solid-State Circuits} {\bf 34}, 1893,
\url{https://doi.org/10.1109/4.808914}.
\bibitem[Zhu~\& Leung, 1999]{EKF_DrLeung3}
Zhu, Z., Leung, H. \& Ding, Z. [1999]
``Optimal synchronization of chaotic systems in noise,''
{\it IEEE Trans. Circ. Syst.-I$:$ Fund. Th. Appl.} {\bf 46}, 1320--1329,
\url{https://doi.org/10.1109/81.802822}.
\end{thebibliography}
%\end{multicols}
\end{document}
ws-ijbc_bib.tex · 2 KB
\documentclass{ws-ijbc}
\usepackage{xcolor}
\usepackage[verbose]{hyperref}
\hypersetup{colorlinks=false,allbordercolors=blue,pdfborderstyle={/S/U/W 1}}
%
\def\bib{B\kern-.05em{I}\kern-.025em{B}\kern-.08em}
\def\btex{B\kern-.05em{I}\kern-.025em{B}\kern-.08em\TeX}
\begin{document}
\catchline{}{}{}{}{} % Publisher's Area please ignore
\markboth{WSPC}{Using World Scientific's \btex\/ Style File}
\title{{\btex}ing in IJBC {\bib}Style}
\maketitle
\section{Usage}
\begin{verbatim}
\documentclass{ws-ijbc}
\begin{document}
Sample output using ws-ijbc bibliography style file ...
...text.\cite{best,pier,jame} ...
\bibliographystyle{ws-ijbc}
\bibliography{sample}
\end{document}
\end{verbatim}
\section{\btex{} Database Entries}
\begin{center}
\tablefont
\vspace*{12pt}
\begin{tabular}{@{}ll@{}}\toprule
\multicolumn{1}{@{}c}{\btex}\\
\multicolumn{1}{@{}c}{Database} &\multicolumn{1}{c@{}}{Sample citation}\\
\multicolumn{1}{@{}c}{entry type}\\\colrule
article & ... \citep{best03,pier02,jame02}\\
proceedings & ... \cite{weis94}\\
inproceedings & ... \cite{gupt97}\\
book & ... \citep{jarl88,rich60}\\
booklet & ... \cite{bill91}\\
edition & ... \cite{chur90}\\
editor & ... \cite{benh93}\\
series & ... \cite{bake72}\\
tech report & ... \citep{hobb92,bria84}\\
phd thesis & ... \cite{brow88}\\
masters thesis & ... \cite{lodh74}\\
incollection & ... \cite{dani73}\\
misc & ... \citep{davi93,rene96}\\
\botrule
\end{tabular}
\end{center}
\vspace*{12pt}\noindent
Some more options:\\[6pt]
\verb|\cite{best03}| $=>$ \cite{best03}\\
\verb|\citet{best03}| $=>$ \citet{best03}
\bibliographystyle{ws-ijbc}
\bibliography{sample}
\markboth{WSPC}{Using World Scientific's \btex\/ Style File}
\end{document} ws-rotating.sty · 6 KB
%%
%% This is file `rotating.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% rotating.dtx (with options: `package')
%% Copyright (C) 1994 Sebastian Rahtz and Leonor Barroca. All
%% rights reserved. Permission is granted to to customize the
%% declarations in this file to serve the needs of your installation.
%% However, no permission is granted to distribute a modified version of
%% this file under its original name.
%%
\def\RInfo{1997/09/26, v2.13}
%% File: rotating.dtx Copyright (C) 1995 Sebastian Rahtz and Leonor Barroca
\ProvidesPackage{ws-rotating}[\RInfo\space Rotation package]
\NeedsTeXFormat{LaTeX2e}
\newif\if@rot@twoside
\DeclareOption{clockwise}{% this is for compatibility
\AtBeginDocument{\setkeys{Grot}{units=360}}%
}
\DeclareOption{counterclockwise}{%
\AtBeginDocument{\setkeys{Grot}{units=-360}}%
}
\DeclareOption{figuresleft}{%
\@rot@twosidefalse
\def\rot@LR{0}%
}
\DeclareOption{figuresright}{%
\@rot@twosidefalse
\def\rot@LR{-1}%
}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{graphics}}
\ExecuteOptions{clockwise}
\if@twoside
\@rot@twosidetrue
\else
\@rot@twosidefalse
\fi
\def\rot@LR{-1}
\ProcessOptions
\RequirePackage{graphicx}
\RequirePackage{ifthen}
\def\rotdriver#1{\makeatletter\input{#1.def}\makeatother}
\newcounter{r@tfl@t}
\setcounter{r@tfl@t}{0}
\def\sideways{%
\Grot@setangle{90}%
\setbox\z@\hbox\bgroup\ignorespaces}
\def\endsideways{%
\unskip\egroup
\Grot@x\z@
\Grot@y\z@
\Grot@box
}
\def\turn#1{%
\Grot@setangle{#1}%
\setbox\z@\hbox\bgroup\ignorespaces}
\def\endturn{%
\unskip\egroup
\Grot@x\z@
\Grot@y\z@
\Grot@box
}
\def\rotate#1{%
\Grot@setangle{#1}%
\setbox\z@\hbox\bgroup\ignorespaces}
\def\endrotate{%
\unskip\egroup
\Grot@x\z@
\Grot@y\z@
\wd0\z@\dp0\z@\ht0\z@
\Grot@box
}
\def\turnbox#1#2{%
\Grot@setangle{#1}%
\setbox\z@\hbox{{#2}}%
\Grot@x\z@\Grot@y\z@
\wd0\z@\dp0\z@\ht0\z@
\Grot@box
}
\newsavebox\rot@float@box
\def\@rotfloat#1{%
\@ifnextchar[%
{\@xrotfloat{#1}}%
{\edef\@tempa{\noexpand\@xrotfloat{#1}[\csname fps@#1\endcsname]}\@tempa}%
}
\def\@xrotfloat#1[#2]{%
\@float{#1}[#2]%
\begin{lrbox}\rot@float@box
\begin{minipage}\textheight
}
\def\end@rotfloat{%
\end{minipage}\end{lrbox}%
\global\addtocounter{r@tfl@t}{1}%
\rot@label{RF\ther@tfl@t}%
\message{Adding sideways figure on }%
\def\R@@page{\pageref{RF\ther@tfl@t}}%
\wd\rot@float@box\z@
\ht\rot@float@box\z@
\dp\rot@float@box\z@
\vbox to \textheight{%
\setkeys{Grot}{units=360}%
\if@rot@twoside
\def\R@@page{\pageref{RF\ther@tfl@t}}%
\else
\let\R@@page\rot@LR
\fi
\ifthenelse{\isodd{\R@@page}}{%
\message{right hand page}%
\vfill
\centerline{\rotatebox{90}{\box\rot@float@box}}%
}{%
\message{left hand page}%
\vfill
\centerline{\rotatebox{90}{\box\rot@float@box}}% % ws
}%
}%
\end@float
}
\def\sidewaysfigure{\@rotfloat{figure}}
\let\endsidewaysfigure\end@rotfloat
\def\sidewaystable{\@rotfloat{table}}
\let\endsidewaystable\end@rotfloat
\def\@rotdblfloat{%
\if@twocolumn\let\reserved@a\@rotdbflt\else\let\reserved@a\@rotfloat\fi
\reserved@a}
\def\@rotdbflt#1{\@ifnextchar[{\@rotxdblfloat{#1}}{\@rotxdblfloat{#1}[tp]}}
\def\@rotxdblfloat#1[#2]{%
\hsize\textwidth\linewidth\textwidth
\@float{#1}[#2]%
\begin{lrbox}\rot@float@box
\begin{minipage}\textheight
}
\def\end@rotdblfloat{%
\end{minipage}\end{lrbox}%
\global\addtocounter{r@tfl@t}{1}%
\rot@label{RF\ther@tfl@t}%
\message{Adding sideways figure on }%
\def\R@@page{\pageref{RF\ther@tfl@t}}%
\@tempdima\ht\rot@float@box
\advance\@tempdima by \dp\rot@float@box
\typeout{BOX wd: \the\wd\rot@float@box, ht: \the\ht\rot@float@box, dp: \the\dp\rot@float@box: so shift by .5 of \the\@tempdima}%
\wd\rot@float@box\z@
\ht\rot@float@box\z@
\dp\rot@float@box\z@
\vbox to \textheight{%
\setkeys{Grot}{units=360}%
\if@rot@twoside
\def\R@@page{\pageref{RF\ther@tfl@t}}%
\else
\let\R@@page\rot@LR
\fi
\ifthenelse{\isodd{\R@@page}}{%
\message{right hand page}%
\vfill
\hbox to\textwidth{\hfill\rotatebox{90}{\box\rot@float@box}\hfill}%
}{%
\message{left hand page}%
\hbox to \textwidth{\hfill\rotatebox{-90}{\box\rot@float@box}\hfill}%
\vfill
}%
}%
\end@dblfloat
}
\newenvironment{sidewaystable*}
{\@rotdblfloat{table}}
{\end@rotdblfloat}
\newenvironment{sidewaysfigure*}
{\@rotdblfloat{figure}}
{\end@rotdblfloat}
\long\def \r@protected@write#1#2#3{%
\begingroup
\let\therpage\relax
#2%
\let\protect\@unexpandable@protect
\edef\reserved@a{\write#1{#3}}%
\reserved@a
\endgroup
\if@nobreak\ifvmode\nobreak\fi\fi
}
\def\therpage{\arabic{page}}
\def\rot@label#1{\@bsphack
\r@protected@write\@auxout{}%
{\string\newlabel{#1}{{\@currentlabel}{\therpage}}}%
\@esphack}
\def\rotcaption{\refstepcounter\@captype\@dblarg{\@rotcaption\@captype}}
\long\def\@rotcaption#1[#2]#3{%
\addcontentsline{\csname ext@#1\endcsname}{#1}{%
\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
\par
\begingroup
\@parboxrestore
\normalsize
\@makerotcaption{\csname fnum@#1\endcsname}{#3}%
\endgroup}
\long\def\@makerotcaption#1#2{%
\setbox\@tempboxa\hbox{#1: #2}%
\ifdim \wd\@tempboxa > .8\vsize
\rotatebox{90}{%
\begin{minipage}{.8\textheight}#1: #2\end{minipage}%
}\par
\else%
\rotatebox{90}{\box\@tempboxa}%
\fi
\hspace{12pt}%
}
\endinput
%%
%% End of file `rotating.sty'.The first page, as this template compiles today. Click it to enlarge, and again to shrink. Open the file ↗