texlive[71687] Master/texmf-dist: lni (2jul24)

commits+karl at tug.org commits+karl at tug.org
Tue Jul 2 22:04:32 CEST 2024


Revision: 71687
          https://tug.org/svn/texlive?view=revision&revision=71687
Author:   karl
Date:     2024-07-02 22:04:32 +0200 (Tue, 02 Jul 2024)
Log Message:
-----------
lni (2jul24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/lni/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/lni/README.md
    trunk/Master/texmf-dist/doc/latex/lni/lni-author-template.tex
    trunk/Master/texmf-dist/doc/latex/lni/lni.pdf
    trunk/Master/texmf-dist/source/latex/lni/lni.dtx
    trunk/Master/texmf-dist/tex/latex/lni/lni.cls

Modified: trunk/Master/texmf-dist/doc/latex/lni/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lni/CHANGELOG.md	2024-07-02 20:04:23 UTC (rev 71686)
+++ trunk/Master/texmf-dist/doc/latex/lni/CHANGELOG.md	2024-07-02 20:04:32 UTC (rev 71687)
@@ -6,6 +6,10 @@
 
 ## [Unreleased]
 
+## [1.9] - 2024-07-1
+### Added
+- Support for multiple affiliations
+
 ## [1.8.1] - 2024-01-08
 
 ### Changed
@@ -167,7 +171,8 @@
 
 First release of the revised files
 
-[Unreleased]: https://github.com/gi-ev/LNI/compare/v1.8.1...HEAD
+[Unreleased]: https://github.com/gi-ev/LNI/compare/v1.9...HEAD
+[1.9]: https://github.com/gi-ev/LNI/compare/v1.8.1...v1.9
 [1.8.1]: https://github.com/gi-ev/LNI/compare/v1.8...v1.8.1
 [1.8]: https://github.com/gi-ev/LNI/compare/v1.7...v1.8
 [1.7]: https://github.com/gi-ev/LNI/compare/v1.6...v1.7

Modified: trunk/Master/texmf-dist/doc/latex/lni/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lni/README.md	2024-07-02 20:04:23 UTC (rev 71686)
+++ trunk/Master/texmf-dist/doc/latex/lni/README.md	2024-07-02 20:04:32 UTC (rev 71687)
@@ -4,7 +4,7 @@
 ----------------------------------------------------------------------------
 lni -- A class for submissions to the ``Lecture Notes in Informatics''
 (c) 2016-2024 Gesellschaft für Informatik (GI)
-Version:    1.8.1
+Version:    1.9
 Maintainer: Martin Sievers
 Email:      martin.sievers at schoenerpublizieren.de
 License:    Released under the LaTeX Project Public License v1.3c or later

Modified: trunk/Master/texmf-dist/doc/latex/lni/lni-author-template.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lni/lni-author-template.tex	2024-07-02 20:04:23 UTC (rev 71686)
+++ trunk/Master/texmf-dist/doc/latex/lni/lni-author-template.tex	2024-07-02 20:04:32 UTC (rev 71687)
@@ -19,12 +19,13 @@
 \title[Ein Kurztitel]{Ein sehr langer Titel über mehrere Zeilen mit sehr vielen
 Worten und noch mehr Buchstaben}
 %% \subtitle{Untertitel / Subtitle} % if needed
-\author[1]{Firstname1 Lastname1}{firstname1.lastname1 at affiliation1.org}{0000-0000-0000-0000}
-\author[2]{Firstname2 Lastname2}{firstname2.lastname2 at affiliation2.org}{0000-0000-0000-0000}
-\author[1]{Firstname3 Lastname3}{firstname3.lastname3 at affiliation1.org}{0000-0000-0000-0000}
-\author[1]{Firstname4 Lastname4}{firstname4.lastname4 at affiliation1.org}{0000-0000-0000-0000}%
-\affil[1]{Universität\\Abteilung\\Straße\\Postleitzahl Ort\\Land}
-\affil[2]{University\\Department\\Address\\Country}
+ \author[1,2]{Firstname1 Lastname1}{firstname1.lastname1 at affiliation1.org}{0000-0000-0000-0000}
+ \author[2]{Firstname2 Lastname2}{firstname2.lastname2 at affiliation2.org}{0000-0000-0000-0000}
+ \author[3]{Firstname3 Lastname3}{firstname3.lastname3 at affiliation1.org}{0000-0000-0000-0000}
+ \author[1]{Firstname4 Lastname4}{firstname4.lastname4 at affiliation1.org}{0000-0000-0000-0000}%
+ \affil[1]{Universität 1\\Abteilung\\Straße\\Postleitzahl Ort\\Land}
+ \affil[2]{University 2 \\Department\\Address\\Country}
+ \affil[3]{University 3\\Department\\Address\\Country}
 \maketitle
 
 \begin{abstract}

Modified: trunk/Master/texmf-dist/doc/latex/lni/lni.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/lni/lni.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/lni/lni.dtx	2024-07-02 20:04:23 UTC (rev 71686)
+++ trunk/Master/texmf-dist/source/latex/lni/lni.dtx	2024-07-02 20:04:32 UTC (rev 71687)
@@ -134,7 +134,7 @@
 %<class>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 %<class>\ProvidesClass{lni}
 %<*class>
-    [2024/01/08 v1.8.1 Official class for submissions to the ``Lecture Notes
+    [2024/07/01 v1.9 Official class for submissions to the ``Lecture Notes
     in Informatics'']
 %</class>
 %<*driver>
@@ -286,6 +286,7 @@
 % \changes{v1.8}{2022/06/10}{Fix output error in bst files (#97)}
 % \changes{v1.8}{2022/11/25}{Make class compatable with latest publisher requirements (#121)}
 % \changes{v1.8}{2022/11/25}{Make usage of `hyperref` mandatory (#131)}
+% \changes{v1.9}{2024/07/01}{Support multiple affiliations (#158)}
 %
 % \GetFileInfo{\jobname.dtx}
 % \DoNotIndex{\newcommand,\newenvironment}
@@ -489,12 +490,13 @@
 % \cs{affil\oarg{number}\marg{information}} where you can use
 % \texttt{\textbackslash\textbackslash} to split the address.
 % \begin{examplecode}[label={lst:author}]
-% \author[1]{Firstname1 Lastname1}{firstname1.lastname1 at affiliation1.org}{0000-0000-0000-0000}
+% \author[1,2]{Firstname1 Lastname1}{firstname1.lastname1 at affiliation1.org}{0000-0000-0000-0000}
 % \author[2]{Firstname2 Lastname2}{firstname2.lastname2 at affiliation2.org}{0000-0000-0000-0000}
-% \author[1]{Firstname3 Lastname3}{firstname3.lastname3 at affiliation1.org}{0000-0000-0000-0000}
+% \author[3]{Firstname3 Lastname3}{firstname3.lastname3 at affiliation1.org}{0000-0000-0000-0000}
 % \author[1]{Firstname4 Lastname4}{firstname4.lastname4 at affiliation1.org}{0000-0000-0000-0000}%
-% \affil[1]{Universität\\Abteilung\\Straße\\Postleitzahl Ort\\Land}
-% \affil[2]{University\\Department\\Address\\Country}
+% \affil[1]{Universität 1\\Abteilung\\Straße\\Postleitzahl Ort\\Land}
+% \affil[2]{University 2 \\Department\\Address\\Country}
+% \affil[3]{University 3\\Department\\Address\\Country}
 % \end{examplecode}
 %
 % Leave the third and/or fourth argument empty if there is no email address and/or ORCID iD.
@@ -1149,53 +1151,71 @@
 \renewcommand\Authsep{, }
 \renewcommand\Authands{\iflanguage{ngerman}{ und }{, and }}
 \renewcommand\Authand{\iflanguage{ngerman}{ und }{ and }}
-\renewcommand{\AB at authnote}[1]{$^{\text{\mbox{\normalfont\footnotesize #1}}}$}
+\NewDocumentCommand{\multiaffil}{ >{\SplitList{,}} m m m}{%   
+   \gdef\@currEmail{#2}
+   \gdef\@currOrcid{#3}
+   \ProcessList{#1}{\@multiaffil}
+}
+
+\newcommand{\@multiaffil}[1]{%
+   \ifcsundef{@emailsandorcids#1}{\csgdef{@emailsandorcids#1}{}}{}%
+   \ifcsempty{@emailsandorcids#1}%
+   {\csgappto{@emailsandorcids#1}{%
+         \if\relax\@currEmail\relax\else\email{\@currEmail}\fi\if\relax\@currOrcid\relax\else,\ \orcid{\@currOrcid}\fi}}%
+   {\csgappto{@emailsandorcids#1}{%
+         \if\relax\@currEmail\relax\else;\ \email{\@currEmail}\fi\if\relax\@currOrcid\relax\else,\ \orcid{\@currOrcid}\fi}}%
+}
+
 \renewcommand\author[4][]{%
    \ifnewaffil\addtocounter{affil}{1}%
       \edef\AB at thenote{\arabic{affil}}%
    \fi%
    \if\relax#1\relax\def\AB at note{\AB at thenote}\else\def\AB at note{#1}%
-   \ifcsundef{@emailsandorcids\AB at note}{\csgdef{@emailsandorcids\AB at note}{}}{}%
    \setcounter{Maxaffil}{0}\fi
    \ifnum\value{authors}=0\def\@firstauthor{#2}\fi
    \ifnum\value{authors}>1\relax
-      \@namedef{@sep\number\c at authors}{\Authsep}\fi
+   \@namedef{@sep\number\c at authors}{\Authsep}\fi
    \addtocounter{authors}{1}%
    \begingroup
-      \let\protect\@unexpandable at protect \let\and\AB at pand
-      \def\thanks{\protect\thanks}\def\footnote{\protect\footnote}%
-      \@temptokena=\expandafter{\AB at authors}%
-      \@temptokenb=\expandafter{\AB at authors}%
-      {\def\\{\protect\\[\@affilsep]\protect\Affilfont
-            \protect\AB at resetsep}%
-         \xdef\AB at author{\AB at blk@and#2}%
-         \ifnewaffil\gdef\AB at las{}\gdef\AB at lasx{\protect\Authand}\gdef\AB at as{}%
-         \xdef\AB at authors{\the\@temptokena\AB at blk@and}%
-         \else
-         \xdef\AB at authors{\the\@temptokena\AB at as\AB at au@str}%
-         \global\let\AB at las\AB at lasx\gdef\AB at lasx{\protect\Authands}%
-         \gdef\AB at as{\Authsep}%
-         \fi
-         \gdef\AB at au@str{#2}}%
-      \@temptokena=\expandafter{\AB at authlist}%
-      \@temptokenb=\expandafter{\@authlisthead}%
-      \let\\=\authorcr
-      \xdef\AB at authlist{\the\@temptokena
-         \protect\@nameuse{@sep\number\c at authors}%
-         \protect\Authfont#2\if\relax#4\relax\else\,\orcidlink{#4}\fi\AB at authnote{\AB at note}}%
-      \xdef\@authlisthead{\the\@temptokenb
-         \protect\@nameuse{@sep\number\c at authors}%
-         \protect\Authfont#2}%
+   \let\protect\@unexpandable at protect \let\and\AB at pand
+   \def\thanks{\protect\thanks}\def\footnote{\protect\footnote}%
+   \@temptokena=\expandafter{\AB at authors}%
+   \@temptokenb=\expandafter{\AB at authors}%
+   {\def\\{\protect\\[\@affilsep]\protect\Affilfont
+         \protect\AB at resetsep}%
+      \xdef\AB at author{\AB at blk@and#2}%
+      \ifnewaffil\gdef\AB at las{}\gdef\AB at lasx{\protect\Authand}\gdef\AB at as{}%
+      \xdef\AB at authors{\the\@temptokena\AB at blk@and}%
+      \else
+      \xdef\AB at authors{\the\@temptokena\AB at as\AB at au@str}%
+      \global\let\AB at las\AB at lasx\gdef\AB at lasx{\protect\Authands}%
+      \gdef\AB at as{\Authsep}%
+      \fi
+      \gdef\AB at au@str{#2}}%
+   \@temptokena=\expandafter{\AB at authlist}%
+   \@temptokenb=\expandafter{\@authlisthead}%
+   \let\\=\authorcr
+   \xdef\AB at authlist{\the\@temptokena
+      \protect\@nameuse{@sep\number\c at authors}%
+      \protect\Authfont#2\if\relax#4\relax\else\,\orcidlink{#4}\fi\AB at authnote{\AB at note}}%
+   \xdef\@authlisthead{\the\@temptokenb
+      \protect\@nameuse{@sep\number\c at authors}%
+      \protect\Authfont#2}%
    \endgroup
    \ifnum\value{authors}>2\relax
    \@namedef{@sep\number\c at authors}{\Authands}\fi
+   \ifcsundef{@emailsandorcids\AB at note}{\csgdef{@emailsandorcids\AB at note}{}}{}%
+   \sbox\z@{\@tempcnta=0#1\relax}%
+   \expandafter\ifdim\wd\z@>\z@\relax
+   \multiaffil{#1}{#3}{#4}
+   \else
+   \ifcsundef{@emailsandorcids\AB at note}{\csgdef{@emailsandorcids\AB at note}{}}{}%
    \ifcsempty{@emailsandorcids\AB at note}%
    {\csgappto{@emailsandorcids\AB at note}{%
-         \if\relax#3\relax\else\email{#3}\fi\if\relax#4\relax\else,\ \orcid{#4}\fi}%
-   }%
+         \if\relax#3\relax\else\email{#3}\fi\if\relax#4\relax\else,\ \orcid{#4}\fi}}%
    {\csgappto{@emailsandorcids\AB at note}{%
          \if\relax#3\relax\else;\ \email{#3}\fi\if\relax#4\relax\else,\ \orcid{#4}\fi}}%
-
+   \fi%
    \newaffilfalse
 }
 \renewcommand\@author{%
@@ -3071,12 +3091,13 @@
 \title[Ein Kurztitel]{Ein sehr langer Titel über mehrere Zeilen mit sehr vielen
 Worten und noch mehr Buchstaben}
 %% \subtitle{Untertitel / Subtitle} % if needed
-\author[1]{Firstname1 Lastname1}{firstname1.lastname1 at affiliation1.org}{0000-0000-0000-0000}
-\author[2]{Firstname2 Lastname2}{firstname2.lastname2 at affiliation2.org}{0000-0000-0000-0000}
-\author[1]{Firstname3 Lastname3}{firstname3.lastname3 at affiliation1.org}{0000-0000-0000-0000}
-\author[1]{Firstname4 Lastname4}{firstname4.lastname4 at affiliation1.org}{0000-0000-0000-0000}%
-\affil[1]{Universität\\Abteilung\\Straße\\Postleitzahl Ort\\Land}
-\affil[2]{University\\Department\\Address\\Country}
+ \author[1,2]{Firstname1 Lastname1}{firstname1.lastname1 at affiliation1.org}{0000-0000-0000-0000}
+ \author[2]{Firstname2 Lastname2}{firstname2.lastname2 at affiliation2.org}{0000-0000-0000-0000}
+ \author[3]{Firstname3 Lastname3}{firstname3.lastname3 at affiliation1.org}{0000-0000-0000-0000}
+ \author[1]{Firstname4 Lastname4}{firstname4.lastname4 at affiliation1.org}{0000-0000-0000-0000}%
+ \affil[1]{Universität 1\\Abteilung\\Straße\\Postleitzahl Ort\\Land}
+ \affil[2]{University 2 \\Department\\Address\\Country}
+ \affil[3]{University 3\\Department\\Address\\Country}
 \maketitle
 
 \begin{abstract}

Modified: trunk/Master/texmf-dist/tex/latex/lni/lni.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lni/lni.cls	2024-07-02 20:04:23 UTC (rev 71686)
+++ trunk/Master/texmf-dist/tex/latex/lni/lni.cls	2024-07-02 20:04:32 UTC (rev 71687)
@@ -14,7 +14,7 @@
 %% --------| -----------------------------------------------------------------
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
 \ProvidesClass{lni}
-    [2024/01/08 v1.8.1 Official class for submissions to the ``Lecture Notes
+    [2024/07/01 v1.9 Official class for submissions to the ``Lecture Notes
     in Informatics'']
 \RequirePackage{iftex}\ifluatex\else\pdfoutput=1\fi%
 \def\@clearglobaloption#1{%
@@ -371,53 +371,71 @@
 \renewcommand\Authsep{, }
 \renewcommand\Authands{\iflanguage{ngerman}{ und }{, and }}
 \renewcommand\Authand{\iflanguage{ngerman}{ und }{ and }}
-\renewcommand{\AB at authnote}[1]{$^{\text{\mbox{\normalfont\footnotesize #1}}}$}
+\NewDocumentCommand{\multiaffil}{ >{\SplitList{,}} m m m}{%
+   \gdef\@currEmail{#2}
+   \gdef\@currOrcid{#3}
+   \ProcessList{#1}{\@multiaffil}
+}
+
+\newcommand{\@multiaffil}[1]{%
+   \ifcsundef{@emailsandorcids#1}{\csgdef{@emailsandorcids#1}{}}{}%
+   \ifcsempty{@emailsandorcids#1}%
+   {\csgappto{@emailsandorcids#1}{%
+         \if\relax\@currEmail\relax\else\email{\@currEmail}\fi\if\relax\@currOrcid\relax\else,\ \orcid{\@currOrcid}\fi}}%
+   {\csgappto{@emailsandorcids#1}{%
+         \if\relax\@currEmail\relax\else;\ \email{\@currEmail}\fi\if\relax\@currOrcid\relax\else,\ \orcid{\@currOrcid}\fi}}%
+}
+
 \renewcommand\author[4][]{%
    \ifnewaffil\addtocounter{affil}{1}%
       \edef\AB at thenote{\arabic{affil}}%
    \fi%
    \if\relax#1\relax\def\AB at note{\AB at thenote}\else\def\AB at note{#1}%
-   \ifcsundef{@emailsandorcids\AB at note}{\csgdef{@emailsandorcids\AB at note}{}}{}%
    \setcounter{Maxaffil}{0}\fi
    \ifnum\value{authors}=0\def\@firstauthor{#2}\fi
    \ifnum\value{authors}>1\relax
-      \@namedef{@sep\number\c at authors}{\Authsep}\fi
+   \@namedef{@sep\number\c at authors}{\Authsep}\fi
    \addtocounter{authors}{1}%
    \begingroup
-      \let\protect\@unexpandable at protect \let\and\AB at pand
-      \def\thanks{\protect\thanks}\def\footnote{\protect\footnote}%
-      \@temptokena=\expandafter{\AB at authors}%
-      \@temptokenb=\expandafter{\AB at authors}%
-      {\def\\{\protect\\[\@affilsep]\protect\Affilfont
-            \protect\AB at resetsep}%
-         \xdef\AB at author{\AB at blk@and#2}%
-         \ifnewaffil\gdef\AB at las{}\gdef\AB at lasx{\protect\Authand}\gdef\AB at as{}%
-         \xdef\AB at authors{\the\@temptokena\AB at blk@and}%
-         \else
-         \xdef\AB at authors{\the\@temptokena\AB at as\AB at au@str}%
-         \global\let\AB at las\AB at lasx\gdef\AB at lasx{\protect\Authands}%
-         \gdef\AB at as{\Authsep}%
-         \fi
-         \gdef\AB at au@str{#2}}%
-      \@temptokena=\expandafter{\AB at authlist}%
-      \@temptokenb=\expandafter{\@authlisthead}%
-      \let\\=\authorcr
-      \xdef\AB at authlist{\the\@temptokena
-         \protect\@nameuse{@sep\number\c at authors}%
-         \protect\Authfont#2\if\relax#4\relax\else\,\orcidlink{#4}\fi\AB at authnote{\AB at note}}%
-      \xdef\@authlisthead{\the\@temptokenb
-         \protect\@nameuse{@sep\number\c at authors}%
-         \protect\Authfont#2}%
+   \let\protect\@unexpandable at protect \let\and\AB at pand
+   \def\thanks{\protect\thanks}\def\footnote{\protect\footnote}%
+   \@temptokena=\expandafter{\AB at authors}%
+   \@temptokenb=\expandafter{\AB at authors}%
+   {\def\\{\protect\\[\@affilsep]\protect\Affilfont
+         \protect\AB at resetsep}%
+      \xdef\AB at author{\AB at blk@and#2}%
+      \ifnewaffil\gdef\AB at las{}\gdef\AB at lasx{\protect\Authand}\gdef\AB at as{}%
+      \xdef\AB at authors{\the\@temptokena\AB at blk@and}%
+      \else
+      \xdef\AB at authors{\the\@temptokena\AB at as\AB at au@str}%
+      \global\let\AB at las\AB at lasx\gdef\AB at lasx{\protect\Authands}%
+      \gdef\AB at as{\Authsep}%
+      \fi
+      \gdef\AB at au@str{#2}}%
+   \@temptokena=\expandafter{\AB at authlist}%
+   \@temptokenb=\expandafter{\@authlisthead}%
+   \let\\=\authorcr
+   \xdef\AB at authlist{\the\@temptokena
+      \protect\@nameuse{@sep\number\c at authors}%
+      \protect\Authfont#2\if\relax#4\relax\else\,\orcidlink{#4}\fi\AB at authnote{\AB at note}}%
+   \xdef\@authlisthead{\the\@temptokenb
+      \protect\@nameuse{@sep\number\c at authors}%
+      \protect\Authfont#2}%
    \endgroup
    \ifnum\value{authors}>2\relax
    \@namedef{@sep\number\c at authors}{\Authands}\fi
+   \ifcsundef{@emailsandorcids\AB at note}{\csgdef{@emailsandorcids\AB at note}{}}{}%
+   \sbox\z@{\@tempcnta=0#1\relax}%
+   \expandafter\ifdim\wd\z@>\z@\relax
+   \multiaffil{#1}{#3}{#4}
+   \else
+   \ifcsundef{@emailsandorcids\AB at note}{\csgdef{@emailsandorcids\AB at note}{}}{}%
    \ifcsempty{@emailsandorcids\AB at note}%
    {\csgappto{@emailsandorcids\AB at note}{%
-         \if\relax#3\relax\else\email{#3}\fi\if\relax#4\relax\else,\ \orcid{#4}\fi}%
-   }%
+         \if\relax#3\relax\else\email{#3}\fi\if\relax#4\relax\else,\ \orcid{#4}\fi}}%
    {\csgappto{@emailsandorcids\AB at note}{%
          \if\relax#3\relax\else;\ \email{#3}\fi\if\relax#4\relax\else,\ \orcid{#4}\fi}}%
-
+   \fi%
    \newaffilfalse
 }
 \renewcommand\@author{%



More information about the tex-live-commits mailing list.