summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/asmejour/asmejour.cls
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/asmejour/asmejour.cls')
-rw-r--r--Master/texmf-dist/tex/latex/asmejour/asmejour.cls571
1 files changed, 571 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/asmejour/asmejour.cls b/Master/texmf-dist/tex/latex/asmejour/asmejour.cls
new file mode 100644
index 00000000000..1dfd3152fd4
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/asmejour/asmejour.cls
@@ -0,0 +1,571 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file provides the asmejour class for formatting =papers in a layout similar to
+%% ASME Journal papers.
+%%
+%% The asmejour.cls file should be used with the files asmejour.bst (for citations) and asmejour-template.tex.
+%%
+%%
+%% This file is version 1.01 dated 2019/04/28.
+%%
+%% Author: John H. Lienhard V
+%% Department of Mechanical Engineering
+%% Massachusetts Institute of Technology
+%% Cambridge, MA 02139-4307 USA
+%%
+%% This class is compatible with either pdfLaTeX or LuaLaTeX. The class calls a number of packages,
+%% many of which are part of the standard LaTeX distribution, and all of which are in TeXLive and
+%% CTAN (https://ctan.org/).
+%%
+%% The Times/Helvetica style fonts are from Michael Sharpe's excellent newtxtext and newtxmath packages.
+%% This class is not designed for unicode-math or fontspec.
+%%
+%% Options for the class are described on lines 73-123.
+%%
+%% The class defines an environment for nomenclature. LaTeX must be run twice to align those columns.
+%%
+%% The title block is set by a specific group of commands which are described in the asmejour-template.tex file.
+%%
+%% The \section[]{} command's optional argument is changed to provide pdf bookmarks when necessary.
+%%
+ %=========================================================
+%%
+%% LICENSE:
+%%
+%% Copyright (c) 2019 John H. Lienhard
+%%
+%% Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
+%% associated documentation files (the "Software"), to deal in the Software without restriction,
+%% including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
+%% and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
+%% subject to the following conditions:
+%%
+%% The above copyright notice and this permission notice shall be included in all copies or
+%% substantial portions of the Software.
+%%
+%% The software is provided "as is", without warranty of any kind, express or implied, including but
+%% not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement.
+%% in no event shall the authors or copyright holders be liable for any claim, damages or other liability,
+%% whether in an action of contract, tort or otherwise, arising from, out of or in connection with the
+%% software or the use or other dealings in the software.
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{asmejour}[2019/04/28 asmejour paper format]
+
+\LoadClass[twoside,9pt,twocolumn]{extarticle}
+
+%%%%%%%%%%%%%% Options for the class %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{ifthen}
+\newboolean{DefaultSups}
+\setboolean{DefaultSups}{true}
+
+\RequirePackage{kvoptions}
+\RequirePackage{kvsetkeys}
+\SetupKeyvalOptions{
+ family=asmeconf,
+ prefix=asmeconf@,
+ setkeys=\kvsetkeys,
+}
+
+%%% for mathalfa, so we may pass options in this format: mathalfa=cal=euler, mathalfa=frak=boondox
+\define@key{asmeconf}{mathalfa}{%
+ \PassOptionsToPackage{#1}{mathalfa}%
+}
+
+%%% set key [nodefaultsups] to obtain newtx superiors font for footnotes.
+\define@key{asmeconf}{nodefaultsups}[false]{%
+ \setboolean{DefaultSups}{#1}
+}
+
+%%% set barcolor= to a value defined by xcolor package
+\newcommand\@ColorName{black} % default
+\define@key{asmeconf}{barcolor}[Red4]{%
+ \renewcommand\@ColorName{#1}
+}
+
+\ProcessKeyvalOptions*
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% option to omit ASME footer
+\DeclareOption{nofoot}{%
+ \AtBeginDocument{\pagestyle{plain}%
+ \fancypagestyle{title}{%
+ \fancyhf{}
+ \fancyfoot[CE,CO]{\thepage}
+ }
+ }
+}
+
+%% option to omit ASME copyright
+\DeclareOption{nocopyright}{%
+ \AtBeginDocument{\fancypagestyle{title}{%
+ \fancyhf{}
+ \fancyfoot[RO]{\large\sffamily PREPRINT FOR REVIEW \bfseries / \thepage}
+ \fancyfoot[LO]{\large\bfseries\sffamily Journal of \@JourName}
+ \fancyfoot[CO]{}
+ }
+ }
+}
+
+%% Access many options from newtxmath. See newtxmath documentation for details.
+\DeclareOption{upint,smallerops,varvw,varg,slantedGreek,frenchmath,varbb,cmbraces}{\PassOptionsToPackage{}{newtxmath}}
+
+%% Option for slightly larger small capitals font [largesc] or to loosen word spacing [looser]
+\DeclareOption{largesc}{\PassOptionsToPackage{}{newtxtext}}
+
+%% ASME word separation is greater than newtxtext defaults so change these parameters.
+\PassOptionsToPackage{spacing=0.3em, stretch=0.18em, shrink=0.08em}{newtxtext}
+
+%% Option not to use latex default superscripts, instead using the newtxtext superiors font [nodefaultsups]
+\ifthenelse{\boolean{DefaultSups}}{\PassOptionsToPackage{defaultsups}{newtxtext}}{\relax}
+
+%% Suppress warnings about mathalfa keys as unused global options
+\DeclareOption*{}
+
+\ProcessOptions \relax
+
+%%%%%%%%%%%%% end options %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage[paperheight=285.7mm, paperwidth=215.9mm, left=21.1mm, right=21.1mm, top=15.9mm, bottom = 24mm, footskip=8mm]{geometry}
+\setlength\columnsep{4.5mm}
+\setlength\parindent{3.5mm}
+% ASME's pdf pages are 11.25 in. tall, not 11.00 in.
+
+\RequirePackage[sort&compress,numbers]{natbib}
+\setlength\bibsep{0pt plus 1pt minus 0pt} % ASME keeps this tight
+\renewcommand*{\bibfont}{\footnotesize}
+
+\RequirePackage{graphicx}
+\RequirePackage[hyperref,fixpdftex,dvipsnames,svgnames,x11names]{xcolor}
+\RequirePackage{xparse}
+
+%%%%%%%%%%%%%%%% Table related %%%%%%%%
+
+\RequirePackage{array}
+
+\RequirePackage{dcolumn} %% alignment on decimal places
+\newcolumntype{d}[1]{D{.}{.}{#1}}
+
+%% make \hline in tables heavier than default 0.4pt
+\setlength\arrayrulewidth{.5\p@}
+
+
+%%%%%%%% FONT related %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{mathtools} % extends amsmath
+\RequirePackage[utf8]{inputenc}
+\RequirePackage[]{newtxtext}
+\RequirePackage[varqu,varl]{inconsolata} % sans typewriter font
+\RequirePackage[]{newtxmath}
+
+\RequirePackage[]{mathalfa} % load optional fonts for Calligraphy, Script, etc.
+
+\RequirePackage{bm} % load after all math to give access to bold math
+
+%% In addition to the word spacing options declared in line 121...
+%% Relative to size9.clo: leading reduced to 10 pt; displayskips made greater
+\renewcommand\normalsize{%
+ \@setfontsize\normalsize\@ixpt{10\p@} % <== was \@xipt
+ \abovedisplayskip 10\p@ \@plus5\p@ \@minus4\p@ % <== was 8\p@ 4,4...
+ \abovedisplayshortskip 3\p@ \@plus1\p@ \@minus1\p@ % <== was \z@ \@plus3\p@ (3pt stretch)
+ \belowdisplayshortskip 10\p@ \@plus5\p@ \@minus4\p@ % <== was 5\p@ 3, 3
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI}
+\normalsize
+
+\setlength{\jot}{10pt} %<== default is 3pt
+
+\allowdisplaybreaks % ASME allows these breaks
+
+%% This provides sans serif italic and sans serif bold italic math.
+%% It's intended only for use in the figure and table captions.
+%% Fonts are from newtxsf package.
+\DeclareMathVersion{sansbold}
+\SetMathAlphabet{\mathsf}{sansbold}{\encodingdefault}{\sfdefault}{b}{n}
+\SetSymbolFont{letters}{sansbold}{OML}{ntxsfmi}{b}{it}
+\SetSymbolFont{lettersA}{sansbold}{U}{ntxsfmia}{b}{it}
+\SetSymbolFont{symbols}{sansbold}{LMS}{ntxsy}{b}{n}
+\SetSymbolFont{operators}{sansbold}{\encodingdefault}{\sfdefault}{\bfdefault}{n}
+
+%% Text Gyre Heros Condensed is qhvc (regular is qhv).
+\newcommand*{\CondSans}{\selectfont\fontfamily{qhvc}\selectfont}
+\renewcommand\huge{\@setfontsize\huge{14}{14}} %... for author names only
+\newcommand*{\CondSansBold}{\renewcommand\bfdefault{b}\selectfont\fontfamily{qhvc}\selectfont\bfseries}
+\renewcommand\Huge{\@setfontsize\Huge{26.5}{26.5}} %... for title font only
+
+
+%%%%%%%%%%%%%%%%% FOOTER SET UP %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%% footer text names %%%%%%%%%%
+
+\newcommand{\JourName}[1]{\gdef\@JourName{#1}}
+\providecommand\@JourName{\hbox{ }}
+
+\DeclareDocumentCommand{\PaperYear}{G{\the\year}}{%
+ \gdef\@PaperYear{#1}%
+ }
+\providecommand\@PaperYear{\the\year}
+
+%%%%%%
+
+\RequirePackage{fancyhdr}
+\pagestyle{fancy}
+
+\fancyhf{} % clear all header and footer fields
+\renewcommand{\headrulewidth}{0pt}
+\renewcommand{\footrulewidth}{0pt}
+\fancyfoot[RE]{\large\bfseries\sffamily Transactions of the ASME}
+\fancyfoot[LO]{\large\bfseries\sffamily Journal of \@JourName}
+\fancyfoot[RO]{\large\sffamily PREPRINT FOR REVIEW \bfseries / \thepage}
+\fancyfoot[LE]{\large\sffamily {\bfseries \thepage\ /} PREPRINT FOR REVIEW}
+
+
+\fancypagestyle{title}{%
+\fancyhf{} % clear all header and footer fields
+\renewcommand{\headrulewidth}{0pt}
+\renewcommand{\footrulewidth}{0pt}
+\fancyfoot[RO]{\large\sffamily PREPRINT FOR REVIEW \bfseries / \thepage}
+\fancyfoot[LO]{\large\bfseries\sffamily Journal of \@JourName}
+\fancyfoot[CO]{\large\bfseries\sffamily Copyright \textcopyright\ \@PaperYear\ by ASME}
+}
+
+%%%%%% Footnotes %%%%%%%
+
+\RequirePackage{fnpos}
+\makeFNbottom
+\makeFNbelow
+
+\setlength{\skip\footins}{12pt plus 2pt minus 1pt}
+
+\renewcommand{\footnoterule}{%
+ \kern -3pt
+ \hrule width 0.5in height 0.5pt
+ \kern 2pt
+}
+
+%% reduce indentation of footnotes
+\renewcommand\@makefntext[1]{%
+ \noindent\makebox[4mm][r]{\@makefnmark}\hyphenpenalty=300\exhyphenpenalty=300 #1} %<== suppress hyphenation
+
+%% Produces an unmarked footnote about the submission date. Insert \reviewfootnote{..} on first page if desired.
+\def\reviewfootnote{\gdef\@thefnmark{}\@footnotetext}
+
+%%%%%%%%% CAPTION RELATED %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage[labelfont={sf,bf},hypcap=false]{caption}
+\RequirePackage[hypcap=false,list=true]{subcaption}
+
+\DeclareCaptionTextFormat{boldmath}{\mathversion{sansbold}#1}
+
+\captionsetup[figure]{name=Fig.,labelfont={sf,bf},textfont={sf,bf},textformat=boldmath,labelsep=quad}
+\captionsetup[table]{name=Table,labelfont={sf,bf},textfont={sf,bf},textformat=boldmath,labelsep=quad,skip=0.5\baselineskip}
+
+
+%%%%%%%%%%%% SECTION HEADINGS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% wish to accommodate hyperref
+
+\RequirePackage[raggedright,indentafter]{titlesec}
+
+\titleformat{\section}{\mathversion{bold}\bfseries\large\raggedright}{\thesection}{0.5em}{}
+\titleformat{\subsection}[runin]{\mathversion{bold}\bfseries}{\thesubsection}{0.5em}{}[.]
+
+\titlespacing\section{0pt}{14pt plus 3pt minus 2pt}{3pt plus 2pt minus 1pt}
+\titleformat{\subsection}[runin]{\mathversion{bold}\bfseries}{\thesubsection}{0.5em}{}[.]
+
+%% ASME style does not seem to go lower than subsection, so ...
+%% ....putting \subsubsection and \paragraph into \subsection settings.
+\titleformat{\subsubsection}[runin]{\mathversion{bold}\bfseries}{\thesubsection}{0.5em}{}[.]
+\titleformat{\subsubsection}[runin]{\mathversion{bold}\bfseries}{\thesubsection}{0.5em}{}[.]
+\titleformat{\paragraph}[runin]{\mathversion{bold}\bfseries}{\thesubsection}{0.5em}{}[.]
+\titleformat{\paragraph}[runin]{\mathversion{bold}\bfseries}{\thesubsection}{0.5em}{}[.]
+
+%% Special handling of the appendices
+%% Assumes that appendices are the last technical content in paper
+\RenewDocumentCommand{\appendix}{}{%
+ \pdfbookmark[1]{Appendices}{appendices}
+ \setcounter{section}{0}
+ \renewcommand\thesection{\Alph{section}}
+ \setcounter{equation}{0}
+ \renewcommand\theequation{\Alph{section}\arabic{equation}}
+ \titleformat{\section}[block]{\mathversion{bold}\bfseries\large\raggedright}{Appendix \thesection:}{0.5em}{}[\setcounter{equation}{0}]
+}
+
+% natbib's \bibsection controls section heading for References.
+
+
+%%%%%%%%%%%%%%%%% List environments %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{enumitem}
+
+\setlist[enumerate,1]{label = (\arabic*), ref = (\arabic*),labelindent=3mm, leftmargin=*,noitemsep}
+%% have no examples of sublists...
+
+%%%%%%%%%%%%% hyperref %%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{hyperxmp} %% to fix transfer of metadata to Acrobat pdf
+
+\RequirePackage[%
+ unicode, % Unicode encoded PDF strings
+ psdextra, % additional support for math in pdf bookmarks
+ pdfborder={0 0 0},%
+ bookmarks=true, %
+ bookmarksnumbered=true,%
+ bookmarksopen=true,%
+ bookmarksopenlevel=1,%
+ colorlinks=true,%
+ linkcolor=blue, %
+ citecolor=blue, %
+ urlcolor=blue, %
+ breaklinks=true,%
+ pdftitle={}, % <=== add in .tex file
+ pdfkeywords={}, % <=== add in .tex file
+ pdfnewwindow=true,%
+ pdfpagelayout=TwoPageRight,%
+ pdfauthor={}, % <=== add in .tex file
+ pdfdisplaydoctitle=true%
+ ]{hyperref}
+
+\urlstyle{same} % don't switch to typewriter font
+
+\RequirePackage{doi} % provides hyperlinks for doi in bibliography
+\renewcommand{\doitext}{doi:~} % change the default, {doi:}, to this for ASME specification
+
+
+%% Since \bm is useful in headings, this fix will reduce frequency with which
+%% alternate pdfstrings must be given in section command as \section[pdfstring]{texstring}
+\pdfstringdefDisableCommands{%
+ \def\bm#1#{\relax}%
+}
+
+%% Let's just remove citations from pdf bookmarks
+\pdfstringdefDisableCommands{%
+ \def\cite{\@gobble}%
+}
+
+%% Let's make sure footnotes in section headings don't break pdf bookmarks.
+\RequirePackage{etoolbox}
+\robustify{\footnote}
+\pdfstringdefDisableCommands{%
+ \def\footnote#1{}%
+}
+
+%%% Create an optional argument for unnumbered sections and set pdf bookmark (thru \addcontentsline).
+%%% The optional argument will manually set the pdf bookmark for that section; can be used to avoid hyperref
+%%% errors when macros are in section titles.
+%%% There should not be errors for $$, \cite, \ref, \label, \footnote, or \bm with current construction.
+\let\svsection\section
+\RenewDocumentCommand{\section}{s o m}{%
+ \IfBooleanTF {#1}
+ {\svsection*{#3}\phantomsection
+ {\IfNoValueTF {#2}
+ {\addcontentsline{toc}{section}{#3} }
+ {\addcontentsline{toc}{section}{#2} }
+ }
+ }
+ {\IfNoValueTF {#2}
+ {\svsection{#3}}
+ {\svsection[#2]{#3}}
+ }
+}
+
+
+%%%%%%%%%%%%% define Nomenclature environment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Nomenclature environment in ASME Journal Style
+%% Run twice to get proper label width.
+%% Set first optional argument (a dimension) to override automatic label width (e.g., if one label is excessive)
+%% Second argument can be used to rename the section, e.g., to List of Symbols.
+%%
+
+\newlength\widest
+\newlength\@widest
+\newlength\nomenwidth
+
+%% If the second argument of \entry is omitted, a bold section heading is produced, e.g. \entry{Greek Letters}
+\DeclareDocumentCommand{\entry}{m g}{%
+ \IfNoValueTF{#2}{%
+ \item[\bfseries#1\hfill]\bigskip\hphantom{M}\smallskip%
+ }{%
+ \item[\hfill#1${} = {}$]#2%
+ \settowidth\@widest{#1${} = {}$}%
+ \ifdim\@widest>\widest \global\setlength\widest\@widest\fi%
+ }
+}
+
+\RequirePackage{totcount}
+\newtotcounter{savedlength}
+% a total counter for saving the value of \nomenwidth
+
+\AtBeginDocument{\setlength{\nomenwidth}{\totvalue{savedlength}sp}}
+% value is the length in scaled points (sp)
+
+\DeclareDocumentEnvironment{nomenclature}{O{\nomenwidth} O{Nomenclature}}{%
+ \setlength{\widest}{0em}
+ \section*{#2}
+ \raggedright
+ \begin{list}{}{%
+ \setlength{\topsep}{0pt}
+ \setlength{\partopsep}{0pt}
+ \setlength{\itemsep}{0pt}
+ \setlength{\parsep}{\itemsep}
+ \setlength{\labelsep}{0em}
+ \setlength{\labelwidth}{#1}
+ \setlength{\leftmargin}{\labelwidth}
+ \addtolength{\leftmargin}{\labelsep}
+ }%
+ }{%
+ \setcounter{savedlength}{\widest}%
+ \end{list}%
+}
+
+
+%%%%%%%%%%%%%%%% Author/Title/Abstract block %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\papertitle}[1]{\gdef\@papertitle{#1}}
+\providecommand\@papertitle{\hbox{ }}
+
+\newcommand{\PaperTitle}{%
+\par\vspace*{6mm}%
+\parbox{\linewidth}{\centering{\bfseries\Large%
+\MakeTextUppercase{\@papertitle}%
+\thispagestyle{title}\par} %% <=== \par gets the font leading to stick.
+ }%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{xcoffins}
+
+\NewCoffin{\authorblock}
+\NewCoffin{\ruleblock}
+\NewCoffin{\Abstract}
+\NewCoffin{\Title}
+
+\NewCoffin{\firstrowauthorblock}
+\SetHorizontalCoffin\firstrowauthorblock{}
+
+\newlength{\coffinsep} %%% space between coffins
+\setlength{\coffinsep}{4.5mm}
+
+\newcounter{authorno}
+\setcounter{authorno}{0}
+
+%%%%%%
+
+\newlength{\rulecofheight}
+\newlength{\Titleheight}
+
+\DeclareDocumentCommand\SetAuthorBlock{m m}{%
+ \addtocounter{authorno}{1}%
+ \SetVerticalCoffin{\authorblock}{48.2mm}{%
+ \raggedleft\sffamily%
+ {\huge\CondSansBold\ignorespaces#1\ignorespaces}\\
+ \CondSans#2%
+}
+\ifnum\value{authorno}=1
+ \JoinCoffins\firstrowauthorblock\authorblock
+ \setlength{\rulecofheight}{\CoffinTotalHeight\firstrowauthorblock}
+ \else
+ \JoinCoffins\firstrowauthorblock[hc,b]\authorblock[hc,t](0pt,-\coffinsep)
+ \setlength{\rulecofheight}{\CoffinTotalHeight\firstrowauthorblock}
+\fi
+}
+
+
+\DeclareDocumentCommand\SetTitle{m}{%
+ \SetVerticalCoffin{\Title}{114mm}{%
+ \vspace*{0.5mm}% <== ASME doesn't align bar and text
+ \noindent\Huge\CondSansBold\raggedright%
+ #1%
+ \par
+ }
+}
+
+\providecommand{\@keywords}{\relax}
+\DeclareDocumentCommand{\keywords}{g}{%
+ \IfNoValueTF{#1}{%
+ \relax}{%
+ \long\def\@keywords{\par\vskip\baselineskip\noindent{Keywords:} #1}%
+ }
+}
+
+
+\DeclareDocumentCommand\SetAbstract{m}{%
+ \SetVerticalCoffin{\Abstract}{114mm}{%
+ \noindent\itshape%
+ #1
+ \@keywords
+ \vspace*{4mm}% <== at bottom of abstract to extend rule
+}
+}
+
+\DeclareDocumentCommand{\ConstructAuthorBlock}{}{%
+\JoinCoffins\Title[hc,b]\Abstract[hc,t](0pt,-1.5\coffinsep)
+\setlength{\Titleheight}{\CoffinTotalHeight\Title}
+\ifdim\Titleheight>\rulecofheight
+ \setlength{\rulecofheight}{\Titleheight}
+\else
+ \addtolength{\rulecofheight}{7.0mm}
+\fi
+\SetHorizontalCoffin \ruleblock {\color{\@ColorName}\rule{2.1mm}{\rulecofheight}}
+\JoinCoffins\firstrowauthorblock[vc,r]\ruleblock[vc,l](\coffinsep,0pt)
+\JoinCoffins\firstrowauthorblock[vc,r]\Title[vc,l](\coffinsep,0pt)
+\centerline{\TypesetCoffin\firstrowauthorblock} %% in this instance, \centerline is better than \centering
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Corresponding author gets footnote #1 and subsequent notes are 2, 3, ....
+%%% ASME apparently does not recognize joint first authors...so have not coded that functionality
+
+%%%% Flag for corresponding author (just one expected, although code supports more than one)
+%%%% for more than one, if including email in footnote, place in final command
+\makeatletter
+\newif\ifCA\CAfalse
+\newcommand{\CAemail}[1]{\gdef\@CAemail{#1}}
+
+
+% Allow for NO email address to be given by omitting second argument
+% ASME prefers email to be in address block, not CA footnote, although code can support the latter.
+\DeclareDocumentCommand{\CorrespondingAuthor}{g}{%
+\global\CAtrue%
+ \IfNoValueTF{#1}{%
+ \gdef\@CAsep{\relax}%
+ \gdef\@CAemail{\relax}%
+ }{%
+ \gdef\@CAsep{:\space}%
+ \gdef\@CAemail{#1}%
+ }%
+\def\@makefnmark{\hbox{\@textsuperscript{\sffamily\@thefnmark}}}%
+\footnotemark%
+\addtocounter{footnote}{-1} % in case of more than one CA
+}
+
+
+%%%%%%%%%%
+
+\DeclareDocumentCommand{\MakeTitlePage}{}{%
+\thispagestyle{title}%
+\twocolumn[
+ \begin{@twocolumnfalse}
+\ConstructAuthorBlock
+ \vspace*{12.5mm}
+ \end{@twocolumnfalse}
+]
+\ifCA
+ \addtocounter{footnote}{1}
+ \footnotetext{Corresponding author\@CAsep \@CAemail}
+\fi
+}
+\makeatother
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\endinput
+%%
+%% End of file `asmejour.cls'.
+