summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/asmejour
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/asmejour
Initial commit
Diffstat (limited to 'macros/latex/contrib/asmejour')
-rw-r--r--macros/latex/contrib/asmejour/README.md91
-rw-r--r--macros/latex/contrib/asmejour/asmejour-sample.bib413
-rw-r--r--macros/latex/contrib/asmejour/asmejour-template.pdfbin0 -> 493846 bytes
-rw-r--r--macros/latex/contrib/asmejour/asmejour-template.tex569
-rw-r--r--macros/latex/contrib/asmejour/asmejour.bst1681
-rw-r--r--macros/latex/contrib/asmejour/asmejour.cls678
-rw-r--r--macros/latex/contrib/asmejour/sample-figure-1.pdfbin0 -> 17689 bytes
-rw-r--r--macros/latex/contrib/asmejour/sample-figure-2a.pdfbin0 -> 95556 bytes
-rw-r--r--macros/latex/contrib/asmejour/sample-figure-2b.pdfbin0 -> 91105 bytes
9 files changed, 3432 insertions, 0 deletions
diff --git a/macros/latex/contrib/asmejour/README.md b/macros/latex/contrib/asmejour/README.md
new file mode 100644
index 0000000000..2a040e7a36
--- /dev/null
+++ b/macros/latex/contrib/asmejour/README.md
@@ -0,0 +1,91 @@
+
+ #asmejour: A template for ASME journal papers#
+
+ Version 1.05 dated 2019/08/17.
+
+ ####Overview####
+ This class provides a template to format preprints submitted to ASME journals in the style that
+ is being used in 2019.
+
+ This work is not a publication of ASME itself.
+
+ Files in this distribution are:
+
+ ``` README.md -- this file
+ asmejour.cls -- the class file
+ asmejour.bst -- bibtex style for ASME journal references
+ asmejour-template.tex -- a latex template/example for this class
+ asmejour-template.pdf -- documentation/sample paper
+ asmejour-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:
+
+- closely approximate ASME's fonts and layout, including author/title/abstract design
+
+- follow today's ASME format for citations
+
+- support hyperref package (hyperlinks for figures, tables, citations, and web)
+
+- support pdf bookmarks and metadata
+
+- use the features of the newtxtext and newtxmath font packages
+
+- support bold face, math, citations, and footnotes in section headings
+
+- provide automatic layout of author blocks for multiple addresses
+
+
+ ####Author####
+
+ John H. Lienhard V
+
+ Department of Mechanical Engineering
+
+ Massachusetts Institute of Technology
+
+ Cambridge, MA 02139-4307 USA
+
+
+ ---
+
+ ####Change log####
+
+v1.05: automate list of figures/tables with option to omit; replace balance package with flushend package and automate; revise skips in nomenclature; address conflicts of lineno package with other elements; option to hyphenate typewriter font; new options for footer text; adjust \\emergencystretch and \\tolerance; additional documentation and references
+
+v1.04: edit documentation; add language support via babel
+
+v1.03: expand documentation; fix conflict between lineno and balance packages; more footer options; edit \\entry
+
+v1.02: adjust formats of 2nd and 3rd level headings; add option for line numbers; eqn tags in blue
+
+v1.01: edit documentation, remove development code
+
+v1.00: initial release
+
+ ---
+
+ ####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/asmejour/asmejour-sample.bib b/macros/latex/contrib/asmejour/asmejour-sample.bib
new file mode 100644
index 0000000000..86a277c808
--- /dev/null
+++ b/macros/latex/contrib/asmejour/asmejour-sample.bib
@@ -0,0 +1,413 @@
+%% Revised 17 August 2019.
+
+@article{DKE1969,
+ author = {D. K. Edwards},
+ title = {Radiative Transfer Characteristics of Materials},
+ journal = jht,
+ volume = 91,
+ number = 1,
+ pages = {1--15},
+ month = {February},
+ year = {1969},
+ doi = {10.1115/1.3580108},
+}
+
+@article{toohey2007,
+ author = {Kathleen S. Toohey and Nancy R. Sottos and Jennifer A. Lewis and Jeffrey S. Moore and Scott R. White},
+ year = {2007},
+ title = {Self-healing Materials with Microvascular Networks},
+ journal = {Nature Materials},
+ volume = {6},
+ number = {6662},
+ pages = {581--585},
+ doi = {10.1038/nmat1934},
+}
+
+@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, NY},
+}
+
+@INCOLLECTION{stevens1999,
+ title = {Stochastic Fields and Their Digital Simulation},
+ publisher = {Martinius Publishers},
+ pages = {22--36},
+ year = {1999},
+ booktitle = {Stochastic Methods},
+ author = {Thomas T. Stevens},
+ editor = {T. A. Sulle and M. Siiu},
+ address = {Dordrecht, Germany},
+}
+
+@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 = {ASME Paper No.\ DETC2005-99532},
+ venue = {New Orleans, LA},
+ eventdate = {September 10--13},
+}
+% Note that venue and eventdate are specific to the asmejour.bst style
+
+@techreport{oligaria2011,
+ author = {Oligaria, T. T. and Fredy, C. W. and Popullo, A. Z. and Tucker, M. A.},
+ year = {2011},
+ title = {Characterization of PKM Dynamics},
+ type = {SAE Technical Paper},
+ institution = {Society of Automotive Engineers},
+ address = {Warrendale, PA},
+ number = {No.\ 2011-02-8345, 07ATC-96},
+}
+
+@phdthesis{mollen2014,
+ author = {T. P. Mollen},
+ title = {Use of General Nonlinear Material in Articulated Systems},
+ school = {University of Boston},
+ address = {Boston, MA},
+ year = {2014},
+}
+% type = {Sc{D} Thesis}, could be added to change the type of thesis. See example below.
+
+@book{smith2014,
+ author = {Smith, John},
+ year = {2014},
+ title = {A Dog's Life in Berlin},
+ publisher = {Oxford University Press},
+ address = {New York},
+ doi = {10.1055/acprof.oso/97890.0394.000},
+ note = {\doi{10.1055/acprof.oso/97890.0394.000}},
+}
+%% An example to show a doi even though doi is linked.
+%% note = {\url{http://dx.doi.org/10.1055/acprof.oso/97890.0394.000}},
+
+@online{apple2019,
+ title={Apple Privacy Policy},
+ url = {https://www.apple.com/legal/privacy/en-ww/},
+ urldate = {April 27, 2019},
+ organization = {Apple Inc.},
+ address = {Cupertino, CA},
+ note = {updated April 4, 2019},
+}
+
+@online{sharpe1,
+ author = {Michael Sharpe},
+ title = {New {TX} font package},
+ year = {2018},
+ organization = {Comprehensive \TeX\ Archive Network},
+ url = {https://ctan.org/pkg/newtx},
+ urldate = {April 27, 2019},
+ version = {1.554},
+}
+
+@article{Lienhard2019b,
+ title = "Exterior Shape Factors from Interior Shape Factors",
+ journal = jht,
+ year = "2019",
+ doi = "10.1115/1.4042912",
+ author = {Lienhard, V, John H.},
+ eid = {061301},
+ volume = {141},
+ number = {6},
+}
+
+@online{sharpe2,
+ author = {Michael Sharpe},
+ title = {The \textsf{mathalfa} package},
+ year = {2018},
+ organization = {Comprehensive \TeX\ Archive Network},
+ url = {https://ctan.org/pkg/mathalfa},
+ urldate = {April 27, 2019},
+ version = {1.10},
+}
+
+@online{GSL,
+ title = {{GNU} Scientific Library},
+ 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},
+ urldate = {Dec. 12, 2018},
+ version = {2.4},
+ versiontype = {Release},
+}
+
+@online{dlmf,
+ title = {{NIST} {D}igital Library of Mathematical Functions, Release 1.0.17},
+ year = {2017},
+ editor = {F. W. J. Olver and A. B. {Olde Daalhuis} and D. W. Lozier and B. I. Schneider and
+ R. F. Boisvert and C. W. Clark and B. R. Miller and B. V. Saunders},
+ organization = {National Institute of Standards and Technology},
+ address = {Gaithersburg, MD},
+ url = {http://dlmf.nist.gov/},
+ urldate ={Dec.\ 22, 2018},
+}
+
+@online{texshop,
+ author={Richard Koch},
+ title = {{\TeX}{S}hop, Version 4.01},
+ year={2018},
+ url = {http://pages.uoregon.edu/koch/texshop/obtaining.html},
+ urldate = {Apr. 16, 2018},
+ organization = {University of Oregon},
+ address = {Eugene, OR},
+}
+
+@online{bottcher,
+ author = {Stephan I. B{\"o}ttcher and Uwe L{\"u}ck},
+ title = {\textsf{lineno.sty}: A {\LaTeX} package to attach line numbers to paragraphs},
+ year = {2005},
+ organization = {Comprehensive \TeX\ Archive Network},
+ url = {https://www.ctan.org/pkg/lineno},
+ urldate = {August 17, 2019},
+ version = {4.41},
+}
+
+@online{oostrum,
+ author = {Piet van Oostrum},
+ title = {The \textsf{fancyhdr} and \textsf{extramarks} packages},
+ year = {2019},
+ organization = {Comprehensive \TeX\ Archive Network},
+ url = {https://www.ctan.org/pkg/lineno},
+ urldate = {August 17, 2019},
+ version = {3.10},
+}
+
+@online{amsmath,
+ author = {{American Mathematical Society} and {LATEX3 Project}},
+ title = {User's Guide for the amsmath Package },
+ year = {2018},
+ organization = {Comprehensive \TeX\ Archive Network},
+ url = {https://ctan.org/tex-archive/macros/latex/required/amsmath/amsldoc.pdf},
+ urldate = {July 5, 2019},
+ version = {2.1},
+}
+
+@article{Lienhard2019c,
+ title = {Linearization of Nongray Radiation Exchange: The Internal Fractional Function Reconsidered},
+ journal = jht,
+ year = "2019",
+ doi = "10.1115/1.4042158",
+ author = {Lienhard, V, John H.},
+ eid = {052701},
+ volume = {141},
+ number = {5},
+}
+
+@book{ww1927,
+ author={E. T. Whittaker and E. N. Watson},
+ title={A Course of Modern Analysis},
+ year={1920},
+ edition={3rd},
+ publisher={Cambridge University Press},
+ address={Cambridge, UK},
+ url = {https://archive.org/details/courseofmodernan00whit},
+}
+
+@incollection{euler1740,
+ author={Leonard Euler},
+ title={De summis serierum reciprocarum},
+ booktitle={Commentarii academiae scientiarum Petropolitanae},
+ volume= 7,
+ year=1740,
+ pages = {123--134},
+ archive=arxiv,
+ eprint={math/0506415},
+ note={First communicated to Daniel Bernoulli in 1734 and read before the St.\ Petersburg Academy in December 1735},
+}
+
+@book{euler1748,
+ author={Leonard Euler},
+ title = {Introductio in analysin infinitorum},
+ year={1748},
+ volume=1,
+ publisher={Apud Marcum-Michaelem Bousquet \& Socios},
+ address={Lausannae},
+}
+% note={English translation by I.\ Bruce available here at \url{http://www.17centurymaths.com/contents/introductiontoanalysisvol1.htm}},
+
+@online{fourierwiki,
+ title = {Joseph Fourier---Wikip\'{e}dia{,} l'encyclop\'{e}die libre},
+ year = {2019},
+ author = {Wikipedia},
+ url = {https://fr.wikipedia.org/wiki/Joseph_Fourier},
+ urldate= {July 5, 2019},
+}
+%% Note ASME Journal discourage citations to Wikipedia.
+
+@techreport{reynolds1958,
+ AUTHOR = {W.~C.~Reynolds and W.~M.~Kays and S.~J.~Kline},
+ TITLE = {Heat transfer in the incompressible turbulent boundary layer. {I}--constant wall temperature},
+ type = {NASA Technical Memorandum No.\ },
+ number = {12-1-58W},
+ institution = {National Aeronautics and Space Administration},
+ address = {Washington, DC},
+ Month={December},
+ year = {1958},
+ archive = hndl,
+ eprint = {2060/19980228020},
+}
+%% URL = {https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19980228020.pdf},
+%% URL = {http://hdl.handle.net/2060/19980228020},
+
+@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},
+ publisher = {Advisory Group for Aerospace Research and Development of {NATO}, Technivision Services},
+ address = {Slough, England},
+ year = {1970},
+}
+%% type = {...}, changes chapter to something else...
+%% url = {..} can be added if it exists
+%% edition = {..} can be added if relevant.
+%% For Collections, series is intended to be used with volume, i.e., which volume of a collection.
+%% Series (the title of the collection) will not appear if the volume number is empty
+
+
+@book{EDM,
+ author = {D. K. Edwards and V. E. Denny and A. F. Mills},
+ title= {Transfer Processes},
+ publisher = {Hemisphere Publishing},
+ edition = {2nd},
+ year = 1979,
+ address = {Washington, DC},
+}
+
+@article{montijano2014,
+ title={Numerical methods with {\LuaLaTeX}},
+ author={Juan I. Montijano and Mario P{\'{e}}rez and Luis R{\'{a}}ndez and Juan Luis Varona},
+ year=2014,
+ volume=35,
+ month={January},
+ number=1,
+ pages={51--56},
+ journal={TUGboat},
+ url = {https://tug.org/TUGboat/tb35-1/tb109montijano.pdf},
+}
+
+@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},
+ eventdate = {October 15--20},
+ archive = hndl,
+ eprint = {1721.1/111971},
+ number = {Paper No.\ IDA17WC-58334},
+}
+
+@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},
+}
+
+@online{mpl,
+ title={mpl colormaps},
+ author={St{\'e}fan {van der Walt} and Nathaniel Smith},
+ URL = {http://bids.github.io/colormap/},
+ urldate = {Aug. 26, 2018},
+ year = 2015,
+ organization = {GitHub},
+ address = {San Francisco, CA},
+ month = {September},
+}
+
+@book{ahtt,
+ author = {Lienhard, IV, John H. and Lienhard, V, John H.},
+ title = {A Heat Transfer Textbook},
+ publisher = {Phlogiston Press},
+ year = 2019,
+ volume = {},
+ series = {},
+ address = {Cambridge, MA},
+ edition = {5th},
+ month = aug,
+ version = {5.00},
+ url = {http://ahtt.mit.edu},
+}
+
+@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},
+}
+
+@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},
+}
+
+@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},
+ venue = {City, State},
+ eventdate = {Month, days},
+ note = {Optional note},
+}
+% series = {Series A},
+
+@BOOK{kirk2288a,
+ title = {Decline and Fall of the Romulan Empire},
+ publisher = {Vulcan Free Press},
+ year = {2288},
+ author = {James Tiberius Kirk},
+ address = {T'Paal},
+ series = {Humankind's Greatest Writings},
+ number = {23},
+ edition = 7},
+}
diff --git a/macros/latex/contrib/asmejour/asmejour-template.pdf b/macros/latex/contrib/asmejour/asmejour-template.pdf
new file mode 100644
index 0000000000..6c15c7effb
--- /dev/null
+++ b/macros/latex/contrib/asmejour/asmejour-template.pdf
Binary files differ
diff --git a/macros/latex/contrib/asmejour/asmejour-template.tex b/macros/latex/contrib/asmejour/asmejour-template.tex
new file mode 100644
index 0000000000..fb4dad7fba
--- /dev/null
+++ b/macros/latex/contrib/asmejour/asmejour-template.tex
@@ -0,0 +1,569 @@
+% !TEX encoding = UTF-8 Unicode
+
+%%
+%% This file is asmejour-template.tex, a template to format papers in the style of ASME journal papers
+%% as they are being published in 2019.
+%%
+%% This file is version 1.05 dated 2019/08/17
+%%
+%% Author: John H. Lienhard V
+%% Department of Mechanical Engineering
+%% Massachusetts Institute of Technology
+%% Cambridge, MA 02139-4307 USA
+%%
+%% Class options are set up in the asmejour.cls file. These include:
+%%
+%% * Option to color the vertical bar in the title block [barcolor = colorname]
+%% * where colorname is any name def'd by xcolor package; omit barcolor option to get black
+%%
+%% * Option to include line numbers [lineno]. The lineno package does not number equation
+%% * lines, captions, etc. You must run twice for proper placement of the line numbers.
+%% * This option will disable balancing column height on final page.
+%%
+%% * 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 all the ASME text fields from the footer: nofoot
+%% * An option to omit only the ASME copyright field from the footer: nocopyright
+%%
+%% * An option to use newtxtext's superiors font for footnotes [nodefaultsups] and an option
+%% * for slightly larger small capitals, largesc
+%%
+%% * Options to set (for the babel package) a primary language [lang= ], and secondary or tertiary
+%% * languages, [lang-second] and [lang-third]. The primary language must be the last option given.
+%%
+%% * Option to omit the list of figures and list of tables [nolists]
+%%
+%% * Option to allow hyphenation of the typewriter font [hyphenate]
+%% * Hyphenation is normally suppressed for typewriter mode because it is often used for code.
+%%
+%% 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 asmejour class is illustrated below. In particular,
+%% some care is needed when using complicated math and macros in section headings,
+%% to avoid problems with pdf bookmarks, which is facilitated by the optional argument of \section,
+%% 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[largesc,upint,varvw,barcolor=Red4,nocopyright,hyphenate,lang-second=french,lang=english]{asmejour}
+
+\pdfminorversion=7 % This selection is not required.
+
+
+%%%%% FIELDS TO BE COMPLETED FOLLOW %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%% pdf metadata, the user should edit %%%%%%%%%%%%%%%%%%
+\hypersetup{%
+ pdftitle={ASME Journal Paper Template}, % <=== change to YOUR pdf file title
+ pdfkeywords={ASME, Paper, Template, LaTeX, BibTeX, asmejour class}, % <=== change to YOUR pdf keywords
+ pdfauthor={John H. Lienhard}, % <=== change to YOUR name[s]!!!
+}
+
+
+%%%% Journal name and optional copyright year %%%%%%%%%%%%%%
+
+%% Omit "Journal of"
+%% If Journal Name is quite long, use \\ to insert a line break
+\JourName{Heat Transfer} %<=== change to name of your journal
+
+\PaperYear % defaults to current year if no argument given or if command is omitted;
+ % \PaperYear{} omits year; \PaperYear{2018} sets 2018.
+
+
+%%%%%%%%% End of Preamble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{document}
+
+% Change to your author name[s] and addresses, in the desired order of authors.
+% First name, middle initial, last name
+% Use title case (upper and lower case letters)
+% Note usage below for corresponding author.
+
+\SetAuthorBlock{Author Name[s]}{Department of Mechanical Engineering,\\
+ Institution or Company Name,\\
+ Street address,\\
+ City, State, Country \\
+ email: xxx@yyy.zzz}
+
+% To label one or more corresponding authors put "Name\CorrespondingAuthor". No space after "Name".
+% An optional argument can be added if email is not in address block as
+% "Name\CorrespondingAuthor{write@to.me}"
+% Can also include multiple emails and use the command more than once for multiple corresponding authors,
+% "Name\CorrespondingAuthor{write@to.him, write@to.her}"
+
+\SetAuthorBlock{John H.\ Lienhard V\CorrespondingAuthor}{%
+Rohsenow Kendall Heat Transfer Laboratory, \\
+Department of Mechanical Engineering,\\
+Massachusetts Institute of Technology, \\
+Cambridge, MA 02139 USA \\
+email: lienhard@mit.edu
+}
+
+%%% Change to your paper title. Can insert line breaks if you wish (otherwise selected automatically).
+\SetTitle{Preprint Template for ASME\\ Journal Papers: asmejour.cls}
+
+
+%%% 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, \hologo{BibTeX}}
+
+
+%% Abstract should be no more than 250 words
+\SetAbstract{%
+This paper is an example and template for the {\upshape\texttt{asmejour}} class. Papers typeset in this class will follow ASME journal style for margins, fonts, headings, captions, and reference formats. Standard \LaTeX\ commands are used. The class will lay out the author, title, and abstract in ASME style. The class will produce a pdf file that that includes hyperlinks, bookmarks, and pdf metadata. The class is intended to be used with the {\upshape\texttt{asmejour.bst}} \hologo{BibTeX} style for typesetting references, which is part of this distribution. This style supports hyperlinks and modern reference formats, following current ASME practice. 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~Live and in CTAN (\href{http://ctan.org}{ctan.org}). The class is compatible with \hologo{pdfLaTeX} or \LuaLaTeX.
+}
+
+
+\MakeTitlePage %% This command creates the author/title/abstract block. Essential!
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%% End of fields to be completed. Now write! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\section{Introduction}
+
+The \texttt{asmejour} class file will typeset papers with margins, fonts, headings, captions, and reference formats that follow those used in journals published by 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 intended use of this package is to allow authors to format their papers in ASME style prior to submission to an ASME journal for peer review.
+
+The \texttt{.tex} file may be written using standard \LaTeX\ commands, although some specific initial commands are needed to format the block 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{asmejour-template.tex} file. The pdf metadata will be placed into the pdf file itself.
+
+For each author, put author names and affiliation (with line breaks) into a separate \verb|\SetAuthorBlock{name}{affiliation}| command; follow the syntax illustrated \texttt{asmejour-template.tex} file. One author (or more) may be designated as the \verb|\CorrespondingAuthor| by placing the command at the end of the name.
+
+The title should be placed into \verb|\SetTitle{..}|, and line breaks may be included if desired. 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 italicized.
+
+After setting up the authors, title, and abstract, issue the \verb|\MakeTitlePage| command.
+
+\subsection{Optional to the Color Title Bar}
+The vertical bar in the title block is black in all ASME journals. Since the \texttt{asmejour} class is only for preprints, we include the [fun] option to have the bar in color. Any color \texttt{name} recognized by the \texttt{xcolor} package may be invoked by including the option \texttt{barcolor=name} in the \verb|\documentclass[..]{asmejour}| command. The color name is \texttt{Red4} by default. (To have a black bar, either omit the option entirely or use the name \texttt{black}.)
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{References to Figures, Equations, and Citations}
+
+For ASME papers, the labels Figure and Equation should be abbreviated when they do not start a sentence, as in Fig.~\ref{fig:1} and Eq.~\eqref{eqn:1}. Figure~\ref{fig:1} is spelled out when it starts a sentence. Equation~\eqref{eqn:1} is spelled out when it starts a sentence.
+
+Citations will be numbered automatically \cite{DKE1969}. They should be inserted at the appropriate point using a \verb|\cite{ref}| command~\cite{toohey2007,gibson2008}. The citations will be automatically sorted and compressed, as well, if they are given in a set \cite{stevens1999, DKE1969, wions2005, oligaria2011,mollen2014,smith2014,apple2019}. Just refer to the number when naming a reference, as in \cite{smith2014}. Reference~\cite{smith2014} is appropriate at the beginning of a sentence.
+See the \texttt{asmeconf-sample.bib} file for examples of how to enter your references.
+
+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.
+\begin{equation}\label{eqn:1}
+\mathbf{q} = -k\nabla T
+\end{equation}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Section Headings and Captions}
+
+ASME requires that section headings and captions be set in bold face. In addition, the captions must be in sans serif type. The \texttt{asmejour} 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. 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.}
+
+Sections may either be numbered or left unnumbered. ASME publishes papers in either style.
+
+Math can be used in either captions or section headings, and an appropriate math font will be automatically selected. For a section heading that includes 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{asmejour-template.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 a heading or caption, put \verb|\mathversion{normal}| in the heading or caption. (The \texttt{newtxmath} package \cite{sharpe1} includes a complete set of bold math fonts, however, so the need to override should be rare.)
+
+Single-sentence captions should not end with a period. Multi-sentence captions do include periods.
+
+\subsection{Subsection Headings}
+Section, subsection, and subsubsection headings should be in title case (first letter of primary words capitalized). ASME does not use \verb|\paragraph|, so the class file treats this commands like \verb|\subsubsection|.
+
+
+%%%%%%%%%%%%% 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 %%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{More on Math}
+
+To get bold math outside of the captions, you can use the \verb|\bm{..}| macro from the \texttt{bm} package, which is loaded by the class.
+
+\begin{equation}
+\bm{ S = k \ln w}
+\end{equation}
+
+Math italics are used for roman and lower-case 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:newton2}
+\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}
+
+ASME typesets vectors in upright bold, like the third instance in Eq.\ \eqref{eqn:newton2}, and sets matrices in bold italic. In the next equation $\mathbf{w}$ is a vector and $\bm{J}_1$ is a matrix:
+\begin{equation}\label{eqn:dw}
+d\mathbf{w} =
+ \begin{pmatrix}
+ du \\ dv
+ \end{pmatrix} =
+ \underbrace{\begin{pmatrix}
+ \partial u/\partial x & \partial u/\partial y \\
+ \partial v/\partial x & \partial v/\partial y
+ \end{pmatrix}}_{=\,\bm{J}_1} \begin{pmatrix}
+ dx \\ dy
+ \end{pmatrix}
+\end{equation}
+
+The \texttt{newtxmath} package includes a large number of options for mathematics, most of which 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]{asmejour}|.
+\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]{asmejour}|
+\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.
+
+
+\subsection{Units and Nomenclature} ASME requires SI units. U.S.\ style units may be follow in parentheses. Be sure to put your symbols into the nomenclature list, including the SI units.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\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{array} and \texttt{dcolumn} packages which provide extended capabilities for columns in the \texttt{tabular} environment (used in Tables \ref{tab:2} and \ref{tab:3}). Table~\ref{tab:3} is designed to have exactly the width of a text column.
+
+Table~\ref{tab:4} shows a table that spans both text columns. Figure~\ref{fig:2} shows a figure spanning both columns.
+
+Text in the figures should be checked for legibility at either single-column width (about 83~mm) or full-column width (about 170~mm). Figure captions should be placed below figures.
+
+
+%%%%%%%%%%%%%%% begin simple table %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% captions go above tables
+
+\begin{table}[t]
+\caption{A simple table\label{tab:1}}
+\centering{%
+\begin{tabular}{l l r}
+\hline\hline
+Experiment & $u$ [m/s] & $T$ [\textdegree C] \rule{0pt}{10pt} \\[2pt]
+\hline
+Run 11 & 12.5 & 103.4 \rule{0pt}{10pt} \\
+Run 12 & 24 & 68.3 \\[1pt]
+\hline\hline
+\end{tabular}
+}
+\end{table}
+
+%%%%%%%%%%%%%%%% end table %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Reference Formatting with \texttt{asmejour.bst}}
+
+The {\upshape\texttt{asmejour.bst}} \hologo{BibTeX} style follows the reference styles observed in ASME journals in 2019. The vast majority of published references are to journal papers and books. Examples for these and many other cases are given in the \texttt{asmejour-sample.bib} file, which is part of this distribution. Nevertheless, a few comments are necessary.
+
+\subsection{Hyperlinked Titles} If an \verb|@article{..| or \verb|@book{..| includes \verb|doi={..}|, the journal title will be hyperlinked to that doi number, and the doi number will not be printed. If no doi is included, but a url is included, then the title will be hyperlinked to that url. To display the doi (or the url when no doi is given), put it into the \verb|note={..}| field:
+\begin{quote}
+\verb|note = {\doi{10.1115/1.4042912}}|
+\end{quote}
+Include doi numbers in references whenever possible.
+
+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/}|.
+
+\subsection{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.
+
+\subsection{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.
+
+\subsection{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.
+
+\subsection{Version Number\protect\footnote{Footnotes can appear in \texttt{\string\section} commands. However, when the \texttt{[lineno]} option is used either: i) write \texttt{\string\protect\string\footnote\{..\}}; or ii) include the optional argument, as in \texttt{\string\section[Foo]\{Foo\string\footnote\{..\}\}}.\label{ftnt:3}}}
+The \verb|version={..}| field may be used with \verb|@book|, \verb|@online|, and \verb|@manual|. By default, the text will read \texttt{Version `number'} as in \cite{sharpe1,sharpe2}, but different wording may be selected using the \verb|versiontype={..}| field, to have ``Revision'' or something similar, as in \cite{GSL}. ASME often puts the version in the title, as in \cite{dlmf, texshop}, so I've left the final decision for discussion between the authors and the copy editor.
+
+
+%%%%%%%%%%%%%%% 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}}}
+\hline\hline
+\rule{0pt}{10pt} Experiment & \multicolumn{1}{c@{\hspace*{1cm}}}{$u$ [m/s]} & \multicolumn{1}{c!{\hspace*{0.5cm}}}{$T$ [\textdegree C]} \\[1pt]
+\hline
+The first experiment we ran this morning & 124.3 & 68.3 \rule{0pt}{10pt} \\
+The second experiment we ran this morning & 82.50 & 103.46 \\
+Our competitor's data & 72.321 & 141.384 \\[1pt]
+\hline\hline
+\end{tabular}
+}
+\end{table}
+
+%%%%%%%%%%%%%%%% end table %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%% begin two column figure %%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{figure*}[t]
+\begin{minipage}[t]{0.497\textwidth}
+\vbox{
+\vspace*{1.7em}
+\centering{
+ \includegraphics{sample-figure-2a.pdf}
+}
+\vspace*{1.7em}
+}
+\subcaption{Interior region\label{fig:interior-region}}
+\end{minipage}
+%%%%%%%% don't leave a break here
+\begin{minipage}[t]{0.497\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 two column figure %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Additional Options for \texttt{asmejour.cls}}
+The class accepts a number of options in addition to those already described.
+
+\subsection{Line Numbers} The option \texttt{[lineno]} invokes the the \texttt{lineno} package~\cite{bottcher}. This will produce line numbers in the margins. You must run \LaTeX\ twice for proper placement. The \texttt{lineno} package is not compatible with the \texttt{flushend} package that makes final short columns the same height. Balancing is disabled when this option is called. See the documentation of the \texttt{lineno} package for further commands to control line numbering. See footnote~\ref{ftnt:3} with regard to footnotes in section headings while this option is in~effect.
+
+\subsection{Changing the Footer Text} The option \texttt{[nofoot]} will omit everything other than a page number from the page footer. The option \texttt{nocopyright} will omit the ASME copyright from the first page footer. The command \verb|\PreprintString{..}| replaces the words \textsf{PREPRINT FOR REVIEW}. The left and right preprint strings can be changed separately using an optional argument: \verb|\PreprintString{..}[L]| and \verb|\PreprintString{..}[R]|.
+The final paper number may be added to the page number using \verb|\PaperNumber{..}|.
+
+The footers are all generated with the \texttt{fancyhdr} package~\cite{oostrum}, so you can change them in any way you like using the commands of that package.
+
+\subsection{Superiors Font} The \texttt{newtxtext} package includes a superiors font (both numbers and letters) for use in footnote markers and superscripts. To enable this font, use the option \texttt{[nodefaultsups]}. The corresponding author mark in the author block will not change.
+
+
+%%%%%%%%%%%%%%%%%%% begin linewidth table %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{table}[t]
+\newcolumntype{C}{>{$}c<{$}} % math-mode version of "c" column type, from array package
+\caption{\label{tab:3}Table at full column width with columns in math mode}
+\centering{%
+\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}CCCC@{\extracolsep{\fill}}}
+\hline\hline
+X_{z} & X_{c} & X_{c,m} & X_{c,2}\rule{0pt}{11pt}\\
+ 3.92069 & 5.70943 & 6.32429 & 7.08757\\[2pt]
+\varepsilon (T_1) & \varepsilon^i (T_1) & \varepsilon^i (T_m) & \alpha (T_1, T_2)\\
+0.7258 & 0.6237 & 0.6807 & 0.7964 \\[2pt]
+q_\textrm{gray} & q_\textrm{int, $T_1$} & q_\textrm{int, $T_m$} & q_\textrm{exact}\\
+400.2 & 462.1 & 371.0 & 371.8 \\[1pt]
+\hline\hline
+\end{tabular*}
+}
+\end{table}
+
+%%%%%%%%%%%%%%%%%%%% end linewidth table %%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Dealing with complicated math in a section heading: optional argument of \section provides the pdfbookmark
+%% without losing characters or producing warnings/errors. Note that bookmark can include simple math.
+%%
+%% Newtxmath provides the option for upright Greek letters as \upomega (vs. \omega), etc.
+%%
+\section[Math in a Section Heading: \omega\cdot U=0]{Math in a Section Heading: $\hat{\upomega}\cdot\hat{\mathrm{U}}=0$}
+
+To include complicated math in a section heading without producing bookmark-related errors, use the optional argument of \verb|\section| to create the pdfbookmark. The heading above was set with the following command:
+\begin{quote}\raggedright
+\verb|\section*[Math in a Section Heading:|
+\hspace*{1em}\verb|\omega\cdot U=0]{Math in a Section Heading:|
+\hspace*{1em}\verb|$\hat{\upomega}\cdot\hat{\mathrm{U}}=0$}|
+\end{quote}
+Note that bookmarks can include simple math. Also note that \texttt{newtxmath} provides the option to obtain upright Greek letters as \verb|\upomega| (vs.\ \verb|\omega|), etc.
+
+
+
+%%%%%%%%%%%%%%% begin two column table %%%%%%%%%%%%%%%%%%
+\begin{table*}[t]
+\caption{A table spanning two columns}\label{tab:4}%
+\centering{%
+\begin{tabular*}{0.8\textwidth}{@{\hspace*{1.5em}}@{\extracolsep{\fill}}ccc!{\hspace*{3.em}}ccc@{\hspace*{1.5em}}}
+\hline\hline
+\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)$} \\ \hline
+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]
+\hline\hline
+\end{tabular*}
+}
+\end{table*}
+%%%%%%%%%%%%%%%% end two column table %%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Summary}
+The class \texttt{asmejour} and associated files are for typesetting preprints in the style of ASME journals.
+Documentation is provided in this file and by comments in the \texttt{.tex} source code. Examples of entering references are shown in the \texttt{asmejour-sample.bib} file. The \texttt{asemjour.bst} file produces references following ASME's current formats. This package is not a publication of ASME and is offered without charge under the terms of the \href{https://ctan.org/license/mit}{MIT license}.
+
+\begin{enumerate}
+\item First conclusion
+\item Second conclusion
+\item Third conclusion
+\end{enumerate}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section*{Acknowledgment} %% ASME requests this exact spelling, singular.
+
+Acknowledge individuals, institutions, or companies that supported the authors in preparing the work. Those mentioned might have provided technical support, insightful comments or conversations, materials used in the work, or access to facilities.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section*{Funding Data}
+\begin{itemize}
+\item U.S.\ Department of Heat Transfer, Office of Important Ideas (DOHT-OII Award No.\ 3.14159265)
+\end{itemize}
+
+
+%%%%%%%%% NOMENCLATURE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Name of nomenclature can be changed using an optional argument to the environment.
+%%
+%% Leave off second argument of \entry to produce a subheading (e.g., \entry{Greek letters} )
+%% Must run latex twice to align the columns.
+
+\begin{nomenclature}
+
+\entry{$\overline{h}$}{average heat transfer coefficient (W m$^{-2}$ K$^{-1}$)}
+\entry{$k$}{thermal conductivity (W m$^{-1}$ K$^{-1}$)}
+\entry{$\mathbf{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{Superscripts and Subscripts}
+\entry{b}{bulk value}
+\entry{$\infty$}{free stream value}
+
+\end{nomenclature}
+
+
+%%%%%%%%%%%%%%% APPENDICES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Note that appendices will be "numbered" A, B, C, ... etc. Use \section, not \section*
+%% Subsections need not be numbered, use \subsection*
+%% The equation counter is reset for each appendix
+%% Figures will be numbered consecutively
+
+\appendix %%% starting appendices
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Dealing with Wide Equations}
+
+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}. An example appears in Appendix~\ref{app:zetafunction}. An alternative solution may be to set large equations into two-column-wide tables or figures. While a package exists for setting equations that span two columns (\texttt{widetext.sty}), that code is erratic in relation to floats and page breaks.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Incomplete Zeta Function~\cite{Lienhard2019c}\label{app:zetafunction}}
+
+This text is just an illustration. The radiation fractional function may be written in terms of the incomplete zeta function for convenience:
+\begin{align}
+f(\lambda T) = {}& \frac{1}{\sigma T^4} \int_0^\lambda\frac{2\pi h c_o^2}{\lambda^5 \left[ \exp (h c_o/k_B T \lambda) - 1\right] } \, d\lambda \\
+ = {}& \frac{1}{\sigma T^4}\frac{2\pi k_B^4 T^4}{h^3c_o^2}\int^\infty_{c_2/\lambda T}\frac{t^3}{e^t -1}\, dt\label{eqn:zeta}
+\end{align}
+When $\lambda T \rightarrow \infty$, $f = 1$ and the last equation yields the well-known result
+\begin{equation}
+ {\sigma T^4} =\frac{2\pi k_B^4 T^4}{h^3c_o^2} \underbrace{\int_0^\infty \frac{t^3}{e^t - 1} \, dt}_{\equiv \zetaup(4)\Gamma(4)}
+\end{equation}
+where the Gamma function $\Gamma(4) = 3!$ and the Riemann zeta function, $\zetaup(4)$, has the indicated integral representation \cite[\S13.12]{ww1927}. A classical result due to Euler \cite{euler1740} gives $\zetaup(4) = \pi^4/90$ (see also \cite[\S167]{euler1748}), from which we recover the usual definition of the Stefan-Boltzmann constant, $\sigma$.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Language Support}
+
+ASME publishes in English, but the \texttt{babel} package is loaded for
+users who may wish to include other languages. Options are supported to load a primary language, \texttt{lang=}, as well
+as a secondary and tertiary language, \texttt{lang-second} and \texttt{lang-third}. The primary language must be given as the \textit{last} language option in \verb|\documentclass|.
+
+If no language option is given, the package defaults to English. The standard caption and section names will follow \texttt{babel}'s dictionary for primary languages other than English. Users may additionally change ``Keywords'' and ``Nomenclature'' by renewing the commands \verb|\keywordname| and \verb|\nomname|. Changes to the page footer were described earlier.
+
+An example of use is shown in \selectlanguage{french}\appendixname\ \ref{app:fourier}.\selectlanguage{english}
+
+No effort has been made to support customization of language-specific fonts, although this is possible by modifying the class file (examples are given in the \texttt{newtx} documentation). The bibliography style, \texttt{asmejour.bst}, is designed in English and aimed at \texttt{BibTeX}. Multilingual bibliographies can be supported using \texttt{BibLaTeX}.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\selectlanguage{french}
+\section{Joseph Fourier}\label{app:fourier}
+
+Joseph Fourier est connu pour avoir déterminé, par le calcul, la diffusion de la chaleur en utilisant la décomposition d'une fonction quelconque en une série trigonométrique convergente. De telles fonctions sont appelées séries de Fourier. La méthode de calcul permettant de passer, de façon réversible, d'une fonction à la série trigonométrique correspondante est la transformation de Fourier~\cite{fourierwiki}.
+\selectlanguage{english}
+
+
+%%%%%%%%%%%%% BIBLIOGRAPHY %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\nocite{*} %% <=== delete this line - unless you wish to typeset the entire contents of your .bib file.
+
+\bibliographystyle{asmejour} %% .bst file that follows ASME journal format. Do not change.
+
+\bibliography{asmejour-sample} %% <=== change this to name of your bib file
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% To omit final list of figures and tables, use the class option [nolists]
+
+\end{document}
+ \ No newline at end of file
diff --git a/macros/latex/contrib/asmejour/asmejour.bst b/macros/latex/contrib/asmejour/asmejour.bst
new file mode 100644
index 0000000000..29876b85da
--- /dev/null
+++ b/macros/latex/contrib/asmejour/asmejour.bst
@@ -0,0 +1,1681 @@
+%%
+%% This is file `asmejour.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% merlin.mbs (with options: `seq-no,nm-rev,jnrlst,dt-beg,xmth,tit-qq,atit-u,thtit-a,vol-bf,volp-com,jwdpg,pp-last,num-xser,numser,ser-vol,ser-ed,pre-edn,doi,edby,edbyy,blk-com,in-x,pp,ed,abr,ednx,ord,jabr,revdata,eprint,url,url-blk,eprint,url,url-nt,em-it,nfss,')
+%% ----------------------------------------
+%% *** This bibtex style follows ASME journals ***
+%%
+%% 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 file is asmejour.bst, version 1.01 dated 2019/05/26.
+ %%
+ %% This file was generated and edited by John Lienhard.
+ %% This file is a derivative work under Clause 6 of the LPPL license.
+ %%
+ %% The generated file and the modifications are based on what ASME is actually putting into
+ %% published journal papers in early 2019. The modification mainly relate to handling of online
+ %% information. Details follow.
+ %%
+ %% Added fields: eventdate, urldate, urltype, venue, version, versiontype
+ %% 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
+ %% Added: format.version to @book, @online, and @manual; text can be changed with versiontype field.
+ %%
+ %% Remove "emphasize" from journal article, and linked doi (or else url) to journal name (or book title)
+ %% without explicitly showing the urls. The urls may be added to the note = {..} field to display explicitly
+ %% doilink fn is similar to tex.stackexchange.com/questions/76174/set-doi-link-on-journal-name-with-bibtex-bst
+ %% Modified fin.entry to omit period after a url, including a separate version for article and book which have
+ %% hyperlinks to titles.
+ %%
+ %% Capitalize: Vol., Chap., & No.
+ %% Remove "emphasize" before comma in format.bvolume,
+ %% @incollection: move chapter and edition, change format.in.ed.booktitle, modify format for "series"
+ %%
+ %% Modify \eprint to include full url, and provided some macros for archive={..} ...
+ %% ....this format is uncommon in ASME journals so implemented only as a url (but can easily patch if needed)
+ %%
+ %% Change format.note capitalizations from "l" to "t" and "u" to "t" respectively.
+ %%
+ %% Included macros for titles of some of ASME's many journals.
+ %%
+ %%
+ %% Author: John H. Lienhard V
+ %% Department of Mechanical Engineering
+ %% Massachusetts Institute of Technology
+ %% Cambridge, MA 02139-4307 USA
+ %%
+ %========================================================================
+ %% 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.
+ %%
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %%
+ %-------------------------------------------------------------------
+ % 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
+ version
+ versiontype
+ 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}
+{ url empty$
+ { eprint empty$
+ {
+ add.period$
+ write$
+ newline$
+ }{
+ write$
+ newline$
+ }
+ if$
+ }{
+ write$
+ newline$
+ }
+ if$
+}
+FUNCTION {fin.urllink.entry}
+{ doi empty$
+ { eprint empty$
+ {
+ add.period$
+ write$
+ newline$
+ }{
+ write$
+ newline$
+ }
+ if$
+ }{
+ add.period$
+ write$
+ newline$
+ }
+ if$
+}
+
+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}
+{
+ skip$
+}
+
+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 {bolden}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "\textbf{" 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}
+{ "Tech. Rep." }
+
+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" }
+
+FUNCTION {bbl.version}
+ { "Version" }
+
+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 {jep} {"ASME J. Electron. Packag."}
+
+MACRO {jegtp} {"ASME J. Eng. Gas Turbines Power"}
+
+MACRO {jert} {"ASME J. Energy Resour. Technol."}
+
+MACRO {jfe} {"ASME J. Fluids Eng."}
+
+MACRO {jht} {"ASME J. Heat Transfer"}
+
+MACRO {jmd} {"ASME J. Mech. Des."}
+
+
+MACRO {acmcs} {"ACM Comput. Surv."}
+
+MACRO {acta} {"Acta Inf."}
+
+MACRO {cacm} {"Commun. ACM"}
+
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+
+MACRO {ibmsj} {"IBM Syst.~J."}
+
+MACRO {ieeese} {"IEEE Trans. Software Eng."}
+
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput. Aid. Des."}
+
+MACRO {ipl} {"Inf. Process. Lett."}
+
+MACRO {jacm} {"J.~ACM"}
+
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+
+MACRO {scp} {"Sci. Comput. Program."}
+
+MACRO {sicomp} {"SIAM J. Comput."}
+
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+
+MACRO {tods} {"ACM Trans. Database Syst."}
+
+MACRO {tog} {"ACM Trans. Graphic."}
+
+MACRO {toms} {"ACM Trans. Math. Software"}
+
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+
+MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
+
+MACRO {tcs} {"Theor. Comput. Sci."}
+
+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.version}
+{ version empty$
+ {""}
+{version "version" bibinfo.check
+ versiontype duplicate$ empty$
+ { pop$ bbl.version }
+ 'skip$
+ if$
+ "versiontype" bibinfo.check
+ swap$ duplicate$ empty$
+ { pop$ "t" change.case$ }
+ { tie.or.space.prefix * * }
+ if$
+}
+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}{, f.}{, jj}"
+ format.name$
+ bibinfo bibinfo.check
+ 't :=
+ nameptr #1 >
+ {
+ namesleft #1 >
+ { ", " * t * }
+ {
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ numnames #2 >
+ { "," * }
+ 'skip$
+ 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}
+{
+ 'bibinfo :=
+ duplicate$ empty$ 'skip$ {
+ 's :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr
+ "{f.~}{vv~}{ll}{, jj}"
+ format.name$
+ bibinfo bibinfo.check
+ 't :=
+ nameptr #1 >
+ {
+ namesleft #1 >
+ { ", " * t * }
+ {
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ {
+
+ " " * bbl.etal *
+ }
+ {
+ bbl.and
+ space.word * t *
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ } if$
+}
+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
+ *
+ }
+ if$
+}
+FUNCTION {format.doi}
+{ doi empty$
+ { "" }
+ {
+ "\doi{" doi * "}" *
+ }
+ if$
+}
+FUNCTION {doilink}
+{ duplicate$ empty$
+{ pop$ "" }
+{ doi empty$
+ { url empty$
+ { skip$ }
+ { "\href{" url * "}{" * swap$ * "}" * }
+ if$
+ }
+ { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * }
+ if$
+}
+if$
+}
+
+FUNCTION {format.note}
+{
+ note empty$
+ { "" }
+ { note #1 #1 substring$
+ duplicate$ "{" =
+ 'skip$
+ { output.state mid.sentence =
+ { "t" }
+ { "t" }
+ 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$ *
+ non.stop
+ { ",} " * }
+ { "} " * }
+ if$
+ }
+ if$
+}
+FUNCTION {end.quote.title}
+{ title empty$
+ 'skip$
+ { before.all 'output.state := }
+ 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$
+}
+FUNCTION {format.btitle}
+{ title "title" bibinfo.check
+ duplicate$ empty$ 'skip$
+ {
+ emphasize
+ }
+ if$
+}
+FUNCTION {format.doi.btitle}
+{ title "title" bibinfo.check
+ duplicate$ empty$ 'skip$
+ {
+ doilink 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$ *}
+ 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 }
+ {
+ ", " *
+ 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$
+ {
+ "volume" bibinfo.check
+ }
+ if$
+ bolden
+ number "number" bibinfo.check duplicate$ empty$ 'skip$
+ {
+ swap$ duplicate$ empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ swap$
+ "(" 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$
+ {
+ format.bvolume duplicate$ empty$ 'pop$
+ { " (" swap$ * * ")" *}
+ if$
+ format.edition duplicate$ empty$ 'pop$
+ { ", " swap$ * * }
+ if$
+ editor "editor" format.names.ed duplicate$ empty$ 'pop$
+ {
+ get.bbl.editor
+ swap$ "," *
+ " " * swap$ *
+ 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 }
+ '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
+ 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
+ format.date "year" output.check
+ date.block
+ format.title "title" output.check
+ end.quote.title
+ crossref missing$
+ {
+ journal
+ "journal" bibinfo.check
+ doilink
+ "journal" output.check
+ format.vol.num.pages output
+ }
+ { format.article.crossref output.nonnull
+ }
+ if$
+ eid empty$
+ { format.journal.pages }
+ { format.journal.eid }
+ if$
+ format.note output
+ format.eprint output
+ fin.urllink.entry
+}
+FUNCTION {book}
+{ 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.date "year" output.check
+ date.block
+ format.doi.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ format.edition output
+ format.version output
+ format.number.series output
+ format.publisher.address output
+ }
+ {
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.note output
+ format.eprint output
+ fin.urllink.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ format.date output
+ date.block
+ format.title "title" output.check
+ end.quote.title
+ howpublished "howpublished" bibinfo.check output
+ address "address" bibinfo.check output
+ format.doi output
+ format.note output
+ format.eprint output
+ format.url 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$
+ format.date "year" output.check
+ date.block
+ format.btitle "title" output.check
+ crossref missing$
+ {
+ format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ format.edition output
+ format.number.series output
+ format.publisher.address output
+ }
+ {
+ format.chapter.pages "chapter and pages" output.check
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.pages "pages" output.check
+ format.doi output
+ format.note output
+ format.eprint output
+ format.url output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ format.date "year" output.check
+ date.block
+ format.title "title" output.check
+ end.quote.title
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.number.series output
+ format.publisher.address output
+ format.chapter.pages output
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ format.pages "pages" output.check
+ format.doi output
+ format.note output
+ format.eprint output
+ format.url output
+ fin.entry
+}
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ format.date "year" output.check
+ date.block
+ format.title "title" output.check
+ end.quote.title
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ venue output
+ eventdate output
+ format.number.series output
+ publisher empty$
+ { format.organization.address output }
+ { organization "organization" bibinfo.check output
+ format.publisher.address output
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ }
+ if$
+ format.pages "pages" output.check
+ format.doi output
+ format.note output
+ format.eprint output
+ format.url 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$
+ format.date output
+ date.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ {
+ address "address" bibinfo.check output
+ }
+ 'skip$
+ if$
+ }
+ {
+ organization "organization" bibinfo.check output
+ address "address" bibinfo.check output
+ }
+ if$
+ format.edition output
+ format.version output
+ format.doi output
+ format.note output
+ format.eprint output
+ format.url output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ format.date "year" output.check
+ date.block
+ format.title
+ "title" output.check
+ end.quote.title
+ bbl.mthesis format.thesis.type output.nonnull
+ school "school" bibinfo.warn output
+ address "address" bibinfo.check output
+ format.doi output
+ format.note output
+ format.eprint output
+ format.url output
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ format.date output
+ format.title output
+ end.quote.title
+ howpublished "howpublished" bibinfo.check output
+ format.doi output
+ format.note output
+ format.eprint output
+ format.url output
+ fin.entry
+ empty.misc.check
+}
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ format.date "year" output.check
+ date.block
+ format.title
+ "title" output.check
+ end.quote.title
+ bbl.phdthesis format.thesis.type output.nonnull
+ school "school" bibinfo.warn output
+ address "address" bibinfo.check output
+ format.doi output
+ format.note output
+ format.eprint output
+ format.url output
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization "organization" bibinfo.check output
+ }
+ { format.editors output.nonnull }
+ if$
+ format.date "year" output.check
+ date.block
+ format.btitle "title" output.check
+ format.bvolume output
+ venue output
+ eventdate output
+ editor empty$
+ { publisher empty$
+ { format.number.series output }
+ {
+ format.number.series output
+ format.publisher.address output
+ }
+ if$
+ }
+ { publisher empty$
+ {
+ format.number.series output
+ format.organization.address output }
+ {
+ format.number.series output
+ organization "organization" bibinfo.check output
+ format.publisher.address output
+ }
+ if$
+ }
+ if$
+ format.doi output
+ format.note output
+ format.eprint output
+ format.url output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ format.date "year" output.check
+ date.block
+ format.title
+ "title" output.check
+ end.quote.title
+ format.tr.number output.nonnull
+ institution "institution" bibinfo.warn output
+ address "address" bibinfo.check output
+ format.doi output
+ format.note output
+ format.eprint output
+ format.url 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.date "year" output.check
+ date.block
+ format.title
+ "title" output.check
+ end.quote.title
+ format.version output
+ organization "organization" bibinfo.warn output
+ address "address" bibinfo.check output
+ 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
+ format.date output
+ date.block
+ format.title "title" output.check
+ end.quote.title
+ format.doi output
+ format.note "note" output.check
+ format.eprint output
+ format.url output
+ 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}{}"
+ 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][]{\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 `asmejour.bst'.
diff --git a/macros/latex/contrib/asmejour/asmejour.cls b/macros/latex/contrib/asmejour/asmejour.cls
new file mode 100644
index 0000000000..72087ac48d
--- /dev/null
+++ b/macros/latex/contrib/asmejour/asmejour.cls
@@ -0,0 +1,678 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file provides the asmejour class for formatting =papers in a layout similar to
+%% ASME Journal papers.
+%%
+%% The asmejour.cls file should be used with the files asmejour.bst (for citations) and asmejour-template.tex.
+%%
+%%
+%% This file is version 1.05 dated 2019/08/17.
+%%
+%% Author: John H. Lienhard V
+%% Department of Mechanical Engineering
+%% Massachusetts Institute of Technology
+%% Cambridge, MA 02139-4307 USA
+%%
+%% This class is compatible with either pdfLaTeX or LuaLaTeX. The class calls a number of packages,
+%% many of which are part of the standard LaTeX distribution, and all of which are in TeXLive and
+%% CTAN (https://ctan.org/).
+%%
+%% The Times/Helvetica style fonts are from Michael Sharpe's excellent newtxtext and newtxmath packages.
+%% This class is not designed for unicode-math or fontspec.
+%%
+%% Options for the class are described on lines 63-157.
+%%
+%% The class defines an environment for nomenclature. LaTeX must be run twice to align those columns.
+%%
+%% The title block is set by a specific group of commands which are described in the asmejour-template.tex file.
+%%
+%% The \section[]{} command's optional argument is changed to provide pdf bookmarks when necessary.
+%%
+ %=========================================================
+%%
+%% LICENSE:
+%%
+%% Copyright (c) 2019 John H. Lienhard
+%%
+%% Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
+%% associated documentation files (the "Software"), to deal in the Software without restriction,
+%% including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
+%% and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
+%% subject to the following conditions:
+%%
+%% The above copyright notice and this permission notice shall be included in all copies or
+%% substantial portions of the Software.
+%%
+%% The software is provided "as is", without warranty of any kind, express or implied, including but
+%% not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement.
+%% in no event shall the authors or copyright holders be liable for any claim, damages or other liability,
+%% whether in an action of contract, tort or otherwise, arising from, out of or in connection with the
+%% software or the use or other dealings in the software.
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{asmejour}[2019/08/17 asmejour paper format]
+
+\LoadClass[twoside,9pt,twocolumn]{extarticle}
+
+%%%%%%%%%%%%%% Options for the class %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{ifthen}
+
+\newboolean{DefaultSups}
+\setboolean{DefaultSups}{true}
+
+\newboolean{lineno}
+\setboolean{lineno}{false}
+
+\newboolean{lists}
+\setboolean{lists}{true}
+
+\RequirePackage{kvoptions}
+\RequirePackage{kvsetkeys}
+\SetupKeyvalOptions{
+ family=asmejour,
+ prefix=asmejour@,
+ setkeys=\kvsetkeys,
+}
+
+%%% for mathalfa, so we may pass options in this format: mathalfa=cal=euler, mathalfa=frak=boondox
+\define@key{asmejour}{mathalfa}{%
+ \PassOptionsToPackage{#1}{mathalfa}%
+}
+
+%%% set key [nodefaultsups] to obtain newtx superiors font for footnotes.
+\define@key{asmejour}{nodefaultsups}[false]{%
+ \setboolean{DefaultSups}{#1}
+}
+
+%%% set barcolor= to a value defined by xcolor package
+\newcommand\@ColorName{black} % default
+\define@key{asmejour}{barcolor}[Red4]{%
+ \renewcommand\@ColorName{#1}
+}
+
+%%% set key [lineno] to obtain linenumbers.
+\define@key{asmejour}{lineno}[true]{%
+ \setboolean{lineno}{#1}
+}
+
+%%% set key [lang,lang-second,lang-third] to pass languages to babel.
+\define@key{asmejour}{lang}[english]{%
+ \PassOptionsToPackage{#1}{babel}%
+}
+\define@key{asmejour}{lang-second}[english]{%
+ \PassOptionsToPackage{#1}{babel}%
+}
+\define@key{asmejour}{lang-third}[english]{%
+ \PassOptionsToPackage{#1}{babel}%
+}
+
+%%% set key [nolists] to suppress lists of figures and tables
+\define@key{asmejour}{nolists}[false]{%
+ \setboolean{lists}{#1}
+}
+
+\ProcessKeyvalOptions*
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% option to omit ASME footer
+\DeclareOption{nofoot}{%
+ \AtBeginDocument{\pagestyle{plain}%
+ \fancypagestyle{title}{%
+ \fancyhf{}
+ \fancyfoot[CE,CO]{\thepage}
+ }
+ }
+}
+
+%% option to omit ASME copyright
+\DeclareOption{nocopyright}{%
+ \AtBeginDocument{\fancypagestyle{title}{%
+ \fancyhf{}
+ \fancyfoot[RO]{\large\sffamily \@PreprintStringR\space\space\bfseries/\space\space\@PaperNumber\thepage}
+ \fancyfoot[LO]{\large\bfseries\sffamily Journal of \@JourName}
+ \fancyfoot[CO]{}
+ }
+ }
+}
+
+%% Access many options from newtxmath. See newtxmath documentation for details.
+\DeclareOption{upint,smallerops,varvw,varg,slantedGreek,frenchmath,varbb,cmbraces}{\PassOptionsToPackage{}{newtxmath}}
+
+%% Option for slightly larger small capitals font [largesc] or to loosen word spacing [looser]
+\DeclareOption{largesc}{\PassOptionsToPackage{}{newtxtext}}
+
+%% ASME word separation is greater than newtxtext defaults so change these parameters.
+\PassOptionsToPackage{spacing=0.3em, stretch=0.18em, shrink=0.08em}{newtxtext}
+
+%% Option not to use latex default superscripts, instead using the newtxtext superiors font [nodefaultsups]
+\ifthenelse{\boolean{DefaultSups}}{\PassOptionsToPackage{defaultsups}{newtxtext}}{\relax}
+
+%% Option to hyphenate the typewriter font [hyphenate]
+\DeclareOption{hyphenate}{%
+ \PassOptionsToPackage{hyphenate}{inconsolata}%
+ \ClassWarningNoLine{asmejour}{Allowing hyphenation of typewriter font}%
+}
+
+%% Suppress warnings about mathalfa keys as unused global options
+\DeclareOption*{}
+
+\ProcessOptions \relax
+
+%%%%%%%%%%%%% end options %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage[paperheight=285.7mm, paperwidth=215.900mm, left=21.100mm, right=21.100mm, top=15.9mm, bottom = 24mm, footskip=8mm]{geometry}
+\setlength\columnsep{4.5mm}
+\setlength\parindent{3.5mm}
+% ASME's pdf pages are 11.25 in. tall, not 11.00 in.
+
+\RequirePackage[sort&compress,numbers]{natbib}
+\setlength\bibsep{0pt plus 1pt minus 0pt} % ASME keeps this tight
+\renewcommand*{\bibfont}{\footnotesize}
+
+\RequirePackage{graphicx}
+\RequirePackage[hyperref,fixpdftex,dvipsnames,svgnames,x11names]{xcolor}
+\RequirePackage{xparse}
+\RequirePackage{metalogo,hologo} % Access various LaTeX logos if needed
+
+%%%%%%%%%%%%%%%% Table related %%%%%%%%
+
+\RequirePackage{array}
+
+\RequirePackage{dcolumn} %% alignment on decimal places
+\newcolumntype{d}[1]{D{.}{.}{#1}}
+
+%% make \hline in tables heavier than default 0.4pt
+\setlength\arrayrulewidth{.5\p@}
+
+
+%%%%%%%% FONT related %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{mathtools} % extends amsmath
+\RequirePackage[utf8]{inputenc}
+\RequirePackage[]{babel}
+\RequirePackage[]{newtxtext}
+\RequirePackage[varqu,varl]{inconsolata} % sans typewriter font
+\RequirePackage[]{newtxmath}
+
+\RequirePackage[]{mathalfa} % load optional fonts for Calligraphy, Script, etc.
+
+\RequirePackage{bm} % load after all math to give access to bold math
+
+%% In addition to the word spacing options declared in line 121...
+%% Relative to size9.clo: leading reduced to 10 pt; displayskips made greater
+\renewcommand\normalsize{%
+ \@setfontsize\normalsize\@ixpt{10\p@}% % <== was \@xipt
+ \abovedisplayskip 10\p@ \@plus5\p@ \@minus4\p@% % <== was 8\p@ 4,4...
+ \abovedisplayshortskip 3\p@ \@plus1\p@ \@minus1\p@% % <== was \z@ \@plus3\p@ (3pt stretch)
+ \belowdisplayshortskip 10\p@ \@plus5\p@ \@minus4\p@% % <== was 5\p@ 3, 3
+ \belowdisplayskip \abovedisplayskip%
+ \let\@listi\@listI}
+\normalsize
+
+% The article class calls \sloppy in two-column mode (\tolerance 9999, \emergencystretch 3em)
+% These adjustments affect line breaking; the values below are intended to produce
+% fewer lines with large spaces, without creating the problems of using \fussy in two-column mode.
+\tolerance 2500
+\emergencystretch 3em
+
+
+\setlength{\jot}{10pt} %<== default is 3pt
+
+\allowdisplaybreaks % ASME allows these breaks
+
+
+%% This provides sans serif italic and sans serif bold italic math.
+%% It's intended only for use in the figure and table captions.
+%% Fonts are from newtxsf package.
+\DeclareMathVersion{sansbold}
+\SetMathAlphabet{\mathsf}{sansbold}{\encodingdefault}{\sfdefault}{b}{n}
+\SetSymbolFont{letters}{sansbold}{OML}{ntxsfmi}{b}{it}
+\SetSymbolFont{lettersA}{sansbold}{U}{ntxsfmia}{b}{it}
+\SetSymbolFont{symbols}{sansbold}{LMS}{ntxsy}{b}{n}
+\SetSymbolFont{operators}{sansbold}{\encodingdefault}{\sfdefault}{\bfdefault}{n}
+
+%% Text Gyre Heros Condensed is qhvc (regular is qhv).
+\newcommand*{\CondSans}{\selectfont\fontfamily{qhvc}\selectfont}
+\renewcommand\huge{\@setfontsize\huge{14}{14}} %... for author names only
+\newcommand*{\CondSansBold}{\renewcommand\bfdefault{b}\selectfont\fontfamily{qhvc}\selectfont\bfseries}
+\renewcommand\Huge{\@setfontsize\Huge{26.5}{26.5}} %... for title font only
+
+\addto{\captionsenglish}{%
+ \renewcommand{\figurename}{Fig.}
+ \renewcommand{\tablename}{Table}
+}
+ \providecommand{\nomname}{Nomenclature}
+ \providecommand{\keywordname}{Keywords}
+
+
+%%%%%%%%%%%%%%%%% LINE AND EQUATION NUMBERING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifthenelse{\boolean{lineno}}{%
+ \RequirePackage[switch]{lineno}
+ \renewcommand{\linenumberfont}{\normalfont\footnotesize\color{red}}
+ \AtBeginDocument{\linenumbers}
+ \ClassWarningNoLine{asmejour}{Package lineno loaded, so final column balancing is disabled}
+ }{%
+ \RequirePackage{flushend} % flushend package is NOT compatible with lineno
+ \AtEndDocument{\flushcolsend}
+}
+\providecommand{\@LN@col}[1]{\relax}
+\providecommand{\@LN}[2]{\relax}
+%% ASME page proofs seem to align the number at top of the line, rather than bottom as done here.
+
+
+%% ASME puts equation tags in blue
+\RequirePackage{xpatch}
+\xpatchcmd{\tagform@}{(\ignorespaces#1\unskip\@@italiccorr)}{\color{blue}(\ignorespaces#1\unskip\@@italiccorr)}{}{}
+
+
+%%%%%%%%%%%%%%%%% FOOTER SET UP %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%% footer text names %%%%%%%%%%
+
+\newcommand{\JourName}[1]{\gdef\@JourName{#1}}
+\providecommand\@JourName{\hbox{ }}
+
+\DeclareDocumentCommand{\PaperYear}{G{\the\year}}{%
+ \gdef\@PaperYear{#1}%
+ }
+\providecommand\@PaperYear{\the\year}
+
+\def\@PreprintStringL{PREPRINT FOR REVIEW}
+\def\@PreprintStringR{PREPRINT FOR REVIEW}
+
+\NewDocumentCommand{\PreprintString}{m o}{%
+ \IfNoValueTF{#2}{%
+ \gdef\@PreprintStringL{#1}%
+ \gdef\@PreprintStringR{#1}%
+ }{%
+ \ifx R#2{\gdef\@PreprintStringR{#1}}\else\relax\fi
+ \ifx L#2{\gdef\@PreprintStringL{#1}}\else\relax\fi
+ }
+}
+
+\newcommand{\PaperNumber}[1]{\gdef\@PaperNumber{#1-}}
+\providecommand\@PaperNumber{\relax}
+
+%%%%%%
+
+\RequirePackage{fancyhdr}
+\pagestyle{fancy}
+
+\fancyhf{} % clear all header and footer fields
+\renewcommand{\headrulewidth}{0pt}
+\renewcommand{\footrulewidth}{0pt}
+\fancyfoot[RE]{\large\bfseries\sffamily Transactions of the ASME}
+\fancyfoot[LO]{\large\bfseries\sffamily Journal of \@JourName}
+\fancyfoot[RO]{\large\sffamily \@PreprintStringR\space\space\bfseries/\space\space\@PaperNumber\thepage}
+\fancyfoot[LE]{\large\sffamily {\bfseries \@PaperNumber\thepage\space\space/}\space\space\@PreprintStringL\ }
+
+
+\fancypagestyle{title}{%
+\fancyhf{} % clear all header and footer fields
+\renewcommand{\headrulewidth}{0pt}
+\renewcommand{\footrulewidth}{0pt}
+\fancyfoot[RO]{\large\sffamily \@PreprintStringR\space\space\bfseries/\space\space\@PaperNumber\thepage}
+\fancyfoot[LO]{\large\bfseries\sffamily Journal of \@JourName}
+\fancyfoot[CO]{\large\bfseries\sffamily Copyright \textcopyright\ \@PaperYear\ by ASME}
+}
+
+
+%%%%%% Footnotes %%%%%%%
+
+\RequirePackage{fnpos}
+\makeFNbottom
+\makeFNbelow
+
+\setlength{\skip\footins}{12pt plus 2pt minus 1pt}
+
+\renewcommand{\footnoterule}{%
+ \kern -3pt
+ \hrule width 0.5in height 0.5pt
+ \kern 2pt
+}
+
+%% reduce indentation of footnotes
+\renewcommand\@makefntext[1]{%
+ \noindent\makebox[4mm][r]{\@makefnmark}\hyphenpenalty=300\exhyphenpenalty=300 #1} %<== suppress hyphenation
+
+%% Produces an unmarked footnote about the submission date. Insert \reviewfootnote{..} on first page if desired.
+\def\reviewfootnote{\gdef\@thefnmark{}\@footnotetext}
+
+%%%%%%%%% CAPTION RELATED %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage[labelfont={sf,bf},hypcap=false]{caption}
+\RequirePackage[hypcap=false,list=true]{subcaption}
+
+\DeclareCaptionTextFormat{boldmath}{\mathversion{sansbold}#1}
+
+\captionsetup[figure]{labelfont={sf,bf},textfont={sf,bf},textformat=boldmath,labelsep=quad}
+\captionsetup[table]{labelfont={sf,bf},textfont={sf,bf},textformat=boldmath,labelsep=quad,skip=0.5\baselineskip}
+
+
+%%%%%%%%%%%% SECTION HEADINGS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% wish to accommodate hyperref
+
+\RequirePackage[raggedright,indentafter]{titlesec}
+
+\titleformat{\section}{\mathversion{bold}\bfseries\large\raggedright}{\thesection}{1em}{}
+\titleformat{\subsection}[runin]{\mathversion{bold}\bfseries}{\thesubsection}{1em}{}[.]
+\titleformat{\subsubsection}[runin]{\itshape}{\thesubsubsection}{1em}{}[.]
+
+\titlespacing\section{0pt}{14pt plus 3pt minus 2pt}{3pt plus 2pt minus 1pt}
+\titlespacing{\subsection}{\parindent}{12pt plus 3pt minus 2pt}{0.5em}
+\titlespacing{\subsubsection}{\parindent}{12pt plus 3pt minus 2pt}{0.5em}
+
+%% ASME style does not seem to go lower than third level heading, so ...
+%% ....putting \paragraph into \subsubsection settings.
+\titleformat{\paragraph}[runin]{\itshape}{\thesubsubsection}{0.5em}{}[.]
+\titlespacing{\paragraph}{\parindent}{14pt plus 3pt minus 2pt}{0.5em}
+
+%% Special handling of the appendices
+%% Assumes that appendices are the last technical content in paper
+\RenewDocumentCommand{\appendix}{}{%
+ \pdfbookmark[1]{Appendices}{appendices}
+ \setcounter{section}{0}
+ \renewcommand\thesection{\Alph{section}}
+ \setcounter{equation}{0}
+ \renewcommand\theequation{\Alph{section}\arabic{equation}}
+ \titleformat{\section}[block]{\mathversion{bold}\bfseries\large\raggedright}{\appendixname\ \thesection:}{0.5em}{}[\setcounter{equation}{0}]
+}
+
+% natbib's \bibsection controls section heading for References.
+
+
+%%%%%%%%%%%%%%%%% List environments %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{enumitem}
+
+\setlist[enumerate,1]{label = (\arabic*), ref = (\arabic*),labelindent=3mm, leftmargin=*,noitemsep}
+%% have no examples of sublists...
+
+%%%%%%%%%%%%%%%%% Hyperref %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{hyperxmp} %% to fix transfer of metadata to Acrobat pdf
+
+\RequirePackage[%
+ unicode, % Unicode encoded PDF strings
+ psdextra, % additional support for math in pdf bookmarks
+ pdfborder={0 0 0},%
+ bookmarks=true, %
+ bookmarksnumbered=true,%
+ bookmarksopen=true,%
+ bookmarksopenlevel=1,%
+ colorlinks=true,%
+ linkcolor=blue, %
+ citecolor=blue, %
+ urlcolor=blue, %
+ breaklinks=true,%
+ pdftitle={}, % <=== add in .tex file
+ pdfkeywords={}, % <=== add in .tex file
+ pdfnewwindow=true,%
+ pdfpagelayout=TwoPageRight,%
+ pdfauthor={}, % <=== add in .tex file
+ pdfdisplaydoctitle=true%
+ ]{hyperref}
+
+\urlstyle{same} % don't switch to typewriter font
+
+\RequirePackage{doi} % provides hyperlinks for doi in bibliography
+\renewcommand{\doitext}{doi:~} % change the default, {doi:}, to this for ASME specification
+
+
+%% Since \bm is useful in headings, this fix will reduce frequency with which
+%% alternate pdfstrings must be given in section command as \section[pdfstring]{texstring}
+\pdfstringdefDisableCommands{%
+ \def\bm#1#{\relax}%
+}
+
+%% Let's just remove citations from pdf bookmarks
+\pdfstringdefDisableCommands{%
+ \def\cite{\@gobble}%
+}
+
+%% Let's make sure footnotes in section headings don't break pdf bookmarks.
+\RequirePackage{etoolbox}
+\robustify{\footnote}
+\pdfstringdefDisableCommands{%
+ \def\footnote#1{}%
+}
+
+%%% Create an optional argument for unnumbered sections and set pdf bookmark (thru \addcontentsline).
+%%% The optional argument will manually set the pdf bookmark for that section; can be used to avoid hyperref
+%%% errors when macros are in section titles.
+%%% There should not be errors for $$, \cite, \ref, \label, \footnote, or \bm with current construction.
+\let\svsection\section
+\RenewDocumentCommand{\section}{s o m}{%
+ \IfBooleanTF {#1}
+ {\svsection*{#3}\phantomsection
+ {\IfNoValueTF {#2}
+ {\addcontentsline{toc}{section}{#3} }
+ {\addcontentsline{toc}{section}{#2} }
+ }
+ }
+ {\IfNoValueTF {#2}
+ {\svsection{#3}}
+ {\svsection[#2]{#3}}
+ }
+}
+
+
+%%%%%%%%%%%%% define Nomenclature environment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Nomenclature environment in ASME Journal Style
+%% Run twice to get proper label width.
+%% Set first optional argument (a dimension) to override automatic label width (e.g., if one label is excessive)
+%% Second argument can be used to rename the section, e.g., to List of Symbols.
+%%
+
+\newlength\widest
+\newlength\@widest
+\newlength\nomenwidth
+\newlength\savitemsep
+
+%% If the second argument of \entry is omitted, a bold section heading is produced, e.g. \entry{Greek Letters}
+\DeclareDocumentCommand{\entry}{m g}{%
+ \IfNoValueTF{#2}{%
+ \itemsep12\p@ plus 4\p@ minus 4\p@% \bigskip
+ \goodbreak\item[\bfseries#1\hfill]\itemsep3\p@ plus 1\p@ minus 1\p@\nopagebreak% \smallskip, ASME closer to \medskip
+ }{%
+ \item[\hfill#1${} = {}$]#2%
+ \setlength\itemsep\savitemsep
+ \settowidth\@widest{#1${} = {}$}%
+ \ifdim\@widest>\widest \global\setlength\widest\@widest\fi%
+ }
+}
+
+\RequirePackage{totcount}
+\newtotcounter{savedlength}
+% a total counter for saving the value of \nomenwidth
+
+\AtBeginDocument{\setlength{\nomenwidth}{\totvalue{savedlength}sp}}
+% value is the length in scaled points (sp)
+
+\DeclareDocumentEnvironment{nomenclature}{O{\nomenwidth} O{\nomname}}{%
+ \setlength{\widest}{0em}
+ \section*{#2}
+ \raggedright
+ \begin{list}{}{%
+ \setlength{\topsep}{0pt}
+ \setlength{\partopsep}{0pt}
+ \setlength{\itemsep}{0pt}
+ \setlength{\parsep}{\itemsep}
+ \setlength{\labelsep}{0em}
+ \setlength{\labelwidth}{#1}
+ \setlength{\leftmargin}{\labelwidth}
+ \addtolength{\leftmargin}{\labelsep}
+ \setlength\savitemsep\itemsep
+ }%
+ }{%
+ \setcounter{savedlength}{\widest}%
+ \end{list}%
+}
+
+%%%%%%%%%%%%%%%% List of figures and list of tables %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifthenelse{\boolean{lists}}{% ASME requires these lists for production.
+ \AtEndDocument{%
+ \clearpage
+ \twocolumn[%
+ \begin{@twocolumnfalse}
+ \listoffigures
+ \listoftables
+ \end{@twocolumnfalse}
+ ]%
+ }
+ }{%
+ \ClassWarningNoLine{asmejour}{Omitting lists of figures and tables}%
+}
+
+%%%%%%%%%%%%%%%% Author/Title/Abstract block %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\papertitle}[1]{\gdef\@papertitle{#1}}
+\providecommand\@papertitle{\hbox{ }}
+
+\newcommand{\PaperTitle}{%
+\par\vspace*{6mm}%
+\parbox{\linewidth}{\centering{\bfseries\Large%
+\MakeTextUppercase{\@papertitle}%
+\thispagestyle{title}\par} %% <=== \par gets the font leading to stick.
+ }%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{xcoffins}
+
+\NewCoffin{\authorblock}
+\NewCoffin{\ruleblock}
+\NewCoffin{\Abstract}
+\NewCoffin{\Title}
+
+\NewCoffin{\firstrowauthorblock}
+\SetHorizontalCoffin\firstrowauthorblock{}
+
+\newlength{\coffinsep} %%% space between coffins
+\setlength{\coffinsep}{4.5mm}
+
+\newcounter{authorno}
+\setcounter{authorno}{0}
+
+%%%%%%
+
+\newlength{\rulecofheight}
+\newlength{\Titleheight}
+
+\DeclareDocumentCommand\SetAuthorBlock{m m}{%
+ \addtocounter{authorno}{1}%
+ \SetVerticalCoffin{\authorblock}{48.2mm}{%
+ \raggedleft\sffamily%
+ {\huge\CondSansBold\ignorespaces#1\ignorespaces}\\
+ \CondSans#2%
+}
+\ifnum\value{authorno}=1
+ \JoinCoffins\firstrowauthorblock\authorblock
+ \setlength{\rulecofheight}{\CoffinTotalHeight\firstrowauthorblock}
+ \else
+ \JoinCoffins\firstrowauthorblock[hc,b]\authorblock[hc,t](0pt,-\coffinsep)
+ \setlength{\rulecofheight}{\CoffinTotalHeight\firstrowauthorblock}
+\fi
+}
+
+
+\DeclareDocumentCommand\SetTitle{m}{%
+ \SetVerticalCoffin{\Title}{114mm}{%
+ \vspace*{0.5mm}% <== ASME doesn't align bar and text
+ \noindent\Huge\CondSansBold\raggedright%
+ #1%
+ \par
+ }
+}
+
+\providecommand{\@keywords}{\relax}
+\DeclareDocumentCommand{\keywords}{g}{%
+ \IfNoValueTF{#1}{%
+ \relax}{%
+ \long\def\@keywords{\par\vskip\baselineskip\noindent{\keywordname:} #1}%
+ }
+}
+
+
+\DeclareDocumentCommand\SetAbstract{m}{%
+ \SetVerticalCoffin{\Abstract}{114mm}{%
+ \noindent\itshape%
+ #1
+ \@keywords
+ \vspace*{4mm}% <== at bottom of abstract to extend rule
+}
+}
+
+\DeclareDocumentCommand{\ConstructAuthorBlock}{}{%
+\JoinCoffins\Title[hc,b]\Abstract[hc,t](0pt,-1.5\coffinsep)
+\setlength{\Titleheight}{\CoffinTotalHeight\Title}
+\ifdim\Titleheight>\rulecofheight
+ \setlength{\rulecofheight}{\Titleheight}
+\else
+ \addtolength{\rulecofheight}{7.0mm}
+\fi
+\SetHorizontalCoffin \ruleblock {\color{\@ColorName}\rule{2.1mm}{\rulecofheight}}
+\JoinCoffins\firstrowauthorblock[vc,r]\ruleblock[vc,l](\coffinsep,0pt)
+\JoinCoffins\firstrowauthorblock[vc,r]\Title[vc,l](\coffinsep,0pt)
+\centerline{\TypesetCoffin\firstrowauthorblock} %% in this instance, \centerline is better than \centering
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Corresponding author gets footnote #1 and subsequent notes are 2, 3, ....
+%%% ASME apparently does not recognize joint first authors...so have not coded that functionality
+
+%%%% Flag for corresponding author (just one expected, although code supports more than one)
+%%%% for more than one, if including email in footnote, place in final command
+\newif\ifCA\CAfalse
+\newcommand{\CAemail}[1]{\gdef\@CAemail{#1}}
+
+
+% Allow for NO email address to be given by omitting second argument
+% ASME prefers email to be in address block, not CA footnote, although code can support the latter.
+\DeclareDocumentCommand{\CorrespondingAuthor}{g}{%
+\global\CAtrue%
+ \IfNoValueTF{#1}{%
+ \gdef\@CAsep{\relax}%
+ \gdef\@CAemail{\relax}%
+ }{%
+ \gdef\@CAsep{:\space}%
+ \gdef\@CAemail{#1}%
+ }%
+\def\@makefnmark{\hbox{\@textsuperscript{\sffamily\@thefnmark}}}%
+\footnotemark%
+\addtocounter{footnote}{-1} % in case of more than one CA
+}
+
+
+%%%%%%%%%%
+
+\DeclareDocumentCommand{\MakeTitlePage}{}{%
+\thispagestyle{title}%
+\twocolumn[
+ \begin{@twocolumnfalse}
+\ConstructAuthorBlock
+ \vspace*{12.5mm}
+ \end{@twocolumnfalse}
+]
+\ifCA
+ \addtocounter{footnote}{1}
+ \footnotetext{Corresponding author\@CAsep \@CAemail}
+\fi
+}
+%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\endinput
+%%
+%% End of file `asmejour.cls'.
+
diff --git a/macros/latex/contrib/asmejour/sample-figure-1.pdf b/macros/latex/contrib/asmejour/sample-figure-1.pdf
new file mode 100644
index 0000000000..f035e74421
--- /dev/null
+++ b/macros/latex/contrib/asmejour/sample-figure-1.pdf
Binary files differ
diff --git a/macros/latex/contrib/asmejour/sample-figure-2a.pdf b/macros/latex/contrib/asmejour/sample-figure-2a.pdf
new file mode 100644
index 0000000000..e1b735b036
--- /dev/null
+++ b/macros/latex/contrib/asmejour/sample-figure-2a.pdf
Binary files differ
diff --git a/macros/latex/contrib/asmejour/sample-figure-2b.pdf b/macros/latex/contrib/asmejour/sample-figure-2b.pdf
new file mode 100644
index 0000000000..e71d416a0b
--- /dev/null
+++ b/macros/latex/contrib/asmejour/sample-figure-2b.pdf
Binary files differ