summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/asmeconf
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/asmeconf
Initial commit
Diffstat (limited to 'macros/latex/contrib/asmeconf')
-rw-r--r--macros/latex/contrib/asmeconf/README.md98
-rw-r--r--macros/latex/contrib/asmeconf/asmeconf-sample.bib273
-rw-r--r--macros/latex/contrib/asmeconf/asmeconf-template.pdfbin0 -> 362316 bytes
-rw-r--r--macros/latex/contrib/asmeconf/asmeconf-template.tex474
-rw-r--r--macros/latex/contrib/asmeconf/asmeconf.bst1621
-rw-r--r--macros/latex/contrib/asmeconf/asmeconf.cls805
-rw-r--r--macros/latex/contrib/asmeconf/sample-figure-1.pdfbin0 -> 17689 bytes
-rw-r--r--macros/latex/contrib/asmeconf/sample-figure-2a.pdfbin0 -> 25985 bytes
-rw-r--r--macros/latex/contrib/asmeconf/sample-figure-2b.pdfbin0 -> 25541 bytes
9 files changed, 3271 insertions, 0 deletions
diff --git a/macros/latex/contrib/asmeconf/README.md b/macros/latex/contrib/asmeconf/README.md
new file mode 100644
index 0000000000..54508416ac
--- /dev/null
+++ b/macros/latex/contrib/asmeconf/README.md
@@ -0,0 +1,98 @@
+
+ #asmeconf: A template for ASME conference papers#
+
+ Version 1.11 dated 2019/07/08.
+
+ ####Overview####
+ This class provides a template to format ASME Conference papers according to
+ the requirements on ASME's web pages (as posted in July 2019).
+
+ [www.asme.org/publications-submissions/proceedings/formatting-the-paper](https://www.asme.org/publications-submissions/proceedings/formatting-the-paper)
+
+ This work is not a publication of ASME itself.
+
+ Files in this distribution are:
+
+ README.md -- this file
+ asmeconf.cls -- the class file
+ asmeconf.bst -- bibtex style for ASME conference format
+ asmeconf-template.tex -- a latex template/example for this class
+ asmeconf-template.pdf -- documentation/sample paper
+ asmeconf-sample.bib -- a sample bibliography file
+ *
+ sample-figure-1.pdf,
+ sample-figure-2a.pdf,
+ sample-figure-2b.pdf -- figures for the example
+
+ The .tex and .cls files are commented and should be self-explanatory.
+
+
+
+
+ This template was designed to approach the following aims:
+
+- match ASME's font current specifications and layout
+
+- match ASME's current citation formats
+
+- support hyperref package (hyperlinks to figures, tables, references, web)
+
+- support pdf bookmarks
+
+- enable various math and text features with newtxmath and newtxtext packages
+
+- support bold face, sans serif math in section headings
+
+- support footnotes in section headings
+
+- provide automatic layout of author and addresses in one of two styles
+
+
+ ####Author####
+
+ John H. Lienhard V
+
+ Department of Mechanical Engineering
+
+ Massachusetts Institute of Technology
+
+ Cambridge, MA 02139-4307 USA
+
+
+ ---
+
+ ####Change log####
+
+ v1.11: minor adjustments to title, author, and affiliation layout
+
+ v1.1: revise several parts of the layout to match ASME's updated specifications from Summer 2019 (including author block, abstract font, placement of nomenclature, and minor spacings); add .bst support for online references and eprints; expand documentation significantly; guidance on fitting equations into columns.
+
+ v1.07: improve support for numbered section headings; allow omission of corresponding author email; edit documentation
+
+ v1.06: automate bold sans math in captions and headings; small adjustments to default spacings; adjust font of paper number to 18 pt; edit documentation
+
+ v1.05: minor code clean-up; change to keyvalue for to control font for superiors
+
+ v1.04: fix option passing for mathalfa package; adjust \\entry to create nomenclature subheadings efficiently.
+
+
+ ---
+
+ ####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 two 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.
diff --git a/macros/latex/contrib/asmeconf/asmeconf-sample.bib b/macros/latex/contrib/asmeconf/asmeconf-sample.bib
new file mode 100644
index 0000000000..c196934749
--- /dev/null
+++ b/macros/latex/contrib/asmeconf/asmeconf-sample.bib
@@ -0,0 +1,273 @@
+%% Revised 7 July 2019
+
+@article{ning2002,
+ title = {On the Sliding Friction Characteristics of Unidirectional Continuous FRP Deposits},
+ journal = {ASME Journal of Tribology},
+ year = {2002},
+ volume = {48},
+ number = {5},
+ pages = {2000--2008},
+ author = {Xiang Ning and Mary Rose Lovell},
+ doi = {10.1115/1.4042912},
+ URL = {https://doi.org/10.1115/1.4042912},
+}
+%% There's no need to give the URL if it is simply the DOI; the DOI itself will be hyperlinked.
+
+@BOOK{gibson2008,
+ title = {The Big Book of Cellular Studies},
+ publisher = {John Wiley and Sons},
+ year = {2008},
+ author = {Tom A. Gibson and Matthew A. Tucker},
+ address = {New York},
+}
+%% If a URL or DOI is available, it may be included as in the article above.
+
+@INCOLLECTION{stevens1999,
+ title = {Stochastic Fields and Their Digital Simulation},
+ publisher = {Martimius Publishers},
+ pages = {22--36},
+ year = {1999},
+ booktitle = {Stochastic Methods},
+ author = {Thomas T. Stevens},
+ address = {Dordrecht},
+}
+%% If a URL or DOI is available, it may be included as in the article above.
+
+
+@inproceedings{wions2005,
+ author = {Thomas Wions and Christopher D. Mills},
+ title = {Structural Dynamics in Parallel Manipulation},
+ booktitle = {Proceedings of the ASME IDETC/CIE},
+ year = {2005},
+ pages = {777--798},
+ number = {DETC2005-99532},
+ doi = {10.1115/1.4042912},
+ URL = {https://doi.org/10.1115/1.4042912},
+ venue = {New Orleans, LA},
+ confmonth = {September 10--13},
+}
+% Note that venue and confmonth are specific to this .bst style
+% There's no need to give the URL if it is simply the DOI; the DOI itself will be hyperlinked.
+
+
+@phdthesis{smith2002,
+ author = {Robert Smith},
+ title = {Conformal Lubricated Contact of Cylindrical Surfaces Involved in a Non-Steady Motion},
+ school = {Rochester Institute of Technology},
+ address = {Rochester, NY},
+ year = {2002},
+ doi = {10.1115/1.4042912},
+ URL = {https://doi.org/10.1115/1.4042912},
+}
+% type = {Sc{D} Thesis}, could be added to change the type of thesis. See example below.
+% There's no need to give the URL if it is simply the DOI; the DOI itself will be hyperlinked.
+
+
+@techreport{watson1982,
+ author = {David Watson},
+ title = {Evaporative Heat Transfer in the Contact Line of a Mixture},
+ year = {1982},
+ number = {HTL-26, CFD-4},
+ institution = {Iowa State University},
+ address = {Ames, IA},
+ doi = {10.1115/1.4042912},
+ URL = {https://doi.org/10.1115/1.4042912},
+}
+% type can be changed here also, see example below
+% see example below.
+
+@mastersthesis{smith1998,
+ author = {Robert Smith},
+ title = {Conformal Lubricated Contact of Cylindrical Surfaces Involved in a Steady Motion},
+ school = {Rochester Institute of Technology},
+ address = {Rochester, NY},
+ year = {1998},
+}
+
+@mastersthesis{smith1996,
+author = {Robert Smith},
+title = {Cylindrical Surfaces Involved in a Steady Motion},
+type = {{BS} Thesis},
+school = {Rochester Institute of Technology},
+address = {Rochester, NY},
+year = {1996},
+}
+
+
+@techreport{watson1981,
+author = {David Watson},
+title = {Evaporative Heat Transfer in the Contact Line of a Mixture},
+year = {1981},
+number = {TN-1234},
+institution = {National Aeronautics and Space Administration},
+address = {Washington, DC},
+URL = {https://doi.org/10.1115/1.4042912},
+type = {NASA Technical Memorandum No.}
+}
+
+@BOOK{bejan,
+ title = {Advanced Engineering Thermodynamics},
+ publisher = {John Wiley {\&} Sons, Inc.},
+ year = {1988},
+ author = {Adrian Bejan},
+ address = {New York, NY},
+}
+
+@incollection{DKE70,
+ author = {Donald K. Edwards},
+ title = {Thermal Radiation Measurements},
+ editor = {Ernst R. G. Eckert and Richard J. Goldstein},
+ booktitle = {Measurement Techniques in Heat Transfer},
+ chapter = {9},
+ pages = {353--396},
+ volume ={130},
+ series ={{AGARD}ograph},
+ month = {November},
+ type = {{C}hapter},
+ publisher = {Technivision Services},
+ address = {Slough, England},
+ year ={1970},
+ note ={Published by the Advisory Group for Aerospace Research and Development of {NATO}},
+}
+
+@incollection{Lienhard2017,
+ author = {John H. Lienhard and Karan H. Mistry and Mostafa H. Sharqawy and Gregory P. Thiel},
+ title ={Thermodynamics, Exergy, and Energy Efficiency in Desalination Systems},
+ editor = {Hassan A. Arafat},
+ booktitle = {Desalination Sustainability},
+ chapter = 4,
+ pages = {127--206},
+ publisher ={Elsevier Publishing Co.},
+ address = {Amsterdam},
+ year =2017,
+ month = {June},
+ url = {https://www.elsevier.com/books/desalination-sustainability/unknown/978-0-12-809791-5},
+}
+
+@article{Lienhard2019b,
+ title = "Exterior Shape Factors from Interior Shape Factors",
+ journal = {J. Heat Transfer},
+ year = "2019",
+ doi = "10.1115/1.4042912",
+ author = {Lienhard, V, John H.},
+ eid = {061301},
+ volume = {141},
+ number = {6},
+}
+
+@misc{narayan2017,
+ author = {Prakash Narayan Govindan and Steven Lam and Maximus G. {St. John}},
+ title = {Systems including a condensing apparatus such as a bubble column condenser},
+ year = {2017},
+ howpublished = {US Patent {\#}9700811},
+}
+
+@conference{Swaminathan2017IDABRO,
+ Author = {Swaminathan, Jaichander and Stover, Richard L. and Tow, Emily W. and Warsinger, David M. and Lienhard, John H.},
+ Booktitle = {Proceedings of IDA World Congress on Desalination and Water Reuse},
+ Title = {Effect of practical losses on optimal design of batch {RO} systems},
+ Year = {2017},
+ Month = 10,
+ Publisher = {International Desalination Association},
+ address = {Topsfield, MA},
+ venue ={S{\~a}o Paulo, Brazil},
+ confmonth = {October 15--20},
+ number = {IDA17WC-58334},
+ eprint = {1721.1/111971},
+ archive = hndl,
+}
+% number = {Paper No.\ IDA17WC-58334}, could be used instead.
+% url = {http://hdl.handle.net/1721.1/111971},
+
+@misc{Fong2015,
+ title = {Analytical Methods for Squaring the Disc},
+ author = {Chamberlain Fong},
+ howpublished = {{\itshape ArXiv e-prints}},
+ eprint = {1509.06344},
+ archive=arxiv,
+ year = {2015},
+ month = {sep},
+}
+% URL = {https://arxiv.org/abs/1509.06344v3},
+
+
+@manual{GSL,
+ title = {{GNU} Scientific Library Release 2.4},
+ URL = {https://www.gnu.org/software/gsl/},
+ author = {Mark Galassi
+ and Jim Davies
+ and James Theiler
+ and Brian Gough
+ and Gerard Jungman
+ and Patrick Alken
+ and Michael Booth
+ and Fabrice Rossi
+ and Rhys Ulerich},
+ year = 2017,
+ organization = {Free Software Foundation},
+ address = {Boston, MA},
+ month = {June},
+}
+
+
+@online{mpl,
+ title={mpl colormaps},
+ author={St{\'e}fan {van der Walt} and Nathaniel Smith},
+ URL = {http://bids.github.io/colormap/},
+ urldate = {26 August 2018},
+ year = 2015,
+ organization = {GitHub},
+ address = {San Francisco, CA},
+ month = {September},
+}
+
+
+@BOOK{johnson1980,
+ title = {Title of edited book},
+ publisher = {John Wiley and Sons, Inc.},
+ year = {1980},
+ editor = {Howard Johnson},
+ address = {New York, NY},
+}
+
+@proceedings{proceedings,
+ title = {The title of the proceedings},
+ year = 2015,
+ editor = {Howard Johnson},
+ volume = 2,
+ address = {Address of publisher},
+ organization = {The organization},
+ publisher = {Name of publisher},
+ note = {Optional note}
+}
+% series = {Series A,
+
+@online{amsmath,
+author = {{American Mathematical Society} and {LATEX3 Project}},
+title = {User's Guide for the \textsf{amsmath} Package, Version 2.1},
+year = {2018},
+organization = {Comprehensive \TeX\ Archive Network},
+url = {https://ctan.org/tex-archive/macros/latex/required/amsmath/amsldoc.pdf},
+urldate = {5 July 2019},
+}
+%% urltype = {retrieved},
+
+@online{sharpe1,
+author = {Michael Sharpe},
+title = {New {TX} font package, Version 1.554},
+year = {2018},
+organization = {Comprehensive \TeX\ Archive Network},
+url = {https://ctan.org/pkg/newtx},
+urldate = {27 April 2019},
+}
+
+@online{sharpe2,
+author = {Michael Sharpe},
+title = {The \textsf{mathalfa} package, Version 1.10},
+year = {2018},
+organization = {Comprehensive \TeX\ Archive Network},
+url = {https://ctan.org/pkg/mathalfa},
+urldate = {27 April 2019},
+}
+
+
diff --git a/macros/latex/contrib/asmeconf/asmeconf-template.pdf b/macros/latex/contrib/asmeconf/asmeconf-template.pdf
new file mode 100644
index 0000000000..998ba989a7
--- /dev/null
+++ b/macros/latex/contrib/asmeconf/asmeconf-template.pdf
Binary files differ
diff --git a/macros/latex/contrib/asmeconf/asmeconf-template.tex b/macros/latex/contrib/asmeconf/asmeconf-template.tex
new file mode 100644
index 0000000000..a6c50517b7
--- /dev/null
+++ b/macros/latex/contrib/asmeconf/asmeconf-template.tex
@@ -0,0 +1,474 @@
+%%
+%% This file is asmeconf-template.tex, a template to format ASME Conference papers according to
+%% the requirements on ASME's conference web pages. As of version 1.1, this template follows ASME's
+%% newer conference guidelines as posted in July 2019.
+%%
+%% The new guidelines have changed the request author block formatting.
+%% Nomenclature follows the abstract. Abstract is in italics.
+%%
+%% This file is version 1.11 dated 2019/07/08
+%%
+%% Author: John H. Lienhard V
+%% Department of Mechanical Engineering
+%% Massachusetts Institute of Technology
+%% Cambridge, MA 02139-4307 USA
+%%
+%% Class options are described in the asmeconf.cls file. These include:
+%%
+%% * Math options from M. Sharpe's newtxmath package: upright integrals [upint]; and
+%% * varvw for a v and w that are better distinguished from greek nu; and also
+%% * smallerops, varg, slantedGreek, frenchmath, varbb, cmbraces. Version 1.5 or higher
+%% * is recommended.
+%%
+%% * Many options for calligraphic, script, and fraktur fonts from the mathalfa package; the
+%% * example value used is: mathalfa=cal=euler (use Euler font for \mathcal)
+%% * some other options for cal are: dutchcal, zapfc, cm (default), boondox,...
+%% * frak (fraktur), bb (blackboard bold), scr (script) may also be controlled.
+%%
+%% * An option to omit the ASME copyright footer: nofoot
+%%
+%% * An optional to use newtxtext's superiors font for footnotes [nodefaultsups] and an option
+%% * for slightly larger small capitals, largesc
+%%
+%% * An option to use the old grid arrangement of author names [oldauthors]. See Appendix B for usage,
+%% * because the authors and affiliations must be entered different in this case.
+%%
+%% For details of newtxmath and mathalfa, refer to their documentation (available on CTAN: http://ctan.org).
+%%
+%% The use of commands defined or modified by the asmeconf class is illustrated below. In particular,
+%% ASME requires capitalized, sans-serif section headings, and as a result some care is needed
+%% when using macros in section headings, as also illustrated below.
+%%
+ %=========================================================
+%%
+%% LICENSE:
+%%
+%% Copyright (c) 2019 John 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.
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%% Class options are described above.
+\documentclass[varvw,largesc,upint,mathalfa=cal=euler,colorlinks]{asmeconf} % <=== remove colorlinks for submission to ASME
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%% Fields to be completed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%% pdf metadata %%%%%%%%%%%%
+%%%%% The user should edit %%%%%%%%%%%%
+
+\hypersetup{%
+ pdftitle={ASME Conference Paper Template}, % <=== change to YOUR pdf file title
+ pdfkeywords={ASME, Paper, Template, \LaTeX, Research}, % <=== change to YOUR pdf keywords
+ pdfauthor={John H. Lienhard}, % <=== change to YOUR name[s]!!!
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{document}
+
+% Change these fields to the right content for your conference!
+% You can comment these out if for some reason you don't want a header.
+% Use title case (first letters capitalized), not all capitals
+
+\ConfName{Proceedings of the ASME 2019 \linebreak International Mechanical Engineering Congress and Exposition}
+\ConfAcronym{IMECE19}
+\ConfDate{November 11-14, 2019}
+\ConfCity{Salt Lake City, UT, USA}
+\PaperNo{IMECE2019-XXXX}
+
+
+% Units of measure and other specialty lowercase terms in the title should be
+% enclosed in \NoCaseChange{...} to maintain lower case type
+% LaTeX will automatically set this in all capital letters.
+
+\PaperTitle{Place Title Here: Place Subtitle After Colon}
+
+
+%% Put author names into the order you want. Use the same order for affiliations.
+%% \affil{#} tags the author's affiliation to the address in \SetAffiliation{#}.
+%% No space between last name and \affil{#}, separate names with commas.
+%%
+%% \CorrespondingAuthor{email} follows that author's affiliation, no spaces.
+%% If multiple corresponding authors, put both email addresses in the same command and place after both authors.
+%%
+%% \JointFirstAuthor, if applicable, follows the affiliation of the relevant authors, no spaces.
+
+\SetAuthors{Luis Hern\'{a}ndez\affil{1}\JointFirstAuthor , Maria Silva\affil{2}\JointFirstAuthor, Henry Tudor\affil{3}, Catherine~Parr\affil{3}, John H.\ Lienhard V\affil{4}\CorrespondingAuthor{lienhard@mit.edu}}
+
+\SetAffiliation{1}{Institution or Company Name, City, State}
+\SetAffiliation{2}{Institution or Company Name, City, Province, Canada}
+\SetAffiliation{3}{Hampton Court Palace, Richmond, England}
+\SetAffiliation{4}{Massachusetts Institute of Technology, Cambridge, MA }
+
+\MakeTitlePage
+
+
+%%% Change these to your keywords. Keywords are automatically printed at the end of the abstract.
+%%% This command must come BEFORE the end of the abstract.
+%%% If you don't want keywords, delete the command.
+
+\keywords{ASME, Paper, Template, \LaTeX, Research}
+
+%%%%%%%%%%%%%%%%%%%%% End of fields to be completed. Now write! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%% Abstract %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Abstract should be no more than 200 words
+\begin{abstract}
+This paper is an example and template for typesetting ASME Conference Papers in \LaTeX\ using the {\upshape\texttt{asmeconf}} class. This class follows ASME guidelines for margins, fonts, headings, captions, and reference formats as of July 2019. The class is compatible with the {\upshape\texttt{hyperref}} package for producing pdf files with links. The optional argument of \verb|\section| has been modified for manually setting pdf bookmarks when macros or complicated mathematics are included in section headings. The class is intended to be used with the {\upshape\texttt{asmeconf.bst}} \textsc{Bib}\negthinspace\TeX\ style, which is part of this distribution. The class may be invoked with several options, most of which address math fonts. The class calls a number of packages, all of which are in \TeX\textsc{live}\ and on CTAN (\href{http://ctan.org}{ctan.org}).
+\end{abstract}
+
+%%%%%%%%% NOMENCLATURE (OPTIONAL) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% To change space between the symbols and definitions, use \begin{nomenclature}[Xcm] where X is a number
+%% The unit cm can be replaced by any LaTeX unit of dimension: pt, in, ex, em, pc, etc.
+%% Default is 2em.
+
+%% Leave off second argument of \entry to produce a subheading (e.g., \entry{Greek letters} )
+
+\begin{nomenclature}
+\entry{Roman letters}
+\entry{$k$}{Thermal conductivity [W m$^{-1}$ K$^{-1}$]}
+\entry{$\vec{q}$}{Heat flux vector [W m$^{-2}$]}
+
+\entry{Greek letters}
+\entry{$\alpha$}{Thermal diffusivity [m$^2$ s$^{-1}$]}
+\entry{$\nu$}{Kinematic viscosity [m$^2$ s$^{-1}$]}
+
+\entry{Dimensionless groups}
+\entry{Pr}{Prandtl number, $\nu/\alpha$}
+\entry{Sc}{Schmidt number, $\nu/\mathcal{D}_{1,2}$}
+
+\entry{Superscripts and subscripts}
+\entry{b}{bulk value}
+\entry{$\infty$}{free stream value}
+\end{nomenclature}
+
+
+%%%%%%%%% BODY OF PAPER %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\section{Introduction}
+The \texttt{asmeconf} class file will typeset papers with margins, fonts, headings, captions, and reference formats that follow those specified for conference papers of the American Society of Mechanical Engineers (ASME). Internal and external hyperlinks will be set automatically, and the pdf file will contain bookmarks and metadata. This class is not a publication of ASME.
+
+The \texttt{.tex} file may be written using standard \LaTeX\ commands, although some specific initial commands are needed to format the blocks containing the author[s], title, and abstract.
+
+\subsection{Essential Initial Commands}
+To begin, fill in the fields to be completed at top of the \texttt{asmeconf-template.tex} file. These fields include the headers for your conference and your paper number. Specified metadata will be placed into the pdf file itself.
+The title should be placed into \verb|\PaperTitle{..}|.
+
+Put author names into the \verb|\SetAuthors{name, name,...}| command in the desired order; follow the syntax illustrated \texttt{asmeconf-template.tex} file. Put each distinct address sequentially into a separate \verb|\SetAffiliation{n}{address}|, where $n = 1,2,\ldots$. Tag each author with the right affiliation by putting \verb|\affil{n}| after that author's name. Author addresses are to be kept short. List the author institution, and the City, State (US authors), City, Province, Canada (Canadian authors), or City, Country (other international authors).
+
+One author (or more) may be designated as the \verb|\CorrespondingAuthor{email}| by placing the command at the end of the name. Two or more authors may be joint first authors with \verb|\JointFirstAuthor|. Either of these commands should come after \verb|\affil{#}|.
+
+After setting up the headers, authors, and title, issue the \verb|\MakeTitlePage| command.
+
+Keywords may optionally be including using the \verb|\keywords{..}| command; this command \textit{must} be issued before the abstract. The abstract text must be placed into \verb|\SetAbstract{..}|. The abstract will automatically be italized.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Equations and Nomenclature}
+Equations are typeset in the usual way. The class file loads the \texttt{amsmath} and \texttt{mathtools} packages. Further, the \texttt{newtxmath} package used for the math fonts includes many additional features (see Sect.~\ref{sec:moremath}).
+\begin{equation}\label{eqn:fourier}
+\vec{q} = -k\nabla T
+\end{equation}
+
+ASME prefers SI units. U.S.\ style units may follow in parentheses. Be sure to put your symbols into the nomenclature list, including the units.
+
+For ASME conference papers, the labels Equation and Figure should be abbreviated when they do not start a sentence, as in Eq.~\eqref{eqn:dw} and Fig.~\ref{fig:1}. Figure~\ref{fig:1} is spelled out when it starts a sentence. Equation~\eqref{eqn:dw} is spelled out when it starts a sentence.
+
+
+%%%%%%%%%%%%% begin figure %%%%%%%%%%%%%%%%%
+
+%% captions go below figures
+\begin{figure}
+\centering\includegraphics[width=0.7\linewidth]{sample-figure-1.pdf}
+\caption{A figure caption with math, $z = (r,\phi)$ \cite{Lienhard2019b}\label{fig:1}}
+\end{figure}
+
+%%%%%%%%%%%%% end figure %%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Use title case for subsections and subsubsections
+\section{Section Headings and Captions}
+ASME requires that section headings and captions be set in an uppercase, sans serif font. The class will do this automatically. You can place \verb|\cite{..}|, \verb|\ref{..}|, \verb|\label{..}|, and into headings and captions directly, as you would in the main text. Do not enclose them braces, e.g.\ \verb|{\cite{..}}|, which will cause errors. You can place \verb|\footnote{..}| into headings, but not into captions.\footnote{See \texttt{tex-stackexchange} for various approaches to footnotes in captions, if they seem necessary. For footnotes in tables, use the \texttt{tablefootnote} package.}\footnote{Sequential footnote.}
+
+Text in section headings and captions will not be capitalized if enclosed in a \verb|\NoCaseChange{..}| command.
+
+Sections may either be numbered or left unnumbered.
+
+Simple math can be used in either captions or section headings. For a section heading that includes more complicated math (and macros), you may use the optional argument of \verb|\section[..]{..}| to create a pdf bookmark without losing characters or producing warnings or errors. See the \texttt{asmeconf.tex} source file for examples of this. These bookmarks should usually be text expressions, although some math is supported.
+
+If you wish to override the default math format in captions, put \verb|\mathversion{normal}| in the caption.
+
+\subsection{Subsection and Sub-subsection Headings}
+Subsections and sub-subsection headings should be entered in title case, with the first letter of primary words capitalized. Sub-subsections (i.e., paragraphs) are never numbered.
+
+\subsection{Colored hyperlinks}
+ASME requires that all text be in black when the paper is submitted for publication. For other uses, authors make
+obtain colored hyperlinks with the [\texttt{colorlinks}] option.
+
+%%%%%%%%%%%%%%% begin simple table %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% captions go above tables
+
+\begin{table}[t]
+\caption[Table]{A simple table\label{tab:1}}
+\centering{%
+\begin{tabular}{l l r}
+\toprule
+Experiment & $u$ [m/s] & $T$ [\textdegree C] \\
+\midrule
+Run 11 & 12.5 & 103.4 \\
+Run 12 & 24 & 68.3 \\
+\bottomrule
+\end{tabular}
+}
+\end{table}
+
+%%%%%%%%%%%%%%%% end table %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%% begin more complicated table %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{table}[t]
+\caption{Table with more complicated columns}\label{tab:2}%
+\centering{%
+\begin{tabular}{!{\hspace*{0.5cm}} >{\raggedright\hangindent=1em} p{3cm} d{3} @{\hspace*{1cm}} d{3} !{\hspace*{0.5cm}}}
+\toprule
+Experiment & \multicolumn{1}{c@{\hspace*{1cm}}}{$u$ [m/s]} & \multicolumn{1}{c!{\hspace*{0.5cm}}}{$T$ [\textdegree C]} \\
+\midrule
+The first test we ran this morning & 124.3 & 68.3 \\
+The second test we ran this morning & 82.50 & 103.46 \\
+Our competitor's test & 72.321 & 141.384 \\
+\bottomrule
+\end{tabular}
+}
+\end{table}
+
+%%%%%%%%%%%%%%%% end table %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Tables and Figures}
+
+Table \ref{tab:1} is an example of a simple table. Table captions should be placed above tables.
+The class loads the \texttt{booktabs} package (used for horizontal rules in both Table \ref{tab:1} and \ref{tab:2}), and the \texttt{array} and \texttt{dcolumn} packages which provide extended capabilities for columns in the \texttt{tabular} environment (used in Table \ref{tab:2}). Table \ref{tab:3} is an example of a table that spans two columns.
+
+Figure captions go below figures. Figure~\ref{fig:2} is an example of a figure that spans two columns and includes subfigures. The text in figures (and tables) should be no smaller than 6~point type.
+
+
+%%%%%%%%%%%%%%%%% begin wide figure %%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{figure*}[t]
+\begin{minipage}[c]{0.5\textwidth}
+\centering{
+ \includegraphics{sample-figure-2a.pdf}
+\subcaption{Interior region\label{fig:interior-region}}
+}\end{minipage}
+%%%%%%%%%%%%%
+\begin{minipage}[c]{0.5\textwidth}
+\centering{
+\includegraphics{sample-figure-2b.pdf}
+\subcaption{Exterior region\label{fig:exterior-region}}
+}\end{minipage}
+\caption{A figure with two subfigures \cite{Lienhard2019b}}\label{fig:2}
+\end{figure*}
+
+%%%%%%%%%%%%%%%%%%% end wide figure %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Reference Formatting with \NoCaseChange{\texttt{asmeconf.bst}}\footnote{If you have text in a section heading or caption that you do not want to be capitalized, such as an SI unit, enclose it in a \texttt{\textbackslash NoCaseChange} command.}}
+
+Citations are automatically numbered \cite{ning2002}. They should be inserted at the appropriate point using a \verb|\cite{ref}| command~\cite{gibson2008,stevens1999}. The citations will be automatically sorted and compressed as well if they are given in a set \cite{stevens1999,ning2002,gibson2008,wions2005,smith2002,watson1982,smith1998}. See the \texttt{asmeconf-sample.bib} file for examples of how to enter your references.
+
+The {\upshape\texttt{asmeconf.bst}} \textsc{Bib}\negthinspace\TeX\ style follows the reference styles posted on ASME's conference web site in mid-2019. Examples for these and many other cases are given in the \texttt{asmeconf-sample.bib} file, which is part of this distribution. Nevertheless, a few comments are necessary.
+
+%% subsubsections are not numbered
+\subsubsection*{DOI, URL, and eprint} Include DOI numbers when they are avaiable. URL's may alternatively be given.
+
+Elementary support for \texttt{eprint} numbers is also included, generating a url at the end of the citation. The \texttt{archive} type may be specified using the macros \texttt{arxiv, googlebooks, hndl, jstore}, or \texttt{pubmed} (e.g., \texttt{archive=hndl}, \textit{without} braces). Both \texttt{eprint} and \texttt{archive} fields \textit{must} be given. Other root urls may be invoked using \verb|archive = {http://another.url.org/}|.
+
+\subsubsection*{Online Sources} A bibliography field \verb|@online{..| is included for citation of online sources, such as web pages. See the examples of use in the \texttt{asmejour-sample.bib} file.
+
+\subsubsection*{Date Accessed} The \verb|urldate={..}| field may be used to provide the date on which a given url was accessed. By default, the text printed will be \texttt{accessed `date',}. The word ``accessed'' may be changed using the \verb|urltype={..}| field.
+
+\subsubsection*{Conference Location and Date} For the entry types \verb|@inproceeedings{..| and \verb|@proceeedings{..|, you may include \verb|venue={..}| and \verb|eventdate={..}| to specify the city and the date of a conference.
+
+
+%%%%%%%%%%%%%%% MORE ON MATH %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Dealing with complicated math in a section or subsection heading:
+%% the optional argument to \section will provide the pdf bookmark
+%% without losing characters or producing warnings/errors.
+%%
+%% In this heading, u is forced to be upright with \mathrm{u}
+%%
+\section[More on math: u\cdot\omega=0]{More on math: $\vec{\mathrm{u}}\cdot\vec{\omega}=0$}\label{sec:moremath}
+
+In most cases, the need for a wide equation can be eliminated by using one of the multiline equation environments defined by \texttt{amsmath}, such as \texttt{align}, \texttt{split}, or \texttt{multline}~\cite{amsmath}. The following equation is set with the \texttt{multline} environment:
+\begin{multline}
+\frac{\partial}{\partial t}\left[\rho\bigl(e + \lvert\vec{u}\rvert^2\big/2\bigr)\right] + \nabla\cdot\left[\rho\bigl(h + \lvert\vec{u}\rvert^2\big/2 \bigr)\vec{u}\right] \\
+ ={}-\nabla \cdot \vec{q} + \rho \vec{u}\cdot\vec{g}+ \frac{\partial}{\partial x_j}\left(d_{ji}u_i\right) + \dot{Q}_v
+\end{multline}
+An example using \texttt{align} appears in Appendix~\ref{appendix:a}.
+
+An alternative solution may be to set large equations into two-column-wide tables or figures. (You can find code online that sets equations across two columns, but the results may be sketchy.)
+
+Math italics are used for roman and greek letters by default. If you want an upright letter in math, you can use the relevant math alphabet, e.g., \verb|\mathrm, \mathbf, \mathsf|:
+\begin{equation}\label{eqn:dw}
+\vec{F} = m \vec{a} \quad\textrm{or}\quad \vec{\mathrm{F}} = m \vec{\mathrm{a}} \quad\textrm{or}\quad \mathbf{F} = m \mathbf{a} \quad\textrm{or}\quad \vec{\mathsf{F}} = m \vec{\mathsf{a}}
+\end{equation}
+To get additional symbols in bold math, you can use the \verb|\bm{..}| macro from the \texttt{bm} package, which is loaded by the class.
+
+The class file also provides upright sans-serif greek letters with \verb|\sfalpha| and similar expressions (e.g.\ $\sfalpha, \sfbeta, \sfgamma, \sfdelta \ldots \bm{\sfalpha, \sfbeta, \sfgamma, \sfdelta \ldots}$), in case they are needed (but note that the \verb|newtxmath| options \verb|frenchmath| and \verb|slantedGreek| also affect how Greek is presented).
+
+\subsection{The \texttt{newtxmath} and \texttt{mathalpha} packages~\cite{sharpe1,sharpe2}} The \texttt{newtxmath} package~\cite{sharpe1}, loaded by default, includes a large number of options for mathematics. Most options can be called as options to \verb|\documentclass|. For example, the \texttt{upint} option of \texttt{newtxmath} selects upright integral signs (rather than slanted integral signs):
+\begin{quote}
+\verb|\documentclass[upint]{asmeconf}|.
+\end{quote}
+These math options are discussed further in the \texttt{asmejour-template.tex} file.
+
+In addition, many options for calligraphic, script, and fraktur fonts are available as options to the \texttt{mathalfa} package, which is also loaded. These may be invoked, for example, as
+\begin{quote}
+\verb|\documentclass[mathalfa=cal=euler]{asmeconf}|
+\end{quote}
+which selects the Euler font for \verb|\mathcal| (this is our default). To find all the font options, refer to the \texttt{mathalfa} package documentation \cite{sharpe2}.
+
+The typewriter font loaded is \texttt{inconsolata} (which is sans serif), as suggested by the \texttt{newtx} package documentation. The class is not set up for use with the \texttt{fontspec} or \texttt{unicode-math} packages.
+
+
+%%%%%%%%%%%%%%% begin two column table %%%%%%%%%%%%%%%%%%
+\begin{table*}[t]
+\caption{A table spanning two columns}\label{tab:3}%
+\centering{%
+\begin{tabular*}{0.8\textwidth}{@{\hspace*{1.5em}}@{\extracolsep{\fill}}ccc!{\hspace*{3.em}}ccc@{\hspace*{1.5em}}}
+\toprule
+\multicolumn{1}{@{\hspace*{1.5em}}c}{$x$\rule{0pt}{11pt}} &
+\multicolumn{1}{c}{$\textrm{erf}(x)$} &
+\multicolumn{1}{c!{\hspace*{3.em}}}{$\textrm{erfc}(x)$} &
+\multicolumn{1}{c}{$x$} &
+\multicolumn{1}{c}{$\textrm{erf}(x)$} &
+\multicolumn{1}{c@{\hspace*{1.5em}}}{$\textrm{erfc}(x)$} \\ \midrule
+0.00 & 0.00000 & 1.00000 & 1.10 & 0.88021 & 0.11980\rule{0pt}{11pt} \\
+0.05 & 0.05637 & 0.94363 & 1.20 & 0.91031 & 0.08969 \\
+0.10 & 0.11246 & 0.88754 & 1.30 & 0.93401 & 0.06599 \\
+0.15 & 0.16800 & 0.83200 & 1.40 & 0.95229 & 0.04771 \\
+0.20 & 0.22270 & 0.77730 & 1.50 & 0.96611 & 0.03389 \\
+0.30 & 0.32863 & 0.67137 & 1.60 & 0.97635 & 0.02365 \\
+0.40 & 0.42839 & 0.57161 & 1.70 & 0.98379 & 0.01621 \\
+0.50 & 0.52050 & 0.47950 & 1.80 & 0.98909 & 0.01091 \\
+0.60 & 0.60386 & 0.39614 & 1.82\makebox[0pt][l]{14} & 0.99000 & 0.01000 \\
+0.70 & 0.67780 & 0.32220 & 1.90 & 0.99279 & 0.00721 \\
+0.80 & 0.74210 & 0.25790 & 2.00 & 0.99532 & 0.00468 \\
+0.90 & 0.79691 & 0.20309 & 2.50 & 0.99959 & 0.00041 \\
+1.00 & 0.84270 & 0.15730 & 3.00 & 0.99998 & 0.00002 \\[2pt]
+\bottomrule\end{tabular*}
+}
+\end{table*}
+
+%%%%%%%%%%%%%%%% end two column table %%%%%%%%%%%%%%%%%%%
+
+
+
+\section{Conclusion}
+Provide a brief conclusion (3-4 lines).
+
+\section*{Acknowledgment}
+Place any acknowledgments here.
+
+
+
+%%% REFERENCES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Put your references into your .bib file in the usual way. Run latex once, bibtex once, then latex twice.
+%% This specific .bst style allows: venue = {location of conference}, and confmonth = {Month days}
+%%
+
+\nocite{*} %% <=== delete this line unless you want to typeset the entire contents of your .bib file.
+
+\bibliographystyle{asmeconf} %% .bst file following ASME conference format. Do not change.
+\bibliography{asmeconf-sample} %% <=== change this to name of your bib file
+
+
+
+
+%%% APPENDICES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\appendix
+
+%% Note that appendices will be "numbered" A, B, C, ... etc. Use \section, not \section*
+%% Equations should be numbered sequentially following those in the paper. Don't reset the equation counter.
+
+%% Here we use the optional argument for the pdf bookmark.
+\section[The vector product A\times B]{The vector product $\vec{A}\times\vec{B}$}\label{appendix:a}
+This is just a brief illustration of an appendix, showing numbering of the appendix and equations. Equations are numbered
+consecutively, following those in the paper.
+\begin{align}
+\frac{d\Gamma}{dt} &{}= \int_{\mathcal{C}} \frac{D\mathbf{u}}{Dt} \cdot d\mathbf{r}\\
+ &{}= \iint_{\mathcal{S}} \nabla \times \frac{D\mathbf{u}}{Dt} \cdot d\mathbf{A}\\
+ &{}= \iint_{\mathcal{S}} \nabla p \times \nabla \left( \frac{1}{\rho}\right) \cdot d\mathbf{A}
+\end{align}
+
+
+\section{Option to use an author grid}\label{appendix:b}
+
+ASME's most recent templates place author names inline, with affiliations for all authors in rows below. This style is the
+default for this template.
+
+The historical style of authors with affiliation in a grid of blocks may be invoked with
+the option [\texttt{oldauthors}]. When using this form, the author names and addresses should be entered as below:
+
+\smallskip
+\noindent\verb|\SetAuthorBlock{Name\JointFirstAuthor}{%|
+ \hbox{}\hfil\verb|Institution \\ City, State}|
+\verb|\SetAuthorBlock{Name\JointFirstAuthor}{%|
+ \hbox{}\hfil\verb|Institution \\ City, Country}|
+\verb|\SetAuthorBlock{Name, Name}{%|\hfil\hbox{}
+ \noindent\hbox{}\hfil\verb|Institution \\ City, Country}|
+\verb|\SetAuthorBlock{\CorrespondingAuthor{John Lienhard%|
+ \hbox{}\hfil\verb|}{lienhard@mit.edu}}{Institution \\ City, State}|
+
+%% see after end document for usable code if you go this route.
+\end{document}
+
+
+% Can also put multiple emails and use command more than once for multiple corresponding authors.
+% Change to your name[s] and addresses, in the desired order of authors. Up to nine author blocks.
+% Note usage below for joint first authors and for corresponding author.
+% First name, middle initial, last name
+% Use title case (upper and lower case letters)
+% (Most of the example names below are not real people, just very common names.)
+
+\SetAuthorBlock{Luis Hern\'{a}ndez\JointFirstAuthor}{Institution or Company Name, City, State}
+\SetAuthorBlock{Maria Silva\JointFirstAuthor}{Institution or Company Name, City, Province, Canada}
+
+\SetAuthorBlock{Henry Tudor, Catherine Parr}{Hampton Court Palace \\ Richmond, England}
+\SetAuthorBlock{Jinsoo Kim}{Institution or Company Name, City, Country}
+\SetAuthorBlock{Yusuf Yilmaz}{Institution or Company Name, City, Country}
+
+% Can omit second argument of \CorrespondingAuthor if putting email into address
+% i.e., can just use \CorrespondingAuthor{name}.
+% Can also put multiple emails and use command more than once for multiple corresponding authors.
+
+\SetAuthorBlock{\CorrespondingAuthor{John H.\ Lienhard V}{lienhard@mit.edu}}{%
+Massachusetts Institute of Technology \\ Cambridge, MA}
+
+
diff --git a/macros/latex/contrib/asmeconf/asmeconf.bst b/macros/latex/contrib/asmeconf/asmeconf.bst
new file mode 100644
index 0000000000..961645f7fe
--- /dev/null
+++ b/macros/latex/contrib/asmeconf/asmeconf.bst
@@ -0,0 +1,1621 @@
+%%%%%
+%%%%% *** This .bst produces the reference format for ASME conference papers. ***
+%%%%% *** Follows the examples given on ASME's conference web pages in early 2019. ***
+%%%%% *** https://www.asme.org/shop/proceedings/conference-publications/references ***
+%%%%% *** The examples given by ASME do not cover all possibilities ***
+%%%%%
+%%%%% This file is version 1.1 dated 2019/07/07
+%%%%%
+%%%%% Author: John H. Lienhard V
+%%%%% Department of Mechanical Engineering
+%%%%% Massachusetts Institute of Technology
+%%%%% Cambridge, MA 02139-4307 USA
+%%%%%
+%%%%% The source files used are described below. The resultant bst has been edited to improve
+%%%%% conformance to ASME specifications. Two new fields have been introduced for ASME
+%%%%% conference papers:
+%%%%%
+%%%%% venue = {city of conference},
+%%%%% eventdate = {month, day[s] on which conference was held}, %% called confmonth in version 1.0
+%%%%%
+%%%%% This approach leaves the address field as publisher's address,
+%%%%% and it leaves the notes field open for other uses.
+%%%%%
+%%%%% Added fields: eventdate, urldate, urltype, venue
+%%%%% Added: @online{...} for web publications (and aliased it to @www and @electronic)
+%%%%% Added: urlprefix = {}, format.web.urldate, bbl.urldate; urltype field changes "accessed" to something else.
+%%%%% Added: venue and eventdate to @inproceedings
+%%%%%
+%%%%% Feel free to edit this file to suit your own needs, but please make note of changes in this header.
+%%%%%
+%%=========================================================
+%% LICENSE:
+%% This file is a derivative work from the generated file, as envisioned by the LaTeX Project Public License.
+%%
+%% Copyright (c) 2019 John 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.
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This is file `asmeconf.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% merlin.mbs (with options: `seq-no,nm-revf,ed-rev,jnrlst,dt-jnl,yr-par,xmth,yrp-col,tit-qq,atit-u,thtit-a,vnum-nr,volp-blk,jdt-pc,jwdpg,pp-last,jwdvol,num-xser,numser,jnm-x,pre-pub,doi,edparc,in-x,pp,ed,abr,ednx,ord,and-xcom,etal-xc,revdata,eprint,url,url-blk,em-it,nfss,')
+%% ----------------------------------------
+%% *** This .bst produces the reference format for ASME conference papers. ***
+%%
+%% Copyright 1994-2011 Patrick W Daly
+%%
+ % ===============================================================
+ % IMPORTANT NOTICE:
+ % This bibliographic style (bst) file has been generated from one or
+ % more master bibliographic style (mbs) files, listed above.
+ %
+ % This generated file can be redistributed and/or modified under the terms
+ % of the LaTeX Project Public License Distributed from CTAN
+ % archives in directory macros/latex/base/lppl.txt; either
+ % version 1 of the License, or any later version.
+ % ===============================================================
+ % Name and version information of the main mbs file:
+ % \ProvidesFile{merlin.mbs}[2011/11/18 4.33 (PWD, AO, DPC)]
+ % For use with BibTeX version 0.99a or later
+ %-------------------------------------------------------------------
+ % This bibliography style file is intended for texts in ENGLISH
+ % This is a numerical citation style, and as such is standard LaTeX.
+ % It requires no extra package to interface to the main text.
+ % The form of the \bibitem entries is
+ % \bibitem{key}...
+ % Usage of \cite is as follows:
+ % \cite{key} ==>> [#]
+ % \cite[chap. 2]{key} ==>> [#, chap. 2]
+ % where # is a number determined by the ordering in the reference list.
+ % The order in the reference list is that by which the works were originally
+ % cited in the text, or that in the database.
+ %---------------------------------------------------------------------
+
+ENTRY
+ { address
+ archive
+ author
+ booktitle
+ chapter
+ collaboration
+ doi
+ edition
+ editor
+ eid
+ eprint
+ eventdate
+ howpublished
+ institution
+ journal
+ key
+ month
+ note
+ number
+ numpages
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ url
+ urldate
+ urltype
+ venue
+ volume
+ year
+ }
+ {}
+ { label }
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+STRINGS { s t}
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+FUNCTION {add.blank}
+{ " " * before.all 'output.state :=
+}
+
+FUNCTION {date.block}
+{
+ ":" *
+ add.blank
+}
+
+FUNCTION {conf.date.block}
+{ pages empty$
+'skip$
+ {
+ ":" *
+ add.blank
+ }
+ if$
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+FUNCTION {non.stop}
+{ duplicate$
+ "}" * add.period$
+ #-1 #1 substring$ "." =
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "\textit{" swap$ * "}" * }
+ if$
+}
+FUNCTION {tie.or.space.prefix}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$
+}
+
+FUNCTION {capitalize}
+{ "u" change.case$ "t" change.case$ }
+
+FUNCTION {space.word}
+{ " " swap$ * " " * }
+ % Here are the language-specific definitions for explicit words.
+ % Each function has a name bbl.xxx where xxx is the English word.
+ % The language selected here is ENGLISH
+FUNCTION {bbl.and}
+{ "and"}
+
+FUNCTION {bbl.etal}
+{ "et~al." }
+
+FUNCTION {bbl.editors}
+{ "eds." }
+
+FUNCTION {bbl.editor}
+{ "ed." }
+
+FUNCTION {bbl.edby}
+{ "edited by" }
+
+FUNCTION {bbl.edition}
+{ "ed." }
+
+FUNCTION {bbl.volume}
+{ "Vol." }
+
+FUNCTION {bbl.of}
+{ "of" }
+
+FUNCTION {bbl.number}
+{ "No." }
+
+FUNCTION {bbl.nr}
+{ "No." }
+
+FUNCTION {bbl.in}
+{ "in" }
+
+FUNCTION {bbl.pages}
+{ "pp." }
+
+FUNCTION {bbl.page}
+{ "p." }
+
+FUNCTION {bbl.eidpp}
+{ "pages" }
+
+FUNCTION {bbl.chapter}
+{ "Chap." }
+
+FUNCTION {bbl.techrep}
+{ "Technical Report" }
+
+FUNCTION {bbl.mthesis}
+{ "Master's thesis" }
+
+FUNCTION {bbl.phdthesis}
+{ "Ph.D. thesis" }
+
+FUNCTION {bbl.first}
+{ "1st" }
+
+FUNCTION {bbl.second}
+{ "2nd" }
+
+FUNCTION {bbl.third}
+{ "3rd" }
+
+FUNCTION {bbl.fourth}
+{ "4th" }
+
+FUNCTION {bbl.fifth}
+{ "5th" }
+
+FUNCTION {bbl.st}
+{ "st" }
+
+FUNCTION {bbl.nd}
+{ "nd" }
+
+FUNCTION {bbl.rd}
+{ "rd" }
+
+FUNCTION {bbl.th}
+{ "th" }
+
+FUNCTION {bbl.urldate}
+ { "accessed" }
+
+
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"Mar."}
+
+MACRO {apr} {"Apr."}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"Jun."}
+
+MACRO {jul} {"Jul."}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sep."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+FUNCTION {eng.ord}
+{ duplicate$ "1" swap$ *
+ #-2 #1 substring$ "1" =
+ { bbl.th * }
+ { duplicate$ #-1 #1 substring$
+ duplicate$ "1" =
+ { pop$ bbl.st * }
+ { duplicate$ "2" =
+ { pop$ bbl.nd * }
+ { "3" =
+ { bbl.rd * }
+ { bbl.th * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+MACRO {arxiv} {"https://arxiv.org/abs/"}
+
+MACRO {googlebooks} {"http://books.google.com/books?id="}
+
+MACRO {hndl} {"http://hdl.handle.net/"}
+
+MACRO {jstor} {"http://www.jstor.org/stable/"}
+
+MACRO {pubmed} {"http://www.ncbi.nlm.nih.gov/pubmed/"}
+
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+FUNCTION {bibinfo.check}
+{ swap$
+ duplicate$ missing$
+ {
+ pop$ pop$
+ ""
+ }
+ { duplicate$ empty$
+ {
+ swap$ pop$
+ }
+ { swap$
+ pop$
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {bibinfo.warn}
+{ swap$
+ duplicate$ missing$
+ {
+ swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
+ ""
+ }
+ { duplicate$ empty$
+ {
+ swap$ "empty " swap$ * " in " * cite$ * warning$
+ }
+ { swap$
+ pop$
+ }
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.eprint}
+{ eprint duplicate$ empty$
+ 'skip$
+ { "\eprint"
+ archive empty$
+ { "there's an eprint but no archive in " cite$ * warning$ }
+ { "[" * archive * "]" * }
+ if$
+ "{" * swap$ * "}" *
+ }
+ if$
+}
+
+
+FUNCTION {format.web.urldate}
+{ urldate empty$
+ {""}
+ {urldate "urldate" bibinfo.check
+ urltype duplicate$ empty$
+ { pop$ bbl.urldate }
+ 'skip$
+ if$
+ "urltype" bibinfo.check
+ swap$ duplicate$ empty$
+ { pop$ "t" change.case$ }
+ { tie.or.space.prefix * * }
+ if$
+ ", " *
+ }
+ if$
+}
+
+FUNCTION {format.url}
+{
+ url
+ duplicate$ empty$
+ { pop$ "" }
+ { "\urlprefix\url{" swap$ * "}" *
+ format.web.urldate swap$ *
+ }
+ if$
+}
+INTEGERS { nameptr namesleft numnames }
+
+
+STRINGS { bibinfo}
+
+FUNCTION {format.names}
+{ 'bibinfo :=
+ duplicate$ empty$ 'skip$ {
+ 's :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr
+ "{vv~}{ll}{, ff}{, jj}"
+ format.name$
+ bibinfo bibinfo.check
+ 't :=
+ nameptr #1 >
+ {
+ namesleft #1 >
+ { ", " * t * }
+ {
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ t "others" =
+ {
+ " " * bbl.etal *
+ }
+ {
+ bbl.and
+ space.word * t *
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ } if$
+}
+FUNCTION {format.names.ed}
+{
+ format.names
+}
+FUNCTION {format.authors}
+{ author "author" format.names
+ duplicate$ empty$ 'skip$
+ { collaboration "collaboration" bibinfo.check
+ duplicate$ empty$ 'skip$
+ { " (" swap$ * ")" * }
+ if$
+ *
+ }
+ if$
+}
+FUNCTION {get.bbl.editor}
+{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
+
+FUNCTION {format.editors}
+{ editor "editor" format.names duplicate$ empty$ 'skip$
+ {
+ "," *
+ " " *
+ get.bbl.editor
+ "(" swap$ * ")" *
+ *
+ }
+ if$
+}
+
+FUNCTION {format.doi}
+{ doi empty$
+ { "" }
+ {
+ new.block
+ "\doi{" doi * "}" *
+ }
+ if$
+}
+FUNCTION {format.note}
+{
+ note empty$
+ { "" }
+ { note #1 #1 substring$
+ duplicate$ "{" =
+ 'skip$
+ { output.state mid.sentence =
+ { "t" }
+ { "u" }
+ if$
+ change.case$
+ }
+ if$
+ note #2 global.max$ substring$ * "note" bibinfo.check
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title
+ "title" bibinfo.check
+ duplicate$ empty$ 'skip$
+ {
+ "\enquote{" swap$ *
+ add.period$ "}" *
+ }
+ if$
+}
+FUNCTION {output.bibitem}
+{ newline$
+ "\bibitem{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {n.dashify}
+{
+ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION {word.in}
+{ "" }
+
+FUNCTION {format.date}
+{
+ ""
+ duplicate$ empty$
+ year "year" bibinfo.check duplicate$ empty$
+ { swap$ 'skip$
+ { "there's a month but no year in " cite$ * warning$ }
+ if$
+ *
+ }
+ { swap$ 'skip$
+ {
+ swap$
+ " " * swap$
+ }
+ if$
+ *
+ }
+ if$
+ duplicate$ empty$
+ 'skip$
+ {
+ before.all 'output.state :=
+ " (" swap$ * ")" *
+ }
+ if$
+}
+FUNCTION{format.year}
+{ year "year" bibinfo.check duplicate$ empty$
+ { "empty year in " cite$ *
+ warning$
+ }
+ {
+ "(" swap$ * ")" *
+ }
+ if$
+}
+
+FUNCTION{format.thesis.year}
+{ year "year" bibinfo.check duplicate$ empty$
+ { "empty year in " cite$ *
+ warning$
+ }
+ {
+ }
+ if$
+}
+
+FUNCTION{format.techrep.year}
+{ year "year" bibinfo.check duplicate$ empty$
+ { "empty year in " cite$ *
+ warning$
+ }
+ {
+ }
+ if$
+}
+
+FUNCTION {format.btitle}
+{ title "title" bibinfo.check
+ duplicate$ empty$ 'skip$
+ {
+ emphasize
+ }
+ if$
+}
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { bbl.volume volume tie.or.space.prefix
+ "volume" bibinfo.check * *
+ series "series" bibinfo.check
+ duplicate$ empty$ 'pop$
+ { swap$ bbl.of space.word * swap$
+ emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { series empty$
+ { number "number" bibinfo.check }
+ { output.state mid.sentence =
+ { bbl.number }
+ { bbl.number capitalize }
+ if$
+ number tie.or.space.prefix "number" bibinfo.check * *
+ bbl.in space.word *
+ series "series" bibinfo.check *
+ }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+FUNCTION {is.num}
+{ chr.to.int$
+ duplicate$ "0" chr.to.int$ < not
+ swap$ "9" chr.to.int$ > not and
+}
+
+FUNCTION {extract.num}
+{ duplicate$ 't :=
+ "" 's :=
+ { t empty$ not }
+ { t #1 #1 substring$
+ t #2 global.max$ substring$ 't :=
+ duplicate$ is.num
+ { s swap$ * 's := }
+ { pop$ "" 't := }
+ if$
+ }
+ while$
+ s empty$
+ 'skip$
+ { pop$ s }
+ if$
+}
+
+FUNCTION {convert.edition}
+{ extract.num "l" change.case$ 's :=
+ s "first" = s "1" = or
+ { bbl.first 't := }
+ { s "second" = s "2" = or
+ { bbl.second 't := }
+ { s "third" = s "3" = or
+ { bbl.third 't := }
+ { s "fourth" = s "4" = or
+ { bbl.fourth 't := }
+ { s "fifth" = s "5" = or
+ { bbl.fifth 't := }
+ { s #1 #1 substring$ is.num
+ { s eng.ord 't := }
+ { edition 't := }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ t
+}
+
+FUNCTION {format.edition}
+{ edition duplicate$ empty$ 'skip$
+ {
+ convert.edition
+ output.state mid.sentence =
+ { "l" }
+ { "t" }
+ if$ change.case$
+ "edition" bibinfo.check
+ " " * bbl.edition *
+ }
+ if$
+}
+INTEGERS { multiresult }
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+FUNCTION {format.pages}
+{ pages duplicate$ empty$ 'skip$
+ { duplicate$ multi.page.check
+ {
+ bbl.pages swap$
+ n.dashify
+ }
+ {
+ bbl.page swap$
+ }
+ if$
+ tie.or.space.prefix
+ "pages" bibinfo.check
+ * *
+ }
+ if$
+}
+
+FUNCTION {format.journal.pages}
+{ pages duplicate$ empty$ 'pop$
+ { swap$ duplicate$ empty$
+ { pop$ pop$ format.pages }
+ {
+ " " *
+ format.year * ": " *
+ swap$
+ n.dashify
+ pages multi.page.check
+ 'bbl.pages
+ 'bbl.page
+ if$
+ swap$ tie.or.space.prefix
+ "pages" bibinfo.check
+ * *
+ *
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {format.journal.eid}
+{ eid "eid" bibinfo.check
+ duplicate$ empty$ 'pop$
+ { swap$ duplicate$ empty$ 'skip$
+ {
+ " " *
+ }
+ if$
+ swap$ *
+ numpages empty$ 'skip$
+ { bbl.eidpp numpages tie.or.space.prefix
+ "numpages" bibinfo.check * *
+ " (" swap$ * ")" * *
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null
+ duplicate$ empty$ 'skip$
+ {
+ bbl.volume swap$ tie.or.space.prefix
+ "volume" bibinfo.check
+ * *
+ }
+ if$
+ number "number" bibinfo.check duplicate$ empty$ 'skip$
+ {
+ swap$ duplicate$ empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ swap$
+ ", " bbl.nr * number tie.or.space.prefix pop$ * swap$ *
+ }
+ if$ *
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ { "" }
+ { type empty$
+ { bbl.chapter }
+ { type "l" change.case$
+ "type" bibinfo.check
+ }
+ if$
+ chapter tie.or.space.prefix
+ "chapter" bibinfo.check
+ * *
+ }
+ if$
+}
+
+FUNCTION {format.booktitle}
+{
+ booktitle "booktitle" bibinfo.check
+ emphasize
+}
+FUNCTION {format.in.ed.booktitle}
+{ format.booktitle duplicate$ empty$ 'skip$
+ {
+ editor "editor" format.names.ed duplicate$ empty$ 'pop$
+ {
+ "" *
+ " " *
+ get.bbl.editor
+ "(" swap$ * ") " *
+ * swap$
+ * }
+ if$
+ word.in swap$ *
+ }
+ if$
+}
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+FUNCTION {format.thesis.type}
+{ type duplicate$ empty$
+ 'pop$
+ { swap$ pop$
+ "t" change.case$ "type" bibinfo.check
+ }
+ if$
+}
+FUNCTION {format.tr.number}
+{ number "number" bibinfo.check
+ type duplicate$ empty$
+ { pop$ bbl.techrep " " * bbl.nr * }
+ 'skip$
+ if$
+ "type" bibinfo.check
+ swap$ duplicate$ empty$
+ { pop$ "t" change.case$ }
+ { tie.or.space.prefix * * }
+ if$
+}
+FUNCTION {format.article.crossref}
+{
+ key duplicate$ empty$
+ { pop$
+ journal duplicate$ empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref * warning$ }
+ { "journal" bibinfo.check emphasize word.in swap$ * }
+ if$
+ }
+ { word.in swap$ * " " *}
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+ "editor" bibinfo.check
+ editor num.names$ duplicate$
+ #2 >
+ { pop$
+ "editor" bibinfo.check
+ " " * bbl.etal
+ *
+ }
+ { #2 <
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ {
+ "editor" bibinfo.check
+ " " * bbl.etal
+ *
+ }
+ {
+ bbl.and space.word
+ * editor #2 "{vv~}{ll}" format.name$
+ "editor" bibinfo.check
+ *
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {format.book.crossref}
+{ volume duplicate$ empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ pop$ word.in
+ }
+ { bbl.volume
+ capitalize
+ swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { series emphasize * }
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.incoll.inproc.crossref}
+{
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { format.booktitle duplicate$ empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ }
+ { word.in swap$ * }
+ if$
+ }
+ { word.in key * " " *}
+ if$
+ }
+ { word.in format.crossref.editor * " " *}
+ if$
+ " \cite{" * crossref * "}" *
+}
+FUNCTION {format.org.or.pub}
+{ 't :=
+ ""
+ address empty$ t empty$ and
+ 'skip$
+ {
+ t empty$
+ { address "address" bibinfo.check *
+ }
+ { t *
+ address empty$
+ 'skip$
+ { ", " * address "address" bibinfo.check * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+FUNCTION {format.publisher.address}
+{ publisher "publisher" bibinfo.warn format.org.or.pub
+}
+
+FUNCTION {format.organization.address}
+{ organization "organization" bibinfo.check format.org.or.pub
+}
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ {
+ journal
+ "journal" bibinfo.check
+ emphasize
+ "journal" output.check
+ add.blank
+ format.vol.num.pages output
+ }
+ { format.article.crossref output.nonnull
+ }
+ if$
+ eid empty$
+ { format.journal.pages }
+ { format.journal.eid }
+ if$
+ format.doi output
+ new.block
+ format.eprint output
+ format.url output
+ new.block
+ format.note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check
+ add.blank
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.edition output
+ new.block
+ crossref missing$
+ { format.bvolume output
+ new.block
+ new.sentence
+ format.number.series output
+ format.publisher.address output
+ }
+ {
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.date "year" output.check
+ format.doi output
+ new.block
+ format.eprint output
+ format.url output
+ new.block
+ format.note output
+ fin.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ new.block
+ howpublished "howpublished" bibinfo.check output
+ address "address" bibinfo.check output
+ format.date output
+ format.doi output
+ new.block
+ format.eprint output
+ format.url output
+ new.block
+ format.note output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.edition output
+ new.block
+ crossref missing$
+ {
+ format.number.series output
+ format.publisher.address output
+ format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ new.block
+ new.sentence
+ }
+ {
+ format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.date "year" output.check
+ date.block
+ format.pages "pages" output.check
+ format.doi output
+ new.block
+ format.eprint output
+ format.url output
+ new.block
+ format.note output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.edition output
+ format.number.series output
+ format.bvolume output
+ format.chapter.pages output
+ new.sentence
+ format.publisher.address output
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ format.date "year" output.check
+ conf.date.block
+ format.pages "pages" output.check
+ format.doi output
+ new.block
+ format.eprint output
+ format.url output
+ new.block
+ format.note output
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ new.sentence
+ format.number.series output
+ conf.date.block
+ format.pages "pages" output.check
+ new.sentence
+ venue output
+ eventdate output
+ format.thesis.year "year" output.check
+ new.sentence
+ publisher empty$
+ { format.organization.address output }
+ { organization "organization" bibinfo.check output
+ format.publisher.address output
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ }
+ if$
+ format.doi output
+ new.block
+ format.eprint output
+ format.url output
+ new.block
+ format.note output
+ fin.entry
+}
+FUNCTION {conference} { inproceedings }
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization "organization" bibinfo.check
+ duplicate$ empty$ 'pop$
+ { output
+ address "address" bibinfo.check output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.edition output
+ new.block
+ author empty$
+ { organization empty$
+ {
+ address new.block.checka
+ address "address" bibinfo.check output
+ }
+ 'skip$
+ if$
+ }
+ {
+ organization address new.block.checkb
+ organization "organization" bibinfo.check output
+ address "address" bibinfo.check output
+ }
+ if$
+ format.date output
+ format.doi output
+ new.block
+ format.eprint output
+ format.url output
+ new.block
+ format.note output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title
+ "title" output.check
+ new.block
+ bbl.mthesis format.thesis.type output.nonnull
+ school "school" bibinfo.warn output
+ address "address" bibinfo.check output
+ new.block
+ format.thesis.year "year" output.check
+ format.doi output
+ new.block
+ format.eprint output
+ format.url output
+ new.block
+ format.note output
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished "howpublished" bibinfo.check output
+ format.date output
+ format.doi output
+ new.block
+ format.eprint output
+ format.url output
+ new.block
+ format.note output
+ fin.entry
+ empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title
+ "title" output.check
+ new.block
+ bbl.phdthesis format.thesis.type output.nonnull
+ school "school" bibinfo.warn output
+ address "address" bibinfo.check output
+ new.block
+ format.thesis.year "year" output.check
+ format.doi output
+ new.block
+ format.eprint output
+ format.url output
+ new.block
+ format.note output
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization "organization" bibinfo.check output
+ }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ editor empty$
+ { publisher empty$
+ { format.number.series output }
+ {
+ new.sentence
+ format.number.series output
+ format.publisher.address output
+ }
+ if$
+ }
+ { publisher empty$
+ {
+ new.sentence
+ format.number.series output
+ format.organization.address output }
+ {
+ new.sentence
+ format.number.series output
+ organization "organization" bibinfo.check output
+ format.publisher.address output
+ }
+ if$
+ }
+ if$
+ format.date "year" output.check
+ format.doi output
+ new.block
+ format.eprint output
+ format.url output
+ new.block
+ format.note output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title
+ "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" bibinfo.warn output
+ address "address" bibinfo.check output
+ new.block
+ format.techrep.year "year" output.check
+ format.doi output
+ new.block
+ format.eprint output
+ format.url output
+ new.block
+ format.note output
+ fin.entry
+}
+
+FUNCTION {online}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ format.title
+ "title" output.check
+ new.block
+ organization "organization" bibinfo.warn output
+ address "address" bibinfo.check output
+ format.date "year" output.check
+ format.doi output
+ format.note output
+ format.eprint output
+ format.url "url" bibinfo.warn output
+ fin.entry
+}
+
+FUNCTION {electronic} { online }
+
+FUNCTION {www} { online }
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ format.date output
+ format.doi output
+ new.block
+ format.eprint output
+ format.url output
+ new.block
+ format.note "note" output.check
+ fin.entry
+}
+
+FUNCTION {default.type} { misc }
+READ
+STRINGS { longest.label }
+INTEGERS { number.label longest.label.width }
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+EXECUTE {initialize.longest.label}
+ITERATE {longest.label.pass}
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" *
+ write$ newline$
+ "\newcommand{\enquote}[1]{``#1''}"
+ write$ newline$
+ "\providecommand{\url}[1]{\texttt{#1}}"
+ write$ newline$
+ "\providecommand{\urlprefix}{URL }"
+ write$ newline$
+ "\expandafter\ifx\csname urlstyle\endcsname\relax"
+ write$ newline$
+ " \providecommand{\doi}[1]{DOI \discretionary{}{}{}#1}\else"
+ write$ newline$
+ " \providecommand{\doi}{DOI \discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi"
+ write$ newline$
+ "\providecommand{\eprint}[2][]{\urlprefix\href{#1#2}{#1#2}}"
+ write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}
+%% End of customized bst file
+%%
+%% End of file `asmeconf.bst'.
diff --git a/macros/latex/contrib/asmeconf/asmeconf.cls b/macros/latex/contrib/asmeconf/asmeconf.cls
new file mode 100644
index 0000000000..0453465e48
--- /dev/null
+++ b/macros/latex/contrib/asmeconf/asmeconf.cls
@@ -0,0 +1,805 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file provides the asmeconf class for formatting conference papers according to
+%% ASME conference requirements as represented on ASME's conference web pages in March 2019.
+%%
+%% Please note that ASME's journals follow specifications different from ASME conference papers.
+%%
+%% This file is version 1.11 dated 2019/07/08.
+%%
+%% Author: John H. Lienhard V
+%% Department of Mechanical Engineering
+%% Massachusetts Institute of Technology
+%% Cambridge, MA 02139-4307 USA
+%%
+%% This class was designed to approach the following aims:
+%%
+%% 1. Match ASME's font specifications and layout
+%% 2. With the associated amseconf.bst, match ASME's reference formats
+%% 3. Maintain hyperref compatibility for pdf bookmarks and hyperlinks
+%% 4. Use the newtxtext and newtxmath font packages, including relevant features
+%% 5. Provide automatic layout of author names and addresses
+%% 6. Support bold face, sans serif math in headings
+%%
+%% This class is compatible with either pdfLaTeX or LuaLaTeX. The class uses 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;
+%% version 1.5 or higher of newtxmath is recommended.
+%%
+%% This class is not designed for unicode-math or fontspec, given that the ASME conference style is
+%% specific with respect to the font selections.
+%%
+%% Options for the class are described on lines 79-126.
+%%
+%% The class defines two environments: abstract and nomenclature. The latter has an optional argument to
+%% control the space between the entries and the definitions.
+%%
+%% New commands are described in the asmeconf-template.tex file. The \section[]{} command's optional
+%% argument is changed to better support pdf bookmarks, and \section* is modified similarly.
+%%
+%% Commands for entering conference headers, title, abstract, and author names are specific to this class.
+%% See asmeconf-template.tex for details.
+%%
+%%
+% =========================================================
+%%
+%% 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{asmeconf}[2019/07/08 ASME Conference Paper Format]
+
+\LoadClass[twoside,twocolumn,10pt]{article}
+% Two-sided layout not used in ASME's specs, although that's how the papers are printed
+
+
+%%%%%%%%%%%%%% Options for the class %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{ifthen}
+\newboolean{DefaultSups}
+\setboolean{DefaultSups}{true}
+\newboolean{Oldauthors}
+\setboolean{Oldauthors}{false}
+
+
+\RequirePackage{kvoptions}
+\RequirePackage{kvsetkeys}
+\SetupKeyvalOptions{
+ family=asmeconf,
+ prefix=asmeconf@,
+ setkeys=\kvsetkeys,
+}
+
+%%% for mathalfa, we may now 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}
+}
+
+\ProcessKeyvalOptions*
+
+%% option to have colored hyperlinks
+\DeclareOption{colorlinks}{%
+ \PassOptionsToPackage{colorlinks=true}{hyperref}%
+ }
+
+%% option to omit ASME footer
+\DeclareOption{nofoot}{%
+ \AtBeginDocument{\pagestyle{plain}}%
+ }
+
+%% Access many options from newtxmath. See newtx documentation for details.
+\DeclareOption{upint,smallerops,varvw,varg,uprightGreek,slantedGreek,frenchmath,varbb,cmbraces}{\PassOptionsToPackage{}{newtxmath}}
+
+%% Option for slightly larger small capitals font
+\DeclareOption{largesc}{\PassOptionsToPackage{largesc}{newtxtext}}
+
+%% Option not to use latex default superscripts, instead using the newtxtext superiors font [nodefaultsups]
+\ifthenelse{\boolean{DefaultSups}}{\PassOptionsToPackage{defaultsups}{newtxtext}}{\relax}
+
+%% option to use old authors
+\DeclareOption{oldauthors}{%
+ \setboolean{Oldauthors}{true}%
+ }
+
+%% Suppress warnings about mathalfa keys as unused global options
+\DeclareOption*{}
+
+\ProcessOptions \relax
+
+
+%%%%%%%%%%%%% end options %%%%%%%%%%%%%%%%%%%
+
+
+\RequirePackage[letterpaper, left=0.5in, right=0.5in, top=0.5in, bottom = 1.in, footskip=0.5in]{geometry}
+% conforms to ASME required margins
+\setlength\parindent{0.25in}
+\setlength\columnsep{0.38in}
+
+\RequirePackage[sort&compress,numbers]{natbib}
+\setlength\bibsep{1pt plus 1pt minus 1pt}
+
+\RequirePackage{graphicx}
+\RequirePackage[hyperref,fixpdftex,dvipsnames,svgnames,x11names]{xcolor}
+\RequirePackage{xparse}
+\RequirePackage{comment}
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{booktabs}
+\RequirePackage{array}
+
+\RequirePackage{dcolumn} %%% alignment on decimal places
+\newcolumntype{d}[1]{D{.}{.}{#1}}
+
+%%%% FONT related %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{mathtools} % extends amsmath
+\RequirePackage[utf8]{inputenc}
+\RequirePackage[]{newtxtext}
+\RequirePackage[varqu,varl]{inconsolata} % sans typewriter font
+\RequirePackage[]{newtxmath}
+% See package documentation
+
+%% override \textsu if using default superiors
+\ifthenelse{\boolean{DefaultSups}}{\let\textsu\textsuperscript}{\relax}
+
+\RequirePackage[]{mathalfa} % load optional fonts for Calligraphy, Script, etc.
+% See package documentation for capabilities of this package.
+% Option format: mathalfa=cal=euler (etc.)
+
+\RequirePackage{bm} % load after all math to give access to bold math
+
+
+%%%% font size selection %%%%%%%%
+%%%% ASME's specs differ slightly from latex standard article-10 class %%%
+
+\renewcommand\LARGE{\@setfontsize\LARGE{16}{19.2}} %{18}{21.6}} updated 7/7/19 to match new ASME spec.
+ % ...default is 17.28/22 ... used for paper#
+\renewcommand\large{\@setfontsize\large{11}{13.6}} %... default is 12/14 ... used for headings
+
+%\renewcommand\Large{\@setfontsize\Large{14.4}{18}} % same as default
+%\renewcommand\normalsize{\@setfontsize\normalsize{10}{12}} % same as default
+%\renewcommand\small{\@setfontsize\small{9}{11}} % same as default
+%\renewcommand\footnotesize{\@setfontsize\footnotesize{8}{9.5}} % same as default
+
+
+%% This provides sans serif italic and sans serif bold italic math.
+%% It's intended only for use in the figure captions and section heading (recommend \bm{..} elsewhere).
+\DeclareMathVersion{sansbold}
+\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}
+\SetMathAlphabet{\mathsf}{sansbold}{\encodingdefault}{\sfdefault}{b}{it}
+
+%%%%%% footer %%%%%%%
+
+\RequirePackage{fancyhdr}
+\pagestyle{fancy}
+
+\fancyfoot{}
+\fancyfoot[CE,CO]{\thepage}
+\fancyfoot[RO,RE]{Copyright~\textcopyright~\the\year\ by ASME}
+\fancyhead{}
+\renewcommand{\headrulewidth}{0pt}
+\renewcommand{\footrulewidth}{0pt}
+
+%%%%%% foonotes %%%%%%%
+
+\RequirePackage{fnpos}
+\makeFNbottom
+\makeFNbelow
+
+\setlength{\skip\footins}{\baselineskip} % <=== per ASME 1 extra line
+
+\renewcommand{\footnoterule}{%
+ \kern -3pt
+ \hrule width 0.5in height 0.4pt
+ \kern 2pt
+}
+
+%% reduce indentation of footnotes
+\renewcommand\@makefntext[1]{%
+ \noindent\makebox[2ex][r]{\@makefnmark}#1}
+
+
+%%%%%%%%% CAPTION RELATED %%%%%%%%%%%%%%%%
+
+\RequirePackage[labelfont={sf,bf},hypcap=false]{caption}
+\RequirePackage[hypcap=false,list=true]{subcaption}
+
+\DeclareCaptionTextFormat{boldmath}{\mathversion{sansbold}#1}
+\captionsetup[figure]{name=FIGURE,labelfont={sf,bf,small},textfont={sf,bf,small},textformat=boldmath, labelsep=colon}
+\captionsetup[table]{name=TABLE,labelfont={sf,bf,small},textfont={sf,bf,small},textformat=boldmath, labelsep=colon,skip=0.5\baselineskip}
+
+%% This construction avoids a failure of hyperref in relation to uppercase caption
+%% Discussion: https://tex.stackexchange.com/questions/375695/maketextuppercase-inside-table-captions
+\AtBeginDocument{
+ \let\scaption\caption
+ \renewcommand*{\caption}[2][\shortcaption]{\def\shortcaption{#2}\scaption[#1]{\MakeTextUppercase{#2}}}%
+}
+
+
+%%%%%%%%%%%%%%%%%% Section headings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% wish to accommodate hyperref
+
+\RequirePackage{textcase} %% Allows uppercase titles and captions without errors from math and citations
+
+\RequirePackage[raggedright,indentafter]{titlesec}
+
+%% ASME specifies 10 pt headings
+\titleformat{\section}{\mathversion{sansbold}\bfseries\sffamily\raggedright}{\thesection .}{0.5em}{\MakeTextUppercase}
+
+\titleformat{\subsection}{\mathversion{sansbold}\bfseries\sffamily\raggedright}{\thesubsection}{0.5em}{}
+\titleformat{\subsubsection}[runin]{\mathversion{sansbold}\bfseries\sffamily}{\thesubsubsection}{0.5em}{}[.\hspace*{0.5em}]
+
+\titlespacing\section{0pt}{12pt plus 4pt minus 2pt}{1pt plus 1pt minus 1pt} % from 2 pt 2 pt 1 pt, 7/7/19
+\titlespacing\subsection{0pt}{12pt plus 4pt minus 2pt}{0pt plus 2pt minus 1pt}
+\titlespacing\subsubsection{\parindent}{6pt plus 3pt minus 2pt}{0pt plus 2pt minus 1pt} % from 12 4 3, 7/7/19
+
+
+%% Special handling of the appendices
+%% Assumes that appendices are the last content in paper
+\RenewDocumentCommand{\appendix}{}{%
+ \setcounter{section}{0}
+ \pdfbookmark[0]{Appendices}{appendices}
+ \renewcommand\thesection{\Alph{section}}
+ \titleformat{\section}{\mathversion{sansbold}\bfseries\sffamily\raggedright}{APPENDIX \thesection.}{0.5em}{\MakeTextUppercase}
+}
+
+%%%%%%%%%%%%% 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,%%% <=== set true to get colored type, but do so via package options
+ 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 value, {doi:}, to this per ASME specification
+
+
+%% Since \bm may be useful in headings, this fix will reduce frequency with which
+%% alternate pdfstrings must be given in revised section command as \section[pdfstring]{texstring}
+\pdfstringdefDisableCommands{%
+ \def\bm#1#{\relax}%
+}
+
+%% Let's also make sure \NoCaseChange in section headings won't break pdf bookmarks
+\pdfstringdefDisableCommands{%
+ \let\NoCaseChange\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{}%
+}
+
+
+%% Let's also add \footnote to the \TextUppercase exception list, so that footnote text won't be capitalized
+%% if given in section headings
+\RequirePackage{xpatch}
+\xpatchcmd{\@uclcnotmath}{\@nonchangecase\ref}{\@nonchangecase\ref\@nonchangecase\footnote}{}{}
+
+
+%%% 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 special environments %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Abstract environment
+%% \keywords command should be given someplace before the \end{abstract} command.
+
+\providecommand{\@keywords}{\relax}
+
+\DeclareDocumentCommand{\keywords}{m}{%
+ \IfNoValueTF{#1}{%
+ \relax}{%
+ \long\def\@keywords{\par\smallskip\noindent{\bfseries\sffamily Keywords:} #1}%
+ }
+}
+
+\DeclareDocumentEnvironment{abstract}{}{%
+ \section*{Abstract}\itshape%
+ }
+ {\upshape\@keywords%\medskip%
+}
+
+%%%%%%%%%%%% Nomenclature environment %%%%%%%%%%%%%%%%%%
+%%
+%% Increase first optional argument to a dimension > 2em if wide entries cause undesired misalignment of columns.
+%% Second argument can be used to rename, e.g., to List of Symbols.
+%%
+
+\newlength\nomenwidth
+
+%% If second argument of \entry is omitted, will produce an italicized heading (e.g. "Greek letters")
+%%
+\DeclareDocumentCommand{\entry}{m g}{%
+ \IfNoValueTF{#2}{%
+ \item[\itshape#1\hfill]\par\smallskip%
+ }{%
+ \item[#1\hfill]#2%
+ }
+}
+
+
+\DeclareDocumentEnvironment{nomenclature}{O{2em} O{Nomenclature}}{%
+ \setlength\columnsep{2em}
+ \setlength{\nomenwidth}{#1}
+ \section*{#2}
+ \raggedright
+ \begin{list}{}{%
+ \setlength{\itemsep}{0pt}
+ \setlength{\parsep}{\itemsep}
+ \setlength{\labelsep}{1em}%
+ \setlength{\labelwidth}{\nomenwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \addtolength{\leftmargin}{\labelsep}%
+ }%
+}{\end{list}}
+
+
+%%%%%%%%%%%%%%%%% Headers and Title %%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\ConfName}[1]{\long\gdef\@ConfName{#1}}
+\providecommand\@ConfName{\hbox{ }}
+
+\newcommand{\ConfAcronym}[1]{\gdef\@ConfAcronym{#1}}
+\providecommand\@ConfAcronym{\hbox{ }}
+
+\newcommand{\ConfDate}[1]{\gdef\@ConfDate{#1,\space}}
+\providecommand\@ConfDate{\space}
+
+\newcommand{\ConfCity}[1]{\gdef\@ConfCity{#1}}
+\providecommand\@ConfCity{\hbox{ }}
+
+\newcommand{\HeaderConfName}{%
+\parbox{\linewidth}{\raggedleft\bfseries\sffamily%
+\@ConfName\par%
+\MakeTextUppercase{\@ConfAcronym}\par
+\@ConfDate\@ConfCity%
+ }%
+}
+
+\newcommand{\PaperNo}[1]{\gdef\@PaperNo{#1}}
+\providecommand\@PaperNo{\protect\phantom{NO.}}
+
+\newcommand{\paperno}{%
+\vspace*{2\baselineskip}
+\parbox{\linewidth}{\raggedleft\bfseries\sffamily\LARGE%
+\MakeTextUppercase{\@PaperNo}%
+ }%
+}
+
+\newcommand{\PaperTitle}[1]{\gdef\@PaperTitle{#1}}
+\providecommand\@PaperTitle{\hbox{ }}
+
+\newcommand{\papertitle}{%
+\vspace*{3\baselineskip}
+\parbox{\linewidth}{\mathversion{sansbold}\centering{\bfseries\sffamily\large%
+\MakeTextUppercase{\@PaperTitle}\par} %%% <=== extra \par to make leading stick. See adjustment in \MakeTitle
+ }%
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%% Author and affiliation block %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{xcoffins}
+
+%% To maintain compatibility with newtxtext superiors option, if used, save the definition
+\let\savethefootnote\thefootnote
+\let\savemakefnmark\@makefnmark
+
+
+%%%% option to retain original grid layout of authors
+\ifthenelse{\boolean{Oldauthors}}{%
+
+%%%%%%%%%%%%%%%%%%%% Old author layout %%%%%%%%%%%%%%%%%%%%%%%%%
+
+\NewCoffin{\authorblock}
+
+%% Allows for up to nine author groups... if you need more authors, the edits should be obvious
+%% You can put multiple authors above a single affiliation to reduce number of author blocks needed.
+\NewCoffin{\firstrowauthorblock}
+\SetHorizontalCoffin\firstrowauthorblock{}
+\NewCoffin{\secondrowauthorblock}
+\SetHorizontalCoffin\secondrowauthorblock{}
+\NewCoffin{\thirdrowauthorblock}
+\SetHorizontalCoffin\thirdrowauthorblock{}
+
+\newcounter{authorno}
+\setcounter{authorno}{0}
+
+\newlength{\coffinsep} %% horizontal space between coffins
+\setlength{\coffinsep}{0.03\textwidth}
+
+\DeclareDocumentCommand\SetAuthorBlock{m m}{%
+ \addtocounter{authorno}{1}%
+ \SetVerticalCoffin{\authorblock}{0.3\textwidth}{%
+ \centering\sffamily%
+ \textbf{\ignorespaces#1\ignorespaces}\\
+ #2%
+}
+
+\ifnum\value{authorno}=1
+ \JoinCoffins\firstrowauthorblock[r,t]\authorblock[l,t]
+ \else
+ \ifnum\value{authorno}=2
+ \JoinCoffins\firstrowauthorblock[r,t]\authorblock[l,t](\coffinsep,0pt)
+ \else
+ \ifnum\value{authorno}=3
+ \JoinCoffins\firstrowauthorblock[r,t]\authorblock[l,t](\coffinsep,0pt)
+ \fi
+ \fi
+\fi
+\ifnum\value{authorno}=4
+ \JoinCoffins\secondrowauthorblock[r,t]\authorblock[l,t]
+ \else
+ \ifnum\value{authorno}=5
+ \JoinCoffins\secondrowauthorblock[r,t]\authorblock[l,t](\coffinsep,0pt)
+ \else
+ \ifnum\value{authorno}=6
+ \JoinCoffins\secondrowauthorblock[r,t]\authorblock[l,t](\coffinsep,0pt)
+ \fi
+ \fi
+\fi
+\ifnum\value{authorno}=7
+ \JoinCoffins\thirdrowauthorblock[r,t]\authorblock[l,t]
+ \else
+ \ifnum\value{authorno}=8
+ \JoinCoffins\thirdrowauthorblock[r,t]\authorblock[l,t](\coffinsep,0pt)
+ \else
+ \ifnum\value{authorno}=9
+ \JoinCoffins\thirdrowauthorblock[r,t]\authorblock[l,t](\coffinsep,0pt)
+ \fi
+ \fi
+\fi
+}
+
+\DeclareDocumentCommand{\ConstructAuthorBlock}{}{%
+\ifnum\value{authorno}>3
+ \JoinCoffins\firstrowauthorblock[hc,b]\secondrowauthorblock[hc,t](0pt, -1.5\baselineskip)
+\fi
+\ifnum\value{authorno}>6
+ \JoinCoffins\firstrowauthorblock[hc,b]\thirdrowauthorblock[hc,t](0pt, -1.5\baselineskip)
+\fi
+\centerline{\TypesetCoffin\firstrowauthorblock} %% in this instance, \centerline is better than \centering
+}
+
+%% Flag for corresponding author (expecting just one, but if two enter both email addresses and flag both authors)
+\newif\ifCA\CAfalse
+
+% allow for NO email address to be given by omitting second argument
+\DeclareDocumentCommand{\CorrespondingAuthor}{m g}{%
+ \global\CAtrue%
+ \IfNoValueTF{#2}{%
+ \gdef\@CAsep{\relax}
+ \gdef\@CAemail{\relax}
+ }{%
+ \gdef\@CAsep{:\space}
+ \gdef\@CAemail{#2}
+ }
+ \renewcommand*{\thefootnote}{\fnsymbol{footnote}}
+ \ignorespaces#1\ignorespaces\footnotemark[1]%
+}
+
+%% Flag for joint first authors (two or more)
+\newif\ifJA\JAfalse
+
+\DeclareDocumentCommand{\JointFirstAuthor}{}{%
+ \global\JAtrue%
+ \renewcommand*{\thefootnote}{\fnsymbol{footnote}}%
+ \ignorespaces\footnotemark[2]%
+}
+
+%%% otherwise use new compact layout of authors
+}{% i.e., this begins "else"
+
+%%%%%%%%%%%%%%%%%%%%%% New author layout %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\NewCoffin{\AuthorBlock}
+\NewCoffin{\AffiliationBlock}
+\NewCoffin{\AffiliationsBlock}
+
+%% NB: \parbox width to \textwidth (full page) not \linewidth (single column)
+\SetHorizontalCoffin\AffiliationsBlock{}
+\DeclareDocumentCommand{\SetAuthors}{m}{%
+ \SetHorizontalCoffin\AuthorBlock{%
+ \parbox{\textwidth}{\centering\sffamily\bfseries\ignorespaces#1\ignorespaces}%
+ }
+}
+
+
+\def\@makefnmark{\hbox{\@textsuperscript{\sffamily\@thefnmark}}}%
+
+\DeclareDocumentCommand{\SetAffiliation}{m m}{%
+ \SetVerticalCoffin\AffiliationBlock{\textwidth}{%
+ \centering\sffamily\footnotemark[#1]#2\ignorespaces%
+ }
+ \JoinCoffins\AffiliationsBlock[hc,b]\AffiliationBlock[hc,t](0pt,-1pt)
+}
+
+
+%%% flag for corresponding author (usually just one, although you can have two by putting both email addresses
+%%% into field and attaching to both authors -- footnote will only print only the email in the last occurrence)
+
+%% Flag for corresponding author (expecting just one, but if two enter both email addresses and flag both authors)
+\newif\ifCA\CAfalse
+
+% allow for NO email address to be given by omitting second argument
+\DeclareDocumentCommand{\CorrespondingAuthor}{g}{%
+ \ignorespaces$\bm{^\ast}$%
+ \global\CAtrue%
+ \IfNoValueTF{#1}{%
+ \gdef\@CAsep{\relax}
+ \gdef\@CAemail{\relax}
+ }{%
+ \gdef\@CAsep{:\space}
+ \gdef\@CAemail{#1}
+ }
+}
+
+%%% Flag for joint first authors (two or more)
+\newif\ifJA\JAfalse
+
+\DeclareDocumentCommand{\JointFirstAuthor}{}{%
+\global\JAtrue%
+ $\bm{^\dagger}$%
+}
+
+%%% Affiliation mark
+\DeclareDocumentCommand{\affil}{m}{%
+ {\bfseries\footnotemark[#1]}%
+}
+
+%%% to deal with sequential notes as, e.g., "1,*", or "1,2,*" %%%%%%%%%%
+\let\oldaffil\affil
+\newcommand\nextToken\relax
+
+\renewcommand\affil[1]{%
+ \oldaffil{#1}\futurelet\nextToken\isOthernote}
+
+\newcommand\isOthernote{%
+ \ifx\CorrespondingAuthor\nextToken\textsuperscript{\sffamily\bfseries,}%
+ \else%
+ \ifx\JointFirstAuthor\nextToken\textsuperscript{\sffamily\bfseries,}%
+ \else
+ \ifx\affil\nextToken\textsuperscript{\sffamily\bfseries,}%
+ \fi%
+ \fi%
+ \fi%
+ \ignorespaces%
+}
+
+\let\oldCorrespondingAuthor\CorrespondingAuthor
+\renewcommand\CorrespondingAuthor[1]{%
+ \oldCorrespondingAuthor{#1}\futurelet\nextToken\isOthernote}
+
+\let\oldJointFirstAuthor\JointFirstAuthor
+\renewcommand\JointFirstAuthor{%
+ \oldJointFirstAuthor\futurelet\nextToken\isOthernote}
+
+\let\oldfootnote\footnote
+\renewcommand\footnote[1]{%
+ \oldfootnote{#1}\futurelet\nextToken\isOtherfnote}
+
+\newcommand\isOtherfnote{%
+ \ifx\footnote\nextToken\textsu{\mdseries,}%
+ \fi%
+}
+
+%%%
+
+\DeclareDocumentCommand{\SetAuthorBlock}{}{%
+ \let\savethefootnote\thefootnote
+ \JoinCoffins\AuthorBlock[hc,b]\AffiliationsBlock[hc,t](0pt,-\baselineskip)
+ \centerline{\TypesetCoffin\AuthorBlock}
+ \renewcommand*{\thefootnote}{\fnsymbol{footnote}}
+ \ifJA
+ \footnotetext[2]{Joint first authors}
+ \fi
+ \ifCA
+ \footnotetext[1]{Corresponding author:\space\@CAemail}
+ \fi
+ \let\thefootnote\savethefootnote
+}
+
+} %% end ifthenelse for Oldauthors
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%% Make the title and author section
+\DeclareDocumentCommand{\MakeTitlePage}{}{%
+\twocolumn[
+ \begin{@twocolumnfalse}
+ \HeaderConfName
+ \paperno
+ \papertitle
+ \vspace*{2\baselineskip}
+ \ifthenelse{\boolean{Oldauthors}}{%
+ \ConstructAuthorBlock}{%
+ \SetAuthorBlock}
+ \vspace*{3\baselineskip}
+ \end{@twocolumnfalse}
+]
+\let\@makefnmark\savemakefnmark
+\renewcommand*{\thefootnote}{\fnsymbol{footnote}}
+\ifJA
+ \footnotetext[2]{Joint first authors}
+\fi
+\ifCA
+ \footnotetext[1]{Corresponding author\@CAsep \@CAemail}
+\fi
+\let\thefootnote\savethefootnote
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Provide sans serif upright Greek letters, following a suggestion
+%% to the class author by Michael Sharpe (March 2019).
+%% Access sans serif Greek from newtxsf implementation of STIX fonts.
+%%
+
+\DeclareSymbolFont{lettersAB}{U}{ntxsfmia}{m}{it}
+\SetSymbolFont{lettersAB}{bold}{U}{ntxsfmia}{b}{it}
+\DeclareFontSubstitution{U}{ntxsfmia}{m}{it}
+
+\DeclareMathSymbol{\Gammaup}{\mathalpha}{lettersAB}{0}
+\newcommand*{\sfGamma}{\text{\ensuremath\Gammaup}}
+
+\DeclareMathSymbol{\Deltaup}{\mathalpha}{lettersAB}{1}
+\newcommand*{\sfDelta}{\text{\ensuremath\Deltaup}}
+\DeclareMathSymbol{\Thetaup}{\mathalpha}{lettersAB}{2}
+\newcommand*{\sfTheta}{\text{\ensuremath\Thetaup}}
+\DeclareMathSymbol{\Lambdaup}{\mathalpha}{lettersAB}{3}
+\newcommand*{\sfLambda}{\text{\ensuremath\Lambdaup}}
+\DeclareMathSymbol{\Xiup}{\mathalpha}{lettersAB}{4}
+\newcommand*{\sfXi}{\text{\ensuremath\Xiup}}
+\DeclareMathSymbol{\Piup}{\mathalpha}{lettersAB}{5}
+\newcommand*{\sfPi}{\text{\ensuremath\Piup}}
+
+\DeclareMathSymbol{\Sigmaup}{\mathalpha}{lettersAB}{6}
+\newcommand*{\sfSigma}{\text{\ensuremath\Sigmaup}}
+\DeclareMathSymbol{\Upsilonup}{\mathalpha}{lettersAB}{7}
+\newcommand*{\sfUpsilon}{\text{\ensuremath\Upsilonup}}
+\DeclareMathSymbol{\Phiup}{\mathalpha}{lettersAB}{8}
+\newcommand*{\sfPhi}{\text{\ensuremath\Phiup}}
+\DeclareMathSymbol{\Psiup}{\mathalpha}{lettersAB}{9}
+\newcommand*{\sfPsi}{\text{\ensuremath\Psiup}}
+\DeclareMathSymbol{\Omegaup}{\mathalpha}{lettersAB}{10}
+\newcommand*{\sfOmega}{\text{\ensuremath\Omegaup}}
+
+\DeclareMathSymbol{\alphaup}{\mathalpha}{lettersAB}{11}
+\newcommand*{\sfalpha}{\text{\ensuremath\alphaup}}
+\DeclareMathSymbol{\betaup}{\mathalpha}{lettersAB}{12}
+\newcommand*{\sfbeta}{\text{\ensuremath\betaup}}
+\DeclareMathSymbol{\gammaup}{\mathalpha}{lettersAB}{13}
+\newcommand*{\sfgamma}{\text{\ensuremath\gammaup}}
+\DeclareMathSymbol{\deltaup}{\mathalpha}{lettersAB}{14}
+\newcommand*{\sfdelta}{\text{\ensuremath\deltaup}}
+\DeclareMathSymbol{\epsilonup}{\mathalpha}{lettersAB}{15}
+\newcommand*{\sfepsilon}{\text{\ensuremath\epsilonup}}
+
+\DeclareMathSymbol{\zetaup}{\mathalpha}{lettersAB}{16}
+\newcommand*{\sfzeta}{\text{\ensuremath\zetaup}}
+\DeclareMathSymbol{\etaup}{\mathalpha}{lettersAB}{17}
+\newcommand*{\sfeta}{\text{\ensuremath\etaup}}
+\DeclareMathSymbol{\thetaup}{\mathalpha}{lettersAB}{18}
+\newcommand*{\sftheta}{\text{\ensuremath\thetaup}}
+\DeclareMathSymbol{\iotaup}{\mathalpha}{lettersAB}{19}
+\newcommand*{\sfiota}{\text{\ensuremath\iotaup}}
+\DeclareMathSymbol{\kappaup}{\mathalpha}{lettersAB}{20}
+\newcommand*{\sfkappa}{\text{\ensuremath\kappaup}}
+
+\DeclareMathSymbol{\lambdaup}{\mathalpha}{lettersAB}{21}
+\newcommand*{\sflambda}{\text{\ensuremath\lambdaup}}
+\DeclareMathSymbol{\muup}{\mathalpha}{lettersAB}{22}
+\newcommand*{\sfmu}{\text{\ensuremath\muup}}
+\DeclareMathSymbol{\nuup}{\mathalpha}{lettersAB}{23}
+\newcommand*{\sfnu}{\text{\ensuremath\nuup}}
+\DeclareMathSymbol{\xiup}{\mathalpha}{lettersAB}{24}
+\newcommand*{\sfxi}{\text{\ensuremath\xiup}}
+\DeclareMathSymbol{\piup}{\mathalpha}{lettersAB}{25}
+\newcommand*{\sfpi}{\text{\ensuremath\piup}}
+
+\DeclareMathSymbol{\rhoup}{\mathalpha}{lettersAB}{26}
+\newcommand*{\sfrho}{\text{\ensuremath\rhoup}}
+\DeclareMathSymbol{\sigmaup}{\mathalpha}{lettersAB}{27}
+\newcommand*{\sfsigma}{\text{\ensuremath\sigmaup}}
+\DeclareMathSymbol{\tauup}{\mathalpha}{lettersAB}{28}
+\newcommand*{\sftau}{\text{\ensuremath\tauup}}
+\DeclareMathSymbol{\upsilonup}{\mathalpha}{lettersAB}{29}
+\newcommand*{\sfupsilon}{\text{\ensuremath\upsilonup}}
+\DeclareMathSymbol{\phiup}{\mathalpha}{lettersAB}{30}
+\newcommand*{\sfphi}{\text{\ensuremath\phiup}}
+
+\DeclareMathSymbol{\chiup}{\mathalpha}{lettersAB}{31}
+\newcommand*{\sfchi}{\text{\ensuremath\chiup}}
+\DeclareMathSymbol{\psiup}{\mathalpha}{lettersAB}{32}
+\newcommand*{\sfpsi}{\text{\ensuremath\psiup}}
+\DeclareMathSymbol{\omegaup}{\mathalpha}{lettersAB}{33}
+\newcommand*{\sfomega}{\text{\ensuremath\omegaup}}
+
+\DeclareMathSymbol{\varepsilonup}{\mathalpha}{lettersAB}{34}
+\newcommand*{\sfvarepsilon}{\text{\ensuremath\varepsilonup}}
+\DeclareMathSymbol{\varthetaup}{\mathalpha}{lettersAB}{35}
+\newcommand*{\sfvartheta}{\text{\ensuremath\varthetaup}}
+\DeclareMathSymbol{\varomegaup}{\mathalpha}{lettersAB}{36}
+\newcommand*{\sfvaromega}{\text{\ensuremath\varomegaup}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\endinput
+%%
+%% End of file `asmeconf.cls'.
+
diff --git a/macros/latex/contrib/asmeconf/sample-figure-1.pdf b/macros/latex/contrib/asmeconf/sample-figure-1.pdf
new file mode 100644
index 0000000000..f035e74421
--- /dev/null
+++ b/macros/latex/contrib/asmeconf/sample-figure-1.pdf
Binary files differ
diff --git a/macros/latex/contrib/asmeconf/sample-figure-2a.pdf b/macros/latex/contrib/asmeconf/sample-figure-2a.pdf
new file mode 100644
index 0000000000..e02f4c93f8
--- /dev/null
+++ b/macros/latex/contrib/asmeconf/sample-figure-2a.pdf
Binary files differ
diff --git a/macros/latex/contrib/asmeconf/sample-figure-2b.pdf b/macros/latex/contrib/asmeconf/sample-figure-2b.pdf
new file mode 100644
index 0000000000..94dad8d4f6
--- /dev/null
+++ b/macros/latex/contrib/asmeconf/sample-figure-2b.pdf
Binary files differ