diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/asmeconf')
-rw-r--r-- | Master/texmf-dist/tex/latex/asmeconf/asmeconf.cls | 210 |
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 |