tensor_predictors/LaTeX/Annals/imsart.sty

5356 lines
157 KiB
TeX

% This is file `imsart.sty'
%%
%% LaTeX 2e style file for the processing of LaTeX2e files
%% of the following IMS/BS journals:
%%
%% - The Annals of Probability
%% - The Annals of Applied Probability
%% - The Annals of Statistics
%% - The Annals of Applied Statistics
%% - Statistical Science
%% - Probability Surveys
%% - Statistics Surveys
%% - Electronic Journal of Statistics
%% - Bernoulli
%% - Annales de l'Institut Henri Poincar\'e - Probabilit\'es et Statistiques
%% - Brazilian Journal of Probability and Statistics
%% - Bayesian Analysis
%%
%% - Institute of Mathematical Statistics, U.S.A.
%% - Bernoulli Society
%% - Institut Henry Poincare
%% - Brazilian Statistical Association
%% - International Society for Bayesian Analysis
%%
%% Macros written by Vytas Statulevicius, VTeX, Lithuania
%% Maintained by TeX group members, VTeX, Lithuania
%% for Institute of Mathematical Statistics, U.S.A.
%% Please submit bugs or your comments to latex-support@vtex.lt
%%
%% The original distribution is located at:
%% https://www.e-publications.org/ims/support
%%
%% This style file contains additional macros and is designed to use
%% with standard "article.cls"
%%
%% You are free to use this style file as you see fit, provided
%% that you do not make changes to the file.
%% If you DO make changes, you are required to rename this file.
%%
%% It may be distributed under the terms of the LaTeX Project Public
%% License, as described in lppl.txt in the base LaTeX distribution.
%% Either version 1.0 or, at your option, any later version.
%%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%% Digits \0\1\2\3\4\5\6\7\8\9
%% Exclamation \! Double quote \" Hash (number) \#
%% Dollar \$ Percent \% Ampersand \&
%% Acute accent \' Left paren \( Right paren \)
%% Asterisk \* Plus \+ Comma \,
%% Minus \- Point \. Solidus \/
%% Colon \: Semicolon \; Less than \<
%% Equals \= Greater than \> Question mark \?
%% Commercial at \@ Left bracket \[ Backslash \\
%% Right bracket \] Circumflex \^ Underscore \_
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
%%
%% Bug fixes and changes: at end of file
%
% TeX programming: Vytas Statulevicius, VTeX, Lithuania.
% TeX programming: Deimantas Galcius, VTeX, Lithuania.
% TeX programming: Edgaras Sakuras, VTeX, Lithuania.
% Requires Latex2e, ver.2000.06
%
\def\imsfmt@name{imsart}
\def\imsfmt@version{2023/05/19}
%
\ProvidesFile{imsart.sty}[\imsfmt@version\space IMS article style]
%
\RequirePackage{etoolbox}
%
% hyperref must be loaded after:
\@ifpackageloaded{hyperref}%
{\@latex@error{Package 'hyperref' must be loaded after 'imsart'!}\@ehc}%
{}
%
% Passoptions to hyperref:
\ifdefined\loadhyperrefoptions
\else
\def\loadhyperrefoptions{%
\PassOptionsToPackage{colorlinks,citecolor=blue,urlcolor=blue,%
linkcolor=blue,linktocpage=true}{hyperref}%
}
\fi
%
\loadhyperrefoptions
%
% General options:
%
% prints out \bid{doi={}}
\newif\if@print@bid@doi \@print@bid@doifalse
\DeclareOption{printbiddoi}{\global\@print@bid@doitrue}
%
% Put keywords as footnote
\newif\if@keywordsasfootnote
\DeclareOption{keywordsasfootnote}{\@keywordsasfootnotetrue}
%
% Put history as footnote
\newif\if@historyasfootnote
\DeclareOption{historyasfootnote}{\@historyasfootnotetrue}
%
% Put address as footnote
\newif\if@addressasfootnote
\DeclareOption{addressasfootnote}{\@addressasfootnotetrue}
%
% Put addresses at end of document
\newif\if@addressatend
\DeclareOption{addressatend}{\@addressatendtrue}
%
% Put "." after inline section headings:
\newif\if@autosecdot
\DeclareOption{autosecdot}{\@autosecdottrue}
\DeclareOption{noautosecdot}{\AtBeginDocument{\@autosecdotfalse}}
%
% do not print thanksref undefined marks
\newif\if@noundefthanksref
\DeclareOption{noundefthanksref}{\@noundefthanksreftrue}
%
\newif\if@front@back \@front@backfalse
\DeclareOption{frontback}{\global\@front@backtrue}
%
% Load amsmath style with correct settings:
\newif\if@load@amsmath
\DeclareOption{amsmath}{\@load@amsmathtrue}
%
% Load amsthm style with correct settings:
\newif\if@load@amsthm
\DeclareOption{amsthm}{\@load@amsthmtrue}
%
% Resets equation number in each section
\newif\if@imsart@seceqn
\DeclareOption{seceqn}{\@imsart@seceqntrue}
%
% Load amsmath with leqno option
\newif\if@amsmath@leqno
%
% Load natbib with correct settings:
\newif\if@load@natbib
\DeclareOption{natbib}{\@load@natbibtrue}
%
% When hyperref is loaded, makes a hyperlink only from year component of the cite command:
\newif\if@linksfromyear\@linksfromyearfalse
\DeclareOption{linksfromyear}{\@linksfromyeartrue}
%
\newif\if@imsart@numbers
\newif\if@imsart@authoryear
\newif\if@imsart@nameyear
\DeclareOption{numbers}{%
\@imsart@numberstrue
\PassOptionsToPackage{numbers}{natbib}%
}
\DeclareOption{nameyear}{%
\PassOptionsToPackage{authoryear}{natbib}%
\@imsart@nameyeartrue
\@imsart@authoryeartrue
}
\DeclareOption{authoryear}{%
\PassOptionsToPackage{authoryear}{natbib}%
\@imsart@nameyeartrue
\@imsart@authoryeartrue
}
%
\newif\if@ims@rotating
\DeclareOption{rotating}{\@ims@rotatingtrue}
%
% enable writing to .aux
\newif\if@supertoc \@supertocfalse
\newif\if@changetoc \@changetocfalse
%
% for new thanksref syntax
\newif\if@updated@thanksref \@updated@thanksreffalse
%
% Information about journals
%
\def\set@generic{\def\@tempa{-generic}}
\AtEndOfPackage{\set@generic}
%
\DeclareOption{ba}{%
\def\journal@id{-ba}%
\def\journal@name{Bayesian Analysis}%
\def\journal@issn@print{1936-0975}%
\def\journal@issn@electronic{1931-6690}%
\def\journal@url{https://bayesian.org/resources/bayesian-analysis/}%
\@balayouttrue
\@noundefthanksreftrue
\@updated@thanksreftrue
\@addressasfootnotetrue
}
%
\DeclareOption{ps}{%
\def\journal@id{-ps}%
\def\journal@name{Probability Surveys }%
\def\journal@issn{ISSN: 1549-5787}%
\def\journal@url{https://imstat.org/journals-and-publications/probability-surveys/}%
\@ejs@ps@ss@layouttrue
}
%
% Information about journals
\DeclareOption{ss}{%
\def\journal@id{-ss}%
\def\journal@name{Statistics Surveys }%
\def\journal@issn{ISSN: 1935-7516}%
\def\journal@url{https://imstat.org/journals-and-publications/statistics-surveys/}%
\@ejs@ps@ss@layouttrue
}
%
% Information about journals
\DeclareOption{ejs}{%
\def\journal@id{-ejs}%
\def\journal@name{Electronic Journal of Statistics }%
\def\journal@issn{ISSN: 1935-7524}%
\def\journal@url{https://imstat.org/journals-and-publications/electronic-journal-of-statistics/}%
\@ejs@ps@ss@layouttrue
}
%
% Options for the IMS journals:
%
\DeclareOption{aap}{%
\def\journal@id{-aap}%
\def\journal@name{Submitted to the Annals of Applied Probability }%
\def\journal@url{https://imstat.org/journals-and-publications/annals-of-applied-probability/}%
\set@page@layout{405bp}{646bp}%
\@twosidetrue
\input{leqno.clo}% formula numbers at left
\@amsmath@leqnotrue
\@historyasfootnotetrue
\@keywordsasfootnotetrue
\@imslayouttrue
\@autosecdottrue
\@print@bid@doitrue
\@updated@thanksreftrue
}
%
\DeclareOption{aop}{%
\def\journal@id{-aop}%
\def\journal@name{Submitted to the Annals of Probability }%
\def\journal@url{https://imstat.org/journals-and-publications/annals-of-probability/}%
\set@page@layout{405bp}{646bp}%
\@twosidetrue
\input{leqno.clo}% formula numbers at left
\@amsmath@leqnotrue
\@historyasfootnotetrue
\@keywordsasfootnotetrue
\@imslayouttrue
\@autosecdottrue
\@print@bid@doitrue
\@updated@thanksreftrue
}
%
\DeclareOption{aos}{%
\def\journal@id{-aos}%
\def\journal@name{Submitted to the Annals of Statistics }%
\def\journal@url{https://imstat.org/journals-and-publications/annals-of-statistics/}%
\set@page@layout{405bp}{646bp}%
\@twosidetrue
\input{leqno.clo}% formula numbers at left
\@amsmath@leqnotrue
\@historyasfootnotetrue
\@keywordsasfootnotetrue
\@imslayouttrue
\@autosecdottrue
\@print@bid@doitrue
\@updated@thanksreftrue
}
%
\DeclareOption{aoas}{%
\def\journal@id{-aoas}%
\def\journal@name{Submitted to the Annals of Applied Statistics }%
\def\journal@url{https://imstat.org/journals-and-publications/annals-of-applied-statistics/}%
\set@page@layout{405bp}{646bp}%
\@twosidetrue
\input{leqno.clo}% formula numbers at left
\@amsmath@leqnotrue
\@historyasfootnotetrue
\@keywordsasfootnotetrue
\@imslayouttrue
\@autosecdottrue
\@print@bid@doitrue
\@updated@thanksreftrue
\AtBeginDocument{%
\@ifpackagewith{natbib}{numbers}{%
\@latex@error{Only author-year citations are allowed!
Please use the option 'authoryear' of 'natbib' package}{}%
}{}%
}%
}
%
\DeclareOption{sts}{%
\def\journal@id{-sts}%
\def\journal@name{Submitted to Statistical Science }%
\def\journal@url{https://imstat.org/journals-and-publications/statistical-science/}%
\set@page@layout{408.62625pt}{702.75pt}% twocol wd - 10pc
\@twosidetrue
\input{leqno.clo}% formula numbers at left
\@amsmath@leqnotrue
\@stslayouttrue
\@twocolumntrue
\@print@bid@doitrue
\AtEndPreamble{\if@twocolumn\set@page@layout{528.62625pt}{702.75pt}\fi}%
}
%
\DeclareOption{bj}{%
\def\journal@id{-bj}%
\def\journal@name{Submitted to Bernoulli }%
\def\journal@url{http://www.bernoulli-society.org/index.php/publications/bernoulli-journal/bernoulli-journal}%
\def\journal@issn{1350-7265}%
\set@page@layout{34pc}{574pt}%
\@twosidetrue
\@bjlayouttrue
\@autosecdottrue
\@updated@thanksreftrue
\@print@bid@doitrue
\@load@amsthmtrue
\@load@amsmathtrue
\@load@natbibtrue
\@imsart@showframetrue
}
%
\DeclareOption{aihp}{%
\def\journal@id{-aihp}%
\def\journal@name{Submitted to the Annales de l'Institut Henri Poincar\'e -
Probabilit\'es et Statistiques}%
\def\journal@url{https://imstat.org/journals-and-publications/annales-de-linstitut-henri-poincare/}%
\set@page@layout{169.475mm}{56pc}%
\@twosidetrue
\input{leqno.clo}% formula numbers at left
\@amsmath@leqnotrue
\@aihplayouttrue
\@updated@thanksreftrue
\@print@bid@doitrue
\AtBeginDocument{%
\@ifpackagewith{natbib}{authoryear}{%
\@latex@error{Only numerical citations are allowed!
Please use the option 'numbers' of 'natbib' package}{}%
}{}%
}%
}
%
\DeclareOption{bjps}{%
\def\journal@id{-bjps}%
\def\journal@name{Submitted to the Brazilian Journal of Probability and Statistics}%
\def\journal@url{https://imstat.org/journals-and-publications/brazilian-journal-of-probability-and-statistics/}%
\set@page@layout{405pt}{646pt}%
\@twosidetrue
\@historyasfootnotetrue
\@keywordsasfootnotetrue
\@bjpslayouttrue
\@updated@thanksreftrue
\@print@bid@doitrue
\AtBeginDocument{%
\@ifpackagewith{natbib}{numbers}{%
\@latex@error{Only author-year citations are allowed!
Please use the option 'authoryear' of 'natbib' package}{}%
}{}%
}%
}
%
%% Layouts:
% IMS journals AAP, AOP, AOS layout:
\newif\if@imslayout \@imslayoutfalse
%
% IMS STS journal layout:
\newif\if@stslayout \@stslayoutfalse
%
% EJS, PS, SS journals layout:
\newif\if@ejs@ps@ss@layout \@ejs@ps@ss@layoutfalse
%
% BA journal layout:
\newif\if@balayout \@balayoutfalse
%
% BS BJ journal layout:
\newif\if@bjlayout \@bjlayoutfalse
%
% AIHP journal layout:
\newif\if@aihplayout \@aihplayoutfalse
%
% BJPS journal layout:
\newif\if@bjpslayout \@bjpslayoutfalse
%
% Spacing
\DeclareOption{doublespacing}{\doublespacing}
\DeclareOption{singlespacing}{\singlespacing}
%
\def\singlespacing{\renewcommand{\baselinestretch}{}\large\normalsize}
\def\doublespacing{\renewcommand{\baselinestretch}{1.6}\large\normalsize}
%
% Do not print id line at bottom of the page:
\DeclareOption{noinfoline}{\AtBeginDocument{\let\info@line\@empty}}
\DeclareOption{infoline}{\AtBeginDocument{\let\info@line\infoline@text}}
%
% Put lines numbers in margins
\newif\ifnumberlines@ \numberlines@false
\DeclareOption{linenumbers}{\numberlines@true}
\DeclareOption{nolinenumbers}{\numberlines@false}
%
% Put frame on page layout
\newif\if@imsart@showframe \@imsart@showframefalse
\DeclareOption{showframe}{\@imsart@showframetrue}
\DeclareOption{noshowframe}{\@imsart@showframefalse}
%
% Combined options:
%
% Use this option for submission for pier review:
\DeclareOption{submission}{%
\singlespacing
\AtBeginDocument{\let\info@line\infoline@text}%
\numberlines@false
}
%
% use this option for pre-edition
\DeclareOption{preedit}{%
\doublespacing
\AtBeginDocument{%
\let\info@line\@empty
\set@preedit@page@layout
}%
\numberlines@false
}
%
% for preprint or supplement articles - removes journal info
\newif\if@imsart@preprint \@imsart@preprintfalse
\ifcsundef{imsart@preprint@settings}%
{%
\def\imsart@preprint@settings{%
\global\@imsart@preprinttrue
\let\info@line\@empty
\numberlines@false
}%
}%
{}
\DeclareOption{preprint}{%
\imsart@preprint@settings
}
%
% Initiate some info:
\def\journal@name{}
\def\journal@url{}
\def\journal@issn{}
\def\journal@id{-generic}
\def\paper@url{}
\def\info@line{}
\def\copyrightowner@text{}
\def\msc@url{https://mathscinet.ams.org/mathscinet/msc/msc2020.html}
%
% set@page@layout
%
% \set@page@layout{\textwidth}{\textheight}
\def\set@page@layout#1#2{%
\setlength\textwidth{#1}%
\@settopoint\textwidth
\setlength\textheight{#2}%
\@settopoint\textheight
%
% make side margins equal:
\setlength\@tempdima{\paperwidth}%
\addtolength\@tempdima{-\textwidth}%
\setlength\oddsidemargin{.5\@tempdima}%
\addtolength\oddsidemargin{-1in}%
\setlength\evensidemargin{\oddsidemargin}%
\@settopoint\oddsidemargin
\@settopoint\evensidemargin
%
% topmargin
\setlength\topmargin{\paperheight}%
\addtolength\topmargin{-2in}%
\addtolength\topmargin{-\headheight}%
\addtolength\topmargin{-\headsep}%
\addtolength\topmargin{-\textheight}%
\addtolength\topmargin{-\footskip}% this might be wrong!
\addtolength\topmargin{-.5\topmargin}%
\@settopoint\topmargin
%
% check if tw and th are'nt altered
\xdef\imsart@check@textwidth{\the\textwidth}%
\xdef\imsart@check@textheight{\the\textheight}%
\AtEndDocument{%
\@ifundefined{do@not@check@textbox@alter}%
{%
\ifdim\textwidth=\imsart@check@textwidth
\else
\PackageError{imsart}{\string\textwidth\space cannot be altered}\@ehc
\fi
\ifdim\textheight=\imsart@check@textheight
\else
\PackageError{imsart}{\string\textheight\space cannot be altered}\@ehc
\fi
}%
{}%
}%
}
%
\def\set@preedit@page@layout{%
\setlength\paperwidth{\textwidth}%
\addtolength\paperwidth{2in}%
\setlength\oddsidemargin{0in}%
\let\evensidemargin\oddsidemargin
\setlength\paperheight{\textheight}%
\addtolength\paperheight{2in}%
\addtolength\paperheight{\headheight}%
\addtolength\paperheight{\headsep}%
\setlength\topmargin{0in}%
}
%
% Load imsart.cnf with additional options:
\@input{\imsfmt@name.cnf}
%
% Execute options
\ExecuteOptions{}
\ProcessOptions
%
% dimensions
%
\setlength\parindent{12\p@}
\setlength\headsep{14\p@}
\setlength\footskip{14\p@}
\if@aihplayout
\setlength\footskip{24\p@}
\fi
\if@bjlayout
\setlength\parindent{10\p@}
\setlength\footskip{24\p@}
\fi
%
\setlength\smallskipamount{6\p@ \@plus 1\p@ \@minus 1\p@}
\setlength\medskipamount{12\p@ \@plus 3\p@ \@minus 3\p@}
\setlength\bigskipamount{18\p@ \@plus 3\p@ \@minus 3\p@}
%
% setpkgattr, getpkgattr, do@option@list
%
\def\sep@key@value#1=#2/?/#3{\setpkgattr{#3}{#1}{#2}}
\def\do@option@list#1#2{%
\@for\curr@option:={#2}\do{%
\expandafter\sep@key@value\curr@option/?/{#1}\relax
}%
}
\def\pkgattr@namedef{\long\gdef}
\def\pkgattr@namedef@def#1{\expandafter\pkgattr@namedef\csname #1\endcsname}
\protected\def\setpkgattr{\@ifnextchar[{\@setpkgattr}{\@@setpkgattr}}
\protected\def\getpkgattr#1#2{\csname #1@#2\endcsname}
\long\def\@setpkgattr[#1]#2#3#4{%
\pkgattr@namedef@def{#2@#3}{#4}%
}
\long\def\@@setpkgattr#1#2#3{%
\pkgattr@namedef@def{#1@#2}{#3}%
}
%
% newpseudoenvironment
% same as \newenvironment, but new environment do not have additional groups \bgroup \egroup
% (i.e. all definitions are not local
%
\let\org@begin\begin
\let\org@end\end
\def\begin#1{%
\@ifundefined{pseudo@#1}%
{\org@begin{#1}}%
{\csname pseudo@#1\endcsname[0]\relax}%
}
\def\end#1{%
\@ifundefined{pseudo@#1}%
{\org@end{#1}}%
{\csname pseudo@#1\endcsname[1]\relax}%
}
\def\newpseudoenvironment#1#2#3{%
\expandafter\gdef\csname pseudo@#1\endcsname[##1]{%
\relax
\ifcase##1\relax\def\@@next@@{#2}\or\def\@@next@@{#3}\else\let\@@next@@\relax\fi
\@@next@@
}%
}
%
% pubyear, volume, paperno
%
\def\pubyear#1{\gdef\@pubyear{(#1) }\gdef\@copyrightyear{#1 }}
\def\@pubyear{}
\def\@copyrightyear{}
%
\def\volumetitle#1{\gdef\volume@title{#1 }}
%
\def\volume#1{\gdef\@volume{Vol. #1 }}
\gdef\@volume{}
%
\def\issue#1{\gdef\@issue{No. #1 }}
\gdef\@issue{}
%
\def\paperno#1{\gdef\@paperno{Paper no. #1 }}
\gdef\@paperno{00}
%
% firstpage, lastpage, pagerange
%
\newcounter{firstpage}
\newcounter{lastpage}
%
\def\firstpage#1{%
\def\@tempa{#1}%
\ifx\@tempa\@empty
\else
\gdef\@firstpage{#1}%
\global\c@firstpage=#1%
\global\c@lastpage=#1%
\global\c@page=#1 \ignorespaces\fi
}
%
\def\lastpage#1{%
\def\@tempa{#1}%
\ifx\@tempa\@empty
\else
\gdef\@lastpage{#1}%
\global\c@lastpage=#1%
\ignorespaces
\fi
}
%
\def\pagerange@sep{--}
%
\def\set@pagerange{%
\ifnum\c@firstpage=0%
\else
\ifnum\c@firstpage=\c@lastpage
\gdef\@pagerange{\thefirstpage}%
\else
\gdef\@pagerange{\thefirstpage\pagerange@sep\thelastpage}%
\fi
\fi
}
%
\def\@pagerange{}
%
\def\pagenumbering#1{%
\gdef\thefirstpage{\csname @#1\endcsname\c@firstpage}%
\gdef\thelastpage{\csname @#1\endcsname\c@lastpage}%
\gdef\thepage{\csname @#1\endcsname\c@page}%
}
%
% hyperref redefines \pagenumbering, so we must override hyperref definition:
\let\ims@pagenumbering\pagenumbering
%
% check last page
\newbool{checklpage}
\def\check@last@page{%
\ifbool{checklpage}%
{%
\ifnum0\number\c@lastpage>0\relax
\ifnum0\number\c@lastpage=\c@page
\else
\special{mt:error Wrong lastpage!}%
\@latex@error{Wrong lastpage: set to \number\c@lastpage,
should be \the\c@page!}\@ehc
\fi
\fi
}%
{}%
}
\AtEndDocument{\check@last@page}
%
% startlocaldefs, endlocaldefs
%
\def\startlocaldefs{\makeatletter}
\def\endlocaldefs{\makeatother}
%
% thanksref, thanksmark, thankslabel, thankstext
% to be safe with hyperref we will use original LaTeX definitions:
%
\def\saferef#1{\expandafter\safe@setref\csname r@#1\endcsname\@firstoftwo{#1}}
\let\safe@setref\@setref
%
\def\safelabel#1{%
\@bsphack
\protected@write\@auxout{}%
{\string\thanksnewlabel{#1}{{\@currentlabel}{\thepage}}}%
\@esphack
}
%
\long\def\safe@footnotetext#1{\insert\footins{%
\reset@font\footnotesize
\interlinepenalty\interfootnotelinepenalty
\splittopskip\footnotesep
\splitmaxdepth \dp\strutbox \floatingpenalty \@MM
\hsize\columnwidth \@parboxrestore
\color@begingroup
\def\@thefnmark{}%
\@makefntext{%
\rule\z@\footnotesep\ignorespaces #1\@finalstrut\strutbox}%
\color@endgroup
}}%
%
\long\def\orig@footnotetext#1{\insert\footins{%
\reset@font\footnotesize
\interlinepenalty\interfootnotelinepenalty
\splittopskip\footnotesep
\splitmaxdepth \dp\strutbox \floatingpenalty \@MM
\hsize\columnwidth \@parboxrestore
\protected@edef\@currentlabel{%
\csname p@footnote\endcsname\@thefnmark
}%
\color@begingroup
\@makefntext{\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
\color@endgroup
}}%
%
\let\thanksnewlabel\newlabel
%
% we want to use various counters:
\def\usethankscounter#1{%
\@ifundefined{current@thankscounter}%
{\gdef\previous@thankscounter{#1}}%
{\xdef\previous@thankscounter{\current@thankscounter}}%
\def\current@thankscounter{#1}%
}
%
\def\restorethankscounter{\xdef\current@thankscounter{\previous@thankscounter}}
%
\newcounter{thanks}
\def\thethanks{\@fnsymbol\c@thanks}
\usethankscounter{thanks}
%
% address ref:
\newcounter{addressref}
\def\theaddressref{\arabic{addressref}}
%
\def\thanksmark@fmt#1{\@textsuperscript{\normalfont#1}}
\def\thanksref@sep{,}
%
% hooks for the hyperref:
\def\thankref@hyperlink#1{\saferef{#1thanks}}
\def\thanks@hypertarget#1{}
%
% printing the marks
\DeclareRobustCommand{\thanksref}{%
\@ifnextchar[{\@tempswatrue\@thanksref}{\@tempswafalse\@thanksref[]}%
}
\let\orig@thanksref\thanksref
%
\def\@thanksref[#1]#2{%
\if@tempswa% []
\thanksmark@fmt{#1}%
\else
\let\@tempa\@empty
\thanksmark@fmt{\@for\@tempb:=#2\do{%
\csname thanksref@hook\endcsname
\@tempa
\let\@tempa\thanksref@sep
\edef\@tempb{\expandafter\@firstofone\@tempb\@empty}%
\thankref@hyperlink{\@tempb}%
}}%
\fi
}
%
% form and print mark
\def\thanksmark{\@ifnextchar[{\@tempswatrue\@thanksmark}{\@tempswafalse\@thanksmark[]}}
%
\def\@thanksmark[#1]#2{%
\@thankslabel[#1]{#2}%
\thanksmark@fmt{\expandafter\saferef{#2thanks}\thanks@hypertarget{#2}}%
}
%
% form only mark
\def\thankslabel{\@ifnextchar[{\@tempswatrue\@thankslabel}{\@tempswafalse\@thankslabel[]}}
%
\def\@thankslabel[#1]#2{%
\if@tempswa% []
\protected@edef\@currentlabel{#1}%
\else
\refstepcounter{\current@thankscounter}%
\fi
\@ifundefined{temp@label@#2thanks}%
{\global\@namedef{temp@label@#2thanks}{}\safelabel{#2thanks}}%
{}%
}
%
% form a mark and place text in \@thanks:
\def\thankstext{\@ifnextchar[{\@tempswatrue\@thankstext}{\@tempswafalse\@thankstext[]}}
%
\def\@thankstext[#1]#2#3{%
\@thankslabel[#1]{#2}%
\protected@xdef\@thanks{\@thanks\protect\thanks@thefnmark{#2thanks}%
\protect\orig@footnotetext{\thanks@hypertarget{#2}#3}}%
}
%
\def\thanks@thefnmark#1{\begingroup\unrestored@protected@xdef\@thefnmark{\saferef{#1}}\endgroup}
%
% ST macro for creation customized enumeration system
\def\setvaluelist#1#2{%
\@tempcnta=0\relax
\@for\@curr@val:=#2\do{%
\advance\@tempcnta by 1\relax
\expandafter\protected@xdef\csname #1@item@\the\@tempcnta\endcsname{\@curr@val}%
}%
\expandafter\protected@xdef\csname #1@item@0\endcsname{\the\@tempcnta}%
}
\xdef\getitemvalue#1#2{\noexpand\csname #1@item@#2\endcsname}
%
% \ead, \printead
%
\RequirePackage{keyval}
%
\def\email@text{e-mail: }
\def\url@text{url: }
\def\fullurl@text{url: }
\def\ead@sep{;~}
\let\ead@size\relax
\def\printead@fmt#1{#1}
%
\newcounter{emailref}
\setvaluelist{emailmarks}{*,**,\textdagger,\textdaggerdbl}
\def\theemailref{\getitemvalue{emailmarks}{\the\c@emailref}}
\define@key{ead}{mark}[true]{%
\usethankscounter{emailref}%
\thankslabel{\ead@label}%
}
%
\RequirePackage{ifpdf}
\def\orcid@base{https://orcid.org/}
\def\orcid@special@pdf#1{\special{pdf: #1}}
\def\orcid@pic@pdf{%
\hbox to 9bp{%
\vrule width \z@ height 9bp%
\orcid@special@pdf{%
q 1 0 0 -1 0 9 cm q 0.65098 0.807843 0.223529 rg 9 4.5 m 9
6.984 6.984 9 4.5 9 c 2.016 9 0 6.984 0 4.5 c 0 2.016 2.016
0 4.5 0 c 6.984 0 9 2.016 9 4.5 c h 9 4.5 m f 1 1 1 rg 2.492
2.781 0.543 3.766 re f 3.828 2.781 m 5.289 2.781 l 6.684
2.781 7.297 3.777 7.297 4.664 c 7.297 5.633 6.539 6.551
5.297 6.551 c 3.828 6.551 l h 4.371 6.062 m 5.23 6.062 l
6.457 6.062 6.738 5.129 6.738 4.664 c 6.738 3.91 6.258 3.27
5.203 3.27 c 4.371 3.27 l h 4.371 6.062 m f 3.117 1.996 m
3.117 2.191 2.961 2.352 2.762 2.352 c 2.566 2.352 2.41 2.191
2.41 1.996 c 2.41 1.801 2.566 1.641 2.762 1.641 c 2.961
1.641 3.117 1.805 3.117 1.996 c h 3.117 1.996 m f Q Q
}\hss
}%
}
\def\orcid@pic@ps{%
\hbox to 9bp{%
\vrule width \z@ height 9bp%
\special{" gsave 0 0 9 9 rectclip
1 0 0 -1 0 9 6 array astore concat gsave 0.65098 0.807843 0.223529 setrgbcolor
9 4.5 moveto 9 6.984 6.984 9 4.5 9 curveto 2.016 9 0 6.984 0 4.5 curveto
0 2.016 2.016 0 4.5 0 curveto 6.984 0 9 2.016 9 4.5 curveto closepath
9 4.5 moveto fill 1 setgray 2.492 2.781 0.543 3.766 exch dup neg 3 1 roll 5 3 roll
moveto 0 rlineto 0 exch rlineto 0 rlineto closepath fill
3.828 2.781 moveto 5.289 2.781 lineto 6.684 2.781 7.297 3.777 7.297 4.664 curveto
7.297 5.633 6.539 6.551 5.297 6.551 curveto 3.828 6.551 lineto closepath
4.371 6.062 moveto 5.23 6.062 lineto 6.457 6.062 6.738 5.129 6.738 4.664 curveto
6.738 3.91 6.258 3.27 5.203 3.27 curveto 4.371 3.27 lineto closepath
4.371 6.062 moveto fill 3.117 1.996 moveto 3.117 2.191 2.961 2.352 2.762 2.352 curveto
2.566 2.352 2.41 2.191 2.41 1.996 curveto 2.41 1.801 2.566 1.641 2.762 1.641 curveto
2.961 1.641 3.117 1.805 3.117 1.996 curveto closepath
3.117 1.996 moveto fill grestore grestore
}\hss
}%
}
\ifpdf
\let\orcid@pic\orcid@pic@pdf
\else
\ifdefined\XeTeXversion
\def\orcid@special@pdf#1{\special{pdf:literal #1}}
\let\orcid@pic\orcid@pic@pdf
\else
\let\orcid@pic\orcid@pic@ps
\fi
\fi
\def\orcid#1{%
\ifcsundef{author@\the\c@author @orcid}%
{\csxdef{author@\the\c@author @orcid}{#1}}%
{%
\PackageError{imsart}{author \the\c@author\space contains more than one orcid}\@ehc
}%
}
\def\printorcid{%
\ifcsundef{author@\the\c@author @orcid}%
{}%
{%
\raisebox{-1.3\p@}[\z@][\z@]{{%
\def\null{}%
\ims@href
{\orcid@base\csname author@\the\c@author @orcid\endcsname}%
{\orcid@pic}%
}}%
}%
}
\if@updated@thanksref
\setvaluelist{emailmarks}{*,\textdagger,\textdaggerdbl,%
\textsection,\textparagraph,||,**,\textdagger\textdagger,%
\textdaggerdbl\textdaggerdbl
}
\define@key{ead}{mark}[true]{%
\csxdef{ead@\ead@label @mark}{\the\c@author}%
\ifcsundef{author@\the\c@author @ead@marks}%
{\csxdef{author@\the\c@author @ead@marks}{\ead@label}}%
{\csxappto{author@\the\c@author @ead@marks}{,\ead@label}}%
}
\if@balayout
\else
\def\theemailref{\@alph{\the\c@emailref}}
\define@key{ead}{mark}[true]{}
\def\ead@type@email@posthook{%
\csxdef{ead@\ead@label @mark}{\the\c@author}%
\ifcsundef{author@\the\c@author @ead@marks}%
{\csxdef{author@\the\c@author @ead@marks}{\ead@label}}%
{\csxappto{author@\the\c@author @ead@marks}{,\ead@label}}%
}
\let\ead@type@url@posthook\ead@type@email@posthook
\let\ead@type@fullurl@posthook\ead@type@email@posthook
\fi
\fi
%
% we are using keyval package
\define@key{ead}{email}[true]{\def\ead@type{email}}
\define@key{ead}{url}[true]{\def\@tempa{fullurl}\ifx\ead@type\@tempa\else\def\ead@type{url}\fi}
\define@key{ead}{label}{\def\ead@label{#1}}
%
\define@key{ead}{text}{%
\bgroup
\def\\{\string\break}%
\def\break{\string\break}%
\protected@edef\@currentlabel{#1}%
\safelabel{\ead@label @\ead@type text}%
\egroup
}
%
\define@key{ead}{nopdflink}[true]{%
\protected@edef\@currentlabel{nolink}%
\safelabel{\ead@label @nopdflink}%
}
%
\DeclareRobustCommand\ead[2][label= ,email]{{%
\def\ead@type{email}% default
\checkead@prefix#2://\end
\def\texttildelow{\noexpand\texttildelow}%
\def~{\string~}%
\setkeys{ead}{#1}%
\protected@edef\@currentlabel{#2}%
\safelabel{\ead@label @\ead@type}%
\csuse{ead@type@\ead@type @posthook}%
}}
%
\def\checkead@prefix#1://#2\end{\ifx.#2.\else\def\ead@type{fullurl}\fi}
%
\newif\ifnot@ead@star
\newif\if@printead@opt
%
\def\printead@presep{}
\def\printead@text{}
\define@key{printead}{text}{\def\printead@text{#1}}
\define@key{printead}{presep}{\def\printead@presep{#1}}
%
\DeclareRobustCommand{\printead}{%
\@ifstar{\not@ead@starfalse\@printead}{\not@ead@startrue\@printead}%
}
%
\def\@printead{%
\@ifnextchar[{\@printead@opttrue\@@printead}{\@printead@optfalse\@@printead[]}%
}
%
\def\@@printead[#1]#2{{%
\if@printead@opt%[]
\setkeys{printead}{#1}%
\printead@presep
\ifx\printead@text\@empty
\@printead@optfalse
\else
\def\safe@href@text{\printead@text}%
\not@ead@starfalse
\fi
\fi
\let\prev@ead@text\relax
\let\@ead@sep\relax
\let\ead@text\relax
\let\ead@prefix\relax
\def\ead@type{}%
\@tempcnta=0%
\let\sv@ims@href\ims@href
\printead@fmt{%
\@for\ead@ref:=#2\do{%
\advance\@tempcnta by 1%
\let\ims@href\sv@ims@href
\@ead@sep\let\@ead@sep\ead@sep
\@ifundefined{r@\ead@ref @nopdflink}%
{}%
{\def\ims@href##1##2{##2}}%
\@ifundefined{r@\ead@ref @email}%
{}%
{\let\ead@text\email@text\def\ead@type{email}\def\ead@prefix{mailto:}}%
\@ifundefined{r@\ead@ref @url}%
{}%
{\let\ead@text\url@text\def\ead@type{url}\def\ead@prefix{http://}}%
\@ifundefined{r@\ead@ref @fullurl}%
{}%
{\let\ead@text\fullurl@text\def\ead@type{fullurl}\def\ead@prefix{}}%
\ifx\prev@ead@text\ead@text
\let\ead@text\relax
\fi
\csname printead@hook\endcsname
\if@printead@opt
\ifnum\@tempcnta>1%
\@latex@error{Command \@backslashchar printead[]{e1} could
have only one parameter "e1"!}\@eha
\fi
\else
\@ifundefined{r@\ead@ref @\ead@type text}%
{%
\def\ims@href@text{%
\@ifundefined{r@\ead@ref thanks}%
{}%
{\thanksref{\ead@ref}}%
\saferef{\ead@ref @\ead@type}%
}%
}%
{%
\def\ims@href@text{%
\@ifundefined{r@\ead@ref thanks}%
{}%
{\thanksref{\ead@ref}}%
\saferef{\ead@ref @\ead@type text}%
}%
}%
\fi
\bgroup
\def\null{}%
\@ifundefined{ead@\ead@ref @mark}%
{}%
{%
\usethankscounter{emailref}%
\thanksmark{\ead@ref}%
\restorethankscounter
\cslet{r@\ead@ref thanks}\relax
}%
\ifnot@ead@star
\ead@text
\fi
\ead@size
\ifcsundef{r@\ead@ref @\ead@type}%
{\ims@href@text}%
{%
\ims@href{\ead@prefix\saferef{\ead@ref @\ead@type}}{\csuse{ead@\ead@type @fmt}{\ims@href@text}}%
}%
\egroup
\@ifundefined{ead@text}%
{}%
{\let\prev@ead@text\ead@text}%
}%
}%
}}
%
% \copyrightowner, \corref
\def\copyrightowner#1{\def\copyrightowner@text{#1}}
%
% for corresponding author
\def\corref#1{}
%
% normaltext, nohyphen, today
%
% normal text (justify)
\def\normaltext{%
\let\\=\@normalcr
\leftskip=\z@
\@rightskip=\z@
\rightskip=\@rightskip
\parfillskip=\@flushglue
}
%
% to switch off hyphenation
\def\nohyphen{%
\pretolerance=\@M
\tolerance=\@M
\hyphenpenalty=\@M
\exhyphenpenalty=\@M
}
%
% \@ifemptyhbox
\def\@ifnonempty#1{%
\setbox\@tempboxa\hbox{\ignorespaces #1}%
\ifdim\wd\@tempboxa>1pt #1\fi
}
%
\@ifundefined{check@head@line@length}%
{\let\check@head@line@length\@gobbletwo}%
{}
% pagestyle{imsheadings} \thispagestyle{copyright}
\if@twoside
%
\def\ps@imsheadings{%
\def\@oddfoot{\hfill\info@line}%
\let\@evenfoot\@oddfoot
\def\check@head@line@length@even{%
\runninghead@size {\pagenumber@size 000\quad}%
\evenhead@fmt{\leftmark}{\pagenumber@size\quad 000}%
}%
\def\@evenhead{%
\runninghead@size
\rlap{\pagenumber@size\thepage}\evenhead@fmt{\leftmark}%
\check@head@line@length{\check@head@line@length@even}{author}%
}%
\def\check@head@line@length@odd{%
\runninghead@size{\pagenumber@size 000\quad}%
\oddhead@fmt{\rightmark}{\pagenumber@size\quad 000}%
}%
\def\@oddhead{%
\runninghead@size
\oddhead@fmt{\rightmark}\llap{\pagenumber@size\thepage}%
\check@head@line@length{\check@head@line@length@odd}{title}%
}%
}
\else
\def\ps@imsheadings{%
\def\@oddfoot{\hfill\info@line}%
\let\@evenfoot\@oddfoot
\def\@evenhead{%
\runninghead@size\hfill\leftmark/\rightmark\hfill
\llap{\pagenumber@size\thepage}%
}%
\def\@oddhead{%
\runninghead@size\hfill\leftmark/\rightmark\hfill
\llap{\pagenumber@size\thepage}%
}%
}
\fi
%
\def\ps@copyright{%
\let\@mkboth\@gobbletwo
\def\@evenhead{\parbox[t]{\textwidth}{\copyright@size\copyright@text}}%
\let\@oddhead\@evenhead
\def\@oddfoot{\hfill\pagenumber@size\thepage\hfill\llap{\info@line}}%
\let\@evenfoot\@oddfoot
}
%
\def\evenhead@fmt#1{\hfill#1\hfill}
\def\oddhead@fmt#1{\hfill#1\hfill}
%
% url@fmt
%
\def\journalurl#1{\def\journal@url{#1}}
\def\paperurl#1{\def\paper@url{#1}}
%
% DOI
%
\def\doi#1{%
\gdef\@doi{#1}%
\gdef\doi@text{\url@fmt{DOI: }{\ttfamily}{#1}{\doi@base\@doi}}%
}
%
\let\@doi\relax
%
\def\doi@base{https://doi.org/}
\@onlypreamble\doi
%
\protected\def\relateddoi{\@ifnextchar[{\@tempswatrue\@relateddoi}{\@tempswafalse\@relateddoi[]}}
\def\@relateddoi[#1]#2#3{\protect\ims@href{\doi@base#3}{#3}}
%
\protected\def\relateddois{%
\@ifnextchar[{\@tempswatrue\@relateddois}{\@tempswafalse\@relateddois[]}%
}
\def\@relateddois[#1]#2#3{%
\@thankslabel[#1]{#2}%
\bgroup
\protected@xdef\@thanks{\@thanks\protect\thanks@thefnmark{#2thanks}%
\protect\@footnotetext{\thanks@hypertarget{#2}#3}}%
\egroup
}
%
% arXiv
%
\def\arxiv#1{%
\gdef\@arxiv{#1}%
\thankstext[]{fm@arXiv}{\protect\url@fmt{arXiv: }{}{#1}{\arxiv@base\@arxiv}}%
}%
%
\let\@arxiv\relax
\@onlypreamble\arxiv
%
% https://arxiv.org/abs/math.PR/0603300
\def\arxiv@base{https://arxiv.org/abs/}
%
% {url}{text}
\def\ims@href#1#2{#2}
\def\ims@nolinkurl#1{#1}
%
% {prefix}{font}{text}{url}
\def\url@fmt#1#2#3#4{%
\edef\@tempa{#3}%
\ifx\@tempa\@empty
\else
#1{#2\ims@href{#4}{#3}}%
\fi
}
%
% LIST ENVIRONMENTS
%
\parsep=\z@
\topsep=\smallskipamount
\partopsep=\z@
\itemsep=\z@
\labelsep=.5em
%
\def\@listI{%
\leftmargin=\leftmargini
\parsep=\z@
\topsep=\smallskipamount
\itemsep=\z@
}
%
\def\list@parindent{1pc}
%
% quotation
\let\quotation@size\footnotesize
\def\quotation@itemindent{\list@parindent}
\def\quotation@parindent{\list@parindent}
\def\quotation@leftmargin{\list@parindent}
\let\quotation@rightmargin\z@
\let\quotation@topsep\smallskipamount
%
\def\quotation{%
\list{}{%
\quotation@size
\listparindent=\quotation@parindent
\itemindent=\quotation@itemindent
\rightmargin=\quotation@rightmargin
\leftmargin=\quotation@leftmargin
\partopsep=\z@
\topsep=\quotation@topsep
\parsep=\z@
\csname quotation@hook\endcsname
}%
\item[\Q@strut]\relax
}
\def\endquotation{\endlist}
%
\def\Q@strut{\leavevmode\hbox{\vrule height9pt depth1pt width0pt}}
%
% quote
\let\quote@size\footnotesize
\def\quote@indent{\z@}
\def\quote@leftmargin{2pc}
\def\quote@rightmargin{2pc}
\let\quote@topsep\smallskipamount
%
\def\quote{%
\list{}{%
\quote@size
\listparindent=\quote@indent
\itemindent=\listparindent
\rightmargin=\quote@rightmargin
\leftmargin=\quote@leftmargin
\partopsep=\z@
\topsep=\quote@topsep
\parsep=\z@
\csname quote@hook\endcsname
}%
\item\relax
}
\def\endquote{\endlist}
%
% table, figure
%
\newdimen\tablewidth \tablewidth\textwidth
%
\def\fnum@table{\tablename~\thetable}
\setlength\belowcaptionskip{4\p@}
%
\renewenvironment{table}
{%
\let\@makecaption\@maketablecaption
\csname starttable@hook\endcsname
\tablewidth=\hsize
\@float{table}%
}
{\end@float}
\renewenvironment{table*}
{%
\let\@makecaption\@maketablecaption
\csname starttable@hook\endcsname
\tablewidth=\hsize
\@dblfloat{table}%
}
{\end@dblfloat}
%
\long\def\@maketablecaption#1#2{%
\tablecaption@shape\tablecaption@size
{\tablename@size #1}\tablename@skip #2\par
\vskip\belowcaptionskip
}
%
\setpkgattr{tablecaption}{shape}{\centering}
\setpkgattr{tablecaption}{size}{\footnotesize\itshape}
\setpkgattr{tablename}{size}{\scshape}
\setpkgattr{tablename}{skip}{\endgraf}
%
% figure : use \@makecaption:
\renewcommand\figurename{Fig}
%
\long\def\@makecaption#1#2{%
\vskip\abovecaptionskip
\figurecaption@size
\sbox\@tempboxa{{\figurename@size #1}\figurename@skip #2}%
\ifdim \wd\@tempboxa >\hsize
{\figurename@size #1}\figurename@skip #2\par
\else
\global \@minipagefalse
\hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
\fi
\vskip\belowcaptionskip
}
%
\setpkgattr{figurecaption}{size}{\footnotesize\itshape}
\setpkgattr{figurename}{size}{\scshape}
\setpkgattr{figurename}{skip}{.~}
%
\def\@floatboxreset{%
\reset@font
\@setminipage
\singlespacing
\ifcsundef{\@captype @size}%
{\footnotesize}%
{\csuse{\@captype @size}}%
\ifcsundef{\@captype @shape}%
{\centering}%
{\csuse{\@captype @shape}}%
}
%
\if@aihplayout
\setpkgattr{tablecaption}{size}{\footnotesize}
\setpkgattr{figurecaption}{size}{\footnotesize}
\fi
%
\if@bjlayout
\let\savehline\hline
\def\thline{\noalign{\vskip3pt}\savehline\noalign{\vskip3pt}}%
\setpkgattr{starttable}{hook}{\let\hline\thline}
\setpkgattr{table}{size}{\small}
\AtBeginDocument{\appto\@xhline{\noalign{\vskip2\p@}}}
\def\cline#1{\noalign{\vskip1\p@}\@cline#1\@nil\noalign{\vskip2\p@}}
\setpkgattr{algorithm}{size}{\normalsize}
\setpkgattr{algorithm}{shape}{}
\fi
%
\if@bjpslayout
\let\savehline\hline
\def\thline{\noalign{\vskip3pt}\savehline\noalign{\vskip3pt}}%
\setpkgattr{starttable}{hook}{\let\hline\thline}
\setpkgattr{tablename}{size}{\bfseries\upshape}
\setpkgattr{tablename}{skip}{\enskip}
\setpkgattr{figurename}{size}{\bfseries\upshape}
\setpkgattr{figurename}{skip}{\enskip}
\def\figurename{Figure}
\setpkgattr{tablecaption}{shape}{}
\fi
%
\if@stslayout
\let\savehline\hline
\def\thline{\noalign{\vskip3pt}\savehline\noalign{\vskip4pt}}%
\setpkgattr{starttable}{hook}{\let\hline\thline}
\fi
%
\if@ims@rotating
\AtEndOfPackage{%
\RequirePackage[counterclockwise,figuresright]{rotating}%
\renewenvironment{sidewaystable}%
{%
\let\@makecaption\@maketablecaption
\csname starttable@hook\endcsname
\tablewidth=\textheight
\@rotfloat{table}%
}%
{%
\end@rotfloat
}%
\renewenvironment{sidewaystable*}%
{%
\let\@makecaption\@maketablecaption
\csname starttable@hook\endcsname
\tablewidth=\textheight
\@rotdblfloat{table}%
}%
{%
\end@rotdblfloat
}%
\let\imsart@xrotfloat\@xrotfloat
\def\@xrotfloat#1[#2]{%
\imsart@xrotfloat#1[#2]%
\centering
}%
}
\fi
%
% tabnotes
%
\def\tabnote@table@label{table@\the\c@table @tabnote@}
\let\tabnotetext@hypertarget\@gobble
\def\tabnoteref@link#1#2{#2}
\def\@enable@tabnote@links{%
\gdef\tabnotetext@hypertarget##1{%
\hyper@anchorstart{\tabnote@table@label ##1}%
\strut\hyper@anchorend
}%
\gdef\tabnoteref@link##1##2{%
\hyperlink{\tabnote@table@label ##1}{##2}%
}%
}
\AtBeginDocument{%
\@ifpackageloaded{hyperref}{%
\ifdefined\hyper@anchorstart
\@enable@tabnote@links
\fi
}{}%
}
%
\newcounter{tabnote}
\def\thetabnote{\@alph\c@tabnote}
\def\missing@mark@qq{??}
%
\def\tabnoteref@font{\normalfont}
\def\tabnoteref@sep@output{\tabnoteref@sep}
\def\tabnoteref@sep@default{,}
\def\tabnoteref@sep@fmt{%
\ifx\tabnoteref@sep\@empty
\else
\csname fix@tabnoteref@sepspace\endcsname
\tabnoteref@sep@output
\fi
\global\let\tabnoteref@sep\tabnoteref@sep@default
}
\def\fix@tabnoteref@sepspace{\kern-\scriptspace}
%
\def\@thetbnref@fmt#1{\tabnoteref@link{#1}{\@get@tabnoteref{#1}}}
%
\def\@get@tabnoteref#1{%
\@ifundefined{tn@\tabnote@table@label #1}%
{\missing@mark@qq}%
{\csname tn@\tabnote@table@label #1\endcsname}%
}
%
\def\tabnoteref@fmt#1{#1}
%
\newcommand{\tabnoteref}[2][]{%
\bgroup
\let\tabnoteref@sep\@empty
\@for\tabnoteref@id:=#2\do{%
\tabnoteref@fmt{\hbox{\@textsuperscript{%
\tabnoteref@font
\tabnoteref@sep@fmt
\@thetbnref@fmt{\tabnoteref@id}%
}}}%
}%
\egroup
\ignorespaces
}
%
\newif\if@firsttabnotetext
\def\tabnotetext@id{}
\def\tabnotetext@sep{}
\let\tabnotetext@mark\relax
\def\tabnotetext@mark@fmt#1{\textsuperscript{#1}}
\def\tabnotetext@text@fmt#1{#1}
%
\def\tabnotetext@mark@font{\normalfont}
\def\tabnotetext@skip{\vskip\z@}
\let\tabnotetext@skip@default\tabnotetext@skip
\def\tabnotetext@indent{\noindent\parindent\sv@parindent}
\def\sv@parindent{12\p@}
%
\define@key{tabnotetext}{id}{\def\tabnotetext@id{#1}}
\define@key{tabnotetext}{mark}{\def\tabnotetext@mark{#1}}
%
\def\@auto@tabnotetext@sep@fmt{%
\if@firsttabnotetext
\else
\tabnotetext@sep@output
\fi
}
\let\auto@tabnotetext@sep@fmt\relax
\def\tabnotetext@sep@output{\tabnotetext@sep}
%
\newcommand{\tabnotetext}[2][]{%
\bgroup
\let\tabnotetext@markcounter\relax
\setkeys{tabnotetext}{#1}%
\auto@tabnotetext@sep@fmt
\tabnotetext@skip
\@write@tabnote@label
% fixing hypertarget position
\setbox\@tempboxa=\hbox to\z@{\vbox{\tabnotetext@hypertarget{\tabnotetext@id}}\hss}%
\wd\@tempboxa=\z@
\dp\@tempboxa=\z@
\ht\@tempboxa=\z@
\noindent\box\@tempboxa
\tabnotetext@indent
\ifx\tabnotetext@mark\@empty
\else
\tabnotetext@mark@fmt{{%
\tabnotetext@mark@font
\tabnotetext@mark
}}%
\fi
\tabnotetext@text@fmt{#2}%
\let\tabnotetext@mark\relax
\egroup
\@firsttabnotetextfalse
\ignorespaces
}
%
\def\legend#1{\tabnotetext[mark={}]{#1}}
%
\def\@tabnote@mark#1#2{\global\@namedef{tn@#1}{#2}}
\def\@write@tabnote@label{%
\ifx\tabnotetext@mark\relax
\global\advance\c@tabnote by\@ne
\edef\tabnotetext@mark{\thetabnote}%
\fi
\ifx\tabnotetext@mark\empty
\else
\bgroup
\protected\def\#{}%
\protected\def\dag{}%
\protected\def\ddag{}%
\immediate\write\@auxout{%
\string\@tabnote@mark{\tabnote@table@label\tabnotetext@id}{\tabnotetext@mark}%
}%
\egroup
\fi
}
%
\newtoks\tabnotestoks
\def\tabnotes@width{\tablewidth}
\def\tabnotes@leftskip{2pt}
\def\tabnotes@alignment{\raggedright}
\def\tabnotes@size{\footnotesize}
\def\pre@tabnotes@skip{\vskip 1\p@}
\def\post@tabnotes@skip{\vskip 1\p@}
%
\long\def\@tabnotes#1\end#2{%
\global\tabnotestoks={#1}%
\end{tabnotes}%
\global\tabnotestoks={}%
\ignorespaces
}
%
\newenvironment{tabnotes}[1][]%
{%
\setcounter{tabnote}{0}%
\@firsttabnotetexttrue
\def\sep{\tabnotetext@sep@output}%
\@tabnotes
}%
{%
\pre@tabnotes@skip
\tabnotes@alignment
\parbox[t]{\tabnotes@width}{%
\leftskip=\tabnotes@leftskip
\tabnotes@size
\the\tabnotestoks
}%
\setcounter{tabnote}{0}%
\post@tabnotes@skip
}
%
% FOOTNOTE
%
\def\@makefntext@parindent{\parindent=12\p@}
\renewcommand\@makefntext[1]{\@makefntext@parindent\@makefnmark #1}
%
\def\@makefnmark{\@textsuperscript{\normalfont\@thefnmark}}
%
% SECTION commands:
% from latex.ltx:
% Two improvements:
% 1. if section command is defined as "inline" the '.' will be inserted after heading;
% 2. section* will write to toc and will appear in pdf bookmarks
%
% dirty trick...
\def\@startsection#1#2#3#4#5#6{%
\if@noskipsec \leavevmode \fi
\par
\@tempskipa #4\relax
\@afterindenttrue
\ifdim \@tempskipa <\z@
\@tempskipa=-\@tempskipa \@afterindentfalse
\fi
\if@nobreak
\everypar{}%
\else
\addpenalty\@secpenalty\addvspace\@tempskipa
\fi
\@ifstar
{\def\ssection@level{#2}\@ssect{#3}{#4}{#5}{#6}}%
{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
}
%
% Trick for the hyperref:
\def\setaftersec@dot#1{%
\if@autosecdot
\setbox0=\hbox{#1}%
\ifdim\wd0>0\p@
\def\aftersec@dot{.}%
\else
\def\aftersec@dot{}%
\fi
\fi
}
\let\aftersec@dot\relax
%
% section - will add hook for the dot after section heading
\def\@sect#1#2#3#4#5#6[#7]#8{%
\ifnum #2>\c@secnumdepth
\let\@svsec\@empty
\else
\refstepcounter{#1}%
\protected@edef\@svsec{\@seccntformat{#1}\relax}%
\fi
\@tempskipa #5\relax
\ifdim \@tempskipa>\z@
\begingroup
#6{%
\@hangfrom{\hskip #3\relax\@svsec}%
\interlinepenalty \@M #8\@@par
}%
\endgroup
\csname #1mark\endcsname{#7}%
\addcontentsline{toc}{#1}{%
\ifnum #2>\c@secnumdepth
\else
\protect\numberline{\csname the#1\endcsname}%
\fi
#7%
}%
\else
\setaftersec@dot{#8}%
\def\@svsechd{%
#6{\hskip #3\relax \@svsec #8\aftersec@dot}%
\csname #1mark\endcsname{#7}%
\addcontentsline{toc}{#1}{%
\ifnum #2>\c@secnumdepth
\else
\protect\numberline{\csname the#1\endcsname}%
\fi
#7%
}%
}%
\fi
\@xsect{#5}%
}
%
% section* - will add hook for the dot after section heading and \contentsline
\def\@ssect#1#2#3#4#5{%
\@tempskipa #3\relax
\ifdim \@tempskipa>\z@
\begingroup
#4{%
\@hangfrom{\hskip #1}%
\interlinepenalty=\@M #5\@@par
}%
\endgroup
\else
\setaftersec@dot{#5}%
\def\@svsechd{#4{\hskip #1\relax #5\aftersec@dot}}%
\fi
\ifnum\ssection@level=1\phantomsection\addcontentsline{toc}{section}{#5}\fi
\@xsect{#3}%
}
%
% Block adding to contents for the next command only:
\def\nocontentsline{%
\let\@@addcontentsline\addcontentsline
\ifx\hyper@anchor\@undefined
\def\addcontentsline##1##2##3{\let\addcontentsline\@@addcontentsline}%
\else
\def\addcontentsline##1##2##3##4{\let\addcontentsline\@@addcontentsline}%
\fi
}
%
\protected\def\qq#1{%
\bgroup
\ifx.#1.\relax
\ifmmode
\mbox{\normalfont\textbf{???}}%
\else
\normalfont\textbf{???}%
\fi
\else
\ifmmode
\mbox{\normalfont\textbf{#1}}%
\else
\normalfont\textbf{#1}%
\fi
\fi
\egroup
}
%
% \phantomsection is defined in hyperref
\let\phantomsection\relax
%
% FRONTMATTER SETTINGS
%
% FRONT MATTER FORMATTING PARAMETERS
%
\setpkgattr{frontmatter}{style}{\centering}
\setpkgattr{title}{style}{\centering\def\\{\break}}
\setpkgattr{author}{style}{\centering}
\setpkgattr{address}{style}{\centering}
\setpkgattr{abstract}{style}{\normaltext}
\setpkgattr{keyword}{style}{\normaltext}
\setpkgattr{history}{style}{\normaltext}
%
% FRONT MATTER SKIPS
\setpkgattr{title}{skip}{18\p@}
\setpkgattr{atltitle}{skip}{14\p@}
\setpkgattr{authors}{skip}{12pt}
\setpkgattr{dedicated}{skip}{12\p@}
\setpkgattr{address}{skip}{6\p@ plus 1\p@ minus 1\p@}
\setpkgattr{abstract}{skip}{10\p@}
\setpkgattr{abstractname}{skip}{:\enskip}
\setpkgattr{keyword}{skip}{10\p@}
\setpkgattr{history}{skip}{10\p@}
\setpkgattr{frontmatter}{cmd}{%
\vskip20\p@ plus 3\p@ minus 3\p@
\@afterindentfalse\@afterheading
}
\setpkgattr{firstpage}{cmd}{}
%
% FRONT MATTER DIMENSIONS
\setpkgattr{abstract}{width}{.8\textwidth}
\setpkgattr{abstract}{indent}{0\p@}
\setpkgattr{keyword}{width}{.8\textwidth}
\setpkgattr{keyword}{indent}{0\p@} %
\setpkgattr{history}{width}{.8\textwidth}
%
% FRONT MATTER FONTS
\setpkgattr{dochead}{size}{\Large\bfseries}
\setpkgattr{title}{size}{\LARGE\bfseries}
\setpkgattr{author}{size}{\normalsize\bfseries}
\setpkgattr{fnms}{size}{}
\setpkgattr{snm}{size}{}
\setpkgattr{address}{size}{\footnotesize\itshape\mdseries}
\setpkgattr{dedicated}{size}{\normalsize\itshape}
\setpkgattr{ead}{size}{\upshape\ttfamily}
\setpkgattr{abstract}{size}{\footnotesize\upshape\mdseries}
\setpkgattr{abstractname}{size}{\bfseries}
\setpkgattr{keyword}{size}{\footnotesize\upshape\mdseries}
\setpkgattr{keywordname}{size}{\bfseries}
\setpkgattr{history}{size}{\footnotesize\mdseries}
\setpkgattr{copyright}{size}{\footnotesize\raggedright}
\setpkgattr{runninghead}{size}{\footnotesize\itshape}
\setpkgattr{pagenumber}{size}{\footnotesize\upshape}
\setpkgattr{thebibliography}{size}{\normalsize}
%
% FRONT MATTER CASE
\setpkgattr{dochead}{case}{}
\setpkgattr{title}{case}{}
\setpkgattr{runninghead}{case}{}
%
% TEXT, etc.
\setpkgattr{doi}{text}{\url@fmt{url: }{\ttfamily}{\paper@url}{\paper@url}}
\if@imsart@preprint
\setpkgattr{copyright}{text}{}
\else
\setpkgattr{copyright}{text}{%
\url@fmt{}{\bfseries}{\journal@name}{\journal@url}\break
\@ifundefined{volume@title}{}{\textbf{\volume@title}\break}%
\@ifnonempty{\@volume\@pubyear\@pagerange\break}%
\@ifnonempty{\journal@issn\break}%
\doi@text
}
\fi
%
\setpkgattr{infoline}{text}{%
\lower12pt%
\hbox{%
\footnotesize\ttfamily\imsfmt@name\journal@id\
ver. \imsfmt@version\ file: \jobname.tex\ date: \today
}%
}
\setpkgattr{copyright}{owner}{$\copyright$~\@copyrightyear \copyrightowner@text}
\setpkgattr{author}{prefix}{}
\setpkgattr{keyword}{postfix}{\unskip.}
%
\def\abstractname{Abstract}
%
% HISTORY
\setpkgattr{history}{prefix}{}
\setpkgattr{history}{postfix}{.}
\setpkgattr{received}{prefix}{Received~}
\setpkgattr{received}{postfix}{}
\setpkgattr{revised}{prefix}{; revised~}
\setpkgattr{revised}{postfix}{}
\setpkgattr{accepted}{prefix}{; accepted~}
\setpkgattr{accepted}{postfix}{}
\setpkgattr{pubonline}{prefix}{; published online~}
\setpkgattr{pubonline}{postfix}{}
%
% FRONTMATTER STUFF
%
% COUNTERS, ETC
\newcounter{author}
\newcounter{address}
\newdimen\sv@mathsurround
\def\author@num{0}
%
% RUNNING HEAD
\def\runtitle#1{\gdef\@runtitle{\runninghead@case{#1}}}
\def\@runtitle{}
\def\runauthor#1{{\def\etal{et al.}\gdef\@runauthor{\runninghead@case{#1}}}}
\def\@runauthor{}
%
\newdimen\sv@parindent
\sv@parindent\parindent
%
\newbox\fm@box
\newdimen\fm@size
%
\let\hy@frontmatter\relax
\let\hy@endfrontmatter\relax
\let\tableofcontents@fmt\relax
%
% FRONTMATTER
%
\def\frontmatter{%
\global\c@author=\z@
\global\c@address=\z@
\renewcommand\thefootnote{\@fnsymbol\c@footnote}%
%
\if@changetoc
\let\old@tableofcontents\tableofcontents
\def\tableofcontents{\let\tableofcontents@fmt\old@tableofcontents}%
\fi
%
\def\pdftitle##1{\write@pdfinfo{\user@hy@title}{##1}}%
\def\pdfauthor##1{\write@pdfinfo{\user@hy@author}{##1}}%
\def\pdfsubject##1{\write@pdfinfo{\user@hy@subject}{##1}}%
\def\pdfkeywords##1{\write@pdfinfo{\user@hy@keywords}{##1}}%
%
\if@supertoc
\addtocontents{toc}{\protect\contentsline{begintocitem}{}{}{}}%
\addtocontents{toc}{\protect\contentsline{jobname}{\jobname}{}{}}%
\ifx\@doi\relax \else\addtocontents{toc}{\protect\contentsline{doi}{\@doi}{}{}}\fi
\ifx\@arxiv\relax
\else
\addtocontents{toc}{\protect\contentsline{arxiv}{\@arxiv}{}{}}%
\fi
\fi
%
\sv@mathsurround=\mathsurround \m@th
\parindent=\z@
\hy@frontmatter
\global\let\maketitle\relax
\open@fm \ignorespaces
}
%
% ENDFRONTMATTER
%
\def\endfrontmatter{%
\global\@topnum=\z@
\set@pagerange
\csname form@runauthors\endcsname
\markboth{\@runauthor}{\@runtitle}%
\thispagestyle{copyright}%
%
\put@fmt@data
%
\close@fm
%
\firstpage@cmd
%
\write@pdfinfo{\hy@author}{\the\authors@list}%
\write@pdfinfo{\hy@subject}{\journal@name\@copyrightyear\@volume\@issue\@pagerange}%
\write@pdfinfo{\hy@keywords}{\the\keywords@list}%
%
\if@supertoc
\addtocontents{toc}{\protect\contentsline{author}{\the\authors@list}{\thepage}{}}%
\addtocontents{toc}{\protect\contentsline{endtocitem}{}{}{}}%
\fi
%
\write\@mainaux{\string\gdef\string\author@num{\the\c@author}}%
\hy@endfrontmatter
\global\mathsurround\sv@mathsurround
\global\c@footnote=\z@
\global\let\@thanks\@empty
\let\title\relax
\let\author\relax
\let\address\relax
\let\frontmatter\relax
\let\endfrontmatter\relax
\let\@maketitle\relax
\let\@@maketitle\relax
\aftergroup\frontmatter@cmd
}
%
\def\put@fmt@data{%
\copyright@fmt
\@thanks
\abstract@fmt
\keyword@fmt
\history@fmt
\tableofcontents@fmt
}
%
\newdimen\t@xtheight
\def\init@settings{%
\splittopskip=\topskip
\splitmaxdepth=\maxdepth
\t@xtheight=\textheight
\advance\t@xtheight by -\splittopskip
}
%
\def\no@harm{%
\let\thanks=\@gobble
\let\thanksref=\@gobble
\def\orcid##1##{\@gobble}%
\let~\space
\def\ead[##1]##2{}%
\let\\=\@empty
\def\protect{\noexpand\protect\noexpand}%
}
%
\def\open@fm{%
\global\setbox\fm@box=\vbox\bgroup
\hsize=\textwidth
\frontmatter@style
}
%
\def\close@fm{%
\par
\egroup
\fm@size=\dp\fm@box
\advance\fm@size by \ht\fm@box
\@whiledim\fm@size>\t@xtheight \do{%
\global\setbox\@tempboxa=\vsplit\fm@box to \t@xtheight
\unvbox\@tempboxa
\fm@size=\dp\fm@box
\advance\fm@size by \ht\fm@box
}%
\if@twocolumn
\emergencystretch=1pc \twocolumn[\unvbox\fm@box]
\else
\unvbox\fm@box
\fi
}
%
% DOCHEAD
\def\dochead#1{%
\bgroup
\dochead@size
\leavevmode\vphantom{\strut}\dochead@case{#1}\par
\egroup
\setpkgattr{title}{skip}{8\p@}%
}
%
% TITLE
\def\title@endhook{}
\def\title@correctionnote#1{%
\thanksref{CoRreCtIoNnOtE}%
\g@addto@macro\title@endhook{\thankstext{CoRreCtIoNnOtE}{#1}}%
}
\def\title@supportinfo#1{%
\thanksref{SuPpOrTiNfO}%
\g@addto@macro\title@endhook{\thankstext{SuPpOrTiNfO}{#1}}%
}
\let\write@title@metadata\@gobble
\def\title#1{%
\vglue\title@skip
% check if we are in {frontmatter}
\def\reserved@a{frontmatter}%
\ifx\reserved@a\@currenvir \else \hy@frontmatter\fi
\bgroup
\no@harm
\let\correctionnote\@gobble
\let\support\@gobble
\xdef\@argi{#1}%
\xdef\@title{#1}%
\egroup
\write@pdfinfo{\hy@title}{\@argi}%
\write@title@metadata{#1}%
\if@supertoc
\addtocontents{toc}{\protect\contentsline{title}{\@argi}{\thepage}{}}%
\fi
\bgroup
\let\correctionnote\title@correctionnote
\let\support\title@supportinfo
\title@style\title@size\title@case{#1}\par
\egroup
\title@endhook
}
%
% ATLTITLE
%
\def\atltitle#1{%
\vglue\atltitle@skip
\bgroup
\title@size #1\par
\egroup
}
%
% AUTHOR
%
% AUG - author block
\def\smart@par{\ifhmode\par\fi}
\newenvironment{aug}{}{\smart@par}
%
\def\and{\unskip~and~}
%
\def\author@sep@by@number#1{}
\def\author{\@ifnextchar[{\author@fmt}{\author@fmt[]}}
%
\def\author@fmt[#1]#2{%
\stepcounter{author}%
\author@fmt@init
\let\author@fmt@init\relax
\bgroup
\def\degs##1{##1}%
\def\fnms##1{##1}%
\def\inits##1{}%
\def\snm##1{##1}%
\def\roles##1{##1}%
\@tempcnta=\author@num\relax
\ifnum\c@author=\@tempcnta
\def\author@sep{ and }%
\else
\def\author@sep{, }%
\fi
\ifnum\c@author=1%
\addto@authors@list{#2}%
\else
\addto@authors@list{\author@sep #2}%
\fi
\def\inits##1{{\inits@size{##1}}}%
\def\fnms##1{{\fnms@size{##1}}}%
\def\snm##1{\snm@size{##1}}%
\if@updated@thanksref
\def\thanksref##1{%
\edef\author@direct@thanksref{##1}%
\def\thanksref{\@latex@error{only one \string\thanksref\space
is allowed inside \string\author}{??}}%
}%
\fi
\noindent#2%
\if@updated@thanksref
\ifx.#1.%
\let\tmp@author@thanksrefs\@empty
\edef\tmp@sep{}%
\else
\appto\tmp@author@thanksrefs{#1}%
\edef\tmp@sep{,}%
\fi
\@ifundefined{author@direct@thanksref}%
{}%
{%
\eappto\tmp@author@thanksrefs{\tmp@sep\author@direct@thanksref}%
\edef\tmp@sep{,}%
}%
\@ifundefined{author@\the\c@author @ead@marks}%
{}%
{%
\eappto\tmp@author@thanksrefs
{\tmp@sep\csname author@\the\c@author @ead@marks\endcsname}%
}%
\ifx\tmp@author@thanksrefs\@empty
\else
\expandafter\orig@thanksref\expandafter{\tmp@author@thanksrefs}%
\fi
\else
\if@stslayout
\else
\thanksref{#1}%
\fi
\fi
\egroup
\printorcid
\author@sep@by@number{\the\c@author}%
}
%
\def\author@fmt@init{%
\vskip\authors@skip
\noindent\leavevmode\author@style\author@size\author@prefix
}
%
\let\author@fmt@init@def\author@fmt@init
%
% DEDICATED
\def\dedicated#1{%
\vskip\dedicated@skip
\bgroup
\dedicated@size #1\par
\egroup
}
%
% ADDRESS
\def\address{\@ifnextchar[{\address@fmt}{\address@fmt[]}}
%
\def\address@fmt[#1]#2{%
\smart@par
\let\author@fmt@init\author@fmt@init@def
\vskip\address@skip
\bgroup
\address@style\address@size\leavevmode
\ifx.#1.%
\else
\usethankscounter{addressref}%
\thanksmark{#1}%
\restorethankscounter
\fi
#2\par
\egroup
}
%
% CONTRIBUTOR
% write as index entry:
% \contributor{Author, F.}{University}
% \indexentry{Author, F., \textit{Some University}}{}
%
\let\contributor\@gobbletwo
\if@supertoc
\def\contributor#1#2{%
\addtocontents{idx}{\protect\indexentry{#1, \protect\textit{#2}}{}}%
}
\fi
%
% COPYRIGHTOWNER
%
\def\copyright@fmt{%
\@ifundefined{\copyrightowner@text}{}{\safe@footnotetext{\copyright@owner}}%
}
%
% ABSTRACT
%
\newbox\abstract@box
%
\define@key{abstract}{language}{\set@loc@hyphenation{#1}\set@loc@abstractname{#1}}
%
\gdef\abstract{\@ifnextchar[{\@abstract}{\@abstract[]}}
%
\def\@abstract[#1]{%
\setkeys{abstract}{#1}%
\global\setbox\abstract@box=\vbox\bgroup
\ifvoid\abstract@box
\else
\unvbox\abstract@box
\vskip\abstract@skip
\fi
\@tempdima=\textwidth
\advance\@tempdima by -\abstract@width
\divide\@tempdima by 2%
\abstract@style
\leftskip=\@tempdima
\rightskip=\@tempdima
\abstract@size
\parindent=\sv@parindent
\noindent\hskip\abstract@indent
{\abstractname@size\abstractname\abstractname@skip}\ignorespaces
}
%
\def\endabstract{\par\egroup}
%
\def\abstract@fmt{%
\ifvoid\abstract@box
\else
\vskip\abstract@skip
\unvbox\abstract@box
\fi
}
%
\def\set@loc@hyphenation#1{%
\@ifundefined{l@#1}%
{}%
{\expandafter\language\csname l@#1\endcsname}%
}
%
\def\set@loc@abstractname#1{%
\def\abstractname@english{Abstract}%
\def\abstractname@german{Zusammenfassung}%
\def\abstractname@french{R\'esum\'e}%
\def\abstractname@spanish{Resumen.}%
\@ifundefined{abstractname@#1}%
{\@latex@error{Language '#1` is not supported!}{}}%
{\edef\abstractname{\csname abstractname@#1\endcsname}}%
}
%
% HISTORY: received, revised, accepted
%
\def\history@exist{0}
%
\def\received#1{\def\@tempa{#1}\ifx\@tempa\@empty\else\gdef\@received{#1}\gdef\history@exist{1}\fi}
\def\@received{\@nil}
\def\revised#1{\def\@tempa{#1}\ifx\@tempa\@empty\else\gdef\@revised{#1}\gdef\history@exist{1}\fi}
\def\@revised{\@nil}
\def\accepted#1{\def\@tempa{#1}\ifx\@tempa\@empty\else\gdef\@accepted{#1}\gdef\history@exist{1}\fi}
\def\@accepted{\@nil}
\def\pubonline#1{\def\@tempa{#1}\ifx\@tempa\@empty\else\gdef\@pubonline{#1}\gdef\history@exist{1}\fi}
\def\@pubonline{\@nil}
%
\def\empty@data{\@nil}
%
\def\history@fmt{%
\ifcase\history@exist
\else
\bgroup
\nobreak
\vskip\history@skip
\nobreak
\history@style
\history@size
\@tempdima=\textwidth
\advance\@tempdima by -\history@width
\divide\@tempdima by 2%
\leftskip=\@tempdima
\rightskip=\@tempdima
\leavevmode
\history@prefix
\ifx\@received\empty@data
\else
\received@prefix\@received \received@postfix
\fi
\ifx\@revised\empty@data
\else
\revised@prefix\@revised \revised@postfix
\fi
\ifx\@accepted\empty@data
\else
\accepted@prefix\@accepted \accepted@postfix
\fi
\ifx\@pubonline\empty@data
\else
\pubonline@prefix\@pubonline \pubonline@postfix
\fi
\history@postfix\par
\egroup
\gdef\history@exist{0}%
\fi
}
%
\def\sday#1{#1}
\def\smonth#1{%
\@ifundefined{month@item@#1}%
{\@latex@error{there is no month number #1!}{??}}%
{\getitemvalue{month}{#1}}%
}%
\def\syear#1{#1}
\setvaluelist{month}{January,February,March,April,May,June,%
July,August,September,October,November,December}
%
% KEYWORDS
%
\newbox\keyword@box
\newdimen\pre@kwd@depth
%
\setpkgattr{keyword}{AMS}{AMS 2000 subject classifications:}
\setpkgattr{keyword}{MSC}{\ims@href{\msc@url}{MSC2020 subject classifications}:}
\setpkgattr{keyword}{MSC2010}{MSC 2010 subject classifications:}
\setpkgattr{keyword}{MSC2020}{\ims@href{\msc@url}{MSC2020 subject classifications}:}
%
\setpkgattr{keyword}{KWD}{Keywords and phrases:}
% key=class
\setpkgattr[default]{keyword}{class}{KWD}
%
% \keyword@class -> KWD
% \keyword@KWD -> AMS 2000...
%
\gdef\keyword{\@ifnextchar[{\@keyword}{\@keyword[class=KWD]}}
%
\gdef\@keyword[#1]{%
\do@option@list{keyword}{#1}%
\def\keyword@name{\csname keyword@\keyword@class\endcsname}%
\let\kwd@sep\relax
%
\global\setbox\keyword@box=\vbox\bgroup
\ifvoid\keyword@box
\else
\unvbox\keyword@box
\vskip-\pre@kwd@depth\vtop to\pre@kwd@depth{}%
\fi
\@tempdima=\textwidth
\advance\@tempdima by -\keyword@width
\divide\@tempdima by 2%
\keyword@style
\leftskip=\@tempdima
\rightskip=\@tempdima
\keyword@size
\parindent=\sv@parindent
\noindent\hskip\keyword@indent
{\keywordname@size\keyword@name}\space\hskip.1pt%
}
%
\def\endkeyword{\keyword@postfix\par\global\pre@kwd@depth\prevdepth\egroup}
%
\def\keyword@fmt{%
\ifvoid\keyword@box
\else
\vskip\keyword@skip
\unvbox\keyword@box
\fi
}
%
% \kwd[; ]{foo}
\def\sep{\unskip\string, }
\newif\if@firstkeywordinlist \@firstkeywordinlisttrue
%
\DeclareRobustCommand*\kwd{\@ifnextchar[\@kwd{\@kwd[\kwd@sep]}}
\def\@kwd[#1]#2{%
\unskip#1{#2}%
\if@firstkeywordinlist
\addto@keywords@list{#2}%
\@firstkeywordinlistfalse
\else
\addto@keywords@list{, #2}%
\fi
\let\kwd@sep\sep
}
%
% \maketitle
% if \frontmatter is not used, we will redefine \maketitle
%
\def\local@maketitle{%
\global\@topnum=\z@
\set@pagerange
\markboth{\@runauthor}{\@runtitle}%
\thispagestyle{copyright}%
%
\put@fmt@data
%
\write@pdfinfo{\hy@author}{\the\authors@list}%
\write@pdfinfo{\hy@keywords}{\the\keywords@list}%
\hy@endfrontmatter
\global\mathsurround=\sv@mathsurround
\global\c@footnote=\z@
\global\let\@thanks\@empty
\let\title\relax
\let\author\relax
\let\address\relax
\let\frontmatter\relax
\let\endfrontmatter\relax
\let\@maketitle\relax
\let\@@maketitle\relax
\normalfont\normaltext
\parindent=\sv@parindent
\frontmatter@cmd
}
%
\AtBeginDocument{\let\maketitle\local@maketitle}
%
% PROCESS LAYOUT OPTIONS
%
% Put keywords as footnote
\if@keywordsasfootnote
\newtoks\keyword@toks
\newpseudoenvironment{keyword}{\gdef\keyword@exist{1}\get@keyword@toks}{}
\def\get@keyword@toks#1\end{%
\keyword@toks=\expandafter{\the\keyword@toks\keyword#1\endkeyword}%
\@gobble
}
\def\keyword@exist{0}
\gdef\keyword#1{\@ifnextchar[{\@keyword}{\@keyword[class=KWD]}}
\gdef\@keyword[#1]{%
\do@option@list{keyword}{#1}%
\def\keyword@name{\csname keyword@\keyword@class\endcsname}%
\let\kwd@sep\relax
\keyword@style
\keyword@size
\parindent=\sv@parindent
\pre@kwd
\hbox{\keywordname@size\keyword@name}\space\hskip.1pt%
}%
\gdef\endkeyword{\keyword@postfix\gdef\pre@kwd{\par\leavevmode}}
\let\pre@kwd\relax
\def\keyword@fmt{\ifcase\keyword@exist\else\safe@footnotetext{\the\keyword@toks}\fi}
\fi
%
% Put history as footnote
\if@historyasfootnote
%
\def\history@fmt{%
\ifcase\history@exist
\else
\safe@footnotetext{%
\nobreak
\history@style
\history@size
\leavevmode
\history@prefix
\ifx\@received\empty@data
\else
\received@prefix\@received \received@postfix
\fi
\ifx\@revised\empty@data
\else
\revised@prefix\@revised \revised@postfix
\fi
\ifx\@accepted\empty@data
\else
\accepted@prefix\@accepted \accepted@postfix
\fi
\ifx\@pubonline\empty@data
\else
\pubonline@prefix\@pubonline \pubonline@postfix
\fi
\history@postfix
}%
\fi
}
\fi
%
% Put address as footnote
\if@addressasfootnote
\def\address@fmt[#1]#2{%
\ifx.#1.%
\safe@footnotetext{#2}%
\else
\usethankscounter{addressref}%
\bgroup
\def\\{\hfill\break}%
\thankstext{#1}{#2}%
\egroup
\restorethankscounter
\fi
}
\fi
%
% Put address at end
\if@addressatend
%
\def\address{\@ifnextchar[{\address@fmt}{\address@fmt[default]}}
%
% \def\address@ref@A=1
% \newtoks\@address@1
% \@address@1={#2}
%
\def\address@fmt[#1]#2{%
\stepcounter{address}%
\expandafter\protected@xdef\csname address@ref@#1\endcsname{\the\c@address}%
\expandafter\newtoks\csname @address@\the\c@address\endcsname
\expandafter\expandafter\expandafter\global\csname @address@\the\c@address\endcsname={#2}}
%
\let\safe@phantomsection\@gobble
%
% print address by number: \printaddressnum{1}
\def\printaddressnum#1{%
\xdef\@tmp{#1}%
\bgroup
\@ifundefined{@address@#1}%
{\@latex@error{Error: there are no address with number '#1'!}{??}}%
{%
\address@size
\ifnum#1=1%
\safe@phantomsection{\addcontentsline{toc}{section}{Author's addresses}}%
\fi
\begin{tabular}[t]{@{}l@{}}%
\expandafter\expandafter\expandafter\the\csname @address@\@tmp\endcsname
\end{tabular}%
}%
\egroup
}
%
% print all addresses:
\def\address@par{\par\vskip3pt}
%
\def\printaddresses{%
\vskip\address@skip
\def\last@right@glue{\par}%
\ifodd\c@address
\def\last@right@glue{\hfill\hbox{}\address@par}%
\fi
\ifnum\c@address=1%
\def\last@right@glue{\address@par}%
\fi
\@tempcnta=0%
\bgroup
\parindent=\z@
\@whilenum{\@tempcnta<\c@address}\do{%
\advance\@tempcnta by \@ne
\ifodd\@tempcnta
\def\left@glue{}%
\def\right@glue{}% odd
\else
\def\left@glue{\hfill}%
\def\right@glue{\address@par}% even
\fi
\ifnum\@tempcnta=\c@address
\let\left@glue\hfill
\let\right@glue\last@right@glue% last member
\fi
\left@glue\expandafter\printaddressnum{\the\@tempcnta}\right@glue
}%
\egroup
}
%
% invoke \printaddresses at end of document:
\let\old@enddocument\enddocument
\def\enddocument{\printaddresses\old@enddocument}
\fi
%
% settings from in-house packages
\def\declaremathsizes@as@in@mathtime{%
\DeclareMathSizes{5}{6}{6}{6}%
\DeclareMathSizes{6}{6}{6}{6}%
\DeclareMathSizes{7}{6.8}{6}{6}%
\DeclareMathSizes{8}{8}{6.8}{6}%
\DeclareMathSizes{9}{9}{7.6}{6}%
\DeclareMathSizes{10}{10}{7.6}{6}%
\DeclareMathSizes{10.95}{10.95}{7.6}{6}%
\DeclareMathSizes{12}{12}{9}{7}%
\DeclareMathSizes{14.4}{14.4}{10}{8}%
\DeclareMathSizes{17.28}{17.28}{12}{9}%
\DeclareMathSizes{20.74}{20.74}{14.4}{10}%
\DeclareMathSizes{24.88}{24.88}{17.28}{12}%
}
%
\def\ims@common@float@settings{%
% float parameters:
\setlength\floatsep{18\p@ \@plus 6\p@ \@minus 2\p@}%
\setlength\textfloatsep{18\p@ \@plus 6\p@ \@minus 2\p@}%
\setlength\intextsep{18\p@ \@plus 6\p@ \@minus 2\p@}%
\setlength\dblfloatsep{18\p@ \@plus 6\p@ \@minus 2\p@}%
\setlength\dbltextfloatsep{24\p@ \@plus 6\p@ \@minus 2\p@}%
% For floats on a separate float page or column:
\setlength\@fptop{0\p@ \@plus 1fil}%
\setlength\@fpsep{8\p@ \@plus 1000fil}%
\setlength\@fpbot{0\p@ \@plus 1fil}%
\setlength\@dblfptop{0\p@ \@plus 1fil}%
\setlength\@dblfpsep{8\p@ \@plus 1000fil}%
\setlength\@dblfpbot{0\p@ \@plus 1fil}%
% float counters:
\setcounter{topnumber}{5}%
\renewcommand\topfraction{.99}%
\setcounter{bottomnumber}{5}%
\renewcommand\bottomfraction{.99}%
\setcounter{totalnumber}{10}%
\renewcommand\textfraction{.05}%
\renewcommand\floatpagefraction{.9}%
\setcounter{dbltopnumber}{5}%
\renewcommand\dbltopfraction{.99}%
\renewcommand\dblfloatpagefraction{.8}%
}
%
\def\set@amsgen@frenchspacing{%
\def\frenchspacing{\sfcode`\.1006\sfcode`\?1005\sfcode`\!1004%
\sfcode`\:1003\sfcode`\;1002\sfcode`\,1001 }%
}
% Set up parameters for the EJS, PS, SS layout:
\if@ejs@ps@ss@layout
\RequirePackage{lmodern}
\usepackage[T1]{fontenc}
\AtEndOfPackage{%
\ifcsundef{do@not@scale@lmex}%
{% make lmex10 scalable
\DeclareFontFamily{OMX}{lmex}{}%
\DeclareFontShape{OMX}{lmex}{m}{n}{%
<-> lmex10
}{}%
}%
{}%
}%
\fi
%
% Set up parameters for the BA journal layout:
\if@balayout
\RequirePackage{lmodern}
\usepackage[T1]{fontenc}
% make lmex10 scalable
\DeclareFontFamily{OMX}{lmex}{}
\DeclareFontShape{OMX}{lmex}{m}{n}{%
<-> lmex10
}{}
%
\setlength{\parskip}{0.5\baselineskip}
\setlength{\parindent}{15pt}
\setlength{\paperwidth}{8.5in}
\setlength{\paperheight}{11in}
\set@page@layout{5.25in}{7.6in}
\advance\topmargin by-7\p@
%
\setpkgattr{title}{size}{\sffamily\LARGE\bfseries}
\setpkgattr{title}{skip}{-16pt}
\setpkgattr{author}{size}{\normalsize}
\setpkgattr{authors}{skip}{16pt}
\setpkgattr{abstractname}{size}{\sffamily\bfseries}
\setpkgattr{keywordname}{size}{\sffamily\bfseries}
\setpkgattr{abstractname}{skip}{.\enskip\enskip}
\setpkgattr{keyword}{KWD}{Keywords:}
%
\setpkgattr{abstract}{width}{115mm}
\setpkgattr{keyword}{width}{115mm}
\setpkgattr{keyword}{style}{}
\setpkgattr{history}{width}{115mm}
%
\setpkgattr{abstract}{size}{\small\upshape\mdseries}
\setpkgattr{keyword}{size}{\small\upshape\mdseries\rightskip=\the\rightskip plus1.0fil}
%
\setpkgattr{ead}{size}{\upshape}
\setpkgattr{abstract}{skip}{22\p@}
\setpkgattr{keyword}{skip}{8.5\p@}
%
\setpkgattr{frontmatter}{cmd}{%
\vskip10\p@ plus 3\p@ minus 3\p@
\@afterindentfalse\@afterheading
}
%
\setpkgattr{copyright}{size}{\small\raggedright}
%
\gdef\volume#1{\gdef\@volume{#1}}%
\gdef\issue#1{\gdef\@issue{#1}}%
%
\def\doi#1{%
\gdef\@doi{#1}%
\gdef\doi@text{\url@fmt{DOI: }{\upshape}{#1}{\doi@base\@doi}}%
}
%
\def\address@fmt[#1]#2{%
\ifx.#1.%
\safe@footnotetext{#2}%
\else
\bgroup
\def\\{\hfill\break}%
\thankstext{#1}{#2}%
\egroup
\fi
}
%
\def\ps@copyright{%
\let\@mkboth\@gobbletwo
\def\@evenhead{\parbox[t]{\textwidth}{\copyright@size\issuedata@text}}%
\let\@oddhead\@evenhead
\def\@oddfoot{%
\rlap{\parbox[t]{\textwidth}{\copyright@size\copyright@text}}%
\hfill\llap{\vbox to0pc{\hbox{\info@line\hss}}}%
}%
\let\@evenfoot\@oddfoot
}
%
\setpkgattr{infoline}{text}{\lower36pt\hbox{\footnotesize\ttfamily\imsfmt@name\journal@id\
ver. \imsfmt@version\ file: \jobname.tex\ date: \today}}
%
\def\ps@imsheadings{%
\def\@oddfoot{\hfill\info@line}%
\let\@evenfoot\@oddfoot
\def\check@head@line@length@even{%
\runninghead@size{\pagenumber@size 000\quad}\hfill {\runningtitle@size \rightmark}%
}%
\def\@evenhead{%
\runninghead@size{\pagenumber@size\thepage}\hfill {\runningtitle@size \rightmark}%
\check@head@line@length{\check@head@line@length@even}{title}%
}%
\def\check@head@line@length@odd{%
\runninghead@size{\runningauthor@size \leftmark} \hfill {\pagenumber@size\quad 000}%
}%
\def\@oddhead{%
\runninghead@size{\runningauthor@size \leftmark} \hfill {\pagenumber@size\thepage}%
\check@head@line@length{\check@head@line@length@odd}{author}%
}%
}
%
\setpkgattr{runninghead}{size}{\normalsize}
\setpkgattr{pagenumber}{size}{\upshape}
\setpkgattr{runningtitle}{size}{\bfseries\slshape}
\setpkgattr{runningauthor}{size}{\slshape}
%
\def\pubonline#1{}%
%
\AtBeginDocument{%
\setpkgattr{section}{numbersep}{\enskip}%
\setpkgattr{subsection}{numbersep}{\enskip}%
\setpkgattr{subsubsection}{numbersep}{}%
\setpkgattr{paragraph}{numbersep}{}%
\setpkgattr{subparagraph}{numbersep}{}%
\renewcommand\section{%
\@startsection
{section}%
{1}%
{\z@}%
{-\baselineskip}%
{.25\baselineskip}%
{\Large\sffamily\bfseries\mathversion{bold}\raggedright}%
}%
\renewcommand\subsection{%
\@startsection
{subsection}%
{2}%
{\z@}%
{-\baselineskip}%
{.25\baselineskip}%
{\large\sffamily\bfseries\mathversion{bold}\raggedright}%
}%
\renewcommand\subsubsection{%
\@startsection
{subsubsection}%
{3}%
{\z@}%
{-\baselineskip}%
{.25\baselineskip}%
{\sffamily\bfseries\mathversion{bold}\raggedright}%
}%
\setcounter{secnumdepth}{2}%
\renewcommand\paragraph{%
\@startsection
{paragraph}%
{4}%
{\z@}%
{\medskipamount}%
{-1em}%
{\sffamily\bfseries}%
}%
\renewcommand\subparagraph{%
\@startsection
{subparagraph}%
{5}%
{\z@}%
{\medskipamount}%
{-1em}%
{\sffamily\itshape}%
}%
% Supplement
\def\articletitle{\csuse{@title}}%
\let\specialsection\section
\@namedef{specialsection*}{\section*}%
\def\stitle@fmt#1{#1}%
% Supplement case for BA:
% macroses: \stitle, \slink[doi], \sdatatype, \sfilename.
\def\stitlepost#1{\gdef\@stitlepost{#1}}%
\stitlepost{\space}%
\def\slink@doi@fmt{%
\url@fmt{DOI: }{}{\slink@doi}{\doi@base\slink@doi}%
\@ifundefined{supp@label}%
{}%
{%
\expandafter\xdef\csname\supp@label @doi\endcsname{\slink@doi}%
\expandafter\xdef\csname\supp@label @url\endcsname{\doi@base\slink@doi}%
}%
}%
\def\endsupplement{%
\noindent
\@ifundefined{@stitle}{}{\stitle@fmt{\@stitle}}%
\@stitlepost
\ifnum\slink@data@exists>\z@(\fi
\@ifundefined{slink@doi}{}{\slink@doi@fmt}%
\@ifundefined{slink@url}{}{\slink@url@fmt}%
\@ifundefined{@sdatatype}{}{; \@sdatatype}%
\ifnum\slink@data@exists>\z@)\else\unskip\fi.
\@ifundefined{@sdescription}{}{\@sdescription}%
\par
}%
\setpkgattr{email}{text}{}%
%
\appto\set@natbib{\setlength\bibsep{6pt}}%
%
\csdef{copyrightowner@text}{International Society for Bayesian Analysis}%
\def\journal@issn{$\copyright$~\ims@href{https://www.imstat.org}{\copyrightowner@text},
\@copyrightyear}%
\if@imsart@preprint
\setpkgattr{issuedata}{text}{}%
\setpkgattr{copyright}{text}{}%
\else
\setpkgattr{issuedata}{text}{%
\ims@href{\journal@url}{\journal@name}%
\space\@pubyear
\hskip5pc%
\@ifnonempty{\textbf{\@volume}, Number \@issue, pp. \@pagerange}%
}%
\setpkgattr{copyright}{text}{\copyright@owner \hfill \doi@text}%
\fi
\setpkgattr{copyright}{owner}{$\copyright$~\@copyrightyear \copyrightowner@text}%
}
\def\@floatboxreset{%
\reset@font
\@setminipage
\singlespacing
\centering
}
% Table
\def\fnum@table{\tablename~\thetable:}
\setpkgattr{tablecaption}{shape}{}
\setpkgattr{tablecaption}{size}{\normalsize}
\setpkgattr{tablename}{size}{}
\setpkgattr{tablename}{skip}{\space}
%
\long\def\@maketablecaption#1#2{%
\vskip\belowcaptionskip
\tablecaption@shape\tablecaption@size
\sbox\@tempboxa{{\tablename@size #1}\tablename@skip #2}%
\ifdim\wd\@tempboxa>\hsize
{\tablename@size #1}\tablename@skip #2\par
\else
\hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
\fi
}
% Figure
\setpkgattr{figurename}{size}{}
\setpkgattr{figurecaption}{size}{\normalsize}
\setpkgattr{figurename}{skip}{:\space}
\def\figurename{Figure}
%
\AtBeginDocument{%
\@ifpackageloaded{amsmath}{\allowdisplaybreaks}{}%
}
\ifcsvoid{bibdir}{\gdef\bibdir{}}{}
\def\bibliography#1{%
\if@filesw
\immediate\write\@auxout{\string\bibdata{\bibdir#1}}%
\fi
\@input@{\jobname.bbl}%
}
\def\bibliographystyle#1{%
\ifx\@begindocumenthook\@undefined
\else
\expandafter\AtBeginDocument
\fi
{%
\if@filesw
\immediate\write\@auxout{\string\bibstyle{\bibdir#1}}%
\fi
}}
\partopsep=2.1\p@ \@plus1\p@ \@minus\z@
\AtBeginDocument{%
\def\@listi{%
\leftmargin=\leftmargini
\parsep=4\p@ \@plus2\p@ \@minus\z@
\topsep=8\p@ \@plus2\p@ \@minus4\p@
\itemsep=4\p@ \@plus2\p@ \@minus\z@
}%
}
\renewcommand\footnoterule{\kern8\p@ \hrule\@width.4\columnwidth \kern2.6\p@}
\setlength\footskip{25\p@}
\renewcommand\normalsize{%
\@setfontsize\normalsize\@xpt{12\p@ \@plus .3\p@ \@minus .3\p@}%
\abovedisplayskip=10\p@ \@plus2\p@ \@minus5\p@
\abovedisplayshortskip=\z@ \@plus3\p@
\belowdisplayshortskip=6\p@ \@plus3\p@ \@minus3\p@
\belowdisplayskip=\abovedisplayskip
\let\@listi\@listI
}
\normalsize
\renewcommand\small{%
\@setfontsize\small\@ixpt{11\p@ \@plus .2\p@ \@minus .2\p@}%
\abovedisplayskip=8.5\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
}
\flushbottom
%
\fi % end if@balayout
%
% Set up parameters for the IMS journals (AOP, AAP, AOS) layout:
\if@imslayout
\RequirePackage[T1]{fontenc}
\RequirePackage{times}
\RequirePackage[scaled=.9]{helvet}
\RequirePackage{textcomp}
\RequirePackage{textcase}
\def\@xipt{11}
\def\@xivpt{14}
\def\@xvipt{16}
\def\@xviiipt{18}
\def\@xxpt{20}
\def\@xxivpt{24}
\declaremathsizes@as@in@mathtime
\renewcommand\normalsize{%
\@setfontsize\normalsize\@xipt{13\p@ plus .5\p@ minus .5\p@}%
\abovedisplayskip 7\p@ \@plus3\p@ \@minus3\p@
\belowdisplayskip\abovedisplayskip
\abovedisplayshortskip\abovedisplayskip
\belowdisplayshortskip\abovedisplayskip
\let\@listi\@listI
}
\normalfont\normalsize
\renewcommand\small{%
\@setfontsize\small\@xpt{12pt plus .3pt minus .3pt}%
\abovedisplayskip 6\p@ \@plus2\p@ \@minus2\p@
\belowdisplayskip \abovedisplayskip
\abovedisplayshortskip\abovedisplayskip
\belowdisplayshortskip\abovedisplayskip
}
\renewcommand\footnotesize{%
\@setfontsize\footnotesize\@ixpt{11pt plus .2\p@ minus .2\p@}%
\abovedisplayskip 6\p@ \@plus2\p@ \@minus2\p@
\belowdisplayskip \abovedisplayskip
\abovedisplayshortskip\abovedisplayskip
\belowdisplayshortskip\abovedisplayskip
}
\renewcommand\scriptsize{\@setfontsize\scriptsize\@viiipt\@xpt}
\renewcommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
\renewcommand\large{\@setfontsize\large\@xiipt{14}}
\renewcommand\Large{\@setfontsize\Large\@xivpt{16}}
\renewcommand\LARGE{\@setfontsize\LARGE\@xvipt{18}}
\renewcommand\huge{\@setfontsize\huge\@xviiipt{20}}
\renewcommand\Huge{\@setfontsize\Huge\@xxpt{24}}
% lists
\def\labelitemi{\textbullet}
\def\labelitemii{\textendash}
\def\labelitemiii{\textasteriskcentered}
\def\labelitemiv{{\footnotesize +}}
\def\labelenumi{\theenumi.}
\def\labelenumii{\theenumii)}
\def\labelenumiii{\theenumiii.}
\def\labelenumiv{\theenumiv.}
\setlength\leftmargini{1em}
\setlength\leftmarginii{1em}
\setlength\leftmarginiii{1.02em}
\setlength\leftmarginiv{0.96em}
\setlength\labelsep{.5em}
\setlength\labelwidth{\leftmargini}
\addtolength\labelwidth{-\labelsep}
\def\enumerate@listi{%
\labelwidth=.75em
\leftmargin=\labelwidth
\advance\leftmargin by \labelsep
}
\def\@listI{%
\leftmargin=\leftmargini
\listparindent=12\p@
\topsep=\smallskipamount
\csletcs{\@currenvir @list@addons}{\@currenvir @listi}%
\preto\@trivlist{%
\def\makelabel##1{{\hfill\normalfont ##1}}%
\csuse{\@currenvir @list@addons}}%
}
\def\enumerate@listii{%
\labelwidth=.777em
\leftmargin=\labelwidth
\advance\leftmargin by \labelsep
}
\def\longlist@listii{%
\leftmargin=\labelwidth
\advance\leftmargin by \labelsep
}
\def\@listii{%
\leftmargin=\leftmarginii
\listparindent=12\p@
\topsep=\z@
\csletcs{\@currenvir @list@addons}{\@currenvir @listii}%
\preto\@trivlist{%
\def\makelabel##1{{\hfill\normalfont ##1}}%
\csuse{\@currenvir @list@addons}%
}%
}%
\def\enumerate@listiii{%
\labelwidth=1.084em
\leftmargin=\labelwidth
\advance\leftmargin by \labelsep
}
\def\longlist@listiii{%
\leftmargin=\labelwidth
\advance\leftmargin by \labelsep
}
\def\@listiii{%
\leftmargin=\leftmarginiii
\labelwidth=\leftmarginiii
\advance\labelwidth by -\labelsep
\listparindent=12\p@
\topsep=\z@
\csletcs{\@currenvir @list@addons}{\@currenvir @listiii}%
\preto\@trivlist{%
\def\makelabel##1{{\hfill\normalfont ##1}}%
\csuse{\@currenvir @list@addons}}%
}
\def\enumerate@listiv{%
\labelwidth=.917em
\leftmargin=\labelwidth
\advance\leftmargin by \labelsep
}
\def\@listiv{%
\leftmargin=\leftmarginiv
\labelwidth=\leftmarginiv
\advance\labelwidth by -\labelsep
\listparindent=12\p@
\topsep=\z@
\csletcs{\@currenvir @list@addons}{\@currenvir @listiv}%
\preto\@trivlist{%
\def\makelabel##1{{\hfill\normalfont ##1}}%
\csuse{\@currenvir @list@addons}%
}%
}
% longlist
\newcounter{longlist}
\def\thelonglist{\@roman\c@longlist}
\def\labellonglist{(\thelonglist)}
\def\longlist{\@ifnextchar[{\@longlist}{\@longlist[]}}
\def\@longlist[#1]{%
\list
{\labellonglist}%
{%
\usecounter{longlist}%
\ifx.#1.%
\setcounter{longlist}{3}%
\settowidth\labelwidth{\labellonglist}%
\setcounter{longlist}{0}%
\else
\settowidth{\labelwidth}{#1}%
\fi
\topsep=\smallskipamount
\itemindent=\labelwidth
\advance\itemindent by \labelsep
\advance\itemindent by 1pc%
\leftmargin=\z@
}%
}
\let\endlonglist =\endlist
%
\setlength\topskip{10\p@}
\setlength\maxdepth{.5\topskip}
%
\setlength\smallskipamount{6.5\p@ \@plus 1\p@ \@minus 1\p@}
\setlength\medskipamount{13\p@ \@plus 3\p@ \@minus 3\p@}
\setlength\bigskipamount{19.5\p@ \@plus 3\p@ \@minus 3\p@}
% PAGE-BREAKING PENALTIES
\clubpenalty=10000
\widowpenalty=10000
\tolerance=800
\hbadness=800
\emergencystretch=3\p@
\hfuzz=1pt
\AtBeginDocument{\interdisplaylinepenalty=100}
%
\arraycolsep=1.2\p@
\setlength\tabbingsep{6\p@}
\jot=6\p@
\@ifundefined{mathindent}%
{\newskip\mathindent}%
{}
\mathindent=2pc
\AtBeginDocument{%
\@ifundefined{@mathmargin}%
{}%
{\@mathmargin=\mathindent}%
}
\setlength\thinmuskip{2.5mu}
\setlength\medmuskip{3.5mu plus 1.5mu minus 2mu}
\setlength\thickmuskip{3.75mu plus 1.5mu}
\setlength\mathsurround{0.1\p@}
%
\setlength{\parskip}{\z@}
%
\setlength\marginparsep{25\p@}
\setlength\marginparwidth{120\p@}
%
\AtEndOfPackage{%
\appto\set@natbib{%
\let\save@NAT@bibsetnum\NAT@bibsetnum
\def\bibsection{\specialsection*{\refname}}%
\setlength\bibsep{\z@ \@plus .5\p@ \@minus .5\p@}%
\setlength\bibindent{20\p@}%
\preto\bibitem@fin{%
\clubpenalty=\@M
\widowpenalty=\@M
}%
\def\NAT@bibsetnum{%
\labelsep=5\p@
\NAT@openbibtrue
\topsep=\z@
\save@NAT@bibsetnum
}%
}%
}
\setpkgattr{title}{skip}{12\p@}
\setpkgattr{frontmatter}{cmd}{\vskip20\p@ plus 3\p@ minus 3\p@}
%
\setpkgattr{abstract}{width}{23pc}
\setpkgattr{abstract}{indent}{16pt\@gobble}% 2em and remove abstract name
%
\setpkgattr{title}{size}{\normalsize\bfseries\mathversion{bold}\spaceskip.5em}
\setpkgattr{author}{size}{\normalsize\scshape}
\setpkgattr{abstract}{skip}{14\p@}
\setpkgattr{address}{skip}{8\p@}
\setpkgattr{address}{size}{\scriptsize\itshape}
\setpkgattr{ead}{size}{}
\setpkgattr{ead}{sep}{; }
\setpkgattr{email}{text}{}
\setpkgattr{url}{text}{}
\setpkgattr{fullurl}{text}{}
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{6}
\setpkgattr{keywordname}{size}{\itshape}
\setpkgattr{runninghead}{size}{\footnotesize}
\setpkgattr{pagenumber}{size}{\small}
\setpkgattr{copyright}{size}{\fontsize{6}{7}\selectfont\raggedright}
\setpkgattr{thebibliography}{size}{\footnotesize}
%
\setpkgattr{dochead}{case}{\MakeUppercase}
\setpkgattr{title}{case}{\MakeUppercase}
\setpkgattr{runninghead}{case}{\MakeUppercase}
%
\setpkgattr{author}{prefix}{By~}
%
\if@imsart@preprint
\setpkgattr{copyright}{text}{}
\else
\setpkgattr{copyright}{text}{%
\url@fmt{}{\itshape}{\journal@name}{\journal@url}\break
\@ifnonempty{\@copyrightyear\@volume\@issue\@pagerange\break}\doi@text
}
\fi
%
\def\volume#1{\gdef\@volume{Vol. #1, }}
\def\issue#1{\gdef\@issue{No. #1, }}
\def\pubyear#1{\gdef\@pubyear{#1,}\gdef\@copyrightyear{#1 }}
%
\def\abstractname{}
%
\def\put@fmt@data{%
\copyright@fmt
\history@fmt
\@thanks
\keyword@fmt
\abstract@fmt
}
%
\def\contentsname@cmd{\specialsection*{\contentsname}}
%
\setlength\footnotesep{7\p@}
\setlength{\skip\footins}{18\p@ \@plus 4\p@ \@minus 2\p@}
\skip\@mpfootins = \skip\footins
%
\set@amsgen@frenchspacing
%
\ims@common@float@settings
\fi
%
% Set up parameters for the STS journal layout:
%
\if@stslayout
\def\@xipt{11}
\def\@xivpt{14}
\def\@xvipt{16}
\def\@xviiipt{18}
\def\@xxpt{20}
\def\@xxivpt{24}
\renewcommand\normalsize{%
\@setfontsize\normalsize\@xipt{13\p@ plus .5\p@ minus .5\p@}%
\abovedisplayskip=7\p@ \@plus3\p@ \@minus3\p@
\belowdisplayskip=\abovedisplayskip
\abovedisplayshortskip=\abovedisplayskip
\belowdisplayshortskip=\abovedisplayskip
}
\renewcommand\small{%
\@setfontsize\small\@xpt{12pt plus .3pt minus .3pt}%
\abovedisplayskip=6\p@ \@plus2\p@ \@minus2\p@
\belowdisplayskip=\abovedisplayskip
\abovedisplayshortskip=\abovedisplayskip
\belowdisplayshortskip=\abovedisplayskip
}
\renewcommand\footnotesize{%
\@setfontsize\footnotesize\@ixpt{11pt plus .2\p@ minus .2\p@}%
\abovedisplayskip=6\p@ \@plus2\p@ \@minus2\p@
\belowdisplayskip=\abovedisplayskip
\abovedisplayshortskip=\abovedisplayskip
\belowdisplayshortskip=\abovedisplayskip
}
\renewcommand\Large{\@setfontsize\Large\@xivpt{16}}
\renewcommand\Large{\@setfontsize\Large\@xivpt{16}}
\renewcommand\LARGE{\@setfontsize\LARGE\@xvipt{18}}
\renewcommand\huge{\@setfontsize\huge\@xviiipt{20}}
\renewcommand\Huge{\@setfontsize\Huge\@xxpt{24}}
\RequirePackage[T1]{fontenc}
\RequirePackage{times}
\RequirePackage[scaled=.9]{helvet}
\RequirePackage{textcomp}
\RequirePackage{textcase}
%
\setlength\columnsep{2pc}
\setlength\columnseprule{0\p@}
\setlength\footskip{24\p@}
\setlength\parskip{0\p@}
\setlength\topskip{10\p@}
\setlength\maxdepth{.5\topskip}
\setlength\parindent{10\p@}
\sv@parindent=\parindent
%
\declaremathsizes@as@in@mathtime
\DeclareMathSizes{\@xxivpt}{\@xxivpt}{16}{12}
% page-breaking penalties
\clubpenalty=10000
\widowpenalty=10000
\emergencystretch=3\p@
\hbadness=800
\tolerance=800
%
\setlength\smallskipamount{6.5\p@ \@plus 1\p@ \@minus 1\p@}
\setlength\medskipamount{13\p@ \@plus 3\p@ \@minus 3\p@}
\setlength\bigskipamount{19.5\p@ \@plus 3\p@ \@minus 3\p@}
%
\marginparpush=5\p@
\marginparsep=25\p@
\marginparwidth=120\p@
% frontmatter settings
\setpkgattr{frontmatter}{style}{\raggedright}
\setpkgattr{title}{style}{\noindent\raggedright}
\setpkgattr{author}{style}{\noindent\raggedright}
\setpkgattr{address}{style}{\raggedright}
%
\setpkgattr{title}{skip}{6\p@}
\setpkgattr{authors}{skip}{10pt}
\setpkgattr{address}{skip}{\z@}
\setpkgattr{abstract}{skip}{36\p@}
\setpkgattr{abstractname}{skip}{. }
\setpkgattr{keyword}{skip}{8\p@}
%
\setpkgattr{abstract}{width}{28pc}
\setpkgattr{keyword}{width}{28pc}
%
\setpkgattr{dochead}{size}{\sffamily\Large\bfseries\spaceskip.5em}
\setpkgattr{title}{size}{%
\sffamily\fontsize{26}{26}\selectfont
\bfseries\mathversion{bold}\spaceskip.5em%
}
\setpkgattr{author}{size}{\sffamily\fontsize{13}{13}\selectfont\bfseries}
\setpkgattr{address}{size}{\small\itshape}
\setpkgattr{ead}{size}{}
\setpkgattr{abstract}{size}{\normalsize\upshape}
\setpkgattr{abstractname}{size}{\itshape}
\setpkgattr{keyword}{size}{\normalsize\mdseries\upshape}
\setpkgattr{keywordname}{size}{\itshape}
\setpkgattr{thebibliography}{size}{\footnotesize}
\setpkgattr{copyright}{size}{\normalfont\mdseries\fontsize{6}{7}\selectfont\raggedright}
\setpkgattr{runninghead}{size}{\footnotesize}
\setpkgattr{runninghead}{case}{\MakeUppercase}
\setpkgattr{pagenumber}{size}{\small\bfseries}
%
\setpkgattr{keyword}{KWD}{Key words and phrases:}
\setpkgattr{ead}{text}{\hbox{e-mail:}\ }
\setpkgattr{url}{text}{URL: }
\setpkgattr{fullurl}{text}{URL: }
%
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{6}
%
\def\thethanks{\@arabic\c@thanks}
% \printead:
\def\printead@fmt#1{\ifnot@ead@star (#1)\else #1\fi}
% all addresses are combined:
\newtoks\address@toks
\def\address@exist{0}
\def\address{\@ifnextchar[{\@address}{\@address[]}}
\def\@address[#1]#2{%
\gdef\address@exist{1}%
\begingroup
\no@harm
\xdef\@act{\global\noexpand\address@toks{\the\address@toks#2\ }}\@act
\endgroup
}
\def\address@fmt{%
\ifcase\address@exist
\else
\safe@footnotetext{\hskip-\parindent\address@style\address@size\the\address@toks}%
\fi
}
\def\put@fmt@data{%
\copyright@fmt
\address@fmt
\@thanks
\abstract@fmt
\keyword@fmt
\if@twocolumn
\frontmatter@cmd
\fi
}
\def\firstpage@cmd{%
\if@twocolumn
\markboth{\@runauthor}{\@runtitle}%
\address@fmt
\@thanks
\fi
}
% footnotes
\setlength\footnotesep{7\p@}
\setlength{\skip\footins}{18\p@ \@plus 4\p@ \@minus 2\p@}
\skip\@mpfootins = \skip\footins
%
\arraycolsep=1.2\p@
\arrayrulewidth=1\p@
\AtBeginDocument{\interdisplaylinepenalty=100}
\jot=6\p@
\@ifundefined{mathindent}%
{\newskip\mathindent}%
{}
\mathindent=2pc
\AtBeginDocument{%
\mathindent=2pc
\@ifundefined{@mathmargin}%
{}%
{\@mathmargin=\mathindent}%
}
\setlength\medmuskip{3.5mu plus 1.5mu minus 2mu}
\setlength\thickmuskip{3.75mu plus 1.5mu}
\setlength\thinmuskip{2.5mu}
\setlength\mathsurround{0.1\p@}
% lists
\let\quotation@size\relax
\def\quotation@leftmargin{2pc}
\def\quotation@rightmargin{2pc}
\def\quotation@itemindent{\z@}
\let\quote@size\relax
\topsep=\smallskipamount
\def\labelenumii{\theenumii)}
\def\labelitemiv{{\footnotesize +}}
\def\@listi{\leftmargin=\leftmargini}
\def\@listii{%
\leftmargin=\leftmarginii
\labelwidth=\leftmarginii
\advance\labelwidth by -\labelsep
\topsep=\z@
}
\let\@listI\@listi
% longlist
\newcounter{longlist}
\def\thelonglist{\@roman\c@longlist}
\def\labellonglist{\thelonglist)}
\def\longlist{\@ifnextchar[{\@longlist}{\@longlist[]}}
\def\@longlist[#1]{%
\list
{\labellonglist}%
{%
\usecounter{longlist}%
\ifx.#1.%
\setcounter{longlist}{3}%
\settowidth\labelwidth{\labellonglist}%
\setcounter{longlist}{0}%
\else
\settowidth{\labelwidth}{#1}%
\fi
\topsep=\smallskipamount
\itemindent=\labelwidth
\advance\itemindent by \labelsep
\advance\itemindent by 1pc%
\leftmargin=\z@
}%
}
\let\endlonglist =\endlist
%
\set@amsgen@frenchspacing
%
\ims@common@float@settings
\fi
%
% Set up parameters for the BJ journal layout:
%
\if@bjlayout
\IfFileExists{newtxmath.sty}%
{\edef\new@tx@math@sty@exists{1}}%
{}
\RequirePackage[T1]{fontenc}
\def\rmdefault{utm}
\ifdefined\new@tx@math@sty@exists
\def\ttdefault{ucr}
\else
\def\ttdefault{pcr}% ucr in old systems are somewhat buggy
\fi
\RequirePackage[scaled=0.9]{helvet}
\RequirePackage{textcomp}
\ifdefined\HCode
\else
\ifdefined\new@tx@math@sty@exists
\RequirePackage[cmintegrals,bigdelims]{newtxmath}
\else
\PackageWarning{imsart}{newtxmath package isn't available,
amsmath is used instead}%
\RequirePackage{amsmath}
\fi
\fi
\let\openbox\relax
\RequirePackage{graphicx}%
\RequirePackage{letterspace}%
\def\setlstracking#1{\csdef{MT@letterspace}{#1}}%
\def\texttracking#1#2{\bgroup\setlstracking{#1}\textls{#2}\egroup}%
%
\appto\ps@copyright{%
\def\@evenhead{\parbox[c]{\textwidth}{\copyright@size\copyright@text}}%
\let\@oddhead\@evenhead
}
\def\@xipt{11}
\def\@xivpt{14}
\def\@xvipt{16}
\def\@xviiipt{18}
\def\@xxpt{20}
\def\@xxivpt{24}
%
% lists
%
\RequirePackage{enumitem}
% old settings (for compatibility)
\parsep=\z@
\topsep=\z@
\partopsep=\z@
\itemsep=\z@
\labelsep=.5em
\setlength\leftmargin{2em}
\setlength\leftmargini{2em}
\setlength\leftmarginii{2.2em}
\setlength\leftmarginiii{1.87em}
\setlength\leftmarginiv{1.7em}
\setlength\labelwidth{\leftmargini}
\addtolength\labelwidth{-\labelsep}
% new settings
\def\bj@list@makelabel#1{\hfill\enit@format{#1}}%
\setlist{itemsep=\z@,labelsep=0.5em,partopsep=\z@,parsep=\z@,listparindent=10pt}%
\setlist[itemize]{align=left,format=\normalfont,before={\let\makelabel\bj@list@makelabel}}
\setlist[enumerate]{align=left,format=\normalfont,before={\let\makelabel\bj@list@makelabel}}
\setlist[description]{labelwidth=*,leftmargin=10\p@,listparindent=\z@,topsep=6\p@ \@plus \p@ \@minus \p@,align=left}
\@ifundefined{enit@setleft}%
{%
\PackageWarning{imsart}{older enumitem is used, left alignment may behave strangely}%
\setlist[itemize,1]{label=$\bullet$,labelindent=1em,leftmargin=*,topsep=6\p@ \@plus \p@ \@minus \p@}%
\setlist[itemize,2]{label=\textendash,labelindent=0em,leftmargin=*,topsep=\z@}%
\setlist[itemize,3]{label=$\ast$,topsep=\z@,labelindent=0.05em,leftmargin=*}%
\setlist[itemize,4]{label={{\footnotesize +}},topsep=\z@,labelindent=0em,leftmargin=*}%
\setlist[enumerate,1]{label=\arabic*.,ref=\arabic*,labelindent=1em,leftmargin=*,topsep=6\p@ \@plus \p@ \@minus \p@}%
\setlist[enumerate,2]{label=\alph*),ref=\alph*,topsep=\z@,labelindent=-0.33em,leftmargin=*}%
\setlist[enumerate,3]{label=\roman*.,ref=\roman*,labelindent=-0.5em,leftmargin=*,topsep=\z@}%
\setlist[enumerate,4]{label=\Alph*.,ref=\Alph*,labelindent=-0.2em,leftmargin=*,topsep=\z@}%
}%
{%
\setlist[itemize,1]{label=$\bullet$,left=1em,topsep=6\p@ \@plus \p@ \@minus \p@}%
\setlist[itemize,2]{label=\textendash,left=0em,topsep=\z@}%
\setlist[itemize,3]{label=$\ast$,topsep=\z@,left=0.05em}%
\setlist[itemize,4]{label={{\footnotesize +}},topsep=\z@,left=0em}%
\setlist[enumerate,1]{label=\arabic*.,ref=\arabic*,left=1em,topsep=6\p@ \@plus \p@ \@minus \p@}%
\setlist[enumerate,2]{label=\alph*),ref=\alph*,topsep=\z@,left=-0.33em}%
\setlist[enumerate,3]{label=\roman*.,ref=\roman*,left=-0.5em,topsep=\z@}%
\setlist[enumerate,4]{label=\Alph*.,ref=\Alph*,left=-0.2em,topsep=\z@}%
}
%
\def\quote@leftmargin{1pc}
\def\quote@rightmargin{1pc}
\appto\quote@hook{\itemsep=\z@}
\def\quotation@itemindent{10\p@}
\def\quotation@parindent{10\p@}
\def\quotation@rightmargin{1pc}
\appto\quotation@hook{\itemsep=\z@}
%
\declaremathsizes@as@in@mathtime
\renewcommand\normalsize{%
\@setfontsize\normalsize\@xpt{12\p@ \@plus .3\p@ \@minus .3\p@}%
\abovedisplayskip=10\p@ \@plus2\p@ \@minus2\p@
\abovedisplayshortskip=6\p@ \@plus 2\p@
\belowdisplayskip=\abovedisplayskip
\belowdisplayshortskip=\abovedisplayshortskip
}
\normalsize
\renewcommand\small{%
\@setfontsize\small\@ixpt{11\p@ plus .2\p@ minus .2\p@}%
\abovedisplayskip=7.5\p@ \@plus4\p@ \@minus1\p@
\belowdisplayskip=\abovedisplayskip
\abovedisplayshortskip=\abovedisplayskip
\belowdisplayshortskip=\abovedisplayskip
}
\renewcommand\footnotesize{%
\@setfontsize\footnotesize\@viiipt{10\p@ plus .1pt minus .1pt}%
\abovedisplayskip=6\p@ \@plus4\p@ \@minus1\p@
\belowdisplayskip=\abovedisplayskip
\abovedisplayshortskip=\abovedisplayskip
\belowdisplayshortskip=\abovedisplayskip
}
\renewcommand\Large{\@setfontsize\Large\@xivpt{16}}
\renewcommand\LARGE{\@setfontsize\LARGE\@xvipt{18}}
\renewcommand\huge{\@setfontsize\huge\@xviiipt{20}}
\renewcommand\Huge{\@setfontsize\Huge\@xxpt{24}}
%
\def\@makefntext@parindent{\noindent\parindent=10\p@}
%
\def\doi#1{%
\gdef\@doi{#1}%
\gdef\doi@text{\url{\doi@base\@doi}}%
}
%
\setpkgattr{frontmatter}{cmd}{%
\vskip14\p@ plus 3\p@ minus 3\p@
\@afterindentfalse\@afterheading
}%
%
\def\and{\unskip\ and }
\setpkgattr{frontmatter}{style}{\raggedright}
\setpkgattr{title}{style}{\noindent\raggedright}
\setpkgattr{author}{style}{\noindent\raggedright}
\setpkgattr{address}{style}{\raggedright}
\setpkgattr{keyword}{style}{\raggedright}
%
\setpkgattr{title}{skip}{10\p@}
\setpkgattr{abstract}{skip}{16\p@}
\setpkgattr{abstractname}{skip}{}
\setpkgattr{address}{skip}{6\p@\def\address@skip{0pt}}
%
\setpkgattr{abstract}{width}{\textwidth}
\setpkgattr{keyword}{width}{\textwidth}
\setpkgattr{history}{width}{\textwidth}
%
\setpkgattr{dochead}{size}{\normalsize\MakeUppercase}
\setpkgattr{title}{size}{\fontsize{21}{26}\selectfont}
\setpkgattr{author}{size}{\normalsize\spaceskip=0.2em}
\def\write@fnms@metadata#1{}
\def\write@snm@metadata#1{}
\def\write@inits@metadata#1{}
\def\fnms@size#1{\write@fnms@metadata{#1}\texttracking{105}{\MakeUppercase{#1}}}
\def\snm@size#1{\write@snm@metadata{#1}\texttracking{105}{\MakeUppercase{#1}}}
\def\inits@size#1{\write@inits@metadata{#1}}
%
\setpkgattr{address}{size}{\small\itshape}
\setpkgattr{abstract}{size}{\small\upshape}
\setpkgattr{keyword}{size}{\small\upshape\rightskip=\the\rightskip plus1.0fil}
\setpkgattr{keywordname}{size}{\itshape}
\setpkgattr{history}{size}{\raggedright\small\itshape}
%
\setpkgattr{runninghead}{size}{\normalsize\itshape}
\setpkgattr{pagenumber}{size}{\normalsize\upshape}
\setpkgattr{copyright}{size}{\normalsize}
\setpkgattr{footline}{size}{\footnotesize}
\setpkgattr{thebibliography}{size}{\small}
%
\setpkgattr{email}{text}{}
\setpkgattr{url}{text}{}
\setpkgattr{fullurl}{text}{}
\setpkgattr{ead}{sep}{, }
\setpkgattr{ead}{size}{}
\if@imsart@preprint
\setpkgattr{copyright}{text}{}
\else
\setpkgattr{copyright}{text}{\url@fmt{}{\itshape}{\journal@name}{\journal@url}\
\textbf{\number\@volume}(\@issue), \number\@pubyear, \@pagerange\\\doi@text}
\fi
\setpkgattr{history}{postfix}{}
\setpkgattr{revised}{prefix}{ and revised~}
\setpkgattr{keyword}{postfix}{}
\def\sep{\unskip\string; }%
%
\setpkgattr{keyword}{KWD}{Keywords:}
%
\def\put@fmt@data{%
\copyright@fmt
\@thanks
\abstract@fmt
\keyword@fmt
\tableofcontents@fmt
}
%
\AtBeginDocument{%
\ifcsundef{jobstart@date@info}%
{\xdef\jobstart@date@info{\the\year\two@digits{\the\month}\two@digits{\the\day}}}%
{}%
\ifnum\jobstart@date@info>20211202\relax
\def\author@sep@by@number#1{%
\@tempcntb=\author@num
\advance\@tempcntb by \m@ne
\ifnum#1=\@tempcntb
\unskip\unkern\ \and
\else
\ifnum#1=\author@num
\else
\unskip\unkern,
\fi
\fi
\ignorespaces
}%
\fi
}
% invoke \printhistory at end of document:
\let\old@enddocument\enddocument
\def\enddocument{\history@fmt\old@enddocument}
%
\def\volume#1{\gdef\@volume{#1}}
\def\issue#1{\gdef\@issue{#1}}
\def\pubyear#1{\gdef\@pubyear{#1}\gdef\@copyrightyear{#1}}
%
\def\abstractname{}
%
\def\evenhead@fmt#1{\hfill#1}
\def\oddhead@fmt#1{#1\hfill}
%
\def\fnum@table{\tablename~\thetable.}
%
\long\def\@maketablecaption#1#2{%
\centering
\parbox[t]{\tablewidth}{\small\textbf{#1}\enskip #2\par}%
\vskip\belowcaptionskip
}
%
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{6}
%
\setlength\medskipamount{12\p@ \@plus 3\p@ \@minus 2\p@}
\setlength\bigskipamount{18\p@ \@plus 3\p@ \@minus 2\p@}
\setlength\marginparsep{25\p@}
\setlength\marginparwidth{120\p@}
%
\renewcommand\figurename{Figure}
%
\long\def\@makecaption#1#2{%
\vskip\abovecaptionskip
\small
\textbf{#1}. #2\par
\vskip\belowcaptionskip
}
\def\tabnotes@alignment{\centering}
%
\AtBeginDocument{\interdisplaylinepenalty=100}
\arraycolsep=1.2\p@
\columnsep=12\p@
\jot=6\p@
\@ifundefined{mathindent}%
{\newskip\mathindent}%
{}
\mathindent=2pc
\setlength\medmuskip{3.5mu plus 1.5mu minus 2mu}
\setlength\thickmuskip{3.75mu plus 1.5mu}
\setlength\thinmuskip{2.5mu}
\setlength\tabbingsep{6\p@}
%
\let\footnoterule\relax
\setlength\footnotesep{7\p@}
\setlength{\skip\footins}{18\p@ \@plus 4\p@ \@minus 2\p@}
\skip\@mpfootins = \skip\footins
\setlength{\parskip}{\z@}
% PAGE-BREAKING PENALTIES
\clubpenalty=10000
\tolerance=800
\widowpenalty=10000
%
\set@amsgen@frenchspacing
%
\ims@common@float@settings
%
\AtEndOfPackage{%
\IfFileExists{imsart-bj.cnf}%
{}%
{%
\RequirePackage[colorlinks]{hyperref}%
\setpkgattr{copyright}{text}{\raisebox{2pt}{\url@fmt{}{\itshape}{\journal@name}{\journal@url}}}%
}%
\appto\set@natbib{%
\setlength\bibsep{\z@ \@plus .5\p@ \@minus .5\p@}%
\let\bej@sv@bibsetup\@bibsetup
\def\@bibsetup#1{%
\topsep=\z@
\bej@sv@bibsetup{#1}%
}%
\preto\bibitem@fin{%
\clubpenalty=\@M
\widowpenalty=\@M
}%
\@ifpackagewith{natbib}{numbers}%
{%
\def\NAT@def@citea{\def\@citea{\NAT@separator}}%
\def\NAT@def@citea@space{\def\@citea{\NAT@separator}}%
\def\NAT@def@citea@close{\def\@citea{\NAT@@close\NAT@separator}}%
\def\NAT@def@citea@box{\def\@citea{\NAT@mbox{\NAT@@close}\NAT@separator}}%
}%
{%
\setcitestyle{comma}%
}%
\csname more@natbib@settings\endcsname
}%
}
\flushbottom
\fi
%
% Set up parameters for the AIHP journal layout:
%
\if@aihplayout
%
\def\@xipt{11}
\def\@xivpt{14}
\def\@xvipt{16}
\def\@xviiipt{18}
\def\@xxpt{20}
\def\@xxivpt{24}
%
\renewcommand\normalsize{%
\@setfontsize\normalsize\@xpt{12\p@ \@plus .3\p@ \@minus .3\p@}%
\abovedisplayskip=10\p@ \@plus 2\p@ \@minus2\p@
\abovedisplayshortskip=6\p@ \@plus 2\p@
\belowdisplayshortskip=6\p@ \@plus 2\p@
\belowdisplayskip=\abovedisplayskip
\let\@listi\@listI
}
\renewcommand\small{%
\@setfontsize\small\@ixpt{11\p@ \@plus .2\p@ \@minus .2\p@}%
\abovedisplayskip=7.5\p@ \@plus 4\p@ \@minus 1\p@
\belowdisplayskip=\abovedisplayskip
\abovedisplayshortskip=\abovedisplayskip
\belowdisplayshortskip=\abovedisplayskip
}
\renewcommand\footnotesize{%
\@setfontsize\footnotesize\@viiipt{10\p@ \@plus .1\p@ \@minus .1\p@}%
\abovedisplayskip=6\p@ \@plus 4\p@ \@minus 1\p@
\belowdisplayskip=\abovedisplayskip
\abovedisplayshortskip=\abovedisplayskip
\belowdisplayshortskip=\abovedisplayskip
}
\renewcommand\Large{\@setfontsize\Large\@xivpt{16}}
\renewcommand\LARGE{\@setfontsize\LARGE\@xvipt{18}}
\renewcommand\huge{\@setfontsize\huge\@xviiipt{20}}
\renewcommand\Huge{\@setfontsize\Huge\@xxpt{24}}
%
\RequirePackage[T1]{fontenc}
\RequirePackage{times}
\RequirePackage[scaled=.9]{helvet}
\RequirePackage{textcomp}
%
% FRONT MATTER SKIPS
\setpkgattr{title}{skip}{64\p@}
\setpkgattr{authors}{skip}{14\p@}
\setpkgattr{address}{skip}{12\p@\def\address@skip{0pt}}
\setpkgattr{abstractname}{skip}{.\enskip}
\setpkgattr{history}{skip}{4\p@}
\setpkgattr{abstract}{skip}{16\p@}
%
\setpkgattr{fline}{cmd}{\vskip22\p@ \hrule}
\setpkgattr{lline}{cmd}{\vskip10\p@ \hrule}
%
% FRONT MATTER DIMENSIONS
\setpkgattr{abstract}{width}{\textwidth}
\setpkgattr{abstract}{indent}{\z@}
\setpkgattr{keyword}{width}{\textwidth}
\setpkgattr{keyword}{indent}{\z@}
%
% FRONT MATTER FONTS
\setpkgattr{title}{size}{\huge}
\setpkgattr{author}{size}{\Large}
\setpkgattr{abstract}{size}{\small\upshape}
\setpkgattr{ead}{size}{}
\setpkgattr{keywordname}{size}{\itshape}
\setpkgattr{thebibliography}{size}{\footnotesize}
\let\inits@size\@gobble
\setcounter{tocdepth}{6}
%
\def\put@fmt@data{%
\copyright@fmt
\@thanks
\history@fmt
\fline@cmd
\abstract@fmt
\keyword@fmt
\lline@cmd
\tableofcontents@fmt
}
%
\setpkgattr{keyword}{KWD}{Keywords:}
\setpkgattr{keyword}{MSC2010}{MSC:}
\setpkgattr{keyword}{postfix}{\unskip}
\setpkgattr{email}{text}{}
\setpkgattr{url}{text}{}
\setpkgattr{fullurl}{text}{}
%
\def\labelitemii{\textendash}
\def\labelitemiv{{\footnotesize +}}
%
\arraycolsep=1.2\p@
\setlength\tabbingsep{6\p@}
\jot=6\p@
\@ifundefined{mathindent}%
{\newskip\mathindent}%
{}
\mathindent=2pc
\AtBeginDocument{%
\mathindent=2pc
\@ifundefined{@mathmargin}%
{}%
{\@mathmargin=\mathindent}%
}
\setlength\medmuskip{3.5mu plus 1.5mu minus 2mu}
\setlength\thickmuskip{3.75mu plus 1.5mu}
\setlength\thinmuskip{2.5mu}
\setlength\mathsurround{0.1\p@}
\columnsep=12\p@
\setlength\footnotesep{7\p@}
\setlength{\skip\footins}{18\p@ \@plus 4\p@ \@minus 2\p@}
\skip\@mpfootins = \skip\footins
\setlength{\parskip}{\z@}
\setlength\marginparsep{25\p@}
\setlength\marginparwidth{120\p@}
%
% PAGE-BREAKING PENALTIES
\clubpenalty=10000
\widowpenalty=10000
\emergencystretch=3\p@
\hbadness=800
\tolerance=800
\AtBeginDocument{%
\interdisplaylinepenalty=100\relax
}
%
\set@amsgen@frenchspacing
%
\ims@common@float@settings
\fi
%
% Set up parameters for the BJPS journal layout:
%
\if@bjpslayout
\def\@xipt{11}
\def\@xivpt{14}
\def\@xvipt{16}
\def\@xviiipt{18}
\def\@xxpt{20}
\def\@xxivpt{24}
\declaremathsizes@as@in@mathtime
\renewcommand\normalsize{%
\@setfontsize\normalsize\@xipt{13\p@ plus .5\p@ minus .5\p@}%
\abovedisplayskip=7\p@ \@plus3\p@ \@minus3\p@
\belowdisplayskip=\abovedisplayskip
\abovedisplayshortskip=\abovedisplayskip
\belowdisplayshortskip=\abovedisplayskip
}
\renewcommand\small{%
\@setfontsize\small\@xpt{12pt plus .3pt minus .3pt}%
\abovedisplayskip=6\p@ \@plus2\p@ \@minus2\p@
\belowdisplayskip=\abovedisplayskip
\abovedisplayshortskip=\abovedisplayskip
\belowdisplayshortskip=\abovedisplayskip
}
\renewcommand\footnotesize{%
\@setfontsize\footnotesize\@ixpt{11pt plus .2\p@ minus .2\p@}%
\abovedisplayskip=6\p@ \@plus2\p@ \@minus2\p@
\belowdisplayskip=\abovedisplayskip
\abovedisplayshortskip=\abovedisplayskip
\belowdisplayshortskip=\abovedisplayskip
}
\renewcommand\scriptsize{\@setfontsize\scriptsize\@viiipt\@xpt}
\renewcommand\Large{\@setfontsize\Large\@xivpt{16}}
\renewcommand\LARGE{\@setfontsize\LARGE\@xvipt{18}}
\renewcommand\huge{\@setfontsize\huge\@xviiipt{20}}
\renewcommand\Huge{\@setfontsize\Huge\@xxpt{24}}
%
\RequirePackage[T1]{fontenc}
\RequirePackage{times}
\RequirePackage[scaled=.9]{helvet}
\RequirePackage{textcomp}
\normalfont\normalsize
%
\setlength\topskip{10\p@}
\setlength\footnotesep{7\p@}
\setlength{\skip\footins}{18\p@ \@plus 4\p@ \@minus 2\p@}
\skip\@mpfootins = \skip\footins
%
\marginparpush=5pt
\marginparwidth=120pt
\marginparsep=25pt
%
\setlength\smallskipamount{6.5\p@ \@plus 1\p@ \@minus 1\p@}
\setlength\medskipamount{13\p@ \@plus 3\p@ \@minus 3\p@}
\setlength\bigskipamount{19.5\p@ \@plus 3\p@ \@minus 3\p@}
%
\clubpenalty=10000
\widowpenalty=10000
\tolerance=800
\hbadness=800
\AtBeginDocument{\interdisplaylinepenalty=100}
%
\jot=6\p@
\@ifundefined{mathindent}%
{\newskip\mathindent}%
{}
\mathindent=2pc
\AtBeginDocument{%
\@ifundefined{@mathmargin}%
{}%
{\@mathmargin=\mathindent}%
}
\setlength\mathsurround{0.1\p@}
\setlength\thinmuskip{2.5mu}
\setlength\medmuskip{3.5mu plus 1.5mu minus 2mu}
\setlength\thickmuskip{3.75mu plus 1.5mu}
%
\setpkgattr{keyword}{AMS}{AMS 2000 subject classifications.}
\setpkgattr{keyword}{KWD}{Keywords and phrases.}
\setpkgattr{keyword}{MSC}{\ims@href{\msc@url}{MSC2020 subject classifications}.}
\setpkgattr{keyword}{MSC2020}{\ims@href{\msc@url}{MSC2020 subject classifications}.}
%
\setpkgattr{abstractname}{skip}{.\enskip}
%
\setpkgattr{title}{size}{\Large\bfseries\mathversion{bold}}
\setpkgattr{keywordname}{size}{\itshape}
\setpkgattr{runninghead}{size}{\footnotesize}
\setpkgattr{pagenumber}{size}{\small}
\setpkgattr{thebibliography}{size}{\footnotesize}
\setpkgattr{keyword}{postfix}{\unskip.}
\let\inits@size\@gobble
%
\if@imsart@preprint
\setpkgattr{copyright}{text}{}%
\else
\setpkgattr{copyright}{text}{\url@fmt{}{\itshape}{\journal@name}{\journal@url}\break
\@ifnonempty{\@volume\@pubyear\@pagerange\break}%
\@ifnonempty{\journal@issn\break}\doi@text
}%
\fi
\setpkgattr{address}{style}{\centering\normalfont}
\setpkgattr{address}{size}{\scriptsize\itshape}
\setpkgattr{ead}{size}{}
\setpkgattr{ead}{sep}{; }
\setpkgattr{email}{text}{}
\setpkgattr{url}{text}{}
\setpkgattr{fullurl}{text}{}
\setcounter{tocdepth}{6}
\def\thethanks{\@arabic\c@thanks}
%
\arraycolsep=1.2\p@
\setlength\tabbingsep{6\p@}
%
\def\labelenumi{\theenumi.}
\def\labelenumii{\theenumii)}
\def\labelenumiii{\theenumiii.}
\def\labelenumiv{\theenumiv.}
\def\labelitemi{\textbullet}
\def\labelitemii{\textendash}
\def\labelitemiii{\textasteriskcentered}
\def\labelitemiv{{\footnotesize +}}
%
\topsep=\smallskipamount
%
\def\@listi{\leftmargin=\leftmargini}
%
\def\@listii{%
\leftmargin=\leftmarginii
\labelwidth=\leftmarginii
\advance\labelwidth by -\labelsep
\topsep=\z@
}%
%
\set@amsgen@frenchspacing
%
\ims@common@float@settings
\fi
%
% smart \MR
% code suggested by Vilmos Prokaj <prokaj@cs.elte.hu>
% solves the problem when MR is in a format:
% \MR{MR1037262 (91i:60148)}
% Without MR this macro removes the MR prefix if it
% is present unchange the argument otherwise
\def\woMR#1{\w@MR#1MR#1MR\relax}
\def\w@MR#1MR#2MR#3\relax{#2}
%
% this splits MR... (...)
\def\@MR#1 #2\relax#3{%
\href{https://mathscinet.ams.org/mathscinet-getitem?mr=#1}%
{\MRfixed{#3}}%
}%
%
\def\MRfixed{MR\woMR}
%
\let\MR\MRfixed
%
% interaction with hyperref
%
\def\test@hyperref{\@ifundefined{Hy@SetCatcodes}{}{\imsart@hyperref@settings}}
%
\AtBeginDocument{\test@hyperref}
%
\def\imsart@hyperref@settings{%
% hooks for the \thanksref, \thankstext:
\def\thankref@hyperlink##1{%
\edef\@tempx{##1thanks}%
\hbox{\hyperlink{##1}{\saferef{\@tempx}}}%
}%
\def\thanks@hypertarget##1{\smash{\raise\baselineskip\hbox{\protect\hypertarget{##1}{}}}}%
% redefine pagenumbering
\let\pagenumbering\ims@pagenumbering
% activate href
\let\ims@href\href
\let\safe@phantomsection\phantomsection
% put document info
\def\write@pdfinfo##1##2{\protected@write\@auxout{\no@harm}{\string\gdef\string##1{##2}}}%
\@ifundefined{hy@title}{}{\pdfstringdef\@pdftitle{\hy@title}}%
\@ifundefined{hy@author}{}{\pdfstringdef\@pdfauthor{\hy@author}}%
\@ifundefined{hy@subject}{}{\pdfstringdef\@pdfsubject{\hy@subject}}%
\@ifundefined{hy@keywords}{}{\pdfstringdef\@pdfkeywords{\hy@keywords}}%
%
\@ifundefined{user@hy@title}{}{\global\let\@pdftitle\user@hy@title}%
\@ifundefined{user@hy@author}{}{\global\let\@pdfauthor\user@hy@author}%
\@ifundefined{user@hy@subject}{}{\global\let\@pdfsubject\user@hy@subject}%
\@ifundefined{user@hy@keywords}{}{\global\let\@pdfkeywords\user@hy@keywords}%
%
% MR with hyperef
\def\MR##1{\@MR##1 \relax{##1}}%
%
\if@print@bid@doi
\urlstyle{rm}%
\let\ims@nolinkurl\nolinkurl
\fi
}
%
\def\write@pdfinfo#1#2{}
%
\newtoks\authors@list
\def\addto@authors@list#1{%
\begingroup
\no@harm
\xdef\@act{\global\noexpand\authors@list{\the\authors@list#1}}%
\@act
\endgroup
}
%
\newtoks\keywords@list
\def\addto@keywords@list#1{%
\begingroup
\no@harm
\xdef\@act{\global\noexpand\keywords@list{\the\keywords@list#1}}\@act
\endgroup
}
%
% SECTION, SUBSECTION ETC.
% we do not like article appearance:
%
\renewcommand\section{%
\@startsection
{section}%
{1}%
{\z@}%
{-\bigskipamount}%
{\medskipamount}%
{\raggedright\bfseries\mathversion{bold}}%
}
\renewcommand\subsection{%
\@startsection
{subsection}%
{2}%
{\z@}%
{-\bigskipamount}%
{\medskipamount}%
{\raggedright\bfseries\itshape\mathversion{bold}}%
}
\renewcommand\subsubsection{%
\@startsection
{subsubsection}%
{3}%
{\z@}%
{-\bigskipamount}%
{\medskipamount}%
{\raggedright\itshape}%
}
\renewcommand\paragraph{%
\@startsection
{paragraph}%
{4}%
{\z@}%
{\medskipamount}%
{-1em}%
{\bfseries}%
}
\renewcommand\subparagraph{%
\@startsection
{subparagraph}%
{5}%
{\z@}%
{\medskipamount}%
{-1em}%
{\itshape}%
}
% Format for the counter:
\def\section@numbersep{.}
\def\subsection@numbersep{.}
\def\subsubsection@numbersep{.}
\def\paragraph@numbersep{.}
\def\subparagraph@numbersep{.}
%
\def\@seccntformat#1{{%
\csname #1@prefix\endcsname
\csname the#1\endcsname
\csname#1@numbersep\endcsname\enspace
}}
%
\let\specialsection\section
%
\@namedef{specialsection*}{\section*}
%
% sections: bjpslayout
%
\if@bjpslayout
\renewcommand\section{%
\@startsection
{section}%
{1}%
{\z@}%
{-\bigskipamount}%
{\medskipamount}%
{\large\bfseries\mathversion{bold}\raggedright}%
}
\renewcommand\subsection{%
\@startsection
{subsection}%
{2}%
{\z@}%
{-\medskipamount}%
{\smallskipamount}%
{\bfseries\mathversion{bold}\raggedright}%
}
\renewcommand\subsubsection{%
\@startsection
{subsubsection}%
{3}%
{\z@}%
{\medskipamount}%
{-10pt}%
{\normalsize\itshape}%
}
%
\def\subsubsection@prefix{\upshape}
%
\def\section@numbersep{}
\def\subsection@numbersep{}
\def\subsubsection@numbersep{}
\def\paragraph@numbersep{}
\def\subparagraph@numbersep{}
\fi
%
% sections: IMS layout
%
\if@imslayout
\renewcommand\section{%
\@startsection
{section}%
{1}%
{\parindent}%
{\medskipamount}%
{-10pt}%
{\normalsize\upshape\bfseries\mathversion{bold}}%
}
\renewcommand\subsection{%
\@startsection
{subsection}%
{2}%
{\parindent}%
{\medskipamount}%
{-10pt}%
{\subsection@shape}%
}
\def\subsection@shape{\normalsize\itshape}
\def\subsection@prefix{\upshape}
\renewcommand\subsubsection{%
\@startsection
{subsubsection}%
{3}%
{\parindent}%
{\medskipamount}%
{-10pt}%
{\normalsize\itshape}%
}
\def\subsubsection@prefix{\upshape}
\renewcommand\paragraph{%
\@startsection
{paragraph}%
{4}%
{\z@}%
{\smallskipamount}%
{-10pt}%
{\normalsize\itshape}%
}
\renewcommand\subparagraph{%
\@startsection
{subparagraph}%
{5}%
{\z@}%
{0.1pt}%
{-1em}%
{\normalsize\itshape}%
}
% must be used for the appendix \section and \thebibliography
\renewcommand\specialsection{%
\@startsection
{section}%
{1}%
{\z@}%
{\medskipamount}%
{\smallskipamount}%
{\let\@hangfrom\noindent\normalsize\centering\MakeTextUppercase}%
}
\fi
%
% sections: STS layout
%
\if@stslayout
\def\sec@raggedright{%
\def\\{\hfill\break}%
\@rightskip=\@flushglue
\rightskip=\@rightskip
\leftskip=\z@skip
\parindent=\z@
}
% last line will centered to page width
\def\fl@hangfrom#1{\noindent {#1}}
\def\TO@fl{\let\@hangfrom\fl@hangfrom}
%
\renewcommand\section{%
\@startsection
{section}%
{1}%
{\z@}%
{\medskipamount}%
{\smallskipamount}%
{\centering\TO@fl\normalsize\sffamily\bfseries\mathversion{bold}\MakeTextUppercase}%
}
\renewcommand\subsection{%
\@startsection
{subsection}%
{2}%
{\z@}%
{\smallskipamount}%
{\smallskipamount}%
{\normalsize\sffamily\bfseries\mathversion{bold}\sec@raggedright}%
}
\renewcommand\subsubsection{%
\@startsection
{subsubsection}%
{3}%
{\parindent}%
{\smallskipamount}%
{-.5em}%
{\normalsize\itshape}%
}
\renewcommand\paragraph{%
\@startsection
{paragraph}%
{4}%
{\parindent}%
{\z@}%
{-4pt}%
{\normalsize\itshape}%
}
\renewcommand\subparagraph{%
\@startsection
{subparagraph}%
{5}%
{\z@}%
{0.1pt}%
{-1em}%
{\normalsize\itshape}%
}
% must be used for the \thebibliography
\renewcommand\specialsection{%
\@startsection
{section}%
{1}%
{\z@}%
{\bigskipamount}%
{\smallskipamount}%
{\normalsize\centering\MakeTextUppercase}%
}
% Format for the counter:
\def\section@numbersep{.}
\def\subsection@numbersep{}
\def\subsubsection@numbersep{}
\def\paragraph@numbersep{}
\def\subparagraph@numbersep{}
\fi
%
% sections: BJ layout
%
\if@bjlayout
\renewcommand\section{%
\@startsection
{section}%
{1}%
{\z@}%
{-\bigskipamount}%
{\medskipamount}%
{\Large\bfseries\mathversion{bold}\raggedright}%
}
\renewcommand\subsection{%
\@startsection
{subsection}%
{2}%
{\z@}%
{-\bigskipamount}%
{\medskipamount}%
{\large\bfseries\mathversion{bold}\raggedright}%
}
\renewcommand\subsubsection{%
\@startsection
{subsubsection}%
{3}%
{\z@}%
{-\medskipamount}%
{\smallskipamount}%
{\itshape\raggedright}%
}
\renewcommand\paragraph{%
\@startsection
{paragraph}%
{4}%
{\z@}%
{\medskipamount}%
{-10pt}%
{\xishape}%
}
\renewcommand\subparagraph{%
\@startsection
{subparagraph}%
{5}%
{\parindent}%
{0.1pt}%
{-1em}%
{\xishape}%
}
\fi
%
% sections: AIHP layout
%
\if@aihplayout
\renewcommand\section{%
\@startsection
{section}%
{1}%
{\z@}%
{-\bigskipamount}%
{\medskipamount}%
{\bfseries\mathversion{bold}\raggedright}%
}
\renewcommand\subsection{%
\@startsection
{subsection}%
{2}%
{\z@}%
{-\medskipamount}%
{\medskipamount}%
{\itshape\raggedright}%
}
\renewcommand\subsubsection{%
\@startsection
{subsubsection}%
{3}%
{\z@}%
{-\medskipamount}%
{.01\p@}%
{\itshape\raggedright}%
}
\renewcommand\paragraph{%
\@startsection
{paragraph}%
{4}%
{\z@}%
{\medskipamount}%
{-10pt}%
{\itshape}%
}
\renewcommand\subparagraph{%
\@startsection
{subparagraph}%
{5}%
{\parindent}%
{0.1pt}%
{-1em}%
{\itshape}%
}
\fi
%
% \thanksref will not print "??" if label is undefined
%
\if@noundefthanksref
%
\AtBeginDocument{\let\sv@thankref@hyperlink\thankref@hyperlink}%
%
\def\thanksref@hook{%
\@ifundefined{r@\@tempb thanks}%
{%
\let\thankref@hyperlink\@gobble
\let\@tempa\@empty
}%
{\let\thankref@hyperlink\sv@thankref@hyperlink}%
}
%
\fi
%
% loading of amsmath
%
\def\set@amsthm{%
\def\ims@thmshape{0}%
\if@imslayout \def\ims@thmshape{1}\fi
\if@stslayout \def\ims@thmshape{1}\fi
\if@bjlayout \def\ims@thmshape{2}\fi
\if@aihplayout \def\ims@thmshape{3}\fi
\if@bjpslayout \def\ims@thmshape{3}\fi
\ifcase\ims@thmshape
\or %1
\thm@notefont{\upshape}%
\newtheoremstyle{plain}%
{\medskipamount}%
{\medskipamount}%
{\itshape}%
{\parindent}%
{\scshape}%
{.}%
{1em}%
{}%
\newtheoremstyle{definition}%
{\medskipamount}%
{\medskipamount}%
{\normalfont}%
{\parindent}%
{\scshape}%
{.}%
{1em}%
{}%
\newtheoremstyle{remark}%
{\medskipamount}%
{\medskipamount}%
{\normalfont}%
{\parindent}%
{\scshape}%
{.}%
{1em}%
{}%
%
\renewenvironment{proof}[1][\proofname]%
{%
\par
\pushQED{\qed}%
\normalfont
\topsep=\medskipamount
\trivlist
\labelsep.5em%
\item[\hskip\labelsep\hskip\parindent \scshape ##1\@addpunct{.}]\ignorespaces
}{%
\popQED
\endtrivlist
\@endpefalse
}%
\or %2
\newtheoremstyle{plain}%
{\medskipamount}%
{\medskipamount}%
{\itshape}%
{\z@}%
{\bfseries}%
{.}%
{0.5em}%
{\thmname{##1}\thmnumber{ ##2}\thmnote{ (##3)}}%
\newtheoremstyle{definition}%
{\medskipamount}%
{\medskipamount}%
{\itshape}%
{\z@}%
{\bfseries}%
{.}%
{0.5em}%
{}%
\newtheoremstyle{remark}%
{\medskipamount}%
{\medskipamount}%
{\normalfont}%
{\z@}%
{\bfseries}%
{.}%
{0.5em}%
{}%
%
\renewenvironment{proof}[1][\proofname]%
{%
\par
\pushQED{\qed}%
\normalfont
\topsep=\medskipamount\relax
\trivlist
\item[\hskip\labelsep \bfseries ##1\@addpunct{.}]\ignorespaces
}{%
\popQED
\endtrivlist
\@endpefalse
}%
\or %3
\renewenvironment{proof}[1][\proofname]%
{%
\par
\pushQED{\qed}%
\normalfont
\topsep=\medskipamount\relax
\trivlist
\item[\hskip\labelsep \bfseries ##1\@addpunct{.}]\ignorespaces
}{%
\popQED
\endtrivlist
\@endpefalse
}%
\if@bjpslayout
\newtheoremstyle{remark}%
{\smallskipamount}%
{\smallskipamount}%
{\normalfont}%
{\z@}%
{\bfseries}%
{.}%
{.5em}%
{}%
\fi
\else
\fi
}
%
\if@load@amsmath
\if@amsmath@leqno
\PassOptionsToPackage{leqno}{amsmath}
\fi
\let\Bbbk\undefined
\RequirePackage[cmex10]{amsmath}
\if@bjlayout
\RequirePackage{amssymb,mathrsfs}
\newcommand\hmmax{0}
\newcommand\bmmax{1}
\RequirePackage{bm}
\def\env@cases{%
\let\@ifnextchar\new@ifnextchar
\left\lbrace
\everymath={\displaystyle}%
\def\arraystretch{1.2}%
\array{@{}l@{\qquad}l@{}}%
}%
\def\matrix@array@colsep{.5em}
\preto\smallmatrix{\ex@=1.4\p@}
\preto\env@matrix{%
\arraycolsep=\matrix@array@colsep\relax
\csname pre@matrix@hook\endcsname
}
\def\binom#1#2{\begin{pmatrix} #1 \cr #2\end{pmatrix}}
\def\set@pre@matrix@hook{\def\pre@matrix@hook{\everymath={\displaystyle}}}
\everydisplay=\expandafter{\the\everydisplay\set@pre@matrix@hook}%
\fi
\fi
%
\if@imsart@seceqn
\renewcommand{\theequation}{\thesection.\arabic{equation}}
\ifdefined\HCode\else
\if@load@amsmath
\numberwithin{equation}{section}
\else
\@addtoreset{equation}{section}
\fi
\fi
\fi
%
% loading of amsthm
%
\if@load@amsthm
\RequirePackage{amsthm}
\set@amsthm
\else
\AtBeginDocument{\@ifpackageloaded{amsthm}{\set@amsthm}{}}
\fi
%
% Acknowledgements
%
\def\acknowledgementsname{Acknowledgments}
\newenvironment{acks}[1][\acknowledgementsname]{\section*{#1}}{\par}
\let\ack\undefined \let\endack\undefined
\if@balayout
\renewenvironment{acks}[1][\acknowledgementsname]%
{%
\vskip0.5\baselineskip
\small
{\noindent\normalfont\sffamily\bfseries\acknowledgementsname}\par
\begingroup\parindent 0pt\parskip 0.5\baselineskip
}%
{\endgroup}
\fi
%
% Funding
%
\def\fundingname{Funding}
\newenvironment{funding}[1][\fundingname]{\begin{acks}[\fundingname]}{\end{acks}}
%
% thebibliography, loading natbib
%
% \citefix -- fixes \NAT@citex (to make a hyperlink from year component in cite command).
\def\citefix{%
\def\NAT@citex[##1][##2]##3{%
\NAT@sort@cites{##3}%
\let\@citea\@empty
\@cite{%
\let\NAT@nm\@empty
\let\NAT@year\@empty
\@for\@citeb:=\NAT@cite@list\do{%
\edef\@citeb{\expandafter\@firstofone\@citeb}%
\if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
\@ifundefined{b@\@citeb\@extra@b@citeb}%
{%
\@citea
{\reset@font\bfseries ?}%
\NAT@citeundefined
\PackageWarning{natbib}{Citation `\@citeb' on page
\thepage \space undefined}%
\def\NAT@date{}%
}%
{%
\let\NAT@last@nm=\NAT@nm
\let\NAT@last@yr=\NAT@year
\NAT@parse{\@citeb}%
\ifNAT@longnames
\@ifundefined{bv@\@citeb\@extra@b@citeb}%
{%
\let\NAT@name=\NAT@all@names
\global\@namedef{bv@\@citeb\@extra@b@citeb}{}%
}%
{}%
\fi
\ifNAT@full
\let\NAT@nm\NAT@all@names
\else
\let\NAT@nm\NAT@name
\fi
\ifNAT@swa
\ifcase\NAT@ctype
\if\relax\NAT@date\relax
\@citea\NAT@nmfmt{\NAT@nm}%
\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@date\hyper@natlinkend
\else
\ifx\NAT@last@nm\NAT@nm\NAT@yrsep
\ifx\NAT@last@yr\NAT@year
\hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@exlab
\hyper@natlinkend
\else
\unskip\
\hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@date
\hyper@natlinkend
\fi
\else
\@citea\NAT@nmfmt{\NAT@nm}%
\NAT@aysep\
\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@date\hyper@natlinkend
\fi
\fi
\or
\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@nmfmt{\NAT@nm}\hyper@natlinkend
\or
\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@date\hyper@natlinkend
\or
\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@alias\hyper@natlinkend
\fi
\def\@citea{\NAT@sep\ }%
\else
\ifcase\NAT@ctype
\if\relax\NAT@date\relax
\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@nmfmt{\NAT@nm}\hyper@natlinkend
\else
\ifx\NAT@last@nm\NAT@nm\NAT@yrsep
\ifx\NAT@last@yr\NAT@year
\hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@exlab
\hyper@natlinkend
\else
\unskip\
\hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@date
\hyper@natlinkend
\fi
\else
\@citea\NAT@nmfmt{\NAT@nm}%
\ \NAT@@open\if*##1*\else##1\ \fi
\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@date\hyper@natlinkend
\fi
\fi
\or
\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@nmfmt{\NAT@nm}\hyper@natlinkend
\or
\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@date\hyper@natlinkend
\or
\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
\NAT@alias\hyper@natlinkend
\fi
\if\relax\NAT@date\relax
\def\@citea{\NAT@sep\ }%
\else
\def\@citea{\NAT@@close\NAT@sep\ }%
\fi
\fi
}%
}%
\ifNAT@swa
\else
\if*##2*\else\NAT@cmt##2\fi
\if\relax\NAT@date\relax\else\NAT@@close\fi
\fi
}{##1}{##2}%
}%
\let\@citex\NAT@citex
}
%
\def\set@natbib{%
\if@linksfromyear \citefix \fi
\let\bibfont\thebibliography@size
\setlength\bibsep{0pt}%
}
%
\if@load@natbib
\RequirePackage{natbib}
\else
\let\xxx@thebibliography\thebibliography
\def\thebibliography{\thebibliography@size\xxx@thebibliography}
\g@addto@macro\@openbib@code{\itemsep\z@}
\fi
\AtBeginDocument{\@ifpackageloaded{natbib}{\set@natbib}{}}
%
% thebibliography - structured
%
% Common macros:
%
% Setting a "style" for a command:
% \set@bibl@cmd{bvolume} == \def\bvolume#1{{\bvolume@style #1}}
%
\def\set@bibl@cmd#1{\expandafter\def\csname #1\endcsname##1{{\csname #1@style\endcsname##1}}}
%
\let\endbibitem\relax
%
% bauthor, beditor
%
\def\bbl@bauthor#1{%
\csname bauthor@hook\endcsname
{%
\let\binits\@firstofone
\let\bsnm\@firstofone
\let\bfnm\@gobble
\let\bparticle\@firstofone
\let\bsuffix\@firstofone
\bauthor@style
#1%
}}
%
\def\bbl@beditor#1{{%
\let\binits\@firstofone
\let\bsnm\@firstofone
\let\bfnm\@gobble
\let\bparticle\@firstofone
\let\bsuffix\@firstofone
\beditor@style
#1%
}}
%
% bid
% \bid{MR={},doi={},...}
%
\if@print@bid@doi
\let\bid@mr@arg\@empty
\let\bid@doi@arg\@empty
\define@key{bid}{mr}{\edef\bid@mr@arg{#1}}
\define@key{bid}{doi}{\edef\bid@doi@arg{#1}}
\def\bid@MR#1{\ \MR{#1}\ignorespaces}
\def\check@doiurl@prefix#1#2#3#4#5\end{%
\edef\@doiurlfull{0}%
\def\@doiurlhttp{http}%
\def\@doiurlstart{#1#2#3#4}%
\ifx\@doiurlstart\@doiurlhttp
\edef\@doiurlfull{1}%
\fi
}
\def\bid@doiurl#1{\
\check@doiurl@prefix#1\end
\ifnum\@doiurlfull>\z@
\ims@href{#1}{\ims@nolinkurl{#1}}%
\else
\ims@href{\doi@base#1}{\ims@nolinkurl{\doi@base#1}}%
\fi
\ignorespaces
}
\else
\define@key{bid}{mr}{\MR{#1}}
\define@key{bid}{doi}{}
\fi
\define@key{bid}{pubmed}{}
\define@key{bid}{pmcid}{}
\define@key{bid}{pmid}{}
\define@key{bid}{mid}{}
\define@key{bid}{issn}{}
\define@key{bid}{pii}{}
%
\def\bbl@bid#1{%
\setkeys{bid}{#1}%
\if@print@bid@doi
\ifx\bid@mr@arg\@empty
\else
\expandafter\bid@MR\expandafter{\bid@mr@arg}%
\fi
\ifx\bid@doi@arg\@empty
\else
\expandafter\bid@doiurl\expandafter{\bid@doi@arg}%
\fi
\fi
}
%
% for compatibility with old bibtex style
\if@print@bid@doi
\let\bdoi\bid@doiurl
\else
\def\bdoi#1{\ignorespaces}
\fi
%
% common@pub@types
%
\def\common@pub@types{%
\def\AND{and }%
\let\betal\@firstofone
\set@bibl@cmd{btitle}%
\let\byear\@firstofone
\let\bpages\@firstofone
\let\bmisc\@firstofone
\let\bnote\@firstofone
\let\banumber\@firstofone
\if@print@bid@doi
\let\bmrnumber\bid@MR
\else
\let\bmrnumber\MR
\fi
\let\bid\bbl@bid
\set@bibl@cmd{bvolume}%
\csname common@pub@types@hook\endcsname
}
%
% default styles
%
\setpkgattr{bauthor}{style}{\scshape}
\setpkgattr{beditor}{style}{\scshape}
%
\setpkgattr{bjournal}{style}{\itshape}
\setpkgattr{bbooktitle}{style}{\itshape}
\setpkgattr{bseries}{style}{\itshape}
%
\setpkgattr{bvolume}{style}{\bfseries}
%
% barticle
%
\def\barticle{\@ifnextchar[{\@barticle}{\@barticle[]}}
%
\def\@barticle[#1]{%
\common@pub@types
\let\bauthor\bbl@bauthor
\set@bibl@cmd{bjournal}%
}
%
% bbook
%
\def\bbook{\@ifnextchar[{\@bbook}{\@bbook[]}}
%
\def\@bbook[#1]{%
\common@pub@types
\let\bauthor\bbl@bauthor
\let\beditor\bbl@beditor
\let\bedition\@firstofone
\set@bibl@cmd{bseries}%
\let\bpublisher\@firstofone
\let\baddress\@firstofone
\let\blocation\@firstofone
\let\bisbn\@gobble
%
\let\btitle@style\itshape
}
%
% bincollection
%
\def\bincollection{\@ifnextchar[{\@bincollection}{\@bincollection[]}}
%
\def\@bincollection[#1]{%
\common@pub@types
\let\bauthor\bbl@bauthor
\let\beditor\bbl@beditor
\set@bibl@cmd{bbooktitle}%
\let\bchapter\@firstofone
\let\bedition\@firstofone
\set@bibl@cmd{bseries}%
\let\bpublisher\@firstofone
\let\baddress\@firstofone
\let\blocation\@firstofone
\let\bisbn\@gobble
\def\bauthor@hook{\let\beditor@style\relax}%
}
%
% binproceedings
%
\def\binproceedings{\@ifnextchar[{\@binproceedings}{\@binproceedings[]}}
%
\def\@binproceedings[#1]{%
\common@pub@types
\let\bauthor\bbl@bauthor
\let\beditor\bbl@beditor
\set@bibl@cmd{bbooktitle}%
\set@bibl@cmd{bseries}%
\let\borganization\@firstofone
\let\bpublisher\@firstofone
\let\baddress\@firstofone
\let\blocation\@firstofone
\let\bisbn\@gobble
}
%
% binbook
%
\def\binbook{\@ifnextchar[{\@binbook}{\@binbook[]}}
%
\def\@binbook[#1]{%
\common@pub@types
\let\bauthor\bbl@bauthor
\let\beditor\bbl@beditor
\set@bibl@cmd{bbooktitle}%
\let\bchapter\@firstofone
\let\bedition\@firstofone
\set@bibl@cmd{bseries}%
\let\bpublisher\@firstofone
\let\baddress\@firstofone
\let\blocation\@firstofone
\let\bisbn\@gobble
%
\let\btitle@style\itshape
}
%
% bproceedings
%
\def\bproceedings{\@ifnextchar[{\@bproceedings}{\@bproceedings[]}}
%
\def\@bproceedings[#1]{%
\common@pub@types
\let\bauthor\bbl@bauthor
\let\beditor\bbl@beditor
\let\bedition\@firstofone
\set@bibl@cmd{bseries}%
\let\bpublisher\@firstofone
\let\borganization\@firstofone
\let\baddress\@firstofone
\let\blocation\@firstofone
\let\bisbn\@gobble
%
\let\btitle@style\itshape
}
%
% btechreport
%
\def\btechreport{\@ifnextchar[{\@btechreport}{\@btechreport[]}}
%
\def\@btechreport[#1]{%
\common@pub@types
\let\bauthor\bbl@bauthor
\let\btype\@firstofone
\let\bnumber\@firstofone
\let\binstitution\@firstofone
\let\bpublisher\@firstofone
\let\baddress\@firstofone
\let\blocation\@firstofone
}
%
% bmanual
%
\def\bmanual{\@ifnextchar[{\@bmanual}{\@bmanual[]}}
%
\def\@bmanual[#1]{%
\common@pub@types
\let\bauthor\bbl@bauthor
\let\bedition\@firstofone
\let\borganization\@firstofone
\let\bpublisher\@firstofone
\let\baddress\@firstofone
\let\blocation\@firstofone
\let\bisbn\@gobble
}
%
% mastersthesis
%
\def\bmastersthesis{\@ifnextchar[{\@bmastersthesis}{\@bmastersthesis[]}}
%
\def\@bmastersthesis[#1]{%
\common@pub@types
\let\bauthor\bbl@bauthor
\let\bschool\@firstofone
\let\bpublisher\@firstofone
\let\btype\@firstofone
\let\baddress\@firstofone
\let\blocation\@firstofone
}
%
% phdthesis
%
\def\bphdthesis{\@ifnextchar[{\@bphdthesis}{\@bphdthesis[]}}
%
\def\@bphdthesis[#1]{%
\common@pub@types
\let\bauthor\bbl@bauthor
\let\bpublisher\@firstofone
\let\bschool\@firstofone
\let\btype\@firstofone
\let\baddress\@firstofone
\let\blocation\@firstofone
}
%
% bbooklet
%
\def\bbooklet{\@ifnextchar[{\@bbooklet}{\@bbooklet[]}}
%
\def\@bbooklet[#1]{%
\common@pub@types
\let\bauthor\bbl@bauthor
\let\bhowpublished\@firstofone
\let\baddress\@firstofone
\let\blocation\@firstofone
}
%
% bunpublished
%
\def\bunpublished{\@ifnextchar[{\@bunpublished}{\@bunpublished[]}}
%
\def\@bunpublished[#1]{%
\common@pub@types
\let\bauthor\bbl@bauthor
}
%
% bmisc
%
\def\bmisc{\@ifnextchar[{\@bmisc}{\@bmisc[]}}
%
\def\@bmisc[#1]{%
\common@pub@types
\let\bauthor\bbl@bauthor
\let\bhowpublished\@firstofone
}
%
% \bptok
%
\def\bptok#1{\ignorespaces}
%
\ifx\OrigBibText\undefined \long\def\OrigBibText#1\endOrigBibText{}\fi
%
% appendix
%
\if@imslayout
%
% appendix mess up everything in this layout:
%
\renewcommand\appendix{%
\par
\def\subsection@shape{\normalsize\upshape\bfseries\mathversion{bold}}%
\let\section\specialsection
\def\section{\@ifnextchar*{\@appsectionstar}{\@appsectionnostar}}%
\def\section@prefix{\appendixname\ }%
\def\section@numbersep{:}%
\setcounter{section}{0}%
\setcounter{subsection}{0}%
\gdef\thesection{\@Alph\c@section}%
}
%
% \section*{Appendix} -> APPENDIX
\def\@appsectionstar*#1{%
\ifx.#1.%
\specialsection*{\appendixname}%
\else
\specialsection*{\appendixname: #1}%
\fi
\setcounter{section}{1}%
}
%
% \section{} -> APPENDIX A
% \section{proof} -> APPENDIX A: PROOF
\def\@appsectionnostar#1{%
\ifx.#1.%
\def\section@numbersep{}\specialsection[\appendixname\ \thesection]{}%
\else
\def\section@numbersep{:}\specialsection{#1}%
\fi
}
%
% dirty trick with \thebibliography
\let\old@thebibliography\thebibliography
\def\thebibliography{\let\section\specialsection\old@thebibliography}
%
\else
%
\renewcommand\appendix{%
\par
\let\old@section\section
\def\section{\@ifnextchar*{\@appsectionstar}{\@appsectionnostar}}%
\def\section@prefix{\appendixname\ }%
\def\section@numbersep{:}%
\setcounter{section}{0}%
\setcounter{subsection}{0}%
\gdef\thesection{\@Alph\c@section}%
}
%
\def\@appsectionstar*#1{%
\old@section*{#1}%
\setcounter{section}{1}%
}
%
\def\@appsectionnostar#1{%
\ifx.#1.%
\def\section@numbersep{}\old@section[\appendixname\ \thesection]{}%
\else
\def\section@numbersep{:}\old@section{#1}%
\fi
}
\fi
%
% supplement
%
%\begin{supplement}[id=suppA]
% \sname{Supplement A}
% \stitle{}
% \slink[doi]{}
% \slink[url]{https://lib.stat.cmu.edu/aoas/???/???}
% \sdatatype{.zip}
% \sfilename{foo.zip}
% \sdescription{}
%\end{supplement}
% \thesuppdoi{suppA}
% \ref{suppA}
% \hyperlink{suppA}{text}
%
\def\slink@data@exists{0}
\def\supplement@name{Supplementary Material}
%
\def\sname#1{\def\@sname{#1}\def\@currentlabel{#1}}
\def\stitle#1{\def\@stitle{#1}}
\def\sdatatype#1{\def\@sdatatype{#1}\xdef\slink@data@exists{1}}
\def\sfilename#1{}
%
\define@key{slink}{text}{\@namedef{slink@\slink@type @text}{#1}}
\define@key{slink}{doi}[true]{\edef\slink@type{doi}}
\define@key{slink}{url}[true]{\edef\slink@type{url}}
%
\def\slink[#1]#2{%
\setkeys{slink}{#1}%
\@namedef{slink@\slink@type}{#2}%
\xdef\slink@data@exists{1}%
}
\def\sdescription#1{\def\@sdescription{#1}}
%
\def\suppsection@fmt{\specialsection*{\supplement@name}}
%
\def\slink@doi@prefix{doi: }
\def\slink@doi@text@fmt#1{#1}
\def\slink@doi@notext@fmt#1{#1}
\def\slink@doi@fmt{%
\slink@doi@prefix
\@ifundefined{slink@doi@text}%
{\ims@href{\doi@base\slink@doi}{\slink@doi@notext@fmt{\slink@doi}}}%
{\ims@href{\doi@base\slink@doi}{\slink@doi@text@fmt{\slink@doi@text}}}%
\@ifundefined{supp@label}%
{}%
{%
\expandafter\xdef\csname\supp@label @doi\endcsname{\slink@doi}%
\expandafter\xdef\csname\supp@label @url\endcsname{\doi@base\slink@doi}%
}%
}
%
\def\slink@url@text@fmt#1{#1}
\def\slink@url@notext@fmt#1{#1}
\def\slink@url@fmt{%
\@ifundefined{slink@url@text}%
{\ims@href{\slink@url}{\slink@url@notext@fmt{\slink@url}}}%
{\ims@href{\slink@url}{\slink@url@text@fmt{\slink@url@text}}}%
\@ifundefined{supp@label}%
{}%
{\expandafter\xdef\csname\supp@label @url\endcsname{\slink@url}}%
}
%
\def\thesuppdoi@prefix{DOI: }
\def\thesuppdoi#1{%
\@ifundefined{#1@doi}%
{\@latex@error{Undefined supplement id=#1}{??}}%
{%
\def\@tempx{\csname #1@doi\endcsname}%
\@ifundefined{#1@url}%
{\def\@tempy{\doi@base\csname #1@url\endcsname}}%
{\def\@tempy{\csname #1@url\endcsname}}%
\url@fmt{\thesuppdoi@prefix}{}{\@tempx}{\@tempy}%
}%
}
%
\define@key{supplement}{id}{\def\supp@label{#1}}
%
\long\def\supplement{\@ifnextchar[{\@supplement}{\@supplement[]}}
%
\long\def\@supplement[#1]{%
\suppsection@fmt
\global\let\suppsection@fmt\smallskip
\setkeys{supplement}{#1}%
}
%
\def\stitle@fmt#1{\textbf{#1\ }}
\def\stitle@sep{\\}
%
\def\endsupplement{%
\@ifundefined{@sname}%
{}%
{%
\@ifundefined{supp@label}%
{}%
{\hypertarget{\supp@label}{}\label{\supp@label}}\textbf{\@sname: }%
}%
\@ifundefined{@stitle}%
{}%
{\stitle@fmt{\@stitle}}%
%
\stitle@sep
\ifnum\slink@data@exists>\z@(\fi
\@ifundefined{slink@doi}{}{\slink@doi@fmt}%
\@ifundefined{slink@url}{}{\slink@url@fmt}%
\@ifundefined{@sdatatype}{}{; \@sdatatype}%
\@ifundefined{@sfilename}{}{\@sfilename}%
\ifnum\slink@data@exists>\z@). \fi
\@ifundefined{@sdescription}{}{\@sdescription}%
\par
}
%
% TOC in "article" class is a mess:
%
% for hyperref
\def\toclevel@title{0}
%
\newcommand*\l@title[2]{}
\newcommand*\l@author[2]{}
\newcommand*\l@doi[2]{}
\newcommand*\l@arxiv[2]{}
\newcommand*\l@jobname[2]{}
\newcommand*\l@begintocitem[2]{}
\newcommand*\l@endtocitem[2]{}
%
\@ifclassloaded{article}{\@changetoctrue}{}
%
\def\toc@size{}
\if@changetoc
%
\@ifundefined{contentsname@cmd}{\def\contentsname@cmd{\section*{\contentsname}}}{}
%
\renewcommand\tableofcontents{%
\nocontentsline
\contentsname@cmd
\bgroup
\toc@size
\@starttoc{toc}%
\egroup
}
%
\renewcommand*\l@section{\@dottedtocline{1}{\z@}{1.5em}}
%
\fi
%
\if@bjlayout
\def\toc@size{\footnotesize}
\fi
%
% number lines
%
\ifnumberlines@
%
\setpkgattr{numberlines}{size}{\scriptsize\ttfamily}
\setpkgattr{numberlines}{skip}{24\p@}
%
\def\numberlines@hook{%
\appto\@evenhead\put@numberlines@box
\appto\@oddhead\put@numberlines@box
}
%
\gappto\ps@imsheadings\numberlines@hook
\gappto\ps@copyright\numberlines@hook
%
\newbox\numberlines@box
\newskip\numberlines@box@skip
%
\def\set@numberlines@box{%
\setlength\numberlines@box@skip\headsep
\addtolength\numberlines@box@skip{5\p@}%
%
\setbox\numberlines@box\vtop to\textheight{%
\parindent=\z@
\vskip\z@
\@tempcnta=0%
\@tempdima=\z@
\loop
\advance\@tempcnta by 1%
\advance\@tempdima by \baselineskip
\hbox to\textwidth{%
\llap{\numberlines@size\the\@tempcnta\kern\numberlines@skip}%
\hfill
\rlap{\numberlines@size\kern\numberlines@skip\the\@tempcnta}%
}%
\ifdim\@tempdima<\textheight\repeat
\vss
}%
%
\ht\numberlines@box=\z@
\dp\numberlines@box=\z@
}
%
\def\put@numberlines@box{\lower\numberlines@box@skip\hbox to\z@{\hss\copy\numberlines@box}}
%
\AtBeginDocument{\set@numberlines@box}
%
\fi
%
% page layout frame
%
\if@imsart@showframe
%
\AtBeginDocument{%
\ifcsundef{definecolor}%
{\RequirePackage{color}}%
{}%
\definecolor{imsgray}{gray}{0.5}%
}%
%
\overfullrule5\p@
\setpkgattr{showframe}{rulecolor}{imsgray}
\setpkgattr{showframe}{rulewidth}{.05pt}
%
\def\showframe@hook{%
\appto\@evenhead\put@showframe@box
\appto\@oddhead\put@showframe@box
}
%
\gappto\ps@imsheadings\showframe@hook
\gappto\ps@copyright\showframe@hook
%
\newbox\showframe@box
%
\def\set@showframe@box{%
\global\setbox\showframe@box\vbox to\z@{{%
\offinterlineskip
\normalcolor
\vbox to \z@{\vss\textcolor{\showframe@rulecolor}{\hrule height\showframe@rulewidth width\textwidth}}%
\vskip \headheight
\vbox to \z@{\vss\textcolor{\showframe@rulecolor}{\hrule height\showframe@rulewidth width\textwidth}}%
\vskip \headsep
\vbox to \z@{\vss\textcolor{\showframe@rulecolor}{\hrule height\showframe@rulewidth width\textwidth}}%
\hbox to \textwidth%
{%
\llap{\textcolor{\showframe@rulecolor}{\vrule height\textheight width\showframe@rulewidth}}%
\hfil\textcolor{\showframe@rulecolor}{\vrule height\textheight width\showframe@rulewidth}%
}%
\vbox to \z@{\vss\textcolor{\showframe@rulecolor}{\hrule height\showframe@rulewidth width\textwidth}}%
\vskip \footskip
\vbox to \z@{\vss\textcolor{\showframe@rulecolor}{\hrule height\showframe@rulewidth width\textwidth}}%
\vss
}}%
}
%
\def\put@showframe@box{\raise\headheight\hbox to\z@{\hss\copy\showframe@box}}
%
\AtBeginDocument{\set@showframe@box}
%
\fi
%
% INITIALIZATION
%
% Read local configuration file (if exist):
% imsart.cnf imsart-ps.cnf
%
\@input{\imsfmt@name\journal@id.cnf}
\@input{\imsfmt@name-vtex.cnf}
%
\@twosidetrue
\pagenumbering{arabic}
\frenchspacing
\init@settings
\pagestyle{imsheadings}
%
\endinput
%%
%% End of file `imsart.sty'.