mirror of
https://github.com/monero-project/research-lab.git
synced 2024-11-17 16:27:41 +00:00
1833 lines
55 KiB
TeX
1833 lines
55 KiB
TeX
%%
|
|
%% LaTeX 2e class file for the processing of LaTeX2e files
|
|
%% for the BioMed Central
|
|
%%
|
|
%% Used in these publications by the Monero Research Lab
|
|
%%
|
|
%% Macros written by Vytas Statulevicius, VTeX, Lithuania
|
|
%% for the BioMed Central
|
|
%% Please submit bugs or your comments to vytas@vtex.lt
|
|
%%
|
|
%% The original distribution is located at:
|
|
%% http://support.e-publications.org/bmc
|
|
%%
|
|
%% This class file loads standart "article.cls" with appropriate
|
|
%% settings and then redefines layout according to BMC style
|
|
%% A lot of efforts are done for the possibility of extraction of
|
|
%% information from the LaTeX file
|
|
%%
|
|
%% You are free to use this style class 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
|
|
|
|
\def\bmcart@name{mrl.cls}
|
|
\def\bmcart@version{2012/06/27}
|
|
|
|
\NeedsTeXFormat{LaTeX2e}
|
|
|
|
\ProvidesClass{mrl}
|
|
[\bmcart@version Monero Research Lab]
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% General options:
|
|
|
|
% 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}
|
|
|
|
% Spacing
|
|
\DeclareOption{doublespacing}{\AtBeginDocument{\renewcommand{\baselinestretch}{1.4}\large\normalsize}}
|
|
\DeclareOption{singlespacing}{\AtBeginDocument{\renewcommand{\baselinestretch}{1.0}\large\normalsize}}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Loading standart "article" class
|
|
|
|
\PassOptionsToClass{twoside}{article}
|
|
\PassOptionsToPackage{fleqn}{amsmath}
|
|
\PassOptionsToPackage{sort&compress,numbers}{natbib}
|
|
\PassOptionsToPackage{colorlinks,citecolor=blue,urlcolor=blue,linkcolor=blue,pagecolor=blue}{hyperref}
|
|
|
|
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
|
|
\ProcessOptions*
|
|
|
|
\LoadClass{article}
|
|
|
|
%%% start of "vsfleqn2.sty"
|
|
\newdimen\mathindent
|
|
\AtEndOfClass{\mathindent\leftmargini}
|
|
%
|
|
\def\mathtrivlist{\parsep\parskip\topsep\abovedisplayskip
|
|
\ifnum\@listdepth>0 \advance\mathindent by-\leftmargin\fi%
|
|
\@trivlist \labelwidth\z@ \leftmargin\z@
|
|
\itemindent\z@ \def\makelabel##1{##1}}
|
|
|
|
\def\endmathtrivlist{\endtrivlist}
|
|
% \[ \]
|
|
\renewcommand\[{\relax
|
|
\ifmmode\@badmath
|
|
\else
|
|
\begin{mathtrivlist}%
|
|
\@beginparpenalty\predisplaypenalty
|
|
\@endparpenalty\postdisplaypenalty
|
|
\item[]\leavevmode
|
|
\hb@xt@\linewidth\bgroup $\m@th\displaystyle %$
|
|
\hskip\mathindent\bgroup
|
|
\fi}
|
|
\renewcommand\]{\relax
|
|
\ifmmode
|
|
\egroup $\hfil% $
|
|
\egroup
|
|
\end{mathtrivlist}%
|
|
\else \@badmath
|
|
\fi}
|
|
% EQUATION
|
|
\renewenvironment{equation}%
|
|
{\@beginparpenalty\predisplaypenalty
|
|
\@endparpenalty\postdisplaypenalty
|
|
\refstepcounter{equation}%
|
|
\mathtrivlist \item[]\leavevmode
|
|
\hb@xt@\linewidth\bgroup $\m@th% $
|
|
\displaystyle
|
|
\hskip\mathindent}%
|
|
{$\hfil % $
|
|
\displaywidth\linewidth\hbox{\@eqnnum}%
|
|
\egroup
|
|
\endmathtrivlist}
|
|
% EQNARRAY
|
|
\renewenvironment{eqnarray}{%
|
|
\stepcounter{equation}%
|
|
\def\@currentlabel{\p@equation\theequation}%
|
|
\global\@eqnswtrue\m@th
|
|
\global\@eqcnt\z@
|
|
\tabskip\mathindent
|
|
\let\\=\@eqncr
|
|
% \setlength\abovedisplayskip{\topsep}%
|
|
% \ifvmode
|
|
% \addtolength\abovedisplayskip{\partopsep}%
|
|
% \fi
|
|
% \addtolength\abovedisplayskip{\parskip}%
|
|
% \setlength\belowdisplayskip{\abovedisplayskip}%
|
|
\setlength\belowdisplayshortskip{\abovedisplayskip}%
|
|
\setlength\abovedisplayshortskip{\abovedisplayskip}%
|
|
$$\everycr{}\halign to\linewidth% $$
|
|
\bgroup
|
|
\hskip\@centering
|
|
$\displaystyle\tabskip\z@skip{##}$\@eqnsel&%
|
|
\global\@eqcnt\@ne \hskip \tw@\arraycolsep \hfil${##}$\hfil&%
|
|
\global\@eqcnt\tw@ \hskip \tw@\arraycolsep
|
|
$\displaystyle{##}$\hfil \tabskip\@centering&%
|
|
\global\@eqcnt\thr@@
|
|
\hb@xt@\z@\bgroup\hss##\egroup\tabskip\z@skip\cr}%
|
|
{\@@eqncr
|
|
\egroup
|
|
\global\advance\c@equation\m@ne$$% $$
|
|
\@ignoretrue
|
|
}
|
|
%%% end of "vsfleqn2.sty"
|
|
|
|
\RequirePackage{keyval}
|
|
\RequirePackage{xcolor}
|
|
\definecolor{bmcblue}{rgb}{0,0.2,0.4}
|
|
|
|
\RequirePackage{lastpage}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Modifications and "add-on" for article.cls starts:
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Initiate some info:
|
|
\def\journal@name{Monero Research Lab}
|
|
%\let\journal@name\@empty
|
|
\def\journal@url{http://monero.cc/}
|
|
\def\journal@id{-mrl}
|
|
\def\paper@url{}
|
|
\def\info@line{}
|
|
%\def\copyrightowner@text{Monero Research Lab}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Page dimensions
|
|
|
|
%% dimensions: text
|
|
|
|
\setlength\parindent {8\p@}
|
|
\def\true@parindent {8\p@}
|
|
\if@twocolumn
|
|
\setlength\textheight {651\p@}% 648bp
|
|
\setlength\textwidth {484\p@}% 170mm
|
|
\else
|
|
\setlength\textheight {653\p@}% 650.9bp
|
|
\setlength\textwidth {361\p@}% 127mm
|
|
\fi
|
|
|
|
|
|
\setlength\columnsep {5mm}
|
|
\@settopoint\columnsep
|
|
\@tempdima=\textwidth
|
|
\advance\@tempdima by-\columnsep
|
|
\divide\@tempdima by2
|
|
\setlength\columnwidth {\@tempdima}
|
|
\@settopoint\columnwidth
|
|
\setlength\columnseprule{0\p@}
|
|
|
|
\mathindent20\p@
|
|
|
|
%% dimensions: heads
|
|
|
|
\setlength\headheight{12\p@}
|
|
\setlength\headsep {44\p@}
|
|
\setlength\topskip {14\p@}
|
|
\setlength\footskip {2\p@}
|
|
\setlength\maxdepth {.5\topskip}
|
|
|
|
%% dimensions: side margins
|
|
|
|
\setlength\topmargin {27\p@} % 12mm
|
|
\if@twocolumn
|
|
\setlength\oddsidemargin {57\p@}% 20mm gutter margin
|
|
\setlength\evensidemargin {57\p@}% 20mm outer margin
|
|
\else
|
|
\setlength\oddsidemargin {118\p@}% 41.5mm gutter margin
|
|
\setlength\evensidemargin {118\p@}% 41.5mm outer margin
|
|
\fi
|
|
|
|
\advance\oddsidemargin by-1in
|
|
\advance\evensidemargin by-1in
|
|
\advance\topmargin by-1in
|
|
|
|
\def\set@fp@margins{%
|
|
\setlength\oddsidemargin {179\p@}% 63mm first page gutter margin
|
|
\setlength\evensidemargin {57\p@}% 20mm outer first page margin
|
|
\advance\oddsidemargin by-1in
|
|
\advance\evensidemargin by-1in
|
|
}
|
|
\if@twocolumn\else
|
|
\let\set@fp@margin@hook\set@fp@margins
|
|
\fi
|
|
|
|
%% dimensions: skips
|
|
|
|
\if@twocolumn
|
|
\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 6\p@ \@minus 3\p@}
|
|
\else
|
|
\setlength\smallskipamount{7\p@ \@plus 1\p@ \@minus 1\p@}
|
|
\setlength\medskipamount {14\p@ \@plus 3\p@ \@minus 3\p@}
|
|
\setlength\bigskipamount {22\p@ \@plus 6\p@ \@minus 3\p@}
|
|
\fi
|
|
|
|
%% dimensions: page-breaking penalties
|
|
|
|
\clubpenalty=10000
|
|
\widowpenalty=10000
|
|
\if@twocolumn
|
|
\displaywidowpenalty=50
|
|
\fi
|
|
\predisplaypenalty=10000 % Breaking before a math display.
|
|
\pretolerance=100 % Badness tolerance for the first pass (before hyphenation)
|
|
\tolerance=800 % Badness tolerance after hyphenation
|
|
\hbadness=800 % Badness above which bad hboxes will be shown
|
|
\emergencystretch=3\p@
|
|
\hfuzz=1\p@ % do not be to critical about boxes
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fontsizes
|
|
|
|
\if@twocolumn
|
|
\renewcommand\normalsize{%
|
|
\@setfontsize\normalsize\@xpt{12\p@ \@plus.25\p@ \@minus.4\p@}%
|
|
\abovedisplayskip 12\p@ \@plus2\p@ \@minus2\p@
|
|
\abovedisplayshortskip 7\p@ \@plus2\p@
|
|
\belowdisplayshortskip 7\p@ \@plus2\p@
|
|
\belowdisplayskip \abovedisplayskip
|
|
\let\@listi\@listI}
|
|
\else
|
|
\renewcommand\normalsize{%
|
|
\@setfontsize\normalsize\@xpt{14.2\p@ \@plus.3\p@ \@minus.5\p@}%
|
|
\abovedisplayskip 14.15\p@ \@plus2\p@ \@minus2\p@
|
|
\abovedisplayshortskip 7\p@ \@plus2\p@
|
|
\belowdisplayshortskip 7\p@ \@plus2\p@
|
|
\belowdisplayskip \abovedisplayskip
|
|
\let\@listi\@listI}
|
|
\fi
|
|
|
|
\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{9\p@ plus .1pt minus .1pt}%%
|
|
\abovedisplayskip 6\p@ \@plus4\p@ \@minus1\p@
|
|
\belowdisplayskip \abovedisplayskip
|
|
\abovedisplayshortskip \abovedisplayskip
|
|
\belowdisplayshortskip \abovedisplayskip}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% setattribute, getattribute, do@option@list
|
|
|
|
\def\setattribute{\@ifnextchar[\@setattribute{\@setattribute[]}}
|
|
\def\@setattribute[#1]#2#3#4{\expandafter\gdef\csname #2@#3\endcsname{#4}}
|
|
\def\getattribute#1#2{\csname #1@#2\endcsname}
|
|
\def\sep@key@value#1=#2/?/#3{\setattribute{#3}{#1}{#2}}
|
|
\def\do@option@list#1#2{%
|
|
\@for\curr@option:={#2}\do{%
|
|
\expandafter\sep@key@value\curr@option/?/{#1}\relax
|
|
}%
|
|
}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 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@@}%
|
|
}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 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{%
|
|
\@ifundefined{thanksnewlabel@#1}%
|
|
{\@bsphack\protected@write\@auxout{}{\string\thanksnewlabel{#1}{{\@currentlabel}{\thepage}}}\@esphack}
|
|
{}%
|
|
\@namedef{thanksnewlabel@#1}{}}
|
|
|
|
\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}
|
|
\def\thethanks{\@arabic\c@thanks}
|
|
\usethankscounter{thanks}
|
|
|
|
\def\thanksmark@fmt#1{\hbox{$^{#1}$}}
|
|
\def\thanksref@sep{,}
|
|
|
|
% hooks for the hyperref:
|
|
\def\thankref@hyperlink#1{\saferef{#1thanks}}
|
|
\def\thanks@hypertarget#1{}
|
|
|
|
% Isvedame zymes
|
|
\def\thanksref{\@ifnextchar[{\@tempswatrue\@thanksref}{\@tempswafalse\@thanksref[]}}
|
|
|
|
\def\@thanksref[#1]#2{%
|
|
\if@tempswa% []
|
|
\thanksmark@fmt{#1}%
|
|
\else%
|
|
\let\@tempa\@empty%
|
|
\thanksmark@fmt{\@for\@tempb:=#2\do{%
|
|
\@tempa\let\@tempa\thanksref@sep%
|
|
\edef\@tempb{\expandafter\@firstofone\@tempb\@empty}%
|
|
\thankref@hyperlink{\@tempb}}}%
|
|
\fi}
|
|
|
|
% Suformuojame ir isvedame zyme
|
|
\def\thanksmark{\@ifnextchar[{\@tempswatrue\@thanksmark}{\@tempswafalse\@thanksmark[]}}
|
|
|
|
\def\@thanksmark[#1]#2{%
|
|
\@thankslabel[#1]{#2}%
|
|
\safelabel{#2thanks}%
|
|
\thanksmark@fmt{\expandafter\saferef{#2thanks}\thanks@hypertarget{#2}}}
|
|
|
|
% Suformuojame tik zyme
|
|
\def\thankslabel{\@ifnextchar[{\@tempswatrue\@thankslabel}{\@tempswafalse\@thankslabel[]}}
|
|
|
|
\def\@thankslabel[#1]#2{%
|
|
\if@tempswa% []
|
|
\protected@edef\@currentlabel{#1}%
|
|
\else%
|
|
\refstepcounter{\current@thankscounter}%
|
|
\fi%
|
|
\safelabel{#2thanks}}%
|
|
|
|
% Suformuojame zyme ir idedame teksta i \@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\@footnotetext{\thanks@hypertarget{#2}#3}}}%
|
|
|
|
\def\thanks@thefnmark#1{\begingroup\unrestored@protected@xdef\@thefnmark{\saferef{#1}}\endgroup}%
|
|
|
|
|
|
|
|
% ST makrosas savo numeracijos sistemos sukurimui
|
|
\def\setvaluelist#1#2{\@tempcnta=0\relax
|
|
\@for\@curr@val:=#2\do{%
|
|
\advance\@tempcnta by1\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
|
|
|
|
\def\email@text{}
|
|
\def\url@text{http://}
|
|
\def\ead@sep{;~}
|
|
|
|
% naudojame keyval paketa
|
|
\define@key{ead}{email}[true]{\def\ead@type{email}}
|
|
\define@key{ead}{url}[true]{\def\ead@type{url}}
|
|
\define@key{ead}{label}{\def\ead@label{#1}}
|
|
|
|
\DeclareRobustCommand\ead[2][label= ,email]{{%
|
|
\def\ead@type{email}% default
|
|
\setkeys{ead}{#1}%
|
|
\def\texttildelow{\noexpand\texttildelow}%
|
|
\protected@edef\@currentlabel{#2}%
|
|
\safelabel{\ead@label @\ead@type}}}
|
|
|
|
\newif\ifnot@ead@star
|
|
|
|
\DeclareRobustCommand{\printead}{\@ifstar{\not@ead@starfalse\@printead}{\not@ead@startrue\@printead}}
|
|
|
|
\def\@printead{\@ifnextchar[{\@tempswatrue\@@printead}{\@tempswafalse\@@printead[]}}
|
|
|
|
\def\@@printead[#1]#2{%
|
|
\if@tempswa% []
|
|
{\ead@size #1}%
|
|
\else%
|
|
\def\ead@type{email}%
|
|
\def\ead@prefix{mailto:}%
|
|
\let\ead@text\email@text%
|
|
\let\@ead@sep\relax%
|
|
\@for\ead@ref:=#2\do{%
|
|
\@ead@sep\let\@ead@sep\ead@sep%
|
|
\@ifundefined{r@\ead@ref @url}{}{\let\ead@text\url@text\def\ead@type{url}\def\ead@prefix{http://}}%
|
|
\ifnot@ead@star\ead@text\fi{\ead@size\def\null{}\ims@href{\ead@prefix\saferef{\ead@ref @\ead@type}}{\saferef{\ead@ref @\ead@type}}}%
|
|
\let\ead@text\relax}%
|
|
\fi%
|
|
}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% normaltext, nohyphen, no@harm
|
|
|
|
% normalus tekstas (justify)
|
|
\def\normaltext{\let\\=\@normalcr%
|
|
\leftskip\z@ \@rightskip\z@ \rightskip\@rightskip%
|
|
\parfillskip\@flushglue}
|
|
|
|
% skiemenavimo isjungimas
|
|
\def\nohyphen{\pretolerance=\@M \tolerance=\@M \hyphenpenalty=\@M \exhyphenpenalty=\@M}
|
|
|
|
\def\no@harm{\let\thanks=\@gobble\let\thanksref=\@gobble\let~\space\def\ead[##1]##2{}\let\\=\@empty \def\protect{\noexpand\protect\noexpand}}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% url@fmt
|
|
|
|
|
|
\def\journalurl#1{\def\journal@url{#1}}
|
|
\def\paperurl#1{\def\paper@url{#1}}
|
|
|
|
\def\doi#1{%
|
|
\gdef\@doi{#1}%
|
|
\gdef\doi@text{\url@fmt{DOI: }{\ttfamily}{#1}{\doi@base\@doi}}%
|
|
}
|
|
|
|
\def\@doi{}
|
|
|
|
\def\doi@base{http://dx.doi.org/}
|
|
|
|
% {url}{text}
|
|
\def\ims@href#1#2{#2}
|
|
|
|
% {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}
|
|
|
|
%%%%%%%%%%%%%%%%%%% doiurl
|
|
|
|
\@ifundefined{doi@base}{\def\doi@base{http://dx.doi.org/}}{}
|
|
|
|
\DeclareRobustCommand\doiurl[1]{{%
|
|
\def\\{}%
|
|
\check@doiurl@prefix#1http://\end%
|
|
\check@doiurl@break#1\\\end\relax%
|
|
\if@doiurlbreak%
|
|
\@ifundefined{doi@url}{%
|
|
\href{\doi@base\@tempx\@tempy}{\csname doi@size\endcsname\@tempx}%
|
|
\break%
|
|
\href{\doi@base\@tempx\@tempy}{\csname doi@size\endcsname\@tempy}}%
|
|
{%
|
|
\expandafter\href{\@tempx\@tempy}{\csname doi@size\endcsname\@tempx}%
|
|
\break%
|
|
\href{\@tempx\@tempy}{\csname doi@size\endcsname\@tempy}}%
|
|
\else%
|
|
\@ifundefined{doi@url}%
|
|
{\href{\doi@base#1}{\csname doi@size\endcsname #1}}%
|
|
{\href{#1}{\csname doi@size\endcsname #1}}%
|
|
\fi}}
|
|
|
|
|
|
\def\check@doiurl@prefix#1http://#2\end{\ifx.#2.\else\def\doi@url{fullurl}\fi}
|
|
|
|
\newif\if@doiurlbreak \@doiurlbreakfalse
|
|
|
|
\def\check@doiurl@break#1\\#2\end{%
|
|
\ifx.#2.\@doiurlbreakfalse%
|
|
\else%
|
|
\@doiurlbreaktrue%
|
|
\def\@tempx{#1}%
|
|
\def\@tempy{#2}%
|
|
\fi}
|
|
|
|
%%%%%%%%%%%%%%%%%%% arxivurl
|
|
|
|
%% \arxivurl{http://arxiv.org/abs/math.PR/0603300}
|
|
%% \arxivurl{math.PR/0603300}
|
|
%% \arxivurl{http://\\arxiv.org/abs/math.PR/0603300}
|
|
%% \arxivurl{math.PR/\\0603300}
|
|
|
|
\@ifundefined{arxiv@base}{\def\arxiv@base{http://arxiv.org/abs/}}{}
|
|
|
|
\DeclareRobustCommand\arxivurl[1]{{%
|
|
\def\\{}%
|
|
\check@arxivurl@prefix#1http://\end%
|
|
\check@arxivurl@break#1\\\end\relax%
|
|
\if@arxivurlbreak%
|
|
\@ifundefined{arxiv@url}{%
|
|
\href{\arxiv@base\@tempx\@tempy}{\csname arxivurl@size\endcsname\@tempx}%
|
|
\break%
|
|
\href{\arxiv@base\@tempx\@tempy}{\csname arxivurl@size\endcsname\@tempy}}%
|
|
{%
|
|
\expandafter\href{\@tempx\@tempy}{\csname arxivurl@size\endcsname\@tempx}%
|
|
\break%
|
|
\href{\@tempx\@tempy}{\csname arxivurl@size\endcsname\@tempy}}%
|
|
\else%
|
|
\@ifundefined{arxiv@url}%
|
|
{\href{\arxiv@base#1}{\csname arxivurl@size\endcsname #1}}%
|
|
{\href{#1}{\csname arxivurl@size\endcsname #1}}%
|
|
\fi}}
|
|
|
|
|
|
\def\check@arxivurl@prefix#1http://#2\end{\ifx.#2.\else\def\arxiv@url{fullurl}\fi}
|
|
|
|
\newif\if@arxivurlbreak \@arxivurlbreakfalse
|
|
|
|
\def\check@arxivurl@break#1\\#2\end{%
|
|
\ifx.#2.\@arxivurlbreakfalse%
|
|
\else%
|
|
\@arxivurlbreaktrue%
|
|
\def\@tempx{#1}%
|
|
\def\@tempy{#2}%
|
|
\fi}
|
|
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% RUNNING HEADS
|
|
|
|
\def\runtitle#1{\gdef\@runtitle{#1}}
|
|
\def\runauthor#1{\gdef\@runauthor{#1}\global\let\copauthor\@runauthor}
|
|
\def\@runauthor{}
|
|
\def\@lastpage{0}
|
|
|
|
\def\thepage@fmt#1{Page #1 of \@lastpage}
|
|
\def\thepage@fmt#1{Page #1 of \pageref{LastPage}}
|
|
|
|
\def\headline@hook{}
|
|
\let\ps@copyright@hook\relax
|
|
|
|
% normal RH
|
|
\def\ps@bmcheadings{%
|
|
\def\etal{\textit{et al.}}%
|
|
\let\@mkboth\@gobbletwo%
|
|
\def\@evenfoot{\csname footline@hook\endcsname\hfill}%
|
|
\let\@oddfoot\@evenfoot
|
|
\def\@oddhead{\headline@hook\hskip-\rhindent@width\hbox to\z@{\parbox[t]{\textarea@width}{\runninghead@size\runninghead@text}\hss}\hfill}%
|
|
\let\@evenhead\@oddhead%
|
|
}%
|
|
|
|
|
|
% First page RH
|
|
\def\ps@copyright{\csname set@fp@margin@hook\endcsname%
|
|
\def\etal{\textit{et al.}}%
|
|
\let\@mkboth\@gobbletwo%
|
|
\def\@evenhead{\ps@copyright@hook\headline@hook\hskip-\leftarea@width\parbox[t]{\textarea@width}{\copyright@size\copyright@text}\hfill}%
|
|
\let\@oddhead\@evenhead%
|
|
\def\@oddfoot{\csname footline@hook\endcsname\hfill\hfill}%
|
|
\let\@evenfoot\@oddfoot}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LIST ENVIRONMENTS
|
|
|
|
\parsep\z@
|
|
\topsep\z@
|
|
\partopsep\z@
|
|
\itemsep\z@
|
|
\labelsep.5em
|
|
|
|
\def\@listI{\leftmargin\leftmargini
|
|
\parsep\z@
|
|
\topsep\z@
|
|
\itemsep\z@}
|
|
|
|
\def\list@parindent{8\p@}
|
|
|
|
|
|
\def\labelenumi{\theenumi\hskip6\p@}
|
|
|
|
% quotation
|
|
\let\quotation@size\normalsize
|
|
\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@%
|
|
}%
|
|
\item[\Q@strut]\relax}
|
|
|
|
\def\endquotation{\endlist}
|
|
|
|
\def\Q@strut{\leavevmode\hbox{\vrule height9pt depth1pt width0pt}}
|
|
|
|
% quote
|
|
\let\quote@size\normalsize
|
|
\def\quote@indent{\z@}
|
|
\def\quote@leftmargin{2pc}
|
|
\def\quote@rightmargin{\z@}
|
|
\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@%
|
|
}%
|
|
\item\relax}
|
|
|
|
\def\endquote{\endlist}
|
|
|
|
\def\@listii {\leftmargin\leftmarginii
|
|
\labelwidth\leftmarginii
|
|
\advance\labelwidth-\labelsep
|
|
\topsep\z@
|
|
\parsep\z@
|
|
\itemsep \parsep}
|
|
|
|
\def\@listiii{\leftmargin\leftmarginiii
|
|
\labelwidth\leftmarginiii
|
|
\advance\labelwidth-\labelsep
|
|
\topsep\z@
|
|
\parsep z@
|
|
\partopsep\z@
|
|
\itemsep\topsep}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TABLE, FIGURE
|
|
|
|
% settings for table caption
|
|
\setattribute{floatcaption} {size}{\footnotesize\bfseries\mathversion{bold}\raggedright}
|
|
\setattribute{floatcaptionname}{size}{\bfseries}
|
|
|
|
\setlength\abovecaptionskip{0\p@}
|
|
\setlength\belowcaptionskip{4\p@}
|
|
|
|
\long\def\@makecaption#1#2{
|
|
\vskip\abovecaptionskip
|
|
\parbox[t]{\hsize}{\floatcaption@size{\floatcaptionname@size #1}\hskip.5em #2\par}%
|
|
\vskip\belowcaptionskip}
|
|
|
|
|
|
\def\@floatboxreset{%
|
|
\reset@font
|
|
\footnotesize
|
|
\sffamily
|
|
\@setminipage
|
|
\centering
|
|
}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FIGURE - in box
|
|
|
|
\newbox\bmcfloat@box
|
|
\newif\if@figurestar
|
|
|
|
\setattribute{figure}{sep}{6.25\p@}
|
|
|
|
\def\figure{\@figurestarfalse\@ifnextchar[{\@figure}{\@figure[t]}}
|
|
|
|
\def\@figure[#1]{\def\figure@pars{#1}%
|
|
\def\@captype{figure}%
|
|
\def\csentence##1{{\mathversion{bold}\bfseries ##1}}%
|
|
% \csname @figure@hook\endcsname%
|
|
% \let\@makecaption\@makefigurecaption%
|
|
% \let\@floatboxreset\figure@boxreset%
|
|
\setbox\bmcfloat@box=\vbox\bgroup\figure@settings}
|
|
|
|
\def\endfigure{%
|
|
\par%
|
|
\egroup%
|
|
\edef\reserved@a{\noexpand\@xfloat{figure}[\figure@pars]}
|
|
\reserved@a\makefigure@float\end@float
|
|
}
|
|
|
|
|
|
\DeclareRobustCommand\fig@textbf[1]{{\floatcaptionname@size #1}}%
|
|
|
|
\def\figure@settings{%
|
|
\let\textbf\fig@textbf%
|
|
\setattribute{floatcaption}{size}{\footnotesize\sffamily\raggedright}
|
|
\if@figurestar\hsize=\textwidth\fi%
|
|
\@tempdima\hsize%
|
|
\advance\@tempdima by-\figure@sep%
|
|
\advance\@tempdima by-\figure@sep%
|
|
\hsize\@tempdima%
|
|
\parindent\z@%
|
|
\centering%
|
|
\setlength\abovecaptionskip{6\p@}%
|
|
\setlength\belowcaptionskip{0\p@}%
|
|
}
|
|
|
|
\def\makefigure@float{
|
|
\setlength{\fboxsep}{\figure@sep}%
|
|
\setlength{\fboxrule}{0.25\p@}%
|
|
\fcolorbox{bmcblue}{white}{\box\bmcfloat@box}}
|
|
|
|
\@namedef{figure*}{\@figurestartrue\@ifnextchar[{\@figure}{\@figure[t]}}
|
|
|
|
\@namedef{endfigure*}{%
|
|
\egroup%
|
|
\edef\reserved@a{\noexpand\@xdblfloat{figure}[\figure@pars]}
|
|
\reserved@a\makefigure@float\end@dblfloat
|
|
}
|
|
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FOOTNOTE
|
|
|
|
\def\footnoterule{\kern-3\p@ \hrule \@width \footnoterule@width \kern 2.6\p@} % the \hrule is .4pt high
|
|
|
|
\let\orig@footnoterule\footnoterule
|
|
|
|
\renewcommand\@makefntext[1]{\noindent\parindent8\p@\@makefnmark #1}
|
|
|
|
\def\@makefnmark{\csname makefnmark@hook\endcsname\@textsuperscript{\normalfont[\@thefnmark]}}%
|
|
|
|
% hook for hyperref
|
|
\def\@makefntext@fmt#1{\@makefnmark}
|
|
|
|
\def\freefootnotetext[#1]{%
|
|
\begingroup\unrestored@protected@xdef\@thefnmark{#1}\endgroup\@footnotetext}
|
|
|
|
\def\footnote@size{\fontsize{7}{8}\raggedright}
|
|
|
|
\long\def\@footnotetext#1{\insert\footins{%
|
|
\reset@font\footnote@size
|
|
\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}}%
|
|
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% MAIN SETTINGS - COMMON FOR 1 and 2 col's layouts
|
|
|
|
|
|
\setattribute{frontmatter} {style} {\raggedright}
|
|
\setattribute{address} {style} {\raggedright}
|
|
\setattribute{affiliation} {style} {\raggedright}
|
|
\setattribute{abstract} {style} {\raggedright}
|
|
\setattribute{keyword} {style} {\normaltext\raggedright}
|
|
\setattribute{backmatter} {style} {\raggedright}
|
|
|
|
% FRONT MATTER SKIPS
|
|
\setattribute{dochead} {skip} {-\topskip}
|
|
\setattribute{title} {skip} {10\p@}
|
|
\setattribute{subtitle} {skip} {5\p@}
|
|
\setattribute{date} {skip} {10\p@}
|
|
\setattribute{authors} {skip} {2\p@}
|
|
\setattribute{note} {skip} {8\p@}
|
|
\setattribute{copyright} {skip} {23\p@}
|
|
\setattribute{address} {skip} {4\p@ plus 2\p@}
|
|
\setattribute{history} {skip} {\Smallskipamount}
|
|
\setattribute{abstract} {skip} {0\p@}
|
|
\setattribute{keyword} {skip} {5\p@}
|
|
\setattribute{abbr} {skip} {\medskipamount}
|
|
\setattribute{frontmatter} {skip} {\bigskip}
|
|
|
|
\setattribute{copyrightlogo}{cmd}{}
|
|
|
|
% FRONT MATTER FONTS
|
|
\setattribute{dochead} {size} {\sffamily\fontsize{13pt}{13pt}\bfseries\selectfont\color{white}}
|
|
\setattribute{title} {size} {\sffamily\fontsize{24pt}{26pt}\selectfont\raggedright}
|
|
\setattribute{subtitle} {size} {\sffamily\fontsize{20pt}{22pt}\selectfont\raggedright}
|
|
\setattribute{author} {size} {\sffamily\fontsize{11pt}{14pt}\selectfont\raggedright}
|
|
\setattribute{date} {size} {\sffamily\fontsize{11pt}{14pt}\selectfont\raggedright}
|
|
\setattribute{address} {size} {}
|
|
\setattribute{note} {size} {\sffamily\fontsize{10pt}{13pt}\selectfont\raggedright}
|
|
\setattribute{thanksbox} {size} {\sffamily\fontsize{7pt}{9pt}\selectfont\raggedright}
|
|
\setattribute{history} {size} {\mdseries}
|
|
\setattribute{abstract} {size} {\sffamily\fontsize{10}{12}\selectfont}
|
|
\setattribute{abstractname}{size} {\bfseries}
|
|
\setattribute{keyword} {size} {\sffamily\fontsize{10}{12}\selectfont}
|
|
\setattribute{keywordname} {size} {\bfseries}
|
|
|
|
\setattribute{runninghead} {size} {\sffamily\fontsize{8}{10}\selectfont}
|
|
\setattribute{footline} {size} {\sffamily\fontsize{7}{8}\selectfont}
|
|
\setattribute{copyright} {size} {\sffamily\fontsize{8}{10}\selectfont}
|
|
\setattribute{backmatter} {size} {\sffamily\fontsize{7}{9}\selectfont\raggedright}
|
|
\setattribute{ead} {size} {}
|
|
|
|
% COPYRIGHT TEXT, etc.
|
|
\setattribute{address} {text} {Author details}
|
|
\setattribute{corref} {text} {Correspondence: }
|
|
\setattribute{authorinfo} {text} {}
|
|
\setattribute{presentaddress} {text} {\textit{Present address: }}
|
|
\setattribute{copyright} {text} {\copyright\,\textit{\journal@name}}
|
|
\setattribute{runninghead} {text} {\copyright\,\textit{\journal@name} \hfill \thepage@fmt{\thepage}}
|
|
\setattribute{footline} {text} {}
|
|
\setattribute{pdfsubject} {text} {\journal@name}
|
|
|
|
% URL
|
|
\setattribute{article} {url} {}
|
|
|
|
% SEPARATIONS
|
|
|
|
\setattribute{author} {sep} {, }
|
|
\setattribute{authorand} {sep} {~and }
|
|
\setattribute{address} {sep} {. }
|
|
|
|
% KEYWORDS
|
|
\setattribute{keyword} {AMS} {AMS Subject Classification}
|
|
\setattribute{keyword} {MSC} {Mathematics Subject Classification}
|
|
\setattribute{keyword} {MSC2010} {Mathematics Subject Classification (2010)}
|
|
\setattribute{keyword} {MSCnoyear}{Mathematics Subject Classification}
|
|
\setattribute{keyword} {KWD} {Keywords}
|
|
\setattribute{keyword} {JEL} {JEL Classification}
|
|
\setattribute{keyword} {PACS} {PACS Codes}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FRONT MATTER FORMATTING PARAMETERS
|
|
|
|
|
|
% FRONT MATTER SKIPS
|
|
\if@twocolumn
|
|
\setattribute{abstractbox} {skip} {24\p@}
|
|
\else
|
|
\setattribute{abstractbox} {skip} {-1\p@}
|
|
\fi
|
|
|
|
\setattribute{frontmatter} {cmd} {%
|
|
\frontmatter@skip%
|
|
\global\@afterindentfalse%
|
|
\@afterheading}
|
|
|
|
% FRONT MATTER DIMENSIONS
|
|
\setattribute{textarea} {width} {484\p@} %170mm 1 puslapio maksimalus plotis
|
|
\if@twocolumn
|
|
\setattribute{leftarea} {width} {\z@}
|
|
\setattribute{rhindent} {width} {\z@}
|
|
\else
|
|
\setattribute{leftarea} {width} {122\p@} %38mm+5mm=43mm
|
|
\setattribute{rhindent} {width} {61\p@} %21.5mm = 41.5-20 rh issikisimas normaliuose puslapiuose
|
|
\fi
|
|
\setattribute{leftcol} {width} {108\p@} %38mm 1 puslapio isnasu dezutes plotis
|
|
\setattribute{colsep} {width} {14\p@} %5mm
|
|
\if@twocolumn
|
|
\setattribute{footnoterule}{width} {\columnwidth}%
|
|
\else
|
|
\setattribute{footnoterule}{width} {\textwidth}%
|
|
\fi
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FRONTMATTER
|
|
|
|
% COUNTERS, ETC
|
|
\newcounter{author}
|
|
\newcounter{address}
|
|
\newdimen\sv@mathsurround
|
|
\let\hy@frontmatter\relax
|
|
\let\hy@endfrontmatter\relax
|
|
|
|
\def\frontmatter{%
|
|
\global\c@author\z@
|
|
\global\c@address\z@
|
|
%
|
|
\thispagestyle{copyright}%
|
|
%
|
|
\csname frontmatter@hook \endcsname%
|
|
\sv@mathsurround\mathsurround%
|
|
\m@th
|
|
\set@frontmatter@cmd
|
|
\set@frontmatter@keys
|
|
\parindent\z@
|
|
\frontmatter@style
|
|
\hy@frontmatter
|
|
\ignorespaces}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ENDFRONTMATTER
|
|
|
|
\def\endfrontmatter{%
|
|
\global\@topnum\z@
|
|
%
|
|
\@thanks%
|
|
%
|
|
\write@pdfinfo{\hy@fauthor}{\csname fauthor@\firstauthor@id\endcsname}
|
|
\write@pdfinfo{\hy@author}{\the\authors@list}
|
|
\write@pdfinfo{\hy@subject}{\pdfsubject@text}
|
|
\write@pdfinfo{\hy@keywords}{\the\keywords@list}
|
|
%
|
|
\hy@endfrontmatter
|
|
%
|
|
\immediate\write\@mainaux{\string\global\string\@namedef{num@address}{\the\c@address}}%
|
|
\immediate\write\@mainaux{\string\global\string\@namedef{num@author}{\the\c@author}}%
|
|
\set@authorcorref@notset%
|
|
%
|
|
\global\mathsurround\sv@mathsurround
|
|
\global\let\@thanks\@empty
|
|
%
|
|
\set@runauthor
|
|
%
|
|
\csname frontmatter@hook\endcsname%
|
|
\aftergroup\frontmatter@cmd
|
|
\aftergroup\insert@thanksbox
|
|
}
|
|
\if@twocolumn
|
|
\def\insert@thanksbox{\insert\footins{\unvbox\thanks@box}}
|
|
\else
|
|
\let\insert@thanksbox\relax
|
|
\fi
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \set@frontmatter@cmd
|
|
|
|
\def\set@frontmatter@cmd{%
|
|
\let\maketitle\relax
|
|
\let\fmbox\bmc@fmbox
|
|
\let\endfmbox\bmc@endfmbox
|
|
\let\dochead\bmc@dochead
|
|
\let\title\bmc@title
|
|
\let\subtitle\bmc@subtitle
|
|
\let\author\bmc@author
|
|
\let\address\bmc@address
|
|
\let\date\bmc@date
|
|
\let\artnotes\bmc@artnotes
|
|
\let\endartnotes\bmc@endartnotes
|
|
\let\abstractbox\bmc@abstractbox
|
|
\let\endabstractbox\bmc@endabstractbox
|
|
\let\abstract\bmc@abstract
|
|
\let\endabstract\bmc@endabstract
|
|
\let\keyword\bmc@keyword
|
|
\let\endkeyword\bmc@endkeyword
|
|
\let\thanksbox\bmc@thanksbox
|
|
\let\endthanksbox\bmc@endthanksbox
|
|
}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FMBOX
|
|
|
|
\newif\if@fmbox \@fmboxfalse
|
|
\newbox\fm@box
|
|
|
|
\def\bmc@fmbox{%
|
|
\setbox\fm@box=\vbox\bgroup
|
|
\@fmboxtrue
|
|
\hsize=\textarea@width
|
|
}
|
|
|
|
\def\bmc@endfmbox{%
|
|
\par
|
|
\auto@set@thanksbox%
|
|
\csname endfmbox@hook\endcsname%
|
|
\egroup%
|
|
\if@twocolumn
|
|
\emergencystretch=1pc \twocolumn[\box\fm@box\medskip]
|
|
\else
|
|
\hbox to\textwidth{\hss\box\fm@box}
|
|
\vskip\abstract@skip
|
|
\vbox to\z@{\llap{\box\thanks@box\hskip\colsep@width}\vss}
|
|
\fi}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DOCHEAD
|
|
|
|
\let\dochead@hook\relax
|
|
|
|
\def\bmc@dochead{\@ifnextchar[{\dochead@fmt}{\dochead@fmt[]}}
|
|
|
|
\def\dochead@fmt[#1]#2{%
|
|
\bgroup%
|
|
\@tempdima=\hsize%
|
|
\advance\@tempdima by-8\p@%
|
|
\setlength{\fboxsep}{4\p@}%
|
|
\setlength{\fboxrule}{\z@}%
|
|
\fcolorbox{bmcblue}{bmcblue}{\hbox to\@tempdima{\dochead@size\MakeUppercase{#2}}}%\hfill\fontshape{n}\selectfont\smash{\dochead@hook}}}
|
|
\egroup}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TITLE
|
|
|
|
\let\PREHOOK@title@fmt\@gobble
|
|
|
|
\def\bmc@title{\@ifnextchar[{\title@fmt}{\title@fmt[]}}
|
|
|
|
\def\title@fmt[#1]#2{%
|
|
\vskip\title@skip%
|
|
\setkeys{title}{#1}%
|
|
\bgroup%
|
|
\no@harm%
|
|
\let\protect\relax%
|
|
\xdef\@runtitle{#2}%
|
|
\egroup%
|
|
\bgroup%
|
|
\no@harm%
|
|
\let\protect\relax%
|
|
\xdef\@argi{#2}%
|
|
\egroup%
|
|
\write@pdfinfo{\hy@title}{\@argi}%
|
|
\bgroup
|
|
\PREHOOK@title@fmt{#2}%
|
|
\title@size\csname pretitle@text\endcsname #2\par%
|
|
\egroup}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SUBTITLE
|
|
|
|
\def\bmc@subtitle{\@ifnextchar[{\subtitle@fmt}{\subtitle@fmt[]}}
|
|
|
|
\def\subtitle@fmt[#1]#2{%
|
|
\vskip\subtitle@skip
|
|
\setkeys{title}{#1}%
|
|
\bgroup%
|
|
\subtitle@size #2\par%
|
|
\egroup}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DATE
|
|
|
|
\def\bmc@date{\@ifnextchar[{\date@fmt}{\date@fmt[]}}
|
|
|
|
\def\date@fmt[#1]#2{%
|
|
\vskip\date@skip
|
|
\setkeys{title}{#1}%
|
|
\bgroup%
|
|
\date@size #2\par%
|
|
\egroup}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% set@frontmatter@keys
|
|
|
|
\def\set@frontmatter@keys{%
|
|
\@tempcnta=0\relax%
|
|
\@ifundefined{num@address}{}{\@tempcnta=\num@address\relax}%
|
|
\ifnum\@tempcnta=1\relax%
|
|
% \define@key{author}{addressref}{}%
|
|
% \define@key{author}{presentaddressref}{}%
|
|
\define@key{author}{corref}{}%
|
|
\global\let\address@thanksref\@gobble
|
|
\global\let\printaddresses\relax
|
|
\fi%
|
|
\@tempcnta=0\relax%
|
|
\@ifundefined{num@author}{}{\@tempcnta=\num@author\relax}%
|
|
\ifnum\@tempcnta=1\relax%
|
|
\global\@namedef{num@address}{1}
|
|
% \define@key{author}{addressref}{}%
|
|
% \define@key{author}{presentaddressref}{\expandafter\gdef\csname presentaddressref@##1\endcsname{}}%
|
|
% \gdef\printauthor##1{\unskip}%
|
|
\global\let\address@thanksref\@gobble
|
|
\global\let\printaddresses\relax
|
|
\global\let\corref@thanksmark\@gobble
|
|
\global\let\corref@thanksref\@gobble
|
|
\fi%
|
|
}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \thanksmark etc
|
|
|
|
\def\thanksmark@fmt#1{{\textsuperscript{#1}}}
|
|
|
|
\def\thethanks{\getitemvalue{bmcsymbol}{\@arabic\c@thanks}}
|
|
|
|
\setvaluelist{bmcsymbol}{*,\textdagger,\^{}}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% AUTHOR - keys
|
|
|
|
% \author[id=au1,addressref={aff1,aff2},presentaddressref=aff3,corref={aff1,aff2},thanksref={t1}]{\inits{}\fnm{} \snm{} \suffix{}\ead{}}
|
|
% \author@au1 =\inits \snm \suffix
|
|
% \fauthor@au1=\fnm \snm \suffix
|
|
% \corref@au1 =\corref@text
|
|
%
|
|
% automatiniam formatavimui:
|
|
% \def\addressref@aff1{}
|
|
% \emaillist@au1 ={e1,e2}
|
|
% \authorslist@aff1 ={au1,au2}
|
|
% \authorslist@present@aff1 ={au1,au2}
|
|
% \correflist@au1 ={aff1,aff2}
|
|
% \authors@id@list ={au1,au2,au3...}
|
|
%
|
|
% tikriname ar nebuvo panaudotas id:
|
|
|
|
\def\check@xx@id#1#2{\@ifundefined{#1@#2}{}{\@latex@error{Command <#1>: id=#2 was allready used!}{}}}
|
|
|
|
\newif\ifauthor@corref
|
|
\newif\ifauthor@email
|
|
|
|
\define@key{author}{id}{%
|
|
\def\author@id{#1}%
|
|
\check@xx@id{author}{#1}%
|
|
\@ifundefined{authors@id@list}{\xdef\authors@id@list{#1}}{\xdef\authors@id@list{\authors@id@list,#1}}}
|
|
|
|
\define@key{author}{email}{%
|
|
\author@emailtrue%
|
|
\ead[label=\author@id]{#1}}
|
|
|
|
\define@key{author}{thanksref}{%
|
|
% \current@thanksref@list={aff1,aff2}
|
|
% \def\thanksref@aff1{}
|
|
\edef\current@thanksref@list{#1}%
|
|
\@for\thanksref@id:=#1\do{\expandafter\gdef\csname thanksref@\thanksref@id\endcsname{}}}
|
|
|
|
% alias for thanksref
|
|
\define@key{author}{noteref}{%
|
|
% \current@thanksref@list={aff1,aff2}
|
|
% \def\thanksref@aff1{}
|
|
\edef\current@thanksref@list{#1}%
|
|
\@for\thanksref@id:=#1\do{\expandafter\gdef\csname thanksref@\thanksref@id\endcsname{}}}
|
|
|
|
\define@key{author}{addressref}{%
|
|
% \current@address@list={aff1,aff2}
|
|
% \def\addressref@aff1{}
|
|
\edef\current@address@list{#1}%
|
|
\@for\addressref@id:=#1\do{\expandafter\gdef\csname addressref@\addressref@id\endcsname{}}}
|
|
|
|
\define@key{author}{presentaddressref}{%
|
|
% \current@address@list={aff1,aff2}%
|
|
% \def\presentaddressref@aff1{}%
|
|
\@ifundefined{addressref@#1}{\edef\current@paddress@list{#1}}{}%
|
|
\@for\addressref@id:=#1\do{\expandafter\gdef\csname presentaddressref@\addressref@id\endcsname{}}%
|
|
\@for\addressref@id:=#1\do{\expandafter\gdef\csname addressref@\addressref@id\endcsname{}}}
|
|
|
|
\define@key{author}{corref}[]{%
|
|
% \corref@list={aff1,aff2}%
|
|
\global\let\set@authorcorref@notset\relax%
|
|
\global\author@correftrue%
|
|
\ifx.#1.\else\xdef\corref@list{#1}\fi%
|
|
}
|
|
|
|
\def\add@to@addressref@list#1{\@ifundefined{addressref@list}{\edef\addressref@list{#1}}{\edef\addressref@list{\addressref@list, #1}}}
|
|
\def\add@to@thanksref@list#1{\@ifundefined{thanksref@list}{\edef\thanksref@list{#1}}{\edef\thanksref@list{\thanksref@list, #1}}}
|
|
|
|
\def\set@authorcorref@notset{\immediate\write\@mainaux{\string\global\string\authorcorref@notsettrue}}
|
|
|
|
\def\set@author@lists{%
|
|
\let\thanksref@list\relax%
|
|
\let\addressref@list\relax%
|
|
\@ifundefined{current@address@list}{}{\add@to@addressref@list{\current@address@list}}%
|
|
\@ifundefined{current@paddress@list}{}{\add@to@addressref@list{\current@paddress@list}}%
|
|
\@ifundefined{current@thanksref@list}{}{\add@to@thanksref@list{\current@thanksref@list}}%
|
|
}
|
|
|
|
\def\print@author@lists{%
|
|
\@ifundefined{addressref@list}{}{\address@thanksref{\addressref@list}}%
|
|
\ifauthor@corref\def\thanksref@sep{}\corref@thanksref{\corr@author@id}\fi%
|
|
\@ifundefined{thanksref@list}{}{\def\thanksref@sep{}\thanksref{\thanksref@list}}%
|
|
}
|
|
|
|
\let\address@thanksref\thanksref
|
|
\let\corref@thanksref\thanksref
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% AUTHOR
|
|
% if corref is not set, we will use first author with an email as a corresponding author
|
|
% \corr@author@id -> {au1}
|
|
% \corref@list -> {aff1,aff2}
|
|
|
|
\newif\ifauthorcorref@notset \authorcorref@notsetfalse
|
|
|
|
|
|
\def\bmc@author{\@ifnextchar[{\author@fmt}{\author@fmt[]}}
|
|
|
|
\def\author@fmt[#1]#2{%
|
|
\stepcounter{author}{%
|
|
\csname author@cmd\endcsname%
|
|
\author@correffalse%
|
|
\xdef\author@id{au\the\c@author}%
|
|
\setkeys{author}{#1}%
|
|
\@ifundefined{num@author}{\@tempcnta=10\relax}{\@tempcnta=\num@author\relax}%
|
|
\def\a@sep{, }%
|
|
\ifnum\@tempcnta>1\relax%
|
|
\ifnum\c@author=\@tempcnta%
|
|
\let\a@sep\authorand@sep%
|
|
\else%
|
|
\let\a@sep\author@sep%
|
|
\fi%
|
|
\fi%
|
|
%
|
|
\ifauthorcorref@notset%
|
|
\ifauthor@email% email is set
|
|
\author@correftrue%
|
|
\global\authorcorref@notsetfalse%
|
|
\fi%
|
|
\fi%
|
|
\ifauthor@corref%
|
|
\xdef\corr@author@id{\author@id}%
|
|
\@ifundefined{corref@list}%
|
|
{\@ifundefined{current@address@list}{}{\xdef\corref@list{\current@address@list}}}%
|
|
{}%
|
|
\fi%
|
|
%
|
|
\ifnum\c@author=1 \author@fmt@init \let\a@sep\relax \xdef\first@author@id{\author@id}\fi%
|
|
\bgroup% F. Author
|
|
\def\inits##1{##1}\def\fnm##1{}\def\snm##1{##1}\def\particle##1{##1}\def\suffix##1{##1}%
|
|
\no@harm%
|
|
\xdef\author@arg{#2}%
|
|
\egroup%
|
|
\expandafter\protected@xdef\csname author@\author@id\endcsname{\author@arg}%
|
|
\bgroup% First Author
|
|
\def\inits##1{}\def\fnm##1{##1}\def\particle##1{##1}\def\snm##1{##1}\def\suffix##1{##1}%
|
|
\no@harm%
|
|
\xdef\author@arg{#2}%
|
|
\ifnum\c@author=1\addto@authors@list{#2}\xdef\firstauthor@id{\author@id}\else\addto@authors@list{, #2}\fi%
|
|
\egroup%
|
|
\expandafter\protected@xdef\csname fauthor@\author@id\endcsname{\author@arg}%
|
|
\bgroup% Author
|
|
\def\inits##1{}\def\fnm##1{\ignorespaces}\def\particle##1{}\def\snm##1{##1}\def\suffix##1{}%
|
|
\no@harm%
|
|
\expandafter\xdef\csname runauthor@\the\c@author @snm\endcsname{#2}%
|
|
\egroup%
|
|
\bgroup%
|
|
\author@size%
|
|
\def\inits##1{}\def\fnm##1{##1}\def\snm##1{##1}\def\particle##1{##1}\def\suffix##1{##1}%
|
|
\set@author@lists%
|
|
\a@sep\authorname@fmt{#2}\print@author@lists%
|
|
\egroup}%
|
|
\ignorespaces}
|
|
|
|
\def\author@fmt@init{%
|
|
\vskip\authors@skip%
|
|
\author@size%
|
|
\leavevmode}
|
|
|
|
\def\authorname@fmt#1{#1}
|
|
|
|
\def\set@runauthor{%
|
|
\ifnum\c@author=1\relax
|
|
\gdef\@runauthor{\@nameuse{runauthor@1@snm}}%
|
|
\else
|
|
\ifnum\c@author=2\relax
|
|
\gdef\@runauthor{\@nameuse{runauthor@1@snm} and \@nameuse{runauthor@2@snm}}%
|
|
\else
|
|
\@ifundefined{runauthor@1@snm}{}{\gdef\@runauthor{\@nameuse{runauthor@1@snm} \etal}}%
|
|
\fi
|
|
\fi}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ADDRESS
|
|
|
|
% \address[id=aff1]{}
|
|
|
|
\define@key{address}{id}{%
|
|
\def\address@id{#1}%
|
|
\check@xx@id{address}{#1}%
|
|
}
|
|
|
|
|
|
\def\bmc@address{\@ifnextchar[{\address@fmt}{\address@fmt[]}}
|
|
|
|
|
|
\def\address@fmt[#1]#2{%
|
|
\stepcounter{address}%
|
|
\xdef\address@id{aff\the\c@address}%
|
|
\setkeys{address}{#1}%
|
|
\@ifundefined{address@id@list}{\xdef\address@id@list{\address@id}}{\xdef\address@id@list{\address@id@list,\address@id}}%
|
|
\expandafter\newtoks\csname address@\address@id\endcsname%
|
|
\global\csname address@\address@id\endcsname={#2}%
|
|
}
|
|
|
|
|
|
\def\address@definitions{
|
|
\def\\{\break}%
|
|
\def\orgdiv##1{##1}\def\orgname##1{##1}%
|
|
\def\street##1{##1}\def\postcode##1{##1}%
|
|
\def\postbox##1{##1}\def\city##1{##1}\def\state##1{##1}\def\cny##1{##1}%
|
|
\let\interref\surl%
|
|
}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% printaddress{aff1}
|
|
|
|
\newcounter{addressref}
|
|
\def\theaddressref{\arabic{addressref}}
|
|
|
|
\newif\if@address@mark \@address@marktrue
|
|
|
|
\define@key{printaddress}{nomark}[true]{
|
|
\let\thanksmark\@gobble%
|
|
\let\thanksref\@gobble}%
|
|
|
|
\define@key{printaddress}{addrprefix}{\def\addr@prefix{#1}}%
|
|
\let\addr@prefix\relax
|
|
|
|
\DeclareRobustCommand{\printaddress}{\@ifnextchar[{\printaddress@fmt}{\printaddress@fmt[]}}
|
|
|
|
\def\printaddress@fmt[#1]#2{%
|
|
\bgroup%
|
|
\setkeys{printaddress}{#1}%
|
|
\address@size%
|
|
\parindent\z@%
|
|
\address@definitions%
|
|
\set@address@mark%
|
|
\usethankscounter{addressref}\thanksmark{#2}\restorethankscounter%
|
|
\addr@prefix%
|
|
\@ifundefined{presentaddressref@#2}{}{\presentaddress@text}%
|
|
\expandafter\the\@nameuse{address@#2}\unskip\address@sep%
|
|
\egroup}
|
|
|
|
|
|
\def\thanksbox@printaddress@fmt[#1]#2{%
|
|
\bgroup%
|
|
\setkeys{printaddress}{#1}%
|
|
\address@size%
|
|
\parindent\z@%
|
|
\address@definitions%
|
|
\set@address@mark%
|
|
\thanksref{#2}%
|
|
\addr@prefix%
|
|
\expandafter\the\@nameuse{address@#2}\par%
|
|
\egroup}
|
|
|
|
|
|
\def\set@address@mark{%
|
|
\ifnum\c@author=1\relax \@address@markfalse\fi%
|
|
\ifnum\c@address=1\relax \@address@markfalse \fi%
|
|
\if@address@mark\else\let\thanksmark\@gobble\let\thanksref\@gobble\fi%
|
|
}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% printaddresses{}
|
|
|
|
\def\printaddresses{
|
|
\heading*{\address@text}
|
|
\bgroup
|
|
\backmatter@style\backmatter@size
|
|
\@ifundefined{address@id@list}{}{\@for\address@id:=\address@id@list\do{\printaddress{\address@id}}}%
|
|
\csname contributing@text\endcsname%
|
|
\par
|
|
\egroup
|
|
\global\let\printaddresses\relax}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ARTNOTES
|
|
|
|
\newif\if@firstnote \@firstnotetrue
|
|
|
|
\newenvironment{bmc@artnotes}{%
|
|
\def\note{\@ifnextchar[{\@bmcartnote}{\note@nopars}}%
|
|
\def\contributionnote##1{\gdef\contributing@text{##1}}%
|
|
\note@size%
|
|
}{}
|
|
|
|
|
|
\def\note@nopars#1{\if@firstnote\vskip\note@skip\@firstnotefalse\fi #1\par}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \artnote
|
|
|
|
\def\bmcartnote{\@ifnextchar[{\@bmcartnote}{\@bmcartnote[]}}
|
|
|
|
\define@key{bmcartnote}{id}{%
|
|
\def\bmcartnote@id{#1}%
|
|
\@ifundefined{bmcartnote@id@list}{\xdef\bmcartnote@id@list{#1}}{\xdef\bmcartnote@id@list{\bmcartnote@id@list,#1}}}
|
|
|
|
\define@key{bmcartnote}{symbol}{\def\bmcartnote@symbol{#1}}
|
|
|
|
|
|
\def\@bmcartnote[#1]#2{{%
|
|
\setkeys{bmcartnote}{#1}%
|
|
\expandafter\protected@xdef\csname bmcartnote@\bmcartnote@id\endcsname{#2}%
|
|
\@ifundefined{bmcartnote@symbol}{}{\expandafter\protected@xdef\csname bmcartnote@symbol@\bmcartnote@id\endcsname{\bmcartnote@symbol}}
|
|
}}
|
|
|
|
|
|
\def\printartnote#1{%
|
|
\bgroup
|
|
\@ifundefined{bmcartnote@symbol@#1}%
|
|
{\leavevmode\thanksmark{#1}}%
|
|
{\edef\@tempa{\csname bmcartnote@symbol@#1\endcsname}\leavevmode\thanksmark[\@tempa]{#1}}%
|
|
\@nameuse{bmcartnote@#1}%
|
|
\egroup}
|
|
|
|
\def\printartnotes{%
|
|
\@ifundefined{bmcartnote@id@list}{}{\@for\bmcnote@id:=\bmcartnote@id@list\do{\printartnote{\bmcnote@id}}}%
|
|
\global\let\printartnotes\relax%
|
|
}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% THANKSBOX
|
|
|
|
\newbox\thanks@box
|
|
|
|
\def\bmc@thanksbox{\@ifnextchar[{\@thanksbox}{\@thanksbox[]}}
|
|
|
|
\def\@thanksbox[#1]{%
|
|
\global\let\auto@set@thanksbox\relax%
|
|
\global\setbox\thanks@box=\vtop\bgroup
|
|
\if@twocolumn%
|
|
\hsize=\columnwidth%
|
|
\else%
|
|
\hsize=\leftcol@width%
|
|
\hrule width\leftcol@width height0.15\p@%
|
|
\vskip2\p@%
|
|
\fi%
|
|
\thanksbox@size%
|
|
\let\printaddress@fmt\thanksbox@printaddress@fmt%
|
|
\setkeys{thanksbox}{#1}%
|
|
\parindent\z@%
|
|
\if@twocolumn\rule\z@\footnotesep\fi%
|
|
\ignorespaces%
|
|
}
|
|
|
|
\def\bmc@endthanksbox{\par\egroup}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \auto@set@thanksbox
|
|
|
|
\def\auto@set@thanksbox{%
|
|
\@thanksbox[]{%
|
|
\@ifundefined{corr@author@id}{}{\printcorrtext{\corr@author@id}}%
|
|
\@ifundefined{corref@list}{}{\@for\address@id:=\corref@list\do{\printaddress{\address@id}}\par}%
|
|
\authorinfo@text
|
|
\printartnotes%
|
|
\par
|
|
\egroup}}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \printcorremail
|
|
|
|
% \printcorremail{<thanksref>}{<email-ref>}
|
|
|
|
\def\printcorremail#1#2{%
|
|
\@ifundefined{num@author}{\@tempcnta=0}{\@tempcnta=\num@author}
|
|
\ifnum\@tempcnta=1\relax\else\thanksmark{#1}\fi%
|
|
\corref@text\printead*{#2}\par
|
|
}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \printcorrtext
|
|
|
|
%\printcorrtext{<corrauthor@id>}
|
|
|
|
\def\printcorrtext#1{%
|
|
\corref@thanksmark{#1}%
|
|
\corref@text%
|
|
\@ifundefined{r@#1@email}{}{\printead*{#1}}%
|
|
\par
|
|
}
|
|
|
|
\let\corref@thanksmark\thanksmark
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ABSTRACTBOX
|
|
|
|
\setattribute{absboxsep} {width} {10.25\p@}
|
|
|
|
\newbox\abstract@box
|
|
|
|
\def\bmc@abstractbox{\@ifnextchar[{\@abstractbox}{\@abstractbox[]}}
|
|
|
|
\def\@abstractbox[#1]{%
|
|
\@tempdima=\hsize%
|
|
\advance\@tempdima by-\absboxsep@width%
|
|
\advance\@tempdima by-\absboxsep@width%
|
|
\setkeys{abstractbox}{#1}%
|
|
\setbox\abstract@box=\vbox\bgroup%
|
|
\hsize=\@tempdima%
|
|
\ignorespaces%
|
|
}
|
|
|
|
\def\bmc@endabstractbox{%
|
|
\par%
|
|
\egroup%
|
|
\vglue\abstractbox@skip
|
|
\setlength{\fboxsep}{10\p@}%
|
|
\setlength{\fboxrule}{0.5\p@}%
|
|
\fcolorbox{bmcblue}{white}{\box\abstract@box}
|
|
}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ABSTRACT
|
|
|
|
\def\abstractname@skip{\par\vskip3\p@}
|
|
|
|
\newif\if@first@abstract \@first@abstracttrue
|
|
|
|
\define@key{abstract}{title}{\def\abstractname{#1}}
|
|
|
|
\gdef\bmc@abstract{\@ifnextchar[{\abstract@fmt}{\abstract@fmt[]}}
|
|
|
|
\def\abstract@fmt[#1]{%
|
|
\if@first@abstract\csname firstabstract@cmd\endcsname\else \vskip\abstract@skip\fi%
|
|
\global\@first@abstractfalse%
|
|
\def\parttitle##1{%
|
|
\vskip3\p@
|
|
\noindent{\bfseries ##1:}}
|
|
\setkeys{abstract}{#1}%
|
|
\abstract@style%
|
|
\abstract@size%
|
|
\parindent\true@parindent%
|
|
\phantomsection\addcontentsline{toc}{section}{\abstractname}%
|
|
\noindent{\abstractname@size\abstractname}\abstractname@skip\ignorespaces\noindent}
|
|
|
|
|
|
\def\bmc@endabstract{\par}
|
|
|
|
\let\phantomsection\relax
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% KEYWORD
|
|
% raktas=class
|
|
\setattribute[default]{keyword}{class}{KWD}
|
|
\setattribute[default]{keyword}{language}{english}
|
|
|
|
% \keyword@class-> KWD
|
|
% \keyword@KWD -> AMS 2000...
|
|
|
|
%\setattribute{keyword}{language}{french}
|
|
|
|
\gdef\bmc@keyword{\@ifnextchar[{\bmc@@keyword}{\bmc@@keyword[class=KWD]}}
|
|
|
|
\gdef\bmc@@keyword[#1]{%
|
|
%
|
|
\do@option@list{keyword}{#1}%
|
|
\long\def\@tempa{MSC}%
|
|
\ifx\keyword@class\@tempa%
|
|
\def\keyword@skip{\z@}%
|
|
\fi%
|
|
%
|
|
\def\sep{\unskip; }%
|
|
\vskip\keyword@skip
|
|
%
|
|
\def\keyword@name{\csname keyword@\keyword@class\endcsname}%
|
|
\let\kwd@sep\relax
|
|
%
|
|
\keyword@style%
|
|
\keyword@size%
|
|
\parindent\true@parindent%
|
|
\def\\{\hfill\break}%
|
|
\noindent{\keywordname@size\keyword@name:}\enspace}
|
|
|
|
\def\bmc@endkeyword{\par}
|
|
|
|
% \kwd[; ]{foo}
|
|
\newif\if@firstkeywordinlist \@firstkeywordinlisttrue
|
|
|
|
\DeclareRobustCommand*\kwd{\@ifnextchar[\@kwd{\@kwd[\kwd@sep]}}%
|
|
|
|
\def\@kwd[#1]#2{%
|
|
\ifx.#2.\else\expandafter\gdef\csname @\keyword@class\endcsname{}\fi%
|
|
\unskip#1{#2}\if@firstkeywordinlist\addto@keywords@list{#2}\@firstkeywordinlistfalse\else\addto@keywords@list{, #2}\fi\let\kwd@sep\sep}%
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BACKMATTER
|
|
|
|
\newenvironment{backmatter}
|
|
{\medskip\backmatter@style\backmatter@size\let\section\heading}
|
|
{}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% interaction with hyperref
|
|
|
|
\def\test@hyperref{\@ifundefined{Hy@SetCatcodes}{}{\bmcart@hyperref@settings}}
|
|
|
|
\AtBeginDocument{\test@hyperref}
|
|
|
|
\def\bmcart@hyperref@settings{%
|
|
% from hyperref maketitle
|
|
\def\hy@frontmatter{%
|
|
\let\H@@origfootnotemark\@footnotemark
|
|
\let\H@@origfootnotetext\@footnotetext
|
|
\let\@footnotemark\H@@footnotemark
|
|
\let\@footnotetext\H@@footnotetext}
|
|
\def\hy@endfrontmatter{
|
|
\ifx\@footnotemark\H@@footnotemark
|
|
\let\@footnotemark\H@@origfootnotemark
|
|
\fi
|
|
\ifx\@footnotetext\H@@footnotetext
|
|
\let\@footnotetext\H@@origfootnotetext
|
|
\fi}
|
|
% 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}}
|
|
% MathSciNet:
|
|
\def\MR##1{\href{http://www.ams.org/mathscinet-getitem?mr=##1}{MR##1}}
|
|
}
|
|
|
|
\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@}%
|
|
{-\medskipamount}%
|
|
{0.001\p@}%
|
|
{\sffamily\large\bfseries\raggedright\nohyphen}}
|
|
|
|
\renewcommand\subsection{\@startsection {subsection}{2}{\z@}%
|
|
{-\medskipamount}%
|
|
{0.001\p@}%
|
|
{\sffamily\raggedright\nohyphen}}
|
|
|
|
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
|
|
{-\medskipamount}%
|
|
{0.001\p@}%
|
|
{\itshape\raggedright}}
|
|
|
|
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
|
|
{\medskipamount}%
|
|
{-10pt}%
|
|
{\itshape}}
|
|
|
|
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
|
|
{0.1pt}%
|
|
{-1em}%
|
|
{\itshape}}
|
|
|
|
|
|
% Format for the counter:
|
|
\def\section@numbersep{}
|
|
\def\subsection@numbersep{}
|
|
\def\subsubsection@numbersep{}
|
|
\def\paragraph@numbersep{}
|
|
\def\subparagraph@numbersep{}
|
|
|
|
% Format for the counter:
|
|
\def\@seccntformat#1{{\csname #1@prefix\endcsname\csname the#1\endcsname\csname#1@numbersep\endcsname\enspace}}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% HEADING
|
|
|
|
\newcommand\heading{\@startsection{section}{1}{\z@}%
|
|
{\smallskipamount}%
|
|
{0.001\p@}%
|
|
{\backmatter@size\bfseries}}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% APPENDIX
|
|
|
|
|
|
\renewcommand\appendix{\par
|
|
\let\section@cnt@size\appendix@size%
|
|
\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}%
|
|
\addcontentsline{toc}{section}{#1}
|
|
}
|
|
|
|
\def\@appsectionnostar#1{%
|
|
\ifx.#1.%
|
|
\def\section@numbersep{}\old@section[\appendixname\ \thesection]{}%
|
|
\else%
|
|
\def\section@numbersep{:}\old@section{#1}%
|
|
\fi}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% thebibliography
|
|
|
|
\let\saved@thebibliography\thebibliography
|
|
\def\thebibliography{%
|
|
\printaddresses%
|
|
\backmatter@style\backmatter@size
|
|
\let\section\heading\saved@thebibliography}
|
|
\def\@biblabel#1{#1.}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fix if natbib is loaded:
|
|
|
|
\def\bmcfix@natbib{%
|
|
\def\bibfont{\backmatter@style\backmatter@size}
|
|
\def\bibsection{%
|
|
\printaddresses%
|
|
\heading*{\refname}}
|
|
\def\bibnumfmt##1{##1.}
|
|
\setlength\bibsep{0pt}}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fix if amsmath is loaded:
|
|
|
|
\def\bmcfix@amsmath{%
|
|
\allowdisplaybreaks
|
|
}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fix if amsthm is loaded:
|
|
|
|
\def\bmcfix@amsthm{%
|
|
\thm@notefont{\upshape}
|
|
\newtheoremstyle{plain} {\medskipamount}{\medskipamount}{\itshape}{\z@}{\bfseries}{}{1em}{}
|
|
\newtheoremstyle{definition}{\medskipamount}{\medskipamount}{\normalfont}{\z@}{\bfseries}{}{1em}{}
|
|
\newtheoremstyle{remark} {\medskipamount}{\medskipamount}{\normalfont}{\z@}{\itshape}{}{1em}{}
|
|
%
|
|
\renewenvironment{proof}[1][\proofname]{\par
|
|
\pushQED{\qed}%
|
|
\normalfont \topsep\medskipamount%
|
|
\trivlist
|
|
\labelsep.5em%
|
|
\item[\hskip\labelsep
|
|
\itshape ##1\@addpunct{}]\ignorespaces
|
|
}{\popQED\endtrivlist\@endpefalse}
|
|
}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% check for the loaded classes:
|
|
|
|
\AtBeginDocument{%
|
|
\@ifpackageloaded{natbib}{\bmcfix@natbib}{}%
|
|
\@ifpackageloaded{amsthm}{\bmcfix@amsthm}{}%
|
|
}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% number lines
|
|
|
|
\ifnumberlines@
|
|
|
|
\long\def\l@addto@macro#1#2{%
|
|
\toks@\expandafter{#1#2}%
|
|
\edef#1{\the\toks@}}
|
|
|
|
\setattribute{numberlines}{size}{\scriptsize\ttfamily}
|
|
\setattribute{numberlines}{skip}{0\p@}
|
|
|
|
\def\numberlines@hook{%
|
|
\l@addto@macro\@evenhead\put@numberlines@box%
|
|
\l@addto@macro\@oddhead\put@numberlines@box}
|
|
|
|
\g@addto@macro\ps@bmcheadings\numberlines@hook
|
|
\g@addto@macro\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 by1
|
|
\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
|
|
|
|
%**************** INICIALIZATION
|
|
|
|
\@twosidetrue
|
|
\pagenumbering{arabic}
|
|
\frenchspacing
|
|
%\init@settings
|
|
\pagestyle{bmcheadings}
|
|
|
|
\endinput
|
|
%%
|
|
%% End of file `bmcart.cls'.
|