diff options
author | Karl Berry <karl@freefriends.org> | 2019-03-21 20:53:53 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-03-21 20:53:53 +0000 |
commit | fd57fc78450f5089af3e89bdb28023e17ea181fd (patch) | |
tree | 66f86b8ae34c3c4f8f70d5e8e5cd2876f5b1729b /Master/texmf-dist/tex/latex | |
parent | 2f67ef04c2e95c64f0a4e7395e0633710ab122a4 (diff) |
els-cas-template (21mar19)
git-svn-id: svn://tug.org/texlive/trunk@50508 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
3 files changed, 2712 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/els-cas-template/cas-common.sty b/Master/texmf-dist/tex/latex/els-cas-template/cas-common.sty new file mode 100644 index 00000000000..688390fce95 --- /dev/null +++ b/Master/texmf-dist/tex/latex/els-cas-template/cas-common.sty @@ -0,0 +1,2359 @@ +%% +%% This is file `cas-common.sty', +%% +%% This file is part of the 'CAS Bundle'. +%% ...................................... +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.2 of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The list of all files belonging to the 'CAS Bundle' is +%% given in the file `manifest.txt'. +%% + +% $Id: cas-common.sty 12 2019-03-19 06:03:53Z rishi $ + + \def\RCSfile{cas-common}% + \def\RCSversion{1.0}% + \def\RCSdate{2019/02/11}% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +\ExplSyntaxOn +\makeatletter +% +% Front matter macros +% +% The front matter macros are derived/adopted from stm-prelims.sty +% written by CV Radhakrishnan <cvr@cvr.cc> and copyrighted by him. +% Usage of those macros and methods are gratefully acknowledged. +% + +\keys_define:nn { stm / title } + { + mode .choice: , + mode / title .meta:n = + { + type = title , + size = \LARGE , + shape = \upshape , + weight = \mdseries , + color = black , + before = 0pt , + after = 0pt , + align = \raggedright , + } , + mode / alt .meta:n = + { + type = alt , + size = \large , + shape = \upshape , + weight = \mdseries , + color = black , + before = 6pt , + after = 0pt , + align = \raggedright , + } , + mode / sub .meta:n = + { + type = sub , + size = \large , + shape = \upshape , + weight = \mdseries , + color = black!80 , + before = 6pt , + after = 0pt , + align = \raggedright , + } , + mode / trans .meta:n = + { + type = trans , + size = \normalsize , + shape = \upshape , + weight = \mdseries , + color = black!60 , + before = 6pt , + after = 0pt , + align = \raggedright , + } , + mode / transsub .meta:n = + { + type = transsub , + size = \small , + shape = \upshape , + weight = \mdseries , + color = black!50 , + before = 6pt , + after = 0pt , + align = \raggedright , + } , + mode / ascii .meta:n = + { + type = ascii , + size = \small\ttfamily , + shape = \upshape , + weight = \mdseries , + color = black , + before = 12pt , + after = 0pt , + align = \raggedright , + } , + type .tl_set:N = \l_stm_title_type_tl , + size .tl_set:N = \l_stm_title_size_tl , + shape .tl_set:N = \l_stm_title_shape_tl , + weight .tl_set:N = \l_stm_title_weight_tl , + before .dim_set:N = \l_stm_title_before_dim , + after .dim_set:N = \l_stm_title_after_dim , + align .tl_set:N = \l_stm_title_align_tl , + color .tl_set:N = \l_stm_title_color_tl , + } + +\NewDocumentCommand \processTmarks { } + { + \cs_if_free:cTF { mark@title } + { \ignorespaces } + { \tl_set:Nx \l_tmpa_tl { \cs:w mark@title\cs_end: } + \clist_map_inline:cn { mark@title } + { + \str_case:nn { ##1 } + { + { 1 } { $^\star$ } + { 2 } { $^{,\star\star}$ } + { 3 } { $^{,\star\star\star}$ } + } + } + } + } + +\RenewDocumentCommand \title { O{} m } + { + \pdfstringdef \@pdftitle { #2 } + \csgdef { casprelimstitle } { #2 } + \keys_set:nn { stm / title } { #1 } + \seq_gput_right:Nn \g_stm_title_seq + { + \keys_set:nn { stm / title } { #1 } +% \msg_term:n { MODE:~\l_stm_title_mode_tl ~ ~ [#2]} + \par \vskip \l_stm_title_before_dim + \l_stm_title_align_tl + \l_stm_title_size_tl + \l_stm_title_shape_tl + \l_stm_title_weight_tl + \color { \l_stm_title_color_tl } + #2 + \tl_set:Nn \l_tmpa_tl { title } + \tl_if_eq:NNTF \l_stm_title_type_tl \l_tmpa_tl + { \processTmarks } { } + \par \vskip \l_stm_title_after_dim + \normalcolor \normalsize \normalfont + } + } + +% \gappto\usestmtitle{#1}% + +\renewcommand \@title { \seq_use:Nn \g_stm_title_seq { } } + +\NewDocumentCommand \wrAun { m } % unexpanded write to aux + { \iow_now:Nn \@auxout { #1 } } +\NewDocumentCommand \wrAux { m } % expanded write to aux + { \iow_now:Nx \@auxout { #1 } } + +\NewDocumentCommand \wrShipAux { m } % expanded write at shipout + { \iow_shipout:Nx \@auxout { #1 } } +\NewDocumentCommand \wrShipAun { m } % unexpanded write at shipout + { \iow_shipout:Nn \@auxout { #1 } } + +\NewDocumentCommand \stmLabel { m } + { + \@bsphack \wrAux + { \token_to_str:N \NewLabel { #1 } + { \@currentlabel } + } \@esphack + } +\NewDocumentCommand \NewLabel { m m } + { + \cs_if_free:cTF { X@#1: } + { \cs_new:cx { X@#1: } { #2 } } + { \cs_set:cx { X@#1: } { #2 } } + } +\NewDocumentCommand \stmRef { m } + { + \cs_if_free:cTF { X@#1: } + { 0 } {\use:c {X@#1:} } + } + +\seq_clear_new:N \l_fnmk_seq +\NewDocumentCommand \processFnRef { m } + { + \seq_clear:N \l_fnmk_seq + \clist_map_inline:nn { #1 } + { \seq_put_right:Nx \l_fnmk_seq + {\cs_if_free:cTF { X@##1: } {0} { \use:c {X@##1:} }} + } + } + +\NewDocumentCommand \fnmark { O{} } + { \writemarks { fnau\theau@ } { #1 } } + + +\NewDocumentCommand \fnref { m } + { + \processFnRef { #1 } + \wrAux { \token_to_str:N \csxdef {mark@fnau\theau@} + { \seq_use:Nn \l_fnmk_seq { , } } } + } + +\NewDocumentCommand \corref { m } + { + \str_set:Nx \l_tmpa_str { \stmRef { #1 } } + \wrAux { \token_to_str:N \csxdef { mark@corau\theau@ } + { + \cs_if_free:cTF { X@#1: } {0} { \use:c {X@#1:} } + } + } + } + +\NewDocumentCommand \cormark { O{} } + { + \@cormarktrue + \writemarks {corau\theau@} { #1 } + } + +\seq_new:N \l_stm_au_seq +\seq_new:N \l_stm_au_sn_seq +\seq_new:N \l_stm_au_fn_seq +\seq_new:N \l_stm_au_ead_seq +\seq_new:N \l_stm_au_orcid_seq +\seq_new:N \l_stm_au_contrib_role_seq + +\NewDocumentCommand \parsename { m } + { \seq_set_split:Nnn \l_stm_au_seq { ~ } {#1} + \seq_pop_right:NN \l_stm_au_seq \l_stm_au_sn_seq + \seq_map_inline:Nn \l_stm_au_seq + { \seq_put_right:Nx \l_stm_au_ead_seq + { \tl_head:n { #1 }. } } + } + +\NewDocumentCommand \invparsename { m } + { \seq_set_split:Nnn \l_stm_au_seq { ~ } {#1} + \seq_pop_left:NN \l_stm_au_seq \l_stm_au_sn_seq + \seq_map_inline:Nn \l_stm_au_seq + { \seq_put_right:Nx \l_stm_au_ead_seq + { \tl_head:n { #1 }. } } + } + + +\NewDocumentCommand \surname {} { \l_stm_au_sn_seq } +\NewDocumentCommand \firstname {} + { \seq_use:Nn \l_stm_au_seq { ~ } } +\NewDocumentCommand \eadauthor {} + { \seq_map_inline:Nn \l_stm_au_seq + { \regex_match:nnTF { \. } { ##1 } + { ##1 } + { \tl_head:n {##1}. } + } + {~} \l_stm_au_sn_seq + } +\cs_set_eq:NN \shortauthor \eadauthor + +\seq_clear_new:N \l_affmk_seq +\NewDocumentCommand \processAffRef { m } + { + \seq_clear:N \l_affmk_seq + \clist_map_inline:nn { #1 } + { + \seq_put_right:Nx \l_affmk_seq + {\stmRef{##1}} + } + } + +\NewDocumentCommand \processAffNum { m } + { + \seq_clear:N \l_affmk_seq + \clist_map_inline:nn { #1 } + { + \seq_put_right:Nn \l_affmk_seq + { \int_to_alph:n {##1} } + } + } + +\NewDocumentCommand \listAff { } + { + \tl_if_blank:nTF { \l_affmk_seq } + { \tl_gset:Nn \g_stm_comma_tl { 0 } } + { + \seq_use:Nn \l_affmk_seq { , } + \tex_def:D \sep{\unskip,} + } + } + +\NewDocumentCommand \ead { O{} m } + { + \tl_if_empty:nTF { #1 } { \@ead {#2} } { \@uad[#1]{#2} } + } + +\NewDocumentCommand \eadsep { } { } + +\int_new:N \g_ead_int +\seq_new:N \g_stm_ead_seq +\int_new:N \g_uad_int +\seq_new:N \g_stm_uad_seq +\seq_new:N \g_stm_orcid_seq +\seq_new:N \g_stm_contrib_role_seq + +\newcommand\theead { \int_use:N \g_ead_int } + +\NewDocumentCommand \@uad { O{} m } + { + \group_begin: + \wrAux { \token_to_str:N \urlauthor + { \exp_not:n {#2}}{\the\@eadauthor}}% + \group_end: + } + +\NewDocumentCommand \urlauthor { m m } + { + \int_gincr:N \g_uad_int + \seq_gput_right:Nn \g_stm_uad_seq + { + { %\ttfamily \tl_to_str:n + \url{ #1 } } + \parsename { #2 } + \space(\eadauthor) + } + } +\NewDocumentCommand \@stmuads { } + { \seq_use:Nn \g_stm_uad_seq { ;~ } } + +\NewDocumentCommand \@ead { m } + { + \group_begin: + \wrAux { \token_to_str:N \emailauthor + { \exp_not:n { #1 }}{ \the\@eadauthor }} + \group_end: + } + +\newtoks \@eadauthor +\newbool{@cormark} + +\NewDocumentCommand \emailauthor { m m } + { + \int_gincr:N \g_ead_int + \seq_gput_right:Nn \g_stm_ead_seq + { + { \ttfamily \tl_to_str:n { #1 } } + \parsename { #2 } + \space(\eadauthor)% + } + } + +\NewDocumentCommand \@elseads { } + { \seq_use:Nn \g_stm_ead_seq { ;~ } } + + +\NewDocumentCommand \printemails { } +{ + \group_begin: + \int_compare:nNnTF { \int_use:N \g_ead_int } > { 0 } + { + \tex_let:D \thefootnote \relax \footnotetext + { + \raggedright + \bool_if:NTF \g_stm_nologo_bool + { + \int_compare:nTF { \g_ead_int = 1 } + { \textit{Email~address:\c_space_token} } + { \textit{Email~addresses:\c_space_token} } + } + { \includegraphics[height=8pt]{thumbnails/email.jpeg}\c_space_token } + \seq_use:Nn \g_stm_ead_seq { ;~ } + } + } + { } + \group_end: +} + +\NewDocumentCommand \printurls { } +{ + \group_begin: + \int_compare:nTF { \g_uad_int > 0 } + { + \tex_let:D \thefootnote \relax \footnotetext + { + \raggedright + \bool_if:NTF \g_stm_nologo_bool + { \textit{URL:\c_space_token} } + { \includegraphics[height=8pt]{thumbnails/url.jpeg}\c_space_token } + \seq_use:Nn \g_stm_uad_seq { ;~ } + } + } + { } + \group_end: +} + +% +% orcid +% +\NewDocumentCommand \orcidauthor { m m } + { + \seq_gput_right:Nn \g_stm_orcid_seq + { + { \ttfamily \tl_to_str:n { #1 } } + \parsename{#2} + \space(\eadauthor) + } + } + +\NewDocumentCommand \printorcid { } +{ + \group_begin: + \tex_let:D \thefootnote \relax \footnotetext + { + \raggedright + \textsc{orcid}(s):\c_space_token + \seq_use:Nn \g_stm_orcid_seq { ;~ } + } + \group_end: +} + +% +% Contrib Role +% + +\seq_gclear_new:N \g_stm_credits_seq + +\NewDocumentCommand \ContribRole { m } +{ + \wrAux { \token_to_str:N \creditauthor + { #1 } { \the\@eadauthor } } +} + +\NewDocumentCommand \creditauthor { m m } +{ + \seq_gput_right:Nx \g_stm_credits_seq + { { \exp_not:N\bfseries #2 :}\space #1 } +} + +\cs_set_eq:NN \credit \ContribRole + +\NewDocumentCommand \printcredits { } +{ + \seq_if_empty:NF \g_stm_credits_seq + { + \section*{CRediT ~authorship ~contribution ~statement} + \seq_use:Nn \g_stm_credits_seq { .~ }. + } +} + +\NewDocumentCommand \writemarks { m m } + { \wrAux { \token_to_str:N \csgdef{mark@#1}{#2} } } + +\seq_new:N \g_stm_title_seq + +\NewDocumentCommand \tnotemark { O{} } + { \writemarks { title } { #1 } } + +\NewDocumentCommand \@tnoteref { m } + { \int_set:Nn \l_tmpa_int { 0 } + \clist_map_inline:nn { #1 } + { +% \msg_term:n { ##1 .. [\cs:w X@##1:\cs_end:] } + \cs_if_free:cTF { X@##1: } + { \csdef{X@##1:}{0} } + { + \tl_set:Nx \l_tmpa_tl { \cs:w X@##1:\cs_end: } + \int_case:nn { \l_tmpa_tl } + { + { 1 } { $^\star$ } + { 2 } { $^{,\star\star}$ } + { 3 } { $^{,\star\star\star}$ } + } + } + } + } + +\seq_new:N \g_stm_tnote_seq +\int_new:N \g_stm_tnote_int + +\NewDocumentCommand \tnotetext { O{} m } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + { + \msg_term:n { [TNOTE:~alpha] }% + \seq_gput_right:Nn \g_stm_tnote_seq + { \int_incr:N \g_stm_tnote_int + \str_set:Nx \@currentlabel { \int_use:N \g_stm_tnote_int } + \stmLabel { #1 } + \renewcommand\thefootnote + { \int_case:nn { \g_stm_tnote_int } + { + { 1 } { $^\star$ } + { 2 } { $^{\star\star}$ } + { 3 } { $^{\star\star\star}$ } + } + } + \footnotetext { #2 } + } + } + { + \msg_term:n { [TNOTE:~Number] } + \seq_gput_right:Nn \g_stm_tnote_seq + { + \int_set:Nn \l_tmpa_int { #1 } + \renewcommand\thefootnote + { \int_case:nn { \l_tmpa_int } + { + { 1 } { $^\star$ } + { 2 } { $^{\star\star}$ } + { 3 } { $^{\star\star\star}$ } + } + } + \footnotetext { #2 } + } + } + } + +\newcommand \printtnotes { \seq_use:Nn \g_stm_tnote_seq { \par } } + +\seq_new:N \g_stm_nonumnote_seq + +\NewDocumentCommand \nonumnote { m } +{ + \group_begin: + \seq_gput_right:Nn \g_stm_nonumnote_seq + { + \tex_def:D \thefootnote { } + \footnotetext{#1} + } + \group_end: +} + +\newcommand \printnonumnotes { \seq_use:Nn \g_stm_nonumnote_seq { \par } } + +\seq_new:N \g_stm_fnote_seq +\int_new:N \g_stm_fnote_int + +\NewDocumentCommand \fntext { O{} m } +{ + \tl_if_head_eq_catcode:nNTF { #1 } a + { + \msg_term:n { [FN:~alpha] }% + \seq_gput_right:Nn \g_stm_fnote_seq + { \int_incr:N \g_stm_fnote_int + \str_set:Nx \@currentlabel { \int_use:N \g_stm_fnote_int } + \stmLabel { #1 } + \tex_def:D \thefootnote { \int_use:N \g_stm_fnote_int } + \footnotetext { #2 } + } + } + { + \msg_term:n { [FN:~Number] } + \seq_gput_right:Nn \g_stm_fnote_seq + { + \int_set:Nn \l_tmpa_int { #1 } + \tex_def:D \thefootnote { \int_use:N \l_tmpa_int } + \footnotetext { #2 } + } + } +} + +\newcommand \printfnotes { \seq_use:Nn \g_stm_fnote_seq { \par } } + +\seq_new:N \g_stm_cor_seq +\int_new:N \g_stm_cor_int + +\NewDocumentCommand \cortext { O{} m } +{ + \tl_if_head_eq_catcode:nNTF { #1 } a + { + \msg_term:n { [COR:~alpha] }% + \seq_gput_right:Nn \g_stm_cor_seq + { \int_incr:N \g_stm_cor_int + \str_set:Nx \@currentlabel { \int_use:N \g_stm_cor_int } + \stmLabel { #1 } + \tex_def:D \thefootnote + { \int_case:nn { \g_stm_cor_int } + { + { 1 } { $\ast$ } + { 2 } { $\ast\!\ast$ } + { 3 } { $\ast\!\ast\!\ast$ } + } + } + \footnotetext { #2 } + } + } + { + \msg_term:n { [COR:~Number] } + \seq_gput_right:Nn \g_stm_cor_seq + { + \int_set:Nn \l_tmpa_int { #1 } + \tex_def:D \thefootnote + { \int_case:nn { \l_tmpa_int } + { + { 1 } { $\ast$ } + { 2 } { $\ast\!\ast$ } + { 3 } { $\ast\!\ast\!\ast$ } + } + } + \footnotetext { #2 } + } + } +} + +\newcommand \printcornotes { \seq_use:Nn \g_stm_cor_seq { \par } } + +\NewDocumentCommand \process@marks { } + { + \cs_if_free:cTF { mark@corau\theauthor } + { \ignorespaces } + { \str_set:Nx \l_tmpa_str { \use:c{ mark@corau\theauthor } } + \int_case:nn { \l_tmpa_str } + { + { 1 } { \sep$\ast$ } + { 2 } { \sep$\ast\ast$ } + { 3 } { \sep$\ast\!\ast\!\ast$ } + } + \tex_def:D \sep{\unskip,} + } + \cs_if_free:cTF { mark@fnau\theauthor } + { \ignorespaces } + { \sep\use:c { mark@fnau\theauthor } + \tex_def:D \sep{\unskip,} + } + } + + +% +% Author macros +% +\seq_new:c { g_stm_au0_seq } +\seq_new:c { g_stm_clau0_seq } +\int_new:N \g_stm_au_int +\int_new:N \g_stm_aau_int + +\NewDocumentCommand \ResetMarks { } + { + \keys_set:nn { stm / author } + { + auid = {} , + bioid = {} , + alt = {} , + style = { normal } , + prefix = {} , + suffix = {} , + degree = {} , + role = {} , + orcid = {} , + collab = { false } , + type = { author } , + anon = { false } , + deceased = { false } , + twitter = {} , + facebook = {} , + linkedin = {} , + plus = {} , + gplus = {} , + } + \tex_gdef:D \sep{} + \tex_gdef:D \stm@corref{} + \tex_gdef:D \@fnmark {} + } + + +\int_new:N \l_autype_int +\keys_define:nn { stm / author } + { + auid .tl_set:N = \l_stm_au_id_tl , + bioid .tl_set:N = \l_stm_au_bioid_tl , + alt .tl_set:N = \l_stm_au_alt_tl , + style .tl_set:N = \l_stm_au_style_tl , + prefix .tl_set:N = \l_stm_au_prefix_tl , + suffix .tl_set:N = \l_stm_au_suffix_tl , + degree .tl_set:N = \l_stm_au_degree_tl , + role .tl_set:N = \l_stm_au_role_tl , + orcid .tl_set:N = \l_stm_au_orcid_tl , + collab .bool_set:N = \l_stm_au_collab_bool , + type .multichoice:, + type/author .code:n = { \int_set:Nn \l_autype_int { 0 } }, + type/editor .code:n = { \int_set:Nn \l_autype_int { 1 } }, + type/collab .code:n = { \int_set:Nn \l_autype_int { 2 } }, + type/anon .code:n = { \int_set:Nn \l_autype_int { 3 } }, +% type/collab .bool_set:N = \l_stm_au_collab_bool , +% type/anon .bool_set:N = \l_stm_au_anon_bool , + anon .bool_set:N = \l_stm_au_anon_bool , + deceased .bool_set:N = \l_stm_au_deceased_bool , + twitter .tl_set:N = \l_stm_au_twitter_tl , + facebook .tl_set:N = \l_stm_au_facebook_tl , + linkedin .tl_set:N = \l_stm_au_linkedin_tl , + plus .tl_set:N = \l_stm_au_gplus_tl , + gplus .tl_set:N = \l_stm_au_gplus_tl , + } + +\keys_set:nn { stm / author } + { + auid = {} , + bioid = {} , + alt = {} , + style = { normal } , + prefix = {} , + suffix = {} , + degree = {} , + role = {} , + orcid = {} , + collab = { false } , + type = { author } , + anon = { false } , + deceased = { false } , + twitter = {} , + facebook = {} , + linkedin = {} , + plus = {} , + gplus = {} , + } + +\keys_define:nn { stm / ausetup } + { + type .choice: , + type / authors .meta:n = + { + size = \large , + shape = \upshape , + weight = \mdseries , + before = \bigskipamount , + after = 0pt , + align = \raggedright , + color = black , + lskip = 0pt , + rskip = 0pt , + } , + type / collaboration .meta:n = + { + size = \Large , + shape = \upshape , + weight = \mdseries , + before = \bigskipamount , + after = 0pt , + align = \raggedright , + color = black , + lskip = 0pt , + rskip = 0pt , + } , + size .tl_set:N = \l_stm_augroup_size_tl , + shape .tl_set:N = \l_stm_augroup_shape_tl , + weight .tl_set:N = \l_stm_augroup_weight_tl , + before .dim_set:N = \l_stm_augroup_before_dim , + after .dim_set:N = \l_stm_augroup_after_dim , + align .tl_set:N = \l_stm_augroup_align_tl , + color .tl_set:N = \l_stm_augroup_color_tl , + lskip .dim_set:N = \l_stm_augroup_lskip_tl , + rskip .dim_set:N = \l_stm_augroup_rskip_tl , + } + +\DeclareDocumentCommand \stmAuthorSetup { m } + { \keys_set:nn { stm / ausetup } { #1 } } +\DeclareDocumentCommand \stmausetup { m } + { \tl_set:Nn \l_stm_au_setup_tl + { \keys_set:nn { stm / ausetup } { #1 } } + } +\DeclareDocumentCommand \stmclbsetup { m } + { \tl_set:Nn \l_stm_clb_setup_tl + { \keys_set:nn { stm / ausetup } { #1 } } + } + +\stmausetup { } +\stmclbsetup { } + +\seq_new:N \g_stm_maltese_seq +\seq_new:N \g_stm_facebook_seq +\seq_new:N \g_stm_twitter_seq +\seq_new:N \g_stm_gplus_seq +\seq_new:N \g_stm_linkedin_seq +\bool_new:N \g_stm_nologo_bool +\bool_gset_false:N \g_stm_nologo_bool + +\NewDocumentCommand \twitterauthor { m m } + { + \seq_gput_right:Nn \g_stm_twitter_seq + { + \parsename { #2 } + \url{https://twitter.com/\tl_to_str:n{#1}}\space(\eadauthor) + } + } +\NewDocumentCommand \facebookauthor { m m } + { + \seq_gput_right:Nn \g_stm_facebook_seq + { + \parsename { #2 } + \url{https://www.facebook.com/\tl_to_str:n{#1}}\space(\eadauthor) % + } + } +\NewDocumentCommand \gplusauthor { m m } + { + \seq_gput_right:Nn \g_stm_gplus_seq + { + \parsename { #2 } + \url{https://plus.google.com/\tl_to_str:n{#1}}\space(\eadauthor)% + } + } +\NewDocumentCommand \linkedinauthor { m m } + { + \seq_gput_right:Nn \g_stm_linkedin_seq + { + \parsename { #2 } + \url{https://www.linkedin.com/profile/view?id=\tl_to_str:n{#1}}% + \space(\eadauthor) + } + } + +\NewDocumentCommand \printmaltese { } + { + \seq_use:Nn { \g_stm_maltese_seq } { } + } +\NewDocumentCommand \printfacebook { } + { + \seq_if_empty:NTF \g_stm_facebook_seq { } + { + \tex_def:D \thefootnote{} + \footnotetext + { + \bool_if:NTF \g_stm_nologo_bool + { Facebook:\c_space_token } + { \includegraphics[height=8pt]{thumbnails/facebook.jpeg}\c_space_token } + \seq_use:Nn \g_stm_facebook_seq {,\c_space_token } + } + } + } +\NewDocumentCommand \printtwitter { } + { + \seq_if_empty:NTF \g_stm_twitter_seq { } + { + \tex_def:D \thefootnote{} + \footnotetext + { + \bool_if:NTF \g_stm_nologo_bool + { Twitter:\c_space_token } + { \includegraphics[height=8pt]{thumbnails/twitter.jpeg}\c_space_token } + \seq_use:Nn \g_stm_twitter_seq {,\c_space_token } + } + } + } +\NewDocumentCommand \printgplus { } + { + \seq_if_empty:NTF \g_stm_gplus_seq { } + { + \tex_def:D \thefootnote{} + \footnotetext + { + \bool_if:NTF \g_stm_nologo_bool + { Google+:\c_space_token } + { \includegraphics[height=8pt]{thumbnails/gplus.jpeg}\c_space_token } + \seq_use:Nn \g_stm_gplus_seq {,\c_space_token } + } + } + } +\NewDocumentCommand \printlinkedin { } + { + \seq_if_empty:NTF \g_stm_linkedin_seq { } + { + \tex_def:D \thefootnote{} + \footnotetext + { + \bool_if:NTF \g_stm_nologo_bool + { LinkedIn:\c_space_token } + { \includegraphics[height=8pt]{thumbnails/linkedin.jpeg}\c_space_token } + \seq_use:Nn \g_stm_linkedin_seq {,\c_space_token } + } + } + } + +\seq_new:N \g_stm_prelimsau_seq + +\csxdef{infoauthors}{} +\cs_new:Nn \no_break_space: { \nobreak{~} \penalty 10000 } +\RenewDocumentCommand \author { O{} m O{} } + { + \ResetMarks + \tl_if_blank:nTF { #3 } { } + { \keys_set:nn { stm / author } { #3 } } +% + \int_gincr:N \g_stm_au_int + \tex_gdef:D \theau@ { \int_use:N \g_stm_au_int } +% + \seq_gput_right:Nn \g_stm_prelimsau_seq { #2 } + \bool_if:NTF \l_stm_au_collab_bool + { \seq_gput_right:cn { g_stm_clau\int_use:N \g_stm_augr_int _seq } } + { \seq_gput_right:cn { g_stm_au\int_use:N \g_stm_augr_int _seq } } + { + \int_gincr:N \g_stm_aau_int + \tex_gdef:D \theauthor {\int_use:N \g_stm_aau_int } + \keys_set:nn { stm /author } { #3 } + \tl_if_head_eq_catcode:nNTF { #1 } a + { \processAffRef { #1 } } + { \processAffNum { #1 } } + \tl_if_empty:NF \l_stm_au_prefix + { \l_stm_au_prefix_tl \c_space_token } + \str_if_eq:VnTF \l_stm_au_style_tl { chinese } + { %\msg_term:n {STYLE~T=\l_stm_au_style_tl........} + \invparsename { #2 } + \textcolor{\l_stm_augroup_color_tl}{\surname} + \no_break_space: + \textcolor{\l_stm_augroup_color_tl !50}{\firstname} + } + { %\msg_term:n {STYLE~F=\l_stm_au_style_tl........} + \parsename { #2 } + \textcolor{\l_stm_augroup_color_tl !50}{\firstname} + \no_break_space: + \textcolor{\l_stm_augroup_color_tl}{\surname} + } + \tl_if_empty:NF \l_stm_au_suffix_tl + { \c_space_token \l_stm_au_suffix_tl } + \unskip + \textsuperscript + { + \tl_if_blank:nTF { #1 } + { \tex_def:D \sep{} } + { {\itshape\listAff} \tex_def:D \sep{\unskip,} } + \process@marks + \bool_if:NT \l_stm_au_deceased_bool + { \sep \maltese + \tex_def:D \sep { \unksip, } + } + } + \tl_if_empty:NF \l_stm_au_degree_tl + { ,\c_space_token \l_stm_au_degree_tl } + \tl_if_empty:NF \l_stm_au_role_tl + { \c_space_token (\l_stm_au_role_tl) } +% + \ResetMarks + } +% + \bool_if:NT \l_stm_au_deceased_bool + { + \seq_gput_right:Nn \g_stm_maltese_seq + { + \tex_def:D \thefootnote { \maltese } + \footnotetext{Deceased~author.} + } + } +% various social media + \tl_if_empty:NTF \l_stm_au_facebook_tl { } + { + \wrAux { \token_to_str:N \facebookauthor + { \l_stm_au_facebook_tl } { \exp_not:n {#2} } } + } + \tl_if_empty:NF \l_stm_au_twitter_tl + { + \wrAux { \token_to_str:N \twitterauthor + { \l_stm_au_twitter_tl } { \exp_not:n {#2} } } + } + \tl_if_empty:NF \l_stm_au_gplus_tl + { + \wrAux { \token_to_str:N \gplusauthor + { \l_stm_au_gplus_tl } { \exp_not:n {#2} } } + } + \tl_if_empty:NF \l_stm_au_linkedin_tl + { + \wrAux { \token_to_str:N \linkedinauthor + { \l_stm_au_linkedin_tl } { \exp_not:n {#2} } } + } + \tl_if_empty:NF \l_stm_au_orcid_tl + { + \wrAux { \token_to_str:N \orcidauthor + { \l_stm_au_orcid_tl } { \exp_not:n {#2} } } + } +% + \@eadauthor={#2} + \pdfstringdef\__info_au: { #2 } + \int_compare:nNnTF { \theau@ } < { 4 } + { \xappto \infoauthors { \__info_au: , ~ } } + { + \int_compare:nNnTF { \theau@ } = { 4 } + { \xappto \infoauthors { et~al. } } + { } + } + } + +\NewDocumentCommand \stmauthors { } + { + \group_begin: + \stmAuthorSetup { type = authors } + \l_stm_au_setup_tl + \par \vskip\l_stm_augroup_before_dim + \l_stm_augroup_align_tl + \l_stm_augroup_size_tl + \l_stm_augroup_shape_tl + \l_stm_augroup_weight_tl + \color{ \l_stm_augroup_color_tl } + \bool_if:NTF \g_stm_augr_bool + { \seq_use:Nn \g_stm_augr_seq { \par } } + { + \seq_use:cnnn { g_stm_au\int_use:N\g_stm_augr_int _seq } + { ,~ } { ,~ } { ~and~ } + } + \par\vskip\l_stm_augroup_after_dim + \group_end: + } + +\seq_new:c { g_stm_collab0_seq } +\bool_new:N \g_stm_in_clau_bool + +\NewDocumentCommand \stmcollab { } + { + \bool_if:NTF \g_stm_augr_bool + { } + { + \group_begin: + \stmAuthorSetup { type = collaboration } + \l_stm_clb_setup_tl + \par \vskip \l_stm_augroup_before_dim + \l_stm_augroup_align_tl + \l_stm_augroup_size_tl + \l_stm_augroup_shape_tl + \l_stm_augroup_weight_tl + \color{ \l_stm_augroup_color_tl } + \seq_use:cn {g_stm_collab\int_use:N \g_stm_aaugr_int _seq} { } + \seq_use:cnnn {g_stm_clau\int_use:N \g_stm_aaugr_int _seq} + { ~and~ } { ,~ } { ~and~ } + \par \vskip \l_stm_augroup_after_dim + \group_end: + } + } + +\newenvironment{collaboration}[1][] + { + \seq_gput_right:cn {g_stm_collab\int_use:N \g_stm_augr_int _seq} + { \textit{Collaboration:~} #1 \par \smallskip } + } + { } + +\NewDocumentCommand \dept { m } { #1 } +\NewDocumentCommand \divn { m } { #1 } +\NewDocumentCommand \aline { m } { #1 } +\NewDocumentCommand \city { m } { #1 } +\NewDocumentCommand \cnty { m } { #1 } +\NewDocumentCommand \phone { m } { #1 } +\NewDocumentCommand \fax { m } { #1 } +\NewDocumentCommand \aurl { m } { #1 } + +\seq_new:c { g_stm_aff0_seq } +\int_new:N \g_stm_aff_int +\tl_new:N \l_addrtype_tl + +\keys_define:nn { stm / address } + { + foot .bool_gset:N = \g_stm_addr_foot_bool , + name .tl_set:N = \l_stm_addr_name_tl , + type .multichoice: , + type/alt .code:n = { \tl_set:Nn \l_stm_addr_type_tl + { Alternate~address } } , + type/addl .code:n = { \tl_set:Nn \l_stm_addr_type_tl + { Additional~address } } , + type/regular .code:n = { \tl_set:Nn \l_stm_addr_type_tl + { } } , + type/custom .code:n = { \tl_set:Nn \l_stm_addr_type_tl + { \l_stm_addr_name_tl } } , + } +\DeclareDocumentCommand \stmAddrSetup { m } + { \keys_set:nn { stm / address } { #1 } } + +\keys_set:nn { stm / address } +{ + foot = { false } , + type = { regular } , + name = { Alternate~address } , +} + +\cs_new:Nn \__reset_addr: +{ + \bool_gset_false:N \g_stm_addr_foot_bool + \tl_set:Nn \l_stm_addr_type_tl { } + \tl_set:Nn \l_stm_addr_name_tl { Alternate~address } +} + +\seq_new:N \g_stm_aff_foot_seq + +\NewDocumentCommand \printaddrinfoot { } + { + { \seq_use:Nn \g_stm_aff_foot_seq { \par } } + } + +\NewDocumentCommand \address { O{} m O{} } + { + \__reset_addr: + \keys_set:nn { stm / address } { #3 } + \bool_if:NTF \g_stm_addr_foot_bool + { \__foot_address:nnn [#1]{#2}[#3] } + { + \seq_gput_right:cn { g_stm_aff\int_use:N \g_stm_augr_int _seq } + { \tl_if_blank:nTF { #1 } + { + \tex_xdef:D \thefootnote{} + { #2 } + } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + { + \int_gincr:N \g_stm_aff_int + \tex_xdef:D \@currentlabel + { \int_to_alph:n { \int_use:N \g_stm_aff_int } } + \stmLabel {#1} + \textsuperscript{\itshape\@currentlabel} #2 + } + { + \int_gset:Nn \g_stm_aff_int { #1 } + \tex_xdef:D \@currentlabel + { \int_to_alph:n { \int_use:N \g_stm_aff_int } } + \textsuperscript{\itshape\@currentlabel} #2 + } + } + } + } + } + +\cs_new:Npn \__foot_address:nnn [#1]#2[#3] +{ + \keys_set:nn { stm / address } { #3 } + \seq_gput_right:cn { g_stm_aff_foot_seq } + { + \tl_if_empty:nTF { #1 } + { + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{#2} } + { + \footnotetext{\textit{\l_stm_addr_type_tl}: + \c_space_token #2 } + } + } + { + \tl_if_head_eq_catcode:nNTF { #1 } a + % + { + \tex_def:D \thefootnote{\itshape\@currentlabel} + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{#2} } + { \footnotetext{\textit{\l_stm_addr_type_tl}: \c_space_token #2} } + } + { + \tex_def:D \thefootnote { \itshape\int_to_alph:n { #1 } } + \tl_if_empty:NTF \l_stm_addr_type_tl + { \footnotetext{#2} } + { \footnotetext{\textit{\l_stm_addr_type_tl}: + \c_space_token #2 } } + } + } + } +} + +\keys_define:nn { stm / affsetup } + { + type .choice: , + type / normal .code:n = + { \tl_set:Nn \l_stm_aff_type_tl { 0 } } , + type / nonum .code:n = + { \tl_set:Nn \l_stm_aff_type_tl { 1 } } , + + size .tl_set:N = \l_stm_aff_size_tl , + shape .tl_set:N = \l_stm_aff_shape_tl , + weight .tl_set:N = \l_stm_aff_weight_tl , + before .dim_set:N = \l_stm_aff_before_dim , + after .dim_set:N = \l_stm_aff_after_dim , + align .tl_set:N = \l_stm_aff_align_tl , + color .tl_set:N = \l_stm_aff_color_tl , + lskip .dim_set:N = \l_stm_aff_lskip_dim , + rskip .dim_set:N = \l_stm_aff_rskip_dim , + } + +\DeclareDocumentCommand \stmAffSetup { m } + { \keys_set:nn { stm / affsetup } { #1 } } +\DeclareDocumentCommand \stmaffsetup { m } + { \tl_set:Nn \l_stm_aff_setup_tl + { \keys_set:nn { stm / affsetup } { #1 } } + } +\stmaffsetup { + size = \footnotesize, + shape = \itshape, + color = black, + before = 0pt, + weight = \mdseries, + align = \raggedright, + } + +\NewDocumentCommand \stmaddress { } + { + \bool_if:NTF \g_stm_augr_bool + { } + { + \group_begin: + \stmAffSetup { type = normal } + \l_stm_aff_setup_tl + \par \vskip\l_stm_aff_before_dim + \l_stm_aff_align_tl + \l_stm_aff_size_tl + \l_stm_aff_shape_tl + \l_stm_aff_weight_tl + \color{ \l_stm_aff_color_tl } + \seq_use:cn { g_stm_aff\int_use:N \g_stm_aaugr_int _seq } + { \par\vskip2pt } + \par\vskip\l_stm_aff_after_dim + \group_end: + } + } + +\int_new:N \g_stm_augr_int +\seq_new:N \g_stm_augr_seq +\int_new:N \g_stm_aaugr_int +\bool_new:N \g_stm_augr_bool + +\NewDocumentEnvironment { augroup } { } + { + \bool_gset_true:N \g_stm_augr_bool + \int_gincr:N \g_stm_augr_int + \seq_new:c {g_stm_au\int_use:N \g_stm_augr_int _seq} + \seq_new:c {g_stm_aff\int_use:N \g_stm_augr_int _seq} + \seq_new:c {g_stm_collab\int_use:N \g_stm_augr_int _seq} + \seq_new:c {g_stm_clau\int_use:N \g_stm_augr_int _seq} + \msg_term:n { AUGR:~\int_use:N \g_stm_augr_int ... } + } + { + \seq_gput_right:Nn \g_stm_augr_seq + { + \int_gincr:N \g_stm_aaugr_int + \group_begin: + \stmAuthorSetup { type = collaboration } + \l_stm_clb_setup_tl + \par \vskip \l_stm_augroup_before_dim + \l_stm_augroup_align_tl + \l_stm_augroup_size_tl + \l_stm_augroup_shape_tl + \l_stm_augroup_weight_tl + \color{ \l_stm_augroup_color_tl } + \seq_use:cnnn { g_stm_au\int_use:N \g_stm_aaugr_int _seq } + { ~and~ } { ,~ } { ~and~ } + \par \vskip \l_stm_augroup_after_dim + \group_end: +% + \group_begin: + \stmAffSetup { type = normal } + \l_stm_aff_setup_tl + \par \vskip\l_stm_aff_before_dim + \l_stm_aff_align_tl + \l_stm_aff_size_tl + \l_stm_aff_shape_tl + \l_stm_aff_weight_tl + \color{ \l_stm_aff_color_tl } + \seq_use:cn { g_stm_aff\int_use:N \g_stm_aaugr_int _seq } + { \par \smallskip } + \par\vskip\l_stm_aff_after_dim + \msg_term:n { AAUGR:~\int_use:N \g_stm_aaugr_int ... } + \group_end: +% + \group_begin: + \stmAuthorSetup { type = collaboration } + \l_stm_clb_setup_tl + \par \vskip \l_stm_augroup_before_dim + \l_stm_augroup_align_tl + \l_stm_augroup_size_tl + \l_stm_augroup_shape_tl + \l_stm_augroup_weight_tl + \color{ \l_stm_augroup_color_tl } + \seq_use:cn {g_stm_collab\int_use:N \g_stm_aaugr_int _seq} { } + \seq_use:cnnn {g_stm_clau\int_use:N \g_stm_aaugr_int _seq} + { ~and~ } { ,~ } { ~and~ } + \par\vskip \l_stm_augroup_after_dim + \group_end: + } + } + +% +% Abstract +% +\RequirePackage{moreverb} + +\tex_gdef:D \abstractname { A\,B\,S\,T\,R\,A\,C\,T } +\tl_new:N \l_stm_abs_title_tl +\box_new:N \g_stm_abs_box + +\NewDocumentEnvironment { Abstract } { o } +{ +% \global\setbox \g_stm_abs_box = \vtop \bgroup +% \hsize = .65 \textwidth \parindent \z@ + \group_begin: + \IfNoValueTF { #1 } { } + { \tex_gdef:D \abstractname { #1 } } + \parindent \z@ + \box_if_empty:NTF \g_stm_key_box + { \leftskip = .35 \textwidth } + { + \dim_gset:Nn \l_tmpa_dim { \box_ht:N \g_stm_key_box } + \dim_gadd:Nn \l_tmpa_dim { \box_dp:N \g_stm_key_box } + \leftskip .35\textwidth + \hspace*{-.35 \textwidth } + \noindent\hbox_to_wd:nn { \z@ } { \box \g_stm_key_box } + \skip_vertical:n { - \l_tmpa_dim } + } + \noindent \abstractname \par + \skip_vertical:n { -4pt} + \noindent \rule{.65\textwidth}{.2pt}\par \footnotesize + \ignorespaces \everypar { \parindent=1.5em } +} +{ \par \group_end: } + +\NewDocumentEnvironment { PrelimsAbstract } { O{} } + {\parindent=0pt + { \fontsize{14pt}{16pt}\selectfont #1 }\par + \vskip12pt + { \fontsize{12pt}{14pt}\bfseries\selectfont\casprelimstitle } \par + \vskip6pt + \seq_use:Nn \g_stm_prelimsau_seq { , } + \vskip12pt + \par + } + {} + +\RenewDocumentEnvironment { abstract } { o } +{ + \IfNoValueTF { #1 } { } + { \tex_gdef:D \abstracttitle { #1 } } + \verbatimwrite{\jobname.abs} +} +{ \endverbatimwrite } + +\newbox\casgrabsbox +\newbox\casauhlbox +\newbool { usecasgrabsbox } +\newbool { usecashlsbox } + +\DeclareDocumentEnvironment { graphicalabstract } { O{Graphical~Abstract} } +{ + \global \booltrue { usecasgrabsbox } + \global\setbox\casgrabsbox=\vbox\bgroup + \begin{PrelimsAbstract}[#1] + \noindent \ignorespaces +} +{ + \end{PrelimsAbstract} + \egroup +} + +\DeclareDocumentEnvironment { highlights } { O{Highlights} } +{ + \global \booltrue { usecashlsbox } + \global\setbox\casauhlbox=\vbox\bgroup + \begin{PrelimsAbstract}[#1] + \noindent \ignorespaces + \begin{itemize} +} +{ + \end{itemize} + \end{PrelimsAbstract} + \egroup +} + + +\NewDocumentCommand \dashrule { O{.4pt} m m } + { + \color{black!50} + \skip_vertical:n { #2 } + \noindent \rule { \linewidth } { #1} + \normalcolor \skip_vertical:n { #3 } + } + +\NewDocumentCommand \keywordtitle { } { Keywords } +\NewDocumentCommand \keywordtitlesep { } {:\c_space_token } +\box_new:N \g_stm_key_box + +\NewDocumentCommand \MSC { O{} m } + { + \par\noindent \textit { #1\c_space_token MSC:\c_space_token } #2 + } +\NewDocumentCommand \JEL { m } + { + \par\noindent \textit { JEL:\c_space_token } #1 + } +\NewDocumentCommand \PACS { m } + { + \par\noindent \textit { PACS:\c_space_token } #1 + } + +\NewDocumentEnvironment { keywords } { O{ Keywords } } + { + \tex_global:D \tex_setbox:D \g_stm_key_box = \vtop \bgroup + \hsize=.25 \textwidth + \cs_new:Nn \sep: { \par } + \cs_set_eq:NN \sep \sep: + \parindent \z@ + A\,R\,T\,I\,C\,L\,E\ \ I\,N\,F\,O \par \skip_vertical:n { -3pt } + \rule{.25 \textwidth}{.2pt}\par\footnotesize + \noindent \textit { #1 }: \par + } + { \egroup } + + +% +% Print all footnotes in the title page +% + +\bool_new:N \g_stm_longmktitle_bool +\int_new:N \g_stm_jtype_int +\int_new:N \g_stm_blind_int + +\NewDocumentCommand \printFirstPageNotes { } + { + \bool_if:NTF \g_stm_longmktitle_bool + { \tex_let:D \columnwidth = \textwidth } + { } + \int_compare:nTF { \g_stm_jtype_int > 5 } + { \stmaddress } + { } + \printtnotes + \printnonumnotes + \bool_if:NTF \g_stm_blind_bool + { } + { + \printcornotes + \printmaltese + \printaddrinfoot + \printemails + \printurls + \printorcid + \printfacebook + \printtwitter + \printgplus + \printlinkedin + \printfnotes + } + \bool_if:NTF \g_stm_longmktitle_bool + { + \if@twocolumn + \tex_let:D \columnwidth = \Columnwidth \fi + } + { } + \normalcolor + } + +% +% Date History +% +\tl_new:N \g_stm_recd_tl +\tl_new:N \g_stm_accd_tl +\tl_new:N \g_stm_revd_tl +\tl_new:N \g_stm_pub_online_tl +\tl_new:N \g_stm_pub_print_tl + +\cs_new:Npn \date_parse:n #1 { \date_parse_aux:w #1 \q_stop } +\cs_new:Npn \date_parse_aux:w #1 / #2 / #3 \q_stop +{ <do something with the date> } + +\NewDocumentCommand \received { m } + { \tl_gput_right:Nn \g_stm_recd_tl { #1 } } +\NewDocumentCommand \accepted { m } + { \tl_gput_right:Nn \g_stm_accd_tl { #1 } } +\NewDocumentCommand \revised { m } + { \tl_gput_right:Nn \g_stm_revd_tl { #1 } } +\NewDocumentCommand \published { O{} m } +{ + \tl_if_eq:nnTF { #1 } { online } + { \tl_if_gput_right:Nn \g_stm_pub_online_tl { #2 } } + { \tl_if_gput_right:Nn \g_stm_pub_print_tl { #2 } } +} + +% +% Verse/Recto +% +\tl_new:N \l_stm_verso_tl +\tl_new:N \l_stm_recto_tl + +\NewDocumentCommand \verso { m } +{ \tl_set:Nn \l_stm_verso_tl { #1 } } +\NewDocumentCommand \recto { m } +{ \tl_set:Nn \l_stm_recto_tl { #1 } } + +% +% Maketitle +% + +\newcounter{au} +\newcounter{cnote} +\newcounter{tnote} +\newcounter{fnote} +\newcounter{aff} + +\cs_new:Nn \__reset_title_counters: +{ + \setcounter{cnote}{0} + \setcounter{fnote}{0} + \setcounter{tnote}{0} + \setcounter{footnote}{0} +} + +\keys_define:nn { stm / mktitle } +{ + blind .bool_gset:N = \g_stm_blind_bool , + footer .multichoice:, + footer/default .tl_gset:N = \g_stm_footer_default_tl , + footer/custom .tl_gset:N = \g_stm_footer_custom_tl , + longtitle .bool_gset:N = \g_stm_longtitle_bool , + longabstract .bool_gset:N = \g_stm_longtitle_bool , + breakafter .clist_gset:N = \g_stm_breakafter_clist , + nologo .bool_gset:N = \g_stm_nologo_bool , +} + +\bool_new:N \g_stm_breakafter_title_bool +\bool_new:N \g_stm_breakafter_auaff_bool +\bool_new:N \g_stm_breakafter_abstract_bool + +\NewDocumentCommand \processbreakafter { } +{ + \clist_if_empty:NTF \g_stm_breakafter_clist { } + { + \clist_map_inline:Nn \g_stm_breakafter_clist + { \bool_gset_true:c { g_stm_breakafter_##1_bool } } + } +} + +\NewDocumentCommand \pprintMaketitle { O{} } +{ + \tl_if_blank:nTF { #1 } { } + { \keys_set:nn { stm / mktitle } { #1 } } + \processbreakafter + \clearpage + \__reset_title_counters: + \tex_def:D \baselinestretch { 1 } + \printFirstPageNotes + \thispagestyle{pprintTitle}% + \group_begin: + \@title + \group_end: + \bool_if:NTF \g_stm_breakafter_title_bool + { \newpage } { } + % + \bool_if:NTF \g_stm_blind_bool + { \vspace* { 10 mm } } + { + \group_begin: + \normalsize \stmauthors \par + \stmcollab \par + \footnotesize \itshape \stmaddress \par \vskip36pt + \group_end: + \bool_if:NTF \g_stm_breakafter_auaff_bool + { \newpage } { } + } + % + \printabsbox + \printkeybox + \bool_if:NTF \g_stm_breakafter_abstract_bool + { \newpage } { } + % + \setcounter{footnote}{\c@fnote} + \tex_gdef:D \thefootnote { \arabic{footnote} } + \tex_def:D \baselinestretch { \@blstr } + \normalfont \normalsize +} + +\NewDocumentCommand \MaketitleBox { } +{ + \tex_def:D \baselinestretch{1} + \group_begin: + \@title + \group_end: + % + \bool_if:NTF \g_stm_blind_bool + { \vspace* { 10 mm } } + { + \group_begin: + \normalsize \stmauthors \par + \stmcollab \par + \footnotesize \itshape \stmaddress \par + \group_end: + \bool_if:NTF \g_stm_breakafter_auaff_bool + { \newpage } { } + } + % \printFirstPageNotes + % + \dashrule{0pt}{3pt} + \begin{Abstract} + \noindent \ignorespaces + \file_if_exist:nT { \jobname.abs } { \file_input:n { \jobname.abs } } + \end{Abstract} + \dashrule{6pt}{3pt} + \bool_if:NTF \g_stm_breakafter_abstract_bool + { \newpage } { } +} + +\box_new:N \g_stm_notes_box +\box_new:N \g_stm_front_box +\cs_set:Npn \__fn_text:n #1 +{ \group_begin:\vbox_top:n { \footnotesize #1 } \group_end:\par} + +\NewDocumentCommand \LongMaketitleBox { } +{ + \vbox_gset:Nn \g_stm_front_box + { + \tex_def:D \baselinestretch{1} + \group_begin: + \@title + \group_end: + % + \group_begin: + \normalsize \stmauthors \par + \stmcollab \par + \footnotesize \itshape \stmaddress \par + \group_end: + % + \dashrule{0pt}{3pt} + \begin{Abstract} + \noindent \ignorespaces + \file_if_exist:nT { \jobname.abs } { \file_input:n { \jobname.abs } } + \end{Abstract} + \dashrule{3pt}{3pt} + } + \vbox_gset:Nn \g_stm_notes_box + { \cs_set_eq:NN \footnotetext \__fn_text:n \printFirstPageNotes } + \dim_gset:Nn \g_tmpb_dim { \box_ht:N \g_stm_notes_box } + % \iow_term:x { ...~[ht: \dim_use:N \g_tmpb_dim ] } + \dim_gadd:Nn \g_tmpb_dim { \box_dp:N \g_stm_notes_box } + % \iow_term:x { ...~[ht+dp: \dim_use:N \g_tmpb_dim ] } + \ifbool{sc}{\dim_gadd:Nn \g_tmpb_dim { 12pt } } { } + +} + +\NewDocumentCommand \ProcessLongTitleBox { } +{ + % \vbox_gset:Nn \g_stm_notes_box + % { \cs_set_eq:NN \footnotetext \__fn_text:n \printFirstPageNotes } + % \dim_gset:Nn \g_tmpb_dim { \box_ht:N \g_stm_notes_box } + % % \iow_term:x { ...~[ht: \dim_use:N \g_tmpb_dim ] } + % \dim_gadd:Nn \g_tmpb_dim { \box_dp:N \g_stm_notes_box } + % % \iow_term:x { ...~[ht+dp: \dim_use:N \g_tmpb_dim ] } + % + \dim_gset:Nn \g_tmpa_dim { \textheight } +% \vbox_unpack:N \g_stm_notes_box + % \iow_term:x { ...~[tmpa:~ \dim_use:N \g_tmpa_dim ] } + % \dim_gsub:Nn \g_tmpa_dim { \box_ht:N \g_stm_notes_box } + % \iow_term:x { ...~[tmpa-noteht:~ \dim_use:N \g_tmpa_dim ] } + % \dim_gsub:Nn \g_tmpa_dim { \box_dp:N \g_stm_notes_box } + % \iow_term:x { ...~[tmpa-notedp:~ \dim_use:N \g_tmpa_dim ] } + \dim_gsub:Nn \g_tmpa_dim { \g_tmpb_dim } + \vbox_set_split_to_ht:NNn \g_tmpb_box \g_stm_front_box { \g_tmpa_dim } + \noindent \vbox_unpack_clear:N \g_tmpb_box + \printFirstPageNotes + \dim_gzero:N \g_tmpa_dim + \dim_gset:Nn \g_tmpa_dim { \box_ht:N \g_stm_front_box } + % \iow_term:x { ...~[tmpa-ht:~ \dim_use:N \g_tmpa_dim ] } + \dim_gadd:Nn \g_tmpa_dim { \box_dp:N \g_stm_front_box } + % \iow_term:x { ...~[tmpa-ht+dp:~ \dim_use:N \g_tmpa_dim ~+~\the\textheight] } + \dim_compare:nNnTF { \dim_use:N \g_tmpa_dim } > { \the\textheight } + { + \vbox_set_split_to_ht:NNn \g_tmpb_box \g_stm_front_box { \textheight } + \vbox_unpack_clear:N \g_tmpb_box + \ifbool{dc} + { \twocolumn[{\vbox_unpack_clear:N \g_stm_front_box}] } + { \vbox_unpack_clear:N \g_stm_front_box } + } + { + \ifbool{dc} + { \twocolumn[{\vbox_unpack_clear:N \g_stm_front_box}] } + { \vbox_unpack_clear:N \g_stm_front_box } + } + \normalcolor \normalfont +} +\ExplSyntaxOff + +% +% Headings +% +\def\@seccntDot{.} +\def\@seccntformat#1{\csname the#1\endcsname\@seccntDot\hskip 0.5em} + +\newdimen\paraindent \paraindent=\parindent +\newdimen\subparaindent \subparaindent=\parindent +\def\ssssparaindent{} +\def\sectionfont{\rmfamily\fontsize{12pt}{14pt}% + \bfseries} +\def\ssectionfont{\rmfamily\fontsize{11pt}{13pt}% + \bfseries\selectfont} +\def\sssectionfont{\rmfamily\fontsize{10.5pt}{12pt}% + \fontseries{b}\fontshape{it}\selectfont} +\def\ssssectionfont{\rmfamily\fontsize{11pt}{10pt}\itshape\selectfont} +\def\sssssectionfont{\rmfamily\fontsize{11pt}{10pt}\selectfont}% + +\AtBeginDocument{\global\@afterindentfalse} + +\renewcommand\section{\@startsection{section}{1}{\z@}% + {15pt \@plus 3\p@ \@minus 3\p@}% + {4\p@}% + {%\let\@hangfrom\relax + \sectionfont\raggedright\hst[13pt]}} + +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% + {10pt \@plus 3\p@ \@minus 2\p@}% + {.1\p@}% + {%\let\@hangfrom\relax + \ssectionfont\raggedright }} + +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {10pt \@plus 1\p@ \@minus .3\p@}% + {.1\p@}% + {%\let\@hangfrom\relax + \sssectionfont\raggedright}} + +\renewcommand\paragraph{\@startsection{paragraph}{4}{\parindent}% + {10pt \@plus0.01pt \@minus0.01pt}% + {-6pt}% + {\ssssparaindent% + \ssssectionfont\itshape\raggedright}} + +\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% + {0pt \@plus0.1pt \@minus0.1pt}% + {-6pt}% + {\hspace*{\subparaindent} + \sssssectionfont\raggedright}} + +\def\thesubsection{\thesection.\arabic{subsection}} +\def\thesubsubsection{\thesubsection.\arabic{subsubsection}} + +% +% Sundry lengths +% +\def\xstrut#1#2{\vrule height#1 depth #2 width\z@} +\def\hstrut#1{\vrule height#1 depth \z@ width 0pt} +\def\dstrut#1{\vrule height0pt depth#1 width 0pt} +\def\hst[#1]{\vrule height#1 depth \z@ width \z@} +\def\dst[#1]{\vrule height0pt depth#1 width 0pt} +\def\xst[#1][#2]{\vrule height#1 depth #2 width\z@} + +\def\lastpage{100} + +\AtEndDocument{% +% \clearpage + \immediate\write\@auxout{\string\csxdef{lastpage}{\thepage}} +} + +\ExplSyntaxOn + +% +% pagestyle +% + +\cs_new:Npn \__first_footerline: +{ + \group_begin: + \small + \sffamily \__short_authors: :~ + { \rmfamily \itshape Preprint~ submitted ~to ~Elsevier } + \group_end: +} + +\cs_new:Npn \__first_head: +{ + \parbox[t]{\textwidth} + { + \color{black!20} + \rule{\textwidth}{0pt} + } +} + + +\cs_new:Npn \__first_foot: +{ + \parbox[t]{\textwidth} + { + \rule{\textwidth}{.2pt}\\ + \__first_footerline: \hfill Page~ \thepage {} ~of~ \lastpage } +} + + +\cs_new:Npn \__cas_head: +{ + \parbox{\textwidth} + { + \sffamily\small\centering + \__short_title: + } + } + + +\cs_new:Npn \__cas_foot: +{ + \parbox[t]{\textwidth} + { + \rule{\textwidth}{.2pt}\\ + \sffamily\small + \__first_footerline: + \hfill Page~\thepage {}~of~ \lastpage + } +} + +\newcommand \ps@first + { + \cs_set_eq:NN \@oddhead \__first_head: + \cs_set_eq:NN \@evenhead \__first_head: + \cs_set_eq:NN \@evenfoot \__first_foot: + \cs_set_eq:NN \@oddfoot \__first_foot: + } + + +\newcommand \ps@cas +{ + \cs_set_eq:NN \@oddhead \__cas_head: + \cs_set_eq:NN \@evenhead \__cas_head: + \cs_set_eq:NN \@evenfoot \__cas_foot: + \cs_set_eq:NN \@oddfoot \__cas_foot: +} + +\ps@cas + + +% +% Floats +% + +\def\topfraction{.9} +\def\bottomfraction{.9} +\setcounter{topnumber}{4} +\setcounter{bottomnumber}{3} +\setcounter{totalnumber}{5} +\renewcommand\textfraction{.1} +\renewcommand\floatpagefraction{.9} +\setcounter{dbltopnumber}{2} +\renewcommand\dbltopfraction{.9} +\renewcommand\dblfloatpagefraction{.95} +\newdimen \FullWidth +\FullWidth=\textwidth + +\newcolumntype{L}{@{\extracolsep{\fill}}l} +\newcolumntype{R}{@{\extracolsep{\fill}}r} +\newcolumntype{C}{@{\extracolsep{\fill}}c} + +\cs_gset_eq:NN \thead \toprule +\cs_gset_eq:NN \endthead \midrule +\cs_gset_eq:NN \tabref \ref + +\dim_new:N \l_tbl_width_dim +\dim_set:Nn \l_tbl_width_dim { \linewidth } + +\cs_new:Npn \__make_tbl_caption:nn #1#2 +{ + \l_tbl_align_tl + \skip_vertical:N \l_tbl_abovecap_skip + % \bool_if:NTF \g_tbl_full_bool + % { + % \color{scolor!70}\rule{\FullWidth}{2pt}\normalcolor\\ + % } + % { \color{scolor!70}\rule{\tblwidth}{2pt}\normalcolor\\ } + % \fboxsep=4pt + % \colorbox{white} + {\parbox{ \dimexpr(\l_tbl_width_dim)} + {\rightskip=0pt\sffamily\small\textbf{\color{scolor}#1}\par#2\par\vskip4pt }} + \skip_vertical:N \l_tbl_belowcap_skip +} + +\keys_define:nn { cas / tbl } +{ + width .dim_set:N = \l_tbl_width_dim , + pos .tl_set:N = \l_tbl_pos_tl , + cols .tl_set:N = \l_tbl_cols_tl , + align .tl_set:N = \l_tbl_align_tl, + abovecap .skip_set:N = \l_tbl_abovecap_skip , + belowcap .skip_set:N = \l_tbl_belowcap_skip , + abovetbl .skip_set:N = \l_tbl_abovetbl_skip , + belowtbl .skip_set:N = \l_tbl_belowtbl_skip , + full .bool_gset:N = \g_tbl_full_bool , +} + +\cs_set:Npn \__reset_tbl: +{ + \tl_set:Nx \l_tbl_pos_tl { t } + \tl_set:Nx \l_tbl_cols_tl { 1 } + \tl_set:Nn \l_tbl_align_tl { \centering } + \skip_set:Nn \l_tbl_abovecap_skip { 6pt } + \skip_set:Nn \l_tbl_belowcap_skip { 0pt } + \skip_set:Nn \l_tbl_abovetbl_skip { 6pt } + \skip_set:Nn \l_tbl_belowtbl_skip { 6pt } + +} + +\RenewDocumentEnvironment { table } { O{} } +{ + \__reset_tbl: + \bool_gset_false:N \g_tbl_full_bool + \dim_set:Nn \l_tbl_width_dim { \linewidth } + \keys_set:nn { cas / tbl } { #1 } + \csxdef{fps@table}{\l_tbl_pos_tl} + \csgdef{tblwidth}{\dim_use:N \l_tbl_width_dim} + \cs_set_eq:NN \@makecaption \__make_tbl_caption:nn + \@float{table} + \l_tbl_align_tl + \sffamily\small +} +{ +\end@float +} + + +\RenewDocumentEnvironment { table* } { O{width=\FullWidth} } + { + \__reset_tbl: + \bool_gset_true:N \g_tbl_full_bool + \dim_set:Nn \l_tbl_width_dim { \FullWidth } + \keys_set:nn { cas / tbl } { #1 } + \csxdef{fps@table}{\l_tbl_pos_tl} + \csgdef{tblwidth}{\dim_use:N \l_tbl_width_dim} + \cs_set_eq:NN \@makecaption \__make_tbl_caption:nn + \@dblfloat{table} + \l_tbl_align_tl + \sffamily\small + % \leftskip=-\FullWidth + } + { + \end@dblfloat + } + + +\dim_new:N \l_fig_width_dim +\dim_set:Nn \l_fig_width_dim { \linewidth } + +\cs_new:Npn \__make_fig_caption:nn #1#2 +{ + \l_fig_align_tl + \skip_vertical:N \l_fig_abovecap_skip +% \bool_if:NTF \g_fig_full_bool +% { \skip_horizontal:n { -\FullWidth } } { } + \parbox{ \l_fig_width_dim } + {\rightskip=0pt\sffamily\small\textbf{\color{scolor}#1:}~#2\par } + \skip_vertical:N \l_fig_belowcap_skip +} + +\keys_define:nn { cas / fig } +{ + width .dim_set:N = \l_fig_width_dim , + pos .tl_set:N = \l_fig_pos_tl , + cols .tl_set:N = \l_fig_cols_tl , + align .tl_set:N = \l_fig_align_tl, + abovecap .skip_set:N = \l_fig_abovecap_skip , + belowcap .skip_set:N = \l_fig_belowcap_skip , + abovefig .skip_set:N = \l_fig_abovefig_skip , + belowfig .skip_set:N = \l_fig_belowfig_skip , + full .bool_gset:N = \g_fig_full_bool , +} + +\cs_set:Npn \__reset_fig: +{ + \tl_set:Nx \l_fig_pos_tl { t } + \tl_set:Nx \l_fig_cols_tl { 1 } + \tl_set:Nn \l_fig_align_tl { \raggedleft } + \skip_set:Nn \l_fig_abovecap_skip { 6pt } + \skip_set:Nn \l_fig_belowcap_skip { 6pt } + \skip_set:Nn \l_fig_abovefig_skip { 6pt } + \skip_set:Nn \l_fig_belowfig_skip { 6pt } + +} + +\RenewDocumentEnvironment { figure } { O{} } + { + \__reset_fig: + \bool_gset_false:N \g_fig_full_bool + \dim_set:Nn \l_fig_width_dim { \linewidth } + \keys_set:nn { cas / fig } { #1 } + \csxdef{fps@figure}{\l_fig_pos_tl} + \csgdef{figwidth}{\dim_use:N \l_fig_width_dim} + \cs_set_eq:NN \@makecaption \__make_fig_caption:nn + \@float{figure} + \l_fig_align_tl + \sffamily\small + } + { + \end@float + } + + +\RenewDocumentEnvironment { figure* } { O{width=\textwidth} } +{ + \__reset_fig: + \bool_gset_true:N \g_fig_full_bool + \dim_set:Nn \l_fig_width_dim { \FullWidth } + \keys_set:nn { cas / fig } { #1 } + \csxdef{fps@figure}{\l_fig_pos_tl} + \csgdef{figwidth}{\dim_use:N \l_fig_width_dim} + \cs_set_eq:NN \@makecaption \__make_fig_caption:nn + \@dblfloat{figure} + \l_fig_align_tl + \sffamily\small +% \leftskip=-\FullWidth +} +{ \end@dblfloat } + +% +% wrapped figure +% +\RequirePackage{wrapfig} + +\dim_new:N \l_wrap_figwidth_dim +\dim_new:N \l_wrap_fighspace_dim +\dim_new:N \l_wrap_figvspace_dim +\dim_new:N \l_wrap_fighcorr_dim +\dim_new:N \l_wrap_figvcorr_dim +\dim_new:N \l_above_bio_dim +\int_new:N \l_wrap_figlcorr_int +\int_new:N \l_wrap_figlines_int +\tl_new:N \l_wrap_figfile_tl + +\NewDocumentCommand \wfigwidth { m } + { \dim_set:Nn \l_wrap_figwidth_dim { #1 } } +\NewDocumentCommand \wfighspace { m } + { \dim_set:Nn \l_wrap_fighspace_dim { #1 } } +\NewDocumentCommand \wfigvspace { m } + { \dim_set:Nn \l_wrap_figvspace_dim { #1 } } +\NewDocumentCommand \wfighcorr { m } + { \dim_set:Nn \l_wrap_fighcorr_dim { #1 } } +\NewDocumentCommand \wfigvcorr { m } + { \dim_set:Nn \l_wrap_figvcorr_dim { #1 } } +\NewDocumentCommand \addfiglines { m } + { \int_set:Nn \l_wrap_figlcorr_int { #1 } } +\NewDocumentCommand \abovebioskip { m } + { \dim_set:Nn \l_above_bio_dim { #1 } } + +\cs_new:Nn \__fig_defaults: + { + \wfigwidth { 25.5mm } + \wfighspace { 0mm } + \wfigvspace { 0mm } + \wfighcorr { 0pt } + \wfigvcorr { -12pt } + \wfigvcorr { 0pt } + \abovebioskip { 12pt } + \tl_set:Nn \l_wrap_figpos_tl { l } + \int_set:Nn \l_wrap_figlines_int { 3 } + \int_set:Nn \l_wrap_figlcorr_int { 1 } + \tl_clear:N \l_wrap_figcap_tl + } + +\__fig_defaults: + +\keys_define:nn { wrap / fig } +{ + width .dim_set:N = \l_wrap_figwidth_dim , + hspace .dim_set:N = \l_wrap_fighspace_dim , + vspace .dim_set:N = \l_wrap_figvspace_dim , + hcorr .dim_set:N = \l_wrap_fighcorr_dim , + vcorr .dim_set:N = \l_wrap_figvcorr_dim , + lcorr .int_set:N = \l_wrap_figlcorr_int , + pos .tl_set:N = \l_wrap_figpos_tl , + lines .int_set:N = \l_wrap_figlines_int , + cap .tl_set:N = \l_wrap_figcap_tl , +} + +\cs_new:Npn \__find_fig_height:n #1 +{ + \box_clear:N \g_tmpa_box + \hbox_gset:Nn \g_tmpa_box + { \includegraphics [ width = \l_wrap_figwidth_dim ] { #1 } } + \dim_zero:N \l_tmpa_dim + \dim_set:Nn \l_tmpa_dim { \box_ht:N \g_tmpa_box } + \dim_add:Nn \l_tmpa_dim { \box_dp:N \g_tmpa_box } + \fp_set:Nn \l_tmpa_fp { \dim_to_fp:n { \l_tmpa_dim } } + \fp_set:Nn \l_tmpb_fp { \dim_to_fp:n { \baselineskip } } +% + \fp_set:Nn \l_wrap_figlines_fp + { \fp_eval:n { ( \l_tmpa_fp / \l_tmpb_fp ) + .5 } } + \int_set:Nn \l_wrap_figlines_int + { \fp_to_int:N \l_wrap_figlines_fp } +% + \iow_term:x { ...~wr-fig:~[BL:~\the\baselineskip] ~ ...} + \iow_term:x { ...~wr-fig:~[LINE-FP:~ \fp_use:N \l_wrap_figlines_fp]~ ...} + \iow_term:x { ...~wr-fig:~[LINE-INT:~ \int_use:N \l_wrap_figlines_int]~ ...} +} + +\newbox \l_bio_text_box + +\NewDocumentCommand \WrapFigure { o m } +{ + \__fig_defaults: + \IfNoValueTF { #1 } { } { \keys_set:nn { wrap / fig } { #1 } } + \stepcounter { ca_biography_ctr } + \__find_fig_height:n { #2 } + \dim_zero:N \l_tmpb_dim + \dim_set:Nn \l_tmpb_dim + { \l_wrap_figwidth_dim + \l_wrap_fighspace_dim } + \int_gadd:Nn \l_wrap_figlines_int { \int_use:N \l_wrap_figlcorr_int } + \setlength { \columnsep } { 5pt } + \setlength { \intextsep } { 0pt } +% \mbox{} + \ifbool { dc } + { \xdef\Columnwidth{238.25pt} } + { \xdef\Columnwidth{\the\textwidth} } + \ifcsundef { cabio\theca_biography_ctr lines } + { + \setbox \l_bio_text_box = \vbox \bgroup + \hsize = \dimexpr ( \Columnwidth - 72.28pt ) + } + { + \ifbool { dc } { + \int_gset:Nn \l_wrap_figlines_int + { \csuse { cabio\theca_biography_ctr lines } } + } { } + \skip_vertical:N \l_above_bio_dim + \begin{wrapfigure}[\int_use:N \l_wrap_figlines_int] + { \l_wrap_figpos_tl } + [ \dim_use:N \l_wrap_fighcorr_dim ] + { \dim_use:N \l_tmpb_dim } + %\skip_vertical:N \l_wrap_figvcorr_dim + \includegraphics[width=\l_wrap_figwidth_dim]{#2} + \end{wrapfigure} + \setbox \l_bio_text_box = \vbox \bgroup + \hsize = \dimexpr ( \Columnwidth ) + } +} + +\cs_set:Nn \__fwidth: { 1in } +\cs_set:Nn \__fpos: { l } + +% +% short authors/title +% + +\newcommand\shortauthors[1]{ \cs_gset:Nn \__short_authors: { #1 } } +\newcommand\shorttitle[1]{ \cs_gset:Nn \__short_title: { #1 } } + +\shortauthors{First~Author~et~al.} +\shorttitle{Short ~Title ~of~the~Article} + +\newcounter { ca_biography_ctr } +\newbool { cas_no_pic_bio } +\boolfalse { cas_no_pic_bio } + +\NewDocumentCommand \bio { O{} m } +{ + \global \boolfalse { cas_no_pic_bio } + \casbiographyfont + \par \medskip \tl_set:Nn \l_tmpa_tl { #2 } + \tl_if_empty:NTF \l_tmpa_tl + { \global \booltrue { cas_no_pic_bio } } + { \WrapFigure [ #1 ]{ #2 } } + \noindent \ignorespaces +} + +\int_new:N \l_ca_temp_inta + +\NewDocumentCommand \endbio { } { + \ifbool{ cas_no_pic_bio } { } { + \egroup +% \fp_set:Nn \l_wrap_figlines_fp +% { \fp_eval:n { ( ( \l_tmpa_fp + +% \numexpr\dimexpr\the\ht\l_bio_text_box ) +% / \l_tmpb_fp ) + .5 } } + \int_gset:Nn \l_ca_temp_inta + { \numexpr\dimexpr(\the\ht\l_bio_text_box + 2\baselineskip )/ + \dimexpr\the\baselineskip } + \iow_now:Nx \@auxout { + \string\csgdef{cabio\theca_biography_ctr lines} + { \int_use:N \l_ca_temp_inta } } +\mbox{}\vspace*{-4.5pt}\noindent +\unvbox \l_bio_text_box } +} + +\let\casbiographyfont\relax + +\NewDocumentEnvironment { biography } { o m } +{ + \IfValueTF { #1 } + { \par\medskip \noindent \includegraphics[width=1in]{#1} } + { } + \par\smallskip + \noindent \textbf{#2:}\enspace +} +{ } + +\ExplSyntaxOff + +% +% Customized Enumeration +% +\def\blstr#1{\gdef\@bslstr{#1}} +\def\@blstr{1} +\newdimen\leftMargin +\leftMargin=2em +\newtoks\@enLab %\newtoks\@enfont +\def\@enQmark{?} +\def\@enLabel#1#2{% + \edef\@enThe{\noexpand#1{\@enumctr}}% + \@enLab\expandafter{\the\@enLab\csname the\@enumctr\endcsname}% + \@enloop} +\def\@enSpace{\afterassignment\@enSp@ce\let\@tempa= } +\def\@enSp@ce{\@enLab\expandafter{\the\@enLab\space}\@enloop} +\def\@enGroup#1{\@enLab\expandafter{\the\@enLab{#1}}\@enloop} +\def\@enOther#1{\@enLab\expandafter{\the\@enLab#1}\@enloop} +\def\@enloop{\futurelet\@entemp\@enloop@} +\def\@enloop@{% + \ifx A\@entemp \def\@tempa{\@enLabel\Alph }\else + \ifx a\@entemp \def\@tempa{\@enLabel\alph }\else + \ifx i\@entemp \def\@tempa{\@enLabel\roman }\else + \ifx I\@entemp \def\@tempa{\@enLabel\Roman }\else + \ifx 1\@entemp \def\@tempa{\@enLabel\arabic}\else + \ifx \@sptoken\@entemp \let\@tempa\@enSpace \else + \ifx \bgroup\@entemp \let\@tempa\@enGroup \else + \ifx \@enum@\@entemp \let\@tempa\@gobble \else + \let\@tempa\@enOther + \fi\fi\fi\fi\fi\fi\fi\fi + \@tempa} +\newlength{\@sep} \newlength{\@@sep} +\setlength{\@sep}{.5\baselineskip plus.2\baselineskip + minus.2\baselineskip} +\setlength{\@@sep}{.1\baselineskip plus.01\baselineskip + minus.05\baselineskip} +\providecommand{\sfbc}{\rmfamily\upshape} +\providecommand{\sfn}{\rmfamily\upshape} +\def\@enfont{\ifnum \@enumdepth >1\let\@nxt\sfn \else\let\@nxt\sfbc \fi\@nxt} +\def\enumerate{% + \ifnum \@enumdepth >3 \@toodeep\else + \advance\@enumdepth \@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}\fi + \@ifnextchar[{\@@enum@}{\@enum@}} +\def\@@enum@[#1]{% + \@enLab{}\let\@enThe\@enQmark + \@enloop#1\@enum@ + \ifx\@enThe\@enQmark\@warning{The counter will not be printed.% + ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi + \expandafter\edef\csname label\@enumctr\endcsname{\the\@enLab}% + \expandafter\let\csname the\@enumctr\endcsname\@enThe + \csname c@\@enumctr\endcsname7 + \expandafter\settowidth + \csname leftmargin\romannumeral\@enumdepth\endcsname + {\the\@enLab\hskip\labelsep}% + \@enum@} +\def\@enum@{\list{{\@enfont\csname label\@enumctr\endcsname}}% + {\usecounter{\@enumctr}\def\makelabel##1{\hss\llap{##1}}% + \ifnum \@enumdepth>1\setlength{\topsep}{\@@sep}\else + \setlength{\topsep}{\@sep}\fi + \ifnum \@enumdepth>1\setlength{\itemsep}{0pt plus1pt minus1pt}% + \else \setlength{\itemsep}{\@@sep}\fi + %\setlength\leftmargin{\leftMargin}%%%{1.8em} + \setlength{\parsep}{0pt plus1pt minus1pt}% + \setlength{\parskip}{0pt plus1pt minus1pt} + }} + +\def\endenumerate{\par\ifnum \@enumdepth >1\addvspace{\@@sep}\else + \addvspace{\@sep}\fi \endlist} + +\def\sitem{\@noitemargtrue\@item[\@itemlabel *]} + +\def\itemize{\@ifnextchar[{\@Itemize}{\@Itemize[]}} + +\def\@Itemize[#1]{\def\next{#1}% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \ifx\next\@empty\else\expandafter\def\csname + labelitem\romannumeral\the\@itemdepth\endcsname{#1}\fi% + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter\list\csname\@itemitem\endcsname + {\def\makelabel##1{\hss\llap{##1}}}% + \fi} + +% +% Customized theorem +% (non-italic enunciations) +% + +\def\newdefinition#1{% + \@ifnextchar[{\@odfn{#1}}{\@ndfn{#1}}}%] +\def\@ndfn#1#2{% + \@ifnextchar[{\@xndfn{#1}{#2}}{\@yndfn{#1}{#2}}} +\def\@xndfn#1#2[#3]{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}\@newctr{#1}[#3]% + \expandafter\xdef\csname the#1\endcsname{% + \expandafter\noexpand\csname the#3\endcsname \@dfncountersep + \@dfncounter{#1}}% + \global\@namedef{#1}{\@dfn{#1}{#2}}% + \global\@namedef{end#1}{\@enddefinition}}} +\def\@yndfn#1#2{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}% + \expandafter\xdef\csname the#1\endcsname{\@dfncounter{#1}}% + \global\@namedef{#1}{\@dfn{#1}{#2}}% + \global\@namedef{end#1}{\@enddefinition}}} +\def\@odfn#1[#2]#3{% + \@ifundefined{c@#2}{\@nocounterr{#2}}% + {\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}} + \global\@namedef{#1}{\@dfn{#2}{#3}}% + \global\@namedef{end#1}{\@enddefinition}}}} +\def\@dfn#1#2{% + \refstepcounter{#1}% + \@ifnextchar[{\@ydfn{#1}{#2}}{\@xdfn{#1}{#2}}} +\def\@xdfn#1#2{% + \@begindefinition{#2}{\csname the#1\endcsname}\ignorespaces} +\def\@ydfn#1#2[#3]{% + \@opargbegindefinition{#2}{\csname the#1\endcsname}{#3}\ignorespaces} +\def\@dfncounter#1{\noexpand\arabic{#1}} +\def\@dfncountersep{.} +\def\@begindefinition#1#2{\trivlist + \item[\hskip\labelsep{\bfseries #1\ #2.}]\upshape} +\def\@opargbegindefinition#1#2#3{\trivlist + \item[\hskip\labelsep{\bfseries #1\ #2\ (#3).}]\upshape} +\def\@enddefinition{\endtrivlist} + +\def\@begintheorem#1#2{\trivlist + \let\baselinestretch\@blstr + \item[\hskip \labelsep{\bfseries #1\ #2.}]\itshape} +\def\@opargbegintheorem#1#2#3{\trivlist + \let\baselinestretch\@blstr + \item[\hskip \labelsep{\bfseries #1\ #2\ (#3).}]\itshape} +% +% Unnumbered roman proofs +% +\def\newproof#1{% + \@ifnextchar[{\@oprf{#1}}{\@nprf{#1}}} +\def\@nprf#1#2{% + \@ifnextchar[{\@xnprf{#1}{#2}}{\@ynprf{#1}{#2}}} +\def\@xnprf#1#2[#3]{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}\@newctr{#1}[#3]% + \expandafter\xdef\csname the#1\endcsname{% + \expandafter\noexpand\csname the#3\endcsname \@prfcountersep + \@prfcounter{#1}}% + \global\@namedef{#1}{\@prf{#1}{#2}}% + \global\@namedef{end#1}{\@endproof}}} +\def\@ynprf#1#2{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}% + \expandafter\xdef\csname the#1\endcsname{\@prfcounter{#1}}% + \global\@namedef{#1}{\@prf{#1}{#2}}% + \global\@namedef{end#1}{\@endproof}}} +\def\@oprf#1[#2]#3{% + \@ifundefined{c@#2}{\@nocounterr{#2}}% + {\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}}% + \global\@namedef{#1}{\@prf{#2}{#3}}% + \global\@namedef{end#1}{\@endproof}}}} +\def\@prf#1#2{% + \refstepcounter{#1}% + \@ifnextchar[{\@yprf{#1}{#2}}{\@xprf{#1}{#2}}} +\def\@xprf#1#2{% + \@beginproof{#2}{\csname the#1\endcsname}\ignorespaces} +\def\@yprf#1#2[#3]{% + \@opargbeginproof{#2}{\csname the#1\endcsname}{#3}\ignorespaces} +\def\@prfcounter#1{\noexpand\arabic{#1}} +\def\@prfcountersep{.} +\def\@beginproof#1#2{\trivlist\let\baselinestretch\@blstr + \item[\hskip \labelsep{\scshape #1.}]\rmfamily} +\def\@opargbeginproof#1#2#3{\trivlist\let\baselinestretch\@blstr + \item[\hskip \labelsep{\scshape #1\ (#3).}]\rmfamily} +\def\@endproof{\endtrivlist} +\newcommand*{\qed}{\hbox{}\hfill$\Box$} + +\xspaceaddexceptions{]} + +\ABD{\bibsep=0pt} +%\ifbool{casfinallayout} +% {% + \ABD{\gdef\bibfont{\fontsize{8pt}{10pt}\selectfont}% + \gdef\casbiographyfont{\fontsize{8pt}{10pt}\selectfont}% + }% +% } +% {} + +\endinput diff --git a/Master/texmf-dist/tex/latex/els-cas-template/cas-dc.cls b/Master/texmf-dist/tex/latex/els-cas-template/cas-dc.cls new file mode 100644 index 00000000000..82352b5db68 --- /dev/null +++ b/Master/texmf-dist/tex/latex/els-cas-template/cas-dc.cls @@ -0,0 +1,175 @@ +%% +%% This is file `cas-sc.cls'. +%% +%% This file is part of the 'CAS Bundle'. +%% ...................................... +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.2 of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The list of all files belonging to the 'CAS Bundle' is +%% given in the file `manifest.txt'. +%% + +%% $Id: cas-dc.cls 7 2019-02-13 12:02:17Z apu.v $ + + \def\RCSfile{cas-dc}% + \def\RCSversion{1.0}% + \def\RCSdate{2019/02/11}% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{\RCSfile}[\RCSdate, \RCSversion: Formatting class + for CAS double column articles] +% +\def\ABD{\AtBeginDocument} +% +% switches +% +\newif\iflongmktitle \longmktitlefalse +\newif\ifdc \global\dctrue +\newif\ifsc \global\scfalse +\newif\ifcasreviewlayout \global\casreviewlayoutfalse +\newif\ifcasfinallayout \global\casfinallayoutfalse + +\newcounter{blind} +\setcounter{blind}{0} + +\def\blstr#1{\gdef\@blstr{#1}} +\def\@blstr{1} +\newdimen\@bls +\@bls=\baselineskip + +\DeclareOption{singleblind}{\setcounter{blind}{1}} +\DeclareOption{doubleblind}{\setcounter{blind}{2}} +\DeclareOption{longmktitle}{\global\longmktitletrue} +\DeclareOption{final}{\global\casfinallayouttrue} +\DeclareOption{review}{\global\casreviewlayouttrue} + +\ExecuteOptions{a4paper,10pt,oneside,fleqn,review} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions +\LoadClass{article} + +\RequirePackage{graphicx} +\RequirePackage{amsmath,amsfonts,amssymb} +\allowdisplaybreaks + +\RequirePackage{expl3,xparse} +\@ifundefined{regex_match:nnTF}{\RequirePackage{l3regex}}{} +\RequirePackage{etoolbox,balance} +\RequirePackage{booktabs,makecell,multirow,array,colortbl,dcolumn,stfloats} +\RequirePackage{xspace,xstring,footmisc} +\RequirePackage[svgnames,dvipsnames]{xcolor} + +\RequirePackage[colorlinks]{hyperref} +\colorlet{scolor}{black} +\colorlet{hscolor}{DarkSlateGrey} +\hypersetup{% + pdftitle={\csuse{__short_title:}}, + pdfauthor={\csuse{__short_authors:}}, + pdfcreator={LaTeX3; cas-sc.cls; hyperref.sty}, + pdfproducer={pdfTeX;}, + linkcolor={hscolor}, + urlcolor={hscolor}, + citecolor={hscolor}, + filecolor={hscolor}, + menucolor={hscolor}, + } + + \let\comma\@empty +\let\tnotesep\@empty +\let\@title\@empty +% +% Load Common items +% + +\RequirePackage{cas-common} + +% +% Specific to Single Column +% +\ExplSyntaxOn + +\RenewDocumentCommand \maketitle { } +{ + \ifbool { usecasgrabsbox } + { + \setcounter{page}{0} + \thispagestyle{empty} + \unvbox\casgrabsbox + } { } + \pagebreak + \ifbool { usecashlsbox } + { + \setcounter{page}{0} + \thispagestyle{empty} + \unvbox\casauhlbox + } { } + \pagebreak + \thispagestyle{first} + \ifbool{longmktitle} + { + \LongMaketitleBox + \ProcessLongTitleBox + } + { + \twocolumn[\MaketitleBox] + \printFirstPageNotes + } + \setcounter{footnote}{\int_use:N \g_stm_fnote_int} + \renewcommand\thefootnote{\arabic{footnote}} + \gdef\@pdfauthor{\infoauthors} + \gdef\@pdfsubject{Complex ~STM ~Content} +} + +% +% Fonts +% +\RequirePackage[T1]{fontenc} + +\file_if_exist:nTF { stix.sty } +{ + \file_if_exist:nTF { charis.sty } + { + \RequirePackage[notext]{stix} + \RequirePackage{charis} + } + { \RequirePackage{stix} } +} +{ + \iow_term:x { *********************************************************** } + \iow_term:x { ~Stix ~ and ~ Charis~ fonts ~ are ~ not ~ available ~ } + \iow_term:x { ~ in ~TeX~system.~Hence~CMR~ fonts~ are ~ used. } + \iow_term:x { *********************************************************** } +} + +\file_if_exist:nTF { inconsolata.sty } +{ \RequirePackage[scaled=.85]{inconsolata} } +{ \tex_gdef:D \ttdefault { cmtt } } + + +\ExplSyntaxOff + +% +% Page geometry +% +\usepackage[% + paperwidth=210mm, + paperheight=280mm, + vmargin={19.5mm,18.2mm}, + hmargin={18.1mm,18.1mm}, + headsep=12pt, + footskip=12pt, + columnsep=18pt +]{geometry} + + +\endinput + +% +% End of class 'cas-sc' +% + diff --git a/Master/texmf-dist/tex/latex/els-cas-template/cas-sc.cls b/Master/texmf-dist/tex/latex/els-cas-template/cas-sc.cls new file mode 100644 index 00000000000..3345e1c398f --- /dev/null +++ b/Master/texmf-dist/tex/latex/els-cas-template/cas-sc.cls @@ -0,0 +1,178 @@ +%% +%% This is file `cas-dc.cls'. +%% +%% This file is part of the 'CAS Bundle'. +%% ...................................... +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.2 of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The list of all files belonging to the 'CAS Bundle' is +%% given in the file `manifest.txt'. +%% + +%% $Id: cas-sc.cls 7 2019-02-13 12:02:17Z apu.v $ + + \def\RCSfile{cas-sc}% + \def\RCSversion{1.0}% + \def\RCSdate{2018/09/22}% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{\RCSfile}[\RCSdate, \RCSversion: Formatting class + for CAS single column articles] +% +\def\ABD{\AtBeginDocument} +% +% switches +% +\newif\iflongmktitle \longmktitlefalse +\newif\ifdc \global\dcfalse +\newif\ifsc \global\sctrue +\newif\ifcasreviewlayout \global\casreviewlayoutfalse +\newif\ifcasfinallayout \global\casfinallayoutfalse + +\newcounter{blind} +\setcounter{blind}{0} + +\def\blstr#1{\gdef\@blstr{#1}} +\def\@blstr{1} +\newdimen\@bls +\@bls=\baselineskip + +\DeclareOption{singleblind}{\setcounter{blind}{1}} +\DeclareOption{doubleblind}{\setcounter{blind}{2}} +\DeclareOption{longmktitle}{\global\longmktitletrue} +\DeclareOption{final}{\global\casfinallayouttrue} +\DeclareOption{review}{\global\casreviewlayouttrue} + +\ExecuteOptions{a4paper,10pt,oneside,fleqn,review} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions +\LoadClass{article} + +\RequirePackage{graphicx} +\RequirePackage{amsmath,amsfonts,amssymb} +\allowdisplaybreaks + +\RequirePackage{expl3,xparse} +\@ifundefined{regex_match:nnTF}{\RequirePackage{l3regex}}{} +\RequirePackage{etoolbox} +\RequirePackage{booktabs,makecell,multirow,array,colortbl,dcolumn,stfloats} +\RequirePackage{xspace,xstring,footmisc} +\RequirePackage[svgnames,dvipsnames]{xcolor} + +\RequirePackage[colorlinks]{hyperref} +\colorlet{scolor}{black} +\colorlet{hscolor}{DarkSlateGrey} +\hypersetup{% + pdfcreator={LaTeX3; cas-sc.cls; hyperref.sty}, + pdfproducer={pdfTeX;}, + linkcolor={hscolor}, + urlcolor={hscolor}, + citecolor={hscolor}, + filecolor={hscolor}, + menucolor={hscolor}, +} +% \AtEndDocument{\hypersetup +% {pdftitle={\csuse{__short_title:}}, +% pdfauthor={\csuse{__short_authors:}}}} + + \let\comma\@empty +\let\tnotesep\@empty +\let\@title\@empty +% +% Load Common items +% + +\RequirePackage{cas-common} + +% +% Specific to Single Column +% +\ExplSyntaxOn + +\RenewDocumentCommand \maketitle {} +{ + \ifbool { usecasgrabsbox } + { + \setcounter{page}{0} + \thispagestyle{empty} + \unvbox\casgrabsbox + } { } + \pagebreak + \ifbool { usecashlsbox } + { + \setcounter{page}{0} + \thispagestyle{empty} + \unvbox\casauhlbox + } { } + \pagebreak + \thispagestyle{first} + \ifbool{longmktitle} + { + \LongMaketitleBox + \ProcessLongTitleBox + } + { + \MaketitleBox + \printFirstPageNotes + } + \normalcolor \normalfont + \setcounter{footnote}{\int_use:N \g_stm_fnote_int} + \renewcommand\thefootnote{\arabic{footnote}} + \gdef\@pdfauthor{\infoauthors} + \gdef\@pdfsubject{Complex ~STM ~Content} +} + +% +% Fonts +% +\RequirePackage[T1]{fontenc} + +\file_if_exist:nTF { stix.sty } +{ + \file_if_exist:nTF { charis.sty } + { + \RequirePackage[notext]{stix} + \RequirePackage{charis} + } + { \RequirePackage{stix} } +} +{ + \iow_term:x { *********************************************************** } + \iow_term:x { ~Stix ~ and ~ Charis~ fonts ~ are ~ not ~ available ~ } + \iow_term:x { ~ in ~TeX~system.~Hence~CMR~ fonts~ are ~ used. } + \iow_term:x { *********************************************************** } +} + +\file_if_exist:nTF { inconsolata } +{ \RequirePackage[scaled=.85]{inconsolata} } +{ \tex_gdef:D \ttdefault { cmtt } } + + +\ExplSyntaxOff + +% +% Page geometry +% + +\usepackage[% + paperwidth=192mm, + paperheight=262mm, +% vmargin={12.4mm,11.5mm}, + vmargin={19mm,19mm}, + hmargin={13.7mm,13.7mm}, + headsep=12pt, + footskip=12pt, +]{geometry} + + +\endinput + +% +% End of class 'cas-sc' +% + |