diff options
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/asmejour/asmejour.cls | 128 |
1 files changed, 103 insertions, 25 deletions
diff --git a/Master/texmf-dist/tex/latex/asmejour/asmejour.cls b/Master/texmf-dist/tex/latex/asmejour/asmejour.cls index 72087ac48de..beb43646347 100644 --- a/Master/texmf-dist/tex/latex/asmejour/asmejour.cls +++ b/Master/texmf-dist/tex/latex/asmejour/asmejour.cls @@ -1,12 +1,12 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% -%% This file provides the asmejour class for formatting =papers in a layout similar to +%% 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. +%% This file is version 1.06 dated 2019/10/01. %% %% Author: John H. Lienhard V %% Department of Mechanical Engineering @@ -20,7 +20,7 @@ %% 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. +%% Options for the class are described on lines 63-173. %% %% The class defines an environment for nomenclature. LaTeX must be run twice to align those columns. %% @@ -52,7 +52,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{asmejour}[2019/08/17 asmejour paper format] +\ProvidesClass{asmejour}[2019/10/01 asmejour paper format] \LoadClass[twoside,9pt,twocolumn]{extarticle} @@ -66,11 +66,14 @@ \newboolean{lineno} \setboolean{lineno}{false} +\newboolean{balance} +\setboolean{balance}{false} + \newboolean{lists} \setboolean{lists}{true} \RequirePackage{kvoptions} -\RequirePackage{kvsetkeys} +%\RequirePackage{kvsetkeys} %<== this package is called by kvoptions \SetupKeyvalOptions{ family=asmejour, prefix=asmejour@, @@ -98,7 +101,16 @@ \setboolean{lineno}{#1} } +%%% set key [balance] to activate final column balancing. +\define@key{asmejour}{balance}[true]{% + \setboolean{balance}{#1} +} + %%% set key [lang,lang-second,lang-third] to pass languages to babel. + +%% In case language options are dropped during editing, include this. Subsequent choice of lang= will override it. +\PassOptionsToPackage{english}{babel} + \define@key{asmejour}{lang}[english]{% \PassOptionsToPackage{#1}{babel}% } @@ -197,6 +209,9 @@ \RequirePackage[]{newtxtext} \RequirePackage[varqu,varl]{inconsolata} % sans typewriter font \RequirePackage[]{newtxmath} + +%% override \textsu if using default superiors +\ifthenelse{\boolean{DefaultSups}}{\let\textsu\textsuperscript}{\relax} \RequirePackage[]{mathalfa} % load optional fonts for Calligraphy, Script, etc. @@ -249,30 +264,53 @@ \providecommand{\keywordname}{Keywords} -%%%%%%%%%%%%%%%%% LINE AND EQUATION NUMBERING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%% EQUATION AND LINE NUMBERING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% ASME puts equation tags in blue +\RequirePackage{xpatch} +\xpatchcmd{\tagform@}{(\ignorespaces#1\unskip\@@italiccorr)}{\color{blue}(\ignorespaces#1\unskip\@@italiccorr)}{}{} + +%% Ensure that the current font is used for equation tags, not \normalfont as set by amsmath +\def\maketag@@@#1{\hbox{\m@th#1}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthenelse{\boolean{lineno}}{% - \RequirePackage[switch]{lineno} + \RequirePackage[switch,mathlines]{lineno} \renewcommand{\linenumberfont}{\normalfont\footnotesize\color{red}} \AtBeginDocument{\linenumbers} \ClassWarningNoLine{asmejour}{Package lineno loaded, so final column balancing is disabled} +%%% Allow line numbering in AMS math environments. +%%% postdisplaypenalty adjusted to avoid extra line number at end, see discussion here: https://tex.stackexchange.com/a/461192/ +%%% multline has some problem that puts an extra line number above it. +%%% Requires xparse and etoolbox +\NewDocumentCommand{\losepostpenalty}{}{\patchcmd{\linenomathWithnumbers}{\advance\postdisplaypenalty\linenopenalty}{}{}{}} + +\NewDocumentCommand{\FixAMSMath}{m}{% + \AtBeginEnvironment{#1}{\losepostpenalty\linenomath}% + \AtEndEnvironment{#1}{\endlinenomath}% + \AtBeginEnvironment{#1*}{\losepostpenalty\linenomath}% + \AtEndEnvironment{#1*}{\endlinenomath}% +} + +\NewDocumentCommand{\FixAll}{>{\SplitList{;}}m}{\ProcessList{#1}{\FixAMSMath}} +\FixAll{align;alignat;gather;flalign;multline} + }{% - \RequirePackage{flushend} % flushend package is NOT compatible with lineno + \ProvideDocumentEnvironment{linenomath}{}{}{} + \ifthenelse{\boolean{balance}}{% balancing through flushend can produce weird errors + \RequirePackage{flushend} % flushend package is NOT compatible with lineno \AtEndDocument{\flushcolsend} + }{\relax} } \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 %%%%%%%%%% +%%%%%%%%%%% footer text names %%%%%%%%%%%%%%% \newcommand{\JourName}[1]{\gdef\@JourName{#1}} \providecommand\@JourName{\hbox{ }} @@ -340,8 +378,27 @@ \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} +%% Produces an unmarked footnote about the revision date. +%% This command is invoked by \date as part of \MakeTitlePage below. +%% Text can be anything given as the argument to \date{..}. +\NewDocumentCommand{\revfootnote}{m}{\begin{NoHyper}\gdef\@thefnmark{}\@footnotetext{#1}\end{NoHyper}} + +% Previous is modified to eliminate missing anchor warning from hyperref that following would cause +%\def\revfootnote{\gdef\@thefnmark{}\@footnotetext} + + +%% include a comma for sequential footnotes +\newcommand\nextToken\relax + +\let\oldfootnote\footnote +\renewcommand\footnote[1]{% + \oldfootnote{#1}\futurelet\nextToken\isOtherfnote} + +\newcommand\isOtherfnote{% + \ifx\footnote\nextToken\textsu{\mdseries,}% + \fi% +} + %%%%%%%%% CAPTION RELATED %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -391,7 +448,7 @@ \RequirePackage{enumitem} \setlist[enumerate,1]{label = (\arabic*), ref = (\arabic*),labelindent=3mm, leftmargin=*,noitemsep} -%% have no examples of sublists... +%% I have no examples of sublists... %%%%%%%%%%%%%%%%% Hyperref %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -601,18 +658,17 @@ } } - \DeclareDocumentCommand\SetAbstract{m}{% \SetVerticalCoffin{\Abstract}{114mm}{% \noindent\itshape% #1 - \@keywords + \@keywords\par% \vspace*{4mm}% <== at bottom of abstract to extend rule } } \DeclareDocumentCommand{\ConstructAuthorBlock}{}{% -\JoinCoffins\Title[hc,b]\Abstract[hc,t](0pt,-1.5\coffinsep) +\JoinCoffins\Title[l,b]\Abstract[l,t](0pt,-1.5\coffinsep) \setlength{\Titleheight}{\CoffinTotalHeight\Title} \ifdim\Titleheight>\rulecofheight \setlength{\rulecofheight}{\Titleheight} @@ -627,10 +683,10 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% 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 +%%% ASME apparently does not recognize joint first authors...so I 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 +%%%% Flag for corresponding author (just one expected, although this code supports more than one) +%%%% for more than one CA, if including email addresses in the footnote, place them in final the command \newif\ifCA\CAfalse \newcommand{\CAemail}[1]{\gdef\@CAemail{#1}} @@ -666,9 +722,31 @@ \addtocounter{footnote}{1} \footnotetext{Corresponding author\@CAsep \@CAemail} \fi +\ifDate\revfootnote{\@Date} \else\relax \fi } -%%% +%%%%%%%%%% + +%% Provide compatibility with titling commands from standard LaTeX article class + +\RenewDocumentCommand{\maketitle}{}{\MakeTitlePage} +\RenewDocumentCommand{\title}{}{\SetTitle} + +\RenewDocumentEnvironment{abstract}{+b}{\gdef\tmp{\SetAbstract{#1}}\aftergroup\tmp}{} +%% Thanks to DPC for the suggestion of \gdef\tmp{... + +%% Put date as an unnumbered footnote at bottom of first column +\newif\ifDate\Datetrue % If true, print a date. + +\ExplSyntaxOn +\RenewDocumentCommand{\date}{m} + {% + \tl_if_empty:nTF {#1}{\global\Datefalse}{\gdef\@Date{#1}}% + } +\providecommand\@Date{\today} +\ExplSyntaxOff + +\RenewDocumentCommand{\thanks}{m}{\relax} %% disabling this standard command, as it is inconsistent with the format %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |