texlive[73649] Master/texmf-dist: asmeconf (30jan25)
commits+karl at tug.org
commits+karl at tug.org
Thu Jan 30 22:10:06 CET 2025
Revision: 73649
https://tug.org/svn/texlive?view=revision&revision=73649
Author: karl
Date: 2025-01-30 22:10:06 +0100 (Thu, 30 Jan 2025)
Log Message:
-----------
asmeconf (30jan25)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/asmeconf/README.md
trunk/Master/texmf-dist/doc/latex/asmeconf/asmeconf-template.pdf
trunk/Master/texmf-dist/doc/latex/asmeconf/asmeconf-template.tex
trunk/Master/texmf-dist/tex/latex/asmeconf/asmeconf.cls
Modified: trunk/Master/texmf-dist/doc/latex/asmeconf/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/asmeconf/README.md 2025-01-30 21:09:48 UTC (rev 73648)
+++ trunk/Master/texmf-dist/doc/latex/asmeconf/README.md 2025-01-30 21:10:06 UTC (rev 73649)
@@ -1,7 +1,7 @@
#asmeconf: A latex template for ASME conference papers#
- Version 1.39 dated 2025/01/26.
+ Version 1.40 dated 2025/01/29.
####Overview####
This class provides a LaTeX template for ASME Conference papers formatted according to
@@ -80,6 +80,11 @@
####Change log####
+ v1.40 (2025/01/29)
+ - Drop titlesec package to avoid degrading tag structure
+ - Rework tagging of coffins in author/affiliation block
+ - Fix minor bug that transferred spaces following \\affil and \\CorrespondingAuthor into superscripts
+
v1.39 (2025/01/26)
- Recode title and author blocks into expl3, adjust code to support tagged pdf
- Revise other expl3 command and variable naming
Modified: trunk/Master/texmf-dist/doc/latex/asmeconf/asmeconf-template.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/asmeconf/asmeconf-template.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/asmeconf/asmeconf-template.tex 2025-01-30 21:09:48 UTC (rev 73648)
+++ trunk/Master/texmf-dist/doc/latex/asmeconf/asmeconf-template.tex 2025-01-30 21:10:06 UTC (rev 73649)
@@ -4,7 +4,7 @@
%% This file is asmeconf-template.tex, a LaTeX template to format ASME Conference papers according to
%% the requirements on ASME's conference web pages, and including hypertext support for the pdf.
%%
-%% This file is version 1.39 dated 2025/01/26
+%% This file is version 1.40 dated 2025/01/29
%%
%% As of version 1.11, this template defaults to ASME's newer conference guidelines first posted July 2019.
%% Those guidelines changed the requested author block formatting to be inline.
@@ -149,13 +149,13 @@
%
% For a sole author or a single affiliation for all authors, {#} may be left empty, as \affil{} and \SetAffiliation{} (but not with [grid] option!)
%
-% \CorrespondingAuthor{email} follows that author's affiliation, no spaces.
+% \CorrespondingAuthor{email} follows that author's affiliation, no spaces before or after
% If multiple corresponding authors, put both email addresses in the same command and place after both authors.
%
% \JointFirstAuthor, if applicable, follows the affiliation of the relevant authors, no spaces.
\SetAuthors{%
- John H. Lienhard\affil{1}\JointFirstAuthor\CorrespondingAuthor{},
+ John H. Lienhard\affil{1}\JointFirstAuthor\CorrespondingAuthor{},
Luis Hern\'andez\affil{2}\JointFirstAuthor,
Maria Silva\affil{3},
Henry Tudor\affil{4},
@@ -162,7 +162,7 @@
Catherine~Parr\affil{4}\CorrespondingAuthor{lienhard at mit.edu, kate at thepalace.gov}
}
-\SetAffiliation{1}{Massachusetts Institute of Technology, Cambridge, MA }
+\SetAffiliation{1}{Massachusetts Institute of Technology, Cambridge, MA}
\SetAffiliation{2}{Institution or Company Name, City, State}
\SetAffiliation{3}{Institution or Company Name, City, Province, Canada}
\SetAffiliation{4}{Hampton Court Palace, Richmond, England}
@@ -393,7 +393,7 @@
\subsubsection*{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.
-\subsubsection*{Conference Location and Date} To specify the city and date of a conference, you can use \verb|venue={..}| and \verb|eventdate={..}| with the entries \verb|@inproceeedings{..| and \verb|@proceeedings{..|.
+\subsubsection*{Conference Location and Date.} To specify the city and date of a conference, you can use \verb|venue={..}| and \verb|eventdate={..}| with the entries \verb|@inproceeedings{..| and \verb|@proceeedings{..|.
\subsubsection*{Capitalization of Titles} ASME's bibliography style requires that document titles be in title case. The first letters of principal words are capitalized. Do this in the \texttt{.bib} file.
@@ -541,7 +541,7 @@
consecutively, following those in the paper. Consider $\rho \neq \textrm{fn}(p)$:
\begin{align}
\frac{d\Gamma}{dt} &{}= \frac{d}{dt} \int_{\mathcal{C}} \mathbf{u} \cdot d\mathbf{r}\\
- &{}= \int_{\mathcal{C}} \frac{D\mathbf{u}}{Dt} \cdot d\mathbf{r} + \underbrace{\int_{\mathcal{C}} \mathbf{u}\cdot d\biggl( \frac{d\mathbf{r}}{dt}\Biggr)}_{=\, 0} \\[-2pt]
+ &{}= \int_{\mathcal{C}} \frac{D\mathbf{u}}{Dt} \cdot d\mathbf{r} + \underbrace{\int_{\mathcal{C}} \mathbf{u}\cdot d\biggl( \frac{d\mathbf{r}}{dt}\biggr)}_{=\, 0} \\[-2pt]
&{}= \iint_{\mathcal{S}} \nabla \times \frac{D\mathbf{u}}{Dt} \cdot d\mathbf{A}\\
&{}= \iint_{\mathcal{S}} \nabla p \times \nabla \left( \frac{1}{\rho}\right) \cdot d\mathbf{A}
\end{align}
@@ -610,7 +610,7 @@
\end{abstract*}
\end{selectlanguage}% edited by Aarón Montoya-Moraga
-%% If you have trouble with the following passages, you may deleting this stuff and remove the associated language option from \documentclass[..].
+%% If you have trouble with the following passages, delete them and remove the associated language option from \documentclass[..].
\typeout{If you have trouble with the following passages, your file may not be saved in utf-8 format, or your LaTeX format may be old, or you may not have the assumed font installed. You can delete those lines to resolve the issue.}
%% Examples of abstracts in other languages. The first three are intended for pdflatex, not lualatex.
Modified: trunk/Master/texmf-dist/tex/latex/asmeconf/asmeconf.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/asmeconf/asmeconf.cls 2025-01-30 21:09:48 UTC (rev 73648)
+++ trunk/Master/texmf-dist/tex/latex/asmeconf/asmeconf.cls 2025-01-30 21:10:06 UTC (rev 73649)
@@ -5,8 +5,8 @@
%% ASME conference requirements as represented on ASME's conference web pages in 2025.
%%
%% This file's version and date:
- \def\versionno{1.39}
- \def\versiondate{2025/01/26\space}
+ \def\versionno{1.40}
+ \def\versiondate{2025/01/29\space}
%%
%% Author: John H. Lienhard, V
%% Department of Mechanical Engineering
@@ -505,32 +505,34 @@
%% subfigures are not specifically addressed in this patch
%% babel [spanish] option is NOT compatible with tagging !!
\ifasmeconf at captionpatch
-%% set github discussion of this patch by Ulrike Fischer
+%% see github discussion of this patch by Ulrike Fischer
%% https://github.com/latex3/tagging-project/issues/720#issuecomment-2386568711
- \RemoveFromHook{begindocument}[latex-lab-testphase-float]
- \ExplSyntaxOn
- \socket_new_plug:nnn{tagsupport/parbox/before}{caption}
- {
- \tagpdfparaOn %restart para tagging
- \tl_if_empty:NTF\@current at float@struct
- {
- \tag_struct_begin:n{tag=Caption,firstkid}
- }
- {
- \tag_struct_begin:n{tag=Caption,parent=\@current at float@struct,firstkid}
- }
- }
- \socket_new_plug:nnn{tagsupport/parbox/after}{caption}
- {
- \tag_struct_end:
- }
- \l at addto@macro\caption at beginex@hook{%
- \tagpdfparaOff %leavevmode in parbox should not start paragraph structure
- \AssignSocketPlug{tagsupport/parbox/before}{caption}
- \AssignSocketPlug{tagsupport/parbox/after}{caption}}
- \ExplSyntaxOff
+ \ExplSyntaxOn
+ \IfPackageLoadedTF{tagpdf}{% this test may need to be removed once latex-lab moves to kernel code
+ \RemoveFromHook{begindocument}[latex-lab-testphase-float]
+ \socket_new_plug:nnn{tagsupport/parbox/before}{caption}
+ {
+ \tagpdfparaOn %restart para tagging
+ \tl_if_empty:NTF\@current at float@struct
+ {
+ \tag_struct_begin:n{tag=Caption,firstkid}
+ }
+ {
+ \tag_struct_begin:n{tag=Caption,parent=\@current at float@struct,firstkid}
+ }
+ }
+ \socket_new_plug:nnn{tagsupport/parbox/after}{caption}
+ {
+ \tag_struct_end:
+ }
+ \l at addto@macro\caption at beginex@hook{%
+ \tagpdfparaOff %leavevmode in parbox should not start paragraph structure
+ \AssignSocketPlug{tagsupport/parbox/before}{caption}
+ \AssignSocketPlug{tagsupport/parbox/after}{caption}}
+ }{}
+ \ExplSyntaxOff
\fi
-
+
\DeclareCaptionLabelFormat{uppercase}{\MakeTextUppercase{#1} #2}
\DeclareCaptionTextFormat{boldmath}{\mathversion{sansbold}#1}
\DeclareCaptionTextFormat{sansmath}{\mathversion{sans}#1}
@@ -1125,37 +1127,43 @@
%%%%%%%%% Section headings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% wish to accommodate hyperref
-
-\RequirePackage[raggedright,indentafter]{titlesec}
-
%% ASME specifies 10 pt headings
-\titleformat{\section}{\mathversion{sansbold}\bfseries\sffamily\raggedright}{\thesection .}{0.5em}{\MakeTextUppercase}
-\titleformat{\subsection}{\mathversion{sansbold}\bfseries\sffamily\raggedright}{\thesubsection}{0.5em}{}
-\titleformat{\subsubsection}[runin]{\mathversion{sansbold}\bfseries\sffamily}{\thesubsubsection}{0.5em}{}[.\hspace*{0.5em}]
+%% This approach is intended to avoid breaking tagging code, 2025/01/29
+\renewcommand\section{\@startsection {section}{1}{\z@}%
+ {12pt \@plus 4pt \@minus 2pt}%
+ {1pt \@plus 2pt \@minus 2pt}%
+ {\mathversion{sansbold}\bfseries\sffamily\raggedright\MakeUppercase}}
+\renewcommand\subsection{\@startsection {subsection}{1}{\z@}%
+ {12pt \@plus 4pt \@minus 2pt}%
+ {1pt \@plus 1pt \@minus 1pt}%
+ {\mathversion{sansbold}\normalsize\bfseries\sffamily\raggedright}}
+\renewcommand\subsubsection{\@startsection {subsubsection}{1}{\parindent}%
+ {6pt \@plus 3pt \@minus 2pt}%
+ {-0.5em}%
+ {\mathversion{sansbold}\bfseries\normalsize\sffamily}}
+\patchcmd{\thesection}{\@arabic\c at section}{\@arabic\c at section}{}{}
+\patchcmd{\thesubsection}{\thesection.\@arabic\c at subsection}{\@arabic\c at section.\@arabic\c at subsection}{}{}
+\patchcmd{\@seccntformat}{\quad}{.\hspace{0.5em}}{}{}
+\patchcmd{\@ssect}{\relax #5}{\relax #5.}{}{}% only \subsubsection* will follow this path
+\let\paragraph\subsubsection
-\titlespacing\section{0pt}{12pt plus 4pt minus 2pt}{1pt plus 1pt minus 1pt} % from 2 pt 2 pt 1 pt, 2019/7/7
-\titlespacing\subsection{0pt}{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, 2019/7/7
+\renewcommand{\appendix}{
+ \par
+ \setcounter{section}{0}
+ \setcounter{subsection}{0}
+ \gdef\thesection{\@Alph\c at section}
+ \gdef\thesubsection{\@Alph\c at section.\@arabic\c at subsection}
+ \pretocmd{\section}{\gdef\@seccntformat##1{\appendixname\ \csname the##1\endcsname.\hspace{0.5em}}}{}{}
+ \let\savhangfrom\@hangfrom
+ \pretocmd{\section}{\gdef\@hangfrom{\relax}}{}{}
+ \pretocmd{\subsection}{\gdef\@seccntformat##1{\csname the##1\endcsname.\hspace{0.5em}}}{}{}
+ \pretocmd{\subsection}{\gdef\@hangfrom{\savhangfrom}}{}{}
+ \patchcmd{\@kernel at tag@hangfrom}{\hangindent \wd\@tempboxa\noindent}{\noindent}{}{}
+}
+%% still need to zero out \hangfrom in appendix \section when tagging is active.
-%% Special handling of the appendices
-%% Assumes that appendices are the last content in paper
-%% Code revised to better support tagged pdf, 2024/07/26.
-\patchcmd{\appendix}{%
- \setcounter{subsection}{0}%
-}{%
- \setcounter{subsection}{0}\pdfbookmark[1]{\appendicesname}{appendices}%
-}{}{}
-\apptocmd{\appendix}{\titleformat{\section}[block]{\mathversion{sansbold}\bfseries\sffamily\raggedright}{\MakeTextUppercase{\appendixname}\ \thesection.}{0.5em}{\MakeTextUppercase}}{}{}
-% Changed to block layout (rather than default hanging) whilst retaining \raggedright, since "Appendix X." is a very wide hanging indent. 2024/07/26
-%% This patches titlesec's unprotected re-definition of \footnote. See discussion here: https://github.com/jbezos/titlesec/issues/48
-%% Without this patch, recent versions of LaTeX will require \protect\footnote in section headings.
-%% This issue may be corrected in titlesec, but keeping the patch for backward compatibility.
-\patchcmd{\ttl at select}{\def\footnote}{\protected\def\footnote}{\typeout{Asmeconf.sty patched titlesec to have protected def of footnote}}{}
-
-
%%%%%%%%%% Hyperref, bookmarks, and PDF/A %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifpdftex
@@ -1323,6 +1331,17 @@
%%%%%%%%%%%%% Define special environments %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ExplSyntaxOn
+%% In case tagging is not loaded, 2025/01/26
+\cs_if_exist:NF \tag_struct_begin:n
+ {
+ \cs_new:Npn \tag_struct_begin:n #1 { \scan_stop: }
+ \cs_new:Nn \tag_struct_end: { \scan_stop: }
+ \cs_new:Nn \tagpdfparaOff { \scan_stop: }
+ \cs_new:Nn \tagpdfparaOn { \scan_stop: }
+ }
+\ExplSyntaxOff
+
%%%%%% Introduce some special section and other names %%%%%%%%%%%
\providecommand{\nomname}{Nomenclature}
@@ -1343,16 +1362,26 @@
}
}
-\DeclareDocumentEnvironment{abstract}{}{% Overwrites existing abstract environment
+\ExplSyntaxOn
+\DeclareDocumentEnvironment{abstract}{+b}{% Overwrites existing abstract environment
+% \tag_struct_begin:n{tag=Sect, title-o=\abstractname}
\section*{\abstractname}\itshape
+ #1
}
- {\upshape\@keywords
-}
+ {
+ \upshape\@keywords
+% \par\tag_struct_end:n
+ \ignorespacesafterend
+ }
\NewDocumentEnvironment{abstract*}{}{% Abstract with no keywords (same as using empty \keywords{} with first abstract)
+% \tag_struct_begin:n{tag=Sect, title-o=\abstractname}
\section*{\abstractname}\itshape
}
- {\ignorespacesafterend
-}
+ {
+% \par\tag_struct_end:n
+ \ignorespacesafterend
+ }
+\ExplSyntaxOff
%% Nomenclature environment %%%%%%%%%%%%%%%%%%
%%
@@ -1374,8 +1403,10 @@
%% Increase first optional argument to a dimension > 2em if wide entries cause undesired misalignment of columns.
%% Second optional argument can be used to rename the environment, e.g., to List of Symbols.
+\ExplSyntaxOn
\NewDocumentEnvironment{nomenclature}{O{2em} O{\nomname}}{%
- \setlength{\columnsep}{2em}
+ % \tag_struct_begin:n{tag=Sect, title-o=\nomname}
+ \setlength{\columnsep}{2em}
\setlength{\nomenwidth}{#1}
\section*{#2}
\raggedright
@@ -1388,7 +1419,11 @@
\addtolength{\leftmargin}{\labelsep}%
\setlength{\savitemsep}{\itemsep}%
}%
-}{\end{list}\ignorespacesafterend}
+}{\end{list}
+% \tag_struct_end:
+ \ignorespacesafterend
+}
+\ExplSyntaxOff
%%%%%%%%%%%%%%%%% Headers and Title %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1413,15 +1448,7 @@
}
\providecommand\@PaperTitle{\hbox{ }}
-
\ExplSyntaxOn
-%% In case tagging is not loaded, 2025/01/26
-\cs_if_exist:NF \tag_struct_begin:n
- {
- \cs_new:Npn \tag_struct_begin:n #1 { \scan_stop: }
- \cs_new:Nn \tag_struct_end: { \scan_stop: }
- }
-
\NewDocumentCommand\@HeaderTitle{}{%
\tag_struct_begin:n{tag=Div, title=Conference~information}
{\bfseries\sffamily
@@ -1463,10 +1490,9 @@
%% Flag for corresponding author (expecting just one, but if two enter both email addresses and flag both authors)
\newif\ifac at CA\ac at CAfalse
-\NewDocumentCommand\CorrespondingAuthor{m}{% Revised this command 2020/12/29, to make the CA email mandatory but possibly empty
- \ignorespaces$\bm{^\ast}$%
+\NewDocumentCommand\CorrespondingAuthor{>{\TrimSpaces} m}{% Revised 2020/12/29 (make CA email mandatory but possibly empty); edit 2025/01/27
\global\ac at CAtrue%
- \ifblank{#1}{%
+ \IfBlankTF{#1}{%
\gdef\@CAsep{\relax}%
\gdef\@CAemail{\relax}%
}{%
@@ -1473,9 +1499,9 @@
\gdef\@CAsep{:\space}%
\gdef\@CAemail{#1}%
}%
+ $\bm{^\ast}$\ignorespaces % \ignorespaces is ignored due to code for commas in successive footnotes, below.
}
-
%%%% option to use the traditional grid layout of authors or the inline style
\ifasmeconf at grid
@@ -1520,7 +1546,7 @@
\seq_gput_right:Nn \g__asmeconf_author_seq {#1}
\__asmeconf_stripaffilnumber:n { #1 }
\seq_gput_right:Nn \g__asmeconf_affiliation_seq { \c_empty_tl } % clear sequence for later use
- \seq_gput_right:NV \g__asmeconf_authoraffil_seq { \int_use:N \g__affiltagno_int } % clear sequence for later use
+ \seq_gput_right:NV \g__asmeconf_authoraffil_seq { \int_use:N \g__affiltagno_int }
}
\msg_new:nnn { \ClassName } { missingauthor } { Missing~author~name,~check~for~extra~comma~in~\SetAuthors! }
@@ -1664,7 +1690,6 @@
% backward compatibility
\cs_if_exist:NF \tl_set:Ne { \cs_generate_variant:Nn \tl_set:Nn {Ne} }
- % \cs_if_exist:NF \iow_term:e { \cs_generate_variant:Nn \iow_term:n {e} }
\NewDocumentCommand\@ConstructAuthorBlock{}{%
\int_compare:nNnT { \g__asmeconf_authorcnt_int } > { 3 } {
@@ -1712,7 +1737,7 @@
\else
%%%%%%%%%%%%%%%%%%%%%% New author layout (inline) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
- %% converted to expl3, 17 August 2024
+ %% converted to expl3, 17 August 2024; revised 27 January 2025
\ExplSyntaxOn
@@ -1721,14 +1746,16 @@
\coffin_new:N \g__asmeconf_affiliationsblock_coffin
\cs_if_exist:NF \cs_gset:Npe { \cs_generate_variant:Nn \cs_gset:Npn {Npe} }
+ \tl_new:N \asmeconf_authors_tl
\NewDocumentCommand\SetAuthors{m}{
- \vcoffin_gset:Nnn \g__asmeconf_authorblock_coffin {\textwidth} % switched to vcoffin 2024/10/16 to accommodate tagging
+ \tl_gset:Nn \g_asmeconf_formattedauthors_tl
{
- \centering\sffamily\bfseries\ignorespaces#1\ignorespaces
+ \centering\sffamily\bfseries #1
+ }
\__asmeconf_striptokens:n {#1}
\cs_gset:Npe \@author { \tl_use:N \g_asmeconf_authors_tl }% set \@author = list of authors, 2024/07/31
- }
}
+
%% strip \affil{..}, \JointFirstAuthor, \CorrespondingAuthor{...} from argument
\cs_new_protected:Nn \__asmeconf_striptokens:n {
\tl_set:Nn \l_tmpa_tl {#1}
@@ -1742,18 +1769,17 @@
}
\def\@makefnmark{\hbox{\@textsuperscript{\sffamily\@thefnmark}}}%
-
+ \seq_gclear_new:N \g__asmeconf_affiliations_seq
\NewDocumentCommand\SetAffiliation{mm}{%
- \vcoffin_set:Nnn \g__asmeconf_affiliationblock_coffin { \textwidth } {
- \ifblank{#1}{%
- \centering\sffamily#2\ignorespaces}{% empty argument for 1 author or 1 affiliation, where affiliation need not be tagged
- \centering\sffamily\footnotemark[#1]#2\ignorespaces}%
- }
- \coffin_gjoin:NnnNnnnn \g__asmeconf_affiliationsblock_coffin { hc } { b } \g__asmeconf_affiliationblock_coffin {hc } { t } { 0pt} { -1pt }
- }
+ \ifblank{#1}{
+ \seq_gput_right:Nn \g__asmeconf_affiliations_seq { \centering\sffamily \tl_trim_spaces:n{ #2 } }%
+ }{
+ \seq_gput_right:Nn \g__asmeconf_affiliations_seq { \footnotemark[#1]\centering\sffamily \tl_trim_spaces:n{ #2 } }%
+ }
+ }
%%% Affiliation mark
- \NewDocumentCommand{\affil}{m}{%
+ \NewDocumentCommand{\affil}{>{\TrimSpaces} m}{%
\ifblank{#1}{%
\ClassWarning{\ClassName}{Empty affiliation tag}%
\@gobble% addresses modification for commas
@@ -1762,26 +1788,44 @@
%%% to deal with sequential notes as, e.g., "1,*", or "1,2,*" %%%%%%%%%%
\cs_new:Npn \__asmeconf_OtherNoteComma:n {
+ \peek_remove_spaces:n { % added 2025/01/27
\peek_meaning:NTF \affil
{ \textsuperscript{\mdseries,} }
{ \peek_meaning:NTF \CorrespondingAuthor
{ \textsuperscript{\mdseries,} }
{ \peek_meaning:NT \JointFirstAuthor { \textsuperscript{\mdseries,} } }
- }
+ }
+ }
}
\cs_new_eq:NN \__asmeconf_saveAF \affil
\cs_gset_protected:Npn \affil #1 { \__asmeconf_saveAF{#1} \__asmeconf_OtherNoteComma:n }
\cs_new_eq:NN \__asmeconf_saveCA \CorrespondingAuthor
- \cs_gset_protected:Npn \CorrespondingAuthor #1 { \__asmeconf_saveCA{#1} \__asmeconf_OtherNoteComma:n }
+ \cs_gset_protected:Npn \CorrespondingAuthor #1 { \__asmeconf_saveCA{#1} \__asmeconf_OtherNoteComma:n }
\cs_new_eq:NN \__asmeconf_saveJA \JointFirstAuthor
\cs_gset_protected:Npn \JointFirstAuthor { \__asmeconf_saveJA \__asmeconf_OtherNoteComma:n }
- %%%
+ %%%
+ %% next construct author/affiliation coffin
+ \int_zero_new:N \g_asmeconf_count_affil_int
\NewDocumentCommand\@SetAuthorBlock{}{%
+ \leavevmode
+ \tagpdfparaOff % this pair of tagpdf macros may change over time, 2025/01/28
+ \vcoffin_gset:Nnn \g__asmeconf_authorblock_coffin {\textwidth} % switched to vcoffin 2024/10/16 to accommodate tagging
+ { \tl_use:N \g_asmeconf_formattedauthors_tl }
+ \seq_remove_duplicates:N \g__asmeconf_affiliations_seq
+ \int_gset:Nn \g_asmeconf_count_affil_int {\seq_count:N \g__asmeconf_affiliations_seq}
+ \int_zero_new:N \l__asmeconf_affilno_int
+ \int_until_do:nNnn { \l__asmeconf_affilno_int } > { \g_asmeconf_count_affil_int } {
+ \vcoffin_set:Nnn \g__asmeconf_affiliationblock_coffin { \textwidth } {
+ \seq_item:Nn \g__asmeconf_affiliations_seq { \l__asmeconf_affilno_int }
+ }
+ \coffin_gjoin:NnnNnnnn \g__asmeconf_affiliationsblock_coffin { hc } { b } \g__asmeconf_affiliationblock_coffin {hc } { t } { 0pt} { -1pt }
+ \int_incr:N \l__asmeconf_affilno_int
+ }
\coffin_gjoin:NnnNnnnn \g__asmeconf_authorblock_coffin { hc } { b } \g__asmeconf_affiliationsblock_coffin {hc } { t } { 0pt} { -\baselineskip }
\coffin_typeset:Nnnnn \g__asmeconf_authorblock_coffin { l }{ T }{ 0pt }{ 0pt }
+ \tagpdfparaOn\par
}
-
\ExplSyntaxOff
\fi % end if...else for grid
@@ -1794,7 +1838,6 @@
\@HeaderTitle
\vspace*{2\baselineskip}
\par\tag_struct_begin:n{tag=Div, title=Author~and~affilation}
- %% tag structure for inline style still needs work, 2025/01/26
\ifasmeconf at grid
\@SetAuthorBlock\@ConstructAuthorBlock
\else
More information about the tex-live-commits
mailing list.