summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/asmeconf
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-07-08 21:27:26 +0000
committerKarl Berry <karl@freefriends.org>2019-07-08 21:27:26 +0000
commit04bf73f7dcc458922f6c26d1c868424833208c82 (patch)
tree918f847fdc2a062ecdbdb21ec6f2d878a5f69cbd /Master/texmf-dist/tex/latex/asmeconf
parent381a317071160ffef7f0951f378dde40d9ecaacb (diff)
asmeconf (8jul19)
git-svn-id: svn://tug.org/texlive/trunk@51583 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/asmeconf')
-rw-r--r--Master/texmf-dist/tex/latex/asmeconf/asmeconf.cls210
1 files changed, 179 insertions, 31 deletions
diff --git a/Master/texmf-dist/tex/latex/asmeconf/asmeconf.cls b/Master/texmf-dist/tex/latex/asmeconf/asmeconf.cls
index e9ba3700990..0453465e485 100644
--- a/Master/texmf-dist/tex/latex/asmeconf/asmeconf.cls
+++ b/Master/texmf-dist/tex/latex/asmeconf/asmeconf.cls
@@ -5,7 +5,7 @@
%%
%% Please note that ASME's journals follow specifications different from ASME conference papers.
%%
-%% This file is version 1.07 dated 2019/04/20.
+%% This file is version 1.11 dated 2019/07/08.
%%
%% Author: John H. Lienhard V
%% Department of Mechanical Engineering
@@ -18,7 +18,7 @@
%% 2. With the associated amseconf.bst, match ASME's reference formats
%% 3. Maintain hyperref compatibility for pdf bookmarks and hyperlinks
%% 4. Use the newtxtext and newtxmath font packages, including relevant features
-%% 5. Provide automatic layout of author blocks for up to nine addresses
+%% 5. Provide automatic layout of author names and addresses
%% 6. Support bold face, sans serif math in headings
%%
%% This class is compatible with either pdfLaTeX or LuaLaTeX. The class uses a number of packages,
@@ -31,7 +31,7 @@
%% This class is not designed for unicode-math or fontspec, given that the ASME conference style is
%% specific with respect to the font selections.
%%
-%% Options for the class are described on lines 87-107.
+%% Options for the class are described on lines 79-126.
%%
%% The class defines two environments: abstract and nomenclature. The latter has an optional argument to
%% control the space between the entries and the definitions.
@@ -39,6 +39,9 @@
%% New commands are described in the asmeconf-template.tex file. The \section[]{} command's optional
%% argument is changed to better support pdf bookmarks, and \section* is modified similarly.
%%
+%% Commands for entering conference headers, title, abstract, and author names are specific to this class.
+%% See asmeconf-template.tex for details.
+%%
%%
% =========================================================
%%
@@ -64,7 +67,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{asmeconf}[2019/04/20 ASME Conference Paper Format]
+\ProvidesClass{asmeconf}[2019/07/08 ASME Conference Paper Format]
\LoadClass[twoside,twocolumn,10pt]{article}
% Two-sided layout not used in ASME's specs, although that's how the papers are printed
@@ -75,6 +78,9 @@
\RequirePackage{ifthen}
\newboolean{DefaultSups}
\setboolean{DefaultSups}{true}
+\newboolean{Oldauthors}
+\setboolean{Oldauthors}{false}
+
\RequirePackage{kvoptions}
\RequirePackage{kvsetkeys}
@@ -96,6 +102,11 @@
\ProcessKeyvalOptions*
+%% option to have colored hyperlinks
+\DeclareOption{colorlinks}{%
+ \PassOptionsToPackage{colorlinks=true}{hyperref}%
+ }
+
%% option to omit ASME footer
\DeclareOption{nofoot}{%
\AtBeginDocument{\pagestyle{plain}}%
@@ -110,6 +121,11 @@
%% Option not to use latex default superscripts, instead using the newtxtext superiors font [nodefaultsups]
\ifthenelse{\boolean{DefaultSups}}{\PassOptionsToPackage{defaultsups}{newtxtext}}{\relax}
+%% option to use old authors
+\DeclareOption{oldauthors}{%
+ \setboolean{Oldauthors}{true}%
+ }
+
%% Suppress warnings about mathalfa keys as unused global options
\DeclareOption*{}
@@ -130,6 +146,7 @@
\RequirePackage{graphicx}
\RequirePackage[hyperref,fixpdftex,dvipsnames,svgnames,x11names]{xcolor}
\RequirePackage{xparse}
+\RequirePackage{comment}
%%%%%%%%%%%%%%%%%%%%%%%%
@@ -144,9 +161,13 @@
\RequirePackage{mathtools} % extends amsmath
\RequirePackage[utf8]{inputenc}
\RequirePackage[]{newtxtext}
+\RequirePackage[varqu,varl]{inconsolata} % sans typewriter font
\RequirePackage[]{newtxmath}
% See package documentation
+%% override \textsu if using default superiors
+\ifthenelse{\boolean{DefaultSups}}{\let\textsu\textsuperscript}{\relax}
+
\RequirePackage[]{mathalfa} % load optional fonts for Calligraphy, Script, etc.
% See package documentation for capabilities of this package.
% Option format: mathalfa=cal=euler (etc.)
@@ -157,8 +178,9 @@
%%%% font size selection %%%%%%%%
%%%% ASME's specs differ slightly from latex standard article-10 class %%%
-\renewcommand\LARGE{\@setfontsize\LARGE{18}{21.6}} %... default is 17.28/22 ... for paper number
-\renewcommand\large{\@setfontsize\large{11}{13.6}} %... default is 12/14 ... for headings
+\renewcommand\LARGE{\@setfontsize\LARGE{16}{19.2}} %{18}{21.6}} updated 7/7/19 to match new ASME spec.
+ % ...default is 17.28/22 ... used for paper#
+\renewcommand\large{\@setfontsize\large{11}{13.6}} %... default is 12/14 ... used for headings
%\renewcommand\Large{\@setfontsize\Large{14.4}{18}} % same as default
%\renewcommand\normalsize{\@setfontsize\normalsize{10}{12}} % same as default
@@ -212,8 +234,8 @@
\RequirePackage[hypcap=false,list=true]{subcaption}
\DeclareCaptionTextFormat{boldmath}{\mathversion{sansbold}#1}
-\captionsetup[figure]{name=FIGURE,labelfont={sf,bf,small},textfont={sf,bf,small},textformat=boldmath, labelsep=period}
-\captionsetup[table]{name=TABLE,labelfont={sf,bf,small},textfont={sf,bf,small},textformat=boldmath, labelsep=period,skip=0.5\baselineskip}
+\captionsetup[figure]{name=FIGURE,labelfont={sf,bf,small},textfont={sf,bf,small},textformat=boldmath, labelsep=colon}
+\captionsetup[table]{name=TABLE,labelfont={sf,bf,small},textfont={sf,bf,small},textformat=boldmath, labelsep=colon,skip=0.5\baselineskip}
%% This construction avoids a failure of hyperref in relation to uppercase caption
%% Discussion: https://tex.stackexchange.com/questions/375695/maketextuppercase-inside-table-captions
@@ -236,9 +258,9 @@
\titleformat{\subsection}{\mathversion{sansbold}\bfseries\sffamily\raggedright}{\thesubsection}{0.5em}{}
\titleformat{\subsubsection}[runin]{\mathversion{sansbold}\bfseries\sffamily}{\thesubsubsection}{0.5em}{}[.\hspace*{0.5em}]
-\titlespacing\section{0pt}{12pt plus 4pt minus 2pt}{2pt plus 2pt minus 1pt}
+\titlespacing\section{0pt}{12pt plus 4pt minus 2pt}{1pt plus 1pt minus 1pt} % from 2 pt 2 pt 1 pt, 7/7/19
\titlespacing\subsection{0pt}{12pt plus 4pt minus 2pt}{0pt plus 2pt minus 1pt}
-\titlespacing\subsubsection{\parindent}{12pt plus 4pt minus 2pt}{0pt plus 2pt minus 1pt}
+\titlespacing\subsubsection{\parindent}{6pt plus 3pt minus 2pt}{0pt plus 2pt minus 1pt} % from 12 4 3, 7/7/19
%% Special handling of the appendices
@@ -262,10 +284,10 @@
bookmarksnumbered=true,%
bookmarksopen=true,%
bookmarksopenlevel=1,%
- colorlinks=true,%%% <=== set false to get black type, but do so in .tex file
+% colorlinks=true,%%% <=== set true to get colored type, but do so via package options
linkcolor=blue, %
- citecolor=blue, % SeaGreen4,%
- urlcolor=blue, % Red3,%
+ citecolor=blue, %
+ urlcolor=blue, %
breaklinks=true,%
pdftitle={}, % <=== add in .tex file
pdfkeywords={}, % <=== add in .tex file
@@ -341,14 +363,14 @@
\DeclareDocumentCommand{\keywords}{m}{%
\IfNoValueTF{#1}{%
\relax}{%
- \long\def\@keywords{\par\medskip\noindent{\bfseries\sffamily Keywords:} #1}%
+ \long\def\@keywords{\par\smallskip\noindent{\bfseries\sffamily Keywords:} #1}%
}
}
\DeclareDocumentEnvironment{abstract}{}{%
- \section*{Abstract}%
+ \section*{Abstract}\itshape%
}
- {\@keywords\bigskip%
+ {\upshape\@keywords%\medskip%
}
%%%%%%%%%%%% Nomenclature environment %%%%%%%%%%%%%%%%%%
@@ -363,7 +385,7 @@
%%
\DeclareDocumentCommand{\entry}{m g}{%
\IfNoValueTF{#2}{%
- \item[\itshape#1\hfill\rule{0pt}{13pt}]%
+ \item[\itshape#1\hfill]\par\smallskip%
}{%
\item[#1\hfill]#2%
}
@@ -429,10 +451,21 @@
}
-%%%%%%%%%%% Author block %%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%% Author and affiliation block %%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{xcoffins}
+%% To maintain compatibility with newtxtext superiors option, if used, save the definition
+\let\savethefootnote\thefootnote
+\let\savemakefnmark\@makefnmark
+
+
+%%%% option to retain original grid layout of authors
+\ifthenelse{\boolean{Oldauthors}}{%
+
+%%%%%%%%%%%%%%%%%%%% Old author layout %%%%%%%%%%%%%%%%%%%%%%%%%
+
\NewCoffin{\authorblock}
%% Allows for up to nine author groups... if you need more authors, the edits should be obvious
@@ -503,47 +536,163 @@
\centerline{\TypesetCoffin\firstrowauthorblock} %% in this instance, \centerline is better than \centering
}
-%% To maintain compatibility with newtxtext superiors option, if used, save the definition
-\let\savethefootnote\thefootnote
-
%% Flag for corresponding author (expecting just one, but if two enter both email addresses and flag both authors)
\newif\ifCA\CAfalse
% allow for NO email address to be given by omitting second argument
\DeclareDocumentCommand{\CorrespondingAuthor}{m g}{%
-\global\CAtrue%
- \IfNoValueTF{#2}{%
+ \global\CAtrue%
+ \IfNoValueTF{#2}{%
\gdef\@CAsep{\relax}
\gdef\@CAemail{\relax}
}{%
\gdef\@CAsep{:\space}
\gdef\@CAemail{#2}
}
-\renewcommand*{\thefootnote}{\fnsymbol{footnote}}
-\ignorespaces#1\ignorespaces\footnotemark[1]%
+ \renewcommand*{\thefootnote}{\fnsymbol{footnote}}
+ \ignorespaces#1\ignorespaces\footnotemark[1]%
}
%% Flag for joint first authors (two or more)
\newif\ifJA\JAfalse
\DeclareDocumentCommand{\JointFirstAuthor}{}{%
+ \global\JAtrue%
+ \renewcommand*{\thefootnote}{\fnsymbol{footnote}}%
+ \ignorespaces\footnotemark[2]%
+}
+
+%%% otherwise use new compact layout of authors
+}{% i.e., this begins "else"
+
+%%%%%%%%%%%%%%%%%%%%%% New author layout %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\NewCoffin{\AuthorBlock}
+\NewCoffin{\AffiliationBlock}
+\NewCoffin{\AffiliationsBlock}
+
+%% NB: \parbox width to \textwidth (full page) not \linewidth (single column)
+\SetHorizontalCoffin\AffiliationsBlock{}
+\DeclareDocumentCommand{\SetAuthors}{m}{%
+ \SetHorizontalCoffin\AuthorBlock{%
+ \parbox{\textwidth}{\centering\sffamily\bfseries\ignorespaces#1\ignorespaces}%
+ }
+}
+
+
+\def\@makefnmark{\hbox{\@textsuperscript{\sffamily\@thefnmark}}}%
+
+\DeclareDocumentCommand{\SetAffiliation}{m m}{%
+ \SetVerticalCoffin\AffiliationBlock{\textwidth}{%
+ \centering\sffamily\footnotemark[#1]#2\ignorespaces%
+ }
+ \JoinCoffins\AffiliationsBlock[hc,b]\AffiliationBlock[hc,t](0pt,-1pt)
+}
+
+
+%%% flag for corresponding author (usually just one, although you can have two by putting both email addresses
+%%% into field and attaching to both authors -- footnote will only print only the email in the last occurrence)
+
+%% Flag for corresponding author (expecting just one, but if two enter both email addresses and flag both authors)
+\newif\ifCA\CAfalse
+
+% allow for NO email address to be given by omitting second argument
+\DeclareDocumentCommand{\CorrespondingAuthor}{g}{%
+ \ignorespaces$\bm{^\ast}$%
+ \global\CAtrue%
+ \IfNoValueTF{#1}{%
+ \gdef\@CAsep{\relax}
+ \gdef\@CAemail{\relax}
+ }{%
+ \gdef\@CAsep{:\space}
+ \gdef\@CAemail{#1}
+ }
+}
+
+%%% Flag for joint first authors (two or more)
+\newif\ifJA\JAfalse
+
+\DeclareDocumentCommand{\JointFirstAuthor}{}{%
\global\JAtrue%
-\renewcommand*{\thefootnote}{\fnsymbol{footnote}}%
-\ignorespaces\footnotemark[2]%
+ $\bm{^\dagger}$%
+}
+
+%%% Affiliation mark
+\DeclareDocumentCommand{\affil}{m}{%
+ {\bfseries\footnotemark[#1]}%
+}
+
+%%% to deal with sequential notes as, e.g., "1,*", or "1,2,*" %%%%%%%%%%
+\let\oldaffil\affil
+\newcommand\nextToken\relax
+
+\renewcommand\affil[1]{%
+ \oldaffil{#1}\futurelet\nextToken\isOthernote}
+
+\newcommand\isOthernote{%
+ \ifx\CorrespondingAuthor\nextToken\textsuperscript{\sffamily\bfseries,}%
+ \else%
+ \ifx\JointFirstAuthor\nextToken\textsuperscript{\sffamily\bfseries,}%
+ \else
+ \ifx\affil\nextToken\textsuperscript{\sffamily\bfseries,}%
+ \fi%
+ \fi%
+ \fi%
+ \ignorespaces%
}
-%%%% Make the title section
+\let\oldCorrespondingAuthor\CorrespondingAuthor
+\renewcommand\CorrespondingAuthor[1]{%
+ \oldCorrespondingAuthor{#1}\futurelet\nextToken\isOthernote}
+
+\let\oldJointFirstAuthor\JointFirstAuthor
+\renewcommand\JointFirstAuthor{%
+ \oldJointFirstAuthor\futurelet\nextToken\isOthernote}
+
+\let\oldfootnote\footnote
+\renewcommand\footnote[1]{%
+ \oldfootnote{#1}\futurelet\nextToken\isOtherfnote}
+
+\newcommand\isOtherfnote{%
+ \ifx\footnote\nextToken\textsu{\mdseries,}%
+ \fi%
+}
+
+%%%
+
+\DeclareDocumentCommand{\SetAuthorBlock}{}{%
+ \let\savethefootnote\thefootnote
+ \JoinCoffins\AuthorBlock[hc,b]\AffiliationsBlock[hc,t](0pt,-\baselineskip)
+ \centerline{\TypesetCoffin\AuthorBlock}
+ \renewcommand*{\thefootnote}{\fnsymbol{footnote}}
+ \ifJA
+ \footnotetext[2]{Joint first authors}
+ \fi
+ \ifCA
+ \footnotetext[1]{Corresponding author:\space\@CAemail}
+ \fi
+ \let\thefootnote\savethefootnote
+}
+
+} %% end ifthenelse for Oldauthors
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%% Make the title and author section
\DeclareDocumentCommand{\MakeTitlePage}{}{%
\twocolumn[
\begin{@twocolumnfalse}
\HeaderConfName
\paperno
\papertitle
- \vspace*{1\baselineskip} % <=== an additional line is embedded in \papertitle
-\ConstructAuthorBlock
+ \vspace*{2\baselineskip}
+ \ifthenelse{\boolean{Oldauthors}}{%
+ \ConstructAuthorBlock}{%
+ \SetAuthorBlock}
\vspace*{3\baselineskip}
\end{@twocolumnfalse}
]
+\let\@makefnmark\savemakefnmark
\renewcommand*{\thefootnote}{\fnsymbol{footnote}}
\ifJA
\footnotetext[2]{Joint first authors}
@@ -554,7 +703,6 @@
\let\thefootnote\savethefootnote
}
-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Provide sans serif upright Greek letters, following a suggestion