diff options
author | Karl Berry <karl@freefriends.org> | 2025-01-26 21:02:11 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2025-01-26 21:02:11 +0000 |
commit | 014ad61ed29e9c7e5fe5cb473ffc4a0c497d7766 (patch) | |
tree | d675a9f172331ed3e110d751774b03358bad093c /Master | |
parent | 2d2767490e2b1bc062bd18b3e07a8609d613ed53 (diff) |
asmejour (26jan25)
git-svn-id: svn://tug.org/texlive/trunk@73602 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/latex/asmejour/README.md | 15 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/asmejour/asmejour-sample.bib | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/asmejour/asmejour-template.pdf | bin | 728579 -> 729440 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/asmejour/asmejour-template.tex | 43 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/asmejour/asmewide_example/asmejour-wide-equation-examples.pdf | bin | 2982565 -> 2979461 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/asmejour/asmewide_example/asmejour-wide-equation-examples.tex | 14 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/asmejour/asmewide_example/asmewide.sty | 26 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/asmejour/asmejour.cls | 194 |
8 files changed, 164 insertions, 132 deletions
diff --git a/Master/texmf-dist/doc/latex/asmejour/README.md b/Master/texmf-dist/doc/latex/asmejour/README.md index 612e0b027a6..4acfe2b725b 100644 --- a/Master/texmf-dist/doc/latex/asmejour/README.md +++ b/Master/texmf-dist/doc/latex/asmejour/README.md @@ -1,11 +1,11 @@ #asmejour: A template for ASME journal papers# - Version 1.23 dated 2024/07/24. + Version 1.24 dated 2025/01/26. ####Overview#### This class provides a template to format preprints in the style of journal papers published by the American Society of Mechanical Engineers. - The layout and reference formats follow the style of published papers in 2023. + The layout and reference formats follow the style of published papers in 2025. This work is not a publication of ASME. @@ -67,6 +67,15 @@ ####Change log#### +v1.24 (2025/01/26) + - Drop metalogo package + - Add optional line numbers to author and title text + - Rescale roman, helvetica, and typewriter fontdimens under fontspec to match pdftex + - Define \\@title + - Replace xcoffin package by expl3 coffins, and resolve related tagging problem + - Edits to asmewide.sty: set \\@RuleWidth at end of \\maketitle; add \\ignorespacesafterend + - Minor code clean-up + v1.23 (2024/07/24) - Add class option for single-column formatting, \[singlecolumn\], as sometimes requested for review (thanks Lennart Hultgren) - Change language sample from French to German, to avoid active characters (from Fourier to Pohlhausen) @@ -169,7 +178,7 @@ v1.00: initial release ####License#### - Copyright (c) 2021 John H. Lienhard + Copyright (c) 2025 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, diff --git a/Master/texmf-dist/doc/latex/asmejour/asmejour-sample.bib b/Master/texmf-dist/doc/latex/asmejour/asmejour-sample.bib index 08438fd94d9..fd2888e77b8 100644 --- a/Master/texmf-dist/doc/latex/asmejour/asmejour-sample.bib +++ b/Master/texmf-dist/doc/latex/asmejour/asmejour-sample.bib @@ -1,6 +1,6 @@ %% Sample bibliography file for asmejour.bst and asmejour.cls %% -%% Revised: 21 July 2024 +%% Revised: 9 August 2024 %% Copyright John H. Lienhard, MIT %% Offered under the MIT license: https://ctan.org/license/mit @@ -432,7 +432,7 @@ } @article{montijano2014, - title = {Numerical Methods With {\LuaLaTeX}}, + title = {Numerical Methods With {\hologo{LuaLaTeX}}}, author = {Juan I. Montijano and Mario P{\'{e}}rez and Luis R{\'{a}}ndez and Juan Luis Varona}, year = 2014, volume = 35, diff --git a/Master/texmf-dist/doc/latex/asmejour/asmejour-template.pdf b/Master/texmf-dist/doc/latex/asmejour/asmejour-template.pdf Binary files differindex c15cc9f7977..e90e6b0fa17 100644 --- a/Master/texmf-dist/doc/latex/asmejour/asmejour-template.pdf +++ b/Master/texmf-dist/doc/latex/asmejour/asmejour-template.pdf diff --git a/Master/texmf-dist/doc/latex/asmejour/asmejour-template.tex b/Master/texmf-dist/doc/latex/asmejour/asmejour-template.tex index 7e3f8a29306..be61d6561bc 100644 --- a/Master/texmf-dist/doc/latex/asmejour/asmejour-template.tex +++ b/Master/texmf-dist/doc/latex/asmejour/asmejour-template.tex @@ -3,7 +3,7 @@ %% %% This file is asmejour-template.tex, a template to format papers in the style of ASME journal papers. %% -%% This file is version 1.23 dated 2024/07/24 +%% This file is version 1.24 dated 2024/01/26 %% %% Author: John H. Lienhard V %% Department of Mechanical Engineering @@ -35,23 +35,14 @@ %% %% * Option for single column formatting [singlecolumn]. %% -%% * Options for PDF/A compliance. With pdfTeX, [pdf-a] will produce PDF/A-3u compliance with sRGB OutputIntent. -%% * [pdfapart= 1 or 2 or 3] and [pdfaconformance= b or u] will select other levels: 1b, 2b, 2u, and 3b. -%% * -%% * Recently, LaTeX (2021 and later) has integrated support for pdf-a, through the \DocumentMetadata{..} -%% * command. This approach works with both pdfTeX and luaLaTeX. The asmeconf class supports this new feature, -%% * which can replace the aforementioned class options. (An up-to-date LaTeX installation is required.) -%% %% * 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. %% %% * Math options from M. Sharpe's newtxmath package: upright integrals [upint]; -%% * [varvw] for a v and w that are better distinguished from Greek nu; [subscriptcorrection] -%% * to fine-tune the placement of math subscripts; and also additional options such as -%% * [smallerops, varg, slantedGreek, frenchmath, varbb, cmbraces]. Version 1.6 or higher -%% * is recommended. +%% * [varvw] for a v and w that are better distinguished from Greek nu; and other options +%% * such as [smallerops, varg, slantedGreek, frenchmath, varbb, cmbraces]. %% %% * With pdfTeX, an option to use newtxtext's slightly larger small capitals font [largesc] %% @@ -64,6 +55,13 @@ %% * abstract in an appendix), e.g. [german]. The main language will default to English %% * unless a different main language is selected, e.g. [main=spanish]. See Appendix B for details. %% +%% * Legacy options for PDF/A compliance. With pdfTeX, [pdf-a] will produce PDF/A-3u compliance with sRGB OutputIntent. +%% * [pdfapart= 1 or 2 or 3] and [pdfaconformance= b or u] will select other levels: 1b, 2b, 2u, and 3b. +%% * +%% * Since 2022, LaTeX has included integrated support for pdf-a, through the \DocumentMetadata{..} +%% * command. This preferred approach works with both pdfTeX and luaLaTeX. The asmeconf class supports this new feature, +%% * which can replace the aforementioned class options. (An up-to-date LaTeX installation is required.) +%% %% For details of the newtx and mathalfa packages, refer to their documentation (available at CTAN: http://ctan.org). %% %% The use of commands defined or modified by the asmejour class is illustrated below. In particular, some care @@ -73,7 +71,7 @@ %% %% LICENSE: %% -%% Copyright (c) 2024 John H. Lienhard +%% Copyright (c) 2025 John H. Lienhard %% %% Offered under the MIT license: https://ctan.org/license/mit %% @@ -82,10 +80,10 @@ %% RECOMMENDED new pdf management code. %% This addition the LaTeX kernel was made by the LaTeX Project team in June 2022. %% see https://www.latex-project.org/news/latex2e-news/ltnews35.pdf -%% Uncomment the next lines and omit the option [pdf-a], if you are using an up-to-date LaTeX platform +%% If you have problems with these lines, your LaTeX format may be out of date. You can comment them out. \DocumentMetadata{% - pdfstandard=A-3u,% A-2b, A-2u, A-3b, or A-3u (don't use u options with LuaLaTeX) + pdfstandard=A-3u,% A-2b, A-2u, A-3b, or A-3u. Don't use u option (unicode) with LuaLaTeX. pdfversion=1.7, lang=en-US, } @@ -93,7 +91,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Class options are described above. -\documentclass[nocopyright,upint,varvw,barcolor=Goldenrod3,mathalfa=cal=euler,balance,hyphenate,german]{asmejour}% subscriptcorrection,french +\documentclass[nocopyright,upint,varvw,barcolor=Goldenrod3,mathalfa=cal=euler,balance,hyphenate,german]{asmejour}% %%%% pdf metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -423,8 +421,8 @@ Note that bookmarks can include simple math. Also note that \texttt{newtxmath} p %%%%%%%%%%%%%%%%%%% begin linewidth table %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{table}[t] +\caption{Table at full column width with columns in math mode}\label{tab:3} \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} \begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}CCCC@{\extracolsep{\fill}}} \toprule X_{z} & X_{c} & X_{c,m} & X_{c,2}\rule{0pt}{8pt}\\ @@ -460,13 +458,10 @@ The footers are all generated with the \texttt{fancyhdr} package~\cite{oostrum}, \subsection{Federal Copyright Notices} Several types of copyright statement can be placed an unnumbered footnote on the first page. Use the option \texttt{[govt]} when all authors are federal employees, \texttt{[govtsome]} when some authors are federal employees, and \texttt{[contractor]} when the authors are federal contractors. -\subsection{Archivability:~PDF/A} Compliance with PDF/A standards can be enabled using the option \texttt{[pdf-a]} -when running with \hologo{pdfLaTeX}. The -default setting is for PDF/A-3u with sRGB OutputIntent (\texttt{sRGB.icc}). If levels 1b, 2b, 2u, or 3b are preferred, use the -options \texttt{[pdfapart=1 or 2 or 3]} and \texttt{[pdfaconformance=b or u]}. Note that accessible -conformance~(\texttt{a}) is not currently possible with \LaTeX. +\subsection{Archivability:~PDF/A} In June 2022, the \LaTeX 3 team added support for PDF/A to the \LaTeX\ kernel, using the command \verb|\DocumentMetadata{..}|. This approach works with \textit{both} \hologo{pdfLaTeX} and \hologo{LuaLaTeX}. Note that accessible conformance~(\texttt{a}) is still under development by the \LaTeX3 team. -As of June 2022, the \LaTeX 3 team has added native support for PDF/A in the \LaTeX\ kernel, using \verb|\DocumentMetadata{..}|. This approach works with \textit{both} \hologo{pdfLaTeX} and \hologo{LuaLaTeX}. The class options previously mentioned can be omitted when using \verb|\DocumentMetadata{..}|. +For out-of-date \LaTeX\ formats, compliance with PDF/A standards can be enabled using the legacy option \texttt{[pdf-a]} when running with \hologo{pdfLaTeX}. The default setting is PDF/A-3u with sRGB OutputIntent (\texttt{sRGB.icc}). If levels 1b, 2b, 2u, or 3b are desired, use the +options \texttt{[pdfapart=1 or 2 or 3]} and \texttt{[pdfaconformance=b or u]}. Accessible conformance~(\texttt{a}) is not possible with this method. \subsection{Typewriter Font Options} This font is the sans-serif, monospaced font \texttt{inconsolata}. By default, the word spacing is variable, but option \texttt{[mono]} ends this behavior. A slashed zero is the default; option \texttt{[var0]} removes the slash. Option \texttt{[hyphenate]} enables hyphenation of the typewriter font when running \hologo{pdfTeX}. @@ -511,7 +506,7 @@ As of June 2022, the \LaTeX 3 team has added native support for PDF/A in the \La \section{Conclusions} 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 references are shown in the \texttt{asmejour-sample.bib} file. The \texttt{asemjour.bst} file produces references following ASME's current formats. The code is compatible with both {\hologo{pdfLaTeX}} and \LuaLaTeX. This package is not a publication of ASME and is offered at no cost under the terms of the \hrefurl{https://ctan.org/license/mit}{MIT license}. +Documentation is provided in this file and by comments in the \texttt{.tex} source code. Examples of references are shown in the \texttt{asmejour-sample.bib} file. The \texttt{asemjour.bst} file produces references following ASME's current formats. The code is compatible with both {\hologo{pdfLaTeX}} and \hologo{LuaLaTeX}. This package is not a publication of ASME and is offered at no cost under the terms of the \hrefurl{https://ctan.org/license/mit}{MIT license}. \begin{enumerate} \item First conclusion diff --git a/Master/texmf-dist/doc/latex/asmejour/asmewide_example/asmejour-wide-equation-examples.pdf b/Master/texmf-dist/doc/latex/asmejour/asmewide_example/asmejour-wide-equation-examples.pdf Binary files differindex c3b0bc535e1..e4ce8701021 100644 --- a/Master/texmf-dist/doc/latex/asmejour/asmewide_example/asmejour-wide-equation-examples.pdf +++ b/Master/texmf-dist/doc/latex/asmejour/asmewide_example/asmejour-wide-equation-examples.pdf diff --git a/Master/texmf-dist/doc/latex/asmejour/asmewide_example/asmejour-wide-equation-examples.tex b/Master/texmf-dist/doc/latex/asmejour/asmewide_example/asmejour-wide-equation-examples.tex index 5a506330aa4..c9f85806837 100644 --- a/Master/texmf-dist/doc/latex/asmejour/asmewide_example/asmejour-wide-equation-examples.tex +++ b/Master/texmf-dist/doc/latex/asmejour/asmewide_example/asmejour-wide-equation-examples.tex @@ -1,6 +1,6 @@ %% Examples of a widetext macro for setting wide equations in the asmejour class. %% -%% Copyright (c) 2024 John H. Lienhard. Use under the MIT license: https://ctan.org/license/mit +%% Copyright (c) 2025 John H. Lienhard. Use under the MIT license: https://ctan.org/license/mit %% %% %% USAGE: * \begin{widetext} ...wide material here... \end{widetext} @@ -12,11 +12,17 @@ %% %% NB: the strip environment from cuted is incompatible with the [lineno] option to asmejour! %% -\documentclass[nocopyright,nolists,pdf-a]{asmejour} +\DocumentMetadata{% + pdfstandard=A-3u,% A-2b, A-2u, A-3b, or A-3u (don't use u options with LuaLaTeX) + pdfversion=1.7, + lang=en-US, +} + +\documentclass[nocopyright,nolists]{asmejour} %% This file's version and date are: - \def\AJwidetextversion{1.02} - \def\AJverdate{July 24, 2024} + \def\AJwidetextversion{1.03} + \def\AJverdate{January 26, 2025} % \usepackage{asmewide} \usepackage{lipsum}% Latin filler text (lipsum generates a message about 'unused global options' - this can be ignored) diff --git a/Master/texmf-dist/doc/latex/asmejour/asmewide_example/asmewide.sty b/Master/texmf-dist/doc/latex/asmejour/asmewide_example/asmewide.sty index 949da71852f..58872909090 100644 --- a/Master/texmf-dist/doc/latex/asmejour/asmewide_example/asmewide.sty +++ b/Master/texmf-dist/doc/latex/asmejour/asmewide_example/asmewide.sty @@ -1,7 +1,7 @@ %% %% This file is `asmewide.sty'. %% -%% Copyright (c) 2022 John H. Lienhard. Use under the MIT license: https://ctan.org/license/mit +%% Copyright (c) 2025 John H. Lienhard. Use under the MIT license: https://ctan.org/license/mit %% %% Defines a widetext environment within ASME dimensions %% Use for material spanning both columns (i.e., for wide equations) @@ -12,24 +12,25 @@ %% The modifications made were: follow ASME dimensions; remove revtex-specific macros; update/rework commands; adapt to most recent cuted.sty %% (Leaders don't vanish at pagebreaks, as in revtex, evidently related to how cuted.sty handles strip construction. Have coded around this.) %% -%% Required packages: cuted.sty v2.0 and flushend.sty v4.0 [2021/10/04] or later; asmeconf.cls or asmejour.cls w/their required packages, esp. etoolbox, xparse +%% Required packages: cuted.sty v2.0 and flushend.sty v4.0 [2021/10/04] or later; +%% asmeconf.cls or asmejour.cls w/their required packages, esp. etoolbox, xparse %% -%% The widetext environment can only appear once per page. It clashes with floats and footnotes, and often requires some hand-fitting of page layouts. +%% The widetext environment can only appear once per page. It clashes with floats and footnotes, +%% and often requires some hand-fitting of page layouts. %% -%% USAGE: * \begin{widetext} ...wide material here... \end{widetext} +%% USAGE: \begin{widetext} ...wide material here... \end{widetext} %% OPTIONAL ARGUMENTS: -%% * \begin{widetext[N] .. changes upper/lower separation of wide material from default Xpt to Npt (X = 5pt asmeconf.cls; X = 10pt asmejour.cls) -%% * \begin{widetext}[][tbn]: t = top line only; b = bottom line only; n = no lines. BOTH arguments are REQUIRED, even if first is left empty. +%% \begin{widetext[N] ...change upper/lower separation of wide material from default Xpt to Npt (X = 5pt asmeconf.cls; X = 10pt asmejour.cls) +%% \begin{widetext}[][tbn]: t = top line only; b = bottom line only; n = no lines. BOTH arguments are REQUIRED, even if first is left empty. %% %% asmewide,sty supports one option, [raggedend], which suppresses final page column balancing: \usepackage[raggedend]{asmewide} -%% NB: remove the option [balance] when using [raggedend]! %% %% NB: the strip environment from cuted is incompatible with the [lineno] option to asmeconf and asmejour! %% \NeedsTeXFormat{LaTeX2e} -\def\AW@versionno{1.1} -\def\AW@versiondate{2022/06/26\space} +\def\AW@versionno{1.11} +\def\AW@versiondate{2025/01/22\space} \ProvidesPackage{asmewide}[\AW@versiondate\space v\AW@versionno\space ASME wide equation environment (JHL)] \DeclareOption{raggedend}{% Added 2022/05/08, to suppressed flushend on last page, if desired @@ -46,7 +47,7 @@ \@ifpackagelater{cuted}{2021/10/04}{% \relax }{% - \PackageError{asmewide}{The asmewide package has detected that the version of cuted.sty you are using is too old to be compatible. You can get an update at https://ctan.org/pkg/sttools}{You need at least v2.0 of cuted.sty to run asmewide.sty. Without it, you will get more errors. See discussion of installation process here: https://github.com/John02139/asmeconf/issues/4}% + \PackageError{asmewide}{Your version of cuted.sty is too old. You can get an update at https://ctan.org/pkg/cuted}{You need an up-to-date version of cuted.sty to run asmewide.sty.}% } \RequirePackage{flushend}[2021/10/04] @@ -60,7 +61,8 @@ \newbox\@TopLeader \newbox\@BottomLeader \newlength\savparskip \setlength\savparskip{\parskip} -\newlength\@RuleWidth \AtBeginDocument{\setlength\@RuleWidth{\dimexpr(\columnwidth+0.5\columnsep-1pt)}} +\newlength\@RuleWidth +\appto\maketitle{\setlength\@RuleWidth{\dimexpr(\columnwidth+0.5\columnsep-1pt)}}% do this after entering twocolumn, in \maketitle. 2025/01/22 \newlength\@TopSpace \setlength\@TopSpace{0ex} \newlength\@TopCorr \setlength\@TopCorr{-5pt} \def\@asmeindent{3.5mm} @@ -129,7 +131,7 @@ \setlength\parindent{\@asmeindent}% strip makes parindent zero; enlarge for ASME \setlength\parskip{\savparskip}% strip makes \parskip zero w/o glue; set to match main text }{% - \end{strip}\ignorespaces + \end{strip}\ignorespacesafterend } %% \endinput diff --git a/Master/texmf-dist/tex/latex/asmejour/asmejour.cls b/Master/texmf-dist/tex/latex/asmejour/asmejour.cls index a8cd43eae27..fd8144bd62d 100644 --- a/Master/texmf-dist/tex/latex/asmejour/asmejour.cls +++ b/Master/texmf-dist/tex/latex/asmejour/asmejour.cls @@ -5,8 +5,8 @@ %% The asmejour.cls file should be used with the files asmejour.bst (for citations) and asmejour-template.tex. %% %% This file's version and date are: - \def\versionno{1.23} - \def\versiondate{2024/07/24\space} + \def\versionno{1.24} + \def\versiondate{2025/01/26\space} %% %% Author: John H. Lienhard V %% Department of Mechanical Engineering @@ -39,7 +39,7 @@ %% %% LICENSE: %% -%% Copyright (c) 2024 John H. Lienhard +%% Copyright (c) 2025 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, @@ -63,7 +63,7 @@ \LoadClass[twoside,9pt]{extarticle}% twocolumn format initiated in \MakeTitle command 2024/07/20 -\RequirePackage{iftex}% provides \ifpdftex, etc. +\RequirePackage{iftex}[2019/11/07]% provides \ifpdftex, etc. \RequirePackage{ifthen} \ExplSyntaxOn @@ -284,12 +284,12 @@ } %% Option to enforce monospacing of words the typewriter font [mono] -\def\MonoNotMono{WordSpace={1,1.33,1.67}}% for Inconsolatazi4; default allows word spacing (is not mono) +\def\MonoNotMono{WordSpace={1,1,1}}% rescaled tt font to match pdf, 2024/07/30 \DeclareOption{mono}{% \ifpdftex \PassOptionsToPackage{mono}{inconsolata}% mono is a key via xkeyval in inconsolata \else - \def\MonoNotMono{}% + \def\MonoNotMono{WordSpace={1,0,0},PunctuationSpace={3}}% 2024/07/30, these are actually default WordSpace values \fi } @@ -376,9 +376,11 @@ \IfFontExistsTF{texgyreheros}{}{ \ClassWarningNoLine{\ClassName}{\FontWarning} } \IfFontExistsTF{Inconsolatazi4}{}{\ClassWarningNoLine{\ClassName}{\FontWarning} } % + % The newtx package includes a modified version of TeXGyreTermes called TexGyreTermesX, which could be loaded instead (includes \setmainfont{TeXGyreTermes}[% Presumes these are system fonts! Available at: http://www.gust.org.pl/projects/e-foundry/tex-gyre - WordSpace = {1.20,1.43,1.2},%% This stretch matches newtxtext a little better (reset 2024/07/23) - Extension = .otf, + WordSpace = {1.20,1.44,1.2},% This stretch matches newtxtext fontdimens (reset 2024/07/30) + PunctuationSpace = {1.33},% reset 2024/07/30 + Extension = .otf, UprightFont = *-Regular, ItalicFont = *-Italic, BoldFont = *-Bold, @@ -386,8 +388,8 @@ Numbers = Lining, ] \setsansfont{texgyreheros}[% Presumes these are system fonts! Available at: http://www.gust.org.pl/projects/e-foundry/tex-gyre - WordSpace = {1.20,1.43,1.2},%% This stretch matches newtxtext a little better (reset 2024/07/23) -% WordSpace = {1,1.4,1}, + WordSpace = {1,1,1.0036},%% This stretch matches newtxtext fontdimens (reset 2024/07/30) + PunctuationSpace = {1.0036},% reset 2024/07/30 Extension = .otf, UprightFont = *-regular, ItalicFont = *-italic, @@ -397,14 +399,14 @@ Scale=0.91,% same as for newtx; former value 0.9 too small 2022/01/15 ] \setmonofont{Inconsolatazi4}[% This otf font ships with the LaTeX Inconsolata package (it's in TeX Live) - \MonoNotMono, - Scale=1.05,% rescaled from 1, 22/03/10 + Scale=1.0,% rescaled 1.05, 2022/03/10; reset to 1 2024/07/30, based on fontdimen6 (and all others!) Extension = .otf, UprightFont = *-Regular, ItalicFont = *-Regular,% has no italic face BoldFont = *-Bold, BoldItalicFont = *-Bold,% has no italic face RawFeature = {+ss01,\ssztwo,+ss03}, + \MonoNotMono,% WordSpace and PunctuationSpace are set in the class option [mono] ] \fi @@ -435,7 +437,7 @@ \newcommand*{\CondSansBold}{\renewcommand\bfdefault{b}\fontencoding{T1}\fontfamily{qhvc}\selectfont\bfseries} \renewcommand\Huge{\@setfontsize\Huge{26.5}{26.5}} %... for title only -\RequirePackage{metalogo,hologo}% Access to various LaTeX logos (for use in the documentation) +\RequirePackage{hologo}% Access to various LaTeX logos (for use in the documentation). Dropped metalog 2024/08/09 %% This provides sans serif italic and sans serif bold italic math, against with fonts from newtxsf. %% For use in the figure and table captions. @@ -554,8 +556,13 @@ %% ASME puts equation tags in blue \patchcmd{\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}} +% To free \eqref from the normal font (e.g., for use in section headings or captions). Revised 2024/07/28 +\renewcommand{\eqref}[1]{\textup{\hbox{\m@th{(\ignorespaces\ref{#1}\unskip\@@italiccorr)}}}} +% +% amsmath def: \newcommand{\eqref}[1]{\textup{\tagform@{\ref{#1}}}} +% \def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}} +% \def\maketag@@@#1{\hbox{\m@th\normalfont#1}} + %% Italicize alph part of subequation numbers. Revised 2023/10/20 \patchcmd{\subequations}{\theparentequation\alph{equation}}{\theparentequation\itshape\alph{equation}}{}{} @@ -669,10 +676,6 @@ %%%%%% Footnotes %%%%%%%%%%%%%%%%%%%%%%%%%%% -\RequirePackage{fnpos} -\makeFNbottom -\makeFNbelow - \RequirePackage{footmisc}% \IfPackageAtLeastTF{footmisc}{2022/02/05}{ \PassOptionsToPackage{belowfloats}{footmisc}% @@ -701,8 +704,8 @@ %% include a comma for sequential footnotes \ExplSyntaxOn \cs_new:Npn \__asmejour_NoteComma:n { \peek_meaning:NT \footnote { \textsuperscript{\mdseries,} } } - \cs_new_eq:NN \__savefootnote \footnote - \cs_gset_protected:Npn \footnote #1 { \__savefootnote{#1}\__asmejour_NoteComma:n } + \cs_new_eq:NN \__asmejour_savefootnote \footnote + \cs_gset_protected:Npn \footnote #1 { \__asmejour_savefootnote{#1}\__asmejour_NoteComma:n } \ExplSyntaxOff @@ -775,7 +778,8 @@ %%%%%%%%%%%%%%%%% Hyperref %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifpdftex - %%% to assist with unicode glyph mapping in pdf/a, per M. Sharpe's recommendation in newtx documentation + %%% to assist with unicode glyph mapping, following M. Sharpe's recommendation in the newtx documentation. + %%% as of 2024/07/28, these are still necessary with \DocumentMetadata{pdfstandard=A-3u}. Note: glyphtounicode-cmex.tex is now in latex-lab. \InputIfFileExists{glyphtounicode-cmr.tex}{}{} %% additional mappings \InputIfFileExists{glyphtounicode-ntx.tex}{}{} %% additional mappings @@ -828,12 +832,11 @@ \providecommand*{\toclevel@subfigure}{1}% <== to address unknown bookmark level of subfigure. 2021/12/24 -\providecommand\hrefurl[2]{\href{#1}{#2}}% to address certain issues around URL recognition with new pdf management code, 2021/12/22 -%% This alias is also incorporated into asmejour.bst - \ifasme@pdfmanagement \ClassInfo{\ClassName}{pdfmanagement is defined. Class file will not load hyperxmp} \else + \providecommand\hrefurl[2]{\href{#1}{#2}}% if new pdf management code is not loaded, 2021/12/22 + % This alias is also incorporated into asmejour.bst \RequirePackage{bookmark} %% improves handling of pdf bookmarks \RequirePackage{hyperxmp} %% to fix transfer of metadata to Acrobat pdf % Patch bug in hyperxmp, unless a more recent version is used. @@ -966,87 +969,104 @@ %%%%%%%%%%%%%%%% Author/Title/Abstract block %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\RequirePackage{xcoffins} - -\NewCoffin{\authorblock} -\NewCoffin{\ruleblock} -\NewCoffin{\Abstract} -\NewCoffin{\Title} +% convert to expl3 2024/08/19 +\ExplSyntaxOn -\NewCoffin{\firstrowauthorblock} -\AtBeginDocument{% - \SetHorizontalCoffin\firstrowauthorblock{}% -}% corrected 2021/12/22 +\coffin_new:N \g__asmejour_authorblock_coffin +\coffin_new:N \g__asmejour_ruleblock_coffin +\coffin_new:N \g__asmejour_abstract_coffin +\coffin_new:N \g__asmejour_title_coffin +\coffin_new:N \g__asmejour_firstrowauthorblock_coffin -\newlength{\coffinsep}%%% space between coffins -\setlength{\coffinsep}{4.5mm} +\dim_new:N \g__asmejour_coffinsep_dim %%% vert space between aut coffins +\dim_gset:Nn \g__asmejour_coffinsep_dim {4.5mm} -\newcounter{authorno} -\setcounter{authorno}{0} +\dim_new:N \g__asmejour_coffinspace_dim %%% vert space between title/abst coffins +\dim_gset:Nn \g__asmejour_coffinspace_dim {6.75mm} -%%%%%% +\dim_new:N \g__asmejour_rulecofheight_dim +\dim_new:N \g__asmejour_titleheight_dim -\newlength{\rulecofheight} -\newlength{\Titleheight} +\cs_new:Nn \__asmejour_internallinenumbers:n { + \ifasmejour@lineno + \str_if_in:nnT {#1} {R} { \rightlinenumbers* } + \str_if_in:nnT {#1} {r} { \rightlinenumbers* } + \cs_set:Npn \thelinenumber { \@roman\c@linenumber } + \internallinenumbers + \fi +} -\NewDocumentCommand\SetAuthorBlock{m m}{% - \addtocounter{authorno}{1}% - \SetVerticalCoffin{\authorblock}{48.2mm}{% - \raggedleft\sffamily% - {\huge\CondSansBold\ignorespaces#1\ignorespaces}\\ - \CondSans#2% +%% This command is used in the .tex file +\NewDocumentCommand\SetAuthorBlock{m m}{ + \__asmejour_setauthorblock:nn { #1 } { #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 + +\hcoffin_gset:Nn \g__asmejour_firstrowauthorblock_coffin {} +\int_gzero_new:N \g__asmejour_authorno_int + +\cs_new:Nn \__asmejour_setauthorblock:nn { + \int_gincr:N \g__asmejour_authorno_int + \vcoffin_set:Nnn \g__asmejour_authorblock_coffin {48.2mm} { + \__asmejour_internallinenumbers:n {} + \raggedleft\sffamily + {\huge\CondSansBold \tl_trim_spaces:n { #1 } }\\ + \CondSans#2 + } + \int_compare:nNnTF { \g__asmejour_authorno_int } = { 1 } { + \coffin_join:NnnNnnnn \g__asmejour_firstrowauthorblock_coffin { hc } { b } \g__asmejour_authorblock_coffin { hc } {t } { 0pt } { 0pt } + \dim_gset:Nn \g__asmejour_rulecofheight_dim { \coffin_ht:N \g__asmejour_firstrowauthorblock_coffin + \coffin_dp:N \g__asmejour_firstrowauthorblock_coffin } + }{ + \coffin_join:NnnNnnnn \g__asmejour_firstrowauthorblock_coffin { hc } { b } \g__asmejour_authorblock_coffin {hc } {t } { 0pt } { - \dim_use:N \g__asmejour_coffinsep_dim } + \dim_gset:Nn \g__asmejour_rulecofheight_dim { \coffin_ht:N \g__asmejour_firstrowauthorblock_coffin + \coffin_dp:N \g__asmejour_firstrowauthorblock_coffin } + } } +%% Standard coffin poles are (l hc r t T vc b B). See xcoffins documentation. -\NewDocumentCommand\SetTitle{m}{% - \SetVerticalCoffin{\Title}{114mm}{% +\NewDocumentCommand\@SetTitle{m}{ + \cs_gset:Npn \@title {#1} % 2024/07/30 (make this standard command available) + \vcoffin_set:Nnn \g__asmejour_title_coffin {114mm} { + \__asmejour_internallinenumbers:n {R} \vspace*{0.5mm}% <== ASME doesn't align bar and text - \noindent\Huge\CondSansBold\raggedright% - #1% - %\gdef\@title{#1}% for tagging, etc. 2024/07/24. pdf metadata will probably override. + \noindent\Huge\CondSansBold\raggedright + #1 \par } } -\providecommand{\@keywords}{\relax} -\NewDocumentCommand{\keywords}{m}{% changed to remove g option, 2021/01/30 - \long\def\@keywords{\par\vskip\baselineskip\noindent{\keywordname:} #1}% +%% \keywords is used in the .tex file +\cs_new:Npn \__asmejour_keywords {\relax} +\NewDocumentCommand{\keywords}{m}{% removed g option, 2021/01/30 + \cs_gset:Npn \__asmejour_keywords { \par\vskip\baselineskip\noindent{\keywordname :}~#1 } } \NewDocumentCommand\@SetAbstract{+m}{% add + to enable blank lines, etc. 2021/01/31 - \SetVerticalCoffin{\Abstract}{114mm}{% - \ifasmejour@lineno - \rightlinenumbers* - \renewcommand*{\thelinenumber}{\roman{linenumber}} - \internallinenumbers - \fi - \noindent\itshape% - #1 - \@keywords\par% - \vspace*{4mm}% <== at bottom of abstract to extend rule + \vcoffin_set:Nnn \g__asmejour_abstract_coffin {114mm}{ + \__asmejour_internallinenumbers:n {R} + \noindent\itshape + #1 + \__asmejour_keywords\par + \vspace*{4mm}% <== at bottom of abstract to extend rule } } \NewDocumentCommand{\@ConstructAuthorBlock}{}{% - \JoinCoffins\Title[l,b]\Abstract[l,t](0pt,-1.5\coffinsep) - \setlength{\Titleheight}{\CoffinTotalHeight\Title} - \ifdim\Titleheight>\rulecofheight - \setlength{\rulecofheight}{\Titleheight} - \else - \addtolength{\rulecofheight}{7.0mm} - \fi - \SetHorizontalCoffin \ruleblock {\color{\asmejour@barcolor}\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 + \__asmejour_constructauthorblock: } +\cs_new:Nn \__asmejour_constructauthorblock: { + \coffin_join:NnnNnnnn \g__asmejour_title_coffin { l } { b } \g__asmejour_abstract_coffin { l } {t } { 0pt } { - \dim_use:N \g__asmejour_coffinspace_dim } + \dim_gset:Nn \g__asmejour_titleheight_dim { \coffin_ht:N \g__asmejour_title_coffin + \coffin_dp:N \g__asmejour_title_coffin } + \if_dim:w \g__asmejour_titleheight_dim > \g__asmejour_rulecofheight_dim + \dim_gset:Nn \g__asmejour_rulecofheight_dim { \g__asmejour_titleheight_dim } + \else: + \dim_add:Nn \g__asmejour_rulecofheight_dim {7.0mm} + \fi: + \hcoffin_set:Nn \g__asmejour_ruleblock_coffin { \color{\asmejour@barcolor}\rule{2.1mm}{ \dim_use:N \g__asmejour_rulecofheight_dim } } + \coffin_join:NnnNnnnn \g__asmejour_firstrowauthorblock_coffin { vc } { r } \g__asmejour_ruleblock_coffin {vc } { l } { \dim_use:N \g__asmejour_coffinsep_dim } { 0pt } + \coffin_join:NnnNnnnn \g__asmejour_firstrowauthorblock_coffin { vc } { r } \g__asmejour_title_coffin {vc } { l } { \dim_use:N \g__asmejour_coffinsep_dim } { 0pt } + \coffin_typeset:Nnnnn \g__asmejour_firstrowauthorblock_coffin { l }{t }{ 0pt }{ 0pt } +} + +\ExplSyntaxOff %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Corresponding author gets footnote #1 and subsequent notes are 2, 3, .... @@ -1069,7 +1089,7 @@ \setlength{\@AbstractSep}{12.5mm} \NewDocumentCommand\AbstractSep{m}{\setlength{\@AbstractSep}{#1}} -\NewDocumentCommand{\MakeTitlePage}{}{% +\NewDocumentCommand{\@MakeTitlePage}{}{% \thispagestyle{title}% \ifasmejour@singlecolumn % 2024/07/20 \@ConstructAuthorBlock @@ -1097,8 +1117,8 @@ %% Provide compatibility with titling commands from standard LaTeX article class -\RenewDocumentCommand{\maketitle}{}{\MakeTitlePage} -\RenewDocumentCommand{\title}{}{\SetTitle} +\RenewDocumentCommand{\maketitle}{}{\@MakeTitlePage} +\RenewDocumentCommand{\title}{}{\@SetTitle} \RenewDocumentEnvironment{abstract}{+b}{\gdef\tmp{\@SetAbstract{#1}}\aftergroup\tmp}{\ignorespaces} %% Thanks to DPC for the suggestion of \gdef\tmp{... |