From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/els-cas-templates/README | 41 + .../latex/contrib/els-cas-templates/cas-common.sty | 2359 ++++++++++++++++++++ .../contrib/els-cas-templates/cas-dc-template.pdf | Bin 0 -> 200284 bytes .../contrib/els-cas-templates/cas-dc-template.tex | 444 ++++ macros/latex/contrib/els-cas-templates/cas-dc.cls | 175 ++ .../contrib/els-cas-templates/cas-model2-names.bst | 1656 ++++++++++++++ .../latex/contrib/els-cas-templates/cas-refs.bib | 283 +++ .../contrib/els-cas-templates/cas-sc-template.pdf | Bin 0 -> 245242 bytes .../contrib/els-cas-templates/cas-sc-template.tex | 445 ++++ macros/latex/contrib/els-cas-templates/cas-sc.cls | 178 ++ .../contrib/els-cas-templates/doc/dc-sample.pdf | Bin 0 -> 155079 bytes .../contrib/els-cas-templates/doc/elsdoc-cas.pdf | Bin 0 -> 429283 bytes .../contrib/els-cas-templates/doc/elsdoc-cas.tex | 599 +++++ .../latex/contrib/els-cas-templates/doc/makefile | 40 + .../contrib/els-cas-templates/doc/pdfwidgets.sty | 384 ++++ .../latex/contrib/els-cas-templates/doc/rvdtx.sty | 476 ++++ .../contrib/els-cas-templates/doc/sc-sample.pdf | Bin 0 -> 160970 bytes .../latex/contrib/els-cas-templates/figs/Fig1.pdf | Bin 0 -> 2546 bytes .../latex/contrib/els-cas-templates/figs/Fig2.pdf | Bin 0 -> 2550 bytes .../latex/contrib/els-cas-templates/figs/Fig3.pdf | Bin 0 -> 2543 bytes .../latex/contrib/els-cas-templates/figs/grabs.pdf | Bin 0 -> 8354 bytes .../latex/contrib/els-cas-templates/figs/pic1.pdf | Bin 0 -> 2546 bytes .../latex/contrib/els-cas-templates/manifest.txt | 94 + .../els-cas-templates/thumbnails/cas-email.jpeg | Bin 0 -> 8764 bytes .../els-cas-templates/thumbnails/cas-facebook.jpeg | Bin 0 -> 3676 bytes .../els-cas-templates/thumbnails/cas-gplus.jpeg | Bin 0 -> 7946 bytes .../els-cas-templates/thumbnails/cas-linkedin.jpeg | Bin 0 -> 6124 bytes .../els-cas-templates/thumbnails/cas-twitter.jpeg | Bin 0 -> 4655 bytes .../els-cas-templates/thumbnails/cas-url.jpeg | Bin 0 -> 7736 bytes 29 files changed, 7174 insertions(+) create mode 100644 macros/latex/contrib/els-cas-templates/README create mode 100644 macros/latex/contrib/els-cas-templates/cas-common.sty create mode 100644 macros/latex/contrib/els-cas-templates/cas-dc-template.pdf create mode 100644 macros/latex/contrib/els-cas-templates/cas-dc-template.tex create mode 100644 macros/latex/contrib/els-cas-templates/cas-dc.cls create mode 100644 macros/latex/contrib/els-cas-templates/cas-model2-names.bst create mode 100644 macros/latex/contrib/els-cas-templates/cas-refs.bib create mode 100644 macros/latex/contrib/els-cas-templates/cas-sc-template.pdf create mode 100644 macros/latex/contrib/els-cas-templates/cas-sc-template.tex create mode 100644 macros/latex/contrib/els-cas-templates/cas-sc.cls create mode 100644 macros/latex/contrib/els-cas-templates/doc/dc-sample.pdf create mode 100644 macros/latex/contrib/els-cas-templates/doc/elsdoc-cas.pdf create mode 100644 macros/latex/contrib/els-cas-templates/doc/elsdoc-cas.tex create mode 100644 macros/latex/contrib/els-cas-templates/doc/makefile create mode 100644 macros/latex/contrib/els-cas-templates/doc/pdfwidgets.sty create mode 100644 macros/latex/contrib/els-cas-templates/doc/rvdtx.sty create mode 100644 macros/latex/contrib/els-cas-templates/doc/sc-sample.pdf create mode 100644 macros/latex/contrib/els-cas-templates/figs/Fig1.pdf create mode 100644 macros/latex/contrib/els-cas-templates/figs/Fig2.pdf create mode 100644 macros/latex/contrib/els-cas-templates/figs/Fig3.pdf create mode 100644 macros/latex/contrib/els-cas-templates/figs/grabs.pdf create mode 100644 macros/latex/contrib/els-cas-templates/figs/pic1.pdf create mode 100644 macros/latex/contrib/els-cas-templates/manifest.txt create mode 100644 macros/latex/contrib/els-cas-templates/thumbnails/cas-email.jpeg create mode 100644 macros/latex/contrib/els-cas-templates/thumbnails/cas-facebook.jpeg create mode 100644 macros/latex/contrib/els-cas-templates/thumbnails/cas-gplus.jpeg create mode 100644 macros/latex/contrib/els-cas-templates/thumbnails/cas-linkedin.jpeg create mode 100644 macros/latex/contrib/els-cas-templates/thumbnails/cas-twitter.jpeg create mode 100644 macros/latex/contrib/els-cas-templates/thumbnails/cas-url.jpeg (limited to 'macros/latex/contrib/els-cas-templates') diff --git a/macros/latex/contrib/els-cas-templates/README b/macros/latex/contrib/els-cas-templates/README new file mode 100644 index 0000000000..71a1540b66 --- /dev/null +++ b/macros/latex/contrib/els-cas-templates/README @@ -0,0 +1,41 @@ +cas-sc.cls and cas-dc.cls are the two new class files created +for typesetting Elsevier's journal articles which go through +Complex Article Service (CAS) workflow. These are now accepted for +submitting articles, both in Elsevier's electronic submission system +and elsewhere. + +Bugs and problems with elsarticle.cls may be reported to the +developers of the class via elsarticle@stmdocs.in. + +The file manifest.txt provides a list of the files in the +elsarticle-cas bundle. The following are the main files available: + +- cas-sc-template.tex, template file for single column journals +- cas-dc-template.tex, template file for double column journals +- cas-sc-template.pdf, PDF of the cas-sc-template.tex +- cas-dc-template.pdf, PDF of the cas-ddc-template.tex +- cas-common.sty, additional macro package for formatting + model2-names.bst, BibTeX style file +- twitter.jpeg, linkedin.jpeg, url.jpeg, gplus.jpeg, facebook.jpeg, + email.jpeg - thumbnail images of social networking sites + +The documentation file is elsdoc-cas.tex in the doc directory. To +compile it: + +1. pdflatex elsdoc-cas +2. pdflatex elsdoc-cas +3. pdflatex elsdoc-cas + +or + +use the makefile. Use the target `all' (eg: make all) in doc +directory. + +The above procedure will create a print version, namely elsdoc-cas.pdf. + +Copyright 2019, Elsevier. Bugs, feature requests, suggestions and +comments may be mailed to elsarticle@stmdocs.in. elsarticle.cls, +related documentation and supporting packages are released under the +LATEX Project Public Licence, either version 1.2 or any later +version. This work has the LPPL maintenance status +'author-maintained'. diff --git a/macros/latex/contrib/els-cas-templates/cas-common.sty b/macros/latex/contrib/els-cas-templates/cas-common.sty new file mode 100644 index 0000000000..cbb226fd3f --- /dev/null +++ b/macros/latex/contrib/els-cas-templates/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 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/cas-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/cas-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/cas-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/cas-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/cas-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/cas-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 +{ } + +\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/macros/latex/contrib/els-cas-templates/cas-dc-template.pdf b/macros/latex/contrib/els-cas-templates/cas-dc-template.pdf new file mode 100644 index 0000000000..ab07a6b3d2 Binary files /dev/null and b/macros/latex/contrib/els-cas-templates/cas-dc-template.pdf differ diff --git a/macros/latex/contrib/els-cas-templates/cas-dc-template.tex b/macros/latex/contrib/els-cas-templates/cas-dc-template.tex new file mode 100644 index 0000000000..7e9a446ff3 --- /dev/null +++ b/macros/latex/contrib/els-cas-templates/cas-dc-template.tex @@ -0,0 +1,444 @@ +%% +%% Copyright 2019 Elsevier Ltd +%% +%% 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'. +%% +%% Template article for cas-dc documentclass for +%% double column output. + +%\documentclass[a4paper,fleqn,longmktitle]{cas-dc} +\documentclass[a4paper,fleqn]{cas-dc} + +%\usepackage[authoryear,longnamesfirst]{natbib} +%\usepackage[authoryear]{natbib} +\usepackage[numbers]{natbib} + +%%%Author definitions +\def\tsc#1{\csdef{#1}{\textsc{\lowercase{#1}}\xspace}} +\tsc{WGM} +\tsc{QE} +\tsc{EP} +\tsc{PMS} +\tsc{BEC} +\tsc{DE} +%%% + +\begin{document} +\let\WriteBookmarks\relax +\def\floatpagepagefraction{1} +\def\textpagefraction{.001} +\shorttitle{Leveraging social media news} +\shortauthors{CV Radhakrishnan et~al.} + +\title [mode = title]{This is a specimen $a_b$ title} +\tnotemark[1,2] + +\tnotetext[1]{This document is the results of the research + project funded by the National Science Foundation.} + +\tnotetext[2]{The second title footnote which is a longer text matter + to fill through the whole text width and overflow into + another line in the footnotes area of the first page.} + + + +\author[1,3]{CV Radhakrishnan}[type=editor, + auid=000,bioid=1, + prefix=Sir, + role=Researcher, + orcid=0000-0001-7511-2910] +\cormark[1] +\fnmark[1] +\ead{cvr_1@tug.org.in} +\ead[url]{www.cvr.cc, cvr@sayahna.org} + +\credit{Conceptualization of this study, Methodology, Software} + +\address[1]{Elsevier B.V., Radarweg 29, 1043 NX Amsterdam, The Netherlands} + +\author[2,4]{Han Theh Thanh}[style=chinese] + +\author[2,3]{CV Rajagopal}[% + role=Co-ordinator, + suffix=Jr, + ] +\fnmark[2] +\ead{cvr3@sayahna.org} +\ead[URL]{www.sayahna.org} + +\credit{Data curation, Writing - Original draft preparation} + +\address[2]{Sayahna Foundation, Jagathy, Trivandrum 695014, India} + +\author% +[1,3] +{Rishi T.} +\cormark[2] +\fnmark[1,3] +\ead{rishi@stmdocs.in} +\ead[URL]{www.stmdocs.in} + +\address[3]{STM Document Engineering Pvt Ltd., Mepukada, + Malayinkil, Trivandrum 695571, India} + +\cortext[cor1]{Corresponding author} +\cortext[cor2]{Principal corresponding author} +\fntext[fn1]{This is the first author footnote. but is common to third + author as well.} +\fntext[fn2]{Another author footnote, this is a very long footnote and + it should be a really long footnote. But this footnote is not yet + sufficiently long enough to make two lines of footnote text.} + +\nonumnote{This note has no numbers. In this work we demonstrate $a_b$ + the formation Y\_1 of a new type of polariton on the interface + between a cuprous oxide slab and a polystyrene micro-sphere placed + on the slab. + } + +\begin{abstract} +This template helps you to create a properly formatted \LaTeX\ manuscript. + +\noindent\texttt{\textbackslash begin{abstract}} \dots +\texttt{\textbackslash end{abstract}} and +\verb+\begin{keyword}+ \verb+...+ \verb+\end{keyword}+ +which +contain the abstract and keywords respectively. + +\noindent Each keyword shall be separated by a \verb+\sep+ command. +\end{abstract} + +\begin{graphicalabstract} +\includegraphics{figs/grabs.pdf} +\end{graphicalabstract} + +\begin{highlights} +\item Research highlights item 1 +\item Research highlights item 2 +\item Research highlights item 3 +\end{highlights} + +\begin{keywords} +quadrupole exciton \sep polariton \sep \WGM \sep \BEC +\end{keywords} + + +\maketitle + +\section{Introduction} + +The Elsevier cas-dc class is based on the +standard article class and supports almost all of the functionality of +that class. In addition, it features commands and options to format the +\begin{itemize} \item document style \item baselineskip \item front +matter \item keywords and MSC codes \item theorems, definitions and +proofs \item lables of enumerations \item citation style and labeling. +\end{itemize} + +This class depends on the following packages +for its proper functioning: + +\begin{enumerate} +\itemsep=0pt +\item {natbib.sty} for citation processing; +\item {geometry.sty} for margin settings; +\item {fleqn.clo} for left aligned equations; +\item {graphicx.sty} for graphics inclusion; +\item {hyperref.sty} optional packages if hyperlinking is + required in the document; +\end{enumerate} + +All the above packages are part of any +standard \LaTeX{} installation. +Therefore, the users need not be +bothered about downloading any extra packages. + +\section{Installation} + +The package is available at author resources page at Elsevier +(\url{http://www.elsevier.com/locate/latex}). +The class may be moved or copied to a place, usually,\linebreak +\verb+$TEXMF/tex/latex/elsevier/+, %$%%%%%%%%%%%%%%%%%%%%%%%%%%%% +or a folder which will be read +by \LaTeX{} during document compilation. The \TeX{} file +database needs updation after moving/copying class file. Usually, +we use commands like \verb+mktexlsr+ or \verb+texhash+ depending +upon the distribution and operating system. + +\section{Front matter} + +The author names and affiliations could be formatted in two ways: +\begin{enumerate}[(1)] +\item Group the authors per affiliation. +\item Use footnotes to indicate the affiliations. +\end{enumerate} +See the front matter of this document for examples. +You are recommended to conform your choice to the journal you +are submitting to. + +\section{Bibliography styles} + +There are various bibliography styles available. You can select the +style of your choice in the preamble of this document. These styles are +Elsevier styles based on standard styles like Harvard and Vancouver. +Please use Bib\TeX\ to generate your bibliography and include DOIs +whenever available. + +Here are two sample references: +\cite{Fortunato2010} +\cite{Fortunato2010,NewmanGirvan2004} +\cite{Fortunato2010,Vehlowetal2013} + +\section{Floats} +{Figures} may be included using the command,\linebreak +\verb+\includegraphics+ in +combination with or without its several options to further control +graphic. \verb+\includegraphics+ is provided by {graphic[s,x].sty} +which is part of any standard \LaTeX{} distribution. +{graphicx.sty} is loaded by default. \LaTeX{} accepts figures in +the postscript format while pdf\LaTeX{} accepts {*.pdf}, +{*.mps} (metapost), {*.jpg} and {*.png} formats. +pdf\LaTeX{} does not accept graphic files in the postscript format. + +\begin{figure} + \centering + \includegraphics[scale=.75]{figs/Fig1.pdf} + \caption{The evanescent light - $1S$ quadrupole coupling + ($g_{1,l}$) scaled to the bulk exciton-photon coupling + ($g_{1,2}$). The size parameter $kr_{0}$ is denoted as $x$ and + the \PMS is placed directly on the cuprous oxide sample ($\delta + r=0$, See also Table \protect\ref{tbl1}).} + \label{FIG:1} +\end{figure} + + +The \verb+table+ environment is handy for marking up tabular +material. If users want to use {multirow.sty}, +{array.sty}, etc., to fine control/enhance the tables, they +are welcome to load any package of their choice and +{cas-dc.cls} will work in combination with all loaded +packages. + +\begin{table}[width=.9\linewidth,cols=4,pos=h] +\caption{This is a test caption. This is a test caption. This is a test +caption. This is a test caption.}\label{tbl1} +\begin{tabular*}{\tblwidth}{@{} LLLL@{} } +\toprule +Col 1 & Col 2 & Col 3 & Col4\\ +\midrule +12345 & 12345 & 123 & 12345 \\ +12345 & 12345 & 123 & 12345 \\ +12345 & 12345 & 123 & 12345 \\ +12345 & 12345 & 123 & 12345 \\ +12345 & 12345 & 123 & 12345 \\ +\bottomrule +\end{tabular*} +\end{table} + +\section[Theorem and ...]{Theorem and theorem like environments} + +{cas-dc.cls} provides a few shortcuts to format theorems and +theorem-like environments with ease. In all commands the options that +are used with the \verb+\newtheorem+ command will work exactly in the same +manner. {cas-dc.cls} provides three commands to format theorem or +theorem-like environments: + +\begin{verbatim} + \newtheorem{theorem}{Theorem} + \newtheorem{lemma}[theorem]{Lemma} + \newdefinition{rmk}{Remark} + \newproof{pf}{Proof} + \newproof{pot}{Proof of Theorem \ref{thm2}} +\end{verbatim} + + +The \verb+\newtheorem+ command formats a +theorem in \LaTeX's default style with italicized font, bold font +for theorem heading and theorem number at the right hand side of the +theorem heading. It also optionally accepts an argument which +will be printed as an extra heading in parentheses. + +\begin{verbatim} + \begin{theorem} + For system (8), consensus can be achieved with + $\|T_{\omega z}$ ... + \begin{eqnarray}\label{10} + .... + \end{eqnarray} + \end{theorem} +\end{verbatim} + + +\newtheorem{theorem}{Theorem} + +\begin{theorem} +For system (8), consensus can be achieved with +$\|T_{\omega z}$ ... +\begin{eqnarray}\label{10} +.... +\end{eqnarray} +\end{theorem} + +The \verb+\newdefinition+ command is the same in +all respects as its \verb+\newtheorem+ counterpart except that +the font shape is roman instead of italic. Both +\verb+\newdefinition+ and \verb+\newtheorem+ commands +automatically define counters for the environments defined. + +The \verb+\newproof+ command defines proof environments with +upright font shape. No counters are defined. + + +\section[Enumerated ...]{Enumerated and Itemized Lists} +{cas-dc.cls} provides an extended list processing macros +which makes the usage a bit more user friendly than the default +\LaTeX{} list macros. With an optional argument to the +\verb+\begin{enumerate}+ command, you can change the list counter +type and its attributes. + +\begin{verbatim} + \begin{enumerate}[1.] + \item The enumerate environment starts with an optional + argument `1.', so that the item counter will be suffixed + by a period. + \item You can use `a)' for alphabetical counter and '(i)' + for roman counter. + \begin{enumerate}[a)] + \item Another level of list with alphabetical counter. + \item One more item before we start another. + \item One more item before we start another. + \item One more item before we start another. + \item One more item before we start another. +\end{verbatim} + +Further, the enhanced list environment allows one to prefix a +string like `step' to all the item numbers. + +\begin{verbatim} + \begin{enumerate}[Step 1.] + \item This is the first step of the example list. + \item Obviously this is the second step. + \item The final step to wind up this example. + \end{enumerate} +\end{verbatim} + +\section{Cross-references} +In electronic publications, articles may be internally +hyperlinked. Hyperlinks are generated from proper +cross-references in the article. For example, the words +\textcolor{black!80}{Fig.~1} will never be more than simple text, +whereas the proper cross-reference \verb+\ref{tiger}+ may be +turned into a hyperlink to the figure itself: +\textcolor{blue}{Fig.~1}. In the same way, +the words \textcolor{blue}{Ref.~[1]} will fail to turn into a +hyperlink; the proper cross-reference is \verb+\cite{Knuth96}+. +Cross-referencing is possible in \LaTeX{} for sections, +subsections, formulae, figures, tables, and literature +references. + +\section{Bibliography} + +Two bibliographic style files (\verb+*.bst+) are provided --- +{model1-num-names.bst} and {model2-names.bst} --- the first one can be +used for the numbered scheme. This can also be used for the numbered +with new options of {natbib.sty}. The second one is for the author year +scheme. When you use model2-names.bst, the citation commands will be +like \verb+\citep+, \verb+\citet+, \verb+\citealt+ etc. However when +you use model1-num-names.bst, you may use only \verb+\cite+ command. + +\verb+thebibliography+ environment. Each reference is a\linebreak +\verb+\bibitem+ and each \verb+\bibitem+ is identified by a label, +by which it can be cited in the text: + +\noindent In connection with cross-referencing and +possible future hyperlinking it is not a good idea to collect +more that one literature item in one \verb+\bibitem+. The +so-called Harvard or author-year style of referencing is enabled +by the \LaTeX{} package {natbib}. With this package the +literature can be cited as follows: + +\begin{enumerate}[\textbullet] +\item Parenthetical: \verb+\citep{WB96}+ produces (Wettig \& Brown, 1996). +\item Textual: \verb+\citet{ESG96}+ produces Elson et al. (1996). +\item An affix and part of a reference:\break +\verb+\citep[e.g.][Ch. 2]{Gea97}+ produces (e.g. Governato et +al., 1997, Ch. 2). +\end{enumerate} + +In the numbered scheme of citation, \verb+\cite{